Создание объекта модели
Создание модели через фасад
Рекомендуемый способ создания объекта модели — через фасад менеджера моделей:
Модель = О2
.Модели()
.МодельОграничений()
.СоздатьМодель();
Свойство Модели() возвращает менеджер всех поддерживаемых классов моделей, метод МодельОграничений() — менеджер модели ограничений, метод СоздатьМодель() — объект модели.
Создание модели через универсальный конструктор
Если тип модели определяется динамически, применяется универсальный конструктор менеджера библиотеки:
Модель = О2.СоздатьМодель(
О2.ТипыМоделей().МодельОграничений()
);
Модель ограничений принимается за тип модели по умолчанию, поэтому при вызове О2.СоздатьМодель() без параметров создаётся объект именно этой модели:
Модель = О2.СоздатьМодель();
Если тип модели известен на этапе разработки, предпочтительным остаётся фасадный путь — он явно отражает класс задачи в коде.
Параметры модели
При создании модели передаётся структура параметров, влияющих на её поведение:
МенеджерМодели = О2
.Модели()
.МодельОграничений();
ПараметрыМодели = МенеджерМодели.СоздатьПараметрыМодели();
ПараметрыМодели.КонтрольЦелыхЧисел = Перечисления
.О2_МетодыКонтроляЦелыхЧисел
.ВызыватьИсключение;
Модель = МенеджерМодели.СоздатьМодель(ПараметрыМодели);
| Имя параметра | Тип | Описание |
|---|---|---|
| КонтрольЦелыхЧисел | ПеречислениеСсылка.О2_МетодыКонтроляЦелыхЧисел | Поведение системы при передаче в модель нецелого числового значения. По умолчанию — ВызыватьИсключение. |
Модель ограничений работает только с целыми числами: значения переменных, коэффициенты выражений, границы доменов — всегда целые в диапазоне Int64. Если значения прикладной задачи представлены вещественными числами (стоимость с копейками, время с долями часа), они масштабируются до целочисленного диапазона на этапе подготовки данных.
Значение КонтрольЦелыхЧисел = ВызыватьИсключение рекомендуется оставлять по умолчанию. Это гарантирует, что ошибка в подготовке данных будет выявлена сразу и не приведёт к скрытому округлению значений.
Дальнейшая работа с моделью
После создания объект модели готов к описанию переменных, выражений, ограничений и целевой функции. Часть методов вызывается непосредственно у объекта модели, часть — через подчинённые менеджеры:
- Переменные — регистрация переменных модели методами
Модель.Переменные().Добавить()иМодель.Переменные().ДобавитьБулеву(). - Домены — менеджер доменов
Модель.Домены()для описания допустимых множеств значений переменных. - Линейные выражения — менеджер линейных выражений
Модель.Выражения()для построения комбинаций переменных. - Ограничения — менеджер ограничений
Модель.Ограничения()для описания связей между переменными и выражениями. - Целевая функция — установка целевой функции методами
Модель.ЦелеваяФункция().Минимизировать()иМодель.ЦелеваяФункция().Максимизировать(). - Управление поиском — подсказка решателю методом
Модель.Подсказки().Добавить(). - Решение модели — запуск решателя методом
Модель.Решить().
Полный перечень методов
Полный набор методов точки входа модели и параметров создания приведён в разделах Программный интерфейс — Менеджер модели и Программный интерфейс — Объект модели.