stringtranslate.com

Метод внутренней точки

Пример поиска решения. Синие линии показывают ограничения, красные точки показывают итеративные решения.

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

В отличие от симплексного метода, который пересекает границу допустимой области, и метода эллипсоида, который ограничивает допустимую область снаружи , IPM достигает наилучшего решения, пересекая внутреннюю часть допустимой области — отсюда и название.

История

Метод внутренней точки был открыт советским математиком И.И. Дикиным в 1967 году. [1] Метод был заново изобретен в США в середине 1980-х годов. В 1984 году Нарендра Кармаркар разработал метод линейного программирования , названный алгоритмом Кармаркара , [2] который выполняется за доказуемо полиномиальное время ( операции над L -битными числами, где n — число переменных и констант), а также очень эффективен на практике. Статья Кармаркара вызвала всплеск интереса к методам внутренней точки. Два года спустя Джеймс Ренегар изобрел первый метод внутренней точки с следованием по пути , со временем выполнения . Позднее метод был распространен с линейных на выпуклые задачи оптимизации на основе самосогласованной барьерной функции , используемой для кодирования выпуклого множества . [3]

Любая задача выпуклой оптимизации может быть преобразована в минимизацию (или максимизацию) линейной функции на выпуклом множестве путем преобразования в форму надграфика . [4] : 143  Идея кодирования допустимого множества с использованием барьера и проектирования барьерных методов изучалась Энтони В. Фиакко, Гартом П. Маккормиком и другими в начале 1960-х годов. Эти идеи были в основном разработаны для общего нелинейного программирования , но позже от них отказались из-за наличия более конкурентоспособных методов для этого класса задач (например, последовательного квадратичного программирования ).

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

Класс методов прямого-двойного пути, следующих за внутренней точкой, считается наиболее успешным. Алгоритм предиктора-корректора Мехротры обеспечивает основу для большинства реализаций этого класса методов. [6]

Определения

Нам дана выпуклая программа вида: где f — выпуклая функция , а G — выпуклое множество . Без потери общности можно предположить, что целевое f — линейная функция . Обычно выпуклое множество G представляется набором выпуклых неравенств и линейных равенств; линейные равенства можно исключить с помощью линейной алгебры, поэтому для простоты мы предполагаем, что существуют только выпуклые неравенства, и программу можно описать следующим образом, где g i — выпуклые функции: Мы предполагаем, что функции ограничений принадлежат некоторому семейству (например, квадратичным функциям), так что программу можно представить конечным вектором коэффициентов (например, коэффициентами квадратичных функций). Размерность этого вектора коэффициентов называется размером программы . Численный решатель для заданного семейства программ — это алгоритм, который по заданному вектору коэффициентов генерирует последовательность приближенных решений x t для t = 1, 2,..., используя конечное число арифметических операций. Числовой решатель называется сходящимся , если для любой программы из семейства и любого положительного ε >0 существует некоторое T (которое может зависеть от программы и от ε ) такое, что для любого t > T приближенное решение x t является ε-приближенным, то есть: где — оптимальное решение. Решатель называется полиномиальным, если общее число арифметических операций на первых T шагах не превышает

поли(размер проблемы) * log( V / ε ),

где V — некоторая константа, зависящая от данных, например, разница между наибольшим и наименьшим значением в допустимом наборе. Другими словами, V / ε — это «относительная точность» решения — точность относительно наибольшего коэффициента. log( V / ε ) представляет собой число «цифр точности». Следовательно, решатель является «полиномиальным», если каждая дополнительная цифра точности требует числа операций, которое является полиномиальным по размеру задачи.

Типы

Типы методов внутренней точки включают в себя:

Методы следования по пути

Идея

