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 algorithm (tsz. nondeterministic algorithms)
- (informatika, mesterséges intelligencia) nemdeterminisztikus algoritmus
A nemdeterminisztikus algoritmus (angolul: nondeterministic algorithm) egy olyan elméleti számítási modell, amely nem egyetlen végrehajtási úton halad, hanem párhuzamosan több lehetőséget is kipróbál, mintha “varázsütésre” mindig a helyes választásra lépne. Ez nem azt jelenti, hogy véletlenszerű, hanem hogy több lehetséges döntés közül mindig a megfelelő kerül kiválasztásra – ha létezik.
Ez a fogalom elsősorban elméleti számítástudományban, különösen a komplexitáselméletben használatos, például az NP (nondeterministic polynomial time) osztály meghatározásakor.
🔍 Determinisztikus vs. nemdeterminisztikus algoritmus
Típus
|
Jellemzők
|
Deterministic
|
Minden lépése egyértelműen meghatározott, minden bemenetre mindig ugyanazt az utat járja be
|
Nondeterministic
|
Egy adott lépésnél több útvonal is lehetséges, és a rendszer „választhat” közülük – ideálisan a legjobbat
|
🔁 Hasonlat
Képzeld el, hogy ki akarsz jutni egy labirintusból:
- Deterministic algoritmus: módszeresen haladsz, pl. mindig jobbra fordulsz, majd balra, visszafordulsz, stb.
- Nondeterministic algoritmus: minden elágazásnál varázsütésszerűen azonnal a helyes irányba fordulsz – mintha minden lehetőséget párhuzamosan kipróbálnál, és azonnal a célhoz jutnál, ha létezik út.
🧩 Mikor használunk nemdeterminisztikus algoritmus fogalmat?
- NP problémák vizsgálatakor: Egy probléma NP osztályba tartozik, ha létezik egy nemdeterminisztikus algoritmus, amely polinomiális idő alatt megoldja.
- Algoritmustervezési elméletben: Egyes algoritmusokat úgy írunk le, mintha „kitalálnák” a jó megoldást – ezek nem reálisak, de segítenek bizonyítani, hogy egy probléma megoldható bizonyos időn belül, ha lenne ilyen képesség.
🔢 Példa: Hamilton-kör probléma (NP-teljes)
Adott egy gráf. Létezik-e olyan körút, amely minden csúcsot pontosan egyszer érint?
Deterministic megközelítés:
- Megpróbálsz minden lehetséges csúcslátogatási sorrendet.
- Ez n-faktoriális időigényű (robusztus, de nagyon lassú).
Nondeterministic megközelítés:
- “Kitalálod” a jó sorrendet.
- Egy lépésben mindig azt az élt választod, amely biztosan célra vezet.
- A nemdeterminisztikus gép így polinomiális idő alatt találja meg a megoldást (ha van).
🧪 Nondeterministic algoritmus pszeudokód példa
function NonDeterministicSubsetSum(S, T):
nondeterministically choose subset A ⊆ S
if sum(A) == T:
accept
else:
reject
🟢 Ha létezik olyan részhalmaz, amely összege T
, akkor a gép „ki tudja találni” ezt a részhalmazt azonnal.
📘 Nemdeterminisztikus Turing-gép (NTM)
A nemdeterminisztikus algoritmusokat nemdeterminisztikus Turing-gépeken értelmezzük:
- Egy adott állapotból több különböző átmenet is lehet.
- A gép „párhuzamos valóságokban” kipróbálja mindet.
- Akkor fogad el egy bemenetet, ha legalább egy végrehajtási útvonal eljut az elfogadó állapotba.
✅ Előnyök (elméletben)
- Lehetővé teszik a polinomiális igazolhatóság fogalmát (NP osztály).
- Segítenek elválasztani, hogy mi az, ami gyorsan ellenőrizhető, de nem feltétlenül gyorsan megoldható.
- Használhatók algoritmusok tervezésének kiindulási modelljeiként.
⚠️ Hátrányok (gyakorlatban)
- Nem implementálhatók a klasszikus számítógépeken – hiszen nincs „varázs-szétválás”.
- Elméleti konstrukciók – nem valódi algoritmusok, hanem modellek.
- A determinisztikus megfelelőik gyakran exponenciális idejűek.
🤔 Kapcsolódó fogalmak
Fogalom
|
Jelentés
|
Deterministic algorithm
|
Minden lépés előre meghatározott
|
Randomized algorithm
|
Véletlenszerűség alapján választ döntéseket
|
Heurisztika
|
Gyakorlatias, gyors, de nem garantáltan jó megoldásokat ad
|
NP, NP-complete
|
Olyan problémák, amelyeket nemdeterminisztikus algoritmus polinomiális idő alatt megold
|
P vs NP
|
A legnagyobb nyitott kérdés: létezik-e gyors (deterministic) algoritmus minden NP-problémára?
|
🔄 Összefoglaló táblázat
Típus
|
Példa
|
Megoldási mód
|
Deterministic
|
Bubble sort
|
Minden lépés egyértelmű
|
Nondeterministic
|
Hamilton-kör keresés
|
„Kitalálja” a helyes útvonalat
|
Randomized
|
QuickSort (random pivot)
|
Véletlenszerűen dönt, nem garantált
|
🧾 Összefoglalás
Fogalom
|
Leírás
|
Nondeterministic algorithm
|
Olyan elméleti algoritmus, amely több lehetőséget „párhuzamosan” vizsgál
|
Felhasználás
|
Elméleti számítástudomány, komplexitásosztályok (NP) elemzése
|
Gyakorlati érték
|
Indirekt: segít alsó/felső korlátokat meghatározni, nem implementálható
|
Kapcsolódó fogalmak
|
NP, determinisztikus algoritmus, Turing-gép, döntési problémák
|