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

Примеры

Пример 1

Мы вычисляем все допустимые углы маленькой линейной программы:

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:

Пример 2

Когда каждый видит линейную программу, данную ограничениями 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:

Параметры

constr

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

obj

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

seti

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

setn

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

vars

Список, содержащий переменные линейной программы, описанной constr и obj и существующими опциями

Опции

All

Эта опция может появиться в двух различных местах в вызове linopt::corners. Если это - часть линейной программы, это означает, что все переменные ограничиваются быть целыми числами. Если это появляется как третье или дальше аргумент вызова, это означает, что все углы, не только допустимые единицы должны быть вычислены linopt::corners.

NonNegative

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

Logic

Это позволяет алгоритму искать углы в плоскостях как 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.

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

Функции MuPAD