opora
KAPITOLA 3. REGULÁRNÍ JAZYKY 35 Řešení: V řešení příkladu si ukážeme, jak vypadají stavy na jednotlivých řádcích algoritmu 3.5. 0 ≡ δ a b 1. Neobsahuje nedostupné stavy. I: A F I B II F A E 0 3. ≡ = {{A, F }, {B, C, D, E}} II: B I E II II D II 1 5.1. ≡ = {{A, F }, {B, E}, {C, D}} C C II F I D D II A I E B II C II 5.2. 9–11. 2 ≡ = {{A, F }, {B, E}, {C, D}} = 1 ≡ = ≡ 8. Q ′ = {[A], [B], [C]}, kde [A] = {A, F }, [B] = {B, E}, [C] = {C, D} a a a b b [A] [B] [C] 1 ≡ δ a b I: A F I B II F A I E II II: B E II D III E B II C III III: C C III F I D D III A I b 3.3 Regulární množiny a regulární výrazy 3.3.1 Regulární množiny Definice 3.9 Nechť Σ je konečná abeceda. Regulární množinu nad abecedou Σ definujeme rekurzívně takto: (1) ∅ (prázdná množina) je regulární množina nad Σ (2) {ɛ} (množina obsahující pouze prázdny řetězec) je regulární množina nad Σ (3) {a} pro všechna a ∈ Σ je regulární množina nad Σ (4) jsou-li P a Q regulární množiny nad Σ, pak také P ∪ Q, P · Q a P ∗ jsou regulární množiny nad Σ (5) regulárními množinami jsou právě ty množiny, které lze získat aplikací 1–4. Třída regulárních množin je tedy nejmenší třída jazyků, která obsahuje ∅, {ɛ}, {a} pro všechny symboly a a je uzavřena vzhledem k operacím sjednocení, součinu a iterace. Příklad 3.14 L = ({a} ∪ {d}) · ({b} ∗ ) · {c} je regulární množina nad Σ = {a, b, c, d}. Ukážeme, že třída regulárních množin tvoří právě třídu L 3 , tj. třídu jazyka typu 3 Chomského hierarchie.
KAPITOLA 3. REGULÁRNÍ JAZYKY 36 Věta 3.12 Nechť Σ je konečná abeceda. Pak ∅ (1) {ɛ} (2) {a} pro všechna a ∈ Σ (3) jsou jazyky typu 3 nad abecedou Σ. Důkaz: (1) G = ({S}, Σ, ∅, S) je gramatika typu 3 pro kterou L(G) = ∅ (2) G = ({S}, Σ, {S → ɛ}, S) je gramatika typu 3 pro kterou L(G) = {ɛ} (3) G a = ({S}, Σ, {S → a}, S) je gramatika typu 3, pro kterou L(G a ) = {a} ✷ Věta 3.13 Nechť L 1 a L 2 jsou jazyky typu 3 nad abecedou Σ. Pak jsou jazyky typu 3 nad abecedou Σ. L 1 ∪ L 2 (1) L 1 · L 2 (2) L ∗ 1 (3) Důkaz: Protože L 1 a L 2 jsou jazyky typu 3, můžeme předpokládat existenci gramatik G 1 = (N 1 , Σ, P 1 , S 1 ) a G 2 = (N 2 , Σ, P 2 , S 2 ) typu 3 takových, že L(G 1 ) = L 1 a L(G 2 ) = L 2 . Bez újmy na obecnosti dále předpokládejme, že množiny N 1 a N 2 jsou disjunktní. (1) Nechť G 3 = (N 1 ∪ N 2 ∪ {S 3 }, Σ, P 1 ∪ P 2 ∪ {S 3 → S 1 , S 3 → S 2 }, S 3 ) je gramatika typu 3, kde S 3 je nový nonterminál, S 3 /∈ N 1 , S 3 /∈ N 2 . Zřejmě L(G 3 ) = L(G 1 ) ∪ L(G 2 ), poněvadž pro každou derivaci S 3 ⇒ G3 + w existuje buď derivace S 1 ⇒ G1 + w, nebo S 2 ⇒ G2 + w a naopak. Protože G 3 je gramatika typu 3, je L(G 3 ) jazyk typu 3. (2) Nechť G 4 = (N 1 ∪ N 2 , Σ, P 4 , S 1 ) je gramatika typu 3, jejíž množina přepisovacích pravidel P 4 je definována takto: (a) je-li A → xB v P 1 , pak A → xB je v P 4 (b) je-li A → x v P 1 , pak A → xS 2 je v P 4 (c) všechna pravidla z P 2 jsou v P 4 . Nyní, jestliže S 1 ⇒ G1 + w, pak S 1 ⇒ G4 + wS 2 . Je-li dále S 2 ⇒ G2 + x, pak S 2 ⇒ G4 + x a tedy S 1 ⇒ G4 + wx pro libovolné w a x. Z toho plyne L(G 1 ) · L(G 2 ) ⊆ L(G 4 ). Předpokládejme, že platí S 1 ⇒ G4 + w. Protože v P 4 nejsou žádná pravidla tvaru A → x z množiny P 1 , můžeme tuto derivaci zapsat ve tvaru S 1 ⇒ G4 + x S 2 ⇒ G4 + xy, kde w = xy, přičemž všechna pravidla použitá v derivaci S 1 ⇒ G4 + xS 2 byla odvozena podle (a) a (b). Pak ale musí existovat derivace S 1 ⇒ G1 + x a S 2 ⇒ G2 + y a tudíž L(G 4 ) ⊆ L(G 1 ) · L(G 2 ). Z toho však plyne L(G 4 ) = L(G 1 ) · L(G 2 ). (3) Nechť G 5 = {N 1 ∪ {S 5 }, Σ, P 5 , S 5 }, S 5 /∈ N 1 a množina P 5 je konstruována takto:
- 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 and 30: KAPITOLA 3. REGULÁRNÍ JAZYKY 28 2
- Page 31 and 32: KAPITOLA 3. REGULÁRNÍ JAZYKY 30 D
- Page 33 and 34: KAPITOLA 3. REGULÁRNÍ JAZYKY 32 V
- Page 35: KAPITOLA 3. REGULÁRNÍ JAZYKY 34 D
- 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
- Page 81 and 82: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 83 and 84: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
- Page 85 and 86: KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A
KAPITOLA 3. REGULÁRNÍ JAZYKY 36<br />
Věta 3.12 Nechť Σ je konečná abeceda. Pak<br />
∅ (1)<br />
{ɛ} (2)<br />
{a} pro všechna a ∈ Σ (3)<br />
jsou jazyky typu 3 nad abecedou Σ.<br />
Důkaz:<br />
(1) G = ({S}, Σ, ∅, S) je gramatika typu 3 pro kterou L(G) = ∅<br />
(2) G = ({S}, Σ, {S → ɛ}, S) je gramatika typu 3 pro kterou L(G) = {ɛ}<br />
(3) G a = ({S}, Σ, {S → a}, S) je gramatika typu 3, pro kterou L(G a ) = {a}<br />
✷<br />
Věta 3.13 Nechť L 1 a L 2 jsou jazyky typu 3 nad abecedou Σ. Pak<br />
jsou jazyky typu 3 nad abecedou Σ.<br />
L 1 ∪ L 2 (1)<br />
L 1 · L 2 (2)<br />
L ∗ 1 (3)<br />
Důkaz: Protože L 1 a L 2 jsou jazyky typu 3, můžeme předpokládat existenci<br />
gramatik G 1 = (N 1 , Σ, P 1 , S 1 ) a G 2 = (N 2 , Σ, P 2 , S 2 ) typu 3 takových, že L(G 1 ) =<br />
L 1 a L(G 2 ) = L 2 . Bez újmy na obecnosti dále předpokládejme, že množiny N 1 a<br />
N 2 jsou disjunktní.<br />
(1) Nechť G 3 = (N 1 ∪ N 2 ∪ {S 3 }, Σ, P 1 ∪ P 2 ∪ {S 3 → S 1 , S 3 → S 2 }, S 3 ) je<br />
gramatika typu 3, kde S 3 je nový nonterminál, S 3 /∈ N 1 , S 3 /∈ N 2 . Zřejmě<br />
L(G 3 ) = L(G 1 ) ∪ L(G 2 ), poněvadž pro každou derivaci S 3 ⇒<br />
G3 + w existuje<br />
buď derivace S 1 ⇒<br />
G1 + w, nebo S 2 ⇒<br />
G2 + w a naopak. Protože G 3 je gramatika<br />
typu 3, je L(G 3 ) jazyk typu 3.<br />
(2) Nechť G 4 = (N 1 ∪ N 2 , Σ, P 4 , S 1 ) je gramatika typu 3, jejíž množina přepisovacích<br />
pravidel P 4 je definována takto:<br />
(a) je-li A → xB v P 1 , pak A → xB je v P 4<br />
(b) je-li A → x v P 1 , pak A → xS 2 je v P 4<br />
(c) všechna pravidla z P 2 jsou v P 4 .<br />
Nyní, jestliže S 1 ⇒<br />
G1 + w, pak S 1 ⇒<br />
G4 + wS 2 . Je-li dále S 2 ⇒<br />
G2 + x, pak S 2 ⇒<br />
G4 + x<br />
a tedy S 1 ⇒<br />
G4 + wx pro libovolné w a x. Z toho plyne L(G 1 ) · L(G 2 ) ⊆ L(G 4 ).<br />
Předpokládejme, že platí S 1 ⇒<br />
G4 + w. Protože v P 4 nejsou žádná pravidla<br />
tvaru A → x z množiny P 1 , můžeme tuto derivaci zapsat ve tvaru S 1 ⇒<br />
G4<br />
+<br />
x S 2 ⇒<br />
G4 + xy, kde w = xy, přičemž všechna pravidla použitá v derivaci<br />
S 1 ⇒<br />
G4 + xS 2 byla odvozena podle (a) a (b). Pak ale musí existovat derivace<br />
S 1 ⇒<br />
G1 + x a S 2 ⇒<br />
G2 + y a tudíž L(G 4 ) ⊆ L(G 1 ) · L(G 2 ). Z toho však plyne<br />
L(G 4 ) = L(G 1 ) · L(G 2 ).<br />
(3) Nechť G 5 = {N 1 ∪ {S 5 }, Σ, P 5 , S 5 }, S 5 /∈ N 1 a množina P 5 je konstruována<br />
takto: