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

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

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

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

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

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

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

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

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

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

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

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

Обратите внимание, что если мы добавим слабые переменные соответственно, этот 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 дает минимальные и максимальные значения в качестве и соответственно.

Пример 2

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

свести к минимуму
при условии

где мы предполагаем, что в любое время .

Введение вспомогательной переменной проблему можно переформулировать:

свести к минимуму
при условии

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

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

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

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

Определение следующее

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

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

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

свести к минимуму
при условии

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

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

Максимизировать так что каждый .

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

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

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

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

Это SDP, потому что целевая функция и ограничения являются линейными функциями векторных внутренних продуктов. Решение SDP дает набор единичных векторов в ; поскольку векторы не должны быть коллинеарными, значение этой упрощенной программы может быть только выше, чем значение исходной квадратичной целочисленной программы. Наконец, для получения раздела требуется процедура округления. Гоэманс и Уильямсон просто выбирают равномерно случайную гиперплоскость через начало координат и делят вершины в соответствии с тем, на какой стороне гиперплоскости лежат соответствующие векторы. Непосредственный анализ показывает, что эта процедура дает ожидаемые результаты. коэффициент аппроксимации (гарантия работоспособности) 0,87856 - ε. (Ожидаемое значение разреза - это сумма по краям вероятности разрезания края, которая пропорциональна углу между векторами на концах ребра над . Сравнивая эту вероятность с , ожидаемое соотношение всегда не менее 0,87856.) догадка уникальных игр, можно показать, что это отношение аппроксимации является по существу оптимальным.

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

Алгоритмы

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

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

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

Большинство кодов основаны на методы внутренней точки (CSDP, МОСЕК, SeDuMi, SDPT3, DSDP, SDPA). Надежный и эффективный для общих линейных задач SDP. Ограничено тем фактом, что алгоритмы являются методами второго порядка и нуждаются в хранении и факторизации большой (и часто плотной) матрицы.

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

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

Пакетный метод

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

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

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

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

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

Приложения

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

Рекомендации

  1. ^ Рагхавендра, П. 2008. Оптимальные алгоритмы и результаты неприблизимости для каждого CSP?. В материалах 40-го ежегодного симпозиума ACM по теории вычислений (Виктория, Британская Колумбия, Канада, 17–20 мая 2008 г.). STOC '08. ACM, Нью-Йорк, штат Нью-Йорк, 245–254.
  2. ^ Чжу, Юйцзысюань; Патаки, Габор; Тран-Динь, Куок (2019), «Sieve-SDP: простой алгоритм сокращения лица для предварительной обработки полуопределенных программ», Математическое программирование вычислений, 11 (3): 503–586, arXiv:1710.08954, Дои:10.1007 / s12532-019-00164-4, ISSN  1867-2949, S2CID  53645581
  3. ^ Брендан О'Донохью, Эрик Чу, Нил Парих, Стивен Бойд, «Коническая оптимизация с помощью расщепления оператора и однородного самодуального вложения», Журнал теории оптимизации и приложений, 2016, стр 1042-1068,https://web.stanford.edu/~boyd/papers/pdf/scs.pdf.
  4. ^ Вэнь, Зайвэнь, Дональд Гольдфарб и Вотао Инь. «Переменные направления дополняют методы Лагранжа для полуопределенного программирования». Математическое программирование вычислений 2.3-4 (2010): 203-230.
  5. ^ Монтейро, Ренато Д. С.; Бюрер, Самуэль (2003), "Алгоритм нелинейного программирования для решения полуопределенных программ с помощью факторизации низкого ранга", Математическое программирование, 95 (2): 329–357, CiteSeerX  10.1.1.682.1520, Дои:10.1007 / s10107-002-0352-8, ISSN  1436-4646, S2CID  7691228
  6. ^ Castañeda, O .; Гольдштейн, Т .; Студер, К. (декабрь 2016 г.). «Обнаружение данных в больших беспроводных системах с множеством антенн с помощью приближенной полуопределенной релаксации». IEEE Transactions on Circuits and Systems I: Regular Papers. 63 (12): 2334–2346. Дои:10.1109 / TCSI.2016.2607198. ISSN  1558-0806.
  • Ливен Ванденберге, Стивен Бойд, «Полусопределенное программирование», SIAM Review 38, март 1996 г., стр. 49–95. pdf
  • Моник Лоран, Франц Рендл, «Полуопределенное программирование и целочисленное программирование», Отчет PNA-R0210, CWI, Амстердам, апрель 2002 г. оптимизация-онлайн
  • Э. де Клерк, "Аспекты полуопределенного программирования: алгоритмы внутренней точки и отдельные приложения", Kluwer Academic Publishers, март 2002 г., ISBN  1-4020-0547-4.
  • Роберт М. Фройнд, "Введение в полуопределенное программирование (SDP)", SDP-Введение

внешняя ссылка