- •1. Задачи нелинейного программирования
- •3. Задачи с ограничениями-равенствами. Метод неопределённых множителей Лагранжа
- •2. Многомерная безусловная оптимизация
- •4. Задачи с ограничениями—неравенствами
- •5. Критерий оптимальности; теорема Куна-Таккера
- •6. Линейное программирование. Различные формы задачи линейного программирования
- •8. Симплекс—таблица и критерий оптимальности. Элементарное преобразование базиса
- •9 Прямой симплекс—метод
- •10 Лексикографический вариант прямого симплекс-метода
- •11 Метод искусственного базиса
- •12. Двойственные задачи линейного программирования. Построение двойственных задач
- •13. Теоремы двойственности
- •7. Базис и базисное решение
9 Прямой симплекс—метод
Пусть
x
— некоторое базисное допустимое решение
задачи (5)-(7), соответствующее базису В.
В результате исследования симплекс-таблицы
с базисом В выявляется:
либо оптимальность решения
x; либо неразрешимость задачи; либо возможность перехода к новому базису.
Последовательное продвижение по базисам допустимых базисных решений вплоть до получения оптимального базиса или установления неразрешимости задачи составляет идею симплекс-метода.
Описание алгоритма:
Построить симплекс-таблицу, соответствующую заданному базисному допустимому решению (таблица, естественно, будет прямо допустимой, т.е. Zio >=0,i =
1,т).Если симплекс-таблица двойственно допустима, т.е. Zqj >= 0, j =
1,п, то КОНЕЦ (получено оптимальное решение).Иначе, выбрать ведущий столбец s : zos < 0, s >=1.
Если {i | Zis > 0, i >= 1} ≠(пуст. Множ.), то выбрать ведущую строку r по правилу:
zr0=zrs=min{ zi0=zis | zis>0 i>=1}
иначе КОНЕЦ (задача неразрешима из-за неограниченности целевой функции).
4) Преобразовать симплекс-таблицу, положить σ (r) := s и перейти на шаг 1.
Под итерацией понимается однократное выполнение шагов с 1-го по 4-й.
Утверждение 9. На каждой итерации алгоритма симплекс - таблица остается прямо допустимой.
Определение. Задача линейного программирования называется вырожденной, если у нее существует вырожденное базисное допустимое решение x, т. е. такое решение x, что |{j|xj ≠0}|<т.
Утверждение 10. В случае невырожденной задачи линейного программирования алгоритм симплекс-метода конечен.
В случае вырожденной задачи возможно так называемое зацикливание, когда в результате реализации нескольких итераций алгоритма происходит возврат к базису, встречавшемуся ранее. Следовательно, алгоритм может неограничено выполнять один и тот же цикл преобразования базиса. Для избежания зацикливания используется лексикографический вариант симплекс-метода, описанный в следующем подразделе.
10 Лексикографический вариант прямого симплекс-метода
Этот метод позволяет устранить зацикливание и за конечное число шагов получить решение.
Определение. Ненулевой вектор а = (z0, Z1,..., zn) лексикографически больше нуля (а > 0), если первая отличная от нуля компонента положительна: zp > 0, где р = min{i | zi ≠ 0}.
Если a', a" € Еп+1, то считается, что вектор а' лексикографически больше вектора а" (а' > а"), если а' — а" > 0.
Тем самым на Еп+1 определено отношение линейного порядка, так что в любой конечной совокупности векторов {аi} имеется лексикографически минимальный вектор, обозначаемый lex min{аi}
Определение.
Симплекс-таблица называется нормальной,
если ее строки аi
= (zi0,
Zi1,...,
zin),
i
= 1,т,
лексикографически положительны.
Утверждение 11. Любую прямо допустимую симплекс-таблицу можно преобразовать в нормальную путем перенумерации переменных (с соответствующей перестановкой столбцов).
При этом очевидно, что нормальная симплекс-таблица является прямо допустимой.
Отличия лексикографического варианта прямого симплекс-метода от обычного касаются только 0-го и 3-го шагов (остальные шаги остаются без изменений):
О') Начать с нормальной симплекс-таблицы.
3') Если {i | Zis > 0, i >= 1} ≠(пуст. Множ.), то выбрать ведущую строку r:
1/zrs =lex min {1/zisai|zis>0 i>=1}
иначе КОНЕЦ (задача неразрешима).
Элементарное преобразование базиса при этом сохраняет нормальность симплекс-таблицы.
Утверждение 12. В результате одной итерации лексикографического симплекс-метода происходит лексикографическое возрастание нулевой строки аo = (z00, Z01,..., z0n)
Утверждение 13. В ходе работы лексикографического симплекс - метода базисы не повторяются, что гарантирует его конечность.
