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

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

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

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

Начальная мотивация

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

где и являются вещественными числами и является скалярным произведением в и .

Эквивалентные составы

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

Обозначим через пространство всех действительных симметрических матриц. Пространство оборудовано внутренним продуктом (где обозначает след )

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

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

Обратите внимание, что если мы соответствующим образом добавим переменные Slack, этот 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).

Примеры

Пример 1

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

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

минимизировать / максимизировать
при условии

Мы приступили к получению ответа. Это можно сформулировать с помощью SDP. Мы обрабатываем ограничения неравенства, увеличивая матрицу переменных и вводя резервные переменные , например

Решение этого SDP дает минимальное и максимальное значения as и соответственно.

Пример 2

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

минимизировать
при условии

где мы предполагаем, что всякий раз .

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

минимизировать
при условии

В этой формулировке цель является линейной функцией переменных .

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

где матрица - это квадратная матрица со значениями по диагонали, равными элементам вектора .

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

Определение следующим образом

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

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

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

минимизировать
при условии

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

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

Максимум такой, что каждый .

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

  1. Расслабьте целочисленную квадратичную программу в SDP.
  2. Решите SDP (с точностью до сколь угодно малой аддитивной ошибки ).
  3. Круглый раствор SDP для получения приближенного решения квадратичной программы оригинала целого.

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

такой, что , где максимизация осуществляется по векторам, а не целочисленным скалярам.

Это 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).

Примерные методы

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

Приложения

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

использованная литература

  • Ливен Ванденберг, Стивен Бойд, «Полусопределенное программирование», SIAM Review 38, март 1996 г., стр. 49–95. pdf
  • Моник Лоран, Франц Рендл, «Полупонятное программирование и целочисленное программирование», Отчет PNA-R0210, CWI, Амстердам, апрель 2002 г. Оптимизация-онлайн
  • Э. де Клерк, «Аспекты полуопределенного программирования: алгоритмы внутренней точки и избранные приложения», Kluwer Academic Publishers, март 2002 г., ISBN  1-4020-0547-4 .
  • Роберт М. Фройнд, "Введение в полуопределенное программирование (SDP), SDP-Introduction"

внешние ссылки