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

Подобласть выпуклой оптимизации

Полуопределенное программирование ( SDP ) — это подраздел математического программирования, занимающийся оптимизацией линейной целевой функции (заданной пользователем функции, которую пользователь хочет минимизировать или максимизировать) на пересечении конуса положительных полуопределенных матриц с аффинным пространством , т. е. спектроэдром . [1]

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

Мотивация и определение

Первоначальная мотивация

Задача линейного программирования — это задача, в которой мы хотим максимизировать или минимизировать линейную целевую функцию действительных переменных над многогранником . В полуопределенном программировании мы вместо этого используем действительные векторы и имеем право брать скалярное произведение векторов; ограничения неотрицательности действительных переменных в LP ( линейном программировании ) заменяются ограничениями полуопределенности матричных переменных в SDP ( полуопределенном программировании ). В частности, общая задача полуопределенного программирования может быть определена как любая математическая задача программирования вида

мин х 1 , , х н Р н я , дж [ н ] с я , дж ( х я х дж ) при условии я , дж [ н ] а я , дж , к ( х я х дж ) б к  для всех  к {\displaystyle {\begin{array}{rl}{\displaystyle \min _{x^{1},\ldots ,x^{n}\in \mathbb {R} ^{n}}}&{\displaystyle \sum _{i,j\in [n]}c_{i,j}(x^{i}\cdot x^{j})}\\{\text{при условии}}&{\displaystyle \sum _{i,j\in [n]}a_{i,j,k}(x^{i}\cdot x^{j})\leq b_{k}}{\text{ для всех }}k\\\end{array}}}

где , и являются действительными числами, а является скалярным произведением и . с я , дж , а я , дж , к {\displaystyle c_{i,j},a_{i,j,k}} б к {\displaystyle b_{k}} х я х дж {\displaystyle x^{i}\cdot x^{j}} х я {\displaystyle x^{i}} х дж {\displaystyle x^{j}}

Эквивалентные формулировки

Матрица называется положительно полуопределенной, если она является матрицей Грама некоторых векторов (т.е. если существуют векторы такие, что для всех ). Если это так, мы обозначаем это как . Обратите внимание, что существует несколько других эквивалентных определений положительно полуопределенной матрицы , например, положительно полуопределенные матрицы являются самосопряженными матрицами, которые имеют только неотрицательные собственные значения . н × н {\displaystyle n\times n} М {\displaystyle М} х 1 , , х н {\displaystyle x^{1},\ldots ,x^{n}} м я , дж = х я х дж {\displaystyle m_{i,j}=x^{i}\cdot x^{j}} я , дж {\displaystyle я,j} М 0 {\displaystyle M\успех 0}

Обозначим через пространство всех действительных симметричных матриц. Пространство снабжено скалярным произведением (где обозначает след ): С н {\displaystyle \mathbb {S} ^{n}} н × н {\displaystyle n\times n} т г а с е {\displaystyle {\rm {trace}}}

A , B := t r a c e ( A T B ) = i = 1 , j = 1 n A i j B i j . {\displaystyle \langle A,B\rangle :={\rm {trace}}(A^{T}B)=\sum _{i=1,j=1}^{n}A_{ij}B_{ij}.}

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

min X S n C , X subject to A k , X b k , k = 1 , , m X 0. {\displaystyle {\begin{array}{rl}{\displaystyle \min _{X\in \mathbb {S} ^{n}}}&\langle C,X\rangle \\{\text{subject to}}&\langle A_{k},X\rangle \leq b_{k},\quad k=1,\ldots ,m\\&X\succeq 0.\end{array}}}

где запись в дается из предыдущего раздела и является симметричной матрицей, имеющей запись из предыдущего раздела. Таким образом, матрицы и симметричны и указанные выше внутренние произведения хорошо определены. i , j {\displaystyle i,j} C {\displaystyle C} c i , j + c j , i 2 {\displaystyle {\frac {c_{i,j}+c_{j,i}}{2}}} A k {\displaystyle A_{k}} n × n {\displaystyle n\times n} i , j {\displaystyle i,j} a i , j , k + a j , i , k 2 {\displaystyle {\frac {a_{i,j,k}+a_{j,i,k}}{2}}} C {\displaystyle C} A k {\displaystyle A_{k}}

