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 51<br />
Důkaz: K jazyku L ∈ L 3 sestrojíme deterministický konečný automat M, L =<br />
L(M):<br />
M = (Q, Σ, δ, q 0 , F )<br />
neprázdnost: L(M) ≠ ∅ ⇐⇒ ∃q ∈ Q : (q ∈ F ∧ q je dostupný z q 0 )<br />
náležitost: w ∈ L ⇔ (q 0 , w) ⊢ ∗ (q, ε) ∧ q ∈ F<br />
✷<br />
Věta 3.26 Nechť L 1 = L(G 1 ) a L 2 = L(G 2 ) jsou dva jazyky generované regulárními<br />
gramatikami G 1 a G 2 . Pak je rozhodnutelný problém ekvivalence, tj.<br />
L(G 1 ) = L(G 2 ) nebo L(G 1 ) ≠ L(G 2 ).<br />
Důkaz: Nechť M 1 = (Q 1 , Σ 1 , δ 1 , q 1 0, F 1 ), resp. M 2 = (Q 2 , Σ 2 , δ 2 , q 2 0, F 2 ) jsou KA<br />
přijímající jazyky L 1 , resp. L 2 takové, že Q 1 ∩ Q 2 = ∅.<br />
Vytvoříme konečný automat M takto:<br />
M = (Q 1 ∪ Q 2 , Σ 1 ∪ Σ 2 , δ 1 ∪ δ 2 , q 1 0, F 1 ∪ F 2 )<br />
a vypočítáme relaci ≡ nerozlišitelnosti stavů z Q 1 ∪ Q 2 pro automat M.<br />
Pak L(G 1 ) = L(G 2 ) ⇐⇒ q 1 0 ≡ q 2 0<br />
✷<br />
Regulární jazyky, zahrnující všechny konečné jazyky, představují třídu formálních<br />
jazyků s velmi výrazným počtem aplikací zvláště pak pro jejich mimořádnou<br />
rozhodovací sílu. K nejrozšířenějším prostředkům jejich specifikace<br />
patří, vedle gramatik typu 3 a nedeterministických a deterministických konečných<br />
jazyků také regulární výrazy. Regulární jazyky tvoří jednu z instancí Kleenovy<br />
algebry, která umožňuje řešit standardizované soustavy rovnic nad regulárními<br />
výrazy. Algoritmy převodů mezi ekvivalentními specifikačními prostředky jsou<br />
základem speciálních jazykových procesorů, např konstruktorů lexikálních analyzátorů<br />
překladačů.<br />
3.6 Cvičení<br />
Cvičení 3.6.1 Ke konečnému nedeterministickému automatu<br />
M = ({q 0 , q 1 , q 2 , q 3 , q F }, {1, 2, 3}, δ, q 0 , {q F }),<br />
kde zobrazení δ je definováno touto tabulkou .<br />
Σ<br />
Q 1 2 3<br />
q 0 {q 0 , q 1 } {q 0 , q 2 } {q 0 , q 3 }<br />
q 1 {q 1 , q F } {q 1 } {q 1 }<br />
q 2 {q 2 } {q 2 , q F } {q 1 }<br />
q 3 {q 3 } {q 3 } {q 3 , q F }<br />
q F ∅ ∅ ∅<br />
sestrojte deterministický automat M ′ , pro který platí L(M ′ ) = L(M).<br />
Cvičení 3.6.2 Nechť L 1 = L(M 1 ) a L 2 = L(M 2 ) jsou jazyky přijímané konečnými<br />
automaty M 1 = (Q 1 , Σ 1 , δ 1 , q 1 0, F 1 ) a M 2 = (Q 2 , Σ 2 , δ 2 , q 2 0, F 2 ). Analogicky větě<br />
3.13 ukažte konstrukci automatů M 3 , M 4 a M 5 , pro které platí:<br />
L(M 3 ) = L 1 ∪ L 2 , L(M 4 ) = L 1 · L 2 a L(M 5 ) = L ∗ 1.