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

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

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

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

Syntaxí řízený překlad

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

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 Σ

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

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.

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

Čí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:

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

Vlastnosti regulárních jazyků

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Vztah jazyků Chomskeho hierarchie a jazyků TS

AUTOMATY A GRAMATIKY

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.

Automaty a gramatiky

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

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

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

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

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

Jednoznačné a nejednoznačné gramatiky

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

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

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

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

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března / 50

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

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

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

Teoretická informatika

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

Teoretická informatika TIN 2013/2014

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Teoretická informatika - Úkol č.1

Úvod do informatiky. Miroslav Kolařík

Konečný automat Teorie programovacích jazyků

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32

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

Úvod do informatiky. Miroslav Kolařík

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

Spojitost a limita funkce

Překladač sestrojující k regulárnímu výrazu ekvivalentní konečný automat Připomeňme si jednoznačnou gramatiku G pro jazyk RV({a, b})

Automaty a gramatiky. Roman Barták, KTIML. Chomského normální forma

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

Minimalizace KA - Úvod

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

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

Definice. Necht M = (Q, T, δ, q 0, F ) je konečný automat. Dvojici (q, w) Q T nazveme konfigurací konečného automatu M.

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

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

PŘEDNÁŠKA 2 POSLOUPNOSTI

NP-úplnost problému SAT

Matematická logika. Miroslav Kolařík

Na rozšiřující přednášce minulý týden jsme se věnovali zejména. algoritmu, který k zadanému konečnému automatu sestrojí ekvivalentní regulární výraz

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

Teoretická informatika

Lineární algebra Kapitola 1 - Základní matematické pojmy

ZÁKLADY TEORETICKÉ INFORMATIKY

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

Složitost Filip Hlásek

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 α

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

Automaty a gramatiky. Na zopakování X*/~ Roman Barták, KTIML. Iterační (pumping) lemma. Pravidelnost regulárních jazyků

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

EKO-KOLONIE. Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě 24.

PŘEDNÁŠKA 7 Kongruence svazů

1.3. Číselné množiny. Cíle. Průvodce studiem. Výklad

2. LIMITA A SPOJITOST FUNKCE

Poznámka. Kezkoušcejemožnojítjenposplněnípožadavkůkzápočtu. Kromě čistého papíru a psacích potřeb není povoleno používat žádné další pomůcky.

LIMITA A SPOJITOST FUNKCE

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

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Katedra počítačů FEL

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

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

2 Formální jazyky a gramatiky

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

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

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

Přednáška 11, 12. prosince Část 5: derivace funkce

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Modely Herbrandovské interpretace

Matematika 2 Úvod ZS09. KMA, PřF UP Olomouc. Jiří Fišer (KMA, PřF UP Olomouc) KMA MA2AA ZS09 1 / 25

Turingovy stroje. Turingovy stroje 1 p.1/28

Matematická analýza 1

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

Poznámka. Kezkoušcejemožnojítjenposplněnípožadavkůkzápočtu. Kromě čistého papíru a psacích potřeb není povoleno používat žádné další pomůcky.

Popište a na příkladu ilustrujte(rychlý) algoritmus testující, zda dané dva automaty jsou izomorfní.

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Úvod do teorie her

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

Konečný automat. Jan Kybic.

Množiny, relace, zobrazení

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Transkript:

Zásobníkové automaty Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 1/ 43

Zásobníkový automat Chtěli bychom rozpoznávat jazyk L = {a i b i i 1} Snažíme se navrhnout zařízení (podobné konečným automatům), které přečte slovo, a sděĺı nám, zda toto slovo patří do jazyka L či ne. Při čtení symbolů a si musíme pamatovat jejich počet, at víme, kolik musí následovat symbolů b. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 2/ 43

Zásobníkový automat Chtěli bychom rozpoznávat jazyk L = {a i b i i 1} Snažíme se navrhnout zařízení (podobné konečným automatům), které přečte slovo, a sděĺı nám, zda toto slovo patří do jazyka L či ne. Při čtení symbolů a si musíme pamatovat jejich počet, at víme, kolik musí následovat symbolů b. Můžeme využít pamět typu zásobník. Každé přečtené a si na zásobník zapíšeme, za každé přečtené b jeden symbol ze zásobníku odstraníme. Pokud bude zásobník prázdný a podaří se přečíst celé slovo, tak patří do jazyka. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 2/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} a a a a b b b b q 1 Z Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} a a a a b b b b q 1 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} a a a a b b b b q 1 I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} a a a a b b b b q 1 I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} a a a a b b b b q 1 I I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} a a a a b b b b q 2 I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} a a a a b b b b q 2 I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} a a a a b b b b q 2 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbbb patří do jazyka L = {a i b i i 1} Automat přečetl celé slovo a skončil s prázdným zásobníkem, takže slovo přijal. a a a a b b b b ANO q 2 Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 3/ 43

