Полуопределённое программированиеПолуопределённое программирование (или SDP от англ. Semidefinite programming) — подраздел выпуклого программирования, которое занимается оптимизацией линейной целевой функции (целевая функция — это заданная пользователем функция, значение которой пользователь хочет минимизировать или максимизировать) на пересечении конусов положительно полуопределённых матриц с аффинным пространством. Полуопределённое программирование является относительно новой областью оптимизации, интерес к которой растёт по нескольким причинам. Много практических задач в областях исследования операций и комбинаторной оптимизации можно смоделировать или аппроксимировать как задачи полуопределённого программирования. В теории автоматического управления задачи SDP используются в контексте линейных матричных неравенств. Задачи SDP, фактически, являются частным случаем конического программирования[англ.] и могут быть эффективно решены методом внутренней точки. Все задачи линейного программирования могут быть выражены как задачи SDP, а с помощью иерархий задач SDP могут быть аппроксимированы решения задач полиномиальной оптимизации. Полуопределённое программирование используется при оптимизации сложных систем. В последние годы некоторые задачи сложности квантовых запросов были сформулированы в терминах полуопределённого программирования. Мотивация и определениеИсходные мотивацииЗадача линейного программирования — это задача, в которой нужно максимизировать или минимизировать линейную целевую функцию от вещественных переменных на многограннике. В полуопределённом программировании, вместо этого мы используем вещественные вектора и нам позволено использовать скалярное произведение векторов. Условие неотрицательности вещественных переменных задачи ЛП заменяется ограничениями полуопределённости на матрице переменных задачи SDP. В частности, общая задача полуопределённого программирования может быть определена как любая задача математического программирования вида
Эквивалентные формулировкиГоворят, что матрица положительно полуопределённа, если она является матрицей Грама некоторых векторов (т.е. если существуют вектора , такие, что для всех ). Если это выполняется, мы обозначим это как . Заметим, что существуют некоторые другие эквивалентные определения положительной полуопределённости, например, положительно полуопределённые матрицы имеют только неотрицательные собственные значения и имеет положительно полуопределённый квадратный корень. Обозначим через пространство всех вещественных симметричных матриц. В этом пространстве имеется скалярное произведение (где означает след) Мы можем переписать задачу математического программирования из предыдущей секции в эквивалентном виде
где элемент матрицы равно из предыдущей секции, а — матрица, имеющая в качестве элемента матрицы значение из предыдущей секции. Заметим, что если мы добавим дополнительные переменные[англ.] должным образом, эта задача 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Рассмотрим задачу
где предполагается, что при . Введя дополнительную переменную , перепишем задачу в виде:
В этой формулировке целевая функция является линейной функцией от двух переменных (). Первое ограничение можно переписать в виде
где матрица является квадратной матрицей со значениями на диагонали, равными элементам вектора . Второе ограничение можно записать в виде Определим матрицу следующим образом Мы можем использовать теорию дополнения Шура, чтобы показать, что Задача полуоределённого программирования для этой задачи будет иметь вид
Пример 3 (Аппроксимационный алгоритм Гоеманса — Уильямсона MAX CUT)Полуопределённое программирование является важным инструментом для создания аппроксимационных алгоритмов для NP-трудных задач максимизации. Первый аппроксимационный алгоритм, основанный на SDP, предложили Михель Гоеманс и Дэвид Уильямсон[2]. Они изучали задачу MAX CUT: Дан граф G = (V, E), требуется разбить вершины V на две части так, чтобы максимизировать число рёбер соединяющих эти две части. Задачу можно представить как задачу целочисленного квадратичного программирования:
Если только не P = NP, мы не можем решить эту задачу эффективно. Однако Гоеманс и Уильямсон наметили трёхшаговую процедуру для атаки такого рода задач:
Для задачи MAX CUT наиболее естественным ослаблением является
Задача является задачей SDP, поскольку и целевая функция, и ограничения являются линейными функциями от скалярных произведений векторов. Решение задачи SDP даёт набор единичных векторов в . Поскольку вектора не обязательно коллинеарны, значение ослабленной задачи может быть только больше значения исходной целочисленной задачи квадратичного программирования. Конечная процедура округления необходима, чтобы получить разбиение. Гоеманс и Уильямсон выбирают случайную гиперплоскость (используя равномерное распределение), проходящую через начало координат и разбивают вершины в зависимости от расположения относительно этой плоскости. Непосредственный анализ показывает, что эта процедура обеспечивает ожидаемый аппроксимационный коэффициент 0,87856 - ε. (Математическое ожидание значения разреза равно сумме по всем рёбрам вероятностей, что ребро входит в разрез и это ожидание пропорционально углу между векторами в конечных вершинах ребра. Если сравнивать эту вероятность с , математическое ожидание отношения всегда будет не меньшим 0,87856.) В предположении верности гипотезы уникальной игры[англ.] можно показать, что аппроксимационный коэффициент этой аппроксимации, главным образом, оптимален. Со времени появления статья Гоеманса и Уильямсона задачи SDP были применены для разработки большого количества аппроксимационных алгоритмов. Не так давно Прасад Рагхавендра разработал общую схему для задач удовлетворения ограничений, основанную на гипотезе уникальной игры[англ.][3]. АлгоритмыИмеется несколько видов алгоритмов для решения задач SDP. Результат работы этих алгоритмов является значение задачи SDP с точностью до , которое получается за время, полиномиально зависящее от размера задачи и . Методы внутренней точкиБольшинство систем решения базируются на методе внутренней точки (CSDP, SeDuMi, SDPT3, DSDP, SDPA), робастном и эффективном для линейных задач SDP общего вида. Подход ограничен в использовании тем фактом, что алгоритмы являются методами второго порядка и требуют запоминания и разложения больших (и, зачастую, плотных) матриц. Методы первого порядкаМетоды первого порядка для конической оптимизации[англ.] избегают запоминания и разложения больших матриц Гессе и применимы к существенно большим по размеру задачам, чем методы внутренней точки, за счёт потери в точности. Метод реализован в системе «SCS solver». Метод пучковЗадача SDP формулируется как задача негладкой оптимизации и решается методом спектрального пучка. Этот подход очень эффективен для частных классов линейных задач SDP. ДругиеАлгоритмы, основанные на методе обобщённого лагранжиана[англ.] (PENSDP), близки по поведению к методам внутренней точки и могут быть приспособлены для некоторых очень больших задач. Другие алгоритмы используют низкоуровневую информацию и переформулировку задачи SDP как задачи нелинейного программирования (SPDLR). ПриложенияПолуопределённое программирование было использовано для поиска приближённых решений задач комбинаторной оптимизации, таких как решение задачи максимального разреза c аппроксимационным коэффициентом 0,87856. Задачи SDP используется также в геометрии для определения тенсегрити-графов, и появляются в теории управления как линейные матричные неравенства. Примечания
Литература
Ссылки
|