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

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

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

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

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

Automaty a gramatiky

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

AUTOMATY A GRAMATIKY

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

Vztah jazyků Chomskeho hierarchie a jazyků TS

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 gramatiky Teorie programovacích jazyků

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

Jednoznačné a nejednoznačné gramatiky

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 Σ

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

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

Vlastnosti regulárních jazyků

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

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

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

Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 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.

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

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

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

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.

Úvod do informatiky. Miroslav Kolařík

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

Teoretická informatika TIN 2013/2014

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

2 Formální jazyky a gramatiky

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

Teoretická informatika

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

ZÁKLADY TEORETICKÉ INFORMATIKY

Složitost Filip Hlásek

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

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

PŘÍJMENÍ a JMÉNO: Login studenta: DATUM:

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

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

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

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

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

Turingovy stroje. Turingovy stroje 1 p.1/28

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

Od Turingových strojů k P=NP

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

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

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

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

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

Konečný automat Teorie programovacích jazyků

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

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

NP-úplnost problému SAT

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

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ů

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

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

Substituce a morfismy jednoduše

METRICKÉ A NORMOVANÉ PROSTORY

Naproti tomu gramatika je vlastně soupis pravidel, jak

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

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

Lineární algebra : Polynomy

1) Sekvenční a paralelní gramatiky

Strukturální rozpoznávání

10 Funkce více proměnných

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 α

Referát z předmětu Teoretická informatika

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:

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

Drsná matematika III 1. přednáška Funkce více proměnných: křivky, směrové derivace, diferenciál

Bezkontextové gramatiky nad volnými grupami

Lineární programování

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

ALGEBRA. Téma 5: Vektorové prostory

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ

Konečný automat. Jan Kybic.

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

Teoretická informatika

= 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

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

Lineární algebra : Báze a dimenze

Barevnost grafů MFF UK

Minimalizace KA - Úvod

Matematika B101MA1, B101MA2

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

1 Determinanty a inverzní matice

7. Lineární vektorové prostory

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

Permutační grupy Cykly a transpozice Aplikace. Permutace. Rostislav Horčík: Y01DMA 11. května 2010: Permutace 1/17

Transkript:

11 Automaty a gramatiky Roman Barták, KTIML bartak@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Uzávěrové vlastnosti v kostce Sjednocení Průnik Průnik s RJ Doplněk Substituce/ homomorfismus Inverzní homomorfismus R J BKJ DBKJ Kvocienty s regulárním jazykem Bezkontextové jazyky jsou uzavřené na levý (pravý) kvocient s regulárním jazykem. R\L = { w u R uw L}, L/R = { u w R uw L} idea: ZA běží na prázdno (nečte vstup) paralelně s KA je-li KA v koncovém stavu, můžeme začít číst vstup formálně: konečný automat A 1 = (Q 1,X, δ 1,q 1,F 1 ) zásobníkový automat M 2 = (Q 2,X,Y,δ 2,q 2,Z 0,F 2 ) (přijímání koncovým stavem) definujme nový automat M = (Q, X, Y, δ, (q 1,q 2 ), Z 0, F 2 ), kde Q = (Q 1 Q 2 ) Q 2 (dvojice stavů pro paralelní běh ZA a KA) δ ((p,q), λ, Z) = { ((p,q ),u) a X p δ 1 (p, a) (q,u) δ 2 (q, a, Z)} { ((p,q ),u) (q,u) δ 2 (q, λ, Z) } { (q,z) p F 1 } δ (q, a, Z) = δ 2 (q, a, Z) a X {λ}, q Q 2 zřejmě L(M) = L(A 1 )\L(M 2 ) Uzávěrové vlastnosti deterministických BKJ Rozumné programovací jazyky jsou deterministické BKJ. Deterministické bezkontextové jazyky: nejsou uzavřené na průnik, jsou uzavřené na průnik s regulárním jazykem, jsou uzavřené na inverzní homomorfismus. Doplněk deterministického BKJ je opět deterministický BKJ prohodíme koncové a nekoncové stavy potíže: nemusí přečíst celé vstupní slovo krok není definován (např. vyprázdnění zásobníku) snadno ošetříme podložkou na zásobníku cyklus (zásobník roste, zásobník pulsuje) odhalíme pomocí čítače po přečtení slova prochází koncové a nekoncové stavy stačí si pamatovat, zda prošel koncovým stavem 11-1

Uzávěrové vlastnosti DBKJ v praxi DBKJ nejsou uzavřené na sjednocení (BKJ ano) L = {a i b j c k i j j k i k} je BKJ, ale není DBKJ sporem: nechť L je DBKJ potom -L (doplněk) je DBKJ -L a*b*c* = {a i b j c k i=j=k} je DBKJ - SPOR DBKJ nejsou uzavřené na homomorfismus (BKJ ano) L 1 = {a i b j c k i=j} je DBKJ L 2 = {a i b j c k j=k} je DBKJ 0L 1 1L 2 je DBKJ, 1L 1 1L 2 není DBKJ položme h(0) = 1 h(x) = x pro ostatní symboly h(0l 1 1L 2 ) = 1L 1 1L 2 Chomského hierarchie gramatiky typu 0 (rekurzivně spočetné jazyky L 0 ) pravidla v obecné formě gramatiky typu 1 (kontextové jazyky L 1 ) gramatiky typu 2 (bezkontextové jazyky L 2 ) pouze pravidla ve tvaru X w, X V N, w (V N V T )* gramatiky typu 3 (regulární/pravé lineární jazyky L 3 ) pouze pravidla ve tvaru X wy, X w, X,Y V N, w V T * Kontextové gramatiky Poznámky: neterminál X se přepisuje na w pouze v kontextu α a β pravidlo S λ slouží pouze pro přidání λ do jazyka L = {a n b n c n n 1} je kontextový jazyk (není BKJ) S asbc abc CB BC pozor, není kontextové pravidlo bb bb bc bc cc cc Separované gramatiky Gramatika je separovaná, pokud obsahuje pouze pravidla tvaru α β, kde: buď α,β V + N (neprázdné posloupnosti neterminálů) nebo α V N a β V T {λ}. Lemma: Ke každé gramatice G lze sestrojit ekvivalentní separovanou gramatiku G. nechť G = (V N,V T,S,P) pro každý terminál x V T zavedeme nový neterminál X v pravidlech z P nahradíme terminály odpovídajícími neterminály a přidáme pravidla X x G = (V N V T,V T,S,P {X x x V T }) zřejmě L(G) = L(G ) 11-2

Od monotonie ke kontextovosti Gramatika je monotónní (nevypouštějící), jestliže pro každé pravidlo (u v) P platí u v. Monotónní gramatiky slovo v průběhu generování nezkracují. Věta: Ke každé monotónní gramatice lze nalézt ekvivalentní gramatika kontextovou. nejprve převedeme gramatiku na separovanou tím se monotonie neporuší (+ pravidla X x jsou kontextová) zbývají pravidla A 1 A m B 1 B n (kde m n) převedeme na kontextová pravidla s novými neterminály C A 1 A 2 A m C 1 A 2 A m C 1 A 2 A m C 1 C 2 A m C 1 C m-1 A m C 1 C m-1 C m C 1 C m B 1 C m B 1 C 2 C m B 1 B 2 C m B 1 B m-1 C m B 1 B m-1 B m B n Příklad kontextového jazyka L = {a i b j c k 1 i j k} je kontextový jazyk (není BKJ) S asbc abc generování symbolů a B BBC množení symbolů B C CC množení symbolů C CB BC uspořádání symbolů B a C ab ab začátek přepisu B na b bb bb pokračování přepisu B na b bc bc začátek přepisu C na c cc cc pokračování přepisu C na c CB BC není kontextové pravidlo, nahradíme ho: CB XB, XB XY, XY BY, BY BC Chomského hierarchie gramatiky typu 0 (rekurzivně spočetné jazyky L 0 ) pravidla v obecné formě gramatiky typu 1 (kontextové jazyky L 1 ) gramatiky typu 2 (bezkontextové jazyky L 2 ) pouze pravidla ve tvaru X w, X V N, w (V N V T )* gramatiky typu 3 (regulární/pravé lineární jazyky L 3 ) pouze pravidla ve tvaru X wy, X w, X,Y V N, w V T * Turingovy stroje - historie a motivace 1931-1936 pokusy o formalizaci pojmu algoritmu Gödel, Kleene, Church, Turing Turingův stroj zachycení práce matematika (nekonečná) tabule lze z ní číst a lze na ni psát mozek (řídící jednotka) Formalizace TS: místo tabule oboustranně nekonečná páska místo křídy čtecí a zapisovací hlava, kterou lze posouvat místo mozku konečná řídící jednotka (jako u ZA) Další formalizace: λ-kalkul, částečně rekurzivní funkce, RAM 11-3

