Пересмотренный симплексный метод
В математической оптимизации пересмотренный симплекс-метод является вариантом Джорджа Данцига для симплекс-метода линейного программирования .
Пересмотренный симплекс-метод математически эквивалентен стандартному симплекс-методу, но отличается по реализации. Вместо поддержания таблицы, которая явно представляет ограничения, адаптированные к набору базовых переменных, он поддерживает представление основы матрицы , представляющей ограничения. Матрично-ориентированный подход позволяет повысить эффективность вычислений за счет выполнения операций с разреженными матрицами. [1]
Формулировка задачи
[ редактировать ]В оставшейся части обсуждения предполагается, что задача линейного программирования приведена к следующей стандартной форме:
где А € ℝ m × n . Без ограничения общности предполагается, что матрица ограничений A имеет полный ранг строки и что задача разрешима, т. е. существует хотя бы один x ≥ 0 такой, что Ax = b . Если A имеет недостаточный ранг, то либо существуют избыточные ограничения, либо проблема неразрешима. Обе ситуации можно решить с помощью предварительного шага.
Алгоритмическое описание
[ редактировать ]Условия оптимальности
[ редактировать ]Для линейного программирования условия Каруша – Куна – Такера являются одновременно необходимыми и достаточными для оптимальности. Условия ККТ задачи линейного программирования в стандартной форме:
где λ и s — множители Лагранжа , связанные с ограничениями Ax = b и x ≥ 0 соответственно. [2] Последнее условие, которое эквивалентно s i x i = 0 для всех 1 < i < n , называется дополнительным условием нежесткости .
Согласно тому, что иногда называют фундаментальной теоремой линейного программирования , вершина x допустимого многогранника может быть идентифицирована как базис B многогранника A, выбранный из столбцов последнего. [а] Поскольку A имеет полный ранг, B неособа. Без ограничения общности предположим, что A = [ B N ] . Тогда x определяется выражением
где Икс В ≥ 0 . Раздел c и s соответственно на
Чтобы удовлетворить дополнительному условию нежесткости, пусть s B = 0 . Отсюда следует, что
что подразумевает, что
Если s N ≥ 0 в этой точке, условия ККТ выполняются, и, следовательно, x является оптимальным.
Операция поворота
[ редактировать ]При нарушении условий ККТ сводная операция, заключающаяся во введении в базис столбца N за счет существующего столбца в B. выполняется В отсутствие вырождения операция поворота всегда приводит к строгому уменьшению c Т х . Следовательно, если задача ограничена, пересмотренный симплексный метод должен завершиться в оптимальной вершине после повторных операций поворота, поскольку существует только конечное число вершин. [4]
выберите индекс m < q ≤ n такой, что s q < 0 В качестве входного индекса . Соответствующий столбец A , A q , будет перемещен в базис, и x q будет разрешено увеличиваться с нуля. Можно показать, что
на единицу т. е. каждое увеличение x q приводит к уменьшению −s на q in c Т х . [5] С
x B необходимо соответственно уменьшить на Δ x B = B −1 A q x q при условии x B - Δ x B ≥ 0 . Пусть d = B −1 А q . Если d ≤ 0 , независимо от того, насколько x q увеличивается , x B − Δ x B останется неотрицательным. Следовательно, c Т x можно произвольно уменьшить, и, таким образом, задача не ограничена. В противном случае выберите индекс p = argmin 1≤ i ≤ m { x i / d i | d i > 0} в качестве индекса ухода . Этот выбор эффективно увеличивает x q от нуля до тех пор, пока x p не уменьшится до нуля, сохраняя при этом осуществимость. Операция поворота завершается заменой A p на A q в базисе.
Численный пример
[ редактировать ]Рассмотрим линейную программу, в которой
Позволять
изначально, что соответствует допустимой вершине x = [0 0 0 10 15] Т . В этот момент,
Выберите q = 3 в качестве входного индекса. Тогда d = [1 3] Т на единицу , что означает, что увеличение x 3 приводит к x 4 и x 5 уменьшению на 1 и 3 соответственно. Следовательно, x 3 увеличивается до 5 , после чего x 5 уменьшается до нуля, и p = 5 становится индексом ухода.
После поворотной операции
Соответственно,
Положительное значение s N указывает на то, что x теперь является оптимальным.
Практические вопросы
[ редактировать ]Вырождение
[ редактировать ]Поскольку пересмотренный симплекс-метод математически эквивалентен симплекс-методу, он также страдает вырождением, когда операция поворота не приводит к уменьшению c. Т x , а цепочка операций поворота вызывает циклическое движение базиса. Чтобы предотвратить зацикливание и гарантировать завершение, можно использовать пертурбацию или лексикографическую стратегию. [6]
Базовое представление
[ редактировать ]два типа линейных систем с участием B В пересмотренном симплекс-методе присутствуют :
Вместо рефакторизации B обычно LU-факторизация напрямую обновляется после каждой операции поворота, для чего существует несколько стратегий, таких как методы Форреста-Томлина и Бартельса-Голуб. Однако объем данных, представляющих обновления, а также числовые ошибки, со временем накапливается и делает необходимым периодический рефакторинг. [1] [7]
Примечания и ссылки
[ редактировать ]Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Морган 1997 , §2.
- ^ Носедал и Райт 2006 , с. 358, уравнение. 13.4.
- ^ Носедал и Райт 2006 , с. 363, Теорема 13.2.
- ^ Носедал и Райт 2006 , с. 370, Теорема 13.4.
- ^ Носедал и Райт 2006 , с. 369, уравнение. 13.24.
- ^ Носедал и Райт 2006 , с. 381, §13.5.
- ^ Носедал и Райт 2006 , с. 372, §13.4.
Библиография
[ редактировать ]- Морган, СС (1997). Сравнение алгоритмов симплекс-метода (магистерская диссертация). Университет Флориды . Архивировано из оригинала 7 августа 2011 года.
- Носедаль, Дж.; Райт, С.Дж. (2006). Микош, ТВ; Резник, С.И.; Робинсон, С.М. (ред.). Численная оптимизация . Серия Springer по исследованию операций и финансовой инженерии (2-е изд.). Нью-Йорк, штат Нью-Йорк, США: Springer . ISBN 978-0-387-30303-1 .