10.02.2019 Views

opora

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 32<br />

Věta 3.10 Nechť G je levá lineární gramatika a M konečný automat z algoritmu<br />

3.3. Pak L(M) = L(G).<br />

Důkaz: Nejprve dokážeme, že ɛ ∈ L(G), právě když ɛ ∈ L(M). Podle konstrukce<br />

automatu M, q 0 ∈ F právě když v P je pravidlo S → ɛ a tedy<br />

S ⇒ ɛ, právě když (q 0 , ɛ) 0 ⊢(q 0 , ɛ), q 0 ∈ F<br />

Nyní dokážeme, že pro libovolné w ∈ Σ + platí<br />

S ⇒ + w, právě když (q 0 , w) + ⊢(S, ɛ), S ∈ F<br />

Položme w = ax, a ∈ Σ, x ∈ Σ ∗ . Induktivní hypotéza nechť má tvar:<br />

S ⇒ i Ax ⇒ ax, právě když (q 0 , ax) ⊢ (A, x) i ⊢(S, ɛ), A ∈ N, S ∈ F, |x| = i<br />

Pro i = 0 dostaneme:<br />

S ⇒ a, právě když (q 0 , a) ⊢ (S, ɛ),<br />

což plyne přímo z definice funkce přechodů automatu M (δ(q 0 , a) obsahuje S,<br />

právě když S → a je v P ).<br />

Pro i ≥ 1 je třeba dokázat:<br />

(a) Ax ⇒ ax, právě když (q 0 , ax) ⊢ (A, x)<br />

(b) S ⇒ i Ax právě když (A, x) ⊢ i (S, ɛ)<br />

Důkaz tvrzení (a) a (b) ponecháme jako cvičení.<br />

✷<br />

Příklad 3.12 Uvažujme gramatiku G = ({S, I, N}, {c, p, ♯}, P, S) s pravidly:<br />

S → I♯ | N♯<br />

I → p | Ip | Ic<br />

N → c | Nc<br />

Značí-li c arabskou číslici a p písmeno, pak L(G) je jazyk identifikátorů (nonterminál<br />

I) a celých čísel bez znaménka (nonterminál N). Každá věta jazyka L(G)<br />

končí koncovým znakem ♯.<br />

Diagram přechodů automatu, který přijímá jazyk L(G), má na základě algoritmu<br />

3.3 tvar:<br />

3.2 Minimalizace deterministického konečného automatu<br />

Postup převodu deterministického konečného automatu na minimální deterministický<br />

konečný automat se skládá z několika kroků, ve kterých eliminujeme nedosažitelné<br />

stavy, automat převedeme na úplně definovaný DKA, následně na<br />

redukovaný DKA a pokud se v tomto redukovaném DKA vyskytuje tzv. „SINK“<br />

stav, tj. nekoncový stav, z něhož lze pokračovat jen do něj samého, pak ho<br />

odstraníme.<br />

Definice 3.5 Deterministický konečný automat M = (Q, Σ, δ, q 0 , F ) nazýváme<br />

úplný deterministický konečný automat, pokud pro všechna q ∈ Q a všechna a ∈ Σ<br />

platí, že δ(q, a) ∈ Q, tj. δ je totální funkcí na Q × Σ.

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

Saved successfully!

Ooh no, something went wrong!