Полуопределенное программирование ( SDP ) — это подраздел математического программирования, занимающийся оптимизацией линейной целевой функции (заданной пользователем функции, которую пользователь хочет минимизировать или максимизировать) на пересечении конуса положительных полуопределенных матриц с аффинным пространством , т. е. спектроэдром . [1]
Полуопределенное программирование — относительно новая область оптимизации, которая вызывает растущий интерес по нескольким причинам. Многие практические задачи в исследовании операций и комбинаторной оптимизации могут быть смоделированы или аппроксимированы как задачи полуопределенного программирования. В теории автоматического управления SDP используются в контексте линейных матричных неравенств . SDP на самом деле являются частным случаем конусного программирования и могут быть эффективно решены методами внутренних точек . Все линейные программы и (выпуклые) квадратичные программы могут быть выражены как SDP, и с помощью иерархий SDP решения задач полиномиальной оптимизации могут быть аппроксимированы. Полуопределенное программирование использовалось при оптимизации сложных систем. В последние годы некоторые проблемы сложности квантовых запросов были сформулированы в терминах полуопределенных программ.
Задача линейного программирования — это задача, в которой мы хотим максимизировать или минимизировать линейную целевую функцию действительных переменных над многогранником . В полуопределенном программировании мы вместо этого используем действительные векторы и имеем право брать скалярное произведение векторов; ограничения неотрицательности действительных переменных в LP ( линейном программировании ) заменяются ограничениями полуопределенности матричных переменных в SDP ( полуопределенном программировании ). В частности, общая задача полуопределенного программирования может быть определена как любая математическая задача программирования вида
где , и являются действительными числами, а является скалярным произведением и .
Матрица называется положительно полуопределенной, если она является матрицей Грама некоторых векторов (т.е. если существуют векторы такие, что для всех ). Если это так, мы обозначаем это как . Обратите внимание, что существует несколько других эквивалентных определений положительно полуопределенной матрицы , например, положительно полуопределенные матрицы являются самосопряженными матрицами, которые имеют только неотрицательные собственные значения .
Обозначим через пространство всех действительных симметричных матриц. Пространство снабжено скалярным произведением (где обозначает след ):
Мы можем переписать математическую программу, приведенную в предыдущем разделе, эквивалентным образом:
где запись в дается из предыдущего раздела и является симметричной матрицей, имеющей запись из предыдущего раздела. Таким образом, матрицы и симметричны и указанные выше внутренние произведения хорошо определены.
Обратите внимание, что если мы соответствующим образом добавим переменные-запасы , то этот SDP можно преобразовать в эквациональную форму :
Для удобства SDP может быть указан в несколько иной, но эквивалентной форме. Например, линейные выражения, включающие неотрицательные скалярные переменные, могут быть добавлены в спецификацию программы. Это остается SDP, поскольку каждая переменная может быть включена в матрицу как диагональная запись ( для некоторых ). Чтобы гарантировать, что , ограничения могут быть добавлены для всех . В качестве другого примера отметим, что для любой положительной полуопределенной матрицы , существует набор векторов, такой что , запись является скалярным произведением и . Поэтому SDP часто формулируются в терминах линейных выражений на скалярных произведениях векторов. Учитывая решение SDP в стандартной форме, векторы могут быть восстановлены со временем (например, с помощью неполного разложения Холецкого X).
Пространство полуопределенных матриц представляет собой выпуклый конус . Поэтому SDP является частным случаем конической оптимизации , которая, в свою очередь, является частным случаем выпуклой оптимизации.
Когда матрица C диагональна, внутренние произведения < C , X > эквивалентны векторному произведению диагонали C и диагонали X . Аналогично, когда матрицы A k диагональны, соответствующие внутренние произведения эквивалентны векторным произведениям. В этих векторных произведениях используются только диагональные элементы X , поэтому мы можем добавить ограничения, приравнивающие недиагональные элементы X к 0. Тогда условие эквивалентно условию, что все диагональные элементы X неотрицательны. Затем полученная SDP становится линейной программой , в которой переменные являются диагональными элементами X .
Аналогично линейному программированию, учитывая общую SDP вида
(первичная задача или P-SDP), мы определяем двойственную полуопределенную программу (D-SDP) как
где для любых двух матриц и , означает .
Теорема слабой двойственности утверждает, что значение первичного SDP по крайней мере равно значению двойственного SDP. Следовательно, любое допустимое решение двойственного SDP ограничивает снизу значение первичного SDP, и наоборот, любое допустимое решение первичного SDP ограничивает сверху значение двойственного SDP. Это потому, что
где последнее неравенство возникает из-за того, что обе матрицы являются положительно полуопределенными, а результат этой функции иногда называют разрывом двойственности.
Когда значения первичного и двойственного SDP равны, говорят, что SDP удовлетворяет свойству сильной двойственности . В отличие от линейных программ , где каждая двойственная линейная программа имеет оптимальную цель, равную первичной цели, не каждая SDP удовлетворяет сильной двойственности; в общем случае значение двойственного SDP может лежать строго ниже значения первичного, а P-SDP и D-SDP удовлетворяют следующим свойствам:
(i) Предположим, что основная задача (P-SDP) ограничена снизу и строго осуществима (т.е. существует такое, что , ). Тогда существует оптимальное решение (D-SDP) и
(ii) Предположим, что двойственная задача (D-SDP) ограничена сверху и строго допустима (т.е. для некоторого ). Тогда существует оптимальное решение (P-SDP) и выполняется равенство из (i).
Достаточным условием для выполнения сильной двойственности для задачи SDP (и вообще для любой задачи выпуклой оптимизации) является условие Слейтера . Также возможно достичь сильной двойственности для задач SDP без дополнительных условий регулярности, используя расширенную двойственную задачу, предложенную Раманой. [2] [3]
Рассмотрим три случайные величины , и . Заданный набор коэффициентов корреляции возможен тогда и только тогда, когда
Эта матрица называется матрицей корреляции . Предположим, что мы знаем из некоторых предварительных знаний (например, эмпирических результатов эксперимента), что и . Задача определения наименьшего и наибольшего значений, которые может принимать, задается следующим образом:
Мы устанавливаем , чтобы получить ответ. Это может быть сформулировано с помощью SDP. Мы обрабатываем ограничения неравенства, увеличивая переменную матрицу и вводя переменные слэка , например
Решение этой задачи SDP дает минимальное и максимальное значения как и соответственно.
Рассмотрим проблему
где мы предполагаем, что всякий раз, когда .
Вводя вспомогательную переменную, задачу можно переформулировать:
В этой формулировке цель является линейной функцией переменных .
Первое ограничение можно записать как
где матрица представляет собой квадратную матрицу со значениями по диагонали, равными элементам вектора .
Второе ограничение можно записать как
Определяем следующим образом
Мы можем использовать теорию дополнений Шура, чтобы увидеть, что
(Бойд и Ванденберг, 1996)
Полуопределенная программа, связанная с этой проблемой, такова:
Полуопределенные программы являются важными инструментами для разработки алгоритмов приближения для NP-трудных задач максимизации. Первый алгоритм приближения, основанный на SDP, принадлежит Мишелю Гоемансу и Дэвиду П. Уильямсону (JACM, 1995). [1] : Глава 1 Они изучали задачу максимального разреза : дан граф G = ( V , E ), вывести разбиение вершин V так, чтобы максимизировать количество ребер, пересекающих одну сторону с другой. Эту задачу можно выразить как целочисленную квадратичную программу :
Если P = NP , мы не можем эффективно решить эту задачу максимизации. Однако Гоэманс и Уильямсон наблюдали общую трехшаговую процедуру для атаки на этот тип проблемы:
Для максимального среза наиболее естественное расслабление —
Это SDP, поскольку целевая функция и ограничения являются линейными функциями векторных внутренних произведений. Решение SDP дает набор единичных векторов в ; поскольку векторы не обязаны быть коллинеарными, значение этой расслабленной программы может быть только выше значения исходной квадратичной целочисленной программы. Наконец, для получения разбиения необходима процедура округления. Гоэманс и Уильямсон просто выбирают равномерно случайную гиперплоскость через начало координат и делят вершины в соответствии с тем, с какой стороны гиперплоскости лежат соответствующие векторы. Прямой анализ показывает, что эта процедура достигает ожидаемого коэффициента аппроксимации (гарантии производительности) 0,87856 - ε. (Ожидаемое значение разреза равно сумме по ребрам вероятности того, что ребро разрезано, которая пропорциональна углу между векторами в конечных точках ребра по . Сравнивая эту вероятность с , в ожидание отношение всегда составляет не менее 0,87856.) Предполагая гипотезу уникальных игр , можно показать, что это отношение аппроксимации по существу оптимально.
Начиная с оригинальной статьи Гоэманса и Уильямсона, SDP были применены для разработки многочисленных алгоритмов аппроксимации. Впоследствии Прасад Рагхавендра разработал общую структуру для задач удовлетворения ограничений, основанную на гипотезе уникальных игр . [4]
Полуопределенное программирование применялось для поиска приближенных решений комбинаторных оптимизационных задач, таких как решение задачи максимального разреза с коэффициентом аппроксимации 0,87856. SDP также используются в геометрии для определения графов тенсегрити и возникают в теории управления как LMI , а в задачах обратных эллиптических коэффициентов как выпуклые, нелинейные, ограничения полуопределенности. [5] Оно также широко используется в физике для ограничения конформных теорий поля с помощью конформного бутстрапа . [6]
Проблема полуопределенной осуществимости (SDF) — это следующая задача принятия решения : для данной SDP решить, имеет ли она хотя бы одно осуществимое решение. Точная сложность выполнения этой задачи неизвестна (по состоянию на 1997 год). Однако Рамана доказал следующее: [2]
Существует несколько типов алгоритмов для решения SDP. Эти алгоритмы выводят значение SDP с точностью до аддитивной ошибки во времени, которая полиномиальна по размеру описания программы и .
Метод эллипсоида является общим методом для выпуклого программирования и может быть использован, в частности, для решения SDP. В контексте SDP метод эллипсоида обеспечивает следующую гарантию. [1] : Теор.2.6.1 Рассмотрим SDP в следующей эквациональной форме:
Пусть L — аффинное подпространство матриц в S n , удовлетворяющее m эквациональным ограничениям; поэтому SDP можно записать как: . Предположим, что все коэффициенты в SDP являются рациональными числами. Пусть R — явно заданная верхняя граница максимальной нормы Фробениуса допустимого решения, а ε> 0 — константа. Матрица X в S n называется ε-глубокой , если каждая матрица Y в L с расстоянием Фробениуса не более ε от X удовлетворяет условию допустимости . Обозначим . Эллипсоид возвращает один из следующих выходных данных:
Время выполнения полиномиально в двоичных кодировках входных данных и в 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 путем проверки ограничений проблемы. Они могут быть использованы для