Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011....

32
27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku, Rijeci, Splitu i Zagrebu Zajednički sveučilišni poslijediplomski doktorski studij matematike Standardni kolegij Matematička logika i računarstvo Drugi semestar 11. Standardni Turingovi strojevi 12. Varijante Turingovih strojeva 13. Odlučivi problemi i rekurzivni jezici TR-III Turingovi strojevi 2 Sadržaj dijela III

Transcript of Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011....

Page 1: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

1

Dio III:Turingovi strojevi

Robert Manger, ožujak 2011

Sveučilište u Osijeku, Rijeci, Splitu i ZagrebuZajednički sveučilišni poslijediplomski doktorski studij matematike

Standardni kolegij

Matematička logika i računarstvoDrugi semestar

11. Standardni Turingovi strojevi

12. Varijante Turingovih strojeva

13. Odlučivi problemi i rekurzivni jezici

TR-III Turingovi strojevi 2

Sadržaj dijela III

Page 2: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

2

• Modeli računanja koje smo do sada promatrali imaju prilično ograničenu snagu računanja.

• U ovom poglavlju uvodimo Turingov stroj. To je model kojeg je uveo Alan Turing prije 70-tak godina.

• Smatra se da su teorijski rezultati o Turingovomstroju utjecali na arhitekturu stvarnih računala.

• Turingov stroj djeluje vrlo primitivno, a njegov način rješavanja problema izgleda spor i neefikasan.

• No vjeruje se da Turingov stroj ipak vjerno opisuje mogudnosti stvarnog računala, u mislu da određuje što se može a što se ne može izračunati.

TR-III Turingovi strojevi 3

11.0 Uvod u Turingove strojeve

• Turingov stroj (TS) liči na KA. No za razliku od KA, TS raspolaže s neograničenom memorijom koja mu služi za čitanje i pisanje.

TR-III Turingovi strojevi 4

11.1 Opis Turingovog stroja (1)

Page 3: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

3

• TS se sastoji od 4 djela.

– Beskonačne trake podijeljene u klijetke. Svaka klijetka sadrži jedan znak. Posebni znak Δ označava praznu klijetku (bjelinu).

– Glave koja može pristupiti jednoj klijetki, čitati iz i pisati u klijetku te se pomaknuti lijevo ili desno.

– Memorije koja se može nadi u jednom od konačno mnogo stanja. Govorimo o tekudem stanju stroja.

– Kontrolne jedinice koja ovisno o znaku ispod glave i tekudem stanju pokrede operacije pisanja na traku, pomicanja glave te promjene stanja.

TR-III Turingovi strojevi 5

11.1 Opis Turingovog stroja (2)

• Način rada TS izražen je njegovom funkcijom prijelaza. TS radi u koracima. Jedan korak se odvija ovako. Ovisno o

– znaku u klijetki ispod glave,

– trenutnom stanju stroja,

stroj

– piše znak u klijetku ispod glave,

– pomiče glavu lijevo ili desno ili je ostavlja na istom mjestu,

– prelazi u novo stanje.

• TS se prikazuje usmjerenim grafom slično kao KA. Čvorovi predstavljaju stanja a lukovi prijelaze.

TR-III Turingovi strojevi 6

11.2 Način rada i prikaz TS (1)

Page 4: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

4

• Početno odnosno prihvadajude stanje označeni su na uobičajeni način.

• Svaki luk označen je trojkom:

StariZnak NoviZnak SmjerPomaka (L/R/S)

• Na primjer, oznaka 01L znači:

ako pročitam 0 tada pišem 1 i mičem glavu ulijevo.

• Slično kao PA, TS staje ako u nekom stanju nema odgovarajudeg prijelaza.

TR-III Turingovi strojevi 7

11.2 Način rada i prikaz TS (2)

• TS se može strogo definirati kao uređena 6-torka(Q, Σ, Γ, q0, ha, δ), gdje je:– Q skup stanja,– Σ ulazni alfabet,– Γ alfabet za traku; naime TS može na traci koristiti dodatne

znakove koji nema u ulaznom alfabetu, na primjer Δ.– q0 je polazno stanje, q0 je element od Q,– ha je jedinstveno prihvadajude stanje,– δ je funkcija prijelaza (transition function) oblika

δ : Q × Γ → Q × Γ × {L, R, S}.Npr, δ(q, 0) = (r, 1, S) znači da stroj u stanju q nakon čitanja 0 s trake prelazi u stanje r, piše na traku 1 i ne miče glavu.

• Predviđa se jedno prihvadajude stanje. To nije bitno jer se TS s više takvih stanja lagano može prilagoditi .

TR-III Turingovi strojevi 8

11.3 Formalna definicija TS

Page 5: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

5

• Slično kao KA ili PA, TS u prvom redu služi za prihvadanje riječi odnosno prepoznavanje jezika.

• Ulazna riječ za TS zadaje se na njegovoj traci i okružena je znakovima Δ. Početni položaj glave je na najljevijem znaku ulaza. Nakon pokretanja stroja dešava se jedno od sljededeg.

– Stroj se nakon konačno mnogo koraka zaustavlja u prihvadajudem stanju ha .

– Stroj se nakon konačno mnogo koraka zaustavlja u nekom stanju koje nije prihvadajude.

