Deterministička Turing mašina (DTM) i nedeterministička Turing mašina (NTM) su dve vrste apstraktnih računarskih uređaja koji igraju fundamentalnu ulogu u teoriji složenosti računara. Iako su oba modela zasnovana na konceptu Turingove mašine, oni se razlikuju u pogledu svog računarskog ponašanja i vrsta problema koje mogu da reše. Razumijevanje glavnih razlika između ova dva modela važno je za razumijevanje teorijskih osnova kibernetičke sigurnosti i teorije računske složenosti.
U determinističkoj Turing mašini, ponašanje mašine je u potpunosti određeno njenim trenutnim stanjem i simbolom koji čita sa trake. U svakom datom koraku, mašina ima jedan, jedinstveni prijelaz u sljedeće stanje, na osnovu svog trenutnog stanja i simbola koji čita. Ova deterministička priroda osigurava da će za bilo koji dati ulaz mašina uvijek proizvoditi isti izlaz, a računanje će slijediti jednu, dobro definiranu putanju. Deterministička priroda DTM-ova čini ih lakim za analizu i razmišljanje, jer je njihovo ponašanje predvidljivo i nedvosmisleno.
S druge strane, nedeterministička Turing mašina može imati više mogućih prijelaza iz date kombinacije stanja i simbola. Ovaj nedeterminizam znači da mašina može istovremeno istraživati više putanja računanja. U svakom koraku, NTM može izabrati bilo koji od ovih mogućih prelaza, što dovodi do grananja mogućih puteva računanja. Ovo nedeterminističko ponašanje omogućava NTM-u da istraži veći prostor pretraživanja i potencijalno pronađe rješenje efikasnije od DTM-a. Međutim, važno je napomenuti da NTM ne pruža paralelno računanje, već predstavlja hipotetičku mašinu koja može istražiti sve moguće puteve na nedeterministički način.
Glavna posljedica nedeterminizma u Turingovim mašinama je da dozvoljava postojanje nedeterminističkih problema polinomskog vremena (NP). NP problemi su klasa računskih problema za koje se navodno rješenje može provjeriti u polinomskom vremenu. Dok je deterministički pandan NP poznat kao P (polinomsko vrijeme), otvoreno je pitanje da li je P jednako NP. Ako je P jednako NP, to bi značilo da svaki problem za koji se rješenje može provjeriti u polinomskom vremenu također može biti riješen u polinomskom vremenu pomoću DTM. Međutim, ako P nije jednako NP, to implicira da postoje problemi za koje nijedan efikasan deterministički algoritam ne može pronaći rješenje, ali nedeterministički algoritam može efikasno provjeriti navodno rješenje.
Da bismo ilustrovali razliku između DTM-ova i NTM-ova, razmotrimo problem pronalaženja putanje u grafu. Dati graf i dva vrha, zadatak je utvrditi postoji li put između dva vrha. Ovaj problem može biti riješen pomoću DTM-a u polinomskom vremenu, jer DTM može sistematski istraživati sve moguće puteve dok se ne pronađe rješenje ili sve putanje ne iscrpe. Međutim, NTM može efikasnije riješiti ovaj problem nedeterminističkim pogađanjem ispravne putanje i verifikacijom u polinomskom vremenu. NTM može istovremeno istražiti sve moguće puteve, što ga čini vjerojatnijim da pronađe rješenje brže od DTM.
Glavna razlika između determinističke Turing mašine i nedeterminističke Turing mašine leži u njihovom računarskom ponašanju. DTM prati jednu, dobro definisanu putanju računanja, dok NTM može istovremeno da istražuje više putanja. Ovaj nedeterminizam omogućava NTM-u da potencijalno riješi određene probleme efikasnije od DTM-a. Postojanje nedeterminističkih polinomskih vremenskih problema, poznatih kao NP problemi, posljedica je nedeterminističkog ponašanja NTM-ova. Razumijevanje razlika između ova dva modela važno je za analizu računske složenosti i teorijskih osnova sajber sigurnosti.
Ostala nedavna pitanja i odgovori u vezi EITC/IS/CCTF Osnove teorije računske složenosti:
- Da li su regularni jezici ekvivalentni sa konačnim mašinama?
- Zar PSPACE klasa nije jednaka klasi EXPSPACE?
- Da li je algoritamski izračunljiv problem problem koji se može izračunati Turingovom mašinom u skladu sa Church-Turing tezom?
- Koje je svojstvo zatvaranja regularnih jezika pod konkatenacijom? Kako su konačne mašine kombinovane da predstavljaju uniju jezika koje prepoznaju dve mašine?
- Može li se svaki proizvoljni problem izraziti jezikom?
- Da li je P klasa složenosti podskup klase PSPACE?
- Da li svaka Turing mašina sa više traka ima ekvivalentnu Turing mašinu sa jednom trakom?
- Koji su rezultati predikata?
- Da li su lambda račun i Turingove mašine izračunljivi modeli koji odgovara na pitanje šta znači izračunljiv?
- Možemo li dokazati da su Np i P klasa iste pronalaženjem efikasnog polinomskog rješenja za bilo koji NP kompletan problem na determinističkom TM?