Nedeterministički Turingov stroj

Izvor: Wikipedija
Skoči na: orijentacija, traži

U računarstvu, nedeterministički Turingov stroj (NTS) je Turingov stroj čiji upravljački mehanizam operira slično onome nedeterminističkog konačnog automata.

Opis[uredi VE | uredi]

Obični (deterministički) Turingov stroj (DTS) ima funkciju prijelaza koja, za dano stanje i znak (simbol) trake ispod glave za čitanje i pisanje, specificira tri stvari: znak koji se piše na traku, smjer (lijevi ili desni) pomaka glave, te sljedeće stanje upravljačke jedinke. Na primjer, znak X na traci u stanju 3 može učiniti da DTS zapiše znak Y na traku, pomakne glavu jednu poziciju u desno, i promijeni stanje u 5.

NTS se razlikuje u tome što stanje i ulazni znak trake više ne specificiraju jedinstveno ove promjene - mnoge različite akcije se mogu primjeniti za istu kombinaciju stanja i pročitanog znaka. Na primjer, X na traci u stanju 3 sad može dozvoliti NTS da zapiše Y, pomakne glavu u desno te promijeni stanje u 5, ili da zapiše znak X, pomakne glavu u lijevo, i ostane u stanju 3.

Kako NTS "zna" koju bi od ovih akcija trebao obaviti? Postoje dva načina gledanja na ovaj problem. Jedan od njih je gledanje na stroj kao "najsretnijeg mogućeg odabratelja" - uvijek odabire onaj prijelaz koji s vremenom vodi u prihvatljivo stanje, ukoliko on uopće postoji. Drugi način gledanja jest zamišljanje da se stroj "grana" u mnogo kopija, od kojih svaka slijedi jedan mogući prijelaz. Dok DTS ima jedinstven "put računanja" kojeg slijedi, NTS ima "stablo računanja". Ako bilo koja grana stabla stane u "prihvatljivim" uvjetima, kažemo da NTS prihvaća ulaz.

Definicija[uredi VE | uredi]

Formalnije, nedeterministički Turingov stroj je uređena šestorka M=(Q, \Sigma, \iota, \sqcup, A, \delta), pri čemu je

  • Q konačan skup stanja
  • \Sigma konačan skup znakova (simbola) (abeceda trake)
  • \iota \in Q početno stanje
  • \sqcup znak kojim se označava prazna ćelija (\sqcup \in \Sigma)
  • A \subseteq Q skup prihvatljivih stanja
  • \delta: Q \backslash A \times \Sigma \rightarrow \left( Q \times \Sigma \times \{L,R\} \right) viševrijednosna funkcija nad stanjima i znakovima zvana funkcija prijelaza, pri čemu je L pomak u lijevo i R pomak u desno. U konvencionalnim Turingovim strojevima, funkcija prijelaza nije viševrijednosna.

Varijacije[uredi VE | uredi]

Postoji velik broj varijacija ove definicije. Na primjer, početno stanje može biti zamijenjeno skupom početnih stanja. (Ovo je istovjetna definicija budući da je trivijalno simulirati višestruka početna stanja dodavanjem jednog početnog stanja koji ih nedeterministički odabire.)

Varijacija također može sadržavati skup odbijajućih stanja, u kojem pak slučaju se kaže da NTS odbija sve putove računanja koji vode do odbijajućih stanja.

Istovjetnost sa DTS[uredi VE | uredi]

Intuitivno može izgledati da su NTS moćniji od DTS, pošto mogu izvršavati mnogo mogućih računanja odjednom, zahtijevajući da samo jedan od njih uspije. Ali bilo koji jezik kojeg prihvaća NTS također može prihvatiti DTS: DTS može simulirati svaki prijelaz NTS, praveći višestruke kopije simuliranog stanja kad su višestruki prijelazi dozvoljeni, i simulirajući ih sve paralelno, ne poput procesa u višezadaćnim operacijskim sustavima.

Očito je da ovakav način simulacije zahtijeva značajno veći potrošak vremena. Koliko točno veći se općenito ne zna - ovo je, ukratko, definicija "Je li P = NP?" problema (vidjeti klase složenosti P i NP).

Usporedba sa ostalim računskim modelima[uredi VE | uredi]

NTS ima svojstvo ograničenog nedeterminizma, tj. ako NTS uvijek staje za danu ulaznu traku T, tada on staje i u ograničenom broju konfiguracija. Ovo je svojstvo važno prilikom suprostavljanja nekih drugih modela konkurentnih računanja kao što je Actor model, koji pak imaju svojstvo neograničenog nedeterminizma.

Uobičajena je miskoncepcija da su kvantna računala NTS. Vjeruje da je moć vremenski polinomnih kvantnih računala neusporediva onoj vremenskih polinomnih NTS. To jest, za svaki od ta dva računska modela postoji problem koji jedan može riješiti, a drugi vrlo izvjesno ne može. Izgledan primjer problema koje rješavaju NTS, ali ne i vremenski polinomna kvantna računala, su NP-potpuni problemi.

Vidjeti također[uredi VE | uredi]

Izvori[uredi VE | uredi]

Vanjske poveznice[uredi VE | uredi]