– Stroj radi bez prestanka jer je ušao u beskonačnu petlju.

TR-III Turingovi strojevi 9

11.4 Prepoznavanje jezika pomodu TS (1)

• Ako se desila prva od gornjih tri mogudnosti, tada kažemo da TS prihvada ulaznu riječ.

• Jezik za neki TS je skup svih riječi koje taj TS prihvada. Za stroj M njegov jezik označavamo s L(M). Kažemo da M prepoznaje jezik L(M).

• Primijetimo da za riječ izvan L(M) možda nikad nedemo modi ustanoviti da li ju M prihvada ili ne. Naime ako se M ne zaustavlja, tada ne znamo da li je to zato što je on ušao u beskonačnu petlju, ili zato što mu treba još vremena.

• Pojava nezaustavljanja je novost u odnosu na dosadašnje determinističke modele računanja.

TR-III Turingovi strojevi 10

11.4 Prepoznavanje jezika pomodu TS (2)

Page 6: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

6

• Primjer 11.1. Dijagram prikazuje TS za regularni jezik sastavljen od svih riječi koje sadrže podriječ101. Naš TS uvijek piše znak kojeg je upravo pročitao i uvijek pomiče glavu udesno.

TR-III Turingovi strojevi 11

11.5 Jednostavni primjeri TS (1)

• Primjer 11.2. Konstruiramo TS koji prepoznaje jezik{ 0n1n | n≥0 } . Ideja je da uparujemo nule i jedinice. Dakle opetovano brišemo prvu 0 i zadnji 1 sve dok ne dobijemo praznu riječ. Slijedi pseudokod:1. Ako ZnakIspodGlave = 0 tada Piši(Bjelina) inače Odbaci.2. Pomiči glavu udesno sve dok ne bude ZnakIspodGlave =

Bjelina.3. Pomakni glavu ulijevo.4. Ako ZnakIspodGlave = 1 tada Piši(Bjelina) inače Odbaci.5. Pomiči glavu ulijevo sve dok ne bude ZnakIspodGlave =

Bjelina.6. Pomakni glavu udesno.7. Ako ZnakIspodGlave = Bjelina tada Prihvati.8. Idi na korak 1.

TR-III Turingovi strojevi 12

11.5 Jednostavni primjeri TS (2)

Page 7: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

7

• Slijedi dijagram TS i ilustracija njegovog rada na ulazu 00111 koji se odbacuje.

TR-III Turingovi strojevi 13

11.5 Jednostavni primjeri TS (3)

• Primjer 11.3. Dijagram prikazuje TS koji miče glavu tamo-amo, mijenja a-ove u b-ove, pa onda natrag b-ove u a-ove. Stroj ne radi ništa korisno no pokazuje mogudnost nezaustavljanja.

TR-III Turingovi strojevi 14

11.6 Daljnji primjeri TS (1)

Page 8: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

8

• Primjer 11.4. Ponovo se bavimo jezikom balansiranih zagrada iz Primjera 7.2. TS treba ustanoviti da li je ulazna riječ sastavljena od zagrada koje se ispravno uparuju.

TR-III Turingovi strojevi 15

11.6 Daljnji primjeri TS (2)

Ideja je da nađemo najdublji par pridruženih zagrada, brišemo ih i nastavimo postupak na isti način. Koristimo posebni znak x kao oznaku brisanja.

Stanja ovog TS mogu se ovako interpretirati.– A: Traži s lijeva na desno prvu ) ; ako je nađeš prekriži je i

idi u stanje B; ako je ne nađeš idi u stanje C.– B: traži s desna na lijevo prvu ( ; ako je nađeš prekriži je i

idu u stanje A.– C: ovo stanje se dostiže ako nema više ) ; traži s desna na

