}w!"#$%&'()+,-./012345<ya Fulty of Informtis Msryk University Brno Cvičení k předmětům IB005 Formální jzyky utomty IB102 Automty, grmtiky složitost poslední modifike 5. květn 2015 Tto sírk yl vytvořen z příkldů ke vičení z předmětu Formální jzyky utomty I, které yly původně připrveny Ivnou Černou. N oprvě hy doplnění příkldů se podílelo mnoho studentů víčíí předmětů IB005 IB102 Jiří Brnt, Vojtěh Řehák Jn Strejček.
Formální jzyky, regulární grmtiky 1.1 Jsou dány jzyky L 1, L 2 nd eedou {x, y, z}, kde L 1 = {xy, y, yx}, L 2 = {y, z}. Vypočítejte: ) L 1 L 2 ) L 1 L 2 ) L 1 L 2, L 2 L 1 d) L 0 2, L 1 2, L 2 2, L 3 2, L 2, L + 2 e) o L 2 1.2 Vypočítejte: ), +, {ε}, {ε} + ) {ε}, {ε}, L, {ε} L ) {ε}, L, {ε} {ε}, {ε} L 1.3 Jsou dné jzyky L 1, L 2 {,,, d}, kde L 1 = {,, }, L 2 = {,,, ε}. ) Vypočítejte L 1 L 2. ) Vypočítejte L 1 L 2. ) Vypočítejte L 1 L 2. d) Rozhodněte, zd pltí L 1 L 2 = L 2 L 1. e) Njděte slovo w L 1 L 2 L 2 L 1. f) Rozhodněte, zd pltí L 1 L 1 L 2. Pokud no, pltí tvrzení pro liovolnou dvojii jzyků L 1, L 2? Pro pokročilé: pltí ε L 2 L 1 L 1 L 2? g) Rozhodněte, zd pltí L 4 2 L 6 2 L 3 2 h) Popište o L 2 (komplement jzyk L 2 ). 1.4 Bud L liovolný jzyk, rozhodněte zd pltí: ) pro i N pltí L i = {w i w L} ) pro i N pltí w L i w = i ) njděte jzyk, pro který o výše uvedené vzthy pltí 1.5 Porovnejte (slovně popište) jzyky rozhodněte zd L 1 = L 4 L 1 = {x, y, z} L 2 = {xyz} L 3 = {x} {y} {z} L 4 = ({x} {y} {z} ) L 5 = ({x, y} {z} ) 1
L 6 = {x, y, z} {x} {x, y, z} 1.6 Porovnejte (slovně popište) jzyky rozhodněte zd L 1 = L 3 L 1 = {x, y, z} L 2 = {x, y, z} + L 3 = {x} {y} {z} L 4 = {x} {y} 2 {z} L 5 = ({x} {y} {z} ) L 6 = {x, y, z} {x} {x, y, z} 1.7 Pomoí jzyků L 1 = {}, L 2 = {} nd eedou {, } množinovýh operí sjednoení ( ), průniku ( ), konktene ( ), itere (, + ) doplňku (o ) vyjádřete jzyk, oshujíí všehn slov, která ) oshují lespoň 2 znky ) mjí sudou délku ) zčínjí znkem končí znkem d) zčínjí končí stejným znkem e) oshují podslovo f) splňují ) ) g) nesplňují ) 1.8 Pro liovolné jzyky L 1, L 2, L 3 dokžte, zd pltí, neo nepltí: ) L 1 L 1 L 2 ) (L 1 L 2 ) L 3 = (L 1 L 3 ) (L 2 L 3 ) ) (L 1 L 2 ) L 3 = (L 1 L 3 ) (L 2 L 3 ) d) pro i N pltí L i 1 L i 2 = (L 1 L 2 ) i e) L 1 L 2 = (L 1 L 2 ) f) L 1 L 1 = L 1 g) (L 1 L 2 ) = (L 1 L 2 (L 1 ) ) 1.9 Jký jzyk generuje grmtik G jkého je typu? ) G = ({S, A, B, C},{,,, d},p, S), kde P = { S S Ad, A B C, Bd S A, Cd ε } ) G = ({S, A},{,, },P, S), kde P = { S S S A, A A A A } 1.10 Jký jzyk generuje následujíí grmtik? Diskutujte vhodné oznčení neterminálů (S 00, S 01, S 10, S 11 ). G = ({S, A, B, C},{, },P, S), kde P = { S A B ε, A S C, B C S, C B A } 1.11 Nvrhněte regulární grmtiky pro následujíí jzyky: ) L = {,,, d} 2
) L = {,,, d} i {,,, d} ; i = 2, 10, 100 ) L = {w w {, }, w 3} d) L = {w w {, }, w = 3k, k 0} e) L = {w w {,, }, w oshuje podslovo } f) L = {w w R w {, } } g) L = {w w {,, }, první 3 znky w = poslední 3 znky w} h) L = {w w {,, }, w neoshuje podslovo } i) L = {w w {,, }, # (w) = 2k, # (w) = 3l + 1, k, l 0} j) L = {w w {0, 1,..., 9}, w je zápis přir. čísl dělitelného 5} k) L = {w w {0, 1,..., 9}, w je zápis přir. čísl dělitelného 3} l) L = {w w {0, 1,..., 9}, w je zápis přir. čísl dělitelného 25} 3
Deterministiké konečné utomty, pumping lemm 2.1 Je dán následujíí konečný utomt: A = ({q 0, q 1, q 2, q 3 }, {, }, δ, q 0, {q 3 }) δ(q 0, ) = q 1 δ(q 0, ) = q 2 δ(q 1, ) = q 3 δ(q 1, ) = q 1 δ(q 2, ) = q 2 δ(q 2, ) = q 2 δ(q 3, ) = q 1 δ(q 3, ) = q 2 ) Uved te jinou formu zápisu utomtu. ) Popište jzyk keptovný konečným utomtem A. ) Diskutujte vrintu konečného utomtu, kde F = {q 3, q 2 }; δ(q 3, ) = q 0 2.2 Konstruujte deterministiké FA, které rozpoznávjí následujíí množiny ) {,, } 5 {,, } ) {w w {} ; w = 2k neo w = 7l; k, l 0} ) {w w {, } ; # (w) = 3k; k 0} d) {w w {, } ; w oshuje podslovo } e) {w w {, } ; w oshuje podslovo } f) {w w {, } ; w neoshuje podslovo } g) {, } ({, d} ({d} {, } {})) {, } + h) ({} {} {} {} {} {}) 2.3 Konstruujte deterministiké FA pro následujíí jzyk nd eedou {,,, d} ) L = {, } {} {, } {d} + ) L = {w w {,, }, w neoshuje podslovo } ) L = {, } ({d} + {d} {, } {}) {, } + 2.4 Pomoí množin {}, {}, {}, {d} množinovýh operí sjednoení ( ), průniku ( ), konktene ( ), itere (, + ) doplňku (o ) vyjádřete jzyk keptovný utomtem: d 4
2.5 Co keptuje následujíí utomt? (# (w) = # (w) je šptná odpověd ) 2.6 Pomoí věty o vkládání dokžte, že jzyk L není regulární: ) L = { i j j > i 1} ) L = {w w {, } ; # (w) = # (w)} ) L = {w w R w {, } } d) L = { n n = 2 i ; i 0} e) L = { i j i j; i, j 0} f) L = { n (n!)2 n 0} g) L = { i j k j k; i, j, k N} 2.7 Pro pokročilé: Zkonstruujte konečný utomt A rozpoznávjíí jzyk L = {} {}. Dokžte, že utomt rozpoznává zdný jzyk, tedy že L(A) = L. 2.8 Konstruujte deterministiké FA pro všehny regulární jzyky příkldu 1.11. 5
Minimlize DFA, nedeterministiké FA, (Myhill-)Nerodov vět 3.1 Pro následujíí konečné utomty zdné tulkou: oveřte, že všehny stvy jsou dosžitelné zkonstruujte minimální utomt minimální utomt zpište v knonikém tvru ) 1 2 3 2 5 2 3 3 5 4 12 2 5 7 8 6 4 9 7 12 11 8 4 6 9 10 8 10 3 2 11 12 6 12 3 10 ) 1 3 2 2 6 4 3 3 5 4 4 2 5 10 8 6 6 7 7 7 5 8 8 2 9 11 2 10 10 9 11 11 5 3.2 Odstrňte nedosžitelné stvy z DFA zdného tulkou vlevo minimlizujte ho převed te do knonikého tvru. Poté ověřte, zd je výsledný utomt ekvivlentní s utomtem zdným tulkou vprvo. ) 1 5 2 2 2 8 3 2 7 4 9 4 5 2 1 6 2 5 7 8 6 8 2 4 9 8 9 1 4 2 2 2 5 3 3 6 4 4 2 5 5 3 6 6 2 6
) 1 3 1 2 9 4 3 1 4 9 4 5 8 5 6 5 4 7 6 9 8 11 9 7 9 10 12 3 11 8 1 12 10 A B A B C A C D E D D D E A E 3.3 Ověřte, zd DFA z příkldu 3.1 ) je ekvivlentní s následujíím DFA zdným tulkou A A C B D A C D A D C D 3.4 Nvrhněte nedeterministiké konečné utomty pro následujíí jzyky: ) L = {w {,,, d} w oshuje podslovo neo neo } ) L = {w {,, } w oshuje podslovo neo neo } ) L = {w {,,, d} w končí řetězem } d) L = {w {0, 1} w má čtvrtý symol od kone 1} e) L = {w {0, 1} w končí řetězem 01011} f) L = (({0} {1}) ({0} + {1} {0}) ) g) L = (({0} {0} {0} ) ({1} {1} {1} )) 3.5 K dným nedeterministikým FA zkonstrujte deterministiké FA. ) ) 1 {2,3} {3,4} {1} 1 {1,2} {1} {1} 2 {3} {4} {2} 2 {3} 3 {1,2,3} {1} {3,4} 3 {4} 4 {1} {1} {3,4} 4 {5} 5 {6} 6 {7} 7 3.6 Popište jzyk keptovný utomtem:,, 3.7 Kolik různýh jzyků rozhodují utomty s jedním neo se dvěm stvy nd eedou {x} neo {x, y}? 3.8 Dokžte, že neexistuje utomt se 4 stvy, který keptuje jzyk: ) L = {w {, } w 4} 7
) L = {w {, } w = 5k, k N 0 } 3.9 Njděte formálně popište lespoň dvě rele {, } {, } splňujíí podmínky Nerodovy věty pro jzyk L = {w w {, }, w oshuje podslovo }. Určete indexy těhto relí. 3.10 Pomoí Nerodovy věty posléze pomoí Myhill-Nerodovy věty dokžte, že není regulární: ) L = { n n = 2 i, i 0} ) L = { n m n m 2n, n, m > 0} ) L = {ww R w {, } + } d) L = { i j i j; i, j 0} 3.11 Pomoí MN věty dokžte, že je regulární: L = {w {, } # (w) = 3k, k 0} 3.12 Kždý jzyk jednoznčně určuje reli L předpisem u L v právě když pro kždé w pltí uw L vw L. Určete index této rele pro jzyky: ) L = {} {} {} ) L = { n n n n > 0} 3.13 Neht Σ = {, }. Uvžte následujíí rele n množině Σ : ) u v # (u) mod 4 = # (v) mod 4 ) u v # (u) mod 4 = # (v) mod 4 neo u i v končí n stejné písmeno ) u v # (u) mod 4 = # (v) mod 4 u i v končí n stejné písmeno (Prázdné slovo končí n stejné písmeno jko prázdné slovo, le žádné neprázdné slovo n stejné písmeno nekončí.) U kždé rele určete, zd je to ekvivlene. Pokud no, určete její index zd je prvou kongruení. Pokud no, nlezněte jzyk L tkový, že L =. Nkone nlezněte jzyk L, který je sjednoením některýh tříd rozkldu Σ /, le přitom L. 8
Regulární grmtiky výrzy FA, ε-kroky, Kleeneho vět 4.1 Zkonstruujte ekvivlentní konečný utomt k následujíí grmtie: G = ({S, A, C, B},{,, },P, S), kde P = { S A C ε, A B A, B B C C A, C A B } 4.2 Zkonstruujte ekvivlentní konečný utomt k následujíí grmtie: G = ({S, X, Y, Z},{,, },P, S), kde P = { S X Y, X X S, Y S Z, Z S } 4.3 Zkonstruujte ekvivlentní grmtiku k utomtu: 0 1 2 3 4.4 Zkonstruujte ekvivlentní grmtiku k utomtu: d d 4.5 K dnému utomtu s ε-kroky zkonstruujte ekvivlentní utomt ez ε-kroků. 0 ε 1 ε 2 3 ε 4 d 4.6 K dnému utomtu s ε-kroky zkonstruujte ekvivlentní utomt ez ε-kroků. ε ε 9
4.7 K dnému utomtu s ε-kroky zkonstruujte ekvivlentní utomt ez ε-kroků. ε 1 {1,2} {2} 2 {5} {3,5} 3 {6} 4 {4} {1,5} 5 {5} {3} {6} 6 {3,6} {2} 4.8 K dnému regulárnímu výrzu zkonstruujte ekvivlentní FA ) () ( + )( + ) ) (( + ( + )) + ( + )) ) ((( + ) + ) + d) 4.9 K dnému FA zkonstruujte ekvivlentní regulární výrz 4.10 K dnému FA zkonstruujte ekvivlentní regulární výrz, 4.11 Pomoí regulárníh výrzů popište násl. jzyky: ) L = {w {, } w končí n } ) L = {w {, } # (w) = 2k, k 0} ) L = {w {, } w zčíná končí stejným symolem } d) L = {w {, } w = 2k, k 0} 4.12 Ukžte, jký je vzth mezi třídou regulárníh jzyků R nejmenší třídou ) M 1, která oshuje všehny konečné jzyky je uzvřená vzhledem k sjednoení, zřetězení průniku (,, ). ) M 2, která oshuje všehny konečné jzyky je uzvřená vzhledem k sjednoení, průniku komplementu (,, o ). ) M 3, která oshuje všehny konečné jzyky je uzvřená vzhledem k sjednoení, průniku monině (,, n ). 10
Uzávěrové vlstnosti R 5.1 Rozhodněte, zd pltí: jsou-li jzyky L 1, L 2, L 3,... regulární, pk i jzyk je regulární jzyk. 5.2 Njděte tkovou posloupnost regulárníh jzyků L 1, L 2, L 3,... y jzyk neyl regulární. i=1 i=1 5.3 Neht L 1, L 2 jsou neregulární jzyky nd eedou {, }. Dokžte neo vyvrt te, zd je či není regulární: ) L 1 L 2 ) L 1 L 2 ) L 1 L 2 d) L 1 L 2 e) L 1 f) o L 1 5.4 Neht L 1 je regulární L 1 L 2 je neregulární jzyk. Pltí, že jzyk L 2 je nutně neregulární? 5.5 Pltí následujíí implike? ) L 1 je regulární, L 2 je neregulární L 1 L 2 je neregulární ) L 1 je regulární, L 2 je neregulární L 1 L 2 je regulární ) L 1 je regulární, L 2 je neregulární L 1 L 2 je neregulární d) L 1 je regulární, L 2 je neregulární L 1 L 2 je regulární e) L 1 je regulární, L 2 je neregulární L 2 L 1 je neregulární f) L 1 je regulární, L 2 je neregulární L 2 L 1 je regulární 5.6 Def: opere rozšířeného sjednoení dvou jzyků tkto: L i L i L 1 L 2 = {u v u, v (L 1 L 2 )} Dokžte, že jestliže jsou jzyky L 1 L 2 regulární, pk i jzyk L 1 L 2 je regulární. Dále njděte dv tkové neregulární jzyky L 1 L 2, y jzyk L 1 L 2 yl regulární. 5.7 Neht L je regulární jzyk. Dokžte, že jzyky L # jsou regulární: ) L # = {v existuje u tkové, že u.v L} ) L # = {w existuje x, y, z tkové, že y L w = xyz} 11
5.8 Dokžte, že pro liovolný jzyk L liovolný konečný jzyk K pltí: ) L je regulární L K je regulární ) L je regulární L K je regulární 5.9 Def: Homomorfismus h : Σ je dný předpisem: h(ε) = ε h(u.v) = h(u).h(v) pro všehny u, v Σ Def: Neht L je jzyk, pk h(l) = {w w = h(u), kde u L} Def: Inverzní Homomorfismus: Příkld h 1 (y) = {x Σ h(x) = y} h 1 (L) = {x Σ h(x) L} h() = 01 h() = 011, pk h() = 01011011 h 1 (0101011) = {} h 1 (0010) = pokud nví h() = ε pk h 1 (01011) = L( ) Ukžte, že R je uzvřen n h, h 1. 5.10 Neht je dán eed {,, } homomorfismus h; h() =, h() =, h() =. Určete: h(), h() h 1 (), h 1 () h(l), L = { n n n n > 0} 5.11 Neht je dán eed {,, } homomorfismus h; h() =, h() =, h() =. Určete: h 1 () h(l), L = {w {, } # (w) = # (w)} h 1 (L), L = {w { } w = 2k, k N} 5.12 Dokžte neo vyvrt te h(l 1 L 2 ) = h(l 1 ) h(l 2 ) h(l 1 L 2 ) = h(l 1 ) h(l 2 ) h((l 1 L 2 ) R ) = h(l R 1 ) h(l R 2 ) h(l 1 L 2 ) = h(l 1 ) h(l 2 ) h(h(l)) = h(l) h 1 (h(l)) = L h 1 (L 1 L 2 ) = h 1 (L 1 ) h 1 (L 2 ) h 1 (L 1 L 2 ) = h 1 (L 1 ) h 1 (L 2 ) h 1 (L 1 L 2 ) = h 1 (L 1 ) h 1 (L 2 ) 12
Bezkontextové grmtiky 6.1 Co generují tyto grmtiky? ) G = ({S, B, A},{, },P, S), kde P = { S B A ε, A S AA, B S BB } ) G = ({S, A},{, },P, S), kde P = { S AS, A S } 6.2 Pro následujíí grmtiku G = ({S, A, B},{, },P, S), kde P = { S AB BA, A AB, B BB } ) njděte derivční strom s výsledkem ) je tento strom určený jednoznčně? ) kolik různýh nejlevějšíh odvození má slovo d) je grmtik jednoznčná? e) je jzyk L(G) jednoznčný? 6.3 Jké mjí hrkteristiké vlstnosti derivční stromy pro regulární grmtiky? 6.4 Oshuje množin jednoznčnýh CFL všehny regulární jzyky? 6.5 Odpovězte zd pro G = ({S},{},P, S), kde P = { S SSS } ) je grmtik jednoznčná? ) je jzyk L(G) jednoznčný? 6.6 Nvrhněte jednoznčnou grmtiku generujíí jzyk L = {ww R w {, } } { k k 1}. 6.7 Nvrhněte grmtiku pro jzyk L = { i j k i, j, k 1, i = j neo j k}, je grmtik jednoznčná? 6.8 Njděte ekvivlentní redukovnou grmtiku k této grmtie: G = ({S, A, B, C, E, F, D},{,, },P, S), kde P = { S A B, A AB AC AE, B BA CB BF, C DE, D DD, E F F F E, F EE } 13
6.9 Njděte ezkontextovou grmtiku, n níž lze ukázt, že opčné pořdí plike odstrnění nenormovnýh neterminálů odstrnění nedosžitelnýh symolů vede k neredukovné grmtie. 6.10 Je jzyk generovný grmtikou G ezkontextový? G = ({S, T },{x, y},p, S), kde P = { S xt, T Sx, xt x y } 6.11 Nvrhněte ezkontextové grmtiky pro jzyky: ) L = {ww R w {,, } } ) L = {w w {,, }, w = w R } ) L = { 3n+2 2n n 2} d) L = { n n m+1 m 1 n 0, m 1} e) L = { n m m d n n, m 0} f) L = {uxv u, x, v {,, }, uv = (uv) R, x = n 2n, n 0} g) L = {w w {, }, # (w) > # (w)} h) L = {w w {, }, # (w) = 2 # (w)} 14
Normální formy CFG, pumping lemm pro CFL 7.1 Odstrňte ε-prvidl: G = ({S, A, B, C, D},{,, },P, S), kde P = { S ABC, A AA BC, B B BA ε, C D A ε, D SSS } 7.2 Odstrňte ε-prvidl: G = ({S, A, B, C, D},{, },P, S), kde P = { S ABC, A A BC, B B A ε, C D A ε, D SSD SA } 7.3 Odstrňte ε-prvidl: G = ({S, X, Y, Z},{1, 0},P, S), kde P = { S 1X Y 1 XZ, X 0Y Z1 S1X Y, Y 1 X1 ε, Z SZ 0 ε } 7.4 Význm konstruke množin N ε n příkldu G = ({A, B, C},{,, },P, A), kde P = { A BC ε, B B ACC, C C AA } 7.5 Odstrňte jednoduhé prvidl. Diskuse o význmu N A. G = ({S, X, Y, A, D, B, C},{, },P, S), kde P = { S X Y, A S D, D, B S, X AS C, C D S, Y SB } 7.6 Převed te do Chomského normální formy G = ({S, A, B},{, },P, S), kde P = { S SSS A B, A A B ε, B B } 15
7.7 Převed te do Chomského normální formy G = ({S, H, L},{0, 1},P, S), kde P = { S 0H1 1L0 ε, H HH 0H1 LH ε, L LL 1L0 HL ε } 7.8 Nvrhněte grmtiku v CNF: ) L = {ww R w {, } } ) L = { 2i 3i j i 1, j 0} 7.9 Neht G je grmtik v CNF. Neht w L(G), w = n. Jká je minimální mximální délk odvození slov w v G? 7.10 Odstrňte levou rekurzi trnsformujte do GNF G = ({S, A, B},{, },P, S), kde P = { S A B A SA SB, A AA SB, B B BBB A } 7.11 Odstrňte levou rekurzi trnsformujte do GNF G = ({S, A, B},{1, 0},P, S), kde P = { S A1 0 1B, A BS0 10 SB0, B 0B B1B S0 } 7.12 Odstrňte levou rekurzi trnsformujte do GNF G = ({S, X, Y },{, d,, },P, S), kde P = { S X Y d Y, X X, Y SS X } 7.13 Odstrňte levou rekurzi trnsformujte do GNF G = ({S, T },{t, s},p, S), kde P = { S T T t T t T S s, T SsT T st t } 7.14 Trnsformujte do Greihové NT. Výslednou grmtiku převed te do 3GNF. G = ({A, B, C, D},{, },P, A), kde P = { A BC, B CD AB, C A, D A DD } 7.15 Dokžte, že následujíí jzyky nejsou ezkontextové ) L = {ww w {, } } ) L = { n n n n 1} ) L = { n m n d m n, m 1} 16
Zásoníkové utomty 8.1 Dný ZA A = ({q 0, q 1, q 2, q 3, q 4 }, {,,, d}, {Z, A}, δ, q 0, Z, {q 4 }) δ(q 0,, Z) = {(q 0, AZ)} δ(q 0,, A) = {(q 0, AA)} δ(q 0,, A) = {(q 1, ε)} δ(q 1,, A) = {(q 1, ε)} δ(q 1, ε, A) = {(q 2, A), (q 3, A)} δ(q 2,, A) = {(q 2, ε)} δ(q 3, d, A) = {(q 3, ε)} δ(q 2, ε, Z) = {(q 4, Z)} δ(q 3, ε, Z) = {(q 4, Z)} Nčrtněte stvový digrm ZA A. Nznčte 4 různé výpočty n vstupu 3 2 (stčí n orázku). Popište jzyk L(A). 8.2 Je dný ZA A = ({q 0, q 1, q 2, q 3, q 4 }, {,,, d}, {X, Y, Z}, δ, q 0, Z, {q 2, q 4 }), kde δ(q 0,, Z) = {(q 0, X)} δ(q 1,, Y ) = {(q 1, Y Y )} δ(q 2,, Y ) = {(q 2, ε)} δ(q 3,, X) = {(q 3, ε)} δ(q 0,, X) = {(q 0, XX), (q 1, Y X)} δ(q 1,, Y ) = {(q 2, ε)} δ(q 2,, X) = {(q 3, ε)} δ(q 3, d, X) = {(q 4, ε)} ) Popište jzyk keptovný utomtem, pokud F = {q 2 }. ) Popište jzyk keptovný utomtem s původním F, tj. F = {q 2, q 4 }. 8.3 Konstruujte ZA (keptujíí konovým stvem neo prázdným zásoníkem) pro jzyky: ) L = { i j i j, i, j 0} ) L = {w w {, } ; w = w R } ) L = { 3n 2n n 1} d) L = { 3n+2 2n 1 n 1} e) L = {w w {,, } ; # (w) = # (w)} f) L = {w w {,, } ; # (w) # (w)} g) L = { k j 1 j k 2j} h) L = { n+m m+p p+n m, p, n 1} i) L = { i j j i, j 1} { k k m k, m 1} j) L = { k1 k2... kr r > 1, k i 1 (i = 1,..., r; existuje p, s : p s, k p = k s )} 8.4 Dný ZA A = ({q 0, q 1 }, {, }, {Z, A}, δ, q 0, Z, {q 1 }) keptujíí konovým stvem trnsformujte n ekvivlentní utomt keptujíí prázdným zásoníkem. Určete L(A). δ(q 0,, Z) = {(q 0, AZ)} δ(q 0,, A) = {(q 0, AA)} δ(q 0,, A) = {(q 1, ε)} 17
8.5 Dný ZA A = ({q}, {(, )}, {Z, L, P }, δ, q, Z, ) keptujíí prázdným zásoníkem trnsformujte n ekvivlentní utomt keptujíí konovým stvem. Určete L(A). δ(q, (, Z) = {(q, L)} δ(q, (, L) = {(q, LL)} δ(q, ), L) = {(q, ε)} 8.6 Pro dnou G nvrhněte (rozšířený) ZA, který provádí syntktikou nlýzu: ) shor dolů, ) zdol nhoru. V oou přípdeh proved te nlýzu slov. G = ({S, A, B},{, },P, S), kde P = { S ε SA, A AB B, B SS A } 8.7 Rozšířený zásoníkový utomt, který vznikl metodou syntktiké nlýzy zdol nhoru z grmtiky z příkldu 8.6 převed te n stndrdní zásoníkový utomt. 8.8 Dný ZA A = ({q 0, q 1, q 2 }, {,, }, {A, B, C}, δ, q 0, A, }) keptujíí prázdným zásoníkem trnsformujte n ekvivlentní ezkontextovou grmtiku. δ(q 0,, A) = {(q 1, B)} δ(q 1,, A) = {(q 2, ε)} δ(q 2, ε, B) = {(q 2, ε)} δ(q 0,, A) = {(q 1, AB)} δ(q 1,, B) = {(q 0, ABC)} δ(q 2, ε, C) = {(q 0, A)} 18
Uzávěrové vlstnosti CFL 9.1 O kždé z následujííh implikí rozhodněte, zd je prvdivá ) L 1, L 2 ezkontextové L 1 L 2 je kontextový ) L 1 ezkontextový L 1 L 2 není ezkontextový L 2 není ezkontextový ) L 1 regulární L 2 ezkontextový o (L 1 L 2 ) ezkontextový d) L 1 konečný L 2 ezkontextový o (L 1 L 2 ) ezkontextový 9.2 Jsou dné jzyky L = {ww R w {, } } R = L(( + ) + ) Nvrhněte ZA pro jzyk L R δ L (q 0, x, Z) = {(q 0, xz)} x {, } δ R (p 0, ) = p 0 δ L (q 0, x, y) = {(q 0, xy)} x, y {, } δ R (p 0, ) = p 1 δ L (q 0, ε, x) = {(q 1, x)} x {,, Z} δ R (p 1, ) = p 1 δ L (q 1, x, x) = {(q 1, ε)} x {, } δ R (p 1, ) = p 0 δ L (q 1, ε, Z) = {(q 2, Z)} F L = {q 2 } F R = {p 0 } 9.3 Je dán ezkontextová grmtik G = ({S},{, },P, S), kde P = { S S S } ) Má tto grmtik vlstnost seevložení? ) Má jzyk generovný grmtikou vlstnost seevložení? ) Je jzyk generovný grmtikou regulární? d) Jký je vzth mezi vlstností seevložení regulritou? 9.4 Je dán ezkontextový jzyk L, L {, } Zkonstruujeme nový jzyk L 1 tkto: ) L 1 = {x y {, } ; xy L} ) L 1 = {x y {, } ; yx L} Dokžte, že L 1 je tky ezkontextový. 19
Konstruke Turingovýh strojů 10.1 Nvrhněte determinstiký jednopáskový Turingův stroj rozhodujíí jzyk L = { n m n d m m, n 1} 10.2 Nvrhněte deterministiký jednopáskový TS se vstupní eedou {0, 1} tkový, že výpočty n sloveh tvru 0 1 jsou keptujíí výpočty n osttníh sloveh jsou nekonečné. 10.3 Nvrhněte 3-páskový (vstupní + 2 provní pásky) TS pro jzyk L = {w {, } # (w) = # (w)} 10.4 Nvrhněte TS (determ. neo nedeterm.) TS pro jzyk: ) L = { i j k k = ij, i, j N} ) L = {ww w {, } } ) L = { p p není prvočíslo } d) L = { n w w {0, 1}, w je inární zápis čísl n} 20
Vzth TS grmtik typu 0, uzávěrové vlstnosti 11.1 Ojsněte rozdíl mezi pojmy TS keptuje TS rozhoduje. 11.2 Je dný DTS T (resp. jeho část). Podle lgoritmu ze skript nvrhněte k němu ekvivlentní grmtiku: δ(q, ) = (q,, R) δ(q, ) = (p, A, R) δ(p, ) = (q,, L) δ(q, ) = (p, A, R) δ(p, ) = (q,, L) δ(q, ) = (q ept, A, R) Kde je levá konová znčk, oznčuje prázdné políčko, stvy jsou {p, q, q ept }, q je počáteční stv, vstupní eed je {, } pásková eed odpovídá množině {,, A,, }. 11.3 O kždé z následujííh implikí rozhodněte, zd je prvdivá. ) R je regulární, L je rekurzivně spočetný R L je regulární ) L je rekurzivní o-l je rekurzivní ) L je rekurzivní L je rekurzivní d) L je kontextový o-l je rekurzivní e) L není rekurzivní o L není rekurzivní f) L není rekurzivní R je rekurzivní L R není rekurzivní g) L není rekurzivní, R je rekurzivní R L L R není rekurzivní 11.4 Nvrhněte grmtiky pro následujíí jzyky: {w w {,, }, # (w) = # (w) = # (w)} {ww w {,, } } { n n n n 0} { n n je monin 2} 11.5 Ukžte, že jzyk L = {w w je kód dvojie (A, v) tkové, že TS A zství svůj výpočet nd slovem v} je jzyk typu 0 dle Chomského hierrhie. 11.6 Existuje jzyk, který není ni jzykem typu 0 dle Chomského hierrhie? 21
Reduke 12.1 Rozhodněte, zd pltí následujíí implike. Své rozhodnutí zdůvodněte. ) A m B o A m o B ) A m B B je regulární A je regulární ) A je rekurzivně spočetná o A m A A je rekurzivní d) A je rekurzivně spočetná A m o A A je rekurzivní e) A m B A je rekurzivní B je rekurzivní f) A je rekurzivně spočetná A m HALT 12.2 Je dán jzyk A = { M výpočet TM M n slově ε je konečný}. Dokžte, že A není rekurzivní. (Návod: njděte reduki prolému zstvení n A.) Je jzyk A rekurzivně spočetný? Je komplement jzyk A rekurzivně spočetný? 12.3 Nlezněte řešení následujíího Postov systému: {[ ] [ ] [ [ ]},,, ] 12.4 Ukžte, že Postův korespondenční prolém je nerozhodnutelný, i když se omezíme n eedu {0, 1}. 12.5 Ukžte, že prolém ekvivlene dvou Turingovýh strojů EQ = { M 1, M 2 M 1 M 2 jsou Turingovy stroje L(M 1 ) = L(M 2 )} je nerozhodnutelný. 22
Složitost 13.1 Rozhodněte, které z následujííh vzthů pltí. Odpovědi zdůvodněte. ) 2n O(n) ) n 2 O(n) ) n log 2 n O(n 2 ) d) n log 2 n O(n) e) 3 n 2 O(n) f) 3n 2 + 4n + 17 O(n 2 n + 1) g) (2n)! O(n! 2 ) 13.2 Rozhodněte, zd pltí následujíí vzth. Odpověd zdůvodněte. g(n) O(f(n)) = f(n) o(g(n)) 13.3 Dokžte, že tříd P je uzvřená n opere sjednoení, komplement zřetězení. Rozhodněte, n které z těhto operí je uzvřen tříd NP. Odpověd zdůvodněte. 13.4 Tříd onp je definován jko onp = {o L L NP}. Rozhodněte, které z následujííh tvrzení pltí. Odpovědi zdůvodněte. ) onp = o NP ) L 1, L 2 onp = L 1 L 2 onp ) L 1 NP, L 2 L 1, L 2 onp = L 1 L 2 NP 13.5 Rozhodněte, zd jsou následujíí formule splnitelné. U splnitelnýh formulí popište nějké splňujíí přiřzení. ) (x y) (x y) ( x y) ( x y) ) (x y) (x y z) ( x y) ( x y) (x z) ) (x y) (x y z) ( x y) ( x y) (x z) d) (u v w) (w y z) (w z x) (x y z) e) (x y z) ( x y z) (x y z) (x y z) ( x y z) (x y z) ( x y z) 13.6 Dokžte, že následujíí prolémy jsou NP-úplné. ) Prolém Hmiltonovské esty v grfu: HAMPATH = { G, s, t G je orientovný grf oshujíí Hmiltonovskou estu z s do t} ) Prolém k-kliky (k-klik je úplný podgrf s k vrholy): CLIQUE = { G, k G je neorientovný grf s k-klikou} ) Prolém podgrfového izomorfismu (Sugrph Isomorphism, SGI): SGI = { H, G H = (V, E), G = (U, F ) jsou neorientovné grfy tkové, že existuje injektivní zorzení f : V U splňujíí (u, u ) E = (f(u), f(u )) F } 23
13.7 Určete vzthy inkluze/rovnost mezi následujíími dvojiemi složitostníh tříd. Svoje tvrzení zdůvodněte. ) TIME(n 2 ) TIME(n 3 ) ) SPACE(2n 2 ) SPACE(100n 2 ) ) SPACE(n 2 ) TIME(n 2 ) d) NSPACE(n 2 ) SPACE(n 5 ) e) P TIME(2 n ) 13.8 Zkonstruujte jednopáskový deterministiký Turingův stroj, který rozhoduje jzyk L = {0 k 1 k k 0} v čse O(n log n). Není nutné uvádět formální popis stroje. 24
Zdání vičení IB005 1. vičení: Opere nd jzyky Připomeňte zákldní terminologii definie Připomeňte zákldní opere nd jzyky přitom vičte příkldy 1.1 1.2 Cvičte 1.3, u 1.3 d) nvičte nepltnost tvrzení dokzujeme protipříkldem. Cvičte 1.4 Cvičte 1.6 Cvičte 1.7 Cvičte 1.8 ) ) (jednu inkluzi skutečně dokžte) Připomeňte pojem grmtiky Cvičte 1.9 Dle zývjíího čsu, jink z DÚ, přikldy 1.10, 1.11 2. vičení: Konečné utomty regulární grmtiky K čemu slouží Konečné utomty? N příkldu 2.1 vysvětlete o jsou jk fungují konečné utomty Uved te formální definii DFA Příkld 2.2-d,f (!deterministiké FA!) Příkld 2.2g,h volitelně dle čsu Příkld 2.3 Příkld 2.4 Příkld 2.5 Příkld 1.11 3. vičení: Pumping lemm, (Myhill-)Nerodov vět Znění použití Pumping Lemm pro regulární jzyky Příkld 2.6 potivě, zryhleně, g potivě, e zryhleně Znění Nerodovy věty Myhill-Nerodovy věty Vzth deterministikýh utomtů vzth L mininimálního utomtu 25
Příkld 3.9 Příkld 3.12 Příkld 3.10 jednu odrážku pořádně, dlší přípdně zryhleně 4. vičení: Minimlize knonize DFA, nedeterministiké FA determinize Připomeňte si L. Definujte minimální konečný utomt. Příkld 3.2 Příkld 3.3 Definujte nedeterministiké FA, způso keptování NFA. Příkld 3.4 Příkld 3.5 Upozorněte, ze pro minimlizi, je tře vyjít z deterministikého utomtu. 5. vičení: Ekvivlene FA, regulárníh grmtik regulárníh výrzů, ε-kroky, Kleeneho vět Vysvětlete prinip trnsforme odstrnění ε-kroků Příkld 4.7 Zopkujte vyjdřoví ekvivleni dosud známýh formlismů Formulujte podsttu lgoritmů pro převod FA n regulární grmtiky zpět Příkld 4.2 Příkld 4.4 Připomeňte si definii regulárníh výrzů (syntx sémntik) Příkld 4.11 Prinip trnsforme regulárníh výrzů n FA zpět Příkld 4.8 ) Příkld 4.10 6. vičení: Uzávěrové vlstnosti regulárníh jzyků Příkld 5.1 Příkld 5.2 Příkld 5.3 formulujte formlní konstruki synhronního součinu Příkld 5.3-f slovní rgumente (hint důkzu) proč no či ne Příkld 5.4 Příkld 5.5 26
Příkld 5.6 Příkld 5.7 formální konstruke Příkld 4.12 ) diskuze k 4.12 ) 7. vičení: Bezkontextové grmtiky derivční stromy, redukovná CFG Připomeňte CFG ukžte jk vypdá jk funfuje CFG pro { n n n 0} Příkld 6.1 Příkld 6.2 Příkld 6.3 Příkld 6.4 Příkld 6.5 Příkld 6.6 Příkld 6.8 Příkld 6.9 Příkld 6.10 Příkld 6.11 (dle čsu) Příkld 6.7 rozmyslet z DÚ 8. vičení: Normální formy CFG Připomeňte prinip ostrňování ε-prvidel Příkld 7.2 Připomeňte prinip ostrňování jednoduhýh prvidel Příkld 7.5 Definujte Chomského NF (CNF) připomeňte postup převodu CFG do CNF Příkld 7.6 Příkld 7.8) Příkld 7.9 Vysvětlete odtrnění přímé levé rekurze n A->A A d e Příkld 7.12 27
9. vičení: Zásoníkové utomty syntktiká nlýz Příkld 8.1 (zdejte přehodovou reli tulkou [q 0 Z/ (q 0, AZ)] Příkld 8.2 Příkld 8.3 Příkld 8.6 Příkld 8.8 Diskutujte ekvivlene způsou keptování zás. utomtů podsttu převodu Zude-li čs, vičte příkldy 8.4, 8.5 8.7 10. vičení: Uzávěrové vlstnosti ezkontextovýh jzyků pumping lemm pro ezkontextové jzyky Příkld 7.15 Příkld 9.1 Příkld 9.2 (není nutné konstruovt elou přehodovou funki) Příkld 9.3 Příkld 9.4 (formální konstruke) 11. vičení: Konstruke Turingovýh strojů Připomeňte jk fungují Turingovy stroje Příkld 10.1 Příkld 10.2 Příkld 10.3 Příkld 10.4 formulujte prinip lgoritmu pro TS 12. vičení: Vzth TS grmtik typu 0, uzávěrové vlstnosti Příkld 11.1 Diskutujte vzth TS eptuje/rozhoduje grmtiky typu 0 Příkld 11.2 Příkld 11.3 Příkld 11.4 Příkld 11.4-d pouze myšlenky fungování CFG Příkld 11.5 Příkld 11.6 13. vičení: Reduke 28
Zdání vičení IB102 1. vičení: Opere nd jzyky Připomeňte pojmy eed, slovo, jzyk pod. Připomeňte zákldní opere nd jzyky provičte je s využitím příkldů 1.1 (průnik sjednoení vičit netře) 1.2. Příkld 1.3 d) e) f) h). U d) vysvětlete, že nepltnost tvrzení dokzujeme protipříkldem. Příkld 1.4. V sudýh skupináh vičte příkld 1.5, v lihýh příkld 1.6. Příkld 1.7. Příkld 1.8 ). Zdůrzněte, že dv jzyky jsou stejné, právě když pltí oě inkluze. Jednu inkluzi dokžte. Příkld 1.8 ). Pozor, rovnost nepltí. 2. vičení: Grmtiky, deterministiké konečné utomty Připomeňte pojem grmtiky vičte příkld 1.9 ) neo ). Příkld 1.11 ) d). Příkld 2.1. Příkld 2.2 ) ) ) d). Dejte prosím studentům možnost, y se pokusili lespoň nějký utomt sestrojit smi. Pozor, utomty musí ýt deterministiké. Příkld 2.3 ) ). Pokud vám zyde čs, vičte příkld 2.5 zylé části příkldu 1.11. 3. vičení: Pumping lemm, minimlize knonize konečnýh utomtů, nedeterministiké utomty Zopkujte Pumping lemm. Příkld 2.6. Z lehčíh příkldů ) ) udělejte jeden pořádně, osttní zryhleně. Dále udělejte pořádně příkld g) zryhleně příkld e). Upozorněte studenty, že vlstní text důkzu zůstává v podsttě stejný (důkz lze prezentovt jko formulář, který se vždy n pár místeh doplní). Zdůrzněte, že před minimlizí utomtu je tře odstrnit nedosžitelné stvy ztotálnit přehodovou funki. Příkld 3.2 ). 29
Budete-li mít poit, ze jeden příkld n minimlizi nestčil, pokrčujte příkldem 3.1 ) přípdně 3.3. Zopkujte nedeterministiké FA. Příkld 3.4 ) ) d). Zude-li čs, udělejte i osttní části. 4. vičení: Determinize, odstrnění ε-kroků, uzávěrové vlstnosti regulárníh jzyků Zopkovt determinizi. Příkld 3.5 ) neo ). Upozorněte, že determinizí může vzniknout stv jeho následníi se počítjí ěžným způsoem. Zopkovt odstrnění ε-kroků. Příkld 4.5. Příkld řešte pomoí tulkového zápisu. Chete-li, můžete nejdřív ukázt, jk sndno se v tom udělá hy, když se to dělá přímo n grfu. Budete-li mít poit, že příkld 4.5 nestčil, pokrčujte příkldem 4.7 (ovykle stčí spočítt jen pár řádků). Zopkujte, n které opere jsou regulární jzyky uzvřené. Diskutujte, n které opere je/není uzvřen tříd konečnýh jzyků. Příkld 5.8. Tento příkld ukzuje, že konečná změn jzyk (tj. přidání či oderání konečně mnoh slov) nemá vliv n jeho (ne)regulritu. Toto pozorování lze použít v dlšíh příkldeh, npř. v příkldu 5.3. Příkld 5.1. Dokžte uzvřenost neregulárníh jzyků n komplement (včetně formálního důkzu). Příkld 5.2. Příkld 5.3. Příkld 5.4. 5. vičení: Regulární výrzy, ekvivlene FA, regulárníh výrzů grmtik Příkld 5.5. Příkld 5.6. Příkld 4.8. Stčí 2 odrážky. Příkld 4.9. Příkld 4.10. Příkld 4.11. Příkld 4.2. Příkld 4.4. 30
6. vičení: Bezkontextové grmtiky, derivční stromy, jednoznčnost, redukovné grmtiky Příkld 6.11 ). Příkld 6.1. U druhé grmtiky neztráejte mo čsu, příkld slouží jen jko demonstre popisné síly ezkontextovýh grmtik. Příkld 6.2. Příkld 6.3. Příkld 6.5. Příkld 6.6. Není tře formálně dokzovt, že je nvržená grmtik jednoznčná. Slovní rgumente postčí. Příkld 6.7. Stčí identifikovt prolém. Příkld 6.8. Připomeňte, že nejdříve je tře odstrnit nenormovné symoly ž pk ty nedosžitelné. Opčné pořdí může vyústit v neredukovnou grmtiku, ož lze ukázt i n příkldu 6.8. Zyde-li čs, dělejte dlší odrážky z příkldu 6.11. 7. vičení: Trnsforme ezkontextovýh grmtik Příkld 7.2. Příkld 7.5. Příkld 7.6. Příkld 7.8 ). Pokud stíháte, udělejte i část ). Připomeňte odstrnění přímé levé rekurze n prvidleh A A A da e. Příkld 7.12. Cvičte pouze odstrnění levé rekurze (trnsformi do GNF v IB102 neučíme). Pokud y jeden příkld nestčil, udělejte ještě příkld 7.13 neo 7.10. 8. vičení: Pumping lemm pro ezkontextové jzyky, zásoníkové utomty Příkld 7.15. Jednu odrážku udělejte pečlivě, v dlšíh se soustřed te jen n to podsttné. Příkld 8.1. Zmiňte prosím, že yl definován pojem krok výpočtu, le pojem výpočet pro PDA definován neyl. Lze si předstvit hned několik defini, které kromě zjevnýh poždvků splňují i tyto: 1. Musí se přečíst elý vstup. V tom přípdě y v příkldu existovl jen 1 výpočet. 2. Musí se číst dokud to lze. V tomto přípdě existují 4 výpočty. 3. Stčí přečíst liovolnou část vstupu. V tom přípdě je výpočtů hodně. Příkld 8.3. Udělejte pořádně spoň dvě odrážky včetně ). Zude-li čs, vičte dlší odrážky. 31
9. vičení: Nedeterministiká syntktiká nlýz, uzávěrové vlstnosti ezkontextovýh, rekursivníh rekursivně spočetnýh jzyků Příkld 8.6. Ukžte, jk lze konstruki nlyzátoru shor dolů použít u příkldů n konstruki PDA: nejdřív se zkonstruuje CFG z ní pk lehe PDA. Velmi elegntně tk lze řešit tře příkld 8.3 ). Příkld 9.1. Příkld 9.3. Příkld 11.3 ) d) e) f) g). Zude-li čs, řešte příkld 11.4. 10. vičení: Konstruke TM, reduke rozhodnutelnost prolémů Příkld 10.1. Příkld 10.2. Příkld 12.1. 11. vičení: Reduke rozhodnutelnost prolémů, P NP Příkld 12.2. S využitím příkldu 12.3 připomeňte definii Postov korespondenčního prolému. Příkld 12.4. Příkld 12.5. Příkld 13.3. Příkld 13.4. 12. vičení: Složitostní třídy, NP-úplné prolémy Zopkujte pojem konjunktivní normální form (nf-form) formulí, pojem 3nf-form prolém 3SAT. Ke zopkování můžete využít část příkldu 13.5. Příkld 13.6 ) ). Příkld 13.7. Zude-li čs, udělejte i příkldy 13.6 ) 13.8. 32
Řešení některýh příkldů 33
Formální jzyky, regulární grmtiky 1.1 ) {xy, y, yx, z} ) {y} ) {xyy, xyz, yy, yz, yxy, yxz}, {yxy, yy, yyx, zxy, zy, zyx} d) {ε}, {y, z}, {yy, yz, zy, zz}, {yyy, yyz, yzy, yzz, zyy, zyz, zzy, zzz}, {ε, y, z, yy, yz, zy, zz, yyy, yyz, yzy, yzz, zyy, zyz, zzy, zzz,...} tj. liovolné slovo z písmenek y z včetně ε, {y, z, yy, yz, zy, zz, yyy, yyz, yzy, yzz, zyy, zyz, zzy, zzz,...} tj. liovolné slovo z písmenek y z kromě ε e) {x, y, z} {y, z} tj. liovolné slovo složené z písmenek x, y z včetně ε, kromě slov y z 1.2 ) {ε},, {ε}, {ε} ) {ε},,, {ε} pokud ε L jink ),, {ε}, L 1.3 ) {,,,, ε} ) {, } ) {,,,,,,,,,, } d) ne, protipříkld e) jedno slovo z množiny {,,,,,, } f) no, protože ε L 2 ; ne, protipříkld L 1 = {}, L 2 = {}; pro pokročilé: implike = pltí, implike = pltí pouze v uprvené podoě ε L 2 = (L 1 L 1 L 2 L 1 ) g) no, no, ne h) všehn slov nd dnou eedou, kromě slov z jzyk L 2, formálně: {,,, d} L 2 1.4 ) Nepltí. Protipříkld: L = {, }, i = 2, L i = {,,, }, {w i w L} = {, } ) Nepltí. Protipříkld: L = {}, L 2 = {}, le 2 ) L = {} 1.5 L 1 = L 4 = L 5 L 2, L 1 = L 4 = L 5 L 3, L 1 = L 4 = L 5 L 6, neporovntelné: L 2, L 3, L 6 L 1 všehn slov nd {x, y, z} L 2 všehn slov nd {x, y, z} tvru xyzxyzxyz... xyz L 3 všehn slov nd {x, y, z}, ve kterýh jsou všehn x před všemi y z všehn y před všemi z L 4 všehn slov nd {x, y, z}; protože {x, y, z} {x} {y} {z} L 5 všehn slov nd {x, y, z}; protože {x, y, z} {x, y} {z} L 6 všehn slov nd {x, y, z}, která oshují lespoň jeden výskyt x 1.6 L 1 = L 5 L 2 L 6, L 1 = L 5 L 3 L 4, L 2 L 4, neporovntelné: L 2 L 3, L 6 L 3, L 6 L 4 L 1 všehn slov nd {x, y, z} L 2 všehn slov nd {x, y, z}, kromě ε L 3 všehn slov nd {x, y, z}, ve kterýh jsou všehn x před všemi y z všehn y před všemi z L 4 ty slov z L 3, která mjí právě 2 výskyty y L 5 všehn slov nd {x, y, z}; protože {x, y, z} {x} {y} {z} L 6 všehn slov nd {x, y, z}, která oshují lespoň jeden výskyt x 1.7 ) (L 1 L 2 ) L 1 (L 1 L 2 ) L 1 (L 1 L 2 ) ) (L 1 L 1 L 1 L 2 L 2 L 1 L 2 L 2 ) ) L 1 (L 1 L 2 ) L 2 d) L 1 L 2 L 1 (L 1 L 2 ) L 1 L 2 (L 1 L 2 ) L 2 pokud nznáme, že ε tké zčíná končí stejným znkem, je tře k řešení přidt (L 1 L 2) e) (L 1 L 2 ) L 1 L 2 L 1 (L 1 L 2 ) f) (L 1 L 1 L 1 L 2 L 2 L 1 L 2 L 2 ) L 1 (L 1 L 2 ) L 2 g) ((L 1 L 1 L 1 L 2 L 2 L 1 L 2 L 2 ) ) C 1.8 ) ne, L 1 = {} L 2 = {} ) no, nutno dokázt oě inkluze ) ne, L 1 = {}, L 2 = {} L 3 = {, ε} d) ne, L 1 = {} L 2 = {} e) ne, L 1 = {} L 2 = {} f) no, nutno dokázt oě inkluze g) ne, L 1 = {} L 2 = {} 1.9 ) { n n n N 0 }, typu 0 ) {, } {} {,, } +, typu 3 (regulární) 1.10 {w {, } # (w) = 2k, # (w) = 2j; j, k N 0 }, dolní indexy u nvrženýh neterminálů předstvují zytek po dělení počtu (resp. ) dvěm Deterministiké konečné utomty, pumping lemm 2.1 ) q 0 q 1 q 2 q 3, ) L = {} {, } {} ) L = ({} {} {}) ({} {} ({} {} {, } ) {} {, } ) 34
2.2 ) q,, 0 q,, 1 q,, 2 q,, 3 q,,,, 4 q 5 ) q 00 q 11 q 02 q 13 q 04 q 15 q 06 q 16 q 05 q 14 ) q 0 q 1 q 03 q 12 q 01 q 10 q 2 d) ε, e) ε, f) ε,,, g) 0 1, 2 d,d,d 3,, 4 d 5,,,d d h) 1 2 3 4, 2.3 ) 1 2 d d 4 3 35
, ) 1 2 3 4 5,,,,,, ) 1 2 d 3 d 4 5, 6 2.4 L = {}.{}.{}.({}.{d}) {} 2.5 L = {w {, } # (w) = # (w) w = u.v # (u) # (u) 3} 2.6 U příkldu e) je tře volit slovo n n!+n.,,,d 2.8 ) 1.11 1,,,d 1.11 S,,,d S 1,,,d S 2, 1.11 S 0, S 1, S 2, S 3 1.11d S 0, S 1, S 2,, 1.11e S ε S S S,, 1.11f Není regulární., 1.11h S ε S S S,, 1.11i S A C B E D 36
1.11j 1 Σ{0,5} Σ{0,5} 2 0,5 Σ{0,5} 3 0,5 5 Minimlize DFA, nedeterministiké FA, (Myhill-)Nerodov vět 3.1 ) 3.2 ) A B C B D B C C D D C B A B C B C A C C D D C E E F E F D F ) ) A B C B B C C C D D D C A B C B D B C B C D E B E F C F F F Výsledné utomty v oou přípdeh nejsou ekvivlentní utomtům uvedeným v zdání vprvo. 3.3 Není. 3.4 ),,,d,,,d ),,,,,,,d ) 0,1 d) 1 0,1 0,1 0,1 0,1 e) 0 1 0 1 1 37
0,1 f) 1 1 0 0,1 0 0 0 0 0,1 3.5 ) g) 0 1 1 1 0 [1] [23] [34] [1] [23] [123] [14] [234] [34] [123] [1] [34] [123] [123] [134] [1234] [14] [123] [134] [134] [234] [123] [14] [234] [134] [123] [134] [134] [1234] [123] [134] [1234] ) [1] [12] [1] [1] [12] [12] [13] [1] [13] [12] [1] [14] [14] [125] [1] [1] [125] [12] [136] [1] [136] [127] [1] [14] [127] [12] [13] [1] 3.6 ({, }.{} {, }.{}.{, }).{, }.{} 3.8 ) Předpokládejme, že tkový utomt existuje. Pk ze slov 0, 1, 2, 3, 4 musejí dvě nutně pdnout do stejné třídy rozkldu Σ / L. Oznčme je i, j (i j) ez újmy n oenosti předpokládejme, že i < j. Pk pltí i. 4 j = 4+i j L j. 4 j = 4 L, tedy i L j L 5. ) Anlogiky jko v ). 3.10 ) Důkz sporem. Předpokládejme, že L je regulární. Pk prefixová ekvivlene L má konečný index, oznčme jej n. Pk ovšem ze slov, 2, 4,..., 2n nutně musí některá dvě slov pdnout do stejné třídy rozkldu, oznčme je k, l (k l). Po přiřetězení slov k dostáváme slovo k k L slovo l k L. Tím je dosžen spor s předpokldem L není regulární. ) ε,, 2,..., n z čehož k, l (BÚNO k < l), která k k L, l k / L ), 2,..., n+1 z čehož k, l (k l), která k k L, l k L d) ε,, 2,..., n z čehož k, l (BÚNO k < l), která k k L, l k L 3.11 Definujeme inární reli tkto: u v # (w) # (w) (mod 3) je ekvivlene, je prvá kongruene, = 3, tedy má konečný index, L = {w # (w) mod 3 = 0} 3.12 ) 4 ) nemá konečný index 3.13 ) je ekvivlene i prvá kongruene, index je 4. L může ýt liovolný jzyk, jehož minimální utomt odpovídá přímo reli. Tkovýh jzyků je 12, ož je vidět po nkreslení utomtu (ez keptujííh stvů) podle zvážení, pro které oznčení konovýh stvů je utomt minimální. Jzyky L jsou právě ty, které lze popst stejným utomtem, le s tkovou množinou konovýh stvů, při které utomt není minimální. Npř. L = {, }. ) není ekvivlene (není trnzitivní). ) je ekvivlene i prvá kongruene, index je 9. Lze podle ní sestvit tento utomt: 38
1 2 3 0 ε 0 1 2 3 Je vidět, že utomt neude při žádném oznčení konovýh stvů minimální: stvy ε, 0, 0 mjí stejné přehody vždy udou lespoň dv z nih oznčeny jko keptujíí neo nekeptujíí tudíž ty dv stvy udou jzykově ekvivlentní. Nopk L může ýt jkýkoliv jzyk rozpoznávný uvedeným utomtem s liovolným oznčením konovýh stvů. Tkovýh jzyků L je tedy elkem 2 9. Regulární grmtiky výrzy FA, ε-kroky, Kleeneho vět 4.1 S {A, q f } {C} A {A} {B, q f } {q f } B {B, C} {C} {A, q f } C {A, q f } {B, q f } q f 4.2 4.5 4.7 S {X} {Y } {q f } X {S, X} Y {S} {Z} Z {S} {q f } {q f } q f d 0 {0, 1, 2, 3, 4} {3, 4} 1 {0, 1, 2, 3, 4} {3, 4} 2 {3, 4} 3 {3, 4} {2} 4 {3, 4} {2} 1 {1, 2, 5, 6} {2, 3, 5, 6} 2 {2, 5, 6} {2, 3, 5, 6} 3 {2, 6} 4 {1, 2, 5, 6} {1, 2, 3, 4, 5, 6} {2, 3, 6} 5 {2, 5, 6} {2, 3, 5, 6} {2, 3, 6} 6 {2, 5, 6} {2, 3, 5, 6} {2, 3, 6} 4.11 ) ( + ) ) ( ) ) ( + ) + ( + ) + + (pokud ε tké zčíná končí n stejným symolem, přičteme ještě ε) d) (( + )( + )) 4.12 ) M 1 je tříd všeh konečnýh jzyků. 39
) Neht Σ 1 je nějká eed. Pk C(Σ 1 ) definujeme jko množinu všeh slov, kde se kždé písmeno z eedy vyskytuje spoň jednou, tj. C(Σ ) = {w Σ 1 Σ 1 : # (w) > 0}. Pk M 2 je tříd všeh jzyků L tkovýh, že pro všehny Σ 1, které jsou podmnožinou eedy jzyk L, pltí: L C(Σ 1 ) je konečný neo C(Σ 1 ) L je konečný. Poměrně sndno se ukáže, že M 2 všehny tkové jzyky musí oshovt že je tto tříd zároveň uzvřená n sjednoení, průnik komplement. ) M 3 je tříd všeh konečnýh jzyků. Uzávěrové vlstnosti R 5.1 Nepltí. Jzyky L i = { i i } pro kždé i > 0 jsou konečné tudíž regulární, le i=1 L i = { n n n > 0} není regulární. 5.2 L i = {, } { i i } pro kždé i > 0. Pk i=1 L i = {, } { n n n > 0}, ož není regulární jzyk, protože { n n n > 0} není regulární jzyk regulární jzyky jsou uzvřené n doplněk. 5.3 Neregulární jzyky jsou uzvřené n komplement. U všeh osttníh operí lze njít jzyky tkové, že výsledkem je neregulární jzyk, i tkové, že výsledek je regulární. Neht R = { n n n > 0} je jzyk nd Σ = {, }. R jistě není regulární. 5.4 Pltí. opere regulární výsledek neregulární výsledek L 1 L 2 R o R = R R = R L 1 L 2 R o R = Σ R R = R L 1 L 2 R R = R o R = R L 1 L 2 (R {ε}) o R = Σ R R L 1 (o R) = Σ R 5.5 Ani jedn implike nepltí. 5.6 Stčí zvolit L 1 jko liovolný neregulární jzyk L 2 jko doplněk L 1. Bezkontextové grmtiky 6.1 ) L = {w {, } # (w) = # (w)} ) Jzyk se nedá mo rozumně popst. 6.4 Ano, kždý regulární jzyk je jednoznčný CFL. Normální formy CFG, pumping lemm pro CFL 7.9 Minimální i mximální délk odvození je 2n 1. Zásoníkové utomty 8.2 ) { i j i > j > 0} Uzávěrové vlstnosti CFL 9.3 ) no ) ne ) no d) tříd ezkontextovýh jzyků ez vlstnosti seevložení se rovná třídě regulárníh jzyků Konstruke Turingovýh strojů 10.2 Návod: TS ude donekonečn číst vstupní pásku posouvt se vprvo, neo ude ve dvou kroíh opkovně posunovt hlvu vlevo vprvo. Vzth TS grmtik typu 0, uzávěrové vlstnosti 11.3 ) Nepltí. Stčí vzít liovolný neregulární rekurzivně spočetný L nd eedou Σ R = Σ. ) Pltí (viz. skript). ) Pltí (viz. skript). d) Pltí. e) Pltí. f) Nepltí. Stčí vzít R L. g) Pltí. Plyne z uzvřenosti rekurzivníh jzyků n sjednoení. 40
11.6 L = {w w je kód dvojie (A, v) tkové, že TS A nezství svůj výpočet nd slovem v} Reduke 12.1 ) Pltí (přímo z definičního vzthu). ) Nepltí. A = {ww w {, } }, B = {0}, f(x) = 0 pokud x je tvru ww, f(x) = 1 jink. ) Pltí. d) Pltí (připomeňme, že A m B implikuje o A m o B). e) Nepltí. A =, B je prolém zstvení. f(x) = y, kde y je liovolné slovo nd {0, 1, #}, které neleží v B. f) Pltí. f(w) = M, w, kde M je TM keptujíí A tkový, že místo do zmítjíího stvu zčne yklit. Tedy M keptuje w právě když zství. Funke f(w) = M, w, kde M je liovolný zvolený TM keptujíí A nopk redukí ýt nemusí (npř. pokud je A rekurzivní M je úplný). 12.2 A není rekurzivní, protože n něj lze redukovt prolém zstvení. A je rekurzivně spočetný (lze ukázt přímo neo redukí n prolém keptování). o A není rekurzivně spočetný (A y pk yl rekurzivní). 12.3 Řešením je posloupnost 2, 2, 4, 3, 3, 1, 1. 12.4 Lze ukázt redukí ěžného PCP n prolém ze zdání. 12.5 Lze ukázt redukí o NONEMPTY n EQ. NONEMPTY = { M M je TM L(M) } je prolém neprázdnosti, který je nerozhodnutelný tudíž i jeho doplňek je nerozhodnutelný. Složitost 13.1 Postupujeme podle definie O. Bud njdeme konstnty n 0 tk, že pro všehn n n 0 pltí definiční nerovnost, neo ukážeme (většinou sporem), že tkové konstnty neexistují. ) Volíme npříkld n 0 = 1, = 3. Pro všehn n n 0 pltí 2n 3n = n proto 2n O(n). ) Předpokládejme, že existují n 0 tkové, že pro všehn n n 0 pltí n 2 n. Položme m = mx{, n 0 } + 1. Zjevně m n 0, le m 2 > m. To je spor proto n 2 O(n). ) Pltí. d) Nepltí. e) Nejprve připomeňme definii. Píšeme f(n) 2 O(g(n)), pokud existují n 0, N tkové, že pro všehn n n 0 pltí f(n) 2 g(n). Anlogiky se definuje i význm dlšíh ritmetikýh výrzů oshujííh O(g(n)), jko npříkld 2 2O(g(n)). Vzth 3 n 2 O(n) smozřejmě pltí. Stčí zvolit n 0 = 1 = 2. f) Pltí. Stčí zvolit = 4 dopočítt dosttečně velké n 0. g) Nepltí. V důkzu sporem stčí zvolit m = mx{1,, n 0 }. 13.2 Tento vzth oeně nepltí. Protipříkldem jsou npříkld funke f(n) = 1 { 1 pokud n je sudé, g(n) = n jink. Zjevně g(n) O(f(n)), protože funke g není shor omezená tudíž pro kždé n 0, N existuje n > n 0 splňujíí g(n) > f(n) =. Vzth f(n) o(g(n)) ovšem nepltí, protože funke f(n) g(n) nemá pro n jdouí do nekonečn limitu. 13.3 Neht M A, M B jsou jednopáskové deterministiké Turingovy stroje prujíí s čsovou složitostí O(p A ), O(p B ) (kde p A p B jsou polynomy), které keptují jzyky A, B. Nejprve ukážeme, že tříd P je uzvřená n všehny tři opere. Popíšeme dvoupáskový deterministiký Turingův stroj M keptujíí jzyk A B. Stroj M pro vstup x nejprve zkopíruje vstup n druhou pásku (v čse O(n)), pk n druhé páse simuluje výpočet stroje M A. Je-li v této simuli dosžen keptujíí stv stroje M A, pk i stroj M keptuje. V opčném přípdě stroj M simuluje n první páse výpočet stroje M B. Je-li v této simuli dosžen keptujíí stv stroje M B, pk i stroj M keptuje, jink zmítá. Je zřejmé, že stroj M keptuje jzyk A B že pruje v čse O(n + p A (n) + p B (n)), tedy v polynomiálním čse. Stroj keptujíí komplement jzyk A získáme ze stroje M A záměnou keptujíího zmítjíího stvu. Tkto získný stroj pruje se stejnou čsovou složitostí jko M A. Popíšeme třípáskový Turingův stroj M keptujíí jzyk A.B. Stroj postupně zkouší rozdělit vstupní slovo x = x 1 x 2... x n n všehny možné dvojie podslov (nejprve ε x, pk x 1 x 2... x n, pk x 1 x 2 x 3... x n,..., nkone x ε). První podslovo vždy zkopíruje n druhou pásku simuluje n něm výpočet stroje M A. Druhé podslovo zkopíruje n třetí pásku simuluje n něm výpočet stroje M B. Pokud oě simule dospějí do keptujíího stvu, stroj M keptuje. V opčné situi postup opkujeme pro dlší dvojii podslov. Pokud už yly vyzkoušeny všehny dvojie, stroj M zmítne. Stroj M pruje v čse O(n (n + p A (n) + p B (n))), tedy v polynomiálním čse. 41
Tříd NP je uzvřená n sjednoení i n zřetězení. V oou přípdeh lze použít stejnou rgumenti jko u třídy P. V přípdě zřetězení lze lgoritmus stroje M vylepšit tk, že neprohází všehny dvojie podslov, le nedeterministiky uhodne správné rozdělení n podslov. Uzvřenost třídy NP n komplement je otevřený prolém (známý jko NP = onp?). Výše uvedená rgumente pro P v tomto přípdě nefunguje: záměnou keptujíího zmítjíího stvu u nedeterministikého stroje získáme stroj, který keptuje slovo w pokud existuje zmítjíí výpočet původního stroje nd tímto slovem. Žádouí y ovšem ylo, y zkonstruovný stroj keptovl slovo w pokud jsou všehny výpočty původního stroje nd tímto slovem zmítjíí. 13.4 ) Nepltí. Stčí uvážit liovolný jzyk L P NP. Jelikož tříd P je uzvřená n doplněk, tk i o L P NP. Tedy o L o NP, le přitom o L onp. ) Pltí. Jelikož o L 1, o L 2 NP NP je uzvřené n sjednoení, tk o L 1 o L 2 NP. Tedy L 1 L 2 onp. ) Pltí. Jelikož o L 2 NP NP je uzvřené n průnik (lze lehe dokázt), tk L 1 o L 2 = L 1 L 2 NP. 13.6 Příslušnost do NP lze dokázt sndno. NP-těžkost lze dokázt redukí: ) z prolému 3SAT (viz Sipser: Theorem 7.35 v 1. vydání, Theorem 7.46 ve 3. vydání) ) z prolému 3SAT (viz Sipser: Theorem 7.26 v 1. vydání, Theorem 7.32 ve 3. vydání) ) z prolému CLIQUE. pro dnou instni G, k prolému CLIQUE lze v polynomiálním čse vytvořit dvojii H k, G, kde H k je úplný grf s k vrholy. Je zřejmé, že G, k CLIQUE právě tehdy, když H k, G SGI. Ayhom se ujistili, že reduke CLIQUE p SGI je polynomiální i při inárním zkódování k, můžeme ji vylepšit tk, že nejprve ověříme, zd grf G má lespoň k vrholů. V přípdě kldné odpovědi pokrčujeme jko v předhozím přípdě (dvojii H k, G lze jistě zkonstruovt v čse kvdrtikém vzhledem k počtu vrholů grfu G). V opčném přípdě jistě pltí, že G, k CLIQUE tudíž stčí vygenerovt liovolnou dvojii grfů, která neptří do SGI (npříkld H, G, kde H je grf s jedním vrholem v hrnou (v, v) G je grf s jedním vrholem, le ez hrny). 13.7 ) TIME(n 2 ) TIME(n 3 ) (ve skutečnosti lze dokázt i TIME(n 2 ) TIME(n 3 )) ) SPACE(2n 2 ) = SPACE(100n 2 ) ) SPACE(n 2 ) TIME(n 2 ) d) NSPACE(n 2 ) SPACE(n 5 ) (ve skutečnosti lze dokázt i NSPACE(n 2 ) SPACE(n 5 )) e) P TIME(2 n ), protože n k O(2 n ) pro kždé k 13.8 viz Sipser, z Definition 7.7. 42