О2_CP_SAT_МенеджерЦелевойФункции.Максимизировать
Задаёт направление оптимизации «максимизация». Основной способ вызова — Модель.ЦелеваяФункция().Максимизировать(...).
При передаче параметра Выражение вызов эквивалентен Установить(Выражение) с последующей фиксацией направления. Без параметра — фиксирует направление для уже накопленного выражения.
Синтаксис
Модель.ЦелеваяФункция().Максимизировать()
Модель.ЦелеваяФункция().Максимизировать(Выражение)
Параметры
- Выражение — ФиксированнаяСтруктура, Строка, Число, Неопределено — целевая функция в виде целочисленного линейного выражения. Если не задан, направление фиксируется для ранее накопленного выражения.
Возвращаемое значение
- ОбработкаОбъект — сам менеджер целевой функции (для цепочки вызовов).
Описание
Модель может содержать только одну целевую функцию. Повторный вызов Максимизировать или Минимизировать заменяет ранее установленную функцию и направление. Если целевая функция не задана, модель решается как задача поиска допустимого решения.
Пример
// Пример 1 — с передачей выражения
Модель = О2.Модели()
.МодельОграничений()
.СоздатьМодель();
ПеременнаяX = Модель.Переменные().Добавить("x", 0, 100);
ПеременнаяY = Модель.Переменные().Добавить("y", 0, 100);
Модель.Ограничения().Соотношение("0 < x");
Модель.Ограничения().Соотношение("0 < y");
Модель.ЦелеваяФункция().Максимизировать("2*x + 4*y");
// Пример 2 — накопление через методы менеджера, затем фиксация направления
Модель = О2.Модели()
.МодельОграничений()
.СоздатьМодель();
ПеременнаяX = Модель.Переменные().Добавить("x", 0, 100);
ПеременнаяY = Модель.Переменные().Добавить("y", 0, 100);
Модель.Ограничения().Соотношение("0 < x");
Модель.Ограничения().Соотношение("0 < y");
Модель.ЦелеваяФункция()
.ДобавитьТерм(ПеременнаяX, 2)
.ДобавитьТерм(ПеременнаяY, 4)
.Максимизировать();