lijevo preostale ( ; ako ne nađeš nijednu tada Prihvati inače Odbaci.

Na primjer, ovaj stroj odbacuje ()))( ali prihvada (()(())).

TR-III Turingovi strojevi 16

11.6 Daljnji primjeri TS (3)

Page 9: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

9

• Primjer 11.5. Slijedi TS koji prihvada binarne palindrome parne duljine. Ideja je da se upare prvi i zadnji znak te da se oni pobrišu; zatim se ponavlja isti postupak. Ako dođemo do prazne riječi bez da smo naišli na nepodudaranje, tada je polazna riječ bila palindrom. Trebamo 6 stanja: A, B0, B1, C0, C1, D. Možemo ih ovako interpretirati.– A : Ako je riječ prazna tada Prihvati; inače ispitaj i pobriši

najljeviji znak; ako je on bio 0 idi u B0 inače idi u B1.– Bj: Ovamo stižemo ako je prvi znak bio j; tražimo desni kraj

riječi; kad ga nađemo idemo u Cj.– Cj: Ako zadnji znak nije j tada Odbaci inače pobriši taj znak i

idi u D.– D: vrati se na početak riječi; zatim idi u A.

TR-III Turingovi strojevi 17

11.6 Daljnji primjeri TS (4)

TR-III Turingovi strojevi 18

11.6 Daljnji primjeri TS (5)

Evo dijagrama našeg TS:

Page 10: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

10

• Primjer 11.6. Konstruiramo TS koji prepoznaje jezik{ w#w | w Σ*}. Sjedamo se da taj jezik nije kontekstno slobodan.Naš TS križa prvi znak i pamti ga. Zatim prolazi kroz riječ sve dok ne dođe do prvog znaka nakon #. Provjerava da li je taj znak ispravan i križa ga. Zatim se vrada na najljeviji neprekriženi znak i ponavlja postupak ignorirajudi prekrižene znakove. TS prihvada ulaz ako uspije prekrižiti sve znakove bez otkrivanja bilo kakve nepodudarnosti.

• TS iz Primjera 11.6 mogao bi se strože definirati pseudokodom ili dijagramom. No često demo se zbog brzine služiti ovakvim neformalnim opisom.

TR-III Turingovi strojevi 19

11.6 Daljnji primjeri TS (6)

• Makar TS-evi rade na vrlo mukotrpan način, oni su u stanju rješavati vrlo složene zadade.

• Da bismo riješili neku složenu zadadu pomodu TS, moramo razbiti tu zadadu na jednostavnije dijelove, svaki dio riješiti zasebno, pa povezati rješenja.

• Rješenje neke jednostavne zadade pomodu TS naziva se “potprogram” za TS.

• Dobro je imati što više potprograma za standardne zadade koje se često ponavljaju, jer takve potprograme možemo ponovo koristiti unutar novih TS-jeva.

• Primjer 11.7. Konstruiramo TS koji pomiče cijeli ulaz za jednu klijetku udesno.

TR-III Turingovi strojevi 20

11.7 Potprogrami za TS (1)

Page 11: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

11

Naš TS radi tako da pomiče glavu prema desnom kraju riječi i pritom pamti zadnji viđeni znak. Kad prijeđe preko desnog kraja,

TR-III Turingovi strojevi 21

11.7 Potprogrami za TS (2)

TS u prvu praznu klijetku upiše zapamdeni znak, vrati se jedno mjesto ulijevo te pobriše znak. Zatim se vrati još jedno mjesto ulijevo, prebaci taj znak udesno i ponavlja postupak.

• Stroj iz Primjera 11.7 može se smatrati jednim korisnim potprogramom za TS. Naime, ako se u nekom složenijem problemu pojavi potreba za pomicanjem sadržaja trake, tada se u odgovarajudi TS može ugraditi rješenje iz Primjera 11.7.

• Štoviše, kad razmišljamo o rješenju složenog problema, pomicanje sadržaja trake možemo smatrati elementarnom operacijom.

• Potprogrami za TS analogni su potprogramima u stvarnom programiranju. Zaista, složene programe nikad ne pišemo u jednom komadu ved ih realiziramo pozivanjem jednostavnijih funkcija.

TR-III Turingovi strojevi 22

11.7 Potprogrami za TS (3)

Page 12: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

12

11. Standardni Turingovi strojevi

12. Varijante Turingovih strojeva

13. Odlučivi problemi i rekurzivni jezici

TR-III Turingovi strojevi 23

Sadržaj dijela III

• U ovom poglavlju razmatramo razne varijante TS koje se razlikuju od standardne varijante po tome što im je dodano ili oduzeto neko svojstvo.

• Ne brine nas brzina rada takvih TS, samo želimo znati kolika je njihova računalna snaga u smislu sposobnosti rješavanja problema.

• Pokazuje se da je standardna definicija TS vrlo robusna. Sve razmatrane varijante zapravo su po računalnoj snazi ekvivalentne standardnoj varijanti.

• Stječe se dojam da se TS ne može bitno unaprijediti te da on u svom standardnom obliku ved simulira sve ono što se uopde može postidi računanjem.

TR-III Turingovi strojevi 24

12.0 Opdenito o varijantama TS

Page 13: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

13

• Do sada smo se bavili strojevima koji prepoznaju jezike – to su takozvani prepoznavatelji (recognizers).

• No mogude je oblikovati i strojeve koji nešto računaju, dakle neki ulazni podatak pretvaraju u izlazni rezultat. Takvi strojevi nazivaju se pretvarači(transducers).

• U slučaju TS računanje se obavlja tako da TS ulaz koji je zadan na traci pretvara u izlaz koji ostaje na traci.

• Na primjer, TS može obavljati množenje prirodnih brojeva. Na početku na traci piše $i#sj, gdje su i i jcijeli brojevi zapisani u nekom formatu. Na kraju na traci ostaje $ij, dakle umnožak.

TR-III Turingovi strojevi 25

12.1 TS-evi kao pretvarači (1)

• Primjer 12.1. Sljededi TS prima kao ulaz unarni broj i dijeli ga s 2. Dakle reže niz ulaznih znakova 0 na pola.Ideja je da promijenimo prvu 0 u (na primjer) $ i da zatim pobrišemo zadnju 0. Nastavljamo isti postupak dok možemo.

TR-III Turingovi strojevi 26

12.1 TS-evi kao pretvarači (2)

Na kraju bismo znakove $ mogli vratiti u 0, no naš TS to ne radi. Ako ulaz ima neparnu duljinu, naš TS ga zaokružuje, dakle daje cjelobrojni rezultat dijeljenja s 2.

Page 14: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

14

• Funkcija f koja riječi pretvara u riječi naziva se Turing-izračunljiva (T-izračunljiva) ako postoji pretvarački TS M koji ju računa. Dakle M se uvijek zaustavlja te za ulaz w na traci ostavlja f(w) na traci.

• Mogu se promatrati i parcijalne funkcije koje nisu definirane za neke riječi. Tada odgovarajudi TS – pretvarač ne mora stati za svaki ulaz.

TR-III Turingovi strojevi 27

12.1 TS-evi kao pretvarači (3)

• Uzmimo da smo smislili neku varijantu TS koja se razlikuje od standardnog TS po tome što mu je dodano ili oduzeto neko svojstvo. Kako pokazati da se snaga stroja nije promijenila?– Ako smo oduzeli svojstvo, tada moramo pokazati da

okljaštreni TS još uvijek može simulirati rad standardnog TS.– Ako smo dodali svojstvo, tada moramo pokazati da

standardni TS može simulirati to svojstvo.

• Na primjer promatramo TS kojem smo zabranili mogudnost mirovanja glave nakon pisanja. Takav okljaštreni TS ekvivalentan je standardnom jer se mirovanje glave može simulirati tako da glavu pomaknemo udesno i zatim odmah vratimo ulijevo.

TR-III Turingovi strojevi 28

12.2 Dokazivanje ekvivalentnosti TS (1)

Page 15: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

15

• Što bi se desilo da TS-u dodamo nekoliko glava za čitanje? Ništa bitno. Naime standardni TS može simulirati višeglavi TS tako da na traku sprema položaje glava od višeglavog TS. Na primjer, standardni TS može svaku glavu prikazati novim znakom #1, #2, … Ako višeglavi TS ima dvije glave, to izgleda ovako:

TR-III Turingovi strojevi 29

12.2 Dokazivanje ekvivalentnosti TS (2)

Dakle uvodimo novo stanje x i postupamo ovako:

• Da bi simulirao jedan korak višeglavog TS, standardni TS prolazi duž cijelog zapisa na traci, pronalazi položaje glava i mijenja ih. Naravno, time se bitno usporava rad, no brzina nas ne zanima.

TR-III Turingovi strojevi 30

12.2 Dokazivanje ekvivalentnosti TS (3)

Page 16: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

16

• Rad TS-a je mukotrpan zato što on sve informacije mora pisati na istu traku.

• Rješavanje problema pomodu TS postaje znatno lakše i preglednije ako dopustimo da TS ima više traka ili bar više kanala na istoj traci.

• Pokazuje se da uvođenje više traka ili kanala opet ne mijenja računalnu snagu TS.

• Na primjer, zamislimo TS s jednom trakom i dva kanala.

TR-III Turingovi strojevi 31

12.3 TS s više traka ili kanala (1)

U svaku klijetku mogu se upisati dva znaka (gornjii donji).

Rad takvog TS lako možemo simulirati standardnim TS tako da uvedemo novi alfabet za traku – znakovi novog alfabeta su uređeni parovi starih znakova.

• Dalje zamislimo TS s nekoliko nezavisnih traka. Svakoj traci pristupa posebna glava.

TR-III Turingovi strojevi 32

12.3 TS s više traka ili kanala (2)

Page 17: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

17

• TS s više traka opet je ekvivalentan standardnom. To se može pokazati na više načina.– Prvi način je da pretvorimo TS s više traka u TS s

jednom višekanalnom trakom, a pozicije glava zapamtimo kao u prije razmatranom slučaju višeglavogTS.

– Drugi način je da sadržaje svih traka spremimo jednog do drugog na jednu traku i razdvojimo ih posebnim znakom. Zatim natjeramo standardni TS da šede od jednog do drugog sadržaja i obavlja posao svake glave zasebno.

TR-III Turingovi strojevi 33

12.3 TS s više traka ili kanala (3)

• Slično kao kod KA i PA, i kod TS bi mogli uvesti nedeterminizam. No pokazuje se da nedeterministički TS ima istu računalnu snagu kao deterministički.

• Kako bi izgledao nedeterministički TS (NTS)? To bi bio takav TS koji u svakom koraku ima više izbora za akciju.

• Definiramo da NTS prihvada riječ ako postoji izbor akcija koji vodi do prihvadajudeg stanja.

• Uvodimo pojam konfiguracije TS. To je cjeloviti zapis radne situacije stroja: njegovo stanje, sadržaj traka, položaji glava, itd.

• Teorem 12.1. Nedeterministički TS ima istu računalnu snagu kao standardni TS. Za svaki nedeterministički TS postoji ekvivalentni deterministički TS.

TR-III Turingovi strojevi 34

12.4 Nedeterminizam (1)

Page 18: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

18

• Ideja dokaza. Moramo pokazati da se NTS može simulirati pomodu običnog TS. Simulacija se sastoji od isprobavanja svih mogudih izbora.Računanje NTS može se prikazati kao stablo koje se grana u beskonačnost. Čvorovi tog stabla predstavljaju mogude konfiguracije od NTS, a djeca čvora odgovaraju mogudim idudim koracima stroja. NTS prihvada ulaz ako i samo ako postoji konačna grana u stablu koja vodi u neku prihvadajudukonfiguraciju.Simulacija NTS na TS ne smije slijediti isključivo jednu granu u stablu, jer bi se ta grana mogla nastavljati u beskonačnost.

TR-III Turingovi strojevi 35

12.4 Nedeterminizam (2)

Umjesto toga, simulator mora raditi “traženje s prvenstvom po širini” (breadth-first search). Dakle simulator čuva na traci veliki red (queue) čvorova čiju djecu još nije razmatrao. Simulator radi tako da skine čvor sa čela reda, vidi da li on predstavlja prihvadajudu konfiguraciju, ako ne onda generira djecu tog čvora i stavlja ih na začelje reda. Ako postoji grana koja dostiže prihvadajude stanje, naš simulator de to prije ili kasnije otkriti.

• Detaljni dokaz teorema gdje se koristi TS sa više traka može se nadi u knjizi Sipser, Poglavlje 3.2. Obavezno proučiti!

TR-III Turingovi strojevi 36

12.4 Nedeterminizam (3)

Page 19: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

19

• Na prvi pogled, TS je vrlo primitivan uređaj, znatno lošiji od stvarnog računala. – Na primjer, sekvencijalni pristup traci djeluje kao bitno

ograničenje. – No lako se može pokazati da to zapravo i nije ograničenje. – Naime, ako TS-u dodamo drugu traku gdje bilježimo adrese

klijetki na prvoj traci, možemo koristiti prvu traku kao memoriju s direktnim pristupom (RAM).

Korištenjem sličnih ideja vrlo brzo dolazimo do zaključka da se svaki program za stvarno računalo u načelu može prevesti u ekvivalentni TS.

• Tvrdnja. Turingov stroj može vjerno simulirati stvarno računalo.

TR-III Turingovi strojevi 37

12.5 Church-ova teza (1)

• Turing je uveo svoj model računanja 1936. godine. Taj model nastao je kao rezultat napora nekolicine tadašnjih matematičara da definiraju što znači “računanje” i što se uopde može izračunati. Osim Turinga, u tim naporima sudjelovali su i Kurt Goedel, Alonzo Church i Emil Post.

• Nakon 1936. godine, pa sve do danas, ljudi su predlagali mnoge druge modele računanja. No pokazalo se da svi oni imaju u najboljem slučaju istu snagu kao TS. To je dovelo do uvjerenja da vrijedi

• Church-ova teza: Postoji “djelatna procedura” za rješavanje nekog problema ako i samo ako postoji TS za taj problem.

TR-III Turingovi strojevi 38

12.5 Church-ova teza (2)

Page 20: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

20

• Church je u svojoj tezi koristio pojam “djelatna procedura” (effective procedure). Danas za istu svrhu koristimo pojam “algoritam”:

• Church-ova teza ne može se dokazati zato što pojam djelatne procedure ili algoritma ili stvarnog računala nije strogo definiran.

• Ustvari, apstraktni modeli računanja poput TS su izmišljeni zato da posluže kao stroga definicija algoritma.

TR-III Turingovi strojevi 39

12.5 Church-ova teza (3)

• Do sada smo za svaki problem konstruirali posebni TS. To je isto kao kad bismo u stvarnom svijetu za svaku aplikaciju kupovali novo računalo koje u svom hardveru ima fiksiran odgovarajudi algoritam.

• No mogude je definirati i fleksibilniji TS koji predstavlja točniji analogon programibilnog računala opde namjene.

• Univerzalni TS je TS koji je u stanju simulirati bilo koji drugi TS. Kao svoj ulaz, univerzalni TS uzima opis tog drugog TS-a i njegov ulaz. Kao svoj izlaz, univerzalni TS daje izlaz koji bi taj drugi TS dao na tom svom ulazu.

TR-III Turingovi strojevi 40

12.6 Univerzalni TS (1)

Page 21: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

21

• Da bi univerzalnom TS-u omogudili rad, moramo usvojiti neki način kodiranja običnog TS u obliku riječi. Jedan mogudi način je niz trojki koje opisuju funkciju prijelaza običnog TS.

• Univerzalni TS treba zamišljati kao TS s tri trake.– Prva traka čuva kodirani zapis TS-a kojeg treba simulirati i

njegov ulaz.– Druga traka je radna traka na kojoj se zbiva ono što bi se

zbivalo kod rada simuliranog TS-a.– Treda traka bilježi stanje u kojem se simulirani TS upravo

nalazi.

TR-III Turingovi strojevi 41

12.6 Univerzalni TS (2)

11. Standardni Turingovi strojevi

12. Varijante Turingovih strojeva

13. Odlučivi problemi i rekurzivni jezici

TR-III Turingovi strojevi 42

Sadržaj dijela III

Page 22: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

22

• Uz svaku vrstu apstraktnih strojeva veže se odgovarajuda klasa jezika.

• KA su prepoznavali regularne jezike a PA kontekstno-slobodne jezike. Uz TS-eve veže se klasa rekurzivnih jezika.

• Bududi da TS-evi modeliraju stvarna računala, rekurzivni jezici modeliraju odlučive probleme, dakle one probleme koji se mogu riješiti algoritmom.

• Moramo uzeti u obzir činjenicu da se TS ne mora zaustaviti za svaki ulaz. Zato razlikujemo “prave” rekurzivne i rekurzivno-prebrojive jezike.

TR-III Turingovi strojevi 43

13.0 O čemu je riječ u ovom poglavlju

• Jezik je rekurzivno prebrojiv ako postoji TS koji ga prepoznaje. Jezik je rekurzivan ako postoji TS koji ga prepoznaje i koji se zaustavlja na svakom ulazu.

• Neki autori rekurzivno prebrojivi jezik zovu Turing-prepoznatljivi jezik, a rekurzivni jezik zovu Turing-odlučivi jezik.

• Očito je svaki regularni jezik rekurzivan. Vidjet demo da isto vrijedi i za kontekstno-slobodne jezike.

• U daljnjim poglavljima pokazat de se da postoje mnogi jezici koji su rekurzivno prebrojivi no nisu rekurzivni.

• Također de se pokazati da postoje mnogi jezici koji nisu ni rekurzivno prebrojivi.

TR-III Turingovi strojevi 44

13.1 Rekurzivni i rek prebrojivi jezici (1)

Page 23: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

23

• Teorem 13.1. (a) Skup rekurzivno prebrojivih jezika je zatvoren s obzirom na uniju i presjek. (b) Skup rekurzivnih jezika je zatvoren s obzirom na uniju i presjek.

• Dokaz za (a). Pretpostavimo da su jezici L1 i L2

rekurzivno prebrojivi i da ih prepoznaju TS-evi M1

odnosno M2. Stroj za L1 L2 dobiva se simuliranjem paralelnog rada strojeva M1 i M2 – ulazna riječ je u uniji ako i samo ako se bar jedan od strojeva M1 i M2

zaustavlja u prihvadajudem stanju.

TR-III Turingovi strojevi 45

13.1 Rekurzivni i rek prebrojivi jezici (2)

Slična ideja radi i za L1 L2 – ulazna riječ je u presjeku ako i samo ako se oba stroja M1 i M2 zaustavljaju u prihvadajudem stanju.Primijetimo da je nužno paralelno izvođenje M1 i M2 . Naime u slučaju sekvencijalnog izvođenja moglo bi se desiti da M1 ne stane pa M2 nikad ne bi došao na red.

• Dokaz za (b). Analogno kao (a), ali još lakše. Čak nije potreban paralelni rad jer strojevi uvijek staju.

• Teorem 13.2. Jezik je rekurzivan ako i samo ako su i on i njegov komplement rekurzivno prebrojivi.

TR-III Turingovi strojevi 46

13.1 Rekurzivni i rek prebrojivi jezici (3)

Page 24: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

24

• Dokaz teorema. Prvi smjer. Ako je L rekurzivan jezik, tada postoji TS koji prepoznaje L i zaustavlja se na svakom ulazu. Uzmimo taj TS i zamijenimo njegova prihvadajuda i odbacujuda stanja, Time smo dobili TS koji prepoznaje komplement LC, što znači da je LC

rekurzivno prebrojiv.Drugi smjer. Pretpostavimo da su L i LC rekurzivno prebrojivi. Dakle svaki od njih ima svoj TS. Za zadanu riječ pokrenimo oba stroja paralelno. Bar jedan od strojeva de se zaustaviti pa demo dobiti odgovor da li je riječ u L ili u LC. Paralelno izvođenje dvaju strojeva shvatimo kao novi TS koji prepoznaje L i uvijek se zaustavlja.

TR-III Turingovi strojevi 47

13.1 Rekurzivni i rek prebrojivi jezici (4)

• Rekurzivno prebrojivi jezici mogu se na još jedan način karakterizirati pomodu takozvanih Turingovihpisača.

• Turingov pisač (printer Turing Machine) – TP - je jedna varijanta TS. Riječ je o determinističkom TS kojem je dodana traka za ispis. TP ispisuje niz riječi na traku za ispis. Pritom su te riječi razdvojene nekim posebnim znakom, na primjer Δ. Nakon što je riječ ispisana, ona se više ne mijenja.

• Slijedi teorem koji otkriva razlog zašto su rekurzivno prebrojivi jezici dobili svoje ime.

TR-III Turingovi strojevi 48

13.2 Odnos jezika i Turingovih pisača (1)

Page 25: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

25

• Teorem 13.3. Jezik je rekurzivno prebrojiv ako i samo ako postoji TP koji ispisuje točno riječi iz tog jezika.

• Dokaz teorema. Prvi smjer. Ako imamo TP M za jezik L, tada možemo sagraditi standardni TS N za L na sljededi način. Za ulaz x stroj N pokrede M i gleda njegov ispis. Ako ikad u tom ispisu naiđe na x, Nprihvada x. Dakle N prihvada riječi iz L a ne zaustavlja se za ostale riječi.Drugi smjer. Ako imamo standardni TS N za L, tada možemo sagraditi TP M za L na sljededi način. Ideja je da pokredemo N paralelno za svaku mogudu riječ.

TR-III Turingovi strojevi 49

13.2 Odnos jezika i Turingovih pisača (2)

No treba smisliti način kako da paralelno obavimo beskonačni broj poslova i postignemo da se svi oni kad-tad izvrše.TP M mora raditi u ciklusima. U ciklusu i stroj Mgenerira prvih i riječi u leksikografskom poretku, pokrede N na svakoj od tih riječi no izvršavajudi samo po i koraka, te ispisuje sve riječi koje su bile prihvadene. Prije ili kasnije, svaka riječ iz L bit de generirana i N de raditi dovoljno dugo da ju prihvati, pa de se takva riječ pojaviti u ispisu.

TR-III Turingovi strojevi 50

13.2 Odnos jezika i Turingovih pisača (3)

Page 26: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

26

• Jezici su tijesno povezani s problemima koji imaju oblik pitanja s odgovorom da/ne. Takvi problemi nazivaju se problemi odlučivanja.

• Za zadani problem odlučivanja možemo sagraditi jezik tako da uzmemo sve primjerke problema gdje je odgovor “da”. Pritom sam primjerak problema moramo nekako kodirati u obliku riječi.

• Kažemo da je problem odlučivanja odlučiv ako je njemu pripadajudi jezik rekurzivan. Dakle problem je odlučivako i samo ako za njega postoji program na računalu koji se zaustavlja za svaki mogudi skup ulaznih podataka i daje ispravan odgovor da/ne.

TR-III Turingovi strojevi 51

13.3 Odlučivi problemi (1)

• U nastavku raspravljamo o odlučivosti raznih pitanja vezanih uz apstraktne strojeve, gramatike i jezike koje smo do sada proučavali.

• U tu svrhu pretpostavljamo da postoji standardni postupak kodiranja stroja ili gramatike, dakle postupak zapisivanje građe stroja ili gramatike u obliku riječi.

• Ako imamo stroj A, kod za taj stroj označavamo s <A>. Slična oznaka se koristi i za kod gramatike.

• Nije važno kako izgleda postupak kodiranja, važno je samo da je taj postupak fiksiran i da je on reverzibilan.

TR-III Turingovi strojevi 52

13.3 Odlučivi problemi (2)

Page 27: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

27

• Na primjer, za stroj A lako dobijemo <A>, i obratno, na osnovu <A> lako i jednoznačno rekonstruiramo A.

• Postupak kodiranja za strojeve može se zasnivati na zapisivanju elemenata iz formalne definicije, ili na programu u programskom jeziku koji simulira taj stroj,...

• Notacija sa šiljastim zagradama proširuje se na prirodan način. Na primjer:– <A,B> označava kod za par strojeva A i B, tako da se oba stroja

mogu rekonstruirati iz tog koda.– <A,w> označava kod stroja A proširen s riječi w. Opet se i A i w

mogu rekonstruirati iz koda.– <G,w> je kod gramatike G proširen s riječi w. Oba elementa

se mogu rekonstruirati, i tako dalje.TR-III Turingovi strojevi 53

13.3 Odlučivi problemi (3)

• Relativno je lako odgovoriti na pitanja vezana uz regularne jezike. O tome nam govori teorem.

• Teorem 13.4. Sljededi jezici su rekurzivni.a) AKA = { <M,w> | M je KA koji prihvada w },b) EKA = { <M> | M je KA s praznim jezikom },c) EQKA = { <A, B> | A i B su KA-i takvi da je L(A) = L(B) }.

