Kelas NP, sing minangka "wektu polinomial nondeterministik," minangka konsep dhasar ing teori kompleksitas komputasi, subbidang ilmu komputer teoretis. Kanggo mangerteni NP, kudu luwih dhisik nangkep gagasan masalah keputusan, yaiku pitakonan kanthi jawaban ya utawa ora. A basa ing konteks iki nuduhake pesawat saka strings liwat sawetara aksara, ngendi saben string encodes Kayata saka masalah kaputusan.
Basa (L) diarani NP yen ana verifier wektu polinomial kanggo (L). Verifier minangka algoritma deterministik (V) sing njupuk rong input: conto (x) lan sertifikat (y). Sertifikat (y) uga dikenal minangka "saksi" utawa "bukti". Verifier (V) mriksa apa sertifikat (y) negesake manawa (x) kalebu basa (L). Sacara resmi, basa (L) ana ing NP yen ana algoritma polinomial-wektu (V) lan polinomial (p(n)) supaya saben string (x ing L), ana string (y) kanthi ( |y|. leq p(|x|)) lan (V(x, y) = 1). Kosok baline, kanggo saben senar (x notin L), ora ana senar (y) kayata (V(x, y) = 1).
Kanggo njlentrehake konsep iki, nimbang masalah sing kondhang "Boolean satisfiability" (SAT). Masalah SAT takon apa ana penugasan saka nilai bebener kanggo variabel ing rumus Boolean diwenehi supaya rumus ngevaluasi bener. Masalah SAT ana ing NP amarga, diwenehi rumus Boolean ( phi ) lan assignment ( alpha ) saka nilai bebener kanggo variabel, siji bisa verifikasi ing wektu polinomial apa ( alpha ) marem ( phi ). Ing kene, conto (x) minangka rumus Boolean ( phi ), lan sertifikat ( y ) minangka tugas ( alpha ). Verifier (V) mriksa apa ( alpha ) ndadekake ( phi ) bener, kang bisa rampung ing wektu polinomial bab ukuran ( phi ).
Conto ilustrasi liyane yaiku masalah "Hamiltonian Path". Masalah iki takon apa ana path ing grafik tartamtu sing ngunjungi saben vertex persis sapisan. Masalah Hamiltonian Path uga ana ing NP amarga, diwenehi grafik (G) lan urutan vertex (P), siji bisa verifikasi ing wektu polinomial apa (P) minangka jalur Hamiltonian ing (G). Ing kasus iki, conto (x ) minangka grafik ( G ), lan sertifikat ( y ) minangka urutan vertex ( P ). Verifier (V) mriksa apa (P) mbentuk path Hamiltonian, kang bisa rampung ing wektu polinomial kanggo ukuran (G).
Konsep verifiability wektu polinomial penting amarga menehi cara kanggo nemtokake masalah sing bisa dipriksa kanthi efisien, sanajan nemokake solusi kasebut ora bisa ditindakake kanthi komputasi. Iki ndadékaké kanggo pitakonan misuwur apa (P = NP), kang takon apa saben masalah kang solusi bisa diverifikasi ing wektu polynomial uga bisa ditanggulangi ing wektu polynomial. Kelas ( P ) kasusun saka masalah kaputusan sing bisa ditanggulangi ing wektu polinomial dening mesin Turing deterministik. Yen (P = NP), tegese saben masalah karo verifier wektu polinomial uga nduweni solver wektu polinomial. Pitakonan iki tetep dadi salah sawijining masalah mbukak sing paling penting ing ilmu komputer.
Salah sawijining sifat kunci NP yaiku ditutup ing reduksi wektu polinomial. Pangurangan wektu polinomial saka basa ( L_1 ) dadi basa ( L_2 ) iku fungsi komputasi wektu polinomial ( f ) supaya ( x ing L_1 ) yen lan mung yen ( f (x) ing L_2 ). Yen ana pengurangan wektu polinom saka (L_1) dadi (L_2) lan (L_2) ana ing NP, banjur (L_1) uga ana ing NP. Sifat iki instrumental ing sinau NP-completeness, kang ngenali masalah "paling angel" ing NP. Masalah NP-lengkap yen ana ing NP lan saben masalah ing NP bisa dikurangi ing wektu polinomial. Masalah SAT ana masalah pisanan buktiaken NP-lengkap, lan serves minangka basis kanggo mbuktekaken NP-completeness masalah liyane.
Kanggo luwih nggambarake konsep verifiability wektu polinomial, nimbang masalah "Subset Sum". Masalah iki takon apa ana subset saka set wilangan bulat sing jumlahe menyang nilai target sing ditemtokake. Masalah Subset Sum ana ing NP amarga, diwenehi set integer ( S ), nilai target ( t ), lan subset ( S ' ) saka ( S ), siji bisa verifikasi ing wektu polinomial apa jumlah unsur ing ( S ' ) padha karo ( t ). Ing kene, conto (x) minangka pasangan ((S, t) ), lan sertifikat (y) minangka subset (S'). Verifier (V) mriksa manawa jumlah unsur ing (S') padha karo (t), sing bisa ditindakake ing wektu polinomial kanthi ukuran (S).
Pentinge verifikasi wektu polinomial ngluwihi pertimbangan teoritis. Ing istilah praktis, tegese kanggo masalah ing NP, yen solusi sing diusulake (sertifikat) diwenehake, bisa dipriksa kanthi efisien. Iki duwe implikasi sing signifikan kanggo protokol kriptografi, masalah optimasi, lan macem-macem lapangan sing penting kanggo verifikasi kebeneran solusi.
Kanggo ngringkes, kelas NP nyakup masalah keputusan sing solusi sing diusulake bisa diverifikasi ing wektu polinomial kanthi algoritma deterministik. Konsep iki minangka dhasar ing teori kerumitan komputasi lan nduweni implikasi sing jero kanggo aspek teoretis lan praktis ilmu komputer. Sinau babagan NP, verifiability wektu polinomial, lan konsep sing gegandhengan kayata NP-completeness terus dadi area riset sing sregep lan kritis.
Pitakonan lan jawaban anyar liyane babagan Kompleksitas:
- Apa kelas PSPACE ora padha karo kelas EXPSPACE?
- Apa kelas kompleksitas P subset saka kelas PSPACE?
- Apa kita bisa mbuktekake yen kelas Np lan P padha kanthi nemokake solusi polinomial sing efisien kanggo masalah lengkap NP ing TM deterministik?
- Apa kelas NP bisa padha karo kelas EXPTIME?
- Apa ana masalah ing PSPACE sing ora ana algoritma NP sing dikenal?
- Apa masalah SAT bisa dadi masalah lengkap NP?
- Bisa masalah ing kelas kerumitan NP yen ana mesin turing non deterministik sing bakal ngrampungake ing wektu polinomial
- Apa P lan NP bener kelas kerumitan padha?
- Apa saben basa bebas konteks ing kelas kompleksitas P?
- Apa ana kontradiksi antarane definisi NP minangka kelas masalah kaputusan karo verifiers polynomial-wektu lan kasunyatan sing masalah ing kelas P uga verifiers polynomial-wektu?
Ndeleng pitakonan lan jawaban liyane ing Kompleksitas