Zásobníkový automat Slovo aaaabbb nepatří do jazyka L = {a i b i i 1} a a a a b b b q 1 Z Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 4/ 43

Zásobníkový automat Slovo aaaabbb nepatří do jazyka L = {a i b i i 1} a a a a b b b q 1 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 4/ 43

Zásobníkový automat Slovo aaaabbb nepatří do jazyka L = {a i b i i 1} a a a a b b b q 1 I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 4/ 43

Zásobníkový automat Slovo aaaabbb nepatří do jazyka L = {a i b i i 1} a a a a b b b q 1 I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 4/ 43

Zásobníkový automat Slovo aaaabbb nepatří do jazyka L = {a i b i i 1} a a a a b b b q 1 I I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 4/ 43

Zásobníkový automat Slovo aaaabbb nepatří do jazyka L = {a i b i i 1} a a a a b b b q 2 I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 4/ 43

Zásobníkový automat Slovo aaaabbb nepatří do jazyka L = {a i b i i 1} a a a a b b b q 2 I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 4/ 43

Zásobníkový automat Slovo aaaabbb nepatří do jazyka L = {a i b i i 1} Automat přečetl celé slovo, ale nevyprázdnil zásobník, takže slovo nepřijal a a a a b b b NE q 2 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 4/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} a a a a b b b b b q 1 Z Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} a a a a b b b b b q 1 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} a a a a b b b b b q 1 I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} a a a a b b b b b q 1 I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} a a a a b b b b b q 1 I I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} a a a a b b b b b q 2 I I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} a a a a b b b b b q 2 I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} a a a a b b b b b q 2 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aaaabbbbb nepatří do jazyka L = {a i b i i 1} Automat čte b, má smazat symbol na zásobníku a tam žádný není, takže slovo nepřijal. a a a a b b b b b NE q 2 Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 5/ 43

Zásobníkový automat Slovo aababbab nepatří do jazyka L = {a i b i i 1} a a b a b b a b q 1 Z Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 6/ 43

Zásobníkový automat Slovo aababbab nepatří do jazyka L = {a i b i i 1} a a b a b b a b q 1 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 6/ 43

Zásobníkový automat Slovo aababbab nepatří do jazyka L = {a i b i i 1} a a b a b b a b q 1 I I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 6/ 43

Zásobníkový automat Slovo aababbab nepatří do jazyka L = {a i b i i 1} a a b a b b a b q 2 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 6/ 43

Zásobníkový automat Slovo aababbab nepatří do jazyka L = {a i b i i 1} Automat přečetl a, ale již byl ve stavu, kdy maže, takže slovo nepřijal. a a b a b b a b NE q 2 I Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 6/ 43

Zásobníkový automat Uvedený zásobníkový automat měl vždy jasně určen další krok byl deterministický. Zásobníkový automat může být nedeterministický. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 7/ 43

Zásobníkový automat Uvedený zásobníkový automat měl vždy jasně určen další krok byl deterministický. Zásobníkový automat může být nedeterministický. Příklad: Uvažujme jazyk L = {w(w) R w {a,b} }. První půlku slova můžeme uložit na zásobník. Při čtení druhé půlky mažeme symboly ze zásobníku, pokud jsou stejné jako na vstupu. Pokud bude zásobník prázdný po přečtení celého slova, byla druhá půlka stejná jako první. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 7/ 43

Zásobníkový automat Slovo abaaba patří do jazyka L = {w(w) R w {a,b} } a b a a b a q 1 Z Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 8/ 43

Zásobníkový automat Slovo abaaba patří do jazyka L = {w(w) R w {a,b} } a b a a b a q 1 A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 8/ 43

Zásobníkový automat Slovo abaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, musí změnit stav na q 2 a uložit A na zásobník a b a a b a q 1 B A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 8/ 43

