Pertanyaan ini adalah tentang masalah pemrograman kuadratik dengan kendala kotak (kotak-QP), yaitu masalah optimasi formulir
- meminimalkan tunduk pada .
Jika positif semi-pasti, maka semuanya akan bagus dan cembung dan mudah, dan kita bisa menyelesaikan masalah dalam waktu polinomial.
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.
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?
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.
sumber
Jawaban:
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 dariI0 I1 i∈I0 xi=0 i∈I1 xi=1 x~ . Perbaikan ini mengubah fungsi tujuan menjadi bentuk berikut:x
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
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)) n 3n n .
sumber