Обратите внимание, что если мы соответствующим образом добавим переменные-запасы , то этот SDP можно преобразовать в эквациональную форму :

min X S n C , X subject to A k , X = b k , k = 1 , , m X 0. {\displaystyle {\begin{array}{rl}{\displaystyle \min _{X\in \mathbb {S} ^{n}}}&\langle C,X\rangle \\{\text{subject to}}&\langle A_{k},X\rangle =b_{k},\quad k=1,\ldots ,m\\&X\succeq 0.\end{array}}}

Для удобства SDP может быть указан в несколько иной, но эквивалентной форме. Например, линейные выражения, включающие неотрицательные скалярные переменные, могут быть добавлены в спецификацию программы. Это остается SDP, поскольку каждая переменная может быть включена в матрицу как диагональная запись ( для некоторых ). Чтобы гарантировать, что , ограничения могут быть добавлены для всех . В качестве другого примера отметим, что для любой положительной полуопределенной матрицы , существует набор векторов, такой что , запись является скалярным произведением и . Поэтому SDP часто формулируются в терминах линейных выражений на скалярных произведениях векторов. Учитывая решение SDP в стандартной форме, векторы могут быть восстановлены со временем (например, с помощью неполного разложения Холецкого X). X {\displaystyle X} X i i {\displaystyle X_{ii}} i {\displaystyle i} X i i 0 {\displaystyle X_{ii}\geq 0} X i j = 0 {\displaystyle X_{ij}=0} j i {\displaystyle j\neq i} X {\displaystyle X} { v i } {\displaystyle \{v_{i}\}} i {\displaystyle i} j {\displaystyle j} X {\displaystyle X} X i j = ( v i , v j ) {\displaystyle X_{ij}=(v_{i},v_{j})} v i {\displaystyle v_{i}} v j {\displaystyle v_{j}} { v i } {\displaystyle \{v_{i}\}} O ( n 3 ) {\displaystyle O(n^{3})}

Связь с другими задачами оптимизации

Пространство полуопределенных матриц представляет собой выпуклый конус . Поэтому SDP является частным случаем конической оптимизации , которая, в свою очередь, является частным случаем выпуклой оптимизации.

Когда матрица C диагональна, внутренние произведения < C , X > эквивалентны векторному произведению диагонали C и диагонали X . Аналогично, когда матрицы A k диагональны, соответствующие внутренние произведения эквивалентны векторным произведениям. В этих векторных произведениях используются только диагональные элементы X , поэтому мы можем добавить ограничения, приравнивающие недиагональные элементы X к 0. Тогда условие эквивалентно условию, что все диагональные элементы X неотрицательны. Затем полученная SDP становится линейной программой , в которой переменные являются диагональными элементами X . X 0 {\displaystyle X\succeq 0}

Теория двойственности

Определения

Аналогично линейному программированию, учитывая общую SDP вида

min X S n C , X subject to A i , X = b i , i = 1 , , m X 0 {\displaystyle {\begin{array}{rl}{\displaystyle \min _{X\in \mathbb {S} ^{n}}}&\langle C,X\rangle \\{\text{subject to}}&\langle A_{i},X\rangle =b_{i},\quad i=1,\ldots ,m\\&X\succeq 0\end{array}}}

(первичная задача или P-SDP), мы определяем двойственную полуопределенную программу (D-SDP) как

max y R m b T y subject to i = 1 m y i A i C {\displaystyle {\begin{array}{rl}{\displaystyle \max _{y\in \mathbb {R} ^{m}}}&b^{T}y\\{\text{subject to}}&{\displaystyle \sum _{i=1}^{m}}y_{i}A_{i}\preceq C\end{array}}}

где для любых двух матриц и , означает . P {\displaystyle P} Q {\displaystyle Q} P Q {\displaystyle P\succeq Q} P Q 0 {\displaystyle P-Q\succeq 0}

Слабая дуальность

