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

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

Syntaxí řízený překlad

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

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 Σ

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

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

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

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

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

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

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

Turingův stroj. Definice Formálně je Turingův stroj definován jako šestice

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.

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

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Automaty a gramatiky

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

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

Vztah jazyků Chomskeho hierarchie a jazyků TS

Jednoznačné a nejednoznačné gramatiky

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

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

Katedra počítačů FEL

Úvod do informatiky. Miroslav Kolařík

AUTOMATY A GRAMATIKY

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

Vlastnosti regulárních jazyků

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

Konečný automat Teorie programovacích jazyků

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

Teoretická informatika - Úkol č.1

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

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

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

Minimalizace KA - Úvod

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

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

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

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

Teoretická informatika TIN 2013/2014

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Konečný automat. Jan Kybic.

Turingovy stroje. Turingovy stroje 1 p.1/28

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.

Složitost Filip Hlásek

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

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

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

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

Hardwarová realizace konečných automatů

Teoretická informatika

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

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 α

ZÁKLADY TEORETICKÉ INFORMATIKY

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

Úvod do informatiky. Miroslav Kolařík

Lexikální analýza Teorie programovacích jazyků

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.

PŘEDNÁŠKA 2 POSLOUPNOSTI

Přijímací zkouška na navazující magisterské studium 2017

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.

Booleovy algebry. Irina Perfilieva. logo

Teoretická informatika

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

ZÁPADOČESKÁ UNIVERZITA V PLZNI

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

NP-úplnost a další. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

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

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

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 3. PREDNÁŠKA - KOMPAKTNÍ PROSTORY.

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

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

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

NP-úplnost. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 23. května / 32

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

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...

Automaty a gramatiky(bi-aag)

Logika a regulární jazyky

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

Deterministický konečný automat

1 Úvod. Formální jazyky a automaty, P. Savický, 6. leden

AUTOMATY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS

}w!"#$%&'()+,-./012345<ya

Vztah limity k aritmetickým operacím a uspořádání

Hledání v textu algoritmem Boyer Moore

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})

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

1) Sekvenční a paralelní gramatiky

Pod slovem automat si většina lidí představí automat na kávu. Jiným toto slovo


Referáty budou přiděleny v zásadě na prvním cvičení. Studenti, kteří to nestihnou, se musí urychleně přihlásit cvičícímu(třeba em).

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

Transkript:

ChtělibychomrozpoznávatjazykL={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ělí nám, zda toto slovo patřídojazykalčine. Při čtení a-ček si musíme pamatovat jejich počet, ať víme, kolik musí následovat b-ček

ChtělibychomrozpoznávatjazykL={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ělí nám, zda toto slovo patřídojazykalčine. Při čtení a-ček si musíme pamatovat jejich počet, ať víme, kolik musí následovat b-ček Můžeme využít paměť 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

SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b Z

SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b M

SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b M

SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b M

SlovoaaaabbbbpatřídojazykaL={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 M

SlovoaaaabbbnepatřídojazykaL={a i b i i 1} a a a a b b b Z

SlovoaaaabbbnepatřídojazykaL={a i b i i 1} a a a a b b b

SlovoaaaabbbnepatřídojazykaL={a i b i i 1} a a a a b b b

SlovoaaaabbbnepatřídojazykaL={a i b i i 1} a a a a b b b

SlovoaaaabbbnepatřídojazykaL={a i b i i 1} a a a a b b b

SlovoaaaabbbnepatřídojazykaL={a i b i i 1} a a a a b b b M

SlovoaaaabbbnepatřídojazykaL={a i b i i 1} a a a a b b b M

SlovoaaaabbbnepatřídojazykaL={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 M

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} a a a a b b b b b Z

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} a a a a b b b b b

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} a a a a b b b b b

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} a a a a b b b b b

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} a a a a b b b b b

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} a a a a b b b b b M

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} a a a a b b b b b M

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} a a a a b b b b b M

SlovoaaaabbbbbnepatřídojazykaL={a i b i i 1} Automatčteb,másmazatsymbolnazásobníkuatamžádný není, takže slovo nepřijal a a a a b b b b b NE M

SlovoaababbabnepatřídojazykaL={a i b i i 1} a a b a b b a b Z