• Ovi jezici odgovaraju ovakvim problemima odlučivanja:a) Problem prihvadanja: Neka je M bilo koji KA a w bilo koja

riječ. Da li M prihvada w?b) Problem praznog jezika. Neka je M bilo koji KA. Da li je jezik

kojeg prepoznaje M prazan?c) Problem ekvivalencije. Neka su A i B bilo koji KA-i. Da li A i B

prepoznaju isti jezik?

TR-III Turingovi strojevi 54

13.4 Odlučivi problemi za jedn modele (1)

Page 28: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

28

• Dokaz teorema. Za svaki od slučajeva a), b) i c) gradimo TS čiji prvi posao je da provjeri da li ulaz ima ispravnu sintaksu. Ako nema, TS ga odbacuje. Inače TS prelazi na glavni dio posla.– U slučaju a) TS simulira rad zadanog KA M na zadanoj riječi w.– U slučaju b) treba provjeriti da li na dijagramu za M postoji

put od polaznog stanja do nekog prihvadajudeg stanja. Naš TS implementira neki od algoritama za ispitivanje povezanosti grafa (breadth-first-search ili depth-first search).

– U slučaju c) mogli bi konstruirati KA za prepoznavanje simetrične razlike jezika od A i B. Zatim bismo za taj KA provjeravali kao u b) da li je njegov jezik prazan.

