PRŮBĚH PŘEDNÁŠKY FORMÁLNÍ JAZYKY A AUTOMATY (LETNÍ SEMESTR 2007/2008) =========================== 20.2.2008 =========================== Přednáška se nekonala. =========================== 27.2.2008 =========================== Pojmy symbol, abeceda, slovo, jazyk. Studujeme jazyky s konečnou reprezentací. Příklad nedeterministického algoritmu pro generování a pro rozpoznávání jazyka symetrických slov. Rozbor přepisovacího systému S -> ABS S -> \epsilon BA -> AB BS -> b Bb -> bb Ab -> ab Aa -> aa Indukcí dokázáno, že každé odvoditelné slovo obsahuje stejný počet symbolů z {a,A} a z {b,B} a má jeden z tvarů: {A,B}^*S {A,B}^*a^ib^j Každé terminální odvoditelné slovo je tedy tvaru a^nb^n. Navíc, každé takové slovo je odvoditelné. Uvedený přepisovací systém lze rozšířit na generování a^nb^nc^n. =========================== 5.3.2008 =========================== Přednáška se nekonala. =========================== 12.3.2008 =========================== Chomského hierarchie Složitost algoritmického zjištění w \in L(G), L(G_1) = L(G_2), Problém w \in L(G) je algoritmicky rozhodnutelný pro typ 1,2,3. Složitost pro typ 1 je exponenciální, pro typ 2 O(n^3), pro typ 3 je O(n), kde n je délka vstupního slova a reprezentace jazyka je pevně dána. Problém L(G_1) = L(G_2) je algoritmicky rozhodnutelný jen pro typ 3. Konstrukce gramatik (přechodových diagramů) pro jazyky v následující tabulce Abeceda Podmínka na slova a,b |w|_a sudé a,b |w|_a sudé, |w|_b sudé a |w|_a dělitelné 3 a,b |w|_a - |w|_b dělitelné 3 Nedokončené příklady a,b |w|_a >= 1, |w|_b >= 1 a,b,c |w|_a >= 1, |w|_b >= 1, |w|_c >= 1 a |w|_a dělitelné 2 nebo dělitelné 3 =========================== 19.3.2008 =========================== Dokončení příkladů w \in {a,b}, |w|_a \ge 1, |w|_b \ge 1 w \in {a,b,c}, |w|_a \ge 1, |w|_b \ge 1, |w|_c \ge 1 délka w dělitelná 2 nebo 3 Zavedení zobecněných regulárních gramatik. Zavedení přechodových diagramů (PD) a konečných automatů (KA). Důkaz ekvivalence zobecněných regulárních gramatik a PD. Příklad s klasifikací čísel v programovacím jazyce. Zadán příklad jazyka w \in {a,b,c}, w obsahuje podslovo ababc Je třeba ještě ukázat reprezentaci tabulkou a v obou příkladech porovnat složitost reprezentace pomocí KA a PD. =========================== 26.3.2008 =========================== Probrán příklad na nalezení PD a KA pro jazyk slov obsahujících ababc. Formulován obecný algoritmus konstrukce KA pro hledání jednoho slova. Podmnožinová konstrukce KA, který je ekvivalentní zadanému DP. Zbývá důkaz ekvivalence zkonstruovaného KA a původního PD. =========================== 2.4.2008 =========================== Dokázáno, že podmnožinová konstrukce dává KA, který je ekvivalentní výchozímu PD. Příklad s reverzí jazyka {w \in {a,b}^*, druhý symbol je a}. Domácí cvičení: Najděte KA pro reverzi jazyka {w \in {a,b}^*, třetí symbol je a}. =========================== 9.4.2008 =========================== Přednáška se nekonala. =========================== 16.4.2008 =========================== De Bruijnův graf pro slova délky 3 ve dvouprvkové abecedě. Regulární jazyky, regulární výrazy, ekvivalence PD a RV. Zmínka o zápisu regulárních výrazů v editoru vim. =========================== 23.4.2008 =========================== PD a KA pro jazyk (b + eps)(a + ab)^*. Test neprázdnosti jazyka daného KA. Test ekvivalence jazyků daných KA, případně PD, RV. Ekvivalence slov podle jazyka, dolní odhad počtu stavů automatu. Důkaz, že a^ib^i není regulární. Věta o pumpování pro regulární jazyky (název nebyl při přednášce uveden). =========================== 30.4.2008 =========================== Cvičení. Najít gramatiku pro 1. uzávorkované výrazy reprezentující binární stromy 2. všechny uzávorkované výrazy 3. všechny uzávorkované výrazy se střídajícími se závorkami () a [] podle hloubky. Každý regulární jazyk je bezkontextový. Bezkontextové jazyky jsou uzavřené na sjednocení, zřetězení a iteraci. Bezkontextové jazyky nejsou uzavřené na průnik a rozdíl. Postupná transformace obecné bezkontextové gramatiky na gramatiku, která je - nevypouštějící (pro jazyk po případném odebrání prázdného slova) - bez pravidel typu A -> B - bez pravidel s pravou stranou s terminály i neterminály - v Chomského normální formě (Takto byl důkaz vyložen, ale je v něm chyba, protože jsme určitý typ pravidel nevzali v úvahu. Najdete který?) Cvičení na doma. Rozhodnout, které z následujících jazyků jsou regulární. - { a^ib^j ; i \equiv j (mod 3)} - { a^ib^j ; i \le j } - { a^{i^2} ; i \ge 0} =========================== 7.5.2008 =========================== Vyřešení příkladů na regulární jazyky z minule. Věta o nahrazení pro bezkontextové jazyky. Příklady na rozhodování, které jazyky jsou bezkontextové: a^ib^jc^kd^l při různých podmínkách na i,j,k,l, konkrétně i=j and k=l i=k and j=l i=l and j=k w \in {a,b}^*, |w|_a = |w|_b w \in {a,b,c}^*, |w|_a = |w|_b = |w|_c