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 защищен.

Примеры

Пример 1

Мы взглянули на линейную программу, где обычная симплексная таблица данной проблемы не является последней таблицей во время вычисления симплексного алгоритма. Рассмотрение обычной симплексной таблицы, мы видим, что элемент 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:

Пример 2

Здесь обычная симплексная таблица все еще содержит решение линейной программы, если линейная целевая функция должна минимизировать (см. linopt::Transparent для получения дополнительной информации):

k := [{x+y>=-1, x+y<=3}, x+2*y, NonNegative]:   
t := linopt::Transparent(k);                      
linopt::Transparent::suggest(t)

delete k, t:

Пример 3

Здесь мы явным образом запускаем первую фазу симплексного алгоритма. Если мы хотим решение исходной линейной программы, мы должны применить вторую фазу симплексного алгоритма:

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:

Параметры

tableau

Симплексная таблица доменного типа linopt::Transparent

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

Последовательность 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.