TR-III Turingovi strojevi 55

13.4 Odlučivi problemi za jedn modele (2)

U konstrukciji KA za simetričnu razliku služimo se formulom:Δ (L(A), L(B)) = (L(A) – L(B)) (L(B) – L(A)).Pritom se KA za običnu skupovnu razliku može dobiti primjenom de Morganovih zakona, na primjer:L(A) – L(B) = ( L(A)C L(B) )C .DKA za komplement lako se dobiva zamjenom prihvadajudihi odbacujudih stanja.KA za uniju može se dobiti pomodu nedeterminizma.

• Dalje imamo pitanja vezana uz kontekstno slobodne jezike.

TR-III Turingovi strojevi 56

13.4 Odlučivi problemi za jedn modele (3)

Page 29: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

29

• Teorem 13.5. Sljededi jezici su rekurzivni.a) AKSG = { <G,w> | G je KSG a w je riječ koju G generira },b) Bilo koji kontekstno slobodni jezik generiran nekom

kontekstno slobodnom gramatikom G.c) EKSG = { <G> | G je KSG koja generira prazni jezik } .

• Ovi jezici odgovaraju ovakvim problemima odlučivanja:a) Problem prihvadanja: Neka je G bilo koja KSG a w bilo

koja riječ. Da li G može generirati w?c) Problem praznog jezika. Neka je G bilo koja KSG. Da li je

