Apa perbedaan antara NP, NP-Complete dan NP-Hard?


1107

Apa perbedaan antara NP , NP-Complete dan NP-Hard ?

Saya mengetahui banyak sumber daya di seluruh web. Saya ingin membaca penjelasan Anda, dan alasannya mungkin berbeda dari apa yang ada di luar sana, atau ada sesuatu yang tidak saya sadari.

Jawaban:


1438

Saya berasumsi bahwa Anda mencari definisi intuitif, karena definisi teknis memerlukan cukup banyak waktu untuk mengerti. Pertama-tama, mari kita ingat konsep awal yang diperlukan untuk memahami definisi tersebut.

  • Masalah keputusan : Masalah dengan jawaban ya atau tidak .

Sekarang, mari kita mendefinisikan kelas kompleksitas tersebut .

P

P adalah kelas kompleksitas yang mewakili set semua masalah keputusan yang dapat diselesaikan dalam waktu polinomial .

Artinya, dengan memberikan contoh masalah, jawaban ya atau tidak dapat diputuskan dalam waktu polinomial.

Contoh

Diberikan grafik yang terhubung G, dapatkah simpulnya diwarnai menggunakan dua warna sehingga tidak ada tepi yang monokromatik?

Algoritma: mulai dengan titik sembarang, warna merah dan semua tetangganya biru dan lanjutkan. Berhenti ketika Anda kehabisan simpul atau Anda dipaksa untuk membuat tepi memiliki kedua titik akhir menjadi warna yang sama.


NP

NP adalah kelas kompleksitas yang mewakili himpunan semua masalah keputusan yang mana contohnya adalah "ya" memiliki bukti yang dapat diverifikasi dalam waktu polinomial.

Ini berarti bahwa jika seseorang memberi kami contoh masalah dan sertifikat (kadang-kadang disebut saksi) untuk jawabannya adalah ya, kita dapat memeriksa apakah itu benar dalam waktu polinomial.

Contoh

Factoration integer ada dalam NP. Ini adalah masalah yang diberikan bilangan bulat ndan m, apakah ada bilangan bulat fdengan 1 < f < m, sehingga fmembagi n( fadalah faktor kecil n)?

Ini adalah masalah keputusan karena jawabannya ya atau tidak. Jika seseorang tangan kita contoh dari masalah (sehingga mereka menyerahkan kami bilangan bulat ndan m) dan integer fdengan 1 < f < m, dan klaim bahwa fadalah faktor dari n(sertifikat), kita dapat memeriksa jawaban dalam waktu polinomial dengan melakukan pembagian n / f.


NP-Lengkap

NP-Complete adalah kelas kompleksitas yang mewakili set semua masalah Xdalam NP yang memungkinkan untuk mengurangi masalah NP lainnya Ymenjadi Xwaktu polinomial.

Secara intuitif ini berarti bahwa kita dapat menyelesaikan Ydengan cepat jika kita tahu bagaimana menyelesaikannya Xdengan cepat. Tepatnya, Ydapat direduksi menjadi X, jika ada algoritma waktu polinomial funtuk mengubah contoh ydari Yuntuk contoh x = f(y)dari Xdalam waktu polinomial, dengan properti yang jawabannya untuk yadalah ya, jika dan hanya jika jawaban untuk f(y)adalah ya.

Contoh

3-SAT. Ini adalah masalah di mana kita diberi konjungsi (AND) dari disjungsi 3-klausa (OR), pernyataan dari form

(x_v11 OR x_v21 OR x_v31) AND 
(x_v12 OR x_v22 OR x_v32) AND 
...                       AND 
(x_v1n OR x_v2n OR x_v3n)

di mana masing x_vij- masing adalah variabel boolean atau negasi dari variabel dari daftar yang telah ditentukan sebelumnya (x_1, x_2, ... x_n).