Теорема слабой двойственности утверждает, что значение первичного SDP по крайней мере равно значению двойственного SDP. Следовательно, любое допустимое решение двойственного SDP ограничивает снизу значение первичного SDP, и наоборот, любое допустимое решение первичного SDP ограничивает сверху значение двойственного SDP. Это потому, что

C , X b T y = C , X i = 1 m y i b i = C , X i = 1 m y i A i , X = C i = 1 m y i A i , X 0 , {\displaystyle \langle C,X\rangle -b^{T}y=\langle C,X\rangle -\sum _{i=1}^{m}y_{i}b_{i}=\langle C,X\rangle -\sum _{i=1}^{m}y_{i}\langle A_{i},X\rangle =\langle C-\sum _{i=1}^{m}y_{i}A_{i},X\rangle \geq 0,}

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

Сильная двойственность

Когда значения первичного и двойственного SDP равны, говорят, что SDP удовлетворяет свойству сильной двойственности . В отличие от линейных программ , где каждая двойственная линейная программа имеет оптимальную цель, равную первичной цели, не каждая SDP удовлетворяет сильной двойственности; в общем случае значение двойственного SDP может лежать строго ниже значения первичного, а P-SDP и D-SDP удовлетворяют следующим свойствам:

(i) Предположим, что основная задача (P-SDP) ограничена снизу и строго осуществима (т.е. существует такое, что , ). Тогда существует оптимальное решение (D-SDP) и X 0 S n , X 0 0 {\displaystyle X_{0}\in \mathbb {S} ^{n},X_{0}\succ 0} A i , X 0 = b i {\displaystyle \langle A_{i},X_{0}\rangle =b_{i}} i = 1 , , m {\displaystyle i=1,\ldots ,m} y {\displaystyle y^{*}}

C , X = b T y . {\displaystyle \langle C,X^{*}\rangle =b^{T}y^{*}.}

(ii) Предположим, что двойственная задача (D-SDP) ограничена сверху и строго допустима (т.е. для некоторого ). Тогда существует оптимальное решение (P-SDP) и выполняется равенство из (i). i = 1 m ( y 0 ) i A i C {\displaystyle \sum _{i=1}^{m}(y_{0})_{i}A_{i}\prec C} y 0 R m {\displaystyle y_{0}\in \mathbb {R} ^{m}} X {\displaystyle X^{*}}

Достаточным условием для выполнения сильной двойственности для задачи SDP (и вообще для любой задачи выпуклой оптимизации) является условие Слейтера . Также возможно достичь сильной двойственности для задач SDP без дополнительных условий регулярности, используя расширенную двойственную задачу, предложенную Раманой. [2] [3]

Примеры

Пример 1

Рассмотрим три случайные величины , и . Заданный набор коэффициентов корреляции возможен тогда и только тогда, когда A {\displaystyle A} B {\displaystyle B} C {\displaystyle C} ρ A B ,   ρ A C , ρ B C {\displaystyle \rho _{AB},\ \rho _{AC},\rho _{BC}}

( 1 ρ A B ρ A C ρ A B 1 ρ B C ρ A C ρ B C 1 ) 0. {\displaystyle {\begin{pmatrix}1&\rho _{AB}&\rho _{AC}\\\rho _{AB}&1&\rho _{BC}\\\rho _{AC}&\rho _{BC}&1\end{pmatrix}}\succeq 0.}

Эта матрица называется матрицей корреляции . Предположим, что мы знаем из некоторых предварительных знаний (например, эмпирических результатов эксперимента), что и . Задача определения наименьшего и наибольшего значений, которые может принимать, задается следующим образом: 0.2 ρ A B 0.1 {\displaystyle -0.2\leq \rho _{AB}\leq -0.1} 0.4 ρ B C 0.5 {\displaystyle 0.4\leq \rho _{BC}\leq 0.5} ρ A C   {\displaystyle \rho _{AC}\ }

