Apakah NP-complete dalam ilmu komputer?

429

Apa masalah NP-complete? Mengapa topik ini begitu penting dalam ilmu komputer?

Claudiu
sumber
5
Anda mungkin tertarik dengan jawaban atas pertanyaan ini: stackoverflow.com/questions/111307/…
Dan Dyer
1
Yah saya memutuskan untuk menulis jawaban saya sendiri karena saya tidak suka cara jawaban yang diterima disajikan, dan termasuk tautan ke pertanyaan P = NP.
grom
1
Ada kuliah arsdigita yang sangat bagus tentang matematika diskrit yang menjelaskan apa masalah NP-complete. 50 menit pertama terutama menggunakan aljabar boolean. Jadi lompat ke awal menit 53 jika Anda hanya tertarik pada konsep P, NP, NP-kelengkapan, masalah kepuasan dan pengurangan boolean.
davitenio
1
Kita tidak akan pernah tahu karena dengan n besar itu tidak akan pernah selesai;)
Pete Alvin
1
Saya sangat suka dan sangat merekomendasikan untuk memeriksa penjelasan video ini: youtube.com/watch?v=YX40hbAHx3s
Maksym Ovsianikov

Jawaban:

209

NP adalah waktu Polinomial Non-deterministik .

Ini berarti bahwa masalah dapat diselesaikan dalam waktu Polinomial menggunakan mesin Turing Non-deterministik (seperti mesin Turing biasa tetapi juga termasuk fungsi "pilihan" non-deterministik). Pada dasarnya, solusi harus dapat diuji dalam waktu poli. Jika itu masalahnya, dan masalah NP yang diketahui dapat diselesaikan menggunakan masalah yang diberikan dengan input yang dimodifikasi (masalah NP dapat dikurangi menjadi masalah yang diberikan) maka masalahnya adalah NP selesai.

Hal utama yang harus diambil dari masalah NP-complete adalah tidak dapat diselesaikan dalam waktu polinomial dengan cara apa pun yang diketahui. NP-Hard / NP-Complete adalah cara untuk menunjukkan bahwa kelas-kelas masalah tertentu tidak dapat dipecahkan dalam waktu yang realistis.

Sunting: Seperti yang telah dicatat orang lain, seringkali ada solusi perkiraan untuk masalah NP-Complete. Dalam hal ini, solusi perkiraan biasanya memberikan perkiraan pendekatan menggunakan notasi khusus yang memberitahu kita seberapa dekat perkiraan itu.

Jonathan Adelson
sumber
2
"... masalah NP dapat dikurangi menjadi masalah yang diberikan ..." - kendala penting pada pengurangan adalah bahwa hal itu harus secara polinomial deterministik.
Rafał Dowgird
2
Notasi O () adalah notasi matematika umum yang digunakan di mana-mana: algoritme aproksimasi memang diberikan kepada akurasi O () - cari makalah algoritma aproksimasi apa pun di arxiv.org
Ying Xiao
1
Untuk sedikit memperjelas, masalah NP merujuk pada mesin Turing non-deterministik. Masih belum diketahui apakah masalah NP-complete dapat diselesaikan dalam waktu polinomial pada mesin Turing deterministik.
rjzii
1
@ Yuval: Hanya untuk membuatnya jelas. Apa yang Anda miliki sebelumnya benar-benar salah (kecuali P = NP). Dari komentar Anda, saya merasa bahwa Anda menganggap kedua versi itu benar. Jika tidak, saya minta maaf.
33
Jawaban ini jauh dari lengkap dan dapat dimengerti, dan saya tidak dapat mengerti mengapa memiliki begitu banyak upvotes.
nbro
428

Apa itu NP ?

NP adalah himpunan semua masalah keputusan (pertanyaan dengan jawaban ya-atau-tidak) yang jawaban 'ya' dapat diverifikasi dalam waktu polinomial (O (n k ) di mana n adalah ukuran masalah, dan k adalah konstan) oleh mesin Turing deterministik . Waktu polinomial kadang digunakan sebagai definisi cepat atau cepat .

Apa itu P ?

P adalah himpunan semua masalah keputusan yang dapat diselesaikan dalam waktu polinomial oleh mesin Turing deterministik . Karena mereka dapat diselesaikan dalam waktu polinomial, mereka juga dapat diverifikasi dalam waktu polinomial. Oleh karena itu P adalah bagian dari NP.

Apa itu NP-Complete ?

