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.

Примеры

Пример 1

Мы пытаемся решить линейную программу

с линейной целевой функцией c 1 + 2 c2:

linopt::maximize([{2*c1 <= 1, 2*c2 <= 1}, c1 + 2*c2])

Пример 2

Теперь давайте взглянем на линейную программу

с линейной целевой функцией - 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:

Пример 3

Следующая линейная программа не имеет решения:

linopt::maximize([{x <= -1, x >= 0}, x])

Пример 4

Вывод двойных цен может быть осуществлен с опцией DualPrices:

linopt::maximize([{2*c1 <= 1, 2*c2 <= 1},c1 + 2*c2], 
                 DualPrices)

Пример 5

Мы взглянули на проблему ранца с 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:

Параметры

constr

Набор или список линейных ограничений

obj

Линейное выражение

seti

Набор, который содержит идентификаторы, интерпретированные как indeterminates

setn

Набор, который содержит идентификаторы, интерпретированные как indeterminates

Опции

All

Все переменные ограничиваются быть целыми числами

NonNegative

Все переменные ограничиваются быть неотрицательными

DualPrices

Эта опция только доступна в линейном случае. Это вызывает вывод двойных цен в дополнение к тройному решением.

Возвращаемые значения

Перечислите или последовательность списка и набора, содержащего решение линейной или смешано-целочисленной программы.

Ссылки

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.

Смотрите также

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте