Automaty a gramatiky

Podobné dokumenty
Automaty a gramatiky. Úvod do formáln. lních gramatik. Roman Barták, KTIML. Příklady gramatik

Automaty a gramatiky(bi-aag)

Automaty a gramatiky

Je regulární? Pokud ne, na regulární ji upravte. V původní a nové gramatice odvod te řetěz 1111.

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

Automaty a gramatiky. Roman Barták, KTIML. Důkaz věty o isomorfismu reduktů. Věta o isomorfismu reduktů. Pro připomenutí

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

6. Zobrazení δ: (a) δ(q 0, x) obsahuje x i, x i Z. (b) δ(x i, y) obsahuje y j, x i y j P 7. Množina F je množinou koncových stavů.

Převody Regulárních Výrazů. Minimalizace Konečných. Regulární jazyky 2 p.1/35

Petriho sítě PES 2007/2008. Doc. Ing. Tomáš Vojnar, Ph.D.

Automaty a gramatiky

Minimalizace automatů. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 28. března / 31

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

4. přednáška 22. října Úplné metrické prostory. Metrický prostor (M, d) je úplný, když každá cauchyovská posloupnost bodů v M konverguje.

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

Teorie jazyků a automatů

LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU

56. ročník Matematické olympiády. b 1,2 = 27 ± c 2 25

VIII. Primitivní funkce a Riemannův integrál

Automaty a gramatiky. Trochu motivace. Roman Barták, KTIML. rní jazyky. Regulárn. Kleeneova věta. L = { w w=babau w=uabbv w=ubaa, u,v {a,b}* }

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

Hyperbola, jejíž střed S je totožný s počátkem soustavy souřadnic a jejíž hlavní osa je totožná

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

VIII. Primitivní funkce a Riemannův integrál

Teorie jazyků a automatů I

Úvod 1. 3 Regulární jazyky Konečné jazyky Pumping Lemma pro regulární jazyky a nekonečné jazyky Sjednocení...

Vztah jazyků Chomskeho hierarchie a jazyků TS

2.5.4 Věta. Každý jazyk reprezentovaný regulárním výrazem je regulárním jazykem.

+ c. n x ( ) ( ) f x dx ln f x c ) a. x x. dx = cotgx + c. A x. A x A arctgx + A x A c

Jsou to rovnice, které obsahují neznámou nebo výraz s neznámou jako argument logaritmické funkce.

Automaty a gramatiky. Pro připomenutí. Roman Barták, KTIML. Důkaz věty o dvousměrných automatech (1)

ANALYTICKÁ GEOMETRIE V PROSTORU

je jedna z orientací určena jeho parametrizací. Je to ta, pro kterou je počátečním bodem bod ϕ(a). Im k.b.(c ) ( C ) (C ) Obr Obr. 3.5.