Учитывая выпуклую программу оптимизации (P) с ограничениями, мы можем преобразовать ее в программу без ограничений , добавив барьерную функцию . В частности, пусть b будет гладкой выпуклой функцией, определенной внутри допустимой области G , такой, что для любой последовательности { x j in interior(G)}, предел которой находится на границе G : . Мы также предполагаем, что b невырождена, то есть: положительно определена для всех x in interior(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 , поэтому для добавления одной цифры точности достаточно умножить t i на 2 (или любой другой постоянный множитель), что требует O(sqrt( m )) шагов Ньютона. Поскольку каждый шаг Ньютона занимает O( mn 2 ) операций, общая сложность составляет O( m 3/2 n 2 ) операций для цифры точности.

Юрий Нестеров распространил идею с линейных на нелинейные программы. Он отметил, что основное свойство логарифмического барьера, использованного в приведенных выше доказательствах, заключается в том, что он является самосогласованным с конечным параметром барьера. Поэтому многие другие классы выпуклых программ могут быть решены за поливременной метод с использованием метода следования по пути, если мы сможем найти подходящую самосогласованную барьерную функцию для их допустимой области. [3] : Sec.1 

Подробности

Нам дана задача выпуклой оптимизации (P) в «стандартной форме»:

минимизировать 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 , обозначаемый как x i . Приблизительный минимум выбирается так, чтобы удовлетворять следующему «условию близости» (где Lдопуск пути ):

.

Чтобы найти x i +1 , мы начинаем с x i и применяем затухающий метод Ньютона . Мы применяем несколько шагов этого метода, пока не будет удовлетворено указанное выше «соотношение близости». Первая точка, которая удовлетворяет этому соотношению, обозначается как x i +1 . [3] : Раздел 4 

Конвергенция и сложность

Скорость сходимости метода определяется следующей формулой для каждого i : [3] : Предложение 4.4.1 

Принимая , число шагов Ньютона, необходимых для перехода от x i к x i +1 , не превышает фиксированного числа, зависящего только от r и L. В частности, общее число шагов Ньютона, необходимых для нахождения ε -приближенного решения (т.е. нахождения x в G такого, что c T x - c* ≤ ε ), не превышает: [3] : Теор.4.4.1 

где постоянный множитель O(1) зависит только от r и L. Число шагов Ньютона, требуемых для двухэтапной процедуры инициализации, не превышает: [3] : Теор.4.5.1 

[ требуется разъяснение ]

где постоянный множитель O(1) зависит только от r и L , и , и является некоторой точкой внутри G . В целом, общая сложность Ньютона нахождения ε -приближенного решения составляет не более

, где V — некоторая константа, зависящая от задачи: .

Каждый шаг Ньютона занимает O( n 3 ) арифметических операций.

Инициализация: методы фазы I

Для инициализации методов следования по пути нам нужна точка в относительной внутренней части допустимой области G. Другими словами: если G определяется неравенствами g i ( x ) ≤ 0, то нам нужен некоторый x , для которого g i ( x ) < 0 для всех i из 1,..., m . Если у нас нет такой точки, нам нужно найти ее, используя так называемый метод фазы I. [ 4] : 11.4  Простой метод фазы I заключается в решении следующей выпуклой программы: Обозначим оптимальное решение через x*, s *.

Для этой программы легко получить внутреннюю точку: мы можем произвольно взять 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 — вектор в R n , L — линейное подпространство в R n (так что b + Lаффинная плоскость ), а K — замкнутый заостренный выпуклый конус с непустой внутренностью. Любая выпуклая программа может быть преобразована в коническую форму. Чтобы использовать метод потенциальной редукции (в частности, расширение алгоритма Кармаркара на выпуклое программирование), нам нужны следующие предположения: [3] : Раздел 6 

Предположения A, B и D необходимы в большинстве методов внутренней точки. Предположение C специфично для подхода Кармаркара; его можно смягчить, используя «скользящее объективное значение». Можно еще больше сократить программу до формата Кармаркара :

минимизировать s T x st x в M ∩ K и e T x = 1

где Mлинейное подпространство в R n , а оптимальное целевое значение равно 0. Метод основан на следующей скалярной потенциальной функции:

v ( x ) = F ( x ) + M ln ( s T x )

где FM -самосогласованный барьер для допустимого конуса. Можно доказать, что когда 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) условие

должны быть реализованы на каждом этапе. Это можно сделать, выбрав соответствующее :

Траектория итераций x с использованием метода внутренней точки.

Типы выпуклых программ, решаемых с помощью методов внутренней точки

Вот некоторые особые случаи выпуклых программ, которые можно эффективно решить методами внутренних точек. [3] : Раздел 10 

