AUTOMATY A GRAMATIKY

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

Vlastnosti regulárních jazyků

Naproti tomu gramatika je vlastně soupis pravidel, jak

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 Σ

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

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

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

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

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

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

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

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

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Automaty a gramatiky. Organizační záležitosti. Přednáška: na webu ( Proč chodit na přednášku?

Teoretická informatika - Úkol č.1

Teoretická informatika

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

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

Teoretická informatika TIN 2013/2014

Matematická analýza 1

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

Vztah jazyků Chomskeho hierarchie a jazyků TS

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.

Syntaxí řízený překlad

Úvod do informatiky. Miroslav Kolařík

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

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

Formální systém výrokové logiky

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

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

Matematika I. Přednášky: Mgr. Radek Výrut, Zkouška:

Matematika B101MA1, B101MA2

PŘEDNÁŠKA 7 Kongruence svazů

2 Formální jazyky a gramatiky

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

Projekty - Úvod do funkcionální analýzy

Automaty a gramatiky

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

Doporučené příklady k Teorii množin, LS 2018/2019

Úvod do informatiky. Miroslav Kolařík

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

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 α

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

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

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

4. Trojúhelníkový rozklad p. 1/20

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

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

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

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

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.

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

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

Konečný automat Teorie programovacích jazyků

ZÁKLADY TEORETICKÉ INFORMATIKY

Výroková a predikátová logika - IV

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

Výroková logika. Teoretická informatika Tomáš Foltýnek

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

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015

Minimalizace KA - Úvod

Bakalářská matematika I

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

Teoretická informatika TIN

Výroková a predikátová logika - III

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

Studijnı opora k prˇedmeˇtu m teoreticke informatiky Petr Jancˇar 22. u nora 2005

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

ZÁPADOČESKÁ UNIVERZITA V PLZNI

Výroková a predikátová logika - V

H {{u, v} : u,v U u v }

NÁSTROJ PRO PRÁCI S BÜCHI AUTOMATY

Matematická logika. Miroslav Kolařík

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

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

Ekvivalence. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 5

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

Jan Březina. 7. března 2017

Jednoznačné a nejednoznačné gramatiky

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

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

Fakulta přírodovědně-humanitní a pedagogická. Okruhy otázek pro státní závěrečné zkoušky. Bakalářské studium

8 Přednáška z

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

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017

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

Výroková a predikátová logika - VIII

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

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

FI MU. Automaty nad nekonečnými slovy. Fakulta informatiky Masarykova univerzita. Učební text FI MU verze 1.0

Regulární a bezkontextové jazyky I.

Výroková a predikátová logika - VIII

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

Výroková a predikátová logika - II

Výroková a predikátová logika - XII

1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7

Konečný automat. Jan Kybic.

Transkript:

AUTOMATY A 1 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky

Stručný přehled přednášky Automaty Formální jazyky, operace Konečné automaty a jejich varianty Regulární jazyky, regulární výrazy Gramatiky Chomského hierarchie jazyků Bezkontextové a kontextové jazyky Uzávěrové vlastnosti Souvislosti Turingovy stroje Algoritmicky nerozhodnutelné problémy 2 Automaty a gramatiky

Historie Teorie formálních jazyků Počátky 50. léta pokus o popis nekonečných objektů konečnými prostředky 60. léta vyšší programovací jazyky syntaxe FORTRAN, ALGOL, PASCAL Biologické procesy (popis buňky) 40. léta umělý neuron, neuronová síť, celulární automat Výpočetní modely (theory of computation) snaha o formalizaci algoritmu Osobnosti Kleene, Post, Church, Turing, Markov, Huffmann, Shannon, von Neumann, McCulloch, Pitts, Chomsky 3 Automaty a gramatiky

Zdroje Původní John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, 2001. Jeffrey D. Ullman: Introduction to Automata and Complexity Theory, lecture notes. On-line: http://infolab.stanford.edu/~ullman, Stanford University, 2010. Jeffrey D. Ullman: Stanford Automata, video lecture. On-line: https://www.coursera.org/course/automata, Coursera, 2013. Tuzemské Pavel Surynek: Současná přednáška. On-line: http://ktiml.mff.cuni.cz/~surynek, od 2014. Roman Barták: Automaty a gramatiky, slidy. On-line: http://ktiml.mff.cuni.cz/~bartak, 2005-2013. Václav Koubek: Automaty a gramatiky, skripta. On-line: http://ktiml.mff.cuni.cz, 1996. Další zdroje M. Demlová, V. Koubek: Algebraická teorie automatů, SNTL Praha, 1990. M. Chytil: Teorie automatů a formálních jazyků, skripta, MFF UK. M. Chytil: Sbírka řešených příkladů z teorie automatů a formálních jazyků, skripta, MFF UK. 4 Automaty a gramatiky

Slova, jazyky Abeceda X konečná neprázdná množina symbolů Slovo konečná posloupnost prvků z X w = x 1 x 2 x n, kde n N 0 a x i X pro i = 1,2,, n n - délka slova, w = n prázdná posloupnost pro n = 0 prázdné slovo λ (někdy Λ nebo ε) X* - množina všech slov nad X X + - množina všech neprázdných slov nad X X + = X* {λ} Jazyk L nad abecedou X (libovolná) množina slov nad X L X*, tj. L P(X*) 5 Automaty a gramatiky Př.: X = {a, b, c} Př.: abbcaa, abbcaa = 6 Př.: L = {abc, abcc, abccc, } Pozn.: X* spočetná P(X*) nespočetná

Operace se slovy a jazyky Konkatenace zřetězení slov u,v X*, kde u = x 1 x 2 x n a v = y 1 y 2 y m u.v = x 1 x 2 x n y 1 y 2 y m Př.: u = abba, v = cba, pak u.v = abbacba Mocnina slova u X* u 0 = λ, u 1 = u, u i+1 = u.u i Prefix, sufix, zrcadlový obraz w X*, u X* je prefix w, jestliže v X*, že w = u.v w X*, u X* je sufix w, jestliže v X*, že w = v.u w X*, kde w = z 1 z 2 z n, pak w R = z n z n-1 z 1 je zrcadlový obraz w Množinové operace s jazyky K, L X* 6 Automaty a gramatiky K L, K L, K L (rozdíl), -L = X* L (doplněk) K/L pravý kvocient K podle L K/L = {u ( v L) u.v K} L\K levý kvocient K podle L L\K = {u ( v L) v.u K} Př.: w = abbcaa abb je prefix w bcaa je sufix w Př.: K = { 01w w {0,1}* } L = { 0w1 w {0,1}*} K/L = K {λ} L\K = {0, 1} *

Konečný automat Konečný automat A = (Q, X, δ, q 0, F) Q konečná neprázdná množina stavů X konečná neprázdná množina symbolů abeceda (prvky písmena) δ: Q X Q přechodová funkce q 0 Q počáteční stav F Q množina přijímajících stavů Výpočet automatu A nad w X* rozšířená přechodová funkce δ*: Q X* Q δ*(q, λ) = q δ*(q, wx) = δ(δ*(q, w), x) q Q q Q, x X, w X* slovo w je přijímáno automatem A, jestliže δ*(q 0, w) F L(A) = { w w X* a δ*(q 0, w) F} Regulární jazyk jazyk L se nazývá regulární, jestliže existuje konečný automat A, že L(A) = L 7 Automaty a gramatiky

Popis konečného automatu Stavový diagram (ohodnocený graf) vrcholy odpovídají stavům Q ohodnocené orientované hrany odpovídají přechodové funkci δ speciálně vyznačený počáteční stav q 0 a přijímající stavy F Tabulka řádky odpovídají stavům Q sloupce symbolům X místo na řádku q Q a ve sloupci x X obsahuje δ(q, x) vyznačení počátečního a přijímajících stavů A a δ(1,a) = 1 Př.: L(A) = {w {a,b}* w neobsahuje bb} b b 1 2 3 a A a b 1 1 2 2 1 3 3 3 3 a, b 8 Automaty a gramatiky

Výpočetní síla Charakterizace regulárních jazyků Kongruence Ekvivalence (tj. reflexivní, symetrická a tranzitivní relace) nad X* se nazývá pravá kongruence, jestliže: u, v, w X* u v uw vw rozkládá X* na třídy ekvivalence [u] - třída ekvivalence určená slovem u X* v X*, v [u], jestliže v u X*/ množina tříd rozkladu (tj. [u] X*/ ) je konečného indexu, jestliže rozkládá X* na konečně mnoho ekvivalenčních tříd Myhill-Nerodova věta Jazyk L lze přijímat konečným automatem, právě když existuje pravá kongruence konečného indexu, že L je sjednocením některých jejích tříd. 9 Automaty a gramatiky

Důkaz Myhill-Nerodovy věty máme KA A = (Q, X, δ, q 0, F), že L(A) = L pro u,v X* definujeme u v, jestliže δ*(q 0, u) = δ*(q 0, v) je ekvivalence, tj. má smysl uvažovat o X*/ Q je konečná X*/ je konečná u,v,w X* když δ*(q 0, u) = δ*(q 0, v), pak δ*(δ*(q 0, u), w) = δ*(δ*(q 0, v), w), tedy je pravá kongruence L(A) = { w w X* a δ*(q 0, w) F } = f F {w δ*(q 0, w)=f} máme pravou kongruenci položíme Q = X*/ q 0 = [λ] pro x X a w X* položíme δ([w], x) = [wx] pro u,v X* by mělo platit, že δ([u], x) = δ([v], x), pokud u v ux vx je vlastnost pravé kongruence, tedy [ux] = [vx] F = třídy z X*/ tvořící L w L, právě když [w] F δ*([λ], w) = [w], což je, právě když w L(A) 10 Automaty a gramatiky

Aplikace Myhill-Nerodovy věty Konstrukce konečného automatu L = {w w {0,1}* ( k N 0 ) w 1 =3k+1} definujeme u v, jestliže u 1 mod 3 = v 1 mod 3 jedná se o pravou kongruenci třídy [λ], [1], [11] L = [1] Důkaz neregularity jazyka L = {0 n 1 n n N 0 } předpokládejme, že L je regulární máme pravou kongruenci konečného indexu, nechť k je index L je sjednocením některých jejích tříd volme slova 0, 00,, 0 k, 0 k+1 existují i,j {1,, k+1}, i j, že 0 i 0 j přidáme 1 i, z vlastnosti pravé kongruence je 0 i 1 i 0 j 1 i 0 i 1 i L, ale 0 j 1 i L, přitom 0 i 1 i a 0 j 1 i jsou ve stejné ekvivalenční třídě A 0 1 0 1 [λ] [1] [11] 1 0 11 Automaty a gramatiky

Pumping (iterační) lemma Pumping lemma Nechť L je regulární jazyk, pak existuje n N, že libovolné slovo z L takové, že z n, lze napsat ve tvaru z=u.v.w, kde u.v n, v 1 a u.v i.w L pro všechna i N 0. Více logicky Nechť L je regulární jazyk, pak existuje n N, že ( z L)[ z n ( u,v,w X*)(z = u.v.w u.v n v 1 ( i N 0 )u.v i.w L)]. 12 Automaty a gramatiky

Důkaz pumping lemmatu Je-li L regulární, pak existuje KA A, že L(A) = L n = počet stavů automatu A výpočet nad slovem z, kde z n, navštíví některý stav aspoň dvakrát, nechť první takový stav je p při první návštěvě p byl přečten prefix u δ*(q 0, u) = p při druhé návštěvě p byl přečten prefix uv δ*(q 0, uv) = p uv n byl uvažován první opakující se stav v 1 návrat do p se uskutečnil čtením aspoň jednoho písmena δ*(q 0, uvw) = f F, pak δ*(q 0, uw) = f a δ*(q 0, uv i w) = f pro i = 2, 3, 13 Automaty a gramatiky

Použití pumping lemmatu Vyloučení, že daný jazyk L je regulární dívejme se na pumping lemma jako na implikaci regulární L pro L platí pravá strana lemmatu pro L neplatí pravá strana lemmatu L není regulární neplatí pravá pumping lemmatu využijeme logické vyjádření, vytvoříme negaci n N ( z L)[ z n ( u,v,w X*)((z = u.v.w u.v n v 1) ( i N 0 )u.v i.w L)]. L={0 k 1 k k N 0 } n (od nepřítele, tedy libovolné) pro n vezmeme slovo z = 0 n 1 n jistě 0 n 1 n n, pro libovolný rozklad splňující z = u.v.w u.v n v 1 je v = 0 j pro j N, j 1 zvolme i = 2 a dostáváme, že u.v 2.w = 0 n+j 1 n L Jedná se nutnou podmínku, nikoli postačující (lemma je implikace). L = {w {a,b,c}* w = a + b i c i w =b i c j } není regulární, pravá strana platí 14 Automaty a gramatiky