min / max x 13 subject to 0.2 x 12 0.1 0.4 x 23 0.5 ( 1 x 12 x 13 x 12 1 x 23 x 13 x 23 1 ) 0 {\displaystyle {\begin{array}{rl}{\displaystyle \min /\max }&x_{13}\\{\text{subject to}}&-0.2\leq x_{12}\leq -0.1\\&0.4\leq x_{23}\leq 0.5\\&{\begin{pmatrix}1&x_{12}&x_{13}\\x_{12}&1&x_{23}\\x_{13}&x_{23}&1\end{pmatrix}}\succeq 0\end{array}}}

Мы устанавливаем , чтобы получить ответ. Это может быть сформулировано с помощью SDP. Мы обрабатываем ограничения неравенства, увеличивая переменную матрицу и вводя переменные слэка , например ρ A B = x 12 ,   ρ A C = x 13 ,   ρ B C = x 23 {\displaystyle \rho _{AB}=x_{12},\ \rho _{AC}=x_{13},\ \rho _{BC}=x_{23}}

t r ( ( 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) ( 1 x 12 x 13 0 0 0 x 12 1 x 23 0 0 0 x 13 x 23 1 0 0 0 0 0 0 s 1 0 0 0 0 0 0 s 2 0 0 0 0 0 0 s 3 ) ) = x 12 + s 1 = 0.1 {\displaystyle \mathrm {tr} \left(\left({\begin{array}{cccccc}0&1&0&0&0&0\\0&0&0&0&0&0\\0&0&0&0&0&0\\0&0&0&1&0&0\\0&0&0&0&0&0\\0&0&0&0&0&0\end{array}}\right)\cdot \left({\begin{array}{cccccc}1&x_{12}&x_{13}&0&0&0\\x_{12}&1&x_{23}&0&0&0\\x_{13}&x_{23}&1&0&0&0\\0&0&0&s_{1}&0&0\\0&0&0&0&s_{2}&0\\0&0&0&0&0&s_{3}\end{array}}\right)\right)=x_{12}+s_{1}=-0.1}

Решение этой задачи SDP дает минимальное и максимальное значения как и соответственно. ρ A C = x 13   {\displaystyle \rho _{AC}=x_{13}\ } 0.978 {\displaystyle -0.978} 0.872 {\displaystyle 0.872}

Пример 2

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

минимизировать ( c T x ) 2 d T x {\displaystyle {\frac {(c^{T}x)^{2}}{d^{T}x}}}
при условии A x + b 0 {\displaystyle Ax+b\geq 0}

где мы предполагаем, что всякий раз, когда . d T x > 0 {\displaystyle d^{T}x>0} A x + b 0 {\displaystyle Ax+b\geq 0}

Вводя вспомогательную переменную, задачу можно переформулировать: t {\displaystyle t}

минимизировать t {\displaystyle t}
при условии A x + b 0 , ( c T x ) 2 d T x t {\displaystyle Ax+b\geq 0,\,{\frac {(c^{T}x)^{2}}{d^{T}x}}\leq t}

В этой формулировке цель является линейной функцией переменных . x , t {\displaystyle x,t}

Первое ограничение можно записать как

diag ( A x + b ) 0 {\displaystyle {\textbf {diag}}(Ax+b)\geq 0}

где матрица представляет собой квадратную матрицу со значениями по диагонали, равными элементам вектора . diag ( A x + b ) {\displaystyle {\textbf {diag}}(Ax+b)} A x + b {\displaystyle Ax+b}

Второе ограничение можно записать как

t d T x ( c T x ) 2 0 {\displaystyle td^{T}x-(c^{T}x)^{2}\geq 0}

Определяем следующим образом D {\displaystyle D}

D = [ t c T x c T x d T x ] {\displaystyle D=\left[{\begin{array}{cc}t&c^{T}x\\c^{T}x&d^{T}x\end{array}}\right]}

Мы можем использовать теорию дополнений Шура, чтобы увидеть, что

D 0 {\displaystyle D\succeq 0}

(Бойд и Ванденберг, 1996)

Полуопределенная программа, связанная с этой проблемой, такова:

