Apakah masalah -complete secara inheren kurang dapat ditelusuri dibandingkan masalah -complete?

66

Saat ini, menyelesaikan masalah lengkap atau masalah lengkap tidak layak dalam kasus umum untuk input besar. Namun, keduanya dapat dipecahkan dalam waktu eksponensial dan ruang polinomial.NPPSPACE

Karena kami tidak dapat membuat komputer nondeterministic atau 'beruntung', apakah ada bedanya bagi kami jika masalahnya -complete atau -complete?NPPSPACE

Alex ten Brink
sumber

Jawaban:

82

Ini adalah pertanyaan yang sangat bagus yang sering saya pikirkan: Apakah fakta bahwa suatu masalah adalah -complete atau -complete benar-benar memengaruhi kompleksitas waktu terburuk dari masalah? P S P A C ENPPSPACEYang lebih kabur, apakah perbedaan seperti itu benar-benar memengaruhi kerumitan "kasus tipikal" dalam praktik?

Intuition mengatakan bahwa masalah -complete lebih sulit daripada -complete, terlepas dari ukuran kompleksitas yang Anda gunakan. Tetapi situasinya halus. Bisa jadi, misalnya, bahwa (Kuantitatif Boolean Rumus, masalah kanonik lengkap) berada dalam waktu subeksponensial jika dan hanya jika (Kepuasan, masalah kanonik lengkap) dalam waktu subeksponensial. (Satu arah jelas; arah lainnya akan menjadi hasil utama!) Jika ini benar, maka mungkin dari sudut pandang "Saya hanya ingin menyelesaikan masalah ini", bukan masalah besar apakah masalahnya -lengkap atauN P Q B F P S P A C E S A T N P P S P A C E N PPSPACENPQBFPSPACESATNPPSPACENP-complete: salah satu cara, algoritma subexponential untuk satu menyiratkan algoritma subexponential untuk yang lain.

Biarkan saya menjadi pendukung iblis, dan berikan Anda sebuah contoh di mana satu masalah menjadi "lebih sulit" daripada yang lain, tetapi ternyata juga "lebih bisa ditelusuri" daripada yang lain juga.

Biarkan menjadi rumus Boolean pada variabel , di mana adalah genap. Misalkan Anda memiliki pilihan antara dua rumus yang ingin Anda putuskan:n nF(x1,,xn)nn

Φ1=(x1)(x2)(xn1)(xn)F(x1,,xn) .

