Grmtiky. Vytvořte grmtiku generující množinu řetězů { n m } pro n, m N {} tková, že n m. Pomocí této grmtiky derivujte řetezy,. 2. Grmtik je dán prvidly S ɛ S A A S B B A B. Je regulární? Pokud ne, n regulární ji uprvte. V původní nové grmtice odvod te řetěz. 3. Vytvořte grmtiku generující jzyk řetězů w {, } tkových, že počet symolů osžených v w je stejný. 4. Vytvořte grmtiku pro jzyk lgerických výrzů nd ecedou {x, y, z, +,,, /, (, )} (x, y, z jsou proměnné). Z grmtiky odvod te řetěz (x + y) + z x + y/(x z). 5. Vytvořte grmtiku generující formule predikátové logiky nd lgerickými výrzy z předchozího příkldu. Aecedu rozšiřte o množinu symolů {,,,,,,, =}. Z grmtiky odvod te řetěz ( x)( y)(x + x = y). Deterministické konečné utomty. Vyjádřete DKA A = Q, Σ, δ,, F tulkou (zvýrzněte počáteční koncové stvy, viz následující cvičení) stvovým digrmem. Definice jednotlivých složek utomtu: Q = {,, 2, 3 } Σ = {, } δ:,,, 3, 3, 3,,, 2, 2, 3, 3,, 2, 2, 2. F = {, 3 }. 2. Nkreslete přechodový digrm podle tulky. 3. Podle digrmu určete Q, Σ, δ,, F. 3 2 2 3 4 4 4 4 4, strt 2 3 4. Pro utomt z předchozího příkldu určete pro řetězy,, hodnoty rozšířené přechodové funkce zpište konfigurce, kterými utomt projde při zprcování těchto řetězů.
5. Nvrhněte DKA přijímjící právě následující jzyky. Nvrhněte utomt úplný, poté i zjednodušenou verzi využívjící dohody o mrtvém stvu (pokud jsou různé). () Slov nd ecedou {, } zčínjící končící mjící délku lespoň 2. () Slov nd ecedou {, } zčínjící končící. (c) Slov nd ecedou {,, c} oshující jko podřetěz c. 6. Nlezněte nedosžitelné stvy v následujících utomtech eliminujte je: () c d 3 3 3 2 4 3 3 2 3 3 3 4 2 3 4 () 5 2 3 2 3 2 4 6 5 5 6 3 2 (c) 2 2 2 2 2 3 3 2 2 3 4 5 5 4 2 Nedeterministické konečné utomty, utomty s ɛ-přechody. Uvžme NKA n následujícím orázku. () Určete hodnoty přechodové funkce nmlujte strom konfigurcí pro řetězi,,. () Automt převed te n DKA. Jký je výsledek rozšířené přechodové funkce výsledného DKA pro řetězce z ()? strt 3 2 2. Nvrhněte NKA pro rozpoznávání názvu souoru s třípísmenou koncovkou. Název souoru se skládá z písmen, číslic tečky (název může oshovt více symolů pro tečku, le poslední musí ýt před příponou). Tento utomt převed te n DKA. 2
3. Nvrhněte NKA přijímjící slov nd ecedou {, }, která neoshují jko podřetěz. Převed te jej n DKA. 4. K regulární grmtice vytvořte DKA, který přijímá jzyk jí generovný. () S +D D D D D 2D 3D.X 2 3 X X X 2X 3X 2 3 () S A ɛ A A B B B (c) S ch 3 ch 4 H 4 hi 4 I 4 4 H 3 I 3 I 3 3R R ch 2 ch 3 H 3 I 3 I 3 3 H 2 I 2 I 2 2R 5. K utomtu sestvte regulární grmtiku, která generuje jím přijímný jzyk (může ýt potře více převodů, npř. NKA n DKA n grmtiku). () strt 3, 2, ɛ 2 () strt, ɛ, ɛ 3 4 5, 3
2 5. e, E ɛ, +, ɛ, +, (c) strt 4 6. 3 7 Ekvivlence minimlizce KA. Nlezněte utomt s minimálním počtem stvů, který je ekvivlentní následujícímu utomtu. strt () 3 4 4
strt 2 3 5 () 6 4 7 8 2. Jsou grmtiky G G 2 ekvivlentní? G : S B A ɛ A C B C C cd B A D cd G 2 : S A B ɛ W A B A W B W Bezkontextové grmtiky zásoníkové utomty. Sestvte zásoníkový utomt, který přijímá jzyk generovný následující grmtikou () S S + S S S (S) x y z () S V S V S S (S) V V x y x y 5
Nápovědy neo řešení vyrných prolémů Grmtiky. S SB B; B B ɛ; 2. není regulární, grmtik oshuje prvidlo S ɛ S se vyskytuje n prvé strně jiného prvidl. Je nutno udělt úprvy podle posledního odstvce n sljdu 2 poznámek k přednáškám. 3. npř. S SS SS ɛ 4. podoné jko příkld z přednášky 5. použijte formální definici formule predikátové logiky Deterministické konečné utomty Příkldy ž 4 jsou sndno vidět přímo z definic n sljdech 5. () zjednodušená verze (podle úmluvy o mrtvém stvu), strt 2 6. () Nedosžitelné stvy jsou 2 4. Nedeterministické konečné utomty. () podle definic z přednášky, () podle postupu n sljdu 6 2. stčí si uvědomit, že jméno souoru musí končit řetězem.xyz, x,y,z jsou znky ecedy mimo tečky. 4. podle postupu n sljdu 9 5. podle postupu n sljdu 2 25 Ekvivlence minimlizce KA. postup podle sljdů 36 (nlezení ekvivlentních stvů) 39 (minimlizce utomtu) 2. Ke grmtikám je potře sestvit NKA, převézt je n DKA poté tle-filling lgoritmem ověřit, jestli jsou počáteční stvy získných lgoritmů ekvivlentní. 6