минимизировать t {\displaystyle t}
при условии [ diag ( A x + b ) 0 0 0 t c T x 0 c T x d T x ] 0 {\displaystyle \left[{\begin{array}{ccc}{\textbf {diag}}(Ax+b)&0&0\\0&t&c^{T}x\\0&c^{T}x&d^{T}x\end{array}}\right]\succeq 0}

Пример 3 (алгоритм аппроксимации максимального разреза Гоэманса–Вильямсона)

Полуопределенные программы являются важными инструментами для разработки алгоритмов приближения для NP-трудных задач максимизации. Первый алгоритм приближения, основанный на SDP, принадлежит Мишелю Гоемансу и Дэвиду П. Уильямсону (JACM, 1995). [1] : Глава 1  Они изучали задачу максимального разреза : дан граф G = ( V , E ), вывести разбиение вершин V так, чтобы максимизировать количество ребер, пересекающих одну сторону с другой. Эту задачу можно выразить как целочисленную квадратичную программу :

Максимизируйте так, чтобы каждый . ( i , j ) E 1 v i v j 2 , {\displaystyle \sum _{(i,j)\in E}{\frac {1-v_{i}v_{j}}{2}},} v i { 1 , 1 } {\displaystyle v_{i}\in \{1,-1\}}

Если P = NP , мы не можем эффективно решить эту задачу максимизации. Однако Гоэманс и Уильямсон наблюдали общую трехшаговую процедуру для атаки на этот тип проблемы:

  1. Преобразуем целочисленную квадратичную программу в SDP.
  2. Решить задачу SDP (с точностью до произвольно малой аддитивной погрешности ). ϵ {\displaystyle \epsilon }
  3. Округлим решение SDP, чтобы получить приближенное решение исходной целочисленной квадратичной программы.

Для максимального среза наиболее естественное расслабление —

max ( i , j ) E 1 v i , v j 2 , {\displaystyle \max \sum _{(i,j)\in E}{\frac {1-\langle v_{i},v_{j}\rangle }{2}},} такой , что , где максимизация выполняется по векторам, а не по целым скалярам. v i 2 = 1 {\displaystyle \lVert v_{i}\rVert ^{2}=1} { v i } {\displaystyle \{v_{i}\}}

Это SDP, поскольку целевая функция и ограничения являются линейными функциями векторных внутренних произведений. Решение SDP дает набор единичных векторов в ; поскольку векторы не обязаны быть коллинеарными, значение этой расслабленной программы может быть только выше значения исходной квадратичной целочисленной программы. Наконец, для получения разбиения необходима процедура округления. Гоэманс и Уильямсон просто выбирают равномерно случайную гиперплоскость через начало координат и делят вершины в соответствии с тем, с какой стороны гиперплоскости лежат соответствующие векторы. Прямой анализ показывает, что эта процедура достигает ожидаемого коэффициента аппроксимации (гарантии производительности) 0,87856 - ε. (Ожидаемое значение разреза равно сумме по ребрам вероятности того, что ребро разрезано, которая пропорциональна углу между векторами в конечных точках ребра по . Сравнивая эту вероятность с , в ожидание отношение всегда составляет не менее 0,87856.) Предполагая гипотезу уникальных игр , можно показать, что это отношение аппроксимации по существу оптимально. R n {\displaystyle \mathbf {R^{n}} } cos 1 v i , v j {\displaystyle \cos ^{-1}\langle v_{i},v_{j}\rangle } π {\displaystyle \pi } ( 1 v i , v j ) / 2 {\displaystyle (1-\langle v_{i},v_{j}\rangle )/{2}}

Начиная с оригинальной статьи Гоэманса и Уильямсона, SDP были применены для разработки многочисленных алгоритмов аппроксимации. Впоследствии Прасад Рагхавендра разработал общую структуру для задач удовлетворения ограничений, основанную на гипотезе уникальных игр . [4]

Другие приложения

Полуопределенное программирование применялось для поиска приближенных решений комбинаторных оптимизационных задач, таких как решение задачи максимального разреза с коэффициентом аппроксимации 0,87856. SDP также используются в геометрии для определения графов тенсегрити и возникают в теории управления как LMI , а в задачах обратных эллиптических коэффициентов как выпуклые, нелинейные, ограничения полуопределенности. [5] Оно также широко используется в физике для ограничения конформных теорий поля с помощью конформного бутстрапа . [6]