Masalah x yang ada di NP juga di NP-Complete jika dan hanya jika setiap masalah lain di NP dapat dengan cepat (mis. Dalam waktu polinomial) diubah menjadi x.

Dengan kata lain:

  1. x dalam NP, dan
  2. Setiap masalah dalam NP dapat direduksi menjadi x

Jadi, apa yang membuat NP-Complete begitu menarik adalah bahwa jika salah satu dari masalah NP-Complete harus diselesaikan dengan cepat, maka semua masalah NP dapat diselesaikan dengan cepat.

Lihat juga pos Apa itu "P = NP?", Dan mengapa ini merupakan pertanyaan yang terkenal?

Apa itu NP-Hard ?

NP-Hard adalah masalah yang setidaknya sama sulitnya dengan masalah tersulit dalam NP. Perhatikan bahwa masalah NP-Complete juga NP-hard. Namun tidak semua masalah NP-hard adalah NP (atau bahkan masalah keputusan), meskipun memiliki NPsebagai awalan. Itu adalah NP dalam NP-hard tidak berarti waktu polinomial non-deterministik . Ya, ini membingungkan, tetapi penggunaannya tertanam dan tidak mungkin berubah.

grom
sumber
4
"Itu adalah NP dalam NP-hard tidak berarti non-polinomial" <- NP dalam NP-complete (atau di tempat lain) tidak berarti non-polinomial juga.
sepp2k
1
Terima kasih sepp2k untuk koreksi. Saya bermaksud mengatakan itu tidak berarti NP (yaitu waktu polinomial non-deterministik).
grom
1
Saya pikir jawaban Anda menyederhanakan sebanyak atau lebih banyak daripada yang lain di utas ini. Tapi ini masih merupakan masalah yang sangat sulit untuk saya pahami ... Coba tebak, itulah sebabnya mereka membayar algoritme kepada banyak orang.
SoftwareSavant
3
Tentang NP: Saya pikir seharusnya: Masalahnya dapat diselesaikan dengan mesin Turing nondeterministic. (nonderterministic daripada derministic)
hqt
2
@ hqt Apa yang saya tulis sudah benar .. Perhatikan kata "diverifikasi". Anda juga benar, NP dapat diselesaikan dalam waktu polinomial dengan mesin Turing non-deterministik
grom
32

NP-Complete berarti sesuatu yang sangat spesifik dan Anda harus berhati-hati atau Anda akan mendapatkan definisi yang salah. Pertama, masalah NP adalah masalah ya / tidak

  1. Ada bukti polinomial-waktu untuk setiap contoh masalah dengan jawaban "ya" bahwa jawabannya adalah "ya", atau (setara)
  2. Ada algoritma waktu polinomial (mungkin menggunakan variabel acak) yang memiliki probabilitas tidak nol untuk menjawab "ya" jika jawaban untuk contoh masalah adalah "ya" dan akan mengatakan "tidak" 100% dari waktu jika jawabannya adalah tidak." Dengan kata lain, algoritma harus memiliki tingkat false-negative kurang dari 100% dan tidak ada false positive.

Masalah X adalah NP-Complete jika

  1. X dalam NP, dan
  2. Untuk setiap masalah Y dalam NP, ada "reduksi" dari Y ke X: algoritma polinomial-waktu yang mengubah setiap instance dari Y menjadi instance dari X sehingga jawaban untuk instance-Y adalah "ya" jika dan hanya jika jawaban X-instance adalah "ya".

Jika X adalah NP-lengkap dan deterministik, ada algoritma waktu polinomial yang dapat menyelesaikan semua instance X dengan benar (0% false-positive, 0% false-negative), maka setiap masalah dalam NP dapat diselesaikan dalam deterministic-polynomial- waktu (dengan mereduksi menjadi X).

Sejauh ini, tidak ada yang datang dengan algoritma waktu polinomial deterministik seperti itu, tetapi tidak ada yang membuktikan satu tidak ada (ada satu juta dolar untuk siapa saja yang dapat melakukan keduanya: ini adalah masalah P = NP ). Itu tidak berarti bahwa Anda tidak dapat menyelesaikan contoh tertentu dari masalah NP-Complete (atau NP-Hard). Ini hanya berarti Anda tidak dapat memiliki sesuatu yang akan bekerja dengan andal pada semua contoh masalah dengan cara yang sama Anda dapat mengurutkan daftar bilangan bulat. Anda mungkin bisa membuat algoritma yang akan bekerja dengan sangat baik pada semua contoh praktis masalah NP-Hard.

