Метод предиктора-корректора Mehrotra - Mehrotra predictor–corrector method

Метод предиктора-корректора Мехротры в оптимизация это конкретный метод внутренней точки для линейное программирование. Он был предложен в 1989 году Санджаем Мехротра.[1]

Метод основан на том, что на каждом итерация алгоритма внутренней точки необходимо вычислить Разложение Холецкого (факторизация) большой матрицы, чтобы найти направление поиска. Шаг факторизации - самый затратный в вычислительном отношении шаг в алгоритме. Следовательно, имеет смысл использовать одно и то же разложение более одного раза перед его повторным вычислением.

На каждой итерации алгоритма метод предиктора-корректора Mehrotra использует одно и то же разложение Холецкого для поиска двух различных направлений: предиктора и корректора.

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

Полное направление поиска - это сумма направления предсказателя и направления корректора.

Хотя теоретическая сложность еще не ограничена, метод предсказателя-корректора Mehrotra широко используется на практике.[2] Его шаг корректора использует то же Разложение Холецкого эффективно обнаруживается на этапе прогнозирования, и поэтому он лишь ненамного дороже стандартного алгоритма внутренней точки. Однако дополнительные накладные расходы на одну итерацию обычно окупаются сокращением количества итераций, необходимых для достижения оптимального решения. Также кажется, что он очень быстро сходится, когда он близок к оптимальному.

Вывод

Вывод этого раздела следует плану Нокедала и Райта.[3]

Шаг предиктора - направление аффинного масштабирования

Линейную программу всегда можно сформулировать в стандартном виде

где и определить проблему с ограничения и уравнения в то время как - вектор переменных.

В Условия Каруша-Куна-Такера (ККТ) для проблемы

где и откуда .

Эти условия можно переформулировать как отображение следующим образом

Затем метод предиктора-корректора работает с использованием метода Ньютона для получения направления аффинного масштабирования. Это достигается путем решения следующей системы линейных уравнений

где , определяется как

является якобианом F.

Таким образом, система становится

Центрирующий шаг

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

Для значения параметра центрирования шаг центрирования может быть вычислен как решение

Корректор шаг

Рассматривая систему, используемую для вычисления направления аффинного масштабирования, определенного выше, можно отметить, что выполнение полного шага в направлении аффинного масштабирования приводит к тому, что условие дополнительности не выполняется:

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

Агрегированная система - центр-корректор направления

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

Агрегированная система

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

Адаптивный выбор параметра центрирования

Направление аффинного масштабирования можно использовать для определения эвристики для адаптивного выбора параметра центрирования как

где

Вот, - мера двойственности аффинного шага и - мера двойственности предыдущей итерации.[3]

Длина шага

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

Адаптация к квадратичному программированию

Хотя модификации, представленные Mehrotra, были предназначены для алгоритмов внутренних точек для линейного программирования, идеи были расширены и успешно применены к квадратичное программирование также.[3]

использованная литература

  1. ^ Мехротра, С. (1992). «О реализации метода прямой – двойственной внутренней точки». SIAM Journal по оптимизации. 2 (4): 575–601. Дои:10.1137/0802028.
  2. ^ «В 1989 году Мехротра описал практический алгоритм линейного программирования, который остается основой большинства современных программ; его работа появилась в 1992 году».

    Potra, Florian A .; Стивен Дж. Райт (2000). «Методы внутренней точки». Журнал вычислительной и прикладной математики. 124 (1–2): 281–302. Дои:10.1016 / S0377-0427 (00) 00433-7.

  3. ^ а б c d Нокедаль, Хорхе; Райт, Стивен Дж. (2006). Численная оптимизация. Соединенные Штаты Америки: Спрингер. С. 392–417, 448–496. ISBN  978-0387-30303-1.