Percepatan polinomial dengan algoritma berdasarkan pada pemrograman semidefinite

17

Ini adalah tindak lanjut dari pertanyaan terakhir yang diajukan oleh A. Pal: Memecahkan program semidefinite dalam waktu polinomial .

Saya masih bingung tentang waktu berjalan aktual dari algoritma yang menghitung solusi dari program semidefinite (SDP). Seperti yang ditunjukkan Robin dalam komentarnya terhadap pertanyaan di atas, SDP tidak dapat dipecahkan dalam waktu polinomial secara umum.

Ternyata, jika kita mendefinisikan SDP kita dengan hati-hati dan kita memaksakan suatu kondisi tentang seberapa baik batas wilayah layak primal, kita dapat menggunakan metode ellipsoid untuk memberikan ikatan polinomial pada waktu yang dibutuhkan untuk menyelesaikan SDP (lihat Bagian 3.2 dalam L. Lovász, program Semidefinite dan optimasi kombinatorial ). Batas diberikan karena ada " waktu polinomial " umum dan di sini saya tertarik pada ikatan yang kurang kasar.

Motivasi berasal dari perbandingan dua algoritma yang digunakan untuk masalah keterpisahan kuantum (masalah sebenarnya tidak relevan di sini, jadi jangan berhenti membaca pembaca klasik!). Algoritma didasarkan pada hierarki tes yang dapat dilemparkan ke SDP, dan setiap tes dalam hierarki berada pada ruang yang lebih besar, yaitu, ukuran SDP yang sesuai lebih besar. Dua algoritma yang ingin saya bandingkan berbeda dalam tradeoff berikut: di yang pertama, untuk menemukan solusi yang Anda butuhkan untuk naik lebih banyak langkah hierarki dan yang kedua langkah-langkah hierarki lebih tinggi, tetapi Anda harus naik lebih sedikit dari mereka. Jelas bahwa dalam analisis tradeoff ini, waktu berjalan yang tepat dari algoritma yang digunakan untuk menyelesaikan SDP adalah penting. Analisis algoritma ini dilakukan oleh Navascués et al. di arxiv: 0906.2731, di mana mereka menulis:

... kompleksitas waktu dari SDP dengan variabel dan ukuran matriks adalah (dengan biaya tambahan kecil yang berasal dari iterasi algoritma).n O ( m 2 n 2 )mnO(m2n2)

Dalam makalah lain , di mana pendekatan untuk masalah ini pertama kali diusulkan, penulis memberikan batasan yang sama, tetapi mereka menggunakan istilah " jumlah operasi aritmatika " yang lebih hati-hati daripada " kompleksitas waktu ".

Pertanyaan saya ada dua:

  • Algoritma / terikat mana adalah Navascués et al. mengacu?
  • Dapatkah saya mengganti ungkapan "waktu polinomial" di Lovász dengan sesuatu yang kurang kasar (mempertahankan asumsi yang sama)?
Alessandro Cosentino
sumber
1
Pemahaman saya adalah bahwa metode ellipsoid memberikan jawaban yang ada dalam kesalahan aditif dalam polinomial waktu dalam . Untuk sebagian besar masalah, orang mungkin menduga bahwa mungkin cukup. log ( 1 / ε ) ε = Ω ( 1 / 2 n )εcatatan(1/ε)ε=Ω(1/2n)
Suresh Venkat
@ SureshVenkat: Benar, metode ellipsoid bekerja dalam waktu polinomial dalam ukuran matriks input, ukuran kendala dan . Masalahnya adalah, untuk aplikasi yang saya sebutkan dalam pertanyaan, mengatakan hanya "polinomial" tidak cukup, saya perlu ikatan yang lebih tepat. catatan(1/ε)
Alessandro Cosentino

Jawaban:

12

