Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
KAPITOLA 3. REGULÁRNÍ JAZYKY 26<br />
Derivaci A ⇒<br />
G<br />
a 1 a 2 . . . a n zřejmě odpovídá právě derivace A ⇒<br />
G ′ n+1 a 1 a 2 . . . a n .<br />
(4) zbývající, tzv. jednoduchá pravidla tvaru A → B, A, B ∈ N, nahradíme<br />
takto:<br />
(a) Pro každé A ∈ N sestrojíme množinu N A = {B | A ⇒ ∗ B}.<br />
(b) Množinu pravidel P ′ rozšíříme takto: Jestliže B → α je v P a není<br />
jednoduchým pravidlem, pak pro všechna A, pro něž B ∈ N A , přidáme<br />
k P ′ pravidla A → α.<br />
Bod 4b aplikuje obecný algoritmus odstranění jednoduchých pravidel bezkontextové<br />
gramatiky, který je uveden a dokázán v kapitole 4 (algoritmus 4.5). Jeho<br />
součástí je také výpočet množiny N A .<br />
✷<br />
Příklad 3.5 Na základě předchozí věty budeme transformovat pravou lineární<br />
gramatiku G = ({X, Y }, {a, b, c}, P, X), kde P obsahuje pravidla:<br />
Podle 1 budou v P ′ pravidla:<br />
X → abc | Y | ɛ<br />
Y → aY | cbX<br />
X → ɛ, Y → aY<br />
Podle 2 nahradíme pravidlo Y → cbX pravidly<br />
Y → cZ, Z → bX<br />
Podle 3 nahradíme pravidlo X → abc pravidly<br />
X → aU, U → bV, V → cW, W → ɛ<br />
Podle 4 nahradíme pravidlo X → Y . Protože N X = {X, Y } přidáme k P ′ pravidla<br />
X → aY, X → cZ<br />
Výsledná gramatika má pak tvar G ′ = ({X, Y, Z, U, V, W }, {a, b, c}, P ′ , X) kde<br />
P ′ obsahuje pravidla:<br />
X → ɛ | aY | cZ | aU<br />
Y → aY | cZ<br />
Z → bX<br />
U → bV<br />
V → cW<br />
W → ɛ<br />
Věta 3.3<br />
Každý jazyk typu 3 lze generovat pravou regulární gramatikou.<br />
Důkaz: Pravou regulární gramatiku získáme z gramatiky zkonstruované podle<br />
věty 3.2 odstraněním pravidel s prázdným řetězcem na pravé straně. Systematicky<br />
tento postup popisuje algoritmus 4.4 v kapitole 4 (níže jej ilustrujeme na příkladě).<br />
✷