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