Matice. a B =...,...,...,...,..., prvků z tělesa T (tímto. Definice: Soubor A = ( a. ...,..., ra

Úvod do Teoretické Informatiky ( UTI)

x + F F x F (x, f(x)).

Obecně: K dané funkci f hledáme funkci ϕ z dané množiny funkcí M, pro kterou v daných bodech x 0 < x 1 <... < x n. (δ ij... Kroneckerovo delta) (4)

Zavedení a vlastnosti reálných čísel PŘIROZENÁ, CELÁ A RACIONÁLNÍ ČÍSLA

OBECNÝ URČITÝ INTEGRÁL

( t) ( t) ( t) Nerovnice pro polorovinu. Předpoklady: 7306

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

písemná a ústní část porozumění látce + schopnost formalizace

2.1 - ( ) ( ) (020201) [ ] [ ]

KVADRATICKÁ FUNKCE (vlastnosti, grafy)

Integrální počet - III. část (určitý vlastní integrál)

Podobnosti trojúhelníků, goniometrické funkce

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

Přednáška 9: Limita a spojitost

4.4.3 Kosinová věta. Předpoklady:

MULTIDIMENSIONÁLNÍ JAZYKY A JEJICH AUTOMATY MULTI-DIMENSIONAL LANGUAGES AND THEIR AUTOMATA

3 Algebraické výrazy. 3.1 Mnohočleny Mnohočleny jsou zvláštním případem výrazů. Mnohočlen (polynom) proměnné je výraz tvaru

integrovat. Obecně lze ale říct, že pokud existuje určitý integrál funkce podle různých definic, má pro všechny takové definice stejnou hodnotu.

10. Suffixové stromy

6. Určitý integrál a jeho výpočet, aplikace

7. Integrální počet Primitivní funkce, Neurčitý integrál

INTEGRACE KOMPLEXNÍ FUNKCE KŘIVKOVÝ INTEGRÁL

8. cvičení z Matematiky 2

Integrál a jeho aplikace Tomáš Matoušek

Integrální počet - II. část (určitý integrál a jeho aplikace)

URČITÝ INTEGRÁL FUNKCE

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

Definice. Nechť k 0 celé, a < b R. Definujeme. x < 1. ϕ(x) 0 v R. Lemma [Slabá formulace diferenciální rovnice.] x 2 1

{ } ( ) ( ) Vztahy mezi kořeny a koeficienty kvadratické rovnice. Předpoklady: 2301, 2508, 2507

Komplexní čísla tedy násobíme jako dvojčleny s tím, že použijeme vztah i 2 = 1. = (a 1 + ia 2 )(b 1 ib 2 ) b b2 2.

2.8.5 Lineární nerovnice s parametrem

ZÁKLADY. y 1 + y 2 dx a. kde y je hledanou funkcí proměnné x.

ZÁKLADNÍ POZNATKY. p, kde ČÍSELNÉ MNOŽINY (OBORY) N... množina všech přirozených čísel: 1, 2, 3,, n,

Základy teorie matic

množina, na které je zavedena určitá struktura. Zejména, součet každých dvou prvků X = [x 1,..., x n ] R n,

4.4.1 Sinová věta. Předpoklady: Trigonometrie: řešení úloh o trojúhelnících.

Až dosud jsme se zabývali většinou reálnými posloupnostmi, tedy zobrazeními s definičním

Půjdu do kina Bude pršet Zajímavý film. Jedině poslední řádek tabulky vyhovuje splnění podmínky úvodního tvrzení.

DIGITÁLNÍ UČEBNÍ MATERIÁL. Název školy SOUpotravinářské, Jílové u Prahy, Šenflukova 220. Název materiálu VY_32_INOVACE / Matematika / 03/01 / 17

Přehled základních vzorců pro Matematiku 2 1

2.2.9 Grafické řešení rovnic a nerovnic

2 Formální jazyky a gramatiky

Teorie jazyků a automatů

Reprezentovatelnost částek ve dvoumincových systémech

a i,n+1 Maticový počet základní pojmy Matice je obdélníkové schéma tvaru a 11

Petr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)

Lineární nerovnice a jejich soustavy

10 Určitý integrál Riemannův integrál. Definice. Konečnou posloupnost {x j } n j=0 nazýváme dělením intervalu [a,b], jestliže platí

Větu o spojitosti a jejich užití

V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

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

Jednoznačné a nejednoznačné gramatiky

2. INTEGRÁLNÍ POČET FUNKCE JEDNÉ PROMĚNNÉ

je parciální derivace funkce f v bodě a podle druhé proměnné (obvykle říkáme proměnné

Integrální počet - IV. část (aplikace na určitý vlastní integrál, nevlastní integrál)

Spojitost funkce v bodě, spojitost funkce v intervalu

Riemannův určitý integrál.

Úlohy školní klauzurní části I. kola kategorie C

NEWTONŮV INTEGRÁL. V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

IB005 Formální jazyky a automaty a IB102 Automaty, gramatiky a složitost

1. LINEÁRNÍ ALGEBRA 1.1. Matice

4.2.1 Goniometrické funkce ostrého úhlu

Logaritmické rovnice I

( ) ( ) Sinová věta II. β je úhel z intervalu ( 0;π ). Jak je vidět z jednotkové kružnice, úhly, pro které platí. Předpoklady:

Geometrické a fyzikální aplikace určitého integrálu. = b a. je v intervalu a, b záporná, je integrál rovněž záporný.

Diferenciální počet. Spojitost funkce

Transkript:

Automty grmtiky Romn Brták, KTIML rtk@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~rtk Úvod do formálních grmtik Grmtiky, všichni je známe, le co to je? Popis jzyk pomocí prvidel, podle kterých se vytvářejí všechny řetězce dného jzyk. Původně pro popis přirozených jzyků <vět> <podmětná část> <přísudková část> Zdání syntxe vyšších progrmovcích jzyků od do Algolu 60 Bckus-Nurov normální form (BNF) <číslo> :== <číslo ez zn.> +<číslo ez zn.> -<číslo ez zn.> <číslo ez zn.> :== <číslice> <číslice><číslo ez znm>. <číslice> :== 0 2 3 4 5 6 7 8 9

Příkldy grmtik ) Grmtik správných uzávorkování V VV (V) () Výrz (()())(()) je generován posloupností přepisů: V VV (V)V (VV)V (()V)V (()())V (()())(V) (()())(()) 2) Grmtik generující všechny výrzy s opercemi + *, závorkmi jedinou konstntou c. V T+V T T F*T F F (V) c Výrz c+c*c+c je generován posloupností přepisů: V T+V F+V c+v c+t+v c+f*t+v c+c*t+v c+c*f+v c+c*c+v c+c*c+t c+c*c+f c+c*c+c Přepisovcí systémy - zákldní pojmy Přepisovcím (produkčním) systémem nzýváme dvojici R=(V,P), kde V - konečná eced P - konečná množin přepisovcích prvidel přepisovcí prvidlo (produkce) je uspořádná dvojice (u,v), kde u,v V* (zprvidl píšeme u v) Říkáme, že w se přímo přepíše n z (píšeme w z), jestliže: u,v,x,y V* tž. w=xuy, z=xvy (u v) P. Říkáme, že w se přepíše n z (píšeme w *z), jestliže: u,,u n V* w=u u 2... u n =z. Posloupnost u,,u n nzýváme odvozením (derivcí). Pokud i j u i u j, potom hovoříme o minimálním odvození. 2

