Dalam pendidikan ilmu komputer saya, saya semakin memperhatikan bahwa sebagian besar masalah diskrit adalah NP-lengkap (setidaknya), sedangkan mengoptimalkan masalah terus menerus hampir selalu mudah dicapai, biasanya melalui teknik gradien. Apakah ada pengecualian untuk ini?
27
Jawaban:
Contoh yang saya sukai adalah masalah di mana, diberi , tentukan apakah:∫ π - π cos ( a 1 z ) cos ( a 2 z ) ... cos ( a n z )a1,a2,…,an∈N
Ini awalnya tampak seperti masalah terus menerus untuk mengevaluasi integral ini, namun mudah untuk menunjukkan bahwa integral ini bukan nol jika ada partisi seimbang dari set , jadi masalah integral ini adalah sebenarnya NP-lengkap.{a1,…,an}
Tentu saja, saya mendorong bermain-main dengan beberapa alat numerik untuk meyakinkan diri sendiri bahwa sebagian besar (jika tidak semua) trik numerik untuk mengevaluasi integral ini ditakdirkan untuk gagal begitu menjadi cukup besar.n
sumber
Ada banyak masalah terus-menerus dari bentuk "tes apakah input kombinatorial ini dapat direalisasikan sebagai struktur geometris" yang lengkap untuk teori eksistensial real , analog kontinu dari NP. Secara khusus, ini menyiratkan bahwa masalah-masalah ini NP-keras daripada dipecahkan secara polinomi. Contohnya termasuk menguji apakah grafik yang diberikan adalah grafik jarak unit, apakah grafik yang diberikan dapat ditarik di pesawat dengan tepi segmen garis lurus dan paling banyak jumlah penyeberangan tertentu, atau apakah pengaturan pseudolin yang diberikan dapat ditarik untuk membentuk garis pengaturan.
Ada masalah terus menerus lainnya yang bahkan lebih sulit: misalnya, menemukan jalur terpendek di antara hambatan polyhedral di 3d adalah PSPACE-complete (Canny & Reif, FOCS'87).
sumber
Meskipun ini tidak persis menjawab pertanyaan awal Anda, ini adalah contoh (dugaan) dari semacam tandingan filosofis: masalah di mana presentasi itu terpisah tetapi semua kekerasan berasal dari aspek 'berkelanjutan' dari masalah.
Masalahnya adalah masalah Jumlah Akar Kuadrat : diberikan dua set bilangan bulat dan , adalah ? (Ada formulasi lain, tapi ini adalah yang saya inginkan.) Meskipun tidak diketahui secara pasti untuk menjadiB = { b 1 , b 2 , ... , b n } ≤ m i = 1 √A={a1,a2,…,am} B={b1,b2,…,bn} ∑mi=1ai−−√≤∑nj=1bj−−√ keras, secara luas diduga bahwa ini mungkin NP-hard dan mungkin sebenarnya berada di luar NP (ada, seperti yang disebutkan dalam komentar, alasan yang sangat baik untuk percaya bahwa itu bukan NP-lengkap); satu-satunya penahanan yang diketahui hingga saat ini adalah beberapa tingkat lebih tinggi di atas hierarki polinomial. Jelas penyajian masalah ini sama jelasnya seperti - seperangkat bilangan bulat dan pertanyaan ya / tidak tentang mereka - tetapi tantangan muncul karena meskipun menghitung akar kuadrat dengan presisi tertentu adalah masalah yang mudah, mereka mungkin perlu dihitung ke akurasi tinggi (berpotensi superpolinomial) untuk menyelesaikan ketidaksetaraan dengan satu atau lain cara. Ini adalah masalah 'diskrit' yang muncul dalam sejumlah konteks optimasi yang mengejutkan dan membantu berkontribusi pada kompleksitasnya sendiri.
sumber
Masalah diskrit biasanya cenderung lebih sulit (mis. LP vs. ILP) tetapi bukan diskretitas itu sendiri yang menjadi masalahnya ... melainkan bagaimana kendala memengaruhi cara Anda dapat mencari domain Anda. Sebagai contoh, Anda mungkin berpikir bahwa mengoptimalkan polinomial adalah sesuatu yang dapat Anda lakukan secara efisien, tetapi memutuskan konveksitas kuartik (derajat-4 polinomial) adalah NP-hard .
Yang berarti bahkan jika Anda sudah memiliki yang optimal, cukup membuktikan bahwa Anda berada di optimal sudah NP-keras.
sumber
2^n
" tetangga menarik " yang perlu Anda cari.Meskipun untuk beberapa masalah populer, memang benar, saya pikir kedua asumsi - tergantung pada apa yang Anda definisikan sebagai masalah optimasi - tidak benar.
Pertama, beberapa definisi: kebanyakan masalah optimisasi bukan bagian dari NP . Misalnya untuk masalah Knapsack : seseorang tidak dapat mengeksploitasi non-determinisme untuk membangun tas yang paling berharga, sederhana karena cabang-cabang non-deterministik yang berbeda tidak memiliki memori bersama. NP juga didefinisikan sebagai "dapat diverifikasi secara polinomi" (memverifikasi sertifikat)
[1, p. 34]
. Dalam hal ini sertifikat misalnya tas : bitstring di mana jika bit ke- i diatur, itu menyiratkan item ke- i adalah bagian dari tas. Anda memang dapat memeriksa dalam waktu polinomial jika tas seperti itu lebih berharga daripada ambang yang diberikan (ini adalah varian keputusan), tetapi Anda tidak dapat - sejauh yang kami ketahui - berdasarkan pada satu tas, (jumlah polinomial tas), memutuskan apakah tas tersebut adalah yang paling berharga dari semua tas yang mungkin. Itu perbedaan penting antara NP dan EXP misalnya : di EXP , Anda dapat menghitung semua tas yang mungkin dan melakukan pembukuan tentang tas mana yang terbaik.The varian keputusan dari masalah optimasi dalam beberapa kasus bagian dari NP , salah satu kebutuhan untuk membuat perbedaan yang jelas antara rasa maksimalisasi dan rasa keputusan . Dalam pilihan rasa, pertanyaannya adalah: " Mengingat masalah optimisasi, dan batas utilitas, apakah ada solusi dengan utilitas lebih besar atau sama dengan batas itu " (atau sedikit dimodifikasi untuk masalah minimisasi).
Saya juga menganggap bahwa dengan NP Anda berarti (hipotetis) bagian dari NP yang bukan merupakan bagian dari P . Jika P = NP , tentu saja NP-complete masih ada, tetapi itu akan sama dengan P (hanya bertepatan dengan P untuk beberapa pengertian reduksi, seperti pengurangan banyak-waktu polinomial-kali oleh @ AndrásSalamon), yang tidak terlalu mengesankan ( dan akan mengurangi " celah " yang Anda sebutkan dalam pertanyaan Anda).
Sekarang kami telah menyortirnya: ada banyak masalah optimasi yang ada di P : masalah jalur terpendek , masalah aliran maksimum (untuk kapasitas integral), pohon rentang minimum dan pencocokan maksimum . Meskipun masalah ini mungkin terlihat "sepele untuk dipecahkan" bagi Anda, ini masih merupakan masalah pengoptimalan, dan dalam banyak kasus konstruksi (dan membuktikan kebenaran) tidak semudah itu. Jadi klaim tidak memiliki semua masalah diskrit lengkap NP. Mengingat P tidak sama dengan NP , masalah-masalah ini karenanya tidak bisa NP-lengkap .
Masalah berkelanjutan populer yang NP-hard adalah pemrograman kuadratik .
Sebenarnya pemrograman Linear telah lama dianggap NP-keras juga, tetapi dengan heuristik yang berkinerja sangat baik ( metode Simplex ). Algoritma Karmarkar ini adalah namun di P .
Dari saat masalah optimasi berkaitan dengan objek non-cembung, secara umum akan sulit - jika bukan tidak mungkin - untuk menemukan algoritma yang efisien.
Bibliografi
[1]
Kompleksitas Komputasi, pendekatan modern , Sanjeev Arora dan Boaz Baraksumber
P=NP
, setiap masalah dalam NP-complete adalah dengan definisi bagian dari NP dan dengan demikian dengan memperpanjang P , sekarang P berarti ada algoritma polinomial. Intinya adalah, saya pikir transformasi tidak masalah, karena untuk setiap bahasa di P pasti ada algoritma polinomial. Apakah Anda mengambil (paling banyak polinomial) transformasi atau tidak, tidak relevan. Ini masih polinomial, dengan demikian dalam P . Dengan kata lain, karena elemen asli dalam P , Anda dapat mengambil setiap transformasi poly-time secara gratis (tidak menghasilkan kelas kompleksitas yang lebih tinggi).