Turingovy stroje. Teoretická informatika Tomáš Foltýnek

Podobné dokumenty
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Formální jazyky a automaty Petr Šimeček

Formální jazyky a gramatiky Teorie programovacích jazyků

Vztah jazyků Chomskeho hierarchie a jazyků TS

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

Univerzální Turingův stroj a Nedeterministický Turingův stroj

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

Automaty a gramatiky. Uzávěrové vlastnosti v kostce R J BKJ DBKJ. Roman Barták, KTIML. Kvocienty s regulárním jazykem

Vlastnosti regulárních jazyků

Naproti tomu gramatika je vlastně soupis pravidel, jak

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

Čísla značí použité pravidlo, šipka směr postupu Analýza shora. Analýza zdola A 2 B 3 B * C 2 C ( A ) 1 a A + B. A Derivace zleva:

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39

Třída PTIME a třída NPTIME. NP-úplnost.

Syntaxí řízený překlad

Základy teoretické informatiky Formální jazyky a automaty

AUTOMATY A GRAMATIKY

Fakulta informačních technologií. Teoretická informatika

Matematická analýza 1

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.

/1: Teoretická informatika(ti) přednáška 4

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Složitost Filip Hlásek

Konečný automat Teorie programovacích jazyků

Automaty a gramatiky

ZÁKLADY TEORETICKÉ INFORMATIKY

2 Formální jazyky a gramatiky

Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy

Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/31

TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Jednoznačné a nejednoznačné gramatiky

Úvod do informatiky. Miroslav Kolařík

Teoretická informatika TIN 2013/2014

Turingovy stroje. Turingovy stroje 1 p.1/28

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20

Teoretická informatika - Úkol č.1

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS MASTER S THESIS AUTHOR

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

Učební texty k státní bakalářské zkoušce Programování Základy teoretické informatiky. študenti MFF 15. augusta 2008

Co je to univerzální algebra?

Automaty a gramatiky. Roman Barták, KTIML. Separované gramatiky. Kontextové gramatiky. Chomského hierarchie

Teoretická informatika

Množiny, relace, zobrazení

Vysoké učení technické v Brně Fakulta informačních technologií. Gramatiky nad volnými grupami Petr Blatný

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

ALGEBRA. Téma 4: Grupy, okruhy a pole

(viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu.

Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

Patří-li do množiny A právě prvky a, b, c, d, budeme zapisovat A = {a, b, c, d}.

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27

Bezkontextové gramatiky nad volnými grupami

Teorie množin. pro fajnšmekry - TeMno. Lenka Macálková BR Solutions Orličky. Lenka (Brkos 2010) TeMno

Úlohy k procvičování textu o svazech

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

Teoretická informatika TIN

UČEBNÍ TEXTY VYSOKÝCH ŠKOL. Prof. RNDr. Milan Češka, CSc. Gramatiky a jazyky

Naproti tomu gramatika je vlastně soupis pravidel, jak

Teoretická informatika průběh výuky v semestru 1

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

grupa těleso podgrupa konečné těleso polynomy komutativní generovaná prvkem, cyklická, řád prvku charakteristika tělesa

Návrh algoritmů pro sémantické akce při výstavbě interpretu metodou rekurzivního sestupu

Syntaxí řízený překlad

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

Třídy složitosti P a NP, NP-úplnost

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

0. ÚVOD - matematické symboly, značení,

ZÁPADOČESKÁ UNIVERZITA V PLZNI

Predikátová logika. Teoretická informatika Tomáš Foltýnek

Úvod do informatiky. Miroslav Kolařík

Teoretická informatika průběh výuky v semestru 1

Bezkontextové gramatiky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května / 49

Matematika B101MA1, B101MA2

Aplikovaná matematika I, NMAF071

Teoretická informatika Tomáš Foltýnek Teorie čísel Nekonečno

Matematika I (KMI/5MAT1)

Množiny, základní číselné množiny, množinové operace

Lineární algebra : Lineární prostor

SYNTAKTICKÁ ANALÝZA ZALOŽENÁ NA GRAMATICKÝCH A AUTOMATOVÝCH SYSTÉMECH PARSING BASED ON GRAMMAR AND AUTOMATA SYSTEMS

Báze konečněrozměrných vektorových prostorů, lineární zobrazení vektorových prostorů

Matematická analýza pro informatiky I.

Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63

Operace s maticemi. 19. února 2018

/01: Teoretická informatika(ti) přednáška 5

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

Lineární algebra : Násobení matic a inverzní matice

PŘEDNÁŠKA 2 POSLOUPNOSTI

Bezkontextové jazyky 3/3. Bezkontextové jazyky 3 p.1/27

Transkript:

Turingovy stroje Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz

Teoretická informatika strana 2 Opakování z minulé přednášky Jaké znáte algebraické struktury s jednou operací? Co je to okruh, obor integrity, těleso? Co je to homomorfismus, vnoření a izomorfismus? Co je to polynom? Nad jakou algebraickou strukturou se tvoří? Co nám říká základní věta algebry?

Teoretická informatika 3 Osnova dnešní a zítřejší přednášky Opakování Definice jazyka a gramatiky Chomského hierarchie jazyků Regulární jazyky a konečné automaty Bezkontextové jazyky a zásobníkové automaty Popis Turingova stroje Definice, konfigurace, krok výpočtu Jazyky a problémy Rekursivní a rekursivně spočetné jazyky Rozhodnutelnost problémů Výpočet funkcí pomocí TS Varianty TS Vícepáskový TS Nedeterministický TS Konstrukce TS Uzávěrové vlastnosti rekursivních a rekursivně spočetných jazyků

Teoretická informatika 4 Opakování: Abeceda a jazyk Abecedou rozumíme libovolnou konečnou množinu Σ, jejíž prvky nazýváme znaky Slovo (řetězec) nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy Délku slova w značíme w Prázdné slovo značíme ε Množinu všech slov nad abecedou Σ značíme Σ * Na množině všech slov zavádíme asociativní operaci (zřetězení) Na základě zřetězení definujeme i-tou mocninu slova w takto: w 0 = ε w i+1 = w w i Jazyk je libovolná podmnožina Σ * tedy libovolná množina slov nad abecedou Σ

Teoretická informatika strana 5 Opakování: Operace nad jazyky Nechť L 1, L 2 jsou jazyky nad abecedou Σ. Sjednocením jazyků L 1 L 2 = {w w L 1 w L 2 } Totéž jako množinové sjednocení Obsahuje slova z prvního i druhého jazyka L 1 L 2 = {w w L 1 w L 2 } Totéž jako množinový průnik Obsahuje slova patřící do obou jazyků současně L 1 L 2 = {w w = uv, u L 1 v L 2 } Obsahuje slova tvořící zřetězení slov z prvního jazyka se slovy z druhého jazyka Analogicky jako u slov definujeme i-tou mocninu jazyka L 1 * = {w w = u*, u L 1 } Doplněk jazyka L1: co-l 1 = Σ * L 1

Teoretická informatika 6 Opakování: Gramatika Gramatika G je čtveřice (N, Σ, P, S), kde N je konečná neprázdná množina neterminálních symbolů Σ je konečná množina terminálních symbolů disjunktní s množinou N P (N Σ)*N(N Σ)* (N Σ)* je konečná množina přepisovacích pravidel přepisovací pravidla obvykle zapisujeme ve tvaru α β, kde α musí obsahovat alespoň jeden neterminál. S N je počáteční symbol (též kořen gramatiky) Na množině (N Σ)* definujeme relaci odvození G a její reflexivní a tranzitivní uzávěr G * Pak definujeme jazyk generovaný gramatikou G jako množinu všech slov odvoditelných z počátečního symbolu Tedy L(G) = {w w Σ *, S G * w}

Teoretická informatika 7 Opakování: Chomského hierarchie gramatik a jazyků Typ 0: Na tvar pravidel nejsou kladeny žádné omezující požadavky Frázové gramatiky Typ 1: Pro každé pravidlo α β platí, že α β s eventuelní výjimkou pravidla S ε, pokud se S nevyskytuje na pravé straně žádného pravidla Kontextové gramatiky Typ 2: Každé pravidlo je tvaru A α, kde α 1 s eventuelní výjimkou pravidla S ε, pokud se S nevyskytuje na pravé straně žádného pravidla Bezkontextové gramatiky Typ3: Každé pravidlo je tvaru A ab nebo A a s eventuelní výjimkou pravidla S ε, pokud se S nevyskytuje na pravé straně žádného pravidla Regulární gramatiky

Teoretická informatika 8 Opakování: Konečné automaty Konečný automat je pětice M = (Q, Σ, δ, q 0, F), kde Q je neprázdná množina vnitřních stavů Σ je konečná množina vstupních symbolů nazývaná též abeceda δ: Q Σ Q je přechodová funkce F Q je neprázdná množina koncových stavů Jazyk akceptovaný KA M je množina všech slov, pod kterými automat přejde do některého z koncových stavů L(M) = {w δ^(q 0,w) F} δ^ je rozšířená přechodová funkce definovaná induktivně vzhledem k délce slova Nedeterministický konečný automat Automat s ε-kroky

Teoretická informatika 9 Opakování: Regulární výrazy Třída regulárních jazyků nad abecedou Σ, označovaná jako R(Σ) je definována induktivně:, {ε}, {a} pro každé a Σ je regulární jazyk nad Σ Jsou-li K, L regulární jazyky nad Σ, pak i K L, K L a K* jsou regulární jazyky nad Σ Nic jiného není regulární jazyk nad Σ Kleeneho věta: Libovolný jazyk je regulární právě tehdy, když je rozpoznatelný konečným automatem

Teoretická informatika 10 Opakování: Bezkontextové jazyky Nechť G = (N, Σ, P, S) je CFG. Pak pro každé slovo z L(G) existuje derivační strom v gramatice G takový, že: S je kořen derivačního stromu Každý uzel má návěští, které je symbolem z N Σ {ε} Návěští následníků každého uzlu odpovídají symbolům z použitého přepisovacího pravidla Zřetězením návěští listů dostaneme odvozené slovo

Teoretická informatika 11 Opakování: Zásobníkové automaty I. Nedeterministický zásobníkový automat (PDA) je sedmice M = (Q, Σ, Γ, δ, q 0, Z 0, F), kde Q je konečná množina vnitřních stavů Σ je konečná množina vstupních symbolů Γ je konečná množina zásobníkových symbolů δ: Q (Σ ε) Γ P fin (Q Γ * ) je přechodová funkce q 0 Q je počáteční stav Z 0 Γ je počáteční symbol v zásobníku F Q je množina koncových stavů

Teoretická informatika strana 12 Opakování: Zásobníkové automaty II. Konfigurace PDA M je libovolný prvek (q, w, γ) Q Γ * q je momentální stav w je dosud nepřečtená část vstupního slova γ je obsah zásobníku Počáteční konfigurace PDA M je (q 0, w, Z 0 ) Krok výpočtu je relace na množině všech konfigurací označovaná symbolem M a definovaná (p, aw, Zα) M (q, w, γα) (q,γ) δ(p,a,z) pro a Σ {ε} Reflexivní a tranzitivní uzávěr relace M značíme symbolem M *

Teoretická informatika 13 Opakování: Zásobníkové automaty III. Jazyk rozpoznávaný konečným stavem PDA M L(M) = {w (q 0, w, Z 0 ) M (q f, ε, α) } Jazyk rozpoznávaný prázdným zásobníkem PAD M L(M) = {w (q 0, w, Z 0 ) M (q, ε, ε) } Oba způsoby akceptování jsou ekvivalentní

Teoretická informatika 14 Syntaktická analýza Ke každé CFG G lze sestrojit PDA M takový, že L(G) = L(M) Ke každému PDA M existuje CFG G taková, že L(M) = L(G) Nedeterministická syntaktická analýza shora dolů simulace odvozovacích pravidel Nedeterministická syntaktická analýza zdola nahoru budování pravé větné formy jako zřetězení obsahu zásobníku a dosud nepřečteného vstupu

Teoretická informatika 15 Definice Turingova stroje Turingův stroj je devítice M = (Q, Σ, Γ,,, δ, q 0, q A, q R ), kde Q je konečná množina vnitřních stavů Σ je konečná množina vstupních symbolů Σ, Σ Γ je konečná množina páskových symbolů Σ Γ, Γ, Γ (Γ Σ) je počáteční symbol pásky (Γ Σ) je prázdný symbol δ: (Q {q A, q R }) Γ Q Γ {L,R} je přechodová funkce q 0 Q je počáteční stav q A Q je koncový akceptující stav q R Q je koncový zamítající stav

Teoretická informatika 16 Výpočet Turingova stroje I. Turingův stroj čte symboly ze vstupní pásky Na základě vnitřního stavu a čteného symbolu TS podle přechodové funkce změní svůj vnitřní stav zapíše na pásku nový symbol posune čtecí hlavu doleva, nebo doprava Vstupní páska je jednosměrně nekonečná Zaplněno je vždy jen konečně mnoho políček Ostatní políčka obsahují prázdný symbol Výpočet TS končí, jestliže se stroj dostane do některého ze stavů q A, q R.

Teoretická informatika 17 Konfigurace Turingova stroje Konfigurace je jednoznačně určena vnitřním stavem obsahem pásky pozicí čtecí hlavy Konfiguraci tedy lze popsat trojicí K = (δ Q, γ Γ *, n) Q Γ * N 0 Počáteční konfigurace počáteční stav na pásce je vstupní slovo čtecí hlava se nachází na počátečním políčku pásky

Teoretická informatika 18 Akceptující a zamítající konfigurace Výpočet TS končí, dostane-li se do některého ze stavů q A, q R. Akceptující konfigurace je tedy konfigurace tvaru (q A, γ, n) Zamítající konfigurace je pak konfigurace tvaru (q R, γ, n)

Teoretická informatika 19 Krok výpočtu TS Na množině všech konfigurací TS definujeme binární relaci krok výpočtu označovanou M (p, γ, n) M { (q, s n b (γ), n+1) pro δ(p,γ n ) = (q,b,r) (q, s n b (γ), n-1) pro δ(p,γ n ) = (q,b,l) Reflexivní a tranzitivní uzávěr relace M značíme M * a definujeme jako k-násobný součin relace M pro všechna k N 0

Teoretická informatika 20 Výpočet Turingova stroje II. Výpočet TS je posloupnost konfigurací K 0, K 1, K 2, K 0 je počáteční konfigurace TS K i M K i+1 i 0 Výpočet může být buď konečný, nebo nekonečný. Je-li konečný, pak poslední konfigurací ve výpočtu je akceptující, nebo zamítající konfigurace.

Teoretická informatika 21 Akceptuje, zamítá, cyklí Řekneme, že TS M daný vstupní řetězec w Σ * akceptuje, jestliže výpočet M je konečný a poslední konfigurace je akceptující, tedy (q 0, w *, 0) M * (q A, z, n) zamítá, jestliže výpočet M je konečný a poslední konfigurace je zamítající, tedy (q 0, w *, 0) M * (q R, z, n) Řekneme, že TS M pro daný vstupní řetězec w Σ * cyklí, jestliže výpočet TS M na slově w je nekonečný. Jestliže TS M dané slovo w akceptuje, nebo zamítá, pak říkáme, že nad daným slovem zastaví. TS, který zastaví pro každý vstup, se nazývá úplný.

Teoretická informatika 22 Jazyk akceptovaný a rozhodovaný TS Jazyk akceptovaný TS M označujeme L(M) a definujeme jako množinu slov, které TS M akceptuje: L(M) = {w Σ * M akceptuje w} Je-li M navíc úplný TS, říkáme, že M rozhoduje jazyk L.

Teoretická informatika 23 Příklad Navrhněte TS rozhodující jazyk L = {a n b n c n n >= 0}

Teoretická informatika 24 Rekursivní a rekursivně spočetné jazyky Jazyk L Σ * nazýváme rekursivně spočetný právě tehdy, když L = L(M) pro nějaký TS M rekursivní právě tehdy, když L = L(M) pro nějaký úplný TS M Tedy Ke každému rekursivnímu jazyku existuje TS, který jej rozhoduje, tj. jeho výpočet je konečný Ke každému rekursivně spočetnému jazyku musí existovat TS, který akceptuje každé slovo w L, ale pro slova nepatřící do L buď zamítá, nebo cyklí.

Teoretická informatika 25 Rozhodnutelnost problémů Problém určit, zda řetězec w má vlastnost P, nazýváme rozhodnutelný právě tehdy, když množina všech řetězců majících vlastnost P je rekursivní tj. existuje TS akceptující každé slovo mající vlastnost P a zamítající každé slovo nemající vlastnost P částečně rozhodnutelný právě tehdy, když množina řetězců majících vlastnost P je rekursivně spočetná tj. existuje TS akceptující každé slovo mající vlastnost P a zamítající nebo cyklící nad každým slovem, které vlastnost P nemá nerozhodnutelný právě tehdy, když není rozhodnutelný, ani částečně rozhodnutelný

Teoretická informatika 26 Ekvivalence jazyků a problémů Problém určit, zda řetězec w má vlastnost P je rozhodnutelný Vlastnost P je rozhodnutelná Problém P je rozhodnutelný P je rozhodnutelný jazyk {w w má vlastnost P} je rekursivní L je rekursivní problém w L je rozhodnutelný P je částečně rozhodnutelný jazyk {w w má vlastnost P} je rekursivně spočetný L je rekursivně spočetný problém w L je částečně rozhodnutelný

Teoretická informatika strana 27 Výpočet funkcí pomocí TS Doposud jsme se zabývali pouze tím, v jakém stavu TS skončí (skončí-li) bez ohledu na stav pásky v koncové konfiguraci Řekneme, že TS M počítá funkci f:n 0 k N 0 právě tehdy, když akceptuje každé vstupní slovo tvaru vstupní páska na konci výpočtu obsahuje řetězec Funkce f:n 0 k N 0 se nazývá částečně rekursivní právě tehdy, když existuje TS M počítající funkci f rekursivní právě tehdy, když existuje úplný TS M počítající funkci f

Teoretická informatika 28 Příklad Navrhněte TS počítající součet a součin dvou čísel zapsaných v unární soustavě

Teoretická informatika 29 Vícepáskový TS Uvažujme TS, který má namísto jedné pásky k pásek, k N na každé pásce je samostatná čtecí hlava. Otázka: Existují jazyky akceptované/ rozhodované tímto strojem, které nejsou akceptované/rozhodované jednopáskovým TS? Jinými slovy: Je vícepáskový TS mocnější než jednopáskový TS? Příklad: Navrhněte TS rozhodující, zda dané číslo, napsané na vstupní pásce v binární soustavě, je prvočíslo či nikoliv.

Teoretická informatika 30 Nedeterministický TS I. Nedeterministický Turingův stroj je devítice M = (Q, Σ, Γ,,, δ, q 0, q A, q R ), kde Q je konečná množina vnitřních stavů Σ je konečná množina vstupních symbolů Σ, Σ Γ je konečná množina páskových symbolů Σ Γ, Γ, Γ (Γ Σ) je počáteční symbol pásky (Γ Σ) je prázdný symbol δ: (Q {q A, q R }) Γ 2 Q Γ {L,R} je přechodová funkce q 0 Q je počáteční stav q A Q je koncový akceptující stav q R Q je koncový zamítající stav

Teoretická informatika 31 Nedeterministický TS II. Nedeterministický TS může mít v každém kroku na výběr několik možností Podobně jako u DTS definujeme i u NTS relaci krok výpočtu předpisem (p, γ, n) M * { (q, s n b (γ), n+1) pokud (q,b,r) δ(p,γ n ) (q, s n b (γ), n-1) pokud (q,b,l) δ(p,γ n ) Všechny možnosti výpočtu TS lze popsat stromem (tzv. výpočtový strom), jehož uzly jsou konfigurace, kořen je počáteční konfigurace a listy jsou koncové konfigurace.

Teoretická informatika 32 Simulace NTS pomocí DTS Pro každý NTS N existuje DTS D takový, že L(N) = L(D) Stroj D, který bude simulovat výpočet stroje N, musí prozkoumat všechny možné výpočty stroje N Musí tedy prohledat výpočtový strom stroje N Stroj D bude mít 3 pásky 1. bude obsahovat vstupní slovo a její obsah se nebude v průběhu výpočtu měnit 2. bude sloužit k simulaci aktuálního výpočtu stroje N 3. bude obsahovat informace o dosud prozkoumaných možnostech výpočtu stroje N posloupnost přirozených čísel; pro každý stav určují, kolikátý následník byl zvolen Narazí-li D v průběhu výpočtu na akceptující/zamítající konfiguraci stroje N, pak akceptuje/zamítá Pokud stroj N při všech výpočtech cyklí, bude cyklit i stroj D.

Teoretická informatika 33 Stroj se dvěma zásobníky Představme si TS, který má namísto vstupní pásky dva zásobníky Zásobník S 1 obsahuje vše, co je od čtecí hlavy nalevo Zásobník S 2 obsahuje vše, co je od čtecí hlavy napravo a na vrcholu má právě čtený symbol Počáteční konfigurace: S 1 je prázdný S 2 obsahuje vstupní řetězec Krok výpočtu Posun hlavy doleva: push(s 2, pop(s 1 )) Posun hlavy doprava: push (S 1, pop(s 2 )) Výpočetně ekvivalentní Používá se při implementaci TS

Teoretická informatika 34 Připomenutí: Souvislosti Konečný automat nemá žádnou paměť rozpoznává regulární jazyky Zásobníkový automat má jeden zásobník rozpoznává bezkontextové jazyky Turingův stroj má dva zásobníky rozpoznává jazyky typu 0

Teoretická informatika 35 Metody konstrukce TS Zapamatování v řídicí jednotce Navrhněte TS rozhodující jazyk L = {xux x {a,b}, u {a,b} * } {a,b} Tedy jazyk všech slov, které začínají a končí stejným symbolem Označování symbolů Navrhněte TS rozhodující jazyk L = {w w \in {a} *, w = 2 n, n 1} Tedy jazyk všech slov nad jednoprvkovou abecedou, jejichž délka je mocninou dvojky Používání více pásek

Teoretická informatika 36 Vlastnosti rekursivních a rekursivně spočetných jazyků I. Třídy rekursivních a rekurzivně spočetných jazyků jsou uzavřeny vzhledem k operacím,,, * Jinými slovy sjednocení rekursivních / rekursivně spočetných jazyků je opět rekursivní / rekursivně spočetný jazyk totéž platí pro průnik, zřetězení a iteraci Jak zkonstruovat TS akceptující / rozhodující zmíněné jazyky?

Teoretická informatika 37 Vlastnosti rekursivních a rekursivně spočetných jazyků II. Třída rekursivních jazyků je uzavřená vzhledem k operaci komplementu Nechť jazyk L i jeho komplement co-l jsou rekursivně spočetné. Pak jsou jazyky L i co-l rekursivní. Třída rekursivně spočetných jazyků není uzavřena vzhledem k operaci komplementu.