linopt
:: Transparent::suggest
Предложите следующий шаг в симплексном алгоритме
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
linopt::Transparent::suggest(tableau
)
linopt::Transparent::suggest(tableau)
предлагает следующий шаг в симплексном алгоритме для данной симплексной таблицы tableau
.
Обычно это предложение будет элементом центра, т.е. последовательностью основного и неосновной переменной. Если фаза I 2-фазового симплексного алгоритма была запущена явным образом (см. linopt::Transparent::phaseI_tableau
), и текущая таблица принадлежит выполнимому решению, предложение будет строкой "linopt::Transparent::phaseII_tableau"
. В конце вычисления 'предложение' является идентификатором OPTIMAL
.
На результат linopt::Transparent::suggest
можно влиять, если глобальный идентификатор OPTIMAL
имеет значение. Поэтому идентификатор OPTIMAL
защищен.
Мы взглянули на линейную программу, где обычная симплексная таблица данной проблемы не является последней таблицей во время вычисления симплексного алгоритма. Рассмотрение обычной симплексной таблицы, мы видим, что элемент slk[2] - маркированная строка и x-labeled столбец является элементом центра:
k := [{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, NonNegative]: t := linopt::Transparent(k); linopt::Transparent::suggest(t)
delete k, t:
Здесь обычная симплексная таблица все еще содержит решение линейной программы, если линейная целевая функция должна минимизировать (см. linopt::Transparent
для получения дополнительной информации):
k := [{x+y>=-1, x+y<=3}, x+2*y, NonNegative]: t := linopt::Transparent(k); linopt::Transparent::suggest(t)
delete k, t:
Здесь мы явным образом запускаем первую фазу симплексного алгоритма. Если мы хотим решение исходной линейной программы, мы должны применить вторую фазу симплексного алгоритма:
k := [{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, NonNegative]: t := linopt::Transparent(k): t := linopt::Transparent::phaseI_tableau(t): t := linopt::Transparent::simplex(t): linopt::Transparent::suggest(t)
delete k, t:
|
Симплексная таблица доменного типа |
Последовательность 2 идентификаторов, идентификатор OPTIMAL
или строка "linopt::Transparent::phaseII_tableau"
.
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.