Линейные программы

Рассмотрим линейную программу вида: Мы можем применить методы следования по пути с барьером Функция самосогласована с параметром M = m (число ограничений). Следовательно, число требуемых шагов Ньютона для метода следования по пути равно O( mn 2 ), а общая сложность времени выполнения равна O( m 3/2 n 2 ). [ необходимо пояснение ]

Квадратичные ограниченные квадратичные программы

Дана квадратично ограниченная квадратичная программа вида: где все матрицы A j являются положительно-полуопределенными матрицами . Мы можем применить методы следования по пути с барьером Функция является самосогласованным барьером с параметром M = m . Сложность Ньютона составляет O( (m+n)n 2 ), а общая сложность времени выполнения составляет O( m 1/2 (m+n) n 2 ).

Лпаппроксимация нормы

Рассмотрим задачу вида , где каждый является вектором, каждый является скаляром и является нормой L p с После преобразования в стандартную форму мы можем применить методы следования по пути с самосогласованным барьером с параметром M =4 m . Сложность Ньютона составляет O( (m+n)n 2 ), а общая сложность времени выполнения составляет O( m 1/2 (m+n) n 2 ).

Геометрические программы

Рассмотрим проблему

Существует самосогласованный барьер с параметром 2 k + m . Метод следования по пути имеет сложность Ньютона O( mk 2 + k 3 + n 3 ) и общую сложность O(( k+m ) 1/2 [ mk 2 + k 3 + n 3 ]).

Полуопределенные программы

Методы внутренних точек могут быть использованы для решения полуопределенных программ. [3] : Раздел 11 

Смотрите также

Ссылки

  1. ^ Дикин, И.И. (1967). «Итеративное решение задач линейного и квадратичного программирования». Докл. АН СССР . 174 (1): 747–748.
  2. ^ Кармаркар, Н. (1984). "Новый полиномиальный алгоритм для линейного программирования" (PDF) . Труды шестнадцатого ежегодного симпозиума ACM по теории вычислений – STOC '84 . стр. 302. doi : 10.1145/800057.808695 . ISBN 0-89791-133-4. Архивировано из оригинала (PDF) 28 декабря 2013 года.
  3. ^ abcdefghijklm Аркадий Немировский (2004). Полиномиальные методы внутренней точки в выпуклом программировании.
  4. ^ abc Бойд, Стивен; Ванденберг, Ливен (2004). Выпуклая оптимизация . Кембридж: Cambridge University Press . ISBN 978-0-521-83378-3. МР  2061575.
  5. ^ Райт, Маргарет Х. (2004). «Революция внутренней точки в оптимизации: история, последние разработки и долгосрочные последствия». Бюллетень Американского математического общества . 42 : 39–57. doi : 10.1090/S0273-0979-04-01040-7 . MR  2115066.
  6. ^ Potra, Florian A.; Stephen J. Wright (2000). «Методы внутренних точек». Журнал вычислительной и прикладной математики . 124 (1–2): 281–302. doi : 10.1016/S0377-0427(00)00433-7 .
  7. ^ ab Renegar, James (1 января 1988 г.). «Алгоритм полиномиального времени, основанный на методе Ньютона, для линейного программирования». Математическое программирование . 40 (1): 59–93. doi :10.1007/BF01580724. ISSN  1436-4646.
  8. ^ ab Gonzaga, Clovis C. (1989), Megiddo, Nimrod (ред.), "Алгоритм решения задач линейного программирования за O(n3L) операций", Progress in Mathematical Programming: Interior-Point and Related Methods , New York, NY: Springer, стр. 1–28, doi :10.1007/978-1-4613-9617-8_1, ISBN 978-1-4613-9617-8, получено 22 ноября 2023 г.
  9. ^ Мехротра, Санджай (1992). «О реализации метода первично-двойственной внутренней точки». Журнал SIAM по оптимизации . 2 (4): 575–601. doi :10.1137/0802028.
  10. ^ Райт, Стивен (1997). Методы первично-двойной внутренней точки . Филадельфия, Пенсильвания: SIAM. ISBN 978-0-89871-382-4.