linopt
:: corners
Возвратите выполнимые углы линейной программы
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
linopt::corners([constr, obj]
,vars
, <All>, <Logic>) linopt::corners([constr, obj, <NonNegative>, <seti>]
,vars
, <All>, <Logic>) linopt::corners([constr, obj, <NonNegative>, <All>]
,vars
, <All>, <Logic>) linopt::corners([constr, obj, <setn>, <seti>]
,vars
, <All>, <Logic>) linopt::corners([constr, obj, <setn>, <All>]
,vars
, <All>, <Logic>)
linopt::corners([constr, obj], vars)
возвращает все допустимые углы линейной программы.
linopt::corners([constr, obj], vars, All)
возвращает все углы линейной программы.
[constr
, obj
] является линейной программой той же структуры как в linopt::maximize
. Второй vars
параметра задает порядок, в котором распечатаны компоненты найденных углов; если, например, {x=1, y=2} угол и [x, y] вводился, [1,2] будет возвращен.
Как опции, для нахождения углов, можно использовать All
и/или Logic
. All
вызывает вывод невыполнимых углов также, Logic
позволяет алгоритму искать углы в плоскостях как x=0 также несмотря на то, что x ≥ 0 не является частью входа. Это гарантирует, что для всех непустых выполнимых областей угол будет найден.
Как результат linopt::corners
возвращено тройное, состоящее из набора углов, максимальное найденное значение целевой функции и угла, сопоставленного к нему. Если нет никакого выполнимого найденного угла, только пустое множество возвращено.
Мы вычисляем все допустимые углы маленькой линейной программы:
k := [{4 <= 2*x + 2*y, -2 <= 4*y - 2*x, -8 <= y - 2*x, y - 2*x <= -2, y <= 6}, x + y]: linopt::corners(k, [x, y])
Теперь мы вычисляем все углы, также те, которые не допустимы. Мы видим, что теперь добираемся, например, также угол, который дан сокращением - 2 x + 4 y = 2 и - 2 x + y ≤ - 2. Здесь мы видим, что недопустимый угол (13,6) имеет максимальное значение целевой функции 19:
k := [{4 <= 2*x + 2*y, -2 <= 4*y - 2*x, -8 <= y - 2*x, y - 2*x <= -2, y <= 6}, x + y]: linopt::corners(k, [x, y], All)
delete k:
Когда каждый видит линейную программу, данную ограничениями x + y ≥ - 1 и x + y ≤ 3 и линейная целевая функция, x + 2 y не имеет никаких углов:
l := [{-1 <= x + y, x + y <= 3}, x + 2*y]: linopt::corners(l,[x,y]), linopt::corners(l,[x,y], All)
Если вы также принимаете сокращение с координатной плоскостью как угол, некоторые углы существуют. Можно использовать linopt::plot_data
, чтобы визуализировать эту проблему:
linopt::corners(l, [x,y], Logic)
delete l:
|
Набор или список линейных ограничений |
|
Линейное выражение |
|
Набор, который содержит идентификаторы, интерпретированные как indeterminants |
|
Набор, который содержит идентификаторы, интерпретированные как indeterminants |
|
Список, содержащий переменные линейной программы, описанной |
|
Эта опция может появиться в двух различных местах в вызове |
|
Все переменные ограничиваются быть неотрицательными |
|
Это позволяет алгоритму искать углы в плоскостях как x=0 также, несмотря на то, что x ≥ 0 не является частью линейной программы. |
Установите или список с 3 элементами.
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.