jezik kojeg generira G prazan?

TR-III Turingovi strojevi 57

13.4 Odlučivi problemi za jedn modele (4)

• Dokaz teorema (skica). a) Napravimo TS koji najprije zadanu gramatiku G

prebaci u Chomsky-jevu normalnu formu, a zatim ispituje sve izvode duljine 2n-1, gdje je n duljina zadane riječi w. Ako se u tim izvodima pojavi w, TS prihvada ulaz <G, w>, inače ga odbacuje.

b) Slično kao a). Zadanu gramatiku G najprije prebacimo u Chomsky-jevu normalnu formu. Zatim napravimo TS koji prima kao ulaz samo riječ w i za fiksirani G ispituje sve izvode duljine 2n-1 gdje je nduljina od w. Ako se u tim izvodima pojavi w, TS prihvada ulaz w, inače ga odbacuje.

TR-III Turingovi strojevi 58

13.4 Odlučivi problemi za jedn modele (5)

Page 30: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

30

c) Prema Poglavlju 8 postoji algoritam koji u zadanoj KSG G pronalazi upotrebljive varijable, dakle varijable koje mogu proizvesti neki niz terminala. Napravimo TS koji implementira taj algoritam. Ako za zadani G skup upotrebljivih varijabli ispadne prazan, tada TS prihvada ulaz <G>, inače ga odbacuje.