Dapat ditunjukkan bahwa setiap masalah NP dapat dikurangi menjadi 3-SAT . Buktinya teknis dan membutuhkan penggunaan definisi teknis NP ( berdasarkan mesin Turing non-deterministik ). Ini dikenal sebagai teorema Cook .

Apa yang membuat masalah NP-complete penting adalah bahwa jika algoritma waktu polinomial deterministik dapat ditemukan untuk memecahkan salah satu dari mereka, setiap masalah NP dapat dipecahkan dalam waktu polinomial (satu masalah untuk mengatur semuanya).


NP-keras

Secara intuitif, ini adalah masalah yang setidaknya sama sulitnya dengan masalah NP-lengkap . Perhatikan bahwa masalah NP-hard tidak harus di NP , dan tidak harus menjadi masalah keputusan .

Definisi yang tepat di sini adalah bahwa suatu masalah Xadalah NP-hard, jika ada masalah NP-complete Y, sehingga Ydapat direduksi ke Xdalam waktu polinomial .

Tetapi karena masalah NP-complete dapat direduksi menjadi masalah NP-complete lainnya dalam waktu polinomial, semua masalah NP-complete dapat dikurangi menjadi masalah NP-hard dalam waktu polinomial. Kemudian, jika ada solusi untuk satu masalah NP-hard dalam waktu polinomial, ada solusi untuk semua masalah NP dalam waktu polinomial.

Contoh

Masalah penghentian adalah masalah NP-hard. Ini adalah masalah yang diberikan program Pdan input I, apakah akan berhenti? Ini adalah masalah keputusan tetapi tidak dalam NP. Jelas bahwa masalah NP-complete dapat dikurangi untuk yang satu ini. Sebagai contoh lain, setiap masalah NP-lengkap adalah NP-hard.

Masalah NP-complete favorit saya adalah masalah Minesweeper .


P = NP

Ini adalah masalah yang paling terkenal dalam ilmu komputer, dan salah satu pertanyaan paling penting yang menonjol dalam ilmu matematika. Bahkan, tanah liat Institute menawarkan satu juta dolar untuk solusi untuk masalah ini (Stephen Cook Langgan di situs Clay adalah cukup baik).

Jelas bahwa P adalah subset dari NP. Pertanyaan terbuka adalah apakah masalah NP memiliki solusi waktu polinomial deterministik atau tidak. Sebagian besar percaya bahwa mereka tidak. Berikut ini adalah artikel terbaru yang beredar tentang masalah P = NP terbaru (dan pentingnya): Status masalah P versus NP .

Buku terbaik tentang masalah ini adalah Komputer dan Intractability oleh Garey dan Johnson.


32
@ Paul Fisher: Saya akan menunjukkan bahwa SAT dapat direduksi menjadi masalah penghentian waktu polinomial. Pertimbangkan algoritma berikut: diberikan sebagai input proposisi Iatas nvariabel, coba semua 2^ntugas yang mungkin untuk variabel dan berhenti jika satu memenuhi proposisi dan jika tidak masukkan loop tak terbatas. Kami melihat bahwa algoritma ini berhenti jika dan hanya jika Imemuaskan. Jadi, jika kita memiliki algoritma waktu polinomial untuk menyelesaikan masalah penghentian maka kita bisa menyelesaikan SAT dalam waktu polinomial. Oleh karena itu, masalah penghentian adalah NP-hard.
jason

6
@Jason - Anda tidak dapat mengurangi masalah yang dapat diputuskan menjadi masalah yang tidak dapat ditentukan dengan cara itu. Masalah yang dapat diputuskan harus menghasilkan jawaban ya atau tidak yang pasti agar dapat dianggap layak. Masalah Henti tidak memiliki jawaban pasti atau ya sekarang karena jawaban yang sewenang-wenang mungkin melemparkan solusi apa pun ke dalam satu lingkaran.
rjzii

11
@Rob: Ya, saya bisa. Definisi yang dapat direduksi tidak mengharuskan masalah yang direduksi menjadi dapat dipecahkan. Ini berlaku untuk banyak-satu pengurangan atau pengurangan Turing.
jason