Definice Turingova stroje Turingovým strojem nazýváme pětici T=(Q,X,δ,q 0,F), kde Q - neprázdná konečná množina stavů X - neprázdná konečná množina symbolů obsahuje symbol pro prázdné políčko δ - přechodová funkce δ : (Q-F) X Q X {-1,0,1} popisuje změnu stavu, zápis na pásku a posun hlavy q 0 Q - počáteční stav F Q - množina koncových stavů páska řídící jednotka 1) výpočet začíná ve stavu q 0 2) v každém taktu dojde ke změně stavu k přepisu políčka na pásce k posunu hlavy 3) výpočet končí, když není definována žádná instrukce (speciálně platí pro koncové stavy) Turingovy stroje - konfigurace a modifikace Konfigurace Turingova stroje je souhrn údajů přesně popisující stav výpočtu. Obsahuje: nejmenší souvislou část pásky, která obsahuje všechny neprázdné buňky čtenou buňku obvyklý zápis: uqv vnitřní stav polohu čtené buňky (hlavy) u v TS postupně přepracovává konfigurace. Modifikace Turingova stroje: více pásek, více hlav jednostranná páska omezené činnosti v taktu omezený počet stavů, omezená abeceda dva zásobníky q Příklad Turingova stroje Navrhněte Turingův stroj převádějící konfiguraci q 0 w na q F w R, kde w {a 1,,a n }* (tj. obrácení slova). q 0, q F,,0 prázdné slovo q 0,a i q i,r,a i,+1 přečte písmeno, pamatuje si ve stavu q 0,a i q R,a i,+1 konec (slovo sudé délky) q i,r,a j q i,r,a j,+1 běží doprava q i,r, q i,w,,-1 na konci se otočí q i,r,a j q i,w,a j,-1 q i,w,a j q j,l,a i,-1 vymění písmena q i,w,a i q R,a i,+1 konec (slovo liché délky) q i,l,a j q i,l,a j,-1 a běží zpět (doleva) q i,l,a j q 0,a i,+1 na zarážce uloží písmeno a začne znova q R,a j q R,a j,+1 běží doprava q R, q C,,-1 na konci se otočí q C,a j q C,a j,-1 při běhu doleva ruší označení q C, q F,,+1 slovo je obráceno Výpočet Turingova stroje Turingovým strojem nazýváme pětici T=(Q,X,δ,q 0,F) prázdné políčko u v Konfigurace TS popisuje aktuální stav výpočtu - uqv. c a Krok výpočtu (přímá změna konfigurace): uqv 2 wpz v=av, w=u, z=bv q,a p,b,0 v=av, w=ub, z=v q,a p,b,+1 v=av, u=wc, z=cbv q,a p,b,-1 Poznámky: technicky je potřeba ošetřit případy, kdy v=λ nebo u=λ s u a v lze pracovat jako se dvěma zásobníky Výpočet je posloupnost přímých kroků uqv 2* wpz q 11-4

Turingovy stroje a jazyky Slovo w je přijímáno Turingovým strojem T, pokud q 0 w 2* upv, p F někdy je na konci výpočtu vyžadováno smazání pásky (q 0 w 2* λp) Jazyk přijímaný Turingovým strojem T L(T) = {w w (X-{})* q 0 w 2* upv, p F}. Jazyk L nazveme rekurzivně spočetným, pokud je přijímán nějakým Turingovým strojem T (L=L(T)). {a 2n } q 0, q F,,0 prázdné slovo (konec výpočtu) q 0,a q 1,a,+1 zvětší čítač (2k+1 symbolů) q 1,a q 0,a,+1 nuluje čítač (2k symbolů) Od Turingova stroje ke gramatice Každý rekurzivně spočetný jazyk je typu 0. pro Turingův stroj T najdeme gramatiku G tak, že L(T)=L(G) gramatika nejdříve vygeneruje pásku stroje + kopii slova potom simuluje výpočet (stavy jsou součástí slova) v koncovém stavu smažeme pásku, necháme pouze kopii slova w n w R q 0 n ( n představují volný prostor pro výpočet) I) S D Q 0 E D x D X E generuje slovo a jeho reverzní kopii pro výpočet E E generuje volný prostor pro výpočet II) X P Y X Q Y pro δ(p,x)=(q,x,0) X P Y Q X Y pro δ(p,x)=(q,x,+1) X P Y X Y Q pro δ(p,x)=(q,x,-1) III) P C pro p F C A C mazání pásky A C C mazání pásky C λ konec výpočtu Od Turingova stroje ke gramatice - pokračování Ještě L(T) = L(G)? w L(T) existuje konečný výpočet stroje T (konečný prostor) gramatika vygeneruje dostatečně velký prostor pro výpočet simulujeme výpočet a smažeme dvojníky w L(G) pravidla v derivaci nemusí být v pořadí, jakém chceme derivaci můžeme přeuspořádat tak, že pořadí je I, II, III podtržené symboly smazány, tj. vygenerován koncový stav δ(q 0,) = (q F,,0) δ(q 0,a) =(q 1,a,+1) δ(q 1,a) = (q 0,a,+1) Gramatika po zjednodušení S D q 0 D a D a q 0 C a q 0 q 1 a a q 1 q 0 a C a C C λ Od gramatik k Turingově stroji Každý jazyk typu 0 je rekurzivně spočetný. Důkaz (neformálně): idea: Turingův stroj postupně generuje všechny derivace derivaci S w 1 w n =w kódujeme jako slovo #S#w 1 # #w# TS postupně generuje všechna slova #S# w 1 # #w k # pokud w n =w, výpočet končí jinak, TS generuje další derivaci umíme udělat TS, který přijímá slova #u#v#, kde u v umíme udělat TS, který přijímá slova #w 1 # #w k #, kde w 1 *w k umíme udělat TS postupně generující všechna slova stroje spojíme do while cyklu Generuj (další) slovo Slovo tvoří derivaci? ne ano Derivace končí w? ne ano 11-5