Розв’язування напіввизначених програм у многочлен


17

Ми знаємо, що лінійні програми (LP) можна вирішити саме в поліноміальний час, використовуючи метод еліпсоїда або метод внутрішніх точок, як алгоритм Кармакара. Деякі LP з надполіномальною (експоненціальною) кількістю змінних / обмежень також можуть бути вирішені в поліноміальний час, за умови, що ми можемо розробити для них оракул поділу поліноміального часу.

А як щодо напіввизначених програм (SDP)? Які класи СДП можна вирішити саме в поліноміальний час? Коли СДП неможливо вирішити точно, чи завжди ми можемо розробити FPTAS / PTAS для його вирішення? Які технічні умови, за яких це можна зробити? Чи можемо ми розв’язати СДП з експоненціальною кількістю змінних / обмежень у многочленному часі, якщо ми зможемо спроектувати для нього оракул відриву поліноміального часу?

Чи можемо ми ефективно розв’язувати СДП, які виникають у задачах комбінаторної оптимізації (MAX-CUT, забарвлення графіків)? Якщо ми можемо вирішити лише коефіцієнт , чи не вплине це на алгоритми наближення постійного фактора (як 0.878 для алгоритму MAX-CUT Goemans-Williamson)?1+ϵ

Будь-яка хороша посилання на це буде високо оцінена.


3
Насправді метод працює для опуклого програмування взагалі
Суреш Венкат

8
Є щонайменше дві причини, за якими ти не можеш вирішити загальний СДП за багаточлен. (1) Існують СДП, рішення яких має експоненціальний розмір. (2) СДП можуть кодувати суму задачі квадратних коренів, яка, як відомо, не розв'язується в поліномі за часом.
Робін Котарі

2
@RobinKothari Для СДП, як правило, "розв'язується за полиномний час" замінюється на "потрапляє в межах (добавка) від ОПТ у поліном часу в 1 / ϵ " IIRC. ps Як СРС кодує суму квадратних коренів? ϵ1/ϵ
Суреш Венкат

8
@SureshVenkat: Скажімо, у нас є матриця 2x2 із записами [ab; cd]. Вкажіть, що це додатний напівдефініт і d = 1. Це означає b = c і a> = b ^ 2. Таким чином, b є верхньою межею квадратного кореня a. Тепер ми можемо максимізувати суму кількох таких b. Оптимальним значенням буде сума квадратних коренів відповідних значень.
Робін Котарі

2
Це не мультиплікативний, а аддитивний характер. Також en.wikipedia.org/wiki/Semidefinite_programming#Algorithms
Suresh Venkat

Відповіді:


16

Еліпсоїдний метод та методи внутрішніх точок можуть бути розширені і для вирішення СДП. Для детальної інформації можна звернутися до будь-яких стандартних текстів про СДП. Ось один:

Напівкінечне програмування . Ванденберге та Стівен Бойд, 1996.


Приємний довідник Ягадиш.
Аріндам Пал

Приємна довідка теж! Спасибі! Цікаво, коли говорять поліноміальний алгоритм часу, розв'язуючи СДП, чи алгоритми вирішуються для оптимального рішення, точно чи приблизно?
StackExchange для всіх
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.