Mengapa penting untuk membuktikan bahwa suatu masalah adalah NP-complete?

Jawaban:

26

Ali, pertanyaan bagus.

Misalkan Anda ingin menunjukkan bahwa beberapa masalah P sulit secara komputasi. Sekarang, Anda dapat menduga bahwa P sulit hanya berdasarkan pada fakta bahwa kami belum memiliki algoritma yang efisien untuk itu. Tapi ini bukti yang agak lemah, bukan? Bisa jadi kita telah melewatkan beberapa cara yang bagus untuk melihat P yang akan membuatnya sangat mudah untuk diselesaikan. Jadi, untuk menduga bahwa P itu sulit, kami ingin mengumpulkan lebih banyak bukti. Pengurangan menyediakan alat untuk melakukan hal itu! Jika kita dapat mengurangi beberapa masalah alam lainnya Q ke P, maka kita telah menunjukkan P setidaknya sekeras Q. Tapi Q bisa menjadi masalah dari beberapa bidang matematika yang sama sekali berbeda, dan orang mungkin telah berjuang selama beberapa dekade untuk menyelesaikan Q juga . Jadi, kita dapat melihat kegagalan kita untuk menemukan algoritma yang efisien untuk Q sebagai bukti bahwa P itu sulit. Jika kita punya banyak Q '

Inilah yang diberikan oleh teori kelengkapan NP. Jika Anda membuktikan masalah Anda sebagai NP-lengkap, maka Anda telah mengikat kekerasannya dengan kekerasan ratusan masalah lainnya, masing-masing memiliki minat yang signifikan pada berbagai komunitas. Dengan demikian, secara moral, Anda dapat yakin bahwa masalah Anda memang sulit.

arnab
sumber
Jadi tujuan awalnya adalah untuk menemukan algoritma yang efisien untuk P tetapi karena itu tampak tidak dapat diraih mengasumsikan bahwa P adalah komputasi yang sulit dan kemudian jawaban Anda menjelaskan sisanya?
Ali
Kami ingin menunjukkan bahwa masalah kami P sulit secara komputasi, tetapi kami tidak ingin menganggap bahwa P sulit untuk membuktikan bahwa P sulit :) Alih-alih, jika Anda membuktikan P menjadi NP-complete (atau bahkan NP-hard tetapi mari kita abaikan perbedaan di sini), Anda telah menunjukkan bahwa jika ada satu dari ratusan masalah yang sudah diteliti dengan baik adalah sulit, maka P juga sulit. Ini karena jika ada algoritma yang efisien untuk P, akan ada juga algoritma yang efisien untuk masing-masing dari ratusan masalah.
arnab
4
@ Ali: Saya sangat menyarankan Anda melihat buku teks teori kompleksitas pengantar. Situs web ini sebenarnya bukan forum untuk pertanyaan seperti itu, tetapi lebih untuk pertanyaan tingkat penelitian.
arnab
5
@ Ali: Saya merekomendasikan Anda untuk membaca Garey dan Johnson . Kartun terkenal dalam buku ini harus dilihat!
Tsuyoshi Ito
9

Membuktikan masalah NP-Complete adalah keberhasilan penelitian karena membebaskan Anda dari keharusan mencari solusi yang efisien dan tepat untuk masalah umum yang Anda pelajari. Ini membuktikan bahwa masalah Anda adalah anggota kelas masalah yang sangat sulit sehingga tidak ada yang bisa menemukan algoritma yang efisien dan tepat untuk semua masalah, dan solusi seperti itu untuk setiap masalah akan menyiratkan solusi untuk semua masalah.

Ini biasanya merupakan batu loncatan, karena masalah Anda masih ada - Anda hanya perlu melonggarkan kebutuhan Anda. Biasanya orang mencoba dan mencari cara untuk bersantai satu atau lebih dari "efisien", "tepat", atau "umum". Inefisien-dan-tepat-dan-umum adalah upaya untuk menemukan konstanta yang lebih baik dan lebih baik dalam eksponen untuk algoritma ini. Efisien-dan-tidak-eksak-dan-umum adalah studi tentang algoritma perkiraan. Efisien-dan-tepat-tetapi-tidak-umum adalah studi tentang traktabilitas parameter tetap dan pencarian untuk subkelas input yang algoritma efisien dapat ditemukan.