Сложность выполнения

Проблема полуопределенной осуществимости (SDF) — это следующая задача принятия решения : для данной SDP решить, имеет ли она хотя бы одно осуществимое решение. Точная сложность выполнения этой задачи неизвестна (по состоянию на 1997 год). Однако Рамана доказал следующее: [2]

Алгоритмы решения SDP

Существует несколько типов алгоритмов для решения SDP. Эти алгоритмы выводят значение SDP с точностью до аддитивной ошибки во времени, которая полиномиальна по размеру описания программы и . ϵ {\displaystyle \epsilon } log ( 1 / ϵ ) {\displaystyle \log(1/\epsilon )}

Метод эллипсоида

Метод эллипсоида является общим методом для выпуклого программирования и может быть использован, в частности, для решения SDP. В контексте SDP метод эллипсоида обеспечивает следующую гарантию. [1] : Теор.2.6.1  Рассмотрим SDP в следующей эквациональной форме:

max X S n C , X subject to A k , X = b k , k = 1 , , m X 0. {\displaystyle {\begin{array}{rl}{\displaystyle \max _{X\in \mathbb {S} ^{n}}}&\langle C,X\rangle \\{\text{subject to}}&\langle A_{k},X\rangle =b_{k},\quad k=1,\ldots ,m\\&X\succeq 0.\end{array}}}

Пусть L — аффинное подпространство матриц в S n , удовлетворяющее m эквациональным ограничениям; поэтому SDP можно записать как: . Предположим, что все коэффициенты в SDP являются рациональными числами. Пусть R — явно заданная верхняя граница максимальной нормы Фробениуса допустимого решения, а ε> 0 — константа. Матрица X в S n называется ε-глубокой , если каждая матрица Y в L с расстоянием Фробениуса не более ε от X удовлетворяет условию допустимости . Обозначим . Эллипсоид возвращает один из следующих выходных данных: max X L C , X  subject to  X 0 {\displaystyle \max _{X\in L}\langle C,X\rangle {\text{ subject to }}X\succeq 0} Y 0 {\displaystyle Y\succeq 0} v d e e p := sup { C , X : X  is  ϵ -deep } {\displaystyle v_{deep}:=\sup\{\langle C,X\rangle :X{\text{ is }}\epsilon {\text{-deep}}\}}

  • Матрица X* в L (то есть точно удовлетворяющая всем линейным ограничениям равенства), такая, что расстояние Фробениуса между X* и некоторым допустимым решением не превышает ε (то есть приблизительно удовлетворяющая ограничению неравенства ), и (то есть приблизительно оптимальное целевое значение). X 0 {\displaystyle X\succeq 0} C , X v d e e p ϵ {\displaystyle \langle C,X^{*}\rangle \geq v_{deep}-\epsilon }
  • Сертификат о том, что задача не имеет ε-глубоких решений (то есть задача приблизительно неразрешима).

Время выполнения полиномиально в двоичных кодировках входных данных и в log(R/ ε ) в модели машины Тьюринга .

Обратите внимание, что в общем случае R может быть дважды экспоненциальным по n. В этом случае гарантия времени выполнения метода эллипсоида экспоненциальна по n . Но в большинстве приложений R не так уж и велика. В этих случаях метод эллипсоида является единственным известным методом, который гарантирует полиномиальное время выполнения в модели машины Тьюринга. [1] : 23  Но на практике его производительность не так хороша.

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

Большинство кодов основаны на методах внутренних точек (CSDP, MOSEK , SeDuMi, SDPT3, DSDP, SDPA). Они надежны и эффективны для общих линейных задач SDP, но ограничены тем фактом, что алгоритмы являются методами второго порядка и должны хранить и факторизовать большую (и часто плотную) матрицу. Теоретически, современные высокоточные алгоритмы SDP [7] [8] основаны на этом подходе.

Методы первого порядка

