Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_omm (2).doc
Скачиваний:
11
Добавлен:
19.12.2018
Размер:
1.25 Mб
Скачать

12. Критерий оптимальности

Проверка на оптимальность опорного плана проходит с помощью критерия оптимальности, переход к другому опорному плану — с помощью преобразований Жордана-Гаусса и с использованием критерия оптимальности.

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

Признак оптимальности заключается в следующих двух теоремах.

Теорема 1. Если для некоторого вектора, не входящего в базис, выполняется условие:

, где 

то можно получить новый опорный план, для которого значение целевой функции будет больше исходного; при этом могут быть два случая:

если все координаты вектора, подлежащего вводу в базис, неположительны, то задача линейного программирования не имеет решения; если имеется хотя бы одна положительная координата у вектора, подлежащего вводу в базис, то можно получить новый опорный план.

Теорема 2. Если для всех векторов выполняется условие , то полученный план является оптимальным.

13. алгоритм стандартного симплекс методоа 1. Если предложена задача на максимум, то сформулировать эквивалентную задачу на минимум (умножить коэффициенты целевой функции на –1). 2. Обеспечить условие bi >= 0, при необходимости умножив для этого соответствующие уравнения системы на –1. 3. Если имеется готовое начальное базисное решение задачи, то перейти к п. 7, иначе перейти к п. 4. 4. Сформулировать вспомогательную ЗЛП (для нахождения начального базисного решения исходной задачи) следующим образом: целевая функция: xn+1 + … + xn+m i-тое уравнение системы: ai1x1 + … + ainxn + xn+i = bi 5. Решить вспомогательную ЗЛП, используя данный алгоритм, при этом положив начальным базисом (xn+1,…,xn+m). 6. Если после окончания решения вспомогательной ЗЛП в ее базисе останутся вектора An+i, где i > 0, то: 6.1. Если среди xn+i есть ненулевые, то исходная ЗЛП не имеет решения. 6.2. Если в симплекс-таблице, тем не менее, для всех таких i xij = 0, где j=1..n, то все вспомогательные вектора, вошедшие в базис, из него исключаются. Перейти к п. 7. 6.3. Если существуют ненулевые xij, то принудительно ввести в базис вектор Aj и вывести из базиса вектор Ai. Повторять п. 6.3 до тех пор, пока перестанут выполняться условия п. 6 или будут выполняться условия п. 6.2. После достижения необходимого результата перейти соответственно к п. 7 или к п. 6.2. 7. Сформировать симплекс-таблицу (если был задан начальный базис) заново или путем корректирования симплекс-таблицы вспомогательной ЗЛП (отсечь ненужные ее части). 8. Сделать преобразования симплекс-таблицы таким образом, чтобы матрица, составленная последовательно из векторов текущего базиса, была единичной. 9. Найти оценки Dj = (CБ, Aj) – Cj. Если среди них нет положительных, то перейти к п. 12, иначе выбрать среди них максимальную положительную Dk = max Dj и вывести из базиса соответствующий ей вектор Ak. 10. Положить I-1 = B (множество индексов векторов, входящих в текущий базис). Cтроить In+1 = { i In| для xik > 0 q = min xi,n/xik – одинаково для всех i }, пока очередное In+1 не будет состоять из одного элемента. Вектор с данным индексом необходимо вывести из базиса. Другой вариант: I0 пусто. В этом случае решение ЗЛП: целевая функция не ограничена (бесконечно убывает). 11. Изменить базис (вывести и ввести вектора, которые были определены для этого ранее). Перейти к п. 8. 12. Окончательное оптимальное решение формируется следующим образом: неизвестные, соответствующие не вошедшим в окончательный базис векторам, полагаются равными 0, а неизвестные, соответствующие векторам, вошедшим в базис, берутся из столбца A0 симплекс-таблицы (в этом столбце они распогалаются в том же порядке, в котором в таблице следуют базисные вектора).

14. Рассматривая симплекс-метод, мы предполагали, что задача линейного программирования является невырожденной, т.е. каждый опорный план содержит ровно m положительных компонент, где m - число ограничений в задаче. В вырожденном опорном плане число положительных компонент оказывается меньше числа ограничений: некоторые базисные переменные, соответствующие данному опорному плану, принимают нулевые значения. Используя геометрическую интерпретацию для простейшего случая, когда n - m = 2 (число небазисных переменных равно 2), легко отличить вырожденную задачу от невырожденной. В вырожденной задаче в одной вершине многогранника условий пересекается более двух прямых, описываемых уравнениями вида xi = 0. Это значит, что одна или несколько сторон многоугольника условий стягиваются в точку. 

Опорный план называется невырожденным, если он содержит ровно т положительных компонент, в противном случае он называется вырожденным.

Если при соблюдении условия допустимости для исключения из базиса можно выбрать более чем 1 вариант, то следующая итерация симплекс метода приведёт к вырожденному решению, когда одна из базисных переменных равна нулю. Последующие итерации могут не привести к улучшению значений целевой функции и становится возможным бесконечное повторение одной и той же последовательности итераций, не улучшающих решение. Такая ситуация называется зацикливанием. Чтобы обеспечивать единственность выбора выводимого вектора, исходя из условий допустимости, разработано несколько специальных приёмов. 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]