Метод внутренней точки
Методы внутренней точки (также называемые барьерными методами или IPM ) — это алгоритмы для решения линейных и нелинейных выпуклой оптимизации задач . IPM сочетают в себе два преимущества ранее известных алгоритмов:
- Теоретически время их выполнения полиномиально — в отличие от симплексного метода , который в худшем случае имеет экспоненциальное время выполнения.
- На практике они работают так же быстро, как и симплексный метод — в отличие от метода эллипсоида , который в теории имеет полиномиальное время выполнения, но очень медленный на практике.
В отличие от симплекс-метода, который пересекает границу допустимой области, и метода эллипсоида, который ограничивает допустимую область снаружи , IPM достигает наилучшего решения, пересекая внутреннюю часть допустимой области — отсюда и название.
История [ править ]
Метод внутренней точки был открыт советским математиком И. И. Дикиным в 1967 году. [1] Этот метод был заново изобретен в США в середине 1980-х годов. В 1984 году Нарендра Кармаркар разработал метод линейного программирования, названный алгоритмом Кармаркара . [2] который работает за доказуемо полиномиальное время ( операции над L -битными числами, где n — количество переменных и констант), а также очень эффективны на практике. Статья Кармаркара вызвала всплеск интереса к методам внутренних точек. Два года спустя Джеймс Ренегар изобрел первый метод отслеживания внутренней точки по пути с использованием времени выполнения. . Позже метод был расширен от линейных до задач выпуклой оптимизации на основе самосогласованной барьерной функции , используемой для кодирования выпуклого множества . [3]
Любую задачу выпуклой оптимизации можно преобразовать в минимизацию (или максимизацию) линейной функции на выпуклом множестве путем преобразования к форме надграфика . [4] : 143 Идея кодирования допустимого множества с использованием барьера и разработки барьерных методов изучалась Энтони В. Фиакко, Гартом П. Маккормиком и другими в начале 1960-х годов. Эти идеи в основном развивались для общего нелинейного программирования , но позже от них отказались из-за наличия более конкурентоспособных методов для этого класса задач (например, последовательного квадратичного программирования ).
Юрий Нестеров и Аркадий Немировский придумали особый класс таких барьеров, с помощью которых можно закодировать любое выпуклое множество. Они гарантируют, что количество итераций алгоритма ограничено полиномом по размерности и точности решения. [5] [3]
Класс примитивно-двойственных методов следования по внутренней точке считается наиболее успешным. Алгоритм предиктора-корректора Мехротры обеспечивает основу для большинства реализаций этого класса методов. [6]
Определения [ править ]
Нам дана выпуклая программа вида:
е ( x_t ) - е * ≤ е
г я ( x_t ) ≤ ε для i в 1,..., m ,
х в G ,
где f * является оптимальным решением. Решатель называется полиномиальным , если общее количество арифметических операций за первые T шагов не превосходит
poly(problem-size) * log( V / ε ),
где V — некоторая константа, зависящая от данных, например, разница между наибольшим и наименьшим значением в допустимом наборе. Другими словами, V / ε — это «относительная точность» решения — точность по наибольшему коэффициенту. log( V / ε ) представляет количество «цифр точности». Следовательно, решатель является «полиномиальным», если каждая дополнительная цифра точности требует количества операций, полиномиального по размеру задачи.
Типы [ править ]
Типы методов внутренней точки включают в себя:
- Возможные методы уменьшения : алгоритм Кармаркара был первым.
- Методы следования по пути : алгоритмы Джеймса Ренегара [7] и Кловис Гонзага [8] были первыми.
- Первично-двойственные методы .
Методы следования по пути [ править ]
Идея [ править ]
Учитывая программу выпуклой оптимизации (P) с ограничениями, мы можем преобразовать ее в программу без ограничений , добавив барьерную функцию . В частности, пусть b — гладкая выпуклая функция, определенная внутри допустимой области G , такая, что для любой последовательности { x j in Interior(G)}, предел которой находится на границе G : . Мы также предполагаем, что b невырожден, то есть: положительно определен для всех x в интерьере (G). Теперь рассмотрим семейство программ:
( P t ) минимизировать t * f(x) + b(x)
Технически программа ограничена, поскольку определен только внутри G. b Но практически ее можно решить как программу без ограничений, поскольку любой решатель, пытающийся минимизировать функцию, не приблизится к границе, где b стремится к бесконечности. Следовательно, ( P t ) имеет единственное решение — обозначим его x *( t ). Функция x * является непрерывной функцией t , которая называется центральным путем . Все предельные точки x * при стремлении t к бесконечности являются оптимальными решениями исходной программы (P).
Метод следования по пути — это метод отслеживания функции x * вдоль некоторой возрастающей последовательности t 1 ,t 2 ,..., то есть: вычисление достаточно хорошего приближения x i к точке x *( t i ), такая, что разность x i - x *( t i ) приближается к 0, когда i приближается к бесконечности; тогда последовательность x i приближается к оптимальному решению (P). Для этого необходимо указать три вещи:
- Барьерная функция b(x).
- Политика определения штрафных параметров t i .
- Решатель неограниченной оптимизации, используемый для решения ( P i ) и поиска xi метод , например, Ньютона . что мы можем использовать каждый xi Обратите внимание , в качестве отправной точки для решения следующей задачи ( P i+1 ).
Основная проблема при доказательстве политайм-метода заключается в том, что по мере роста штрафного параметра решение приближается к границе, и функция становится более крутой. Время работы решателей, таких как метод Ньютона, становится больше, и трудно доказать, что общее время выполнения является полиномиальным.
Отступник [7] и Гонзага [8] доказал, что конкретный экземпляр метода следования по пути является политаймом:
- Ограничения (и цель) являются линейными функциями;
- Барьерная функция является логарифмической : b(x) := - sum j log( -g j ( x )).
- Параметр штрафа t обновляется геометрически, т.е. , где µ — константа (они взяли , где m — количество ограничений-неравенств);
- Решающая программа — это метод Ньютона, и один выполняется для каждого шага t шаг Ньютона .
Они доказали, что в этом случае разница x i - x *( t i ) остается не более 0,01, а f( x i ) - f* составляет не более 2* m / t i . Таким образом, точность решения пропорциональна 1/ t i , поэтому для добавления одной цифры точности достаточно умножить ti . на 2 (или любой другой постоянный коэффициент), что требует O(sqrt( m )) шагов Ньютона . Поскольку каждый шаг Ньютона занимает O( mn 2 ) операций, общая сложность O( m 3/2 н 2 ) операции для точности разряда.
Юрий Нестеров распространил идею от линейных программ к нелинейным. Он отметил, что основным свойством логарифмического барьера, использованным в приведенных выше доказательствах, является то, что он самосогласован с конечным параметром барьера. Следовательно, многие другие классы выпуклых программ могут быть решены за политайм с использованием метода следования по пути, если мы сможем найти подходящую самосогласованную барьерную функцию для их допустимой области. [3] : Раздел 1
Подробности [ править ]
Нам дана задача выпуклой оптимизации (П) в «стандартной форме»:
минимизировать с Т x st x в G ,
где G выпуклая и замкнутая. Мы также можем предположить, что G ограничена (мы можем легко сделать ее ограниченной, добавив ограничение | x |≤ R для некоторого достаточно большого R ). [3] : Раздел 4
Чтобы использовать метод внутренней точки, нам нужен барьер для G. самосогласованный Пусть b — M -самосогласованный барьер для G , где M ≥1 — параметр самосогласования. что можем эффективно вычислить значение b , его градиент и гессиан для каждой точки x внутри G. Мы предполагаем ,
Для каждого t >0 мы определяем штрафную цель f t (x) := c Т х + б( х ) . Мы определяем путь минимизаторов следующим образом: x*(t) := arg min f t (x) . Аппроксимируем этот путь вдоль возрастающей последовательности t i . Последовательность инициализируется определенной нетривиальной двухфазной процедурой инициализации. Затем он обновляется по следующему правилу: .
Для каждого t i находим приблизительный минимум f ti , обозначаемый xi мы . Приблизительный минимум выбирается так, чтобы удовлетворять следующему «условию близости» (где L — допуск пути ):
.
Чтобы найти x i +1 , мы начинаем с x i и применяем демпфированный метод Ньютона . Мы применяем несколько шагов этого метода, пока вышеуказанное «отношение близости» не будет удовлетворено. Первая точка, удовлетворяющая этому соотношению, обозначается x i +1 . [3] : Раздел 4
и сложность Конвергенция
Скорость сходимости метода определяется следующей формулой для каждого i : [3] : Предложение 4.4.1
принимая , количество шагов Ньютона, необходимое для перехода от , фиксированное не более чем xi к xi +1 число, которое зависит только от r и L . В частности, общее количество шагов Ньютона, необходимое для нахождения ε -приближенного решения (т. е. нахождения x в G такого, что c Т x - c* ≤ ε ) не более: [3] : Thm.4.4.1
где постоянный множитель O(1) зависит только r и L. от Число шагов Ньютона, необходимое для двухэтапной процедуры инициализации, не превышает: [3] : Thm.4.5.1
где постоянный множитель O(1) зависит только от r и L , а , и является некоторой точкой внутри G . В целом, общая ньютоновская сложность поиска ε -приближенного решения не превышает
, где V — некоторая константа, зависящая от задачи: .
Каждый шаг Ньютона занимает O( n 3 ) арифметические операции.
фазы I Инициализация : методы
Чтобы инициализировать методы следования по пути, нам нужна точка внутри допустимой G. области Другими словами: если G определяется неравенствами gi x ( ) ≤ 0, то нам нужен некоторый x , для которого gi ( ) x < 0 для всех i из 1,..., m . Если у нас нет такой точки, нам нужно найти ее, используя так называемый метод фазы I. [4] : 11.4 Простой метод фазы I заключается в решении следующей выпуклой программы:
- Если s *<0, то мы знаем, что x* является внутренней точкой исходной задачи и можем перейти к «фазе II», которая решает исходную задачу.
- Если s *>0, то мы знаем, что исходная программа неосуществима — допустимая область пуста.
- Если s *=0 и оно достигается некоторым решением x*, то задача разрешима, но не имеет внутренней точки; если оно не достигнуто, то задача невыполнима.
Для этой программы легко получить внутреннюю точку: мы можем произвольно взять x = 0 и принять s за любое число, большее max( f 1 (0),..., f m (0)). Поэтому ее можно решить методами внутренних точек. Однако время выполнения пропорционально log(1/ s *). Когда s* приближается к 0, становится все труднее и труднее найти точное решение проблемы фазы I и, следовательно, труднее решить, выполнима ли исходная задача.
соображения Практические
Теоретические гарантии предполагают, что параметр штрафа увеличивается со скоростью , поэтому наихудшее количество требуемых шагов Ньютона равно . Теоретически, если µ больше (например, 2 или более), то наихудшее количество требуемых шагов Ньютона находится в . Однако на практике большее значение ц приводит к гораздо более быстрой сходимости. Эти методы называются методами длинного шага . [3] : Раздел 4.6 На практике, если ц находится между 3 и 100, то программа сходится за 20–40 шагов Ньютона, независимо от количества ограничений (хотя время выполнения каждого шага Ньютона, конечно, растет с количеством ограничений). Точное значение μ в этом диапазоне мало влияет на производительность. [4] : глава 11
потенциала Методы снижения
Для методов потенциальной редукции задача представляется в конической форме : [3] : Раздел 5
минимизировать с Т x st x в {b+L} ᚢ K ,
где b — вектор из R н , L — линейное подпространство в R н (поэтому b + L — аффинная плоскость ), а K — замкнутый заостренный выпуклый конус с непустой внутренностью. Любую выпуклую программу можно преобразовать к конической форме. Чтобы использовать метод редукции потенциала (в частности, расширение алгоритма Кармаркара до выпуклого программирования), нам необходимы следующие предположения: [3] : Раздел 6
- A. Допустимое множество {b+L} ᚢ K ограничено и пересекает внутреннюю часть конуса K .
- Б. Нам заранее дано строго допустимое решение х т. е. допустимое решение внутри К. ^ ,
- C. Мы заранее знаем оптимальное целевое значение c* задачи.
- D. Дан M -логарифмически-однородный самосогласованный барьер F для конуса K .
Допущения A, B и D необходимы в большинстве методов внутренней точки. Предположение C специфично для подхода Кармаркара; его можно смягчить, используя «скользящее объективное значение». Возможно дальнейшее сведение программы к формату Кармаркара :
минимизировать s Т х ст х в М ᚢ К и е Т х = 1
где M — линейное подпространство в R н , а оптимальное целевое значение равно 0.В основе метода лежит следующая скалярная потенциальная функция:
v ( Икс ) знак равно F ( Икс ) + M пер ( s Т х )
где F — M -самосогласованный барьер для допустимого конуса. Можно доказать, что, когда x строго осуществима и v ( x ) очень мало (- очень отрицательно), x приблизительно оптимален. Идея метода уменьшения потенциала состоит в том, чтобы изменить x так, чтобы потенциал на каждой итерации уменьшался как минимум на фиксированную константу X (в частности, X = 1/3-ln(4/3)). Это означает, что после i итераций разница между целевым значением и оптимальным целевым значением составляет не более V * exp(- i X / M ), где V — константа, зависящая от данных. Следовательно, число шагов Ньютона, необходимое для получения ε -приближенного решения, не превосходит .
Обратите внимание, что в методах следования по пути выражение имеет вид а не M , что теоретически лучше. Но на практике метод Кармаркара позволяет сделать гораздо большие шаги к цели, поэтому он может сойтись гораздо быстрее, чем теоретические гарантии.
Первично-двойственные методы [ править ]
Идею первично-двойственного метода легко продемонстрировать для нелинейной оптимизации с ограничениями . [9] [10] Для простоты рассмотрим следующую задачу нелинейной оптимизации с ограничениями-неравенствами:
Эта задача оптимизации, ограниченная неравенством, решается путем преобразования ее в неограниченную целевую функцию, минимум которой мы надеемся эффективно найти.В частности, логарифмическая барьерная функция , связанная с (1), равна
Здесь — небольшая положительная скалярная величина, иногда называемая «параметром барьера». Как сходится к нулю минимум должно сходиться к решению (1).
Градиент дифференцируемой функции обозначается .Градиент барьерной функции равен
В дополнение к исходной («основной») переменной мы вводим множителе Лагранжа , основанную на двойную переменную
Уравнение (4) иногда называют условием «возмущенной дополнительности» из-за его сходства с «дополнительной нежесткостью» в условиях ККТ .
Мы стараемся найти такие для которого градиент барьерной функции равен нулю.
Замена из (4) в (3) получаем уравнение для градиента:
Интуиция, лежащая в основе (5), заключается в том, что градиент должно лежать в подпространстве, охватываемом градиентами ограничений. «Нарушенная дополнительность» с малыми (4) можно понимать как условие, что решение должно либо лежать вблизи границы , или что проекция градиента на компоненте ограничения нормальный должен быть почти нулевым.
Позволять быть направлением поиска для итеративного обновления .Применяя метод Ньютона к (4) и (5), получаем уравнение для :
где представляет собой Гессе матрицу , представляет собой матрицу диагональную , и диагональная матрица .
Ввиду (1), (4) условие
должны соблюдаться на каждом этапе. Это можно сделать, выбрав соответствующий :
Типы выпуклых программ, решаемых точек методами внутренних
Вот некоторые частные случаи выпуклых программ, которые можно эффективно решить методами внутренних точек. [3] : Раздел 10
Линейные программы [ править ]
Рассмотрим линейную программу вида:
программы с квадратичными Квадратичные ограничениями
Дана квадратичная программа с квадратичными ограничениями вида:
L p нормальная аппроксимация [ править ]
Рассмотрим задачу вида
Геометрические программы [ править ]
Рассмотрите проблему
Существует самосогласованный барьер с параметром 2 k + m . Метод следования по пути имеет сложность Ньютона O( mk 2 + к 3 + н 3 ) и общая сложность O(( k+m ) 1/2 [ МК 2 + к 3 + н 3 ]).
Semidefinite programs [ edit ]
Методы внутренних точек можно использовать для решения полуопределенных программ. [3] : Раздел 11
См. также [ править ]
- Аффинное масштабирование
- Расширенный метод Лагранжа
- Алгоритм Шамболь-Пока
- Условия Каруша – Куна – Такера
- Метод штрафа
Ссылки [ править ]
- ^ Дикин, И.И. (1967). «Итерационное решение задач линейного и квадратичного программирования» . Докл. Акад. Наук СССР . 174 (1): 747–748.
- ^ Кармаркар, Н. (1984). «Новый алгоритм линейного программирования с полиномиальным временем» (PDF) . Материалы шестнадцатого ежегодного симпозиума ACM по теории вычислений – STOC '84 . п. 302. дои : 10.1145/800057.808695 . ISBN 0-89791-133-4 . Архивировано из оригинала (PDF) 28 декабря 2013 года.
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г час я дж к л м Аркадий Немировский (2004). Полиномиальные методы внутренней точки в выпуклом программировании .
- ↑ Перейти обратно: Перейти обратно: а б с Бойд, Стивен; Ванденберге, Ливен (2004). Выпуклая оптимизация . Кембридж: Издательство Кембриджского университета . ISBN 978-0-521-83378-3 . МР 2061575 .
- ^ Райт, Маргарет Х. (2004). «Революция внутренней точки в оптимизации: история, последние события и долгосрочные последствия» . Бюллетень Американского математического общества . 42 : 39–57. дои : 10.1090/S0273-0979-04-01040-7 . МР 2115066 .
- ^ Потра, Флориан А.; Стивен Дж. Райт (2000). «Методы внутренних точек» . Журнал вычислительной и прикладной математики . 124 (1–2): 281–302. дои : 10.1016/S0377-0427(00)00433-7 .
- ↑ Перейти обратно: Перейти обратно: а б Ренегар, Джеймс (1 января 1988 г.). «Алгоритм с полиномиальным временем, основанный на методе Ньютона, для линейного программирования» . Математическое программирование . 40 (1): 59–93. дои : 10.1007/BF01580724 . ISSN 1436-4646 .
- ↑ Перейти обратно: Перейти обратно: а б Гонзага, Кловис К. (1989), Мегиддо, Нимрод (редактор), «Алгоритм решения задач линейного программирования в операциях O (n3L)» , «Прогресс в математическом программировании: внутренние точки и связанные методы» , Нью-Йорк, штат Нью-Йорк: Спрингер, стр. 1–28, номер документа : 10.1007/978-1-4613-9617-8_1 , ISBN. 978-1-4613-9617-8 , получено 22 ноября 2023 г.
- ^ Мехротра, Санджай (1992). «О реализации метода первично-двойственной внутренней точки». SIAM Journal по оптимизации . 2 (4): 575–601. дои : 10.1137/0802028 .
- ^ Райт, Стивен (1997). Методы первично-двойственной внутренней точки . Филадельфия, Пенсильвания: СИАМ. ISBN 978-0-89871-382-4 .
- Боннан, Ж. Фредерик; Гилберт, Дж. Чарльз; Лемарешаль, Клод ; Сагастисабал, Клаудия А. (2006). Численная оптимизация: Теоретические и практические аспекты . Universitext (Второе исправленное издание перевода французского издания 1997 г.). Берлин: Springer-Verlag. стр. xiv+490. дои : 10.1007/978-3-540-35447-5 . ISBN 978-3-540-35445-1 . МР 2265882 .
- Носедаль, Хорхе; Стивен Райт (1999). Численная оптимизация . Нью-Йорк, штат Нью-Йорк: Спрингер. ISBN 978-0-387-98793-4 .
- Пресс, WH; Теукольский, С.А.; Феттерлинг, WT; Фланнери, BP (2007). «Раздел 10.11. Линейное программирование: методы внутренних точек» . Численные рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк: Издательство Кембриджского университета. ISBN 978-0-521-88068-8 .