Přepisovcí systémy Příkld: V = {0,} P = {0 0, 0 0} 000 * 000 dostneme z 000 000 000 000 * 000 dostneme z 000 000 000 liovolné slovo přepíše n liovolné jiné slovo (se stejným počtem výskytů 0 ) Produkční systémy slouží jko progrmovcí nástroj v UI progrm = systém produkcí dt = slov v ecedě OPS5, TOPS Constrint Hndling Rules (CHR) Definite Cluse Grmmrs (DCG) Formální (genertivní) grmtiky Genertivní grmtikou nzýváme čtveřici G=(V N,V T,S,P): V N - konečná množin neterminálních symolů V T - konečná množin terminálních symolů oě ecedy jsou neprázdné disjunktní! S V N -počáteční neterminální symol P - systém produkcí u v, kde u,v (V N V T )* u oshuje lespoň jeden neterminální symol. Jzyk L(G) generovný grmtikou G definujeme tkto: L(G) = {w w V T * & S *w}. Grmtiky G G 2 jsou ekvivlentní, jestliže L(G )=L(G 2 ). Příkld: G = ({S},{0,},S,{S 0S,S 0}), L(G) = {0 i i i } 3

Chomského hierrchie Klsifikce grmtik podle tvru přepisovcích prvidel. grmtiky typu 0 (rekurzivně spočetné jzyky L 0 ) prvidl v oecné formě grmtiky typu (kontextové jzyky L ) pouze prvidl ve tvru αxβ αwβ, X V N, α,β (V N V T )*, w (V N V T ) + jedinou výjimkou je prvidlo S λ, potom se le S nevyskytuje n prvé strně žádného prvidl grmtiky typu 2 (ezkontextové jzyky L 2 ) pouze prvidl ve tvru X w, X V N, w (V N V T )* grmtiky typu 3 (regulární/prvé lineární jzyky L 3 ) pouze prvidl ve tvru X wy, X w, X,Y V N, w V T * Uspořádnost Chomského hierrchie Chomského hierrchie definuje uspořádání tříd jzyků: L 0 L L 2 L 3 Dokonce vlstní podmnožiny (později): L 0 L L 2 L 3 L 0 L (rekurzivně spočetné jzyky zhrnují kontextové jzyky) oecná prvidl prvidl tvru αxβ αwβ L 2 L 3 (ezkontextové jzyky zhrnují regulární jzyky) X w, w (V N V T )* X wy, X w, Y V N, w V T * L L 2 (kontextové jzyky zhrnují ezkontextové jzyky) αxβ αwβ, w >0 vs. X w w 0 prolém s prvidly tvru X λ Můžeme z ezkontextových grmtik vyřdit prvidl X λ? 4