5
@Rob: Baiklah, baiklah, jika Anda ingin melanjutkan ini. Pertama, "Decidable" tidak bersinonim dengan "masalah keputusan" seperti yang Anda gunakan. "Dianggap" berarti, secara kasar, bahwa ada "metode efektif" untuk menentukan jawabannya. "Metode efektif", tentu saja, memiliki definisi teknis. Selain itu, "decidable" juga dapat didefinisikan dalam istilah "fungsi yang dapat dihitung." Jadi, masalah penghentian adalah masalah keputusan ("Apakah program ini berhenti?" Adalah pertanyaan ya / tidak) tetapi tidak dapat diputuskan; tidak ada metode yang efektif untuk menentukan apakah sebuah instance dari masalah penghentian akan berhenti.
jason

21
Menggunakan Menghentikan masalah sebagai "contoh klasik" masalah NP-hard salah. Ini seperti mengatakan: "Samudra Pasifik adalah contoh klasik dari akuarium air asin."
Michael

261

Saya sudah melihat-lihat dan melihat banyak penjelasan panjang. Berikut adalah bagan kecil yang mungkin berguna untuk merangkum:

Perhatikan bagaimana kesulitan meningkat dari atas ke bawah: NP apa pun dapat dikurangi menjadi NP-Lengkap , dan NP-Lengkap dapat dikurangi menjadi NP-Hard , semuanya dalam waktu P (polinomial).

Jika Anda dapat memecahkan kelas masalah yang lebih sulit dalam waktu P, itu berarti Anda menemukan cara memecahkan semua masalah yang lebih mudah dalam waktu P (misalnya, membuktikan P = NP, jika Anda mencari cara untuk menyelesaikan masalah NP-Complete di P waktu).

____________________________________________________________
| Jenis Masalah | Dapat diverifikasi dalam P time | Dapat dipecahkan dalam waktu P | | Meningkatkan Kesulitan
___________________________________________________________ | |
| P | Ya | Ya | |
| NP | Ya | Ya atau Tidak * | |
| NP-Lengkap | Ya | Tidak dikenal | |
| NP-Hard | Ya atau Tidak ** | Tidak diketahui *** | |
____________________________________________________________ V

Catatan Yesatau Noentri:

  • * Masalah NP yang juga P dapat dipecahkan dalam waktu P.
  • ** Masalah NP-Hard yang juga NP-Complete dapat diverifikasi dalam waktu P.
  • *** Masalah NP-Complete (semua yang membentuk subset dari NP-hard) mungkin. Sisa NP keras tidak.

Saya juga menemukan diagram ini cukup berguna dalam melihat bagaimana semua jenis ini sesuai satu sama lain (lebih memperhatikan setengah bagian kiri diagram).


Saya ragu terkait jawaban Anda. Saya menanyakannya dalam pertanyaan terpisah, tetapi saya diminta mempostingnya di sini. Bisakah Anda membantu saya di sini? stackoverflow.com/questions/21005651/…
Srikanth

Tidak diketahui apakah masalah NP-lengkap dapat dipecahkan dalam waktu polinomial. Juga, masalah NP-lengkap adalah NP-hard, sehingga beberapa masalah NP-hard dapat diverifikasi dalam waktu polinomial, dan mungkin beberapa juga waktu polinomial dipecahkan.
Falk Hüffner

Tabel ini tidak benar dan saling bertentangan. Bahkan jika Anda berasumsi bahwa NP! = P, yang belum terbukti, itu masih salah. Misalnya, kelas NP-Hard mencakup masalah NP-Complete; oleh karena itu tabel Anda mengklaim bahwa masalah NP-Complete secara bersamaan dapat diverifikasi dalam waktu polinomial dan tidak dapat diverifikasi dalam waktu polinomial.
Michael

