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