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