David Nehme
sumber
1
Saya tidak suka menyombongkan diri, tetapi saya cukup bangga dengan algoritma waktu polinomial deterministik saya yang telah saya buktikan tidak ada. ;)
Kyle Cronin
20
Saya telah menemukan bukti yang benar-benar luar biasa dari ini, yang mana komentar ini terlalu sempit untuk dikandung;)
quick_dry
Kondisi # 2 adalah pernyataan P =? NP, bukan definisi standar kelengkapan NP. Ini harus menjadi: algoritma poli-waktu deterministik ada yang dapat mengubah setiap lainnya NP misalnya X menjadi sebuah contoh Y dari ini masalah st jawaban Y adalah "ya" jika dan hanya jika jawaban untuk X adalah "ya".
Chris Conway
"Anda harus berhati-hati atau Anda akan mendapatkan definisi yang salah" - sebagaimana dibuktikan oleh jawaban ini. Jawaban ini sebagian benar tetapi pasti tidak seharusnya diterima.
Pemrogram Windows
29

Pada dasarnya masalah dunia ini dapat dikategorikan sebagai

         1) Masalah yang Tidak Dapat Diatasi 2) Masalah yang Dapat Diambil 3) Masalah-NP 4) Masalah-P


         1) Yang pertama adalah tidak ada solusi untuk masalah tersebut. 2) Yang kedua adalah kebutuhan waktu eksponensial (yaitu O (2 ^ n) di atas). 3) Yang ketiga disebut NP. 4) Masalah keempat mudah.


P: merujuk pada solusi masalah Waktu Polinomial.

NP: merujuk Waktu Polinomial belum menemukan solusi. Kami tidak yakin tidak ada solusi Waktu Polinomial, tetapi begitu Anda memberikan solusi, solusi ini dapat diverifikasi dalam Polinomial Time.

NP Complete: merujuk pada Waktu Polinomial kami masih belum menemukan solusi, tetapi dapat diverifikasi dalam Polinomial Time. Masalah NPC dalam NP adalah masalah yang lebih sulit, jadi jika kita dapat membuktikan bahwa kita memiliki solusi P untuk masalah NPC maka masalah NP yang dapat ditemukan dalam solusi P.

NP Hard: merujuk Waktu Polinomial belum menemukan solusi, tetapi pasti tidak dapat diverifikasi dalam Polinomial Time. Masalah NP Sulit melampaui kesulitan NPC.

Marcus Thornton
sumber
Senang melihat jawaban ini, bagian kategorisasi cukup ekspresif untuk seluruh konsep. Saya pikir masalah yang bisa berinteraksi adalah NP-Masalah.
PeerNet
22

NP-Complete adalah kelas masalah.

Kelas Pterdiri dari masalah-masalah yang dapat dipecahkan dalam waktu polinomial . Sebagai contoh, mereka dapat diselesaikan dalam O ( nk ) untuk beberapa konstanta k, di mana n adalah ukuran input. Sederhananya, Anda dapat menulis sebuah program yang akan berjalan dalam waktu yang wajar .

Kelas NPterdiri dari masalah-masalah yang dapat diverifikasi dalam waktu polinomial. Yaitu, jika kita diberi solusi potensial, maka kita dapat memeriksa apakah solusi yang diberikan benar dalam waktu polinomial.

Beberapa contoh adalah masalah Boolean Satisfiability (atau SAT ), atau masalah siklus Hamiltonian. Ada banyak masalah yang diketahui berada di kelas NP.

NP-Completeberarti masalahnya setidaknya sekeras masalah apa pun dalam NP.

Penting bagi ilmu komputer karena telah terbukti bahwa masalah apa pun dalam NP dapat diubah menjadi masalah lain dalam NP-complete. Itu berarti bahwa solusi untuk setiap masalah NP-complete adalah solusi untuk semua masalah NP.

Banyak algoritma dalam keamanan tergantung pada kenyataan bahwa tidak ada solusi yang dikenal untuk masalah-masalah sulit NP. Ini pasti akan berdampak signifikan pada komputasi jika solusi ditemukan.