SlovoaababbabnepatřídojazykaL={a i b i i 1} a a b a b b a b

SlovoaababbabnepatřídojazykaL={a i b i i 1} a a b a b b a b

SlovoaababbabnepatřídojazykaL={a i b i i 1} a a b a b b a b M

SlovoaababbabnepatřídojazykaL={a i b i i 1} Automatpřečetla,alejižbylvestavu,kdymaže,takžeslovo nepřijal a a b a b b a b NE M

vedený zásobníkový automat měl vždy jasně určeno pokračování- byl deterministický Je možné každý bezkontextový jazyk poznat deterministickým zásobníkovým automatem?

vedený zásobníkový automat měl vždy jasně určeno pokračování- byl deterministický Je možné každý bezkontextový jazyk poznat deterministickým zásobníkovým automatem? važujmejazykl={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í

SlovoabaabapatřídojazykaL={w(w) R w {a,b} } a b a a b a Z

SlovoabaabapatřídojazykaL={w(w) R w {a,b} } a b a a b a A

SlovoabaabapatřídojazykaL={w(w) R w {a,b} } a b a a b a B A

SlovoabaabapatřídojazykaL={w(w) R w {a,b} } Přičteníaautomatuhodne,žejezapolovinou,amísto uložení symbolu na zásobník jeden smaže. Musí změnit stav, aby si pamatoval, že začal mazat. a b a a b a A B A

SlovoabaabapatřídojazykaL={w(w) R w {a,b} } Přičteníaautomatuhodne,žejezapolovinou,amísto uložení symbolu na zásobník jeden smaže. Musí změnit stav, aby si pamatoval, že začal mazat. a b a a b a M B A

SlovoabaabapatřídojazykaL={w(w) R w {a,b} } Přičteníaautomatuhodne,žejezapolovinou,amísto uložení symbolu na zásobník jeden smaže. Musí změnit stav, aby si pamatoval, že začal mazat. a b a a b a M A

SlovoabaabapatřídojazykaL={w(w) R w {a,b} } Přičteníaautomatuhodne,žejezapolovinou,amísto uložení symbolu na zásobník jeden smaže. Musí změnit stav, aby si pamatoval, že začal mazat. a b a a b a ANO M

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } a b a a a a b a Z

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } a b a a a a b a A

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } a b a a a a b a B A

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } Proautomatnastalastejnásituace(stav,navstupua,na zásobníku ABA), kdy v předchozím příkladě začal mazat. K přijetí slova abaaaaba vede uložení symbolu na zásobník. a b a a a a b a A B A

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } Nyní se čtecí hlava nachází za polovinou slova, takže automat začne mazat symboly ze zásobníku. a b a a a a b a A A B A

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } Nyní se čtecí hlava nachází za polovinou slova, takže automat začne mazat symboly ze zásobníku. a b a a a a b a M A B A

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } Nyní se čtecí hlava nachází za polovinou slova, takže automat začne mazat symboly ze zásobníku. a b a a a a b a M B A

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } Nyní se čtecí hlava nachází za polovinou slova, takže automat začne mazat symboly ze zásobníku. a b a a a a b a M A

SlovoabaaaabapatřídojazykaL={w(w) R w {a,b} } Nyní se čtecí hlava nachází za polovinou slova, takže automat začne mazat symboly ze zásobníku. a b a a a a b a ANO M

vedený zásobníkový automat se nemůže jednoznačně rozhodnout,jakmápokračovat.musí uhádnout,kdeje půlka slova. Na rozdíl od konečných automatů je deterministická verze zásobníkových slabší a proto definujeme přímo nedeterministické. NapříkladprouvedenýjazykL={w(w) R w {a,b} } existuje nedeterministický zásobníkový automat(naznačen dříve), ale neexistuje žádný deterministický. Důkaz, že žádný takový automat neexistuje, je složitější, a proto jej neuvádíme. Větaonutnostihádatstředslovajejenmyšlenkou,nakteré důkaz staví, ale jako důkaz nestačí!

Definice 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 (Σ {ε}) Γ 2 (Q Γ ) je(nedeterministická) přechodová funkce q 0 Qjepočátečnístav Z 0 Γjepočátečnízásobníkovýsymbol