Memecahkan program semidefinite dalam waktu polinomial

17

Kita tahu bahwa program linier (LP) dapat diselesaikan tepat dalam waktu polinomial menggunakan metode ellipsoid atau metode titik interior seperti algoritma Karmarkar. Beberapa piringan hitam dengan jumlah variabel / kendala super-polinomial (eksponensial) juga dapat diselesaikan dalam waktu polinomial, asalkan kita dapat merancang oracle pemisahan waktu polinomial untuk mereka.

Bagaimana dengan program semidefinite (SDP)? Kelas SDP apa yang bisa dipecahkan tepat dalam waktu polinomial? Ketika SDP tidak dapat dipecahkan dengan tepat, bisakah kita selalu merancang FPTAS / PTAS untuk menyelesaikannya? Apa kondisi teknis di mana ini dapat dilakukan? Bisakah kita memecahkan SDP dengan jumlah variabel / kendala eksponensial dalam waktu polinomial, jika kita dapat merancang oracle pemisahan waktu polinomial untuknya?

Bisakah kita menyelesaikan SDPs yang terjadi dalam masalah optimisasi kombinatorial (MAX-CUT, pewarnaan grafik) secara efisien? Jika kita dapat memecahkan hanya dalam faktor, akan tidak memiliki efek pada algoritma faktor pendekatan konstan (seperti 0,878 untuk Goemans-Williamson MAX-CUT algoritma)?1+ε

Referensi yang bagus tentang ini akan sangat dihargai.

Arindam Pal
sumber
3
Bahkan metode ini bekerja untuk pemrograman cembung pada umumnya
Suresh Venkat
8
Setidaknya ada dua alasan Anda tidak dapat menyelesaikan SDP umum dalam waktu polinomial. (1) Ada SDP yang solusinya berukuran eksponensial. (2) SDP dapat mengkodekan jumlah masalah akar kuadrat, yang tidak diketahui sebagai waktu polinomial yang dapat dipecahkan.
Robin Kothari
2
@RobinKothari Untuk SDP, biasanya "dipecahkan dalam waktu polinomial" diganti dengan "mendapat dalam (aditif) OPT dalam polinomial waktu dalam 1 / ϵ " IIRC. ps, bagaimana SDP mengkodekan jumlah akar kuadrat? ε1/ε
Suresh Venkat
8
@ SureshVenkat: Katakanlah kita memiliki matriks 2x2 dengan entri [ab; CD]. Tetapkan bahwa ini adalah semidefinit positif dan d = 1. Ini berarti b = c dan a> = b ^ 2. Jadi b dibatasi oleh akar kuadrat dari a. Sekarang kita dapat memaksimalkan jumlah dari beberapa b's. Nilai optimal adalah jumlah akar kuadrat dari masing-masing a.
Robin Kothari
2
Ini bukan multiplikatif tetapi aditif. Juga, en.wikipedia.org/wiki/Semidefinite_programming#Algorithms
Suresh Venkat

Jawaban:

16

Metode ellipsoid dan metode titik interior dapat diperluas untuk menyelesaikan SDP juga. Anda dapat merujuk ke teks standar apa pun di SDP untuk detailnya. Ini dia:

Pemrograman Semidefinite . Vandenberge dan Stephen Boyd, 1996.

Jagadish
sumber
Referensi bagus Jagadish.
Arindam Pal
Referensi yang bagus juga! Terima kasih! Apakah bertanya-tanya ketika mengatakan algoritma waktu polinomial memecahkan SDP, apakah penyelesaian algoritma untuk solusi optimal, tepat atau kira-kira?
StackExchange for All