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 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.

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

Saved successfully!

Ooh no, something went wrong!