10.02.2019 Views

opora

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

KAPITOLA 3. REGULÁRNÍ JAZYKY 27<br />

Příklad 3.6 Gramatiku z příkladu 3.5 převedeme na pravou regulární odstraněním<br />

pravidla W → ɛ (vznikne pravidlo V → c) a pravidla X → ɛ (vznikne pravidlo<br />

Z → b). Protože ɛ ∈ L(G) a X je na pravé straně pravidla Z → bX, musíme zavést<br />

nový výchozí symbol X ′ a odstranit jednoduché pravidlo X ′ → X. Výsledná<br />

gramatika bude mít tvar:<br />

P ′′ obsahuje pravidla:<br />

G ′′ = ({X ′ , X, Y, Z, U, V }, {a, b, c}, P ′′ , X ′ ),<br />

X ′ → ɛ | aY | cZ | aU<br />

Y → aY | cZ<br />

Z → bX | b<br />

X → aY | cZ | aU<br />

U → bV<br />

V → c<br />

Věta 3.4 Každý jazyk typu 3 může být generován levou lineární gramatikou.<br />

Důkaz: Úplný důkaz ponecháme na cvičení. Lze postupovat tak, že nejprve<br />

z definice regulární množiny dokážeme tvrzení: je-li L regulární množina, pak<br />

L R je také regulární množina. Dále ukážeme: je-li G = (N, Σ, P, S) pravá lineární<br />

gramatika, pak levá lineární gramatika G ′ , jejíž množina pravidel má tvar P ′ =<br />

{A → α R | A → α je v P }, generuje jazyk (L(G)) R . ✷<br />

Příklad 3.7 Gramatika G ′ = ({X, Y }, {a, b, c}, P ′ , X), kde P ′ obsahuje pravidla<br />

X → cba | Y | ɛ<br />

Y → Y a | Xbc<br />

je levá lineární gramatika, pro kterou L(G ′ ) = (L(G)) R a G je pravá lineární<br />

gramatika z příkladu 3.5.<br />

Věta 3.5<br />

Každý jazyk typu 3 lze generovat levou regulární gramatikou.<br />

Důkaz: Konstrukce levé regulární gramatiky k dané levé lineární gramatice je<br />

zcela analogická konstrukci pravé regulární gramatiky k dané pravé lineární gramatice,<br />

a je proto ponechána na čtenáři (ilustraci poskytuje následující příklad).<br />

✷<br />

Příklad 3.8 Uvažujme gramatiku z příkladu 3.7, jež má pravidla:<br />

X → cba | Y | ɛ<br />

Y → Y a | Xbc<br />

1. krok zavádí pouze pravidla typu A → Ba nebo A → ɛ:<br />

X → Ua | Y a | Zc | ɛ<br />

Y → Y a | Zc<br />

U → V b<br />

V → W c<br />

W → ɛ<br />

Z → Xb

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!