• No nisu sva pitanja vezana uz KSG odlučiva. Na primjer, provjera da li zadana KSG može generirati svaku mogudu riječ je neodlučiv problem. Dakle jezikTKSG = { <G> | G je KSG i L(G) = Σ* }nije rekurzivan. Ovaj rezultat dokazan je u Knjizi Sipser, Poglavlje 5.1. Obavezno proučiti!

TR-III Turingovi strojevi 59

13.4 Odlučivi problemi za jedn modele (6)

• U prethodnim poglavljima definirali smo pojam konfiguracije nekog stroja. To je zapis koji jednoznačno određuje stanje i sadržaj memorije tog stroja u nekom trenutku.

• Na primjer, konfiguracija standardnog TS može se zapisati kao tL S tR, gdje je tL upotrebljeni sadržaj trake lijevo od glave, S je trenutno stanje, a tR je upotrebljeni sadržaj trake ispod glave i desno od nje.

• U slučaju determinističkog stroja ponavljanje iste konfiguracije tijekom računanja znači da je stroj ušao u beskonačnu petlju.

TR-III Turingovi strojevi 60

13.5 Odlučivi prob vezani uz računanje (1)

Page 31: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

31

• Opis računanja (computation string) za stroj M tijekom prihvadanja riječi w je niz konfiguracija od početka do kraja rada M na w. Te konfiguracije su zapisane jedna do druge i razdvojene nekim separatorom, npr $.