Методы первого порядка для конической оптимизации избегают вычисления, хранения и факторизации большой матрицы Гессе и масштабируются для гораздо больших задач, чем методы внутренней точки, за счет некоторой потери точности. Метод первого порядка реализован в решателе конуса расщепления (SCS). [9] Другим методом первого порядка является метод чередующихся направлений множителей (ADMM). [10] Этот метод требует на каждом шаге проекции на конус полуопределенных матриц.

Метод связки

Код ConicBundle формулирует задачу SDP как задачу негладкой оптимизации и решает ее методом спектрального пучка негладкой оптимизации. Этот подход очень эффективен для специального класса линейных задач SDP.

Другие методы решения

Алгоритмы, основанные на методе расширенного Лагранжа (PENSDP), по поведению похожи на методы внутренней точки и могут быть специализированы для некоторых очень больших масштабных задач. Другие алгоритмы используют низкоранговую информацию и переформулировку SDP как задачи нелинейного программирования (SDPLR, ManiSDP). [11]

Приблизительные методы

Также были предложены алгоритмы, которые решают SDP приближенно. Основной целью таких методов является достижение меньшей сложности в приложениях, где приближенные решения достаточны, а сложность должна быть минимальной. Известным методом, который использовался для обнаружения данных в беспроводных системах с несколькими входами и несколькими выходами (MIMO), является метод треугольной аппроксимации SEmidefinite Relaxation (TASER) [12] , который работает с коэффициентами разложения Холецкого полуопределенной матрицы вместо полуопределенной матрицы. Этот метод вычисляет приближенные решения для задачи типа максимального разреза, которые часто сопоставимы с решениями точных решателей, но всего за 10-20 итераций алгоритма. Хазан [13] разработал приближенный алгоритм для решения SDP с дополнительным ограничением, что след матрицы переменных должен быть равен 1.

Алгоритмы предварительной обработки

Алгоритмы сокращения лиц — это алгоритмы, используемые для предварительной обработки проблем SDP путем проверки ограничений проблемы. Они могут быть использованы для

  • Выявить отсутствие строгой осуществимости;
  • Удалить лишние строки и столбцы;
  • Уменьшить размер переменной матрицы. [14]

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

