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
, EMPTY
или UNBOUNDED
, набора уравнений, который описывает оптимальное решение заданной линейной программы, которая пуста или зависит от свободной переменной Φ, подвергающийся состоянию, и наконец максимальному значению целевой функции, которое может быть или номером,-infinity
или линейной функцией в Φ.
Состояния OPTIMAL
, EMPTY
или 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.