• Teorem 13.6. Za bilo koji stroj (čak i nedeterministički) problem određivanja da li zadani tekst predstavlja valjani opis računanja tog stroja je odlučiv problem.

• Ideja dokaza. Redom provjeravamo sve konfiguracije. – Provjerimo da je prva konfiguracija ispravna i da odgovara

zadanom ulazu. – Provjeravamo da li se svaka daljnja konfiguracija može izvesti

iz prethodne poštujudi pravila rada tog stroja. – Provjerimo da li je zadnja konfiguracija prihvadajuda.

TR-III Turingovi strojevi 61

13.5 Odlučivi prob vezani uz računanje (2)

• U Poglavlju 8 uveli smo Chomsky-jevu hijerarhiju gramatika odnosno jezika sa četiri razine. Donje dvije razine mogli smo povezati s jednostavnijim modelima računanja.

• Sad je došlo vrijeme da gornje razine Chomsky-jevehijerarhije povežemo s jačim modelima računanja.

• Teorem 13.7. Jezik je generiran nekom neograničenom gramatikom ako i samo ako je on rekurzivno prebrojiv.

• Dokaz teorema: ima u knjizi Linz.TR-III Turingovi strojevi 62

13.6 Mjesto rekurzivnih jezika uChomsky-jevoj hijerarhiji (1)

Page 32: Dio III: Turingovi strojevi - unizg.hrweb.studenti.math.pmf.unizg.hr/~manger/tr/TR-III.pdf27.4.2011. 1 Dio III: Turingovi strojevi Robert Manger, ožujak 2011 Sveučilište u Osijeku,

27.4.2011.

32

• Postoji i model računanja za kontekstno-osjetljive gramatike. On se zove linearno ograđeni automat (linearly bounded automaton) – LOA. Riječ je o TS s jednom trakom čija glava ne smije izadi iz dijela trake na kojem je stajao ulaz.

• Teorem 13.8. Jezik je generiran nekom kontekstno-osjetljivom gramatikom ako i samo ga prepoznaje neki nedeterministički LOA.

• Dokaz teorema: također ima u knjizi Linz.

TR-III Turingovi strojevi 63

13.6 Mjesto rekurzivnih jezika uChomsky-jevoj hijerarhiji (2)