Программный интерфейс модели ограничений
Раздел содержит описание программного интерфейса модели ограничений — универсальной модели, предназначенной для решения дискретных комбинаторных задач оптимизации и поиска допустимых решений. Концептуальное изложение класса задач, поддерживаемого моделью, приведено в разделе Модель ограничений.
Программный интерфейс модели декомпозирован на функциональные блоки, каждый из которых отвечает за отдельный аспект построения задачи: переменные, выражения, домены, ограничения, цель оптимизации и результат решения. Такая декомпозиция обеспечивает структурирование прикладного кода при работе со сложными моделями.
Начало работы
Рекомендуемый способ создания модели — через фасад О2.Модели, возвращающий менеджер соответствующего класса задач:
Модель = О2.Модели().МодельОграничений().СоздатьМодель();
ПеременнаяX = Модель.Переменная("x");
ПеременнаяY = Модель.Переменная("y");
Модель.Ограничения().Соотношение("x + y = 10");
Модель.Максимизировать("x");
Решение = Модель.Решить();
Альтернативно доступен универсальный метод О2.СоздатьМодель, которому тип модели передаётся явно. Этот вариант удобен, когда класс модели определяется динамически:
Модель = О2.СоздатьМодель(О2.ТипыМоделей().МодельОграничений());
Состав раздела
- Менеджер модели
- Объект модели
- Менеджер выражений
- Построитель выражений
- Менеджер доменов
- Менеджер ограничений
- Объект решения