3
@ FalkHüffner Terima kasih, tabel diperbarui (adalah kesalahan dalam menerjemahkan dari diagram Venn).
Johnson Wong

1
@PeterRaeves Semua masalah NP-complete adalah NP-hard, menurut definisi: NP-complete = (NP dan NP-hard). Kebalikannya tidak benar: ada masalah (seperti Masalah terputus-putus) di NP-hard yang tidak di NP-lengkap. "NP (tidak dapat dipecahkan dalam waktu polinomial)" - bukan itu yang dimaksud NP. NP adalah "Non-deterministic-polinomial". Semua masalah dalam P juga dalam NP. Apakah kebalikannya benar atau tidak, tidak diketahui.
Jim Balter

73

Ini adalah jawaban yang sangat informal untuk pertanyaan yang diajukan.

Bisakah 3233 ditulis sebagai produk dari dua nomor lain yang lebih besar dari 1? Apakah ada cara untuk berjalan di sekitar Tujuh Jembatan Königsberg tanpa mengambil jembatan dua kali? Ini adalah contoh pertanyaan yang memiliki sifat yang sama. Mungkin tidak jelas bagaimana menentukan jawaban secara efisien, tetapi jika jawabannya 'ya', maka ada bukti singkat dan cepat untuk memeriksa. Dalam kasus pertama faktorisasi non-sepele 51; di yang kedua, rute untuk menyusuri jembatan (menyesuaikan kendala).

Masalah keputusan adalah kumpulan pertanyaan dengan jawaban ya atau tidak yang hanya bervariasi dalam satu parameter. Katakan masalahnya COMPOSITE = {"Is ncomposite": nis integer} atau EULERPATH = {"Apakah grafik Gmemiliki jalur Euler?": Is Ga finite graph}.

Sekarang, beberapa masalah keputusan memungkinkan algoritma yang efisien, jika tidak jelas. Euler menemukan algoritma yang efisien untuk masalah seperti "Tujuh Jembatan Königsberg" lebih dari 250 tahun yang lalu.

Di sisi lain, untuk banyak masalah keputusan, tidak jelas bagaimana mendapatkan jawabannya - tetapi jika Anda tahu beberapa informasi tambahan, jelas bagaimana cara membuktikan bahwa Anda sudah mendapatkan jawabannya dengan benar. KOMPOSIT adalah seperti ini: Pembagian percobaan adalah algoritma yang jelas, dan lambat: untuk memasukkan angka 10 digit, Anda harus mencoba sekitar 100.000 pembagi yang mungkin. Tetapi jika, misalnya, seseorang mengatakan kepada Anda bahwa 61 adalah pembagi 3233, pembagian panjang sederhana adalah cara yang efisien untuk melihat bahwa mereka benar.

NP kelas kompleksitas adalah kelas masalah keputusan di mana jawaban 'ya' memiliki singkat untuk menyatakan, cepat untuk memeriksa bukti. Suka KOMPOSIT. Satu poin penting adalah bahwa definisi ini tidak mengatakan apa-apa tentang seberapa sulit masalahnya. Jika Anda memiliki cara yang benar dan efisien untuk menyelesaikan masalah keputusan, cukup dengan menuliskan langkah-langkah dalam solusi adalah bukti yang cukup.

Penelitian algoritma berlanjut, dan algoritma pintar baru dibuat setiap saat. Masalah yang Anda mungkin tidak tahu bagaimana menyelesaikannya secara efisien hari ini mungkin ternyata memiliki solusi yang efisien (jika tidak jelas) besok. Bahkan, butuh peneliti hingga tahun 2002 untuk menemukan solusi efisien untuk COMPOSITE! Dengan semua kemajuan ini, orang benar-benar harus bertanya-tanya: Apakah ini sedikit tentang memiliki bukti pendek hanya ilusi? Mungkin setiap masalah keputusan yang cocok dengan bukti yang efisien memiliki solusi yang efisien? Tidak ada yang tahu .

