О2.СоздатьМодель
Создаёт и возвращает объект оптимизационной модели указанного типа. Возвращённый объект используется для описания переменных, ограничений и целевой функции задачи.
Синтаксис
О2.СоздатьМодель(ТипМодели, Параметры)
Параметры
- ТипМодели — ПеречислениеСсылка.О2_ТипыМоделей, Неопределено — Тип создаваемой модели. Допустимые значения перечислены в разделе Типы моделей. Если не указан, будет использовано значение по умолчанию — модель ограничений.
- Параметры — Структура, Неопределено —
Дополнительные параметры, специфичные для выбранного типа модели. Если не указаны, будут использованы значения по умолчанию. Структуру параметров для каждого типа модели формируют соответствующие модули:
- О2_CP_SAT.СоздатьПараметрыМодели — для модели ограничений;
- О2_LP.СоздатьПараметрыМодели — для непрерывной линейной модели;
- О2_IP.СоздатьПараметрыМодели — для целочисленной линейной модели;
- О2_MIP.СоздатьПараметрыМодели — для смешанно-целочисленной линейной модели;
- О2_Knapsack.СоздатьПараметрыМодели — для задачи о рюкзаке;
- О2_MaxFlow.СоздатьПараметрыМодели — для задачи поиска максимального потока;
- О2_MinCostFlow.СоздатьПараметрыМодели — для задачи поиска потока минимальной стоимости;
- О2_Routing.СоздатьПараметрыМодели — для модели маршрутизации.
Возвращаемое значение
- ОбработкаОбъект — объект модели, соответствующий выбранному типу:
ОбработкаОбъект.О2_CP_SAT_Модель— для модели ограничений;ОбработкаОбъект.О2_LP_Модель— для непрерывной линейной модели;ОбработкаОбъект.О2_IP_Модель— для целочисленной линейной модели;ОбработкаОбъект.О2_MIP_Модель— для смешанно-целочисленной линейной модели;ОбработкаОбъект.О2_Knapsack_Модель— для задачи о рюкзаке;ОбработкаОбъект.О2_MaxFlow_Модель— для задачи поиска максимального потока;ОбработкаОбъект.О2_MinCostFlow_Модель— для задачи поиска потока минимальной стоимости;ОбработкаОбъект.О2_Routing_Модель— для модели маршрутизации.
Описание
Метод является основной точкой входа при программном построении оптимизационной модели. Тип модели выбирается исходя из характера прикладной задачи: например, для задач составления расписаний и комбинаторики подходит модель ограничений, а для задач распределения ресурсов с линейными зависимостями — линейные модели.
Для быстрого знакомства с типами моделей и их областями применения см. раздел Создание модели.
Пример
Создание модели ограничений и простейшее её описание:
Модель = О2.СоздатьМодель(); // <-- тип по умолчанию — модель ограничений
ПеременнаяX = Модель.Переменная("x");
ПеременнаяY = Модель.Переменная("y");
Модель.Ограничения().Соотношение("x + y = 10");
Явный выбор типа модели:
Модель = О2.СоздатьМодель(
О2.ТипыМоделей().ЛинейнаяСмешанноЦелочисленнаяМодель()
);
Создание модели с параметрами:
ПараметрыМодели = О2.Модели()
.ЛинейнаяСмешанноЦелочисленнаяМодель()
.СоздатьПараметрыМодели();
Модель = О2.СоздатьМодель(
О2.ТипыМоделей().ЛинейнаяСмешанноЦелочисленнаяМодель(),
ПараметрыМодели
);
См. также
- РешитьМодель — поиск решения для созданной модели;
- ЗаписатьМодель — сохранение модели в файл или поток;
- Типы моделей — перечисление допустимых типов;
- Модели — программный интерфейс по каждому классу задач.