Zásobníkový automat Slovo abaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, musí změnit stav na q 2 a uložit A na zásobník a b a a b a q 2 A B A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 8/ 43

Zásobníkový automat Slovo abaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, musí změnit stav na q 2 a uložit A na zásobník a b a a b a q 2 B A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 8/ 43

Zásobníkový automat Slovo abaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, musí změnit stav na q 2 a uložit A na zásobník a b a a b a q 2 A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 8/ 43

Zásobníkový automat Slovo abaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, musí změnit stav na q 2 a uložit A na zásobník a b a a b a ANO q 2 Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 8/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } a b a a a a b a q 1 Z Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } a b a a a a b a q 1 A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, nemění stav a uloží A na zásobník a b a a a a b a q 1 B A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, nemění stav a uloží A na zásobník a b a a a a b a q 1 A B A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, nemění stav a uloží A na zásobník a b a a a a b a q 2 A A B A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, nemění stav a uloží A na zásobník a b a a a a b a q 2 A B A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, nemění stav a uloží A na zásobník a b a a a a b a q 2 B A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, nemění stav a uloží A na zásobník a b a a a a b a q 2 A Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Slovo abaaaaba patří do jazyka L = {w(w) R w {a,b} } Při čtení a, stavu q 1 a vrcholu zásobníku B, nemění stav a uloží A na zásobník a b a a a a b a ANO q 2 Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 9/ 43

Zásobníkový automat Uvedený zásobníkový automat se nemůže jednoznačně rozhodnout, jak má pokračovat. Musí uhádnout, kde je půlka slova. Dá se dokázat, že neexistuje žádný deterministický zásobníkový automat rozpoznávající daný jazyk. Na rozdíl od konečných automatů je deterministická verze zásobníkových slabší než nedeterministická rozpoznává méně jazyků. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 10/ 43

Zásobníkový automat Definice Zásobníkový automat (ZA) je uspořádaná šestice M = (Q,Σ,Γ,δ,q 0,Z 0 ), kde Q je konečná neprázdná množina stavů Σ je konečná neprázdná množina zvaná vstupní abeceda Γ je konečná neprázdná množina zvaná zásobníková abeceda δ : Q (Σ {ε}) Γ P(Q Γ ) je (nedeterministická) přechodová funkce q 0 Q je počáteční stav Z 0 Γ je počáteční zásobníkový symbol Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 11/ 43

Zásobníkový automat Vezměme si zásobníkový automat M = (Q,Σ,Γ,δ,q 0,Z 0 ). Konfigurace automatu M: Konfigurace ZA je trojice (q,w,α) kde q Q, w Σ a α Γ. Konfiguraci (q 0,w,Z 0 ), kde w Σ, nazýváme počáteční. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 12/ 43

Zásobníkový automat Kroky vykonané automatem M: Binární relace na konfiguracích M reprezentuje možné kroky výpočtu, které může ZA M provést. To, že M může přejít jedním krokem z konfigurace (q,w,α) do konfigurace (q,w,α ), zapisujeme (q,w,α) (q,w,α ). Tato relace je definována následovně: (q,aw,xβ) (q,w,αβ) (q,α) δ(q,a,x) kde q,q Q, a (Σ {ε}), w Σ, X Γ, α,β Γ. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 13/ 43

