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 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY82<br />

Pro vstupní řetězec aabbaa realizuje automat P tyto přechody:<br />

(q, aabbaa, Z) ⊢ (q, abbaa, aZ)<br />

⊢<br />

⊢<br />

⊢<br />

⊢<br />

⊢<br />

⊢<br />

⊢<br />

⊢<br />

⊢<br />

(q, bbaa, aaZ)<br />

(q, baa, baaZ)<br />

(q, baa, SbaaZ)<br />

(q, aa, bSbaaZ)<br />

(q, aa, SaaZ)<br />

(q, a, aSaaZ)<br />

(q, a, SaZ)<br />

(q, ɛ, aSaZ)<br />

(q, ɛ, SZ)<br />

⊢ (q, ɛ, ɛ)<br />

Vidíme, že automat P pracuje tak, že nejdříve ukládá do zásobníku prefix vstupního<br />

řetězce, pak na vrchol zásobníku uloží znak S značící střed; pak vrcholový<br />

řetězec aSa nebo bSb nahrazuje symbolem S. Tento příklad ilustruje<br />

také nedeterministickou povahu zásobníkového automatu, protože zobrazením<br />

není určeno, zda má být přečten vstupní symbol a uložen na vrchol zásobníku<br />

(δ(q, x, ɛ) = (q, x), x ∈ {a, b}), nebo zda má být proveden ɛ-přechod, který uloží<br />

na vrchol zásobníku středový symbol S, (δ(q, ɛ, ɛ) = (q, S)).<br />

Z definice rozšířeného zásobníkového automatu vyplývá, že je-li jazyk L přijímán<br />

zásobníkovým automatem, pak je také přijímán rozšířeným zásobníkovým<br />

automatem. Ukažme nyní, že platí i opačná implikace.<br />

Věta 4.11 Nechť P = (Q, Σ, Γ, δ, q 0 , Z 0 , F ) je rozšířený zásobníkový automat.<br />

Pak existuje zásobníkový automat P 1 takový, že L(P 1 ) = L(P ).<br />

Důkaz: Položme m = max{|α| | δ(q, a, α) ≠ ∅ pro nějaké q ∈ Q, a ∈ Σ∪{ɛ} a α ∈<br />

Γ ∗ }.<br />

Zásobníkový automat P 1 budeme konstruovat tak, aby simuloval automat<br />

P . Protože automat P neurčuje přechody podle vrcholu zásobníku, ale podle<br />

vrcholového řetězce zásobníku, bude automat P 1 ukládat m vrcholových symbolů<br />

v jakési „vyrovnávací paměti“ řídící jednotky tak, aby na počátku každého<br />

přechodu věděl, jakých m vrcholových symbolů je v zásobníku automatu P .<br />

Nahrazuje-li automat P k vrcholových symbolů řetězcem délky l, pak se totéž<br />

provede ve vyrovnávací paměti automatu P 1 . Jestliže l < k, pak P 1 realizuje<br />

k − l ɛ-přechodů, které přesouvají k − l symbolů z vrcholu zásobníku do vyrovnávací<br />

paměti. Automat P 1 pak může simulovat další přechod automatu P . Je-li<br />

l ≥ k, pak se symboly přesouvají z vyrovnávací paměti do zásobníku.<br />

Formálně můžeme konstrukci zásobníkového automatu P 1 popsat takto:<br />

Ekvivalence<br />

RZA a ZA<br />

P 1 = (Q 1 , Σ 1 , Γ 1 , δ 1 , q 1 , Z 1 , F 1 )<br />

kde<br />

(1) Q 1 = {[q, α] | q ∈ Q, α ∈ Γ ∗ 1 a 0 ≤ |α| ≤ m}<br />

(2) Γ 1 = Γ ∪ {Z 1 }<br />

(3) Zobrazení δ 1 je definováno takto:<br />

a) Předpokládejme, že δ(q, a, X 1 . . . X k ) obsahuje (r, Y 1 . . . Y l ).

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

Saved successfully!

Ooh no, something went wrong!