Peter Boothe
sumber
Poin yang bagus untuk tiga cara untuk menenangkan masalah! Saya kira algoritma acak termasuk dalam kategori "efisien-dan-tidak-eksak-dan-umum".
Hsien-Chih Chang 張顯 之
Betulkah? Tidak semua algoritma acak tidak tepat.
Jeffε
Dan tentu saja Anda benar, JeffE. Juga, saya mengerti Anda sedang (atau) sedang mengajar mantan siswa saya dalam algoritma! Mengenai poin Hsien-Chih, saya tidak berpikir algoritma acak cocok dengan skema ini. Tentu saja beberapa algoritma acak (algoritma genetika dan jaring saraf muncul di benak) tidak tepat namun efisien dan umum, tetapi beberapa algoritma acak cukup tepat - anggap algoritma untuk memverifikasi nomor adalah yang utama! Ini adalah algoritma acak, tetapi saya cukup yakin bahwa tidak ada yang pernah mendapatkan non-prime dari implementasi yang masuk akal.
Peter Boothe
5

NPcomplete

NPcomplete, Anda memiliki beberapa bukti untuk dugaan Anda ini dan Anda harus mulai mempertimbangkan pendekatan alternatif (misalnya mengubah masalah sehingga menjadi lebih mudah).

NPcomplete

NPcomplete

P=NP3SAT

NPcompleteCLIQUE

Meringkas, mengkarakterisasi masalah memungkinkan Anda menggunakan teknik umum. Dengan mempelajari kelas yang terkait dengannya, Anda dapat berpikir dalam tingkat abstrak, tanpa peduli tentang masalah khusus ini, yang umum dalam matematika dan sains pada umumnya. Bekerja dengan kelas alih-alih anggota individu memungkinkan Anda untuk menggunakan teknik yang dikenal dan selanjutnya, menerapkan wawasan Anda ke sejumlah besar objek, bukan hanya satu.

chazisop
sumber
2
Banyak orang memecahkan masalah NP-selesai dalam praktek, bahkan jika mereka NP-sulit untuk diperkirakan. Dalam kasus rata-rata banyak masalah ternyata jauh lebih mudah, meskipun ini bisa sulit untuk ditunjukkan; bahkan lebih sulit untuk membuktikan apa pun tentang algoritma heuristik yang bekerja dengan baik dalam praktik. Saya menyarankan arsitek perangkat lunak untuk bertanya kepada seseorang apakah masalahnya "benar-benar" sulit sebelum menyerah dan mengubah desainnya.
Yuval Filmus
Saya tidak mengatakan bahwa desain perlu diubah. Menggunakan algoritma heuristik atau pendekatan bagi saya (palsu?) Seperti mengubah masalah ... karena tahu Anda meminta solusi yang kurang tepat (apakah itu dapat diterima? Itu tergantung pada aplikasi!).
chazisop
3

Setiap masalah memiliki beberapa koneksi dengan masalah lain. Selain itu, ada hubungan antara kelas masalah dan kompleksitas.

Oleh karena itu, mengklasifikasikan satu masalah sebagai NPC biasanya memberi kita wawasan tentang masalah lain, serta kelas kompleksitas.

Misalnya, ambil masalah grafik isomorfisme (GI). Dalam makalah berikut:

Uwe Schöning, Grafik isomorfisme berada dalam hierarki yang rendah , Prosiding Simposium Tahunan ke-4 tentang Aspek Teoritis Ilmu Komputer , 1987, 114-124; juga: Jurnal Ilmu Komputer dan Sistem, vol. 37 (1988), 312–323.

terbukti bahwa jika GI ∈ NPC, maka hierarki polinomial (PH) runtuh ke level kedua; yang akan menjadi terobosan besar dalam teori kompleksitas struktural.

MS Dousti
sumber
3

pppp

Radu GRIGore
sumber
1
Saya pernah mendengar bahwa ada waktu ketika Anda membuktikan beberapa masalah adalah NP-lengkap, Anda akan memiliki tesis PhD Anda. Benarkah itu?
Hsien-Chih Chang 張顯 之
@ Hsien-ChihChang 張顯 之: Saya tidak bisa mengomentari itu, tetapi hasil-hasil itu tentu dulu jauh lebih populer beberapa dekade yang lalu. Tampaknya semakin sulit akhir-akhir ini untuk menerbitkan makalah di mana Anda "hanya" membuktikan hasil kekerasan (dengan pengecualian "masalah terkenal" tentu saja), sedangkan itu tidak akan menjadi masalah di tahun 70-an-80-an, dilihat dari kelimpahan makalah semacam ini selama periode itu.
Anthony Labarre