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

О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)
.Максимизировать();

См. также