Zásobníkový automat Výpočty M: Na konfiguracích M definujeme binární relaci jako reflexivní a tranzitivní uzávěr relace, tj., (q,w,α) (q,w,α ) jestliže existuje posloupnost konfigurací (q 0,w 0,α 0 ), (q 1,w 1,α 1 ),..., (q n,w n,α n ) taková, že (q,w,α) = (q 0,w 0,α 0 ), (q,w,α ) = (q n,w n,α n ), (q i,w i,α i ) (q i+1,w i+1,α i+1 ) pro každé i = 0,1,...,n 1, tj. (q 0,w 0,α 0 ) (q 1,w 1,α 1 ) (q n,w n,α n ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 14/ 43

Zásobníkový automat Používají se dvě různé definice toho, kdy automat přijímá dané slovo: Jestliže zásobníkový automat M přijímá prázdným zásobníkem, příjme slovo w tehdy, jestliže existuje výpočet automatu M nad slovem w takový, že automat přečte celé slovo w a po jeho přečtení má prázdný zásobník. Jestliže zásobníkový automat M přijímá pomocí přijímajících stavů, příjme slovo w tehdy, jestliže existuje výpočet automatu M nad slovem w takový, že automat přečte celé slovo w a po jeho přečtení je řídící jednotka automatu M v některém z přijímajících stavů z množiny F. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 15/ 43

Zásobníkový automat Slovo w Σ je přijímáno ZA M prázdným zásobníkem právě tehdy, když (q 0,w,Z 0 ) (q,ε,ε) pro nějaké q Q. Definice Jazyk L(M) přijímaný ZA M prázdným zásobníkem je definován jako množina všech slov přijímaných ZA M prázdným zásobníkem, tj. L(M) = {w Σ ( q Q)((q 0,w,Z 0 ) (q,ε,ε))}. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 16/ 43

Zásobníkový automat Rozšiřme definici ZA M o množinu přijímajících stavů F (kde F Q). Slovo w Σ je přijímáno ZA M přijímajícím stavem právě tehdy, když (q 0,w,Z 0 ) (q,ε,α) pro nějaké q F a α Γ. Definice Jazyk (M) přijímaný ZA M přijímajícím stavem je definován jako L(M) = {w Σ ( q F)( α Γ )((q 0,w,Z 0 ) (q,ε,α))}. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 17/ 43

Zásobníkový automat Příklad: L = {a i b i i 1} M = (Q,Σ,Γ,δ,q 1,Z), kde Q = {q 1,q 2 } Σ = {a,b} Γ = {Z,I} δ(q 1,a,Z) = {(q 1,I)} δ(q 1,b,Z) = δ(q 1,a,I) = {(q 1,II)} δ(q 1,b,I) = {(q 2,ε)} δ(q 2,a,I) = δ(q 2,b,I) = {(q 2,ε)} δ(q 2,a,Z) = δ(q 2,b,Z) = Poznámka: Často se uvádí jen ty přechody přechodové funkce, které nejsou do prázdné množiny, tedy kdy je skutečně nějaký přechod definován. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 18/ 43

Zásobníkový automat Pro zápis přechodové funkce budeme též používat způsob zápisu, kdy se na přechodovou funkci díváme jako na sadu pravidel: Každému q,q Q, a Σ {ε}, X Γ a α Γ, kde odpovídá jedno pravidlo (q,α) δ(q,a,x) qx a q α. Příklad: Pokud δ(q 5,b,C) = {(q 3,ACC), (q 5,BB), (q 13,ε)} můžeme to reprezentovat jako tři pravidla: q 5 C b q 3 ACC q 5 C b q 5 BB q 5 C b q 13 Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 19/ 43

Zásobníkový automat Příklad: Dříve popsaný zásobníkový automat rozpoznávající jazyk L = {a i b i i 1}: M = (Q,Σ,Γ,δ,q 1,Z), kde Q = {q 1,q 2 } Σ = {a,b} Γ = {Z,I} q 1 Z a q 1 I a q 1 I q 1 II b q 1 I q 2 b q 2 I q 2 Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 20/ 43

Zásobníkový automat Příklad: L = {w(w) R w {a,b} } M = (Q,Σ,Γ,δ,q 1,Z), kde Q = {q 1,q 2 } Σ = {a,b} Γ = {Z,A,B} δ(q 1,a,Z) = {(q 1,A)} δ(q 1,b,Z) = {(q 1,B)} δ(q 1,a,A) = {(q 1,AA),(q 2,AA)} δ(q 1,b,A) = {(q 1,BA),(q 2,BA)} δ(q 1,a,B) = {(q 1,AB),(q 2,AB)} δ(q 1,b,B) = {(q 1,BB),(q 2,BB)} δ(q 2,a,A) = {(q 2,ε)} δ(q 2,b,A) = δ(q 2,a,B) = δ(q 2,b,B) = {(q 2,ε)} δ(q 2,a,Z) = δ(q 2,b,Z) = δ(q 1,ε,Z) = {(q 1,ε)} δ(q 2,ε,Z) = δ(q 1,ε,A) = δ(q 2,ε,A) = δ(q 1,ε,B) = δ(q 2,ε,B) = Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 21/ 43

Zásobníkový automat Příklad: L = {w(w) R w {a,b} } M = (Q,Σ,Γ,δ,q 1,Z), kde Q = {q 1,q 2 } Σ = {a,b} Γ = {Z,A,B} q 1 Z a q 1 A q 1 A a q 1 AA q 1 A a q 2 AA q 1 B a q 1 AB q 1 B a q 2 AB q 2 A a q 2 q 1 Z ε q 1 q 1 Z b q 1 B q 1 A b q 1 BA q 1 A b q 2 BA q 1 B b q 1 BB q 1 B b q 2 BB q 2 B b q 2 Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 21/ 43

Zásobníkové automaty V případě nedeterministických zásobníkových automatů není z hlediska jazyků, jaké jsou schopny tyto automaty rozpoznávat, rozdíl mezi rozpoznáváním prázdným zásobníkem a rozpoznáváním přijímajícím stavem. Snadno sestrojíme: K danému (nedeterministickému) zásobníkovému automatu rozpoznávajícímu nějaký jazyk L prázdným zásobníkem ekvivalentní (nedeterministický) zásobníkový automat rozpoznávající jazyk L pomocí přijímajících stavů. K danému (nedeterministickému) zásobníkovému automatu rozpoznávajícímu nějaký jazyk L pomocí přijímajících stavů ekvivalentní (nedeterministický) zásobníkový automat rozpoznávající jazyk L prázdným zásobníkem. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 22/ 43

Deterministické zásobníkové automaty Zásobníkový automat M = (Q,Σ,Γ,δ,q 0,Z 0 ) je deterministický, jestliže: Pro každé q Q, a (Σ {ε}) a X Γ platí: δ(q,a,x) 1 Pro každé q Q a X Γ platí nejvýše jedna z následujících dvou možností: Existuje pravidlo qx ε q α pro nějaké q Q a α Γ. Existuje pravidlo qx a q α pro nějaké a Σ, q Q a α Γ. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 23/ 43

Deterministické zásobníkové automaty Všimněme si, že deterministické zásobníkové automaty přijímající prázdným zásobníkem jsou schopny rozpoznávat jen bezprefixové jazyky, tj. jazyky L, kde: pokud w L, pak neexistuje žádné slovo w L takové, že w je vlastním prefixem slova w. Poznámka: Místo jazyka L Σ, který může a nemusí být bezprefixový, můžeme vzít bezprefixový jazyk L = L { } nad abecedou Σ { }, kde Σ je speciální zarážka označující konec slova. Tj. místo zjišt ování, zda w L, kde w Σ, můžeme zjišt ovat, zda (w ) L. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 24/ 43

Deterministické zásobníkové automaty Ke každému deterministickému zásobníkovému automatu přijímajícímu prázdným zásobníkem je možné snadno sestrojit ekvivalentní deterministický zásobníkový automat přijímající pomocí přijímajících stavů. Ke každému deterministickému zásobníkovému automatu přijímajícímu jazyk L (kde L Σ ) pomocí přijímajících stavů je možné snadno sestrojit deterministický zásobníkový automat přimající prázdným zásobníkem jazyk L { }, kde Σ. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 25/ 43

Věta Ke každé bezkontextové gramatice G lze sestrojit nedeterministický zásobníkový automat M přijímající prázdným zásobníkem takový, že L(M) = L(G). Důkaz: Pro BG G = (Π,Σ,S,P) vytvoříme M = ({q 0 },Σ,Γ,δ,q 0,S), kde Γ = Π Σ Pro každé pravidlo (X α) P z bezkontextové gramatiky G (kde X Π a α (Π Σ) ) přidáme do přechodové funkce δ zásobníkového automatu M odpovídající pravidlo q 0 X ε q 0 α. Pro každý symbol a Σ přidáme do přechodové funkce δ zásobníkového automatu M pravidlo q 0 a a q 0. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 26/ 43

Příklad: Uvažujme bezkontextovou gramatiku G = (Π, Σ, S, P), kde Π = {S,E,T,F} Σ = {a,+,*,(,), } Množina P obsahuje následující pravidla: S E E T E+T T F T*F F a (E) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 27/ 43

K dané gramatice G = (Π,Σ,S,P) s pravidly S E E T E+T T F T*F F a (E) sestrojíme zásobníkový automat M = ({q 0 },Σ,Γ,δ,q 0,S), kde Σ = {a,+,*,(,), } Γ = {S,E,T,F,a,+,*,(,), } Přechodová funkce δ obsahuje následující pravidla: q 0S ε q 0E q 0E ε q 0T q 0E ε q 0T ε q 0F q 0T ε q 0T*F q 0F ε q 0a q 0a a q 0 q 0( ( q 0 q 0F ε q 0(E) q 0+ + q 0 q 0) ) q 0 q 0 q 0 q 0 q 0E+T q 0* * Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 28/ 43

q 0 S Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 E Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 T Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 T * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 F * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 ( E ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 E ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 E + T ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 T + T ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 F + T ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 a + T ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 + T ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 T ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 F ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 a ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 ) * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 ( E ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 E ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 E + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 T + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 T * F + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 F * F + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 a * F + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 * F + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 F + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 a + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 + T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 T ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 F ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

q 0 a ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 29/ 43

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

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

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

Z předchozího příkladu je vidět, že zásobníkový automat M během výpočtu v zásadě provádí levou derivaci v gramatice G. Snadno se ukáže, že: Každé levé derivaci v gramatice G odpovídá nějaký výpočet automatu M. Každému výpočtu automatu M odpovídá nějaká levá derivace v gramatice G. Poznámka: Výše uvedený postup odpovídá syntaktické analýze shora dolů. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 30/ 43

Alternativně lze při syntaktické analýze postupovat též zdola nahoru. Tomu odpovídá následující konstrukce nedeterministického zásobníkového automatu M = (Q,Σ,Γ,δ,q 0,Z 0 ) k dané gramatice G = (Π,Σ,S,P), kde: Γ = Π Σ { }, kde (Π Σ) Z 0 = Q obsahuje stavy odpovídající všem sufixům pravých stran pravidel z P a dále speciální stav S (kde S Π je počáteční neterminál gramatiky G) a speciální stav q acc. Stav odpovídající suffixu α (kde α (Π Σ) ) budeme označovat zápisem α. Speciálním případem je stav odpovídající sufixu ε. Tento stav budeme označovat. q 0 = Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 31/ 43

Pro každý vstupní symbol a Σ a každý zásobníkový symbol Z Γ přidáme do δ následující pravidlo: Z a az Pro každé pravidlo X Y 1 Y 2 Y n z gramatiky G (kde X Π, n 0 a Y i (Π Σ) pro 1 i n) přidáme do přechodové funkce δ automatu M následující sadu pravidel: ε Y n Y n ε Y n Y n 1 Y n 1 Y n ε Y n 1 Y n Y n 2 Y n 2 Y n 1 Y n. Y 2 Y 3...Y n Y 1 ε Y 1 Y 2 Y 3 Y n a dále pro každé Z Γ pravidla Y 1 Y 2 Y n Z ε XZ Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 32/ 43

Pokud například bude gramatika G obsahovat pravidlo B CaADb bude přechodová funkce δ automatu M obsahovat pravidla a dále pro každé Z Γ pravidlo b ε b b D ε Db Db A ε ADb ADb a ε aadb aadb C ε CaADb CaADb Z ε BZ Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 33/ 43

Speciálně pro ε-pravidla z gramatiky G budou přidaná pravidla vypadat následovně: ε-pravidlu X ε z gramatiky G, kde X Π, budou odpovídat pravidla v δ tvaru kde Z Γ. Z ε XZ Nakonec přidáme do δ dvě speciální pravidla (kde S Π je počáteční neterminál gramatiky G): S ε S S ε q acc Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 34/ 43

Příklad: Vezměme si opět stejnou gramatiku G jako v předchozím příkladě: S E E T E+T T F T*F F a (E) K ní sestrojíme zásobníkový automat M = (Q,Σ,Γ,δ,q 0,Z 0 ), kde Σ = {a,+,*,(,), } Γ = {S,E,T,F,a,+,*,(,),, } Q = {,, E, T, +T, E+T, F, *F, T*F, a, ), E), (E), S, q acc } q 0 = Z 0 = Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 35/ 43

