Algoritma yang tepat untuk pemrograman kuadratik non-cembung

13

Pertanyaan ini adalah tentang masalah pemrograman kuadratik dengan kendala kotak (kotak-QP), yaitu masalah optimasi formulir

  • meminimalkan f(x)=xTAx+cTx tunduk pada x[0,1]n .

Jika positif semi-pasti, maka semuanya akan bagus dan cembung dan mudah, dan kita bisa menyelesaikan masalah dalam waktu polinomial.SEBUAH

Di sisi lain, jika kita memiliki kendala integralitas , kita dapat dengan mudah menyelesaikan masalah dalam waktu dengan kekerasan. Untuk keperluan pertanyaan ini, ini cukup cepat.x{0,1}nHAI(2nhalHaily(n))

Tetapi bagaimana dengan kasus kontinu non-cembung? Apa algoritma yang paling cepat diketahui untuk QP kotak umum?

Sebagai contoh, dapatkah kita menyelesaikannya dalam waktu yang cukup eksponensial, misalnya, , atau apakah kompleksitas kasus terburuk dari algoritma yang paling dikenal adalah sesuatu yang jauh lebih buruk?O(3npoly(n))


Latar Belakang: Saya memiliki beberapa QP kotak yang cukup kecil yang sebenarnya ingin saya selesaikan, dan saya sedikit terkejut melihat betapa buruknya beberapa paket perangkat lunak komersial, bahkan untuk nilai sangat kecil . Saya mulai bertanya-tanya apakah ada penjelasan TCS untuk pengamatan ini.n

Jukka Suomela
sumber
1
Bisakah Anda memecahkan bahkan untuk PSD ? Solusinya bisa irasional, bukan? Jika Anda ingin kehilangan aditif ϵ mungkin seseorang bisa mendapatkan algoritma waktu eksponensial dengan melakukan pencarian brute-force pada grid yang cukup bagus. Hanya saran yang tidak jelas. Aϵ
Chandra Chekuri
Kelemahannya adalah bahwa "pangkalan" eksponen akan menjadi sekitar , tetapi mungkin rekayasa jaringan yang cerdas dapat membantu untuk "kecil" dan n1/ϵn
Suresh Venkat
@ChandraChekuri: Perkiraan baik-baik saja jika Anda dapat mencapai, misalnya, . Namun, pemaksaan kasar pada grid yang halus tidak layak. ϵ=109
Jukka Suomela
Dengan eliminasi quantifier pada bidang tertutup nyata, selalu mungkin untuk menyelesaikan sistem ini dengan tepat.
2
Jika diizinkan, Anda dapat mengoptimalkan fungsi pada setiap permukaan kubus hanya dengan menuliskan kriteria optimalitas orde pertama. O(3n)
Yoshio Okamoto

Jawaban:

12

Solusi optimal terletak pada beberapa wajah. Jadi, kita bisa melihat semua wajah kubus, dan menemukan semua titik stasioner pada masing-masing wajah.

Ini prosedur yang lebih konkret. Permukaan kubus dapat ditandai dengan dua set indeks disjoint dan I 1 . Untuk i I 0 , kami memperbaiki x i = 0 , dan untuk i I 1 kami memperbaiki x i = 1 . Misalkan ˜ x terdiri dari entri yang belum diperbaiki yang tersisa dariI0I1iI0xi=0iI1xi=1x~. Perbaikan ini mengubah fungsi tujuan menjadi bentuk berikut:x

x~A~x~+c~x~+d,

dengan dan ˜ c yang sesuai , dan beberapa konstanta d , dan kami ingin menemukan titik-titik stasioner dari fungsi ini dalam kondisi 0 < ˜ xA~c~d .0<x~<1

Untuk tujuan ini, kami mengambil diferensiasi dari fungsi tujuan untuk memperoleh

12A~x~+c~=0.

Memecahkan sistem persamaan linear ini memberi Anda poin stasioner, kandidat untuk solusi optimal. Kami memeriksa semuanya, memeriksa kondisinya, dan memilih satu dengan nilai objektif minimum.

Kompleksitas waktu keseluruhan adalah sesuatu seperti karena jumlah wajah dari n- kubus adalah 3 n dan sistem persamaan linear dapat diselesaikan dalam waktu polinomial. Kompleksitas ruang adalah polinomial dalam nO(3npoly(n))n3nn .

Yoshio Okamoto
sumber
1
f
@cody: Itu karena setiap polytope adalah penyatuan wajah yang terputus-putus.
Yoshio Okamoto
f
@cody: Properti masih berlaku, tetapi kita perlu menyelesaikan persamaan aljabar derajat lebih dari satu. Saya khawatir ini bukan hal sepele untuk kasus multivariat.
Yoshio Okamoto