Vincent Ramdhanie
sumber
ini salah. Masalah dalam NP dapat diubah menjadi masalah apa pun di NP-complete, bukan masalah di NP. Itu perbedaan besar.
David Nehme
Juga, "masalahnya sama sulitnya dengan masalah apa pun di NP" - benar, tetapi kata-kata yang lebih baik akan "setidaknya sekeras". Secara keseluruhan, jawaban ini datang lebih dekat daripada jawaban lain yang pernah saya lihat, dan lebih dekat dari jawaban yang diterima sayangnya.
Pemrogram Windows
Terima kasih atas pengamatan kamu. Saya telah memperbarui jawaban untuk memasukkan koreksi Anda.
Vincent Ramdhanie
1
Definisi NP-Complete Anda tidak lengkap, Anda juga perlu menentukan bahwa masalah NP-Complete juga merupakan masalah NP (dan NP-hard) dan tidak hanya sesulit masalah NP lainnya. Saya akan downvote, jika Anda memutuskan untuk berubah, beri tahu saya dan saya menghapus downvote.
nbro
20

Ini adalah kelas masalah di mana kita harus mensimulasikan setiap kemungkinan untuk memastikan kita memiliki solusi optimal.

Ada banyak heuristik yang bagus untuk beberapa masalah NP-Complete, tetapi mereka hanya tebakan paling baik.

Eric Wendelin
sumber
Hampir benar. Masalah dapat memiliki solusi non-lengkap yang masih belum bersifat polinomial.
Mark Bessey
1
Meskipun tidak sepenuhnya benar, ini cukup dekat untuk penggunaan praktis. Definisi pedantic tidak diperlukan meskipun OP mungkin menginginkan definisi pedantic. Ini perkiraan yang bagus!
doug65536
18

Jika Anda mencari contoh masalah NP-complete maka saya sarankan Anda melihat 3-SAT .

Premis dasarnya adalah Anda memiliki ekspresi dalam bentuk konjungtif normal , yang merupakan cara untuk mengatakan Anda memiliki serangkaian ekspresi yang bergabung dengan OR bahwa semuanya harus benar:

(a or b) and (b or !c) and (d or !e or f) ...

Masalah 3-SAT adalah menemukan solusi yang akan memuaskan ekspresi di mana masing-masing ekspresi-OR memiliki tepat 3 boolean untuk dicocokkan:

(a or !b or !c) and (!a or b or !d) and (b or !c or d) ...

Solusi untuk yang ini mungkin (a = T, b = T, c = F, d = F). Namun, tidak ada algoritma yang ditemukan yang akan menyelesaikan masalah ini dalam kasus umum dalam waktu polinomial. Artinya, cara terbaik untuk menyelesaikan masalah ini adalah dengan melakukan tebak-dan-periksa pada dasarnya dan coba kombinasi yang berbeda sampai Anda menemukan yang berfungsi.

Apa yang istimewa tentang masalah 3-SAT adalah bahwa SETIAP masalah NP-complete dapat dikurangi menjadi masalah 3-SAT. Ini berarti bahwa jika Anda dapat menemukan algoritma waktu polinomial untuk menyelesaikan masalah ini maka Anda mendapatkan $ 1.000.000 , belum lagi rasa hormat dan kekaguman dari para ilmuwan komputer dan ahli matematika di seluruh dunia.

Kyle Cronin
sumber
Mungkin saya bingung dengan penjelasan lain di sini tetapi tidak seharusnya ini berbunyi "SETIAP masalah NP dapat dikurangi menjadi masalah 3-SAT dalam waktu polinomial." Karena bukankah itu yang membuat 3-SAT NP-Lengkap?
DubiousPusher
@DubiousPusher Nggak. Jawabannya menyatakan dengan benar. Gambar ini menjelaskannya stackoverflow.com/a/7367561/2686502
jayeshsolanki93
14

Jujur saja, Wikipedia mungkin tempat terbaik untuk mencari jawaban.

Jika NP = P, maka kita dapat memecahkan masalah yang sangat sulit lebih cepat dari yang kita duga sebelumnya. Jika kita menyelesaikan hanya satu masalah NP-Complete dalam waktu P (polinomial), maka itu dapat diterapkan untuk semua masalah lain dalam kategori NP-Complete.

jjnguy
sumber
6
"Jika NP = P, maka kita dapat memecahkan masalah yang sangat sulit lebih cepat dari yang kita duga sebelumnya." - Tidak. Jika NP = P maka ada solusi (ada algoritma deterministik untuk menyelesaikannya) tetapi tidak ada jaminan bahwa kita akan pernah tahu apa itu.
Pemrogram Windows
Poin yang adil. Dugaan saya adalah bukti bahwa P = NP cenderung konstruktif (misalnya, publikasi algoritma polinomial untuk 3-SAT).
Chris Conway
10