Saya tidak terbiasa dengan rincian metode ellipsoid khusus untuk program semi-pasti, tetapi bahkan untuk program linear , analisis metode ellipsoid cukup halus.

  • Pertama, kita perlu mengikat jumlah iterasi dari algoritma ellipsoid yang ideal . Biarkan menjadi ellispoid yang digunakan dalam iterasi ke- dari algoritma ellipsoid, dan biarkan menjadi centroid-nya. Dalam algoritma yang ideal, oracle pemisahan / keanggotaan memberi Anda setengah ruang yang berisi titik optimal tetapi bukan centroid . Ellipsoid adalah ellipsoid terkecil yang mengandung . Untuk setiap , kami memiliki , di mana i c i h i x c i E i + 1 E ih i i v o l ( E i + 1 ) < ( 1 - 1EsayasayacsayahsayaxcsayaEsaya+1Esayahsayasayannlog(1/ε)Ei+1EihiO(n2)nlog(1/ε)vHail(Esaya+1)<(1-1n)vHail(Esaya)nadalah dimensinya. Jadi, mengingat ellipsoid awal yang masuk akal, jumlah iterasi adalah polinomial dalam dan . Komputasi dari dan membutuhkan (secara kasar) operasi aritmatika. Jadi jumlah operasi aritmatika juga polinomial dalam dan .ncatatan(1/ε)Esaya+1EsayahsayaHAI(n2)ncatatan(1/ε)

  • Namun, beberapa operasi aritmatika itu adalah akar kuadrat! Oleh karena itu koefisien ellipsoid ideal adalah bilangan irasional derajat , sehingga tidak ada harapan untuk benar-benar menghitung tepat dalam waktu yang wajar. Jadi sebagai gantinya, seseorang menghitung perkiraan luar dekat pada setiap iterasi menggunakan aritmatika presisi hingga. Grötschel, Lovasz, dan Schrijver membuktikan bahwa jika seseorang menggunakan (katakanlah) bit presisi dalam  iterasi ke- , kita masih memiliki2 i E i + 1 ˜ E iE i 10 i i v o l ( ˜ E i + 1 ) < O ( 1 - 1Esaya2sayaEsaya+1 E~sayaEsaya10sayasayaiO(ipolylogi)vHail(E~saya+1)<HAI(1-1n)vHail(E~saya), sehingga jumlah iterasi meningkat paling banyak faktor konstan. Tetapi sekarang setiap operasi aritmatika selama iterasi ke- (termasuk operasi yang dilakukan oleh oracle pemisahan) membutuhkan waktu .sayaHAI(saya polylog saya)

Secara keseluruhan, total waktu berjalan dari metode ellipsoid adalah sangat kira-kira persegi dari jumlah operasi aritmatika. Karena jumlah operasi aritmatika adalah polinomial dalam dan , demikian juga waktu yang berjalan.log ( 1 / ε )ncatatan(1/ε)

Jeffε
sumber
Terima kasih atas jawabannya. Jika saya menghitung dengan benar, inilah yang saya miliki (sangat kasar): (n. operasi aritmatika) (waktu untuk setiap operasi aritmatika). Saya masih belum terikat pada jumlah iterasi, kecuali itu jumlahnya banyak dalam dan . Mungkin saya tidak begitu jelas dalam pertanyaan saya, tetapi saya tertarik pada ikatan yang lebih tepat juga untuk jumlah iterasi (sesuatu seperti: , , ...). saya=1n. iterasiHAI(n2)×HAI(sayapolylogsaya)ncatatan(1/ε)nn2
Alessandro Cosentino
Satu hal lagi: bukankah jumlah kendala juga muncul di suatu tempat dalam analisis? Juga, apakah ini khusus untuk program linear?
Alessandro Cosentino
1
Anda juga harus memperhitungkan waktu berjalan oracle pemisahan; di situlah sejumlah kendala muncul. Untuk piringan hitam eksplisit, oracle pemisahan hanya mencoba kendala satu per satu. Untuk piringan hitam yang diwakili secara implisit, ini lebih rumit.
Jeff