Методы внутренней точки (также называемые барьерными методами или IPM ) — это алгоритмы решения линейных и нелинейных задач выпуклой оптимизации . IPM сочетают в себе два преимущества ранее известных алгоритмов:
В отличие от симплекс-метода, который пересекает границу допустимой области, и метода эллипсоида, который ограничивает допустимую область снаружи , IPM достигает наилучшего решения, пересекая внутреннюю часть допустимой области — отсюда и название.
Метод внутренней точки был открыт советским математиком И.И. Дикиным в 1967 году. [1] Метод был заново изобретен в США в середине 1980-х годов. В 1984 году Нарендра Кармаркар разработал метод линейного программирования , названный алгоритмом Кармаркара [2] , который выполняется за доказуемо полиномиальное время ( операции над L -битными числами, где n — количество переменных и констант), а также очень эффективен на практике. . Статья Кармаркара вызвала всплеск интереса к методам внутренних точек. Два года спустя Джеймс Ренегар изобрел первый метод движения по внутренней точке с использованием времени выполнения . Позже метод был расширен от линейных до задач выпуклой оптимизации на основе самосогласованной барьерной функции , используемой для кодирования выпуклого множества . [3]
Любую задачу выпуклой оптимизации можно преобразовать в минимизацию (или максимизацию) линейной функции на выпуклом множестве путем преобразования к форме надграфика . [4] : 143 Идея кодирования допустимого множества с использованием барьера и разработки барьерных методов изучалась Энтони В. Фиакко, Гартом П. Маккормиком и другими в начале 1960-х годов. Эти идеи в основном развивались для общего нелинейного программирования , но позже от них отказались из-за наличия более конкурентоспособных методов для этого класса задач (например, последовательного квадратичного программирования ).
Юрий Нестеров и Аркадий Немировский придумали особый класс таких барьеров, с помощью которых можно закодировать любое выпуклое множество. Они гарантируют, что количество итераций алгоритма ограничено полиномом по размерности и точности решения. [5] [3]
Класс примитивно-двойственных методов следования по внутренней точке считается наиболее успешным. Алгоритм предиктора-корректора Мехротры обеспечивает основу для большинства реализаций этого класса методов. [6]
Нам дана выпуклая программа вида:
ж ( Икс ) - ж * ≤ ε
г я ( Икс ) ≤ ε для я в 1,..., м ,
х в G ,
где f * — оптимальное решение. Решатель называется полиномиальным , если общее количество арифметических операций за первые T шагов не превосходит
поли(размер проблемы) * log( V / ε ),
где V — некоторая константа, зависящая от данных, например, разница между наибольшим и наименьшим значением в допустимом наборе. Другими словами, V / ε — это «относительная точность» решения — точность по наибольшему коэффициенту. log( V / ε ) представляет количество «цифр точности». Следовательно, решатель является «полиномиальным», если каждая дополнительная цифра точности требует количества операций, полиномиального по размеру задачи.
Типы методов внутренней точки включают в себя:
Учитывая программу выпуклой оптимизации (P) с ограничениями, мы можем преобразовать ее в программу без ограничений , добавив барьерную функцию . В частности, пусть b — гладкая выпуклая функция, определенная внутри допустимой области G , такая, что для любой последовательности { x j in Interior(G)}, предел которой находится на границе G : . Мы также предполагаем, что b невырожден, то есть: положительно определен для всех x в интерьере (G). Теперь рассмотрим семейство программ:
( P t ) минимизировать t * f(x) + b(x)
Технически программа ограничена, поскольку b определен только внутри G. Но практически ее можно решить как программу без ограничений, поскольку любой решатель, пытающийся минимизировать функцию, не приблизится к границе, где 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). Для этого необходимо указать три вещи:
Основная проблема при доказательстве политайм-метода заключается в том, что по мере роста штрафного параметра решение приближается к границе, и функция становится более крутой. Время выполнения решателей, таких как метод Ньютона, становится больше, и трудно доказать, что общее время выполнения является полиномиальным.
Ренегар [7] и Гонзага [8] доказали, что конкретный экземпляр метода следования по пути является политаймовым:
Они доказали, что в этом случае разница 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 n 2 ) операций для разряда точности.
Юрий Нестеров распространил идею от линейных программ к нелинейным. Он отметил, что основным свойством логарифмического барьера, использованным в приведенных выше доказательствах, является то, что он самосогласован с конечным параметром барьера. Следовательно, многие другие классы выпуклых программ могут быть решены за политайм с использованием метода следования по пути, если мы сможем найти подходящую самосогласованную барьерную функцию для их допустимой области. [3] : Раздел 1
Нам дана задача выпуклой оптимизации (П) в «стандартной форме»:
минимизировать c T 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 T x + b( x ) . Мы определяем путь минимизаторов следующим образом: 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 T 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 ) арифметических операций.
Чтобы инициализировать методы следования по пути , нам нужна точка внутри допустимой области G. Другими словами: если G определяется неравенствами gi ( x ) ≤ 0, то нам нужен некоторый x , для которого gi ( x ) < 0 для всех i из 1,..., m . Если у нас нет такой точки, нам нужно найти ее, используя так называемый метод фазы I. [4] : 11.4 Простой метод этапа I заключается в решении следующей выпуклой программы:
Для этой программы легко получить внутреннюю точку: мы можем произвольно взять 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
минимизировать c T x st x в {b+L} ᚢ K ,
где b — вектор в Rn , L — линейное подпространство в Rn ( поэтому b + L — аффинная плоскость ), а K — замкнутый заостренный выпуклый конус с непустой внутренностью. Любую выпуклую программу можно преобразовать к конической форме. Чтобы использовать метод редукции потенциала (в частности, расширение алгоритма Кармаркара до выпуклого программирования), нам необходимы следующие предположения: [3] : раздел 6.
Допущения A, B и D необходимы в большинстве методов внутренней точки. Предположение C специфично для подхода Кармаркара; его можно смягчить, используя «скользящее объективное значение». Возможно дальнейшее сведение программы к формату Кармаркара :
минимизировать s T x st x в M ᚢ K и e T x = 1
где M — линейное подпространство в Rn , а оптимальное целевое значение равно 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.
Рассмотрим линейную программу вида:
Дана квадратичная программа с квадратичными ограничениями вида:
Рассмотрим задачу вида
Рассмотрите проблему
Имеется самосогласованный барьер с параметром 2k + m . Метод следования по пути имеет ньютоновскую сложность O( mk 2 + k 3 + n 3 ) и общую сложность O (( k+m ) 1/2 [ mk 2 + k 3 + n 3 ]).
Методы внутренних точек можно использовать для решения полуопределенных программ. [3] : Раздел 11.