Kita perlu memisahkan algoritma dan masalah. Kami menulis algoritma untuk memecahkan masalah, dan mereka skala dengan cara tertentu. Meskipun ini penyederhanaan, mari beri label algoritma dengan 'P' jika penskalaannya cukup baik, dan 'NP' jika tidak.

Sangat membantu untuk mengetahui hal-hal tentang masalah yang kami coba selesaikan, daripada algoritma yang kami gunakan untuk menyelesaikannya. Jadi kita akan mengatakan bahwa semua masalah yang memiliki algoritma penskalaan baik adalah "dalam P". Dan yang memiliki algoritma penskalaan buruk adalah "dalam NP".

Itu berarti bahwa banyak masalah sederhana "dalam NP" juga, karena kita dapat menulis algoritma yang buruk untuk menyelesaikan masalah yang mudah. Akan lebih baik untuk mengetahui masalah mana dalam NP yang benar-benar rumit, tetapi kami tidak hanya ingin mengatakan "itu adalah masalah yang belum kami temukan algoritma yang bagus untuk". Lagipula, saya bisa menemukan masalah (sebut saja X) yang menurut saya membutuhkan algoritma yang sangat luar biasa. Saya memberi tahu dunia bahwa algoritma terbaik yang dapat saya buat untuk menyelesaikan skala X sangat buruk, jadi saya pikir X adalah masalah yang sangat sulit. Tapi besok, mungkin seseorang yang lebih pintar dari saya menciptakan sebuah algoritma yang memecahkan X dan berada dalam P. Jadi ini bukan definisi yang sangat baik dari masalah sulit.

Semua sama, ada banyak masalah dalam NP yang tidak diketahui oleh siapa pun algoritma yang baik. Jadi jika saya bisa membuktikan bahwa X adalah masalah tertentu: di mana algoritma yang baik untuk menyelesaikan X juga dapat digunakan, dalam beberapa cara bundaran, untuk memberikan algoritma yang baik untuk setiap masalah lain dalam NP. Nah sekarang orang mungkin sedikit lebih yakin bahwa X adalah masalah yang benar-benar rumit. Dan dalam hal ini kita sebut X NP-Complete.

Tom
sumber
5

Definisi untuk masalah lengkap NP di atas adalah benar, tetapi saya pikir saya mungkin akan liris tentang pentingnya filosofis mereka karena belum ada yang membahas masalah itu.

Hampir semua masalah rumit yang akan Anda hadapi adalah NP Lengkap. Ada sesuatu yang sangat mendasar tentang kelas ini, dan yang tampaknya berbeda secara komputasional dari masalah yang mudah dipecahkan. Mereka memiliki rasa sendiri, dan tidak sulit untuk mengenali mereka. Ini pada dasarnya berarti bahwa algoritma apa pun yang cukup rumit tidak mungkin Anda selesaikan dengan tepat - penjadwalan, pengoptimalan, pengepakan, perlindungan, dll.

Tetapi tidak semua hilang jika masalah yang Anda temui adalah NP Lengkap. Ada bidang yang luas dan sangat teknis di mana orang mempelajari algoritma perkiraan, yang akan memberi Anda jaminan untuk menjadi dekat dengan solusi dari masalah lengkap NP. Beberapa di antaranya adalah jaminan yang sangat kuat - misalnya, untuk 3sat, Anda bisa mendapatkan jaminan 7/8 melalui algoritma yang sangat jelas. Bahkan lebih baik, pada kenyataannya, ada beberapa heuristik yang sangat kuat, yang unggul dalam memberikan jawaban yang bagus (tapi tidak ada jaminan!) Untuk masalah ini.

Perhatikan bahwa dua masalah yang sangat terkenal - grafik isomorfisme dan anjak piutang - tidak diketahui sebagai P atau NP.

Ying Xiao
sumber
5

Saya telah mendengar penjelasan, yaitu: "NP-Completeness mungkin adalah salah satu ide yang lebih membingungkan dalam studi algoritma." NP "singkatan dari" waktu polinomial nondeterministik, "dan merupakan nama untuk apa yang disebut kelas kompleksitas untuk masalah mana yang bisa termasuk. Yang penting tentang kelas kompleksitas NP adalah bahwa masalah dalam kelas tersebut dapat diverifikasioleh algoritma waktu polinomial. Sebagai contoh, perhatikan masalah penghitungan barang. Misalkan ada banyak apel di atas meja. Masalahnya adalah "Ada berapa apel?" Anda diberikan jawaban yang memungkinkan, 8. Anda dapat memverifikasi jawaban ini dalam waktu polinomial dengan menggunakan algoritma, duh, menghitung apel. Menghitung apel terjadi dalam waktu O (n) (itu notasi Big-oh), karena dibutuhkan satu langkah untuk menghitung setiap apel. Untuk n apel, Anda perlu n langkah. Masalah ini ada di kelas kompleksitas NP.

