opora

frantisek.plesicek
from frantisek.plesicek More from this publisher
10.02.2019 Views

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY91 Automat P pracuje tak, že dokud nepřečte středový symbol c, ukládá symboly vstupního řetězce do zásobníku. Potom přejde do stavu q 1 a srovnává další vstupní symboly se symboly zásobníku. Mezi zásobníkovým automatem a deterministickým zásobníkovým automatem bohužel neplatí vztah jako mezi nedeterministickým a deterministickým konečným automatem, tzn., že ne každý jazyk přijímaný zásobníkovým automatem může být přijímán deterministickým zásobníkovým automatem. Definice 4.23 Jazyk L se nazývá deterministický bezkontextový jazyk, jestliže existuje deterministický zásobníkový automat P takový, že L(P ) = L. Definici deterministického zásobníkového automatu můžeme rozšířit tak, aby zahrnovala rozšířené zásobníkové automaty. Definice 4.24 Rozšířený zásobníkový automat P = (Q, Σ, Γ, δ, q 0 , z 0 , F ) nazýváme deterministický RZA (DRZA), jestliže platí: 1. ∀q ∈ Q ∀a ∈ Σ ∪ {ε} ∀γ ∈ Γ ∗ : |δ(q, a, γ)| ≤ 1. 2. Je-li δ(q, a, α) ≠ ∅, δ(q, a, β) ≠ ∅ a α ≠ β, pak ani α není předponou β, ani β není předponou α. 3. Je-li δ(q, a, α) ≠ ∅ a δ(q, ε, β) ≠ ∅, pak ani α není předponou β, ani β není předponou α. Pozor na použití α ≠ β v bodě 2 ve výše uvedené definici a nepoužití této podmínky v bodě 3: V bodě 2 dostáváme pro α = β tutéž trojici (q, a, α) = (q, a, β) a nedochází tedy k nedeterminismu na rozdíl od bodu 3, kde vznikají dvě různé dvojice (q, a, α) = (q, a, β) a (q, ε, α) = (q, ε, β). Věta 4.17 Deterministické rozšířené zásobníkové automaty mají ekvivalentní vyjadřovací sílu jako deterministické zásobníkové automaty. Věta 4.18 Deterministické zásobníkové automaty mají striktně menší vyjadřovací sílu než nedeterministické zásobníkové automaty. Důkaz: i (z důvodu zjednodušení je zde uvedena pouze idea důkazu) Bezkontextový jazyk L = {ww R | w ∈ Σ + } nelze přijímat žádným DZA. Neformálně řečeno, DZA nemá možnost uhádnout, kdy končí w a začíná w R . ✷ Poznámka 4.6 Jiná možnost důkazu věty 4.18 je přes následně uvedenou uzavřenost jazyků DZA vůči doplňku a přes uvážení, že {a n b n c n |n ≥ 1} je bezkontextový jazyk. Problém, zda daný bezkontextový jazyk je jazykem nějakého DZA, není obecně rozhodnutelný (podobně jako není rozhodnutelná víceznačnost). 4.13 Vlastnosti bezkontextových jazyků V této podkapitole se budeme zabývat některými vlastnostmi bezkontextových jazyků v podobné podobě jako v případě regulárních jazyků.

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY92 4.13.1 Strukturální vlastnosti Pumping lemma Věta 4.19 Nechť L je bezkontextový jazyk. Pak existuje konstanta k > 0 taková, že je-li z ∈ L a |z| ≥ k, pak lze z napsat ve tvaru: a pro všechna i ≥ 0 je uv i wx i y ∈ L. z = u v w x y, vx ≠ ε, |vwx| ≤ k Důkaz: Nechť L = L(G) a nechť G = (N, Σ, P, S) je gramatika v CNF. 1. Nejprve dokážeme implikaci: Jestliže A ⇒ + w pro nějaké A ∈ N, w ∈ Σ ∗ , pak |w| ≤ 2 m−2 , kde m je počet vrcholů nejdelší cesty v odpovídajícím derivačním stromu. Tato implikace platí, protože |w| je rovno počtu přímých předchůdců listů příslušného derivačního stromu, který je maximálně roven počtu listů plného binárního stromu, jehož všechny větve obsahují m−1 uzlů, což je právě 2 m−2 . Skutečně: • Plný binární strom s větvemi o n uzlech, má 2 n−1 listů, což se snadno ukáže indukcí: – Plný binární strom s (jedinou) větví o n = 1 uzlu, má 1 = 2 0 = 2 n−1 listů. – Plný binární strom s větvemi délky n = n ′ + 1 uzlů, kde n ′ ≥ 1, má 2 n′ −1 + 2 n′ −1 = 2.2 n′ −1 = 2 1+n′ −1 = 2 n′ = 2 n−1 listů. • Postačí tedy volit n = m − 1, přičemž případ neplných binárních stromů není třeba uvažovat, neboť se zajímáme o stromy s maximálním počtem listů při dané maximální délce větví.

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY92<br />

4.13.1 Strukturální vlastnosti<br />

Pumping lemma<br />

Věta 4.19 Nechť L je bezkontextový jazyk. Pak existuje konstanta k > 0 taková,<br />

že je-li z ∈ L a |z| ≥ k, pak lze z napsat ve tvaru:<br />

a pro všechna i ≥ 0 je uv i wx i y ∈ L.<br />

z = u v w x y, vx ≠ ε, |vwx| ≤ k<br />

Důkaz: Nechť L = L(G) a nechť G = (N, Σ, P, S) je gramatika v CNF.<br />

1. Nejprve dokážeme implikaci:<br />

Jestliže A ⇒ + w pro nějaké A ∈ N, w ∈ Σ ∗ , pak |w| ≤ 2 m−2 , kde m je počet<br />

vrcholů nejdelší cesty v odpovídajícím derivačním stromu.<br />

Tato implikace platí, protože |w| je rovno počtu přímých předchůdců listů<br />

příslušného derivačního stromu, který je maximálně roven počtu listů plného<br />

binárního stromu, jehož všechny větve obsahují m−1 uzlů, což je právě 2 m−2 .<br />

Skutečně:<br />

• Plný binární strom s větvemi o n uzlech, má 2 n−1 listů, což se snadno<br />

ukáže indukcí:<br />

– Plný binární strom s (jedinou) větví o n = 1 uzlu, má 1 = 2 0 = 2 n−1<br />

listů.<br />

– Plný binární strom s větvemi délky n = n ′ + 1 uzlů, kde n ′ ≥ 1, má<br />

2 n′ −1 + 2 n′ −1 = 2.2 n′ −1 = 2 1+n′ −1 = 2 n′ = 2 n−1 listů.<br />

• Postačí tedy volit n = m − 1, přičemž případ neplných binárních stromů<br />

není třeba uvažovat, neboť se zajímáme o stromy s maximálním počtem<br />

listů při dané maximální délce větví.

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

Saved successfully!

Ooh no, something went wrong!