Teoretická informatika - Úkol č.1 Lukáš Sztefek, xsztef01 18. října 2012
Příklad 1 (a) Gramatika G 1 je čtveřice G 1 = (N, Σ, P, S) kde, N je konečná množina nonterminálních symbolů N = {A, B, C} Σ je konečná množina terminálních symbolů Σ = {a, b, c} P je konečná množina přepisovacích pravidel { S AbBC } A aab ɛ P = B bb ɛ C bcc ɛ SɛN je počáteční symbol gramatiky (b) Gramatika G 1 nemůže být podle Chomského chierarchie typu 3, protože obsahuje pravidla ve tvaru A ɛ, tedy generuje prázdný řetězěc. Gramatika je typu 2. Jazyk L 1 nemůže být podle Chomského chierarchie typu 3, protože neexistuje takový konečný automat, který by L 1 přijal. Existuje však zásobníkový automat, který jazyk příjme, a proto je typu 2. Typ gramatiky a jazyku se obecně lišit mohou. Gramatika typu X může generovat jazyky typu X a vyšších. Příklad 2 Část (a): 1. Převod RV RKA M (a) Rozklad zadaného regulárního výrazu vyjádříme stromem: (b) Převod stromu na konečný automat M: i. Regulárnímu výrazu r 7 = b přísluší automat N 1 : 2
ii. Regulárnímu výrazu r 6 = b přísluší automat N 2 : iii. Regulárnímu výrazu r 9 = a přísluší automat N 3 : iv. Regulárnímu výrazu r 10 = c přísluší automat N 4 : v. Regulárnímu výrazu r 8 = ac přísluší automat N 5 : vi. Automat pro r 4 je shodný s automatem pro r5, zkonstruujeme proto rovnou automat N 6 = (b + ac): vii. Regulárnímu výrazu r 2 = (b + ac) přísluší automat N 7 : viii. Regulárnímu výrazu r 13 = c přísluší automat N 8 : ix. Regulárnímu výrazu r 12 = a přísluší automat N 9 : x. Regulárnímu výrazu r 11 = c přísluší automat N 10 : xi. Regulárnímu výrazu r 3 = ac přísluší automat N 11 : 3
xii. Regulárnímu výrazu r 1 = (b + ac) ac přísluší automat N 12 : 2. Převod RKA M DKA M, podle Algoritmu 3.6 z opory předmětu TIN: A = ɛ-uz({1}) = {1, 2, 3, 6, 7, 9, 10, 11} a b c ɛ-uz({4, 17})={4, 12, 13, 15} = B ɛ-uz({8}) = {2, 3, 6, 7, 8, 9, 10, 11} = C B = {4, 12, 13, 15} ɛ-uz({ }) = D ɛ-uz({ }) = D C = {2, 3, 6, 7, 8, 9, 10, 11} ɛ-uz({4, 12}) = {4, 12, 13, 15} = B ɛ-uz({ }) = D D = = D = D = D E = {2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15} ɛ-uz({4, 12}) = B ɛ-uz({8}) = C F = {13, 14, 15} ɛ-uz({ }) = D ɛ-uz({ }) = D ɛ-uz({ }) = D ɛ-uz({5, 14}) = {2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15} = E ɛ-uz({ }) = D ɛ-uz({14}) = {13, 14, 15} = F ɛ-uz({14}) = {13, 14, 15} = F 4
Grafické znázornění DKA M : 3. DKA M redukovaný DKA M, kde L(M ) = L(M ): (a) Automat neobsahuje nedostupné stavy, tudíž není zapotřebí odstraňovat. (b) Automat je úplný, není nutno zůplňovat. (c) Sestrojíme iterativně relaci nerozlišitelnosti stavů: 0 a b c I { BE F E (I) F (I) F (I) II { AC D 5
1 a b c { I BF E (III) F (I) II { A III { E F (I) IV { D 2 a b c I { B D (V ) D (V ) E (IV ) II { F D (V ) D (V ) F (II) II { AC IV { E C (III) F (I) V { D D (V ) D (V ) D (V ) 6
Redukovaný DKA M v grafické podobě (pro přehlednost jsem přejmenoval stavy do tvaru napravo): 7
Část (b): K jednotlivým stavům redukovaného DKA M přiřadíme ekvivalenční třídy. Pro náš automat jich existuje pět: (a) L 1 (A) (b) L 1 (B) (c) L 1 (C) (d) L 1 (D) (e) L 1 (E) Cvičně jsem vytvořil ekvivalenční třídu popsanou RV pro (a) L 1 (A) pomocí rovnic s RV. Výsledek L 1 (A) = (b + (ac) + b) odpovídá příslušnému automatu. 8
Příklad 3 Zadaný KA M 3, který má být převeden na ekvivalentní RV, s pojmenovanými stavy: Soustava rovnic pro M 3 : (1) X = ax + ay (2) Y = bz + cx (3) Z = bx + ɛ Víme, že X = px + q nad RV je X = p q Řešení soustavy: 1. Dosazení Y do (1): X = ax + a(bz + cx) X = ax + abz + acx (distributivita) 2. Dosazení Z do předchozího výrazu: X = ax + acx + ab(bx + ɛ) X = ax + acx + abbx + abɛ (distributivita) X = ax + acx + abbx + ab (identita ɛ) X = (a + ac + abb)x + ab (Částečné vytknutí X) 3. Použijeme výše uvedenou rovnici z rámečku a tím získáme výsledný RV ekvivalentní s M 3 : X = (a + ac + abb) ab 9
Příklad 4 Vstupní automaty: KA M 1 = (Q 1, Σ 1, δ 1, q 1, F 1 ) KA M 2 = (Q 2, Σ 2, δ 2, q 2, F 2 ) Požadovaný výstup: KA M 3 takový, že L(M 3 ) = {w w L(M 1 ) w L(M 2 ) : w = w } Definice: M 3 = (Q 3, Σ 3, δ 3, q 3, F 3 ) kde: Q 3 = Q 1 Q 2 Σ 3 = Σ 1 δ 3 : q 1 1, q 2 1 Q 1, q 1 2, q 2 2 Q 2, a Σ 1 : (q 2 1, q 2 2) δ 3 ((q 1 1, q 1 2), a) b Σ 2 : q 2 1 δ 1 (q 1 1, a) q 2 2 δ 2 (q 1 2, b) q 3 = (q 1, q 2 ) F 3 = F 1 F 2 Příklad 5 Zadaný jazyk: L = {w w {a, b, c} # a (w) > # b (w) > # c (w)}, kde # x (w) je počet symbolů x ve slově w. Důkaz sporem: Předpokládejme, že L L 3 : Pak dle silnější PL platí: k > 0 : w L : w k x, y, z Σ : w = xyz 0 < y xy k i 0 : xy i z L Uvážíme libovolné k > 0 takové, že: w L : w k x, y, z Σ : w = xyz 0 < y xy k i 0 : xy i z L Zvolme w = c k b k+1 a k+2 L : w = 3k + 3 k Z výše uvedeného plyne: x, y, z Σ : c k b k+1 a k+2 = xyz 0 < y xy k i 0 : xy i z L Uvažme libovolné x, y, z Σ takové, že: c k b k+1 a k+2 = xyz 0 < y xy k i 0 : xy i z L Z výše uvedeného plyne, že: xy {c l 0 < l k} a současně z = c k l b k+1 a k+2 Ovšem zvolíme-li libovolné i > 2k, pak xy i z nebude mít počet symbolů b větší než počet symbolů c. Tedy xy i z / L, je SPOR. Jazyk L není regulární. 10
Příklad 6 Relace je ekvivalencí, pokud je zároveň reflexivní, symetrická a tranzitivní. Pokud pro relaci nerozlišitelnosti dokážeme 3 tyto vlastnosti, můžeme o ní prohlásit, že jde o ekvivalenci. Definice nerozlišitelnosti: Nechť M = (Q, Σ, δ, q 0, F ) je úplný deterministický KA. Říkame, že řetězec w Σ nerozlišuje stavy q 1, q 2 Q, když (q 1, w) M (q 3, ɛ) (q 2, w) M (q 4, ɛ) (q 3 F q 4 F ). Důkaz ekvivalence nerozlišitelnosti: reflexivní - q q: q q : (q, w) M (q 3, ɛ) (q, w) M (q 4, ɛ) (q 3 F q 4 F ) Pro DKA platí, že se z jednoho stavu dá s jedním konkrétním rětězcem dostat pouze do jednoho stejného stavu. Proto platí: q 3 = q 4 = q 1 a tedy: (q 1 F q 1 F ), což je vždy platná formule a relace je proto reflexivní. symetrická - q 1 q 2 q 2 q 1 : Předpoklad q 1 q 2 : Využijeme zde komutativity konjunkce a symetrie ekvivalence: (q 1, w) M (q 3, ɛ) (q 2, w) M (q 4, ɛ) (q 3 F q 4 F ) což lze přepsat do tvaru: (q 2, w) M (q 4, ɛ) (q 1, w) M (q 3, ɛ) (q 4 F q 3 F ) z čehož plyne: q 2 q 1 Relace je tedy symetrická. tranzitivní - q 1 q 3 q 3 q 5 q 1 q 5 což odpovídá výrazu: (q 1, w) M (q 2, ɛ) (q 3, w) M (q 4, ɛ) (q 2 F q 4 F ) (q 3, w) M (q 4, ɛ) (q 5, w) M (q 6, ɛ) (q 4 F q 6 F ) Díky definici tranzitivity ekvivalence platí: (q 2 F q 4 F ) (q 4 F q 6 F ) (q 2 F q 6 F ) Protože musí být všechny části konjunkce platné, musí být platné i výrazy: (q 1, w) M (q 2, ɛ) (q 5, w) M (q 6, ɛ) Složením 2 výše zmíněných výrazů dostáváme výraz : (q 1, w) M (q 2, ɛ) (q 5, w) M (q 6, ɛ) (q 2 F q 6 F ) z čehož plyne: q 1 q 5 Relace je tedy tranzitivní. Jelikož je relace nerozlišitelnosti stavu zároveň reflexivní, symetrická a tranzitivní, je to relace ekvivalence. 11