szó jelentését keresi. A DICTIOUS-ban nem csak a
szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a
szót egyes és többes számban mondani. Minden, amit a
szóról tudni kell, itt található. A
szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. A
és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.
Főnév
nondeterministic polynomial time (tsz. nondeterministic polynomial times)
- (informatika) nemdeterminisztikus polinomiális idő
1. Bevezetés
A számításelmélet egyik legfontosabb komplexitás‐osztálya az NP, azaz a „nemdeterminisztikus polinom‐idő” problémák gyűjteménye. Az NP‐beli problémák olyan döntési feladatok, amelyekre — ha valaki egy „bizonyítékot” (certificate) ad — polinomiális idő alatt ellenőrizhető, hogy a válasz helyes‐e.
A NP elnevezés a nondeterministic polynomial time kifejezésből ered. Bár a való világban a nem‐determinista számítógép (amely egyszerre „megpróbál” minden lehetőséget) nem létezik, az elméleti modell igen hatékonyan ragadja meg azokat a feladatokat, amelyek meghívásra „szerencsére” gyorsan ellenőrizhetők, de megoldásuk látszólag nehéz.
Egy döntési probléma (igen/nem kérdés)
akkor tartozik az NP‐be, ha létezik egy polinomiális időben futó determinisztikus Turing‐gép (ellenőrző gép)
és egy polinom
, hogy minden bemenetre
pontosan az alábbi feltételek igazak:
„Igen” eset (
): létezik egy bizonyíték
(certificate), amire

futási ideje legfeljebb
egy rögzített
-ra.
„Nem” eset (
): minden
esetén

Itt
a bemenet hosszát (bit‐sorrendben),
hossza pedig legfeljebb polinom
. Az ellenőrzési folyamat tehát determinisztikus és polinom időben zajlik.
3. Nem‐determinista Turing‐gép modell
NP‐t alternatív módon úgy is definiálhatjuk, hogy NP‐ben vannak azok a problémák, amelyeket egy nem‐determinista Turing‐gép (NTM) polinomiális lépés alatt meg tud oldani:
- A nem‐determinista gép egy adott állapotból egyszerre, „párhuzamosan” több ágra (lehetséges folytatásokra) léphet.
- Ha legalább egy „ágon” sikeresen elfogadja a bemenetet (állapotaiban elér egy elfogadó állapotot) legfeljebb
lépés alatt, a gép „igen” döntést ad.
- Ha semelyik ág nem fogadja el, akkor „nem” a válasz.
Habár ez a modell elméleti, jól megragadja azt a tulajdonságot, hogy „valami” szerencsésen gyorsan megtalálhatja a jó megoldást, míg determinisztikus gépen hasonló feltételekkel nem biztos, hogy polinom idő alatt megoldjuk.
4. NP és P kapcsolata
- A P osztály azokat a döntési feladatokat tartalmazza, amelyeket determinisztikus Turing‐géppel polinomiális idő alatt meg tudunk oldani.
- Nyilvánvalóan
, hiszen ha megoldjuk „magától” polinom idő alatt, akkor a megoldást mint bizonyítékot ellenőrzéskor is felhasználhatjuk.
- A híres P vs. NP kérdés arra vonatkozik, hogy vajon van‐e olyan determinisztikus polinom‐idő algoritmus azokhoz a feladatokhoz, amelyeket ma csak nem‐determinista modellben tartunk polinom idejűnek. A legtöbb szakértő szerint
, de ez ma is nyitott probléma.
5. Példák NP‐beli problémákra
- SAT (boole‐kielégíthetőség)
- Bemenet: egy Boole‐kifejezés CNF formában.
- Kérdés: van‐e változó‐értékadás, ami a kifejezést igazra értékeli?
- Bizonyíték: egy változó‐értékadás; ellenőrzés polinom időben.
- Hamilton‐út döntés
- Bemenet: egyszerű gráf
, csúcs‐szám
.
- Kérdés: van‐e olyan egyszer végigjáró út, ami minden csúcsot pontosan egyszer érint (Hamilton‐út)?
- Bizonyíték: a csúcslánc felsorolása
; ellenőrzés
-ben.
- Subset Sum
- Bemenet: egész számok halmaza és célösszeg
.
- Kérdés: létezik‐e részhalmaz, amelynek összege
?
- Bizonyíték: a megfelelő részhalmaz indexei; összeadás polinom időben.
- Vertex Cover döntés
- Bemenet: gráf és egész
.
- Kérdés: van‐e
csúcs, amelyek érintenek minden élt?
- Bizonyíték: a csúcshalmaz; él‐ellenőrzés polinom időben.
6. NP‐teljes és NP‐nehéz problémák
- NP‐teljes: NP‐ben vannak és NP‐nehézek (minden NP‐feladat polinom időben visszavezethető rájuk).
- Ezek a „legtöbb NP‐feladat nehézségi csúcsai”: például 3‐SAT, Hamilton‐út, Vertex Cover.
- Ha egy NP‐teljes feladatot determinisztikusan polinom időben megoldanánk, akkor
teljesen.
A NP‐teljesség bizonyítása rendszerint két lépésben történik:
- Mutassuk meg, hogy a probléma NP‐ben van (ellenőrizhetőség).
- Vegyük egy már ismert NP‐teljes feladatot, és konstruáljunk polinomiális redukciót rá.
7. NP‐beli problémák megközelítése
Mivel a NP‐teljes feladatok várhatóan nem oldhatók meg polinom időben, három fő stratégiát alkalmazunk:
- Pseudopolinomiális algoritmusok – A futásidő a bemeneti numerikus értékek (pl. célösszeg) függvénye, nem „kvázi‐polinom”, de gyakorlati paraméterekkel működik (Subset Sum, Knapsack).
- Approximation (közelítő) algoritmusok – PTAS, FPTAS:
-pontosság garanciával, futásidő polinomális a bemeneti méretben és
-ben.
- Heurisztikák és metaheurisztikák – Greedy, lokális keresés, szimulált hőkezelés, genetikus algoritmusok — hatékonyak nagy inputokra, de nincs optimális garancia.
8. NP‐beli problémák jelentősége
- A kriptográfia: az RSA, DSA és hasonló rendszerek biztonsága a diszkrét logaritmus és faktorizáció NP‐nehézségén alapszik (bár nem tudjuk, hogy NP‐ben vannak‐e).
- A tudományos kutatás: a P vs. NP kérdés Az Egyik legnagyobb nyitott probléma, amely a számítástudomány alapjait érinti.
- Az ipari alkalmazások: ütemezés, hálózat‐tervezés, portfólió‐optimalizálás, genetikai algoritmusok, adatbányászat — ezekben gyakran NP‐beli alfeladatok bukkannak fel.
9. Összefoglalás
- Az NP azokat a döntési feladatokat foglalja magába, melyekre polinomiális időben ellenőrizhető egy „bizonyíték”.
- Formálisan nem‐determinista Turing‐gép polinomiális futási idejét modellezi.
- NP‐teljes problémák a legnehezebbek NP‐ben; megoldásuk
-t implikálna.
- Gyakorlatban közelítő, pseudopolinomiális és heurisztikus módszerekkel közelítjük őket.
Az NP osztály és a nem‐determinista polinom‐idő modell alapozza meg a számítástudomány elméleti és gyakorlati kutatásának egyik legerőteljesebb keretrendszerét.