Программный интерфейс линейных моделей
Раздел содержит описание программного интерфейса линейных оптимизационных моделей: непрерывной (LP), целочисленной (IP) и смешанно-целочисленной (MIP). Подклассы отличаются ограничениями на типы переменных и применяются в зависимости от характера прикладной задачи; концептуальное изложение приведено в разделе Линейная модель.
Модели всех трёх подклассов используют общую инфраструктуру описания выражений и ограничений, а также единый объект решения. Это обеспечивает единообразие прикладного кода и возможность перехода между подклассами без существенных переработок.
Общий сценарий использования
Рекомендуемый способ создания модели — через фасад О2.Модели (имя метода-фасада зависит от подкласса: ЛинейнаяНепрерывнаяМодель, ЛинейнаяЦелочисленнаяМодель, ЛинейнаяСмешанноЦелочисленнаяМодель):
// 1. Создать модель нужного класса
Модель = О2.Модели().ЛинейнаяНепрерывнаяМодель().СоздатьМодель();
// 2. Описать переменные
ПеременнаяX = Модель.Переменные().Добавить("x");
ПеременнаяY = Модель.Переменные().Добавить("y");
// 3. Добавить ограничения (общий менеджер ограничений)
Модель.Ограничения().Соотношение("2*x + 3*y <= 12");
Модель.Ограничения().Соотношение("x + y >= 4");
// 4. Задать целевую функцию
Модель.ЦелеваяФункция().Максимизировать("5*x + 4*y");
// 5. Получить решение (возвращается объект О2_MP_Решение)
Решение = Модель.Решить();
Если Решение.РешениеНайдено() Тогда
ЗначениеX = Решение.ЗначениеПеременной(ПеременнаяX);
ЗначениеY = Решение.ЗначениеПеременной(ПеременнаяY);
КонецЕсли;
Альтернативно доступен универсальный метод О2.СоздатьМодель, которому тип модели передаётся явно — это удобно, когда класс модели определяется динамически:
Модель = О2.СоздатьМодель(О2.ТипыМоделей().ЛинейнаяНепрерывнаяМодель());
Различия между классами LP, IP, MIP проявляются при объявлении переменных — детали описаны на страницах соответствующих подразделов.
Содержание раздела
- Непрерывная модель (LP)
- Целочисленная модель (IP)
- Смешанно-целочисленная модель (MIP)
- Менеджер выражений
- Построитель выражений
- Менеджер ограничений
- Объект решения
- Менеджер целевой функции
См. также
- Модель ограничений (CP-SAT) — альтернативный класс задач для комбинаторной оптимизации;
- Типы моделей — значения перечисления для выбора класса модели;
- СоздатьМодель — точка входа при создании любой модели.