Полуопределенное программирование (SDP ) - это подполе выпуклой оптимизации. с оптимизацией линейной целевой функции (заданная пользователем функция, которую пользователь хочет минимизировать или максимизировать) на пересечении конуса из положительного полуопределенного матрицы с аффинным пространством, т. Е. спектраэдром.
Полуопределенное программирование - это относительно новая область оптимизации, которая вызывает растущий интерес по нескольким причинам. Многие практические проблемы в исследовании операций и комбинаторной оптимизации могут быть смоделированы или аппроксимированы как задачи полуопределенного программирования. В теории автоматического управления SDP используются в контексте линейных матричных неравенств. SDP на самом деле являются частным случаем программирования конуса и могут быть эффективно решены с помощью методов внутренней точки. Все линейные программы могут быть выражены как SDP, а через иерархии SDP решения задач полиномиальной оптимизации могут быть аппроксимированы. Полуопределенное программирование использовалось при оптимизации сложных систем. В последние годы некоторые проблемы сложности квантовых запросов были сформулированы в терминах полуопределенных программ.
A линейное программирование проблема - это тот, в котором мы хотим максимизировать или минимизировать линейную целевую функцию вещественных переменных по многограннику . В полуопределенном программировании мы вместо этого используем векторы с действительными значениями и можем использовать скалярное произведение векторов; Ограничения неотрицательности для вещественных переменных в LP (линейное программирование) заменяются ограничениями полуопределенности для матричных переменных в SDP (полуопределенное программирование). В частности, общая задача полуопределенного программирования может быть определена как любая задача математического программирования вида
, где и являются действительными числами и - это точечное произведение из и .
An матрица - это называется положительно полуопределенным, если это матрица Грамиана некоторых векторов (т.е. если существуют векторы такие, что для всех ). В таком случае мы обозначаем это как . Обратите внимание, что есть несколько других эквивалентных определений положительного полуопределенного значения, например, положительно полуопределенные матрицы - это самосопряженные матрицы, которые имеют только неотрицательные собственные значения.
. Обозначим как пространство всех реальных симметричных матриц. Пространство снабжено внутренним продуктом (где обозначает след )
Мы можем переписать математическую программу, приведенную в предыдущем разделе, эквивалентно как
где запись в задается как из предыдущего раздела и является симметричным матрица, имеющая th запись f из предыдущего раздела. Таким образом, матрицы и симметричны, а указанные выше внутренние продукты четко определены..
Обратите внимание, что если мы добавим переменные запаса соответствующим образом, этот SDP можно преобразовать в одну из следующих форм:
Для удобства можно указать SDP в небольшом другая, но равнозначная форма. Например, линейные выражения, включающие неотрицательные скалярные переменные, могут быть добавлены в спецификацию программы. Это остается SDP, поскольку каждая переменная может быть включена в матрицу как диагональный элемент (для некоторых ). Чтобы гарантировать, что , ограничения можно добавить для всех . В качестве другого примера обратите внимание, что для любой положительно полуопределенной матрицы существует набор векторов таким образом, чтобы , запись - это скалярное произведение числа и . Следовательно, SDP часто формулируются в терминах линейных выражений для скалярных произведений векторов. Учитывая решение SDP в стандартной форме, векторы могут быть восстановлены за время (например, с использованием неполного разложения Холецкого X).
Аналогично линейному программированию, учитывая общий SDP вида
(основная задача или P-SDP), мы определить двойную полуопределенную программу (D-SDP) как
где для любых двух матриц и , означает .
Теорема слабой двойственности утверждает, что значение первичного SDP является, по крайней мере, значением двойного SDP. Следовательно, любое возможное решение для двойного SDP ограничивает нижнюю границу первичного значения SDP, и, наоборот, любое возможное решение для первичного SDP ограничивает верхнюю границу двойного значения SDP. Это потому, что
где последнее неравенство связано с тем, что обе матрицы являются положительно полуопределенными, и результат этого функцию иногда называют разрывом двойственности.
При условии, известном как условие Слейтера, значения первичного и двойного SDP равны. Это известно как сильная двойственность. Однако, в отличие от линейных программ, не каждый SDP удовлетворяет строгой двойственности; в общем, значение двойного SDP может лежать строго ниже значения основного.
(i) Предположим, что прямая задача (P-SDP) ограничена снизу и строго выполнима (т. Е. Существует так, что , ). Тогда существует оптимальное решение для (D-SDP) и
(ii) Предположим, что двойственная задача (D-SDP) ограничена сверху и строго выполнима (т. Е. для некоторого ). Тогда существует оптимальное решение для (P-SDP) и выполняется равенство из (i).
Рассмотрим три случайные величины , , и . По определению их коэффициенты корреляции действительны тогда и только тогда, когда
, и в этом случае эта матрица называется корреляционной матрицей. Предположим, что мы знаем из некоторых предварительных знаний (например, эмпирических результатов эксперимента), что и . Задача определения наименьшего и наибольшего значений, которые может принимать , задается следующим образом:
Мы устанавливаем , чтобы получить ответ. Это можно сформулировать с помощью SDP. Мы обрабатываем ограничения неравенства, увеличивая матрицу переменных и вводя переменные запаса, например
Решение этого SDP дает минимальное и максимальное значения как и соответственно.
Рассмотрим задачу
где мы предполагаем, что всякий раз, когда .
Введение вспомогательной переменной проблему можно переформулировать:
В этой формулировке цель является линейной функцией переменных .
Первое ограничение можно записать как
где матрица - квадратная матрица со значениями по диагонали, равными элементам вектора .
Второе ограничение можно записать как
Определение следующим образом
Мы можем использовать теорию дополнений Шура, чтобы увидеть что
(Boyd and Vandenberghe, 1996)
Полупонятная программа, связанная с этой проблемой:
Semidefinit Программы являются важными инструментами для разработки алгоритмов аппроксимации для NP-сложных задач максимизации. Алгоритм первого приближения, основанный на SDP, разработан Мишелем Гоэмансом и Дэвидом П. Уильямсоном (JACM, 1995). Они изучили задачу максимального разрезания : для графа G = (V, E) вывести разбиение вершин V, чтобы максимизировать количество края пересекаются с одной стороны на другую. Эту задачу можно представить в виде целочисленной квадратичной программы :
Если P = NP, мы не сможем эффективно решить эту задачу максимизации. Однако Гоеманс и Уильямсон наблюдали общую трехэтапную процедуру для решения такого рода проблем:
Для максимального сокращения наиболее естественное ослабление
Это SDP, потому что целевая функция и ограничения являются линейными функциями векторных внутренние продукты. Решение SDP дает набор единичных векторов в ; поскольку векторы не должна быть коллинеарной, значение этой упрощенной программы может быть только выше, чем значение исходной квадратичной целочисленной программы. Наконец, для получения раздела требуется процедура округления. Гоэманс и Уильямсон просто выбирают равномерно случайную гиперплоскость через начало координат и делят вершины в соответствии с тем, на какой стороне гиперплоскости лежат соответствующие векторы. Непосредственный анализ показывает, что с помощью этой процедуры достигается ожидаемый коэффициент аппроксимации (гарантия производительности) 0,87856 - ε. (Ожидаемое значение разреза - это сумма по краям вероятности того, что край будет разрезан, который пропорционален углу между векторами в конечных точках края над . Сравнение этой вероятности с , в ожидании отношения всегда составляет не менее 0,87856.) Если принять гипотезу уникальных игр, можно показать, что это отношение аппроксимации по существу оптимально.
Со времени выхода оригинальной статьи Гоэманса и Уильямсона SDP применялись для разработки множества алгоритмов аппроксимации. Недавно Прасад Рагхавендра разработал общую структуру для задач удовлетворения ограничений, основанную на гипотезе уникальных игр.
Есть несколько типов алгоритмов для решения SDP. Эти алгоритмы выводят значение SDP с точностью до аддитивной ошибки за время, которое является полиномиальным по размеру описания программы и .
Существуют также алгоритмы сокращения лица, которые можно использовать для предварительной обработки проблем SDP путем проверки ограничений проблемы. Их можно использовать для обнаружения отсутствия строгой выполнимости, для удаления избыточных строк и столбцов, а также для уменьшения размера матрицы переменных.
Большинство кодов основаны на методы внутренней точки (CSDP, MOSEK, SeDuMi, SDPT3, DSDP, SDPA). Надежный и эффективный для общих линейных задач SDP. Ограничено тем фактом, что алгоритмы являются методами второго порядка и нуждаются в хранении и факторизации большой (и часто плотной) матрицы.
Методы первого порядка для конической оптимизации избегают вычисления, хранения и факторизации большой матрицы Гессе и масштабируются для решения гораздо более серьезных проблем, чем методы внутренней точки, с некоторой ценой в точности. Метод первого порядка реализован в Решателе конуса расщепления (SCS). Другим методом первого порядка является метод переменного направления множителей (ADMM). Этот метод требует на каждом шаге проецирования на конус полуопределенных матриц.
Код ConicBundle формулирует проблему SDP как проблему и решает ее методом негладкой оптимизации Spectral Bundle. Такой подход очень эффективен для специального класса линейных задач SDP.
Алгоритмы, основанные на расширенном лагранжевом методе (PENSDP), аналогичны по поведению методам внутренней точки и могут быть специализированы для некоторых очень крупномасштабных задач. Другие алгоритмы используют информацию низкого ранга и переформулируют SDP как проблему нелинейного программирования (SDPLR).
Для поиска приближенных решений комбинаторные задачи оптимизации, такие как решение задачи max cut с коэффициентом аппроксимации 0,87856. SDP также используются в геометрии для определения графов тенсегрити и возникают в теории управления как LMI.