Algoritma eksponensial waktu yang tepat untuk program 0-1 dengan data tidak negatif

9

Apakah ada algoritma yang dikenal untuk masalah berikut yang mengalahkan algoritma naif?

Input: matriks A dan vektor b,c , di mana semua entri A,b,c adalah bilangan bulat tidak negatif.

xmax{cTx:Axb,x{0,1}n}

Pertanyaan ini adalah versi yang disempurnakan dari pertanyaan saya sebelumnya Algoritma eksponensial waktu yang tepat untuk pemrograman 0-1 .

Austin Buchanan
sumber

Jawaban:

5

jika jumlah koefisien tidak nol dalam adalah linier dalam , ada algoritma yang menyelesaikan masalah ini dalam waktu kurang dari waktu.An2n

Begini cara kerjanya. Kami menggunakan koneksi standar antara masalah optimisasi dan masalah keputusan terkait. Untuk menguji apakah ada solusi mana dan , kami akan membentuk masalah keputusan: kami akan menggabungkan kendala ke matriks , dan menguji apakah ada sehingga dan . Secara khusus, kita akan membentuk matriks dengan mengambil dan menambahkan baris tambahan yang mengandung , dan kita akan membentuk dengan mengambilxAxbcTxαcTxαAxAxbcTxαAAcTbbdan bersebelahan dengan baris tambahan dengan . Kami mendapatkan masalah keputusan: apakah ada sehingga ? Jawaban untuk masalah keputusan ini memberi tahu kami apakah ada solusi untuk masalah optimasi asli dari nilai atau lebih besar. Selain itu, seperti yang dijelaskan dalam jawaban untuk pertanyaan Anda sebelumnya , masalah keputusan ini dapat diselesaikan dalam waktu kurang dari kali, jika jumlah koefisien tidak nol dalam adalah linear dalam (dan dengan demikian jika jumlah non- nol koefisien dalam adalah linier dalam ). Sekarang kita dapat menggunakan pencarian biner diαx{0,1}nAxbα2nAnAnαuntuk menyelesaikan masalah pengoptimalan Anda dalam waktu kurang dari kali.2n

Terima kasih saya kepada AustinBuchanan dan Stefan Schneider karena telah membantu men-debug versi sebelumnya dari jawaban ini.

DW
sumber
Bisakah Anda memberikan jawaban yang lebih kuat: seperti "ada algoritma waktu " atau "algoritma yang lebih cepat daripada akan dibantah ..."? O(2n/2)O(2n)
Austin Buchanan
@AustinBuchanan, jika jumlah dimensi cukup kecil, ada algoritma , seperti yang didokumentasikan dalam jawaban saya untuk pertanyaan lain . Itu yang terbaik yang saya tahu caranya; Saya tidak tahu bagaimana melakukan lebih baik dari itu. Mungkin orang lain akan dapat memberikan jawaban yang lebih kuat! bO(2n/2)
DW
O(2n/2) berlaku setiap kali jumlah kendala adalah ? O(1)
Austin Buchanan
4

Jika kita mempertimbangkan masalah minimalisasi , maka pengurangan berikut ini menunjukkan bahwa suatu algoritma berjalan dalam waktu untuk akan menyangkal SETH. Reformulasi membuktikan hasil yang sama untuk masalah yang dimaksudkan (versi maksimalisasi).miny{cTy:Ayb,y{0,1}n}O(2δn/2)δ<1

Diberikan instance dari CNF-SAT dengan variabel , merumuskan IP 0-1 dengan dua variabel untuk setiap variabel dalam instance SAT. Seperti biasa, klausa akan direpresentasikan sebagai . Kemudian untuk setiap variabel dalam instance SAT, tambahkan batasan . Tujuannya adalah untuk meminimalkan . Tujuan dari IP akan menjadi jika turunan SAT memuaskan.Φ=i=1mCi{xj}j=1nyj,y¯jxj(x1x¯2x3)y1+y¯2+y31xjyj+y¯j1j=1n(yj+y¯j)n

Terima kasih kepada Stefan Schneider untuk koreksi.

Pembaruan: pada Nyala Sekeras CNF-Sat , penulis menduga bahwa SET COVER tidak dapat diselesaikan dalam waktu , , di mana mengacu pada jumlah set. Jika benar, ini akan menunjukkan bahwa masalah saya tidak dapat diselesaikan pada waktu juga.O(2δn)δ<1nO(2δn)

Pembaruan 2. Sejauh yang saya tahu, dengan asumsi SETH, masalah saya tidak dapat diselesaikan dalam waktu , karena telah ditunjukkan bahwa Hitting Set (dengan ukuran dasar ground ) tidak dapat diselesaikan dipecahkan dalam waktu .O(2δn)nO(2δn)

Austin Buchanan
sumber
3
Karena Anda menggandakan jumlah variabel, saya pikir ini hanya menunjukkan bahwa algoritma untuk masalah ini dengan runtime akan bertentangan dengan SETH. O(2δn/2)
Stefan Schneider
Tunggu ... penulis dari Pada Masalah Sekeras CNF-SAT menyatakan bahwa "untuk setiap , algoritme untuk Hitting Set akan melanggar SETH." Tidakkah ini berhasil? ϵ<1O(2ϵn)
Austin Buchanan