Ссылки

  1. ^ abcd Гертнер, Бернд; Матушек, Иржи (2012), Гертнер, Бернд; Матоусек, Иржи (ред.), «Полуопределенное программирование», Алгоритмы аппроксимации и полуопределенное программирование , Берлин, Гейдельберг: Springer, стр. 15–25, doi : 10.1007/978-3-642-22015-9_2, ISBN 978-3-642-22015-9, получено 2023-12-31
  2. ^ ab Ramana, Motakuri V. (1997). "Точная теория двойственности для полуопределенного программирования и ее последствия для сложности". Математическое программирование . 77 (1): 129–162. doi :10.1007/BF02614433. ISSN  0025-5610. S2CID  12886462.
  3. ^ Ванденберг, Ливен; Бойд, Стивен (1996). «Полуопределенное программирование». SIAM Review . 38 (1): 49–95. doi :10.1137/1038003. ISSN  0036-1445.
  4. ^ Рагхавендра, Прасад (2008). «Оптимальные алгоритмы и результаты неаппроксимируемости для каждого CSP?». Труды сорокового ежегодного симпозиума ACM по теории вычислений . стр. 245–254. doi :10.1145/1374376.1374414. ISBN 9781605580470. S2CID  15075197.
  5. ^ Харрах, Бастиан (2021), «Решение обратной задачи эллиптических коэффициентов с помощью выпуклого нелинейного полуопределенного программирования», Optimization Letters , 16 (5): 1599–1609, arXiv : 2105.11440 , doi : 10.1007/s11590-021-01802-4, S2CID  235166806
  6. ^ Симмонс-Даффин, Дэвид (2015-02-06). "A Semidefinite Program Solver for the Conformal Bootstrap". Журнал физики высоких энергий . 2015 (6): 174. arXiv : 1502.02033 . Bibcode : 2015JHEP...06..174S. doi : 10.1007/JHEP06(2015)174. S2CID  256009551.
  7. ^ Цзян, Хаотянь; Катурия, Тарун; Ли, Инь Тат; Падманабхан, Свати; Сун, Чжао (ноябрь 2020 г.). «Более быстрый метод внутренней точки для полуопределенного программирования». 61-й ежегодный симпозиум IEEE по основам информатики (FOCS) 2020 г. Дарем, Северная Каролина, США: IEEE. стр. 910–918. arXiv : 2009.10217 . doi : 10.1109/FOCS46700.2020.00089. ISBN 978-1-7281-9621-3. S2CID  221836388.
  8. ^ Хуан, Байхэ; Цзян, Шуньхуа; Сун, Чжао; Тао, Жуньчжоу; Чжан, Руичжэ (18 ноября 2021 г.). «Ускоренное решение SDP: надежная структура IPM и эффективная реализация». arXiv : 2101.08208 [math.OC].
  9. ^ Брендан О'Донохью, Эрик Чу, Нил Парих, Стивен Бойд, «Коническая оптимизация с помощью операторного разделения и однородного самодвойственного вложения», Журнал теории оптимизации и приложений, 2016, стр. 1042–1068, https://web.stanford.edu/~boyd/papers/pdf/scs.pdf.
  10. ^ Вэнь, Зайвэнь, Дональд Голдфарб и Вотао Инь. «Методы Лагранжа с расширенными переменными направлениями для полуопределенного программирования». Математическое программирование, вычисления 2.3-4 (2010): 203-230.
  11. ^ Бюрер, Самуэль; Монтейро, Ренато Д.К. (2003), «Алгоритм нелинейного программирования для решения полуопределенных программ с помощью факторизации низкого ранга», Математическое программирование , 95 (2): 329–357, CiteSeerX 10.1.1.682.1520 , doi :10.1007/s10107-002-0352-8, ISSN  1436-4646, S2CID  7691228 
  12. ^ Кастанеда, О.; Голдштейн, Т.; Штудер, К. (декабрь 2016 г.). «Обнаружение данных в больших многоантенных беспроводных системах с помощью приближенной полуопределенной релаксации». Труды IEEE по схемам и системам I: Регулярные статьи . 63 (12): 2334–2346. arXiv : 1609.01797 . doi : 10.1109/TCSI.2016.2607198 . hdl : 20.500.11850/448631. ISSN  1558-0806.
  13. ^ Хазан, Элад (2008). Лабер, Эдуардо Сани; Борнштейн, Клодсон; Ногейра, Лоана Тито; Фариа, Луэрбио (ред.). «Разреженные приближенные решения полуопределенных программ». LATIN 2008: Теоретическая информатика . Конспект лекций по информатике. Берлин, Гейдельберг: Springer: 306–316. doi :10.1007/978-3-540-78773-0_27. ISBN 978-3-540-78773-0.
  14. ^ Чжу, Юйцзысюань; Патаки, Габор; Тран-Динь, Куок (2019), «Sieve-SDP: простой алгоритм редукции лиц для предварительной обработки полуопределенных программ», Mathematical Programming Computation , 11 (3): 503–586, arXiv : 1710.08954 , doi : 10.1007/s12532-019-00164-4, ISSN  1867-2949, S2CID  53645581
  • Ливен Ванденберг, Стивен Бойд, «Полуопределенное программирование», SIAM Review 38, март 1996 г., стр. 49–95. pdf
  • Моник Лоран, Франц Рендл, «Полуопределенное программирование и целочисленное программирование», Отчет PNA-R0210, CWI, Амстердам, апрель 2002 г. optimization-online
  • Э. де Клерк, «Аспекты полуопределенного программирования: алгоритмы внутренней точки и некоторые приложения», Kluwer Academic Publishers, март 2002 г., ISBN 1-4020-0547-4 . 
  • Роберт М. Фройнд, «Введение в полуопределенное программирование (SDP)», SDP-Введение
  • Ссылки на введения и события в этой области
  • Конспект лекций Ласло Ловаса по полуопределенному программированию
Retrieved from "https://en.wikipedia.org/w/index.php?title=Semidefinite_programming&oldid=1252661708"