Mungkin kontribusi terbesar untuk bidang ini datang dengan penemuan kelas khusus masalah NP. Dengan bermain-main dengan model sirkuit untuk perhitungan, Stephen Cook menemukan masalah keputusan varietas NP yang terbukti sulit atau lebih sulit daripada setiap masalah NP lainnya. Solusi yang efisien untuk masalah kepuasan boolean dapat digunakan untuk menciptakan solusi yang efisien untuk masalah lain dalam NP. Segera setelah itu, Richard Karp menunjukkan bahwa sejumlah masalah keputusan lain dapat melayani tujuan yang sama. Masalah-masalah ini, dalam arti masalah "paling sulit" di NP, dikenal sebagai masalah NP-lengkap .

Tentu saja, NP hanya merupakan kelas masalah keputusan. Banyak masalah tidak secara alami dinyatakan dengan cara ini: "temukan faktor N", "temukan jalur terpendek dalam grafik G yang mengunjungi setiap titik", "berikan satu set penugasan variabel yang menjadikan ekspresi boolean berikut ini benar". Meskipun seseorang dapat secara informal berbicara tentang beberapa masalah seperti itu "di NP", secara teknis itu tidak masuk akal - mereka bukan masalah keputusan. Beberapa masalah ini bahkan mungkin memiliki kekuatan yang sama dengan masalah NP-complete: solusi yang efisien untuk masalah-masalah (non-keputusan) ini akan mengarah langsung ke solusi yang efisien untuk setiap masalah NP. Masalah seperti ini disebut NP-hard .


67

P (Waktu Polinomial): Seperti namanya sendiri, ini adalah masalah yang dapat diselesaikan dalam waktu polinomial.

NP (Waktu Non-deterministik-polinomial): Ini adalah masalah keputusan yang dapat diverifikasi dalam waktu polinomial. Itu berarti, jika saya mengklaim bahwa ada solusi waktu polinomial untuk masalah tertentu, Anda meminta saya untuk membuktikannya. Lalu, saya akan memberi Anda bukti yang dapat Anda verifikasi dengan mudah dalam waktu polinomial. Masalah-masalah semacam ini disebut masalah NP. Perhatikan bahwa, di sini kita tidak berbicara tentang apakah ada solusi waktu polinomial untuk masalah ini atau tidak. Tetapi kita berbicara tentang memverifikasi solusi untuk masalah yang diberikan dalam waktu polinomial.

NP-Hard: Ini setidaknya sekeras masalah tersulit di NP. Jika kita dapat menyelesaikan masalah ini dalam waktu polinomial, kita dapat memecahkan masalah NP yang mungkin ada. Perhatikan bahwa masalah ini tidak selalu merupakan masalah NP. Itu berarti, kami mungkin / mungkin-tidak memverifikasi solusi untuk masalah-masalah ini dalam waktu polinomial.

NP-Complete: Ini adalah masalah yang keduanya NP dan NP-Hard. Itu berarti, jika kita dapat menyelesaikan masalah ini, kita dapat menyelesaikan masalah NP lainnya dan solusi untuk masalah ini dapat diverifikasi dalam waktu polinomial.


Jadi Anda baru saja memutuskan untuk menyalin definisi dari suatu tempat?
Arun Satyarth

1
Jawabannya masuk akal!
Konstantin

2
@ArunSatyarth Dari mana?
maknanya penting

3
Jawaban terbaik karena pendek, menggunakan terminologi yang cukup, memiliki kalimat manusia normal (bukan hal yang sulit dibaca, mari kita menjadi benar-benar-benar-mungkin), dan cukup mengejutkan adalah satu-satunya jawaban yang menulis apa yang N singkatan.
maknanya penting

62

Selain jawaban hebat lainnya, berikut adalah skema tipikal yang digunakan orang untuk menunjukkan perbedaan antara NP, NP-Complete, dan NP-Hard:

masukkan deskripsi gambar di sini