Φ2=(x1)(x2)(xn1(xn)F(x1,,xn)

(Yaitu, di , bilangan alternatif berganti.)Φ2

Mana yang menurut Anda lebih mudah untuk dipecahkan? Rumus tipe , atau rumus tipe ?Φ1Φ2

Satu akan berpikir bahwa pilihan yang jelas adalah , karena hanya -Lengkap untuk memutuskan itu, sedangkan adalah masalah -Lengkap. Namun pada kenyataannya, menurut algoritma kami yang paling terkenal, adalah masalah yang lebih mudah. Kami tidak tahu bagaimana menyelesaikan untuk umum dalam waktu kurang dari langkah. (Jika kita bisa melakukan ini, kita akan memiliki batas formula ukuran baru yang lebih rendah!) Tetapi dapat dengan mudah diselesaikan untuk setiap dalam waktu acak , menggunakan pencarian pohon permainan acak! Untuk referensi, lihat Bab 2, Bagian 2.1, di Motwani dan Raghavan. N P Φ 2 P S P A C E Φ 2 Φ 1 F 2 n Φ 2 F O ( 2, 793 n )Φ1NPΦ2PSPACEΦ2Φ1F2nΦ2FO(2.793n)

Intinya adalah bahwa menambahkan penjumlahan universal sebenarnya membatasi masalah , membuatnya lebih mudah untuk dipecahkan, daripada lebih sulit. Algoritma pencarian tree game sangat bergantung pada memiliki bilangan kuantifikasi, dan tidak dapat menangani kuantifikasi arbitrer. Namun, intinya tetap bahwa masalah kadang-kadang bisa "lebih sederhana" di bawah satu ukuran kompleksitas, meskipun mereka mungkin terlihat "lebih keras" di bawah ukuran lain.

Ryan Williams
sumber
16
Jawaban yang bagus, dan jawaban yang menarik.
Suresh Venkat
Terpikir oleh saya bahwa contoh di atas adalah contoh yang cukup bagus dari apa yang kami maksud dengan "kompleksitas halus" (program Musim Gugur 2015 di Institut Simons). Salah satu ide kunci adalah bahwa teori kompleksitas dapat terlihat sangat berbeda ketika, alih-alih mencoba menemukan untuk setiap masalah model komputasi (berpotensi aneh) yang masalahnya "lengkap", orang hanya berfokus pada memahami apa yang mungkin runtime terbaik eksponen untuk masalah tersebut.
Ryan Williams
37

Itu penting, karena ada lebih banyak yang dipertaruhkan daripada apakah kita dapat menemukan solusi atau tidak. Yang juga menarik adalah apakah kami dapat memverifikasi solusi. Perbedaan kualitatif lainnya dapat dibuat antara kesulitan masalah, tetapi untuk NP versus kelas kompleksitas yang lebih besar, ini akan menjadi yang saya identifikasi sebagai yang paling penting.

Untuk masalah keputusan - masalah yang setiap contohnya memiliki jawaban ' YA ' atau ' TIDAK ' - NP justru merupakan kelas masalah yang kami dapat secara efisien memverifikasi bukti yang diakui bahwa contoh yang diberikan adalah contoh ' YA ', secara deterministik, jika kami disajikan dengan satu. Misalnya, jika Anda memiliki tugas variabel yang memuaskan untuk instance 3-SAT, tugas itu memungkinkan Anda untuk secara efisien membuktikan bahwa instance tersebut memuaskan. Tugas yang memuaskan seperti itu mungkin sulit ditemukan, tetapi begitu Anda memilikinya, Anda dapat dengan mudah membuktikan kepada orang lain bahwa instance tersebut memuaskan hanya dengan meminta mereka memverifikasi solusi yang Anda temukan.

Demikian pula, untuk TNP , ada bukti yang dapat diperiksa secara efisien untuk contoh ' TIDAK '; dan untuk masalah dalam NP  ∩  coNP , Anda dapat melakukan keduanya. Tetapi untuk masalah PSPACE -complete, tidak ada prosedur seperti itu ada - kecuali Anda dapat membuktikan beberapa persamaan kelas kompleksitas yang cukup spektakuler.

Niel de Beaudrap
sumber
Saya pikir pertanyaannya adalah tentang "optimasi" versi masalah NP-complete dan PSPACE-complete. Misalnya, apakah ada perbedaan (dalam hal kompleksitas) antara menemukan solusi untuk SAT dan untuk QBF? Dan yang lebih umum, apakah ada karakterisasi masalah optimasi yang versi keputusannya NP-complete atau PSPACE-complete?
Lamine
@Lamine: Saya tidak saya mendeteksi perbedaan yang Anda buat dalam pertanyaan (setidaknya, antara hanya keputusan dan optimasi penuh). Mungkin Anda maksudkan bahwa si penanya hanya tertarik pada pertanyaan tentang sumber daya yang diperlukan untuk menemukan jawabannya, dan tidak tertarik pada langkah-langkah lain dari kesulitan masalah, dalam hal ini saya setuju bahwa tanggapan saya tidak menjawab ini. Bagaimanapun, di atas adalah jawaban saya untuk pertanyaan yang ada.
Niel de Beaudrap
5
Jawaban yang sangat bagus
Dave Clarke
Kemampuan untuk memverifikasi secara efisien tidak membantu dalam menghitung solusi (kecuali P = NP). NP dan co-NP memungkinkan untuk menyerang masalah melalui tebak-dan-verifikasi. Pendekatan ini mudah diimplementasikan, dan bahkan mungkin lebih efisien, tetapi tidak membantu dalam kasus terburuk.
András Salamon
@ András: true - dengan demikian penekanan saya bahwa menemukan solusi bukan satu-satunya hal penting dalam kata pengantar untuk jawaban saya.
Niel de Beaudrap
36

Kami tidak tahu bagaimana membangun masalah hard case rata-rata dari (NP terburuk) menyelesaikan masalah tapi kami bisa melakukan ini untuk PSPACE (lihat Köbler & Schuler (1998) ) untuk menciptakan masalah bahkan pada distribusi seragam yang tidak dapat diselesaikan pada sebagian besar input kecuali semua PSPACE mudah dihitung.

Lance Fortnow
sumber
20

Dari sisi praktis, penting untuk diingat bahwa NP-Completeness bukan penghalang bagi banyak masalah dalam praktiknya. Alat kembar pemecah SAT dan CPLEX (untuk pemrograman linier bilangan bulat) cukup kuat dan cukup direkayasa dengan baik sehingga sering kali mungkin untuk memecahkan contoh besar masalah NP-lengkap dengan membingkai masalah sebagai ILP yang sesuai atau dengan mengurangi menjadi SAT.

Saya tidak mengetahui solver yang direkayasa dengan baik untuk masalah di PSPACE.

Suresh Venkat
sumber
11
Ada kompetisi tahunan yang dirancang untuk meningkatkan pemecah QBF . Saya tidak banyak menggunakannya.
Radu GRIGore
7

Anda mungkin berpikir seperti ini: apakah masalah matematika memiliki bukti yang dapat dibaca manusia, atau apakah secara inheren memerlukan "bukti komputer." Contoh: apakah posisi awal checker seri? (Jawab: ya.) Apakah posisi awal catur menang untuk orang kulit putih? (Jawab: tidak diketahui, tetapi sebagian besar lulusan sekolah berpendapat bahwa ini adalah seri.)

Bukti bahwa posisi awal checker adalah hasil imbang pada akhirnya mengharuskan seseorang untuk menerima bahwa komputer benar-benar memverifikasi banyak kasus khusus secara akurat. Jika bukti tentang catur pernah ada, mungkin akan membutuhkan pembaca manusia untuk menerima bahwa komputer diverifikasi dengan benar bahkan lebih banyak kasus khusus. Dan mungkin tidak ada metode yang lebih pendek untuk membuktikan pernyataan tersebut. Itu adalah masalah di PSPACE. Jika suatu masalah "hanya" dalam NP, maka (secara intuitif) manusia bisa memegang seluruh bukti di kepalanya. Manusia itu mungkin perlu menjadi ahli matematika yang sangat terspesialisasi, tentu saja.

Metafora ini akan rusak jika didorong terlalu keras - NP-proof ukuran mungkin tidak akan pernah bisa masuk ke kepala siapa pun. Tetapi gagasan dasar bahwa "saksi itu kecil" adalah bagian dari alasan mengapa masalah NP-lengkap memiliki begitu banyak arti penting industri.n1000000

Aaron Sterling
sumber
Bisakah satu juga berpendapat bahwa masalah lengkap-TNP memiliki masalah ini (kadang-kadang) membutuhkan "bukti komputer?"
Philip White
@ Philip White: Saya kira itu tidak sama. Katakanlah "catur imbang" ada di dalam NNC. Untuk mengatakan tidak, yang harus saya lakukan adalah menunjukkan satu garis pemaksa yang mudah diverifikasi. Namun, kami berharap bahwa, bahkan jika garis seperti itu ada, mungkin akan sangat sulit untuk membuktikan bahwa itu memang "memaksa." Jadi masalahnya tidak memberikan jaminan kesederhanaan jika dipecahkan dalam arah tertentu. "Catur adalah hasil imbang" mungkin secara inheren membutuhkan komputer untuk membuktikan, apakah itu benar atau salah.
Aaron Sterling
5

Lebih jauh dari komentar Suresh, tampaknya ada perbedaan besar dalam praktik. Ada heuristik yang berhasil mengeksploitasi struktur instance SAT praktis dan mendapatkan kinerja yang sangat baik (saya merujuk pada pemecah pembelajaran klausa yang didorong konflik di sini). Heuristik yang sama tidak menghasilkan peningkatan kinerja yang serupa pada pemecah QBF.

Perbedaan antara bukti dan verifikasi juga muncul. Beberapa pemecah SAT (seperti MiniSAT 1.14 dan sejumlah lainnya) menghasilkan bukti. Memproduksi bukti dalam pemecah QBF saat ini adalah non-sepele. (Pernyataan berikutnya adalah dari kabar angin). Ada banyak contoh dalam kompetisi QBF di mana solver ternyata menghasilkan hasil yang berbeda. Dengan tidak adanya pemecah bukti, kita tidak tahu hasil mana yang benar.

Vijay D
sumber
0

Jika Anda melihat kinerja praktis pada SAT dan catur, maka ada perbedaan - Masalah NP-lengkap lebih mudah ditangani daripada masalah PSPACE-complete. Pemecah SAT saat ini dapat menangani lebih dari ribuan variabel, tetapi mesin catur terbaik, dalam jumlah waktu yang sama, hanya dapat menghitung di bawah 20 gerakan.

Saya kira ini karena struktur masalah. Ya, jika Anda hanya menyebutkan solusi, pemecahan SAT sangat lambat. Tetapi karena tidak memiliki pergantian kuantifikasi, orang menemukan struktur dalam rumus dan karenanya menghindari banyak enumerasi. Saya pikir Ryan Williams mengabaikan hal ini.

Dengan pergantian kuantifikasi, ya ada metode pemangkasan yang cerdas, tetapi strukturnya tidak sekaya formula CNF.

Biarkan saya memprediksi masa depan. Pemecahan SAT akan mencapai P dengan memeriksa rumus dan pada dasarnya menghindari pencarian, sementara catur akan membuatnya ke P dengan memanfaatkan pencarian di pohon permainan.

Zirui Wang
sumber