Masalah diklasifikasikan sebagai NP-lengkap jika dapat ditunjukkan bahwa keduanya NP-Hard dan dapat diverifikasi dalam waktu polinomial. Tanpa membahas terlalu dalam NP-Hard, cukuplah untuk mengatakan bahwa ada masalah tertentu yang belum ditemukan solusi waktu polinomialnya. Artinya, dibutuhkan sesuatu seperti n! (n faktorial) langkah untuk menyelesaikannya. Namun, jika Anda diberi solusi untuk masalah NP-Complete, Anda dapat memverifikasinya dalam waktu polinomial.

Contoh klasik dari masalah NP-Complete adalah The Traveling Salesman Problem. "

Penulis: ApoxyButt Dari: http://www.everything2.com/title/NP-complete

leizisdu
sumber
2

Masalah NP: -

  1. Masalah NP adalah masalah yang dapat diselesaikan dalam waktu polinomial non-deterministik.
  2. Algoritma non deterministik beroperasi dalam dua tahap.
  3. Tahapan menebak non deterministik && Tahap verifikasi non deterministik.

Jenis Masalah Np

  1. NP selesai
  2. NP Hard

Masalah lengkap NP: -

1 Masalah Keputusan A disebut NP selesai jika memiliki dua sifat berikut: -

  1. Itu milik NP kelas.
  2. Setiap masalah lain dalam NP dapat diubah menjadi P dalam waktu polinomial.

Beberapa Kelebihan: -

  • Masalah ransel
  • masalah sub set jumlah
  • Vertex meliputi masalah
HeadAndTail
sumber
Pertanyaan cepat tentang tahapan Anda ... tidak bisakah tahap verifikasi menjadi deterministik? Bukan masalah NP yang diverifikasi dalam P-time
Branden Keck
1

Masalah NP-complete adalah serangkaian masalah yang masing-masing masalah NP lainnya dapat dikurangi dalam waktu polinomial, dan yang solusinya masih dapat diverifikasi dalam waktu polinomial. Artinya, masalah NP apa pun dapat ditransformasikan menjadi masalah NP-lengkap. - Secara informal, masalah NP-complete adalah masalah NP yang setidaknya sama "tangguh" seperti masalah lainnya di NP.

Jamal Hussain
sumber
1

Sejauh yang saya mengerti

P adalah serangkaian masalah yang dapat diselesaikan dalam waktu polinomial dengan TM deterministik.

NP adalah serangkaian masalah yang membutuhkan TM non-deterministik agar dapat diselesaikan dalam waktu polinomial. Ini berarti untuk secara parsial memeriksa semua variabel yang mungkin, masing-masing contoh mengambil waktu polinomial. Jika masalah dapat dipecahkan maka setidaknya salah satu dari kondisi paralel tersebut harus memiliki solusi untuk masalah tersebut. Ini juga berarti bahwa jika Anda menebak variabel solusi maka satu-satunya hal yang diperlukan adalah memeriksa validitas solusi dalam waktu polinomial.

NP-Hard adalah set di mana masalah setidaknya sekeras NP. Setiap masalah dalam NP dapat diubah menjadi masalah NP-Hard dalam waktu polinomial. Masalah-masalah ini tidak dapat diselesaikan dalam waktu polinomial jika P tidak sama dengan NP. Saat itulah masalah yang paling sulit di NP adalah waktu polinom terpecahkan maka hanya masalah NP-Hard yang polinomial waktu yang dapat dipecahkan.

NP-Complete adalah set persimpangan NP dan NP-Hard. Masalah NP apa pun dapat diubah menjadi masalah NP-Lengkap dalam waktu polinomial. Itu berarti jika salah satu NP-Lengkap dapat memiliki solusi yang efisien maka masalah NP dapat diselesaikan dengan efisiensi yang sama.

Tolong beri tahu saya jika saya melakukan kesalahan.

rsonx
sumber
-17

masalah NP adalah masalah di mana algoritma komputer yang memverifikasi solusi dapat dibuat dalam waktu polinomial.

masalah NP-Complete adalah NP, tetapi juga jika Anda dapat menyelesaikannya dalam waktu polinomial (disebut P) maka semua masalah NP adalah P.

Jadi cepatlah.

Keith Twombley
sumber