1
Apakah terbukti ada masalah di NP-Hard yang tidak ada di NP-Complete? Karena gambar ini menyarankannya. Terima kasih.
Hilder Vitor Lima Pereira

9
@VitorLima ya mis. Masalah EXPSPACE-complete NP-hard tetapi terbukti tidak NP-complete.
Franck Dernoncourt

2
Oke terima kasih. Saya menemukan beberapa referensi membicarakannya. Misalnya, yang ini: princeton.edu/~achaney/tmve/wiki100k/docs/NP-hard.html
Hilder Vitor Lima Pereira

47

Cara termudah untuk menjelaskan Pv. NP dan semacamnya tanpa masuk ke teknis adalah untuk membandingkan "masalah kata" dengan "masalah pilihan ganda".

Ketika Anda mencoba memecahkan "masalah kata", Anda harus menemukan solusinya dari awal. Ketika Anda mencoba untuk memecahkan "masalah pilihan ganda" Anda punya pilihan: pecahkanlah seperti "masalah kata", atau coba pasang setiap jawaban yang diberikan kepada Anda, dan pilih jawaban yang cocok.

Sering terjadi bahwa "masalah pilihan ganda" jauh lebih mudah daripada "masalah kata" yang sesuai: mengganti jawaban kandidat dan memeriksa apakah cocok mungkin memerlukan usaha yang jauh lebih sedikit daripada menemukan jawaban yang tepat dari awal.

Sekarang, jika kita akan menyetujui upaya yang memakan waktu polinomial "mudah" maka kelas P akan terdiri dari "masalah kata mudah", dan kelas NP akan terdiri dari "masalah pilihan ganda yang mudah".

Inti dari Pv. NP adalah pertanyaan: "Apakah ada masalah pilihan ganda yang mudah yang tidak semudah masalah kata"? Yaitu, apakah ada masalah yang mudah untuk memverifikasi validitas jawaban yang diberikan tetapi menemukan bahwa jawaban dari awal sulit?

Sekarang kita mengerti secara intuitif apa itu NP, kita harus menantang intuisi kita. Ternyata ada "masalah pilihan ganda" yang, dalam beberapa hal, adalah yang paling sulit dari semuanya: jika seseorang akan menemukan solusi untuk salah satu dari masalah "yang paling sulit dari semuanya" itu, seseorang akan dapat menemukan solusi untuk SEMUA Masalah NP! Ketika Cook menemukan ini 40 tahun yang lalu, itu mengejutkan. Masalah "paling sulit dari semuanya" ini dikenal sebagai NP-hard. Jika Anda menemukan "solusi masalah kata" untuk salah satu dari mereka, Anda akan secara otomatis menemukan "solusi masalah kata" untuk masing-masing dan setiap "masalah pilihan ganda yang mudah"!

Akhirnya, masalah NP-lengkap adalah mereka yang secara bersamaan NP dan NP-keras. Mengikuti analogi kami, mereka secara simultan "semudah masalah pilihan ganda" dan "yang paling sulit di antara mereka semua sebagai masalah kata".


18

Masalah NP-complete adalah masalah yang keduanya NP-Hard dan di kelas kompleksitas NP. Oleh karena itu, untuk menunjukkan bahwa masalah yang diberikan adalah NP-complete, Anda harus menunjukkan bahwa masalahnya adalah NP dan hard-NP.

Masalah yang ada di kelas kompleksitas NP dapat diselesaikan secara non-deterministik dalam waktu polinomial dan solusi yang mungkin (yaitu, sertifikat) untuk masalah dalam NP dapat diverifikasi untuk kebenaran dalam waktu polinomial.

Contoh solusi non-deterministik untuk masalah k-clique akan menjadi seperti:

1) secara acak memilih k node dari grafik

2) memverifikasi bahwa k node ini membentuk sebuah klik.

Strategi di atas adalah polinomial dalam ukuran grafik input dan oleh karena itu masalah k-klik di NP.

