linopt
::maximize
Максимизируйте линейную или смешано-целочисленную программу
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
linopt::maximize([constr, obj]
, <DualPrices>) linopt::maximize([constr, obj, <NonNegative>, <seti>]
) linopt::maximize([constr, obj, <NonNegative>, <All>]
) linopt::maximize([constr, obj, <setn>, <seti>]
) linopt::maximize([constr, obj, <setn>, <All>]
) linopt::maximize([constr, obj, <NonNegative>]
, DualPrices) linopt::maximize([constr, obj, <set>]
, DualPrices)
linopt::maximize([constr, obj])
возвращает решение линейной или смешано-целочисленной программы, данной ограничениями constr
и линейная целевая функция obj
который должен быть максимизирован.
Выражение obj
линейная целевая функция должна быть максимизирована удовлетворяющая линейным ограничениям constr
. Функциональный linopt::maximize
возвращает тройное, состоящее из состояния выхода, OPTIMAL
пустой
или UNBOUNDED
, набор уравнений, который описывает оптимальное решение заданной линейной программы, которая пуста или зависит от свободной переменной Φ, удовлетворяющий состоянию, и наконец максимальному значению целевой функции, которое может быть любой номером,-infinity
или линейная функция в Φ.
Состояния OPTIMAL
пустой
или UNBOUNDED
имейте следующие значения. OPTIMAL
означает, что оптимальное решение для линейной программы было найдено. Если состоянием является EMPTY
никакое оптимальное решение не было найдено и если это - UNBOUNDED
затем решение не имеет никакой верхней границы.
Если опция NonNegative
используется все переменные ограничиваются быть неотрицательными. Если вместо NonNegative
набор setn
дан затем только переменные из setn
ограничиваются быть неотрицательным.
Если опция All
используется все переменные ограничиваются быть целыми числами. Если вместо All
набор seti
дан, затем только переменные из seti
ограничиваются быть целыми числами.
Как второй параметр для linopt::maximize
опция DualPrices
обеспечивается для линейного случая (первый параметр поэтому не должен иметь больше чем трех элементов). Эта опция вызывает выход двойных цен в дополнение к решению-tripel. В этом случае результат linopt::maximize
последовательность списка, содержащего решение-tripel и набор, содержащий двойные цены. Смотрите Пример 4.
Мы пытаемся решить линейную программу
с линейной целевой функцией c 1 + 2 c2:
linopt::maximize([{2*c1 <= 1, 2*c2 <= 1}, c1 + 2*c2])
Теперь давайте взглянем на линейную программу
с линейной целевой функцией - x + y + 2 z. Если мы не делаем ограничения на переменные, результат неограничен:
c := [{3*x + 4*y - 3*z <= 23, 5*x - 4*y - 3*z <= 10, 7*x + 4*y + 11*z <= 30}, -x + y + 2*z]: linopt::maximize(c)
Но если все переменные ограничиваются быть неотрицательными, мы получаем результат. Это также имеет место, если только X и Y ограничиваются быть неотрицательными:
linopt::maximize(append(c, NonNegative)); linopt::maximize(append(c, {x, y}))
delete c:
Следующая линейная программа не имеет решения:
linopt::maximize([{x <= -1, x >= 0}, x])
Выход двойных цен может быть осуществлен с опцией DualPrices
:
linopt::maximize([{2*c1 <= 1, 2*c2 <= 1},c1 + 2*c2], DualPrices)
Мы взглянули на проблему ранца с x1, x2, x3, x4 ∈ {0, 1}:
c := {20*x1 + 15*x2 + 20*x3 + 5*x4 <= 25}: c := c union {x1 <= 1, x2 <= 1, x3 <= 1, x4 <= 1}: f := 10*x1 + 15*x2 + 16*x3 + x4: linopt::maximize([c, f, NonNegative, All])
delete c, f:
|
Набор или список линейных ограничений |
|
Линейное выражение |
|
Набор, который содержит идентификаторы, интерпретированные как indeterminates |
|
Набор, который содержит идентификаторы, интерпретированные как indeterminates |
|
Все переменные ограничиваются быть целыми числами |
|
Все переменные ограничиваются быть неотрицательными |
|
Эта опция только доступна в линейном случае. Это вызывает выход двойных цен в дополнение к тройному решением. |
Перечислите или последовательность списка и набора, содержащего решение линейной или смешано-целочисленной программы.
Papadimitriou, Christos H; Steiglitz, Кеннет: комбинаторная оптимизация; алгоритмы и сложность. Prentice Hall, 1982.
Nemhauser, Джордж Л; Wolsey, Лоуренс А: целочисленная и комбинаторная оптимизация. Нью-Йорк, Вайли, 1988.
Салкин, Харви М; Mathur, Kamlesh: основы целочисленного программирования. Северная Голландия, 1989.
Нейман, Клаус; Morlock, Мартин: исследование операций. Мюнхен, Hanser, 1993.
Duerr, Уолтер; Kleibohm, Клаус: Исследование операций; Lineare Modelle und ihre Anwendungen. Мюнхен, Hanser, 1992.
Зуль, Уве Х: MOPS - математическая система оптимизации. Европейский журнал исследования операций 72 (1994) 312-322. Северная Голландия, 1994.
Зуль, Уве Х; Сзыманский, Ральф: обработка суперузла смешанных целочисленных моделей. Бостон, Kluwer академические издатели, 1994.