Nevypouštějící ezkontextové grmtiky Bezkontextová grmtik G je nevypouštějící právě tehdy, když nemá prvidl ve tvru X λ. Vět: Ke kždé ezkontextové grmtice G existuje nevypouštějící ezkontextová grmtik G tková, že L(G ) = L(G) - {λ} (jzyky se liší mximálně o prázdné slovo). Je-li λ L(G), potom existuje BKG G 2 tk, že L(G 2 ) = L(G) jediné prvidlo s λ n prvé strně je S λ S (počáteční neterminál) se nevyskytuje n prvé strně žádného prvidl G 2 (tedy L L 2 ). Příkld: G: S 0S λ G :S 0S 0 G 2 : S S λ, S 0S 0 Převod n nevypouštějící BKG ne, jk se zvit prvidel ve tvru X λ? Zákldní myšlenk: - prvidlo X λ se používá pro vyhození X ze slov - co když X do slov vůec nezřdíme?, Y uxv, X λ,, Y uv, ) Nejprve zjistíme neterminály, které se přepisují n λ: U = {X X V N & X *λ} Proč tk silně (nestčilo y X λ místo X *λ)? Řešení derivcí X X Y Y Y Z Z Z λ λ Iterční lgoritmus pro získání U: U = {X X V N & (X λ) P} přímý přepis U i+ = {X X V N & (X w) P, w U i *} přepis po i+ krocích U U 2 V N + stilizce ( k U k = U k+ = ) + U=U k 5

Převod n nevypouštějící BKG - pokrčování 2) Úprv prvidel do P dáme prvidl tvru X u tková, že: u λ v P je prvidlo X v Y v 2 v m Y m v m+, Y i U, v i ((V N -U) V T )* u vzniká z (v Y v 2 v m Y m v m+ ) vypuštěním některých (všech, žádného) symolů Y i. 3) Ještě L(G ) = L(G) - {λ} zřejmé: G je nevypouštějící BKG, L(G ) L(G), λ L(G ) nechť w L(G) w λ, tj. S *w, pokud se použilo prvidlo z P-P, pk má tvr X λ v derivci před ním muselo ýt užito prvidlo Y uxv uděláme novou derivci s Y uv ez X λ 4) Zývá situce λ L(G) G 2 = (V N {S },V T,S,P {S λ, S S}) Příkld - nevypouštějící BKG S Sc A A Ac λ ) Nejprve zjistíme neterminály, které se přepisují n λ: U = {A,S} 2) Uprvíme prvidl: S Sc A S c (vzniklo z S Sc vypuštěním S) A Ac (prvidlo A λ nepřevádíme) A c (vzniklo z A Ac vypuštěním A) Původní grmtik přijímá jzyk { i j c k i+j=k}. Převedená grmtik přijímá jzyk { i j c k i+j=k, k>0}. 6

Chomského hierrchie grmtiky typu 0 (rekurzivně spočetné jzyky L 0 ) prvidl v oecné formě grmtiky typu (kontextové jzyky L ) pouze prvidl ve tvru αxβ αwβ, X V N, α,β (V N V T )*, w (V N V T ) + jedinou výjimkou je prvidlo S λ, potom se le S nevyskytuje n prvé strně žádného prvidl grmtiky typu 2 (ezkontextové jzyky L 2 ) pouze prvidl ve tvru X w, X V N, w (V N V T )* grmtiky typu 3 (regulární/prvé lineární jzyky L 3 ) pouze prvidl ve tvru X wy, X w, X,Y V N, w V T * Grmtiky typu 3 regulární jzyky pouze prvidl ve tvru X wy, X w, X,Y V N, w V T * Podívejme se n derivce generovné grmtikmi typu 3 P: S 0S A λ, A 0A B, B 0B S S 0S 0A 0B 00B 00S 00 Pozorování: kždé slovo derivce oshuje právě jeden neterminál tento neterminál je vždy umístěn zcel vprvo plikcí prvidl X w se derivce uzvírá krok derivce = generuje symol(y) +změní neterminál Ide vzthu grmtiky konečného utomtu: neterminál = stv konečného utomtu prvidl = přechodová funkce 7