Perhatikan bahwa semua masalah yang dapat dipecahkan secara deterministik dalam waktu polinomial juga dalam NP.

Menunjukkan bahwa suatu masalah adalah NP-hard biasanya melibatkan pengurangan dari beberapa masalah NP-hard lain untuk masalah Anda menggunakan pemetaan waktu polinomial: http://en.wikipedia.org/wiki/Reduction_(complexity)


Bukannya saya melihat sesuatu dalam jawaban ini yang tidak benar, tetapi saya tidak tahu mengapa itu diterima. Itu tidak benar-benar menawarkan banyak untuk apa yang diminta OP. Ini bahkan tidak jauh berbeda dari penjelasan standar dari masalah ini, dan tidak ada penjelasan yang jelas tentang apa yang membuat masalah ini di kelas-kelas ini. Tidak layak downvote, tapi penerimaan jawaban tentu tidak layak.
San Jacinto

18

Saya pikir kita bisa menjawabnya dengan lebih ringkas. Saya menjawab pertanyaan terkait , dan menyalin jawaban saya dari sana

Tapi pertama-tama, masalah NP-hard adalah masalah yang kami tidak dapat membuktikan bahwa ada solusi waktu polinomial. Kekerasan NP dari beberapa "problem-P" biasanya dibuktikan dengan mengubah masalah NP-hard yang sudah terbukti menjadi "problem-P" dalam waktu polinomial.

Untuk menjawab sisa pertanyaan, Anda harus terlebih dahulu memahami masalah NP-hard mana yang juga NP-complete. Jika masalah NP-hard milik NP ditetapkan, maka itu NP-lengkap. Untuk menjadi milik set NP, masalah perlu

(I) masalah keputusan,
(ii) jumlah solusi untuk masalah harus terbatas dan setiap solusi harus panjang polinomial, dan
(iii) diberi solusi panjang polinomial, kita harus dapat mengatakan apakah jawaban untuk masalahnya adalah ya / tidak

Sekarang, mudah untuk melihat bahwa mungkin ada banyak masalah NP-hard yang bukan milik mengatur NP dan lebih sulit untuk dipecahkan. Sebagai contoh intuitif, versi optimasi salesman keliling di mana kita perlu menemukan jadwal aktual lebih sulit daripada versi keputusan penjual keliling di mana kita hanya perlu menentukan apakah jadwal dengan panjang <= k ada atau tidak.


5

Ada jawaban yang sangat bagus untuk pertanyaan khusus ini, jadi tidak ada gunanya menulis penjelasan saya sendiri. Jadi saya akan mencoba berkontribusi dengan sumber yang bagus tentang berbagai kelas kompleksitas komputasi.

Untuk seseorang yang berpikir bahwa kompleksitas komputasi hanya tentang P dan NP, berikut adalah sumber daya yang paling lengkap tentang berbagai masalah kompleksitas komputasi. Terlepas dari masalah yang ditanyakan oleh OP, itu terdaftar sekitar 500 kelas yang berbeda dari masalah komputasi dengan deskripsi yang bagus dan juga daftar makalah penelitian mendasar yang menggambarkan kelas.


3

Seperti yang saya pahami, masalah np-hard tidak "lebih keras" dari masalah np-complete . Faktanya, menurut definisi, setiap masalah np-complete adalah:

  1. dalam NP
  2. np-keras

masukkan deskripsi gambar di sini

- Pendahuluan to Algorithms (3ed) oleh Cormen, Leiserson, Rivest, dan Stein, hal 1069


3
Pemahaman Anda salah. Definisi NP-complete Anda benar tetapi tidak ada kaitannya dengan pernyataan pertama Anda. Semua masalah dalam NP-hard setidaknya sama sulitnya dengan NP-complete; beberapa (mis. Masalah Pemutusan, yang sangat sulit, dan en.wikipedia.org/wiki/EXPSPACE ) terbukti lebih sulit.
Jim Balter

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.