opora
KAPITOLA 3. REGULÁRNÍ JAZYKY 29 tím jsme platnost induktivního předpokladu dokázali pro všechna i ≥ 0. Speciálně pak platí S ⇒ ∗ w, právě když (S, w) ∗ ⊢(C, ɛ), C ∈ F a tedy L(G) = L(M). ✷ Příklad 3.9 Ke gramatice G = ({X, Y, Z, U, V, W }, {a, b, c}, P, X), kde P obsahuje pravidla X → ɛ | aY | cZ | aU Y → aY | cZ Z → bX U → bV V → cW W → ɛ sestrojíme konečný automat, který přijímá jazyk L(G). Budeme postupovat podle věty 3.6. Funkci přechodů δ reprezentujeme diagramem přechodů (obr. 3.1), v němž koncové stavy jsou vyznačeny dvojitým kroužkem a počáteční stav malou šipkou bez výstupního vrcholu. M = (Q, Σ, δ, q 0 , F ) kde Q = {X, Y, Z, U, V, W } Σ = {a, b, c} δ : viz obr. 3.1 q 0 = X F = {X, W } Obrázek 3.1: Diagram přechodů automatu M Věta 3.7 Nechť L = L(M) pro nějaký konečný automat M. Pak existuje gramatika G typu 3 taková, že L = L(G), tj. L M ⊆ L 3 .
KAPITOLA 3. REGULÁRNÍ JAZYKY 30 Důkaz: Nechť M = (Q, Σ, δ, q 0 , F ). Protože každý nedeterministický automat může být převeden na deterministický automat přijímající stejný jazyk, předpokládejme, že M je deterministický automat. Nechť G je gramatika typu 3, G = (Q, Σ, P, q 0 ), jejíž množina P přepisovacích pravidel je definována takto: (1) je-li δ(q, a) = r, pak P obsahuje pravidlo q → ar (2) je-li p ∈ F , pak P obsahuje pravidlo p → ɛ V další části probíhá důkaz zcela analogicky důkazu věty 3.6. Příklad 3.10 Na základě příkladu 3.1 sestrojíme gramatiku typu 3, která generuje jazyk zápisů čísel. Přechodová funkce deterministického konečného automatu, který přijímá tento jazyk, je v tabulce 3.1. Výsledná gramatika bude tvaru: P obsahuje pravidla G = ({q 0 , q 1 , q 2 , q 3 , q 4 , q 5 , q 6 , q 7 , q 8 }, {c, z, e, ., ♯}, P, q 0 ) q 0 → zq 8 | cq 7 | ·q 6 | e q4 q 1 → ɛ q 2 → cq 2 | ♯q 1 q 3 → cq 2 q 4 → zq 3 | cq 2 q 5 → cq 5 | e q4 | ♯q 1 q 6 → cq 5 q 7 → cq 7 | ·q 6 | e q4 | ♯q 1 q 8 → cq 7 | ·q 6 | e q4 Poznamenejme, že převod této gramatiky na gramatiku regulární je velice snadný, stačí dosadit za q 1 prázdný řetězec a odstranit pravidlo q 1 → ɛ. Věta 3.8 Třída jazyků, jež jsou přijímány konečnými automaty, je totožná s třídou jazyků typu 3 Chomského hierarchie. ✷ Důkaz: Tvrzení bezprostředně plyne z vět 3.6 a 3.7. ✷ Algoritmus konstrukce nedeterministického konečného automatu z důkazu věty 3.6 může být snadno modifikován pro převod pravé regulární gramatiky na ekvivalentní nedeterministický konečný automat. Algoritmus 3.2 Konstrukce nedeterministického konečného automatu k pravé regulární gramatice. Vstup: Pravá regulární gramatika G = (N, Σ, P, S), jejíž pravidla mají tvar A → aB a A → a, kde A, B ∈ N a a ∈ Σ, případně S → ɛ za předpokladu, že S se nevyskytuje na pravé straně žádného pravidla. Výstup: Nedeterministický konečný automat M = (Q, Σ, δ, q 0 , F ), pro který je L(M) = L(G). Metoda: (1) Položíme Q = N ∪ {q F }, kde q F reprezentuje koncový stav.
- Page 1 and 2: Teoretická informatika TIN Studijn
- Page 3 and 4: OBSAH 2 4 Bezkontextové jazyky a z
- Page 5 and 6: OBSAH 4 7.2 Třídy složitosti . .
- Page 7 and 8: KAPITOLA 1. ÚVOD 6 1.1 Obsahové a
- Page 9 and 10: Kapitola 2 Jazyky, gramatiky a jeji
- Page 11 and 12: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 13 and 14: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 15 and 16: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 17 and 18: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 19 and 20: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 21 and 22: KAPITOLA 2. JAZYKY, GRAMATIKY A JEJ
- Page 23 and 24: KAPITOLA 3. REGULÁRNÍ JAZYKY 22
- Page 25 and 26: KAPITOLA 3. REGULÁRNÍ JAZYKY 24 3
- Page 27 and 28: KAPITOLA 3. REGULÁRNÍ JAZYKY 26 D
- Page 29: KAPITOLA 3. REGULÁRNÍ JAZYKY 28 2
- Page 33 and 34: KAPITOLA 3. REGULÁRNÍ JAZYKY 32 V
- Page 35 and 36: KAPITOLA 3. REGULÁRNÍ JAZYKY 34 D
- Page 37 and 38: KAPITOLA 3. REGULÁRNÍ JAZYKY 36 V
- Page 39 and 40: KAPITOLA 3. REGULÁRNÍ JAZYKY 38 D
- Page 41 and 42: KAPITOLA 3. REGULÁRNÍ JAZYKY 40 3
- Page 43 and 44: KAPITOLA 3. REGULÁRNÍ JAZYKY 42 3
- Page 45 and 46: KAPITOLA 3. REGULÁRNÍ JAZYKY 44 V
- Page 47 and 48: KAPITOLA 3. REGULÁRNÍ JAZYKY 46 3
- Page 49 and 50: KAPITOLA 3. REGULÁRNÍ JAZYKY 48 P
- Page 51 and 52: KAPITOLA 3. REGULÁRNÍ JAZYKY 50 3
- Page 53 and 54: KAPITOLA 3. REGULÁRNÍ JAZYKY 52 C
- Page 55 and 56: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 57 and 58: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 59 and 60: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 61 and 62: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 63 and 64: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 65 and 66: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 67 and 68: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 69 and 70: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 71 and 72: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 73 and 74: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 75 and 76: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 77 and 78: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 79 and 80: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
KAPITOLA 3. REGULÁRNÍ JAZYKY 30<br />
Důkaz: Nechť M = (Q, Σ, δ, q 0 , F ). Protože každý nedeterministický automat<br />
může být převeden na deterministický automat přijímající stejný jazyk, předpokládejme,<br />
že M je deterministický automat. Nechť G je gramatika typu 3,<br />
G = (Q, Σ, P, q 0 ), jejíž množina P přepisovacích pravidel je definována takto:<br />
(1) je-li δ(q, a) = r, pak P obsahuje pravidlo q → ar<br />
(2) je-li p ∈ F , pak P obsahuje pravidlo p → ɛ<br />
V další části probíhá důkaz zcela analogicky důkazu věty 3.6.<br />
Příklad 3.10 Na základě příkladu 3.1 sestrojíme gramatiku typu 3, která generuje<br />
jazyk zápisů čísel. Přechodová funkce deterministického konečného automatu,<br />
který přijímá tento jazyk, je v tabulce 3.1. Výsledná gramatika bude tvaru:<br />
P obsahuje pravidla<br />
G = ({q 0 , q 1 , q 2 , q 3 , q 4 , q 5 , q 6 , q 7 , q 8 }, {c, z, e, ., ♯}, P, q 0 )<br />
q 0 → zq 8 | cq 7 | ·q 6 | e q4<br />
q 1 → ɛ<br />
q 2 → cq 2 | ♯q 1<br />
q 3 → cq 2<br />
q 4 → zq 3 | cq 2<br />
q 5 → cq 5 | e q4 | ♯q 1<br />
q 6 → cq 5<br />
q 7 → cq 7 | ·q 6 | e q4 | ♯q 1<br />
q 8 → cq 7 | ·q 6 | e q4<br />
Poznamenejme, že převod této gramatiky na gramatiku regulární je velice<br />
snadný, stačí dosadit za q 1 prázdný řetězec a odstranit pravidlo q 1 → ɛ.<br />
Věta 3.8 Třída jazyků, jež jsou přijímány konečnými automaty, je totožná s třídou<br />
jazyků typu 3 Chomského hierarchie.<br />
✷<br />
Důkaz: Tvrzení bezprostředně plyne z vět 3.6 a 3.7.<br />
✷<br />
Algoritmus konstrukce nedeterministického konečného automatu z důkazu věty<br />
3.6 může být snadno modifikován pro převod pravé regulární gramatiky na ekvivalentní<br />
nedeterministický konečný automat.<br />
Algoritmus 3.2 Konstrukce nedeterministického konečného automatu k pravé<br />
regulární gramatice.<br />
Vstup: Pravá regulární gramatika G = (N, Σ, P, S), jejíž pravidla mají tvar A →<br />
aB a A → a, kde A, B ∈ N a a ∈ Σ, případně S → ɛ za předpokladu, že S<br />
se nevyskytuje na pravé straně žádného pravidla.<br />
Výstup: Nedeterministický konečný automat M = (Q, Σ, δ, q 0 , F ), pro který je<br />
L(M) = L(G).<br />
Metoda:<br />
(1) Položíme Q = N ∪ {q F }, kde q F reprezentuje koncový stav.