Pro každé Z Γ přidáme do δ následující pravidla: Z a az Z + +Z Z * *Z Z ( (Z Z ) )Z Z Z S ε S S ε q acc ε E ε E T ε T T + ε +T +T E ε E+T F ε F F * ε *F *F T ε T*F a ε a ) ε ) ) E ε E) E) ( ε (E) E Z ε SZ T Z ε EZ E+T Z ε EZ F Z ε TZ T*F Z ε TZ a Z ε FZ (E) Z ε FZ Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 36/ 43

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

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

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

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

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

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

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

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

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

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

( E + a Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

a ( E + Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

( E + F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

F ( E + Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

( E + T Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T ( E + Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

+T ( E Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

E+T ( Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

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

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

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

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

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

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

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

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

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

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

T * ( a Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

a T * ( Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * ( F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

F T * ( Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

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

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

T * ( T * a Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

a T * ( T * Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * ( T * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

F T * ( T * Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

*F T * ( T Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T*F T * ( Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

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

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

T * ( E Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * ( E + Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * ( E + a Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

a T * ( E + Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * ( E + F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

F T * ( E + Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * ( E + T Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T T * ( E + Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

+T T * ( E Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

E+T T * ( Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * ( E Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * ( E ) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

) T * ( E Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

E) T * ( Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

(E) T * Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T * F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

F T * Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

*F T Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

T*F Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 37/ 43

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

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

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

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

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

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

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

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

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

Jak je vidět z předchozího příkladu, zásobníkový automat M v zásadě provádí pravou derivaci v gramatice G pozpátku. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 38/ 43

Věta Ke každému zásobníkovému automatu M s jedním stavem lze sestrojit bezkontextovou gramatiku G tž. L(G) = L(M). Důkaz: Pro ZA M = ({q 0 },Σ,Γ,δ,q 0,Z 0 ), kde Σ Γ =, vytvoříme BG G = (Γ,Σ,Z 0,P), kde (A aα) P (q 0,α) δ(q 0,a,A) pro každé A Γ, a Σ {ε}, α Γ. Indukcí můžeme dokázat Z 0 uα (v M) (q 0,u,Z 0 ) M (q 0,ε,α) (v G) kde u Σ a α Γ. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 39/ 43

Věta Ke každému zásobníkovému automatu M lze sestrojit zásobníkový automat M s jedním stavem tž. L(M ) = L(M). Myšlenka důkazu: Stav automatu M si budeme pamatovat na zásobníku. Pro δ(q,a,x) = {(q,ε)} musíme kontrolovat nejen, že jsme ve stavu q, ale také, že se dostaneme do stavu q. (Další případy jsou přímočaré.) Každý zásobníkový symbol automatu M je tedy trojice, kde si pamatujeme zásobníkový symbol, aktuální stav a aktuální stav ze symbolu o jedna níže na zásobníku. ZA M nedeterministicky hádá řídící stavy, do kterých se dostane M v okamžiku, kdy se daný zásobníkový symbol ocitne na vrcholu zásobníku. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 40/ 43

Tvrzení K libovolné bezkontextové gramatice G je možné sestrojit (nedeterministický) zásobníkový automat M takový, že L(G) = L(M). Tvrzení K libovolnému zásobníkovému automatu M je možné sestrojit bezkontextovou gramatiku G takovou, že L(M) = L(G). Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 41/ 43

Omezení bezkontextových jazyků Ani bezkontextové gramatiky a zásobníkové automaty nejsou dostatečně silné, aby se pomocí nich daly popsat všechny jazyky. Příklady jazyků, pro které se dá ukázat, že nejsou bezkontextové (tj. není možné vytvořit bezkontextovou gramatiku, která by je generovala): L 1 = {a i b i c i i 0} L 2 = {ww w {a,b} } Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 42/ 43

Pumping lemma pro bezkontextové jazyky Lemma Jestliže je jazyk L bezkontextový, pak existuje n N takové, že pro každé z L, kde z n, existují slova u,v,w,x,y Σ taková, že z = uvwxy, vx 1, vwx n, a pro všechna i N platí, že uv i wx i y L. Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 43/ 43

Pumping lemma pro bezkontextové jazyky Lemma Jestliže je jazyk L bezkontextový, pak existuje n N takové, že pro každé z L, kde z n, existují slova u,v,w,x,y Σ taková, že z = uvwxy, vx 1, vwx n, a pro všechna i N platí, že uv i wx i y L. Toto je opět možné formulovat jako hru: 1 Hráč I zvoĺı n N. 2 Hráč II zvoĺı slovo z L takové, že z n. 3 Hráč I zvoĺı slova u,v,w,x,y Σ taková, že z = uvwxy, vx 1, vwx n. 4 Hráč II zvoĺı i N. 5 Jestliže uv i wx i y L, pak vyhrál Hráč I, jinak vyhrál Hráč II. Jestliže je jazyk L bezkontextový, Hráč I má v této hře vyhrávající strategii. (Takže pokud má vyhrávající strategii Hráč II, tak jazyk L není bezkontextový.) Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 43/ 43