Перейти к основному содержимому

Назначение модели

Линейные модели применяются для решения задач, в которых нужно оптимизировать числовую цель (например, минимизировать затраты или максимизировать прибыль) при условии, что все ограничения и целевая функция заданы в виде линейных уравнений и неравенств, то есть соотношениями вида:

a1x1 + a2x2 + a3x3 + ... + anxn + b

Здесь a1 ... an, b - произвольные числовые коэффициенты, a x1 ... xn - значения переменных.

Важно отметить, что выражение является линейным (многочленом первой степени), то есть переменные могут домножаться только на числовые коэффициенты, но не могут перемножаться друг с другом.

Примеры допустимых соотношений:

5x1 + 10x2 >= 7x3 - 4x4 + 5

13x1 - 25x2 + 55 = 0

Классификация линейных моделей

Линейные оптимизационные модели (LP-модели) можно классифицировать по типу переменных, которые в них используются. Это важно, поскольку выбор типа модели напрямую влияет на точность решения, сложность вычислений и применимость к реальным задачам.

Непрерывные линейные модели (LP)

Во всех переменных модели допускаются любые вещественные значения внутри заданных границ. Такие модели быстрее всего решаются и хорошо масштабируются. Однако они подходят только тогда, когда дробные значения имеют смысл — например, при планировании объёмов производства, закупок или транспортировки, где допускается деление единиц (литры, килограммы и т.д.).

Пример применения: распределение ресурсов, логистика, задачи смешивания.

Для работы с непрерывными линейными моделями предусмотрен отдельный модуль-менеджер:

МенеджерМоделей = О2.Модели().ЛинейнаяНепрерывнаяМодель();

Целочисленные линейные модели (ILP)

Все переменные должны принимать только целые значения. Это нужно, когда решение связано с объектами, которые нельзя разделить: сотрудники, станки, смены, упаковки и т.п. Целочисленные модели решаются гораздо медленнее, особенно при большом количестве переменных, но позволяют моделировать дискретные ситуации.

Пример применения: составление расписаний, подбор оборудования, назначение персонала.

Для работы с целочисленными линейными моделями предусмотрен отдельный модуль-менеджер:

МенеджерМоделей = О2.Модели().ЛинейнаяЦелочисленнаяМодель();

Смешанно-целочисленные модели (MILP)

Часть переменных — целочисленные, часть — непрерывные. Это самый универсальный и часто встречающийся тип модели в прикладных задачах. Он позволяет балансировать между точностью и вычислимостью: дискретные решения принимаются по ключевым параметрам, остальное оптимизируется с высокой точностью.

Пример применения: планирование производства с ограничением количества запусков, где объёмы могут быть дробными, а количество партий — целыми.

Для работы со смешанно-целочисленными линейными моделями предусмотрен отдельный модуль-менеджер:

МенеджерМоделей = О2.Модели().ЛинейнаяСмешанноЦелочисленнаяМодель();