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

Создание объекта модели

Создание модели через фасад

Рекомендуемый способ создания объекта модели — через фасад менеджера моделей:

Модель = О2
.Модели()
.МодельОграничений()
.СоздатьМодель();

Свойство Модели() возвращает менеджер всех поддерживаемых классов моделей, метод МодельОграничений() — менеджер модели ограничений, метод СоздатьМодель() — объект модели.

Создание модели через универсальный конструктор

Если тип модели определяется динамически, применяется универсальный конструктор менеджера библиотеки:

Модель = О2.СоздатьМодель(
О2.ТипыМоделей().МодельОграничений()
);

Модель ограничений принимается за тип модели по умолчанию, поэтому при вызове О2.СоздатьМодель() без параметров создаётся объект именно этой модели:

Модель = О2.СоздатьМодель();

Если тип модели известен на этапе разработки, предпочтительным остаётся фасадный путь — он явно отражает класс задачи в коде.

Параметры модели

При создании модели передаётся структура параметров, влияющих на её поведение:

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

ПараметрыМодели = МенеджерМодели.СоздатьПараметрыМодели();

ПараметрыМодели.КонтрольЦелыхЧисел = Перечисления
.О2_МетодыКонтроляЦелыхЧисел
.ВызыватьИсключение;

Модель = МенеджерМодели.СоздатьМодель(ПараметрыМодели);
Имя параметраТипОписание
КонтрольЦелыхЧиселПеречислениеСсылка.О2_МетодыКонтроляЦелыхЧиселПоведение системы при передаче в модель нецелого числового значения. По умолчанию — ВызыватьИсключение.

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

Рекомендация

Значение КонтрольЦелыхЧисел = ВызыватьИсключение рекомендуется оставлять по умолчанию. Это гарантирует, что ошибка в подготовке данных будет выявлена сразу и не приведёт к скрытому округлению значений.

Дальнейшая работа с моделью

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

  • Переменные — регистрация переменных модели методами Модель.Переменные().Добавить() и Модель.Переменные().ДобавитьБулеву().
  • Домены — менеджер доменов Модель.Домены() для описания допустимых множеств значений переменных.
  • Линейные выражения — менеджер линейных выражений Модель.Выражения() для построения комбинаций переменных.
  • Ограничения — менеджер ограничений Модель.Ограничения() для описания связей между переменными и выражениями.
  • Целевая функция — установка целевой функции методами Модель.ЦелеваяФункция().Минимизировать() и Модель.ЦелеваяФункция().Максимизировать().
  • Управление поиском — подсказка решателю методом Модель.Подсказки().Добавить().
  • Решение модели — запуск решателя методом Модель.Решить().

Полный перечень методов

Полный набор методов точки входа модели и параметров создания приведён в разделах Программный интерфейс — Менеджер модели и Программный интерфейс — Объект модели.