Převod konečného utomtu n grmtiku L F L L 3 Důkz: L=L(A) pro nějký konečný utomt A=(Q,X,δ,q 0,F) definujme grmtiku G=(Q,X,q 0,P), kde prvidl mjí tvr p q, když δ(p,)=q p λ, když p F ještě L(A)=L(G)? ) λ L(A) q 0 F (q 0 λ) P λ L(G) 2) n L(A) q 0,,q n Q tž. δ(q i, i+ )=q i+, q n F (q 0 q n q n n ) je derivce pro n n L(G) QED A co nopk? prvidl X Y kódujeme do přechodové funkce X λ je konec le co prvidl X n Y, X Y, X n? Příkld převodu KA n grmtiku A B 0A λ B 0C D C 0E A D 0B C E 0D E 0 A B 0 0 C D 0 0 E Příkldy derivcí: A 0A 0 (0) A B 0C 0A 0 (5) A B 0C 0A 00A 00 (0) A B D C A (5) L= { w w {0,}* & w je inární zápis čísl dělitelného 5} 8

Stndrdizce prvidel regulární grmtiky Ke kždé grmtice G=(V N,V T,S,P) typu 3 existuje ekvivlentní grmtik G, která oshuje pouze prvidl ve tvru: X Y X λ. Důkz: definujme G =(V N,V T,S,P ), kde prvidl P získáme tkto P P X Y X Y X λ X λ X n Y X Y 2, Y 2 2 Y 3,, Y n n Y Z n Z Z, Z 2 Z 2,, Z n λ (Y 2,,Y n, Z,,Z n jsou nové neterminály - pro kždé prvidlo jiná sd) zývá X Y definujme U(X) = {Y Y V N & X * Y} efektivní postup U = {Y (X Y) P}, U i+ = U i {Y (Z Y) P, Z U i } X Y X w pro všechn Y w z P Y U(X) Příkld stndrdizce regulární grmtiky Originální S X S Y Y Y Y Y X Y X X X λ Převedená S S S S 2 S 2 S 3 S 3 X S Y Y Y Z Y Y Y Y Y Y Y 2 Y 2 X Y Z Z Z 2 Z 2 Z 3 Z 3 λ X X X λ, L={ w w=u w=uv w=u, u,v {,}* } S S S 2 S 3 X, Y Y Y 2, Z Z 2 Z 3 9

Převod grmtiky n konečný utomt L L 3 L F Důkz: L=L(G) pro nějkou grmtiku G=(V N,V T,S,P) typu 3 oshující pouze prvidl ve tvru: X Y X λ definujme nedeterministický konečný utomt A=(V N,V T,δ,{S},F), kde: F={ X (X λ) P} δ(x,) ={ Y (X Y) P} ještě L(G)=L(A)? ) λ L(G) (S λ) P S F λ L(A) 2) n L(G) existuje derivce (S X n X n n ) X 0,,X n V N tž. δ(x i, i+ ) X i+, X 0 =S, X n F n L(A) Levé ( prvé) lineární grmtiky Grmtiky typu 3 nzýváme tké prvé lineární (neterminál je vždy vprvo). Odoně - grmtik G je levá lineární, jestliže má pouze prvidl tvru X Yw, X w, X,Y V N, w V T * (neterminál je vždy vlevo). Vět: Jzyky generovné levou lineární grmtikou jsou právě regulární jzyky. Důkz: otočením prvidel dostneme prvou lineární grmtiku X Yw, X w převedeme n X w R Y, X w R získná grmtik generuje jzyk L R víme, že regulární jzyky jsou uzvřené n reverzi tudíž protože L R je regulární, je i L (=(L R ) R ) regulární tkto lze získt všechny regulární jzyky 0

Lineární grmtiky ( jzyky) Můžeme levě právě lineární prvidl používt njednou? Dlší zoecnění - grmtik je lineární, jestliže má pouze prvidl tvru X uyv, X w, X,Y V N, u,v,w V T * (n prvé strně vždy mximálně jeden neterminál). Lineární jzyky jsou právě jzyky generovné lineárními grmtikmi. Zřejmě: regulární jzyky lineární jzyky Pltí tké: regulární jzyky lineární jzyky? NE! {0 n n n } není regulární jzyk, le je lineární (S 0S 0) Pozorování: lineární prvidl lze rozložit n levě prvě lineární prvidl S 0A, A S