Příklad M = ({<*>, p, /}, {a, b}, {A B,Z},5, q0,Z, {/}), kde S(q0,a,Z) = {(q0,AZ)} S(q0,a,A) = {(q0,AA)} S(qo,a, B) = {(q0,AB)} 5(q0,b,Z) = {(q0,BZ)} S(q0,b,A) = {(qQ,BA)} S(q0,b,B) = {(q0,BB)} S(qo,s,Z) = {(p,Z)} 5(q0,e,A) = {(p,A)} S(qo,e,B) ={(p,B)} S(fi,a,A) ={(p,e)} S(p,b,B) ={{p,e)} 6(p,e,Z) ={(/,Z)} IB102 Automaty a gramatiky, 20.11.2017 1/15 Příklad M = ({q0}, {a, b}, {Z, A}, ô, q0, Z, 0), kde ó(q0,a,Z) = {(q0,A)} S(q0,a,A)={(q0,AA)} ô(q0,b,A) = {(q0,£)} IB102 Automaty a gramatiky, 20.11.2017 2/15 Ekvivalence dvou způsobů akceptování Věta 3.39. Pro každý jazyk L platí: L = L(Af) pro nějaký PDA AT ^ L = Le(M) pro nějaký PDA M Důkaz, koncový stav = prázdný zásobník Intuice: K danému J\í zkonstruujeme M simulující jeho činnost. Vejde-li J\í do koncového stavu, M se nedeterministicky rozhodne ■ pokračovat v simulaci automatu J\f nebo ■ přejít do nově přidaného stavu q£, v němž vyprázdní zásobník. IB102 Automaty a gramatiky, 20.11.2017 3/15 Komplikace Řešení: Před zahájením simulace bude u M na dně zásobníku nový symbol, který nedovolíme odstranit jinde, než ve stavu q£. IB102 Automaty a gramatiky, 20.11.2017 4/15 Konstrukce: Nechť J\í = (Q, Z, r, 6, q0, Z0, F). Klademe m = (Ou {tf0,Z, ru {Z7},tf0,Z',0), kde Z' ^ r, Qq, q£ ^ Q a (5; je definována takto: ■ 6'{(f0,e,Z') = {{qo,ZoZ')} ■ jestliže 5(q, a, Z) obsahuje (r, 7), pak 5'(q, a, Z) obsahuje (r, 7) ■ S'(q,e,Z) obsahuje (ge,Z) pro všechny geFaZeru {Zř} ■ 8\qe,e,Z) = {(cfe,e:)} pro všechny ZgTu {Z7} IB102 Automaty a gramatiky, 20.11.2017 5/15 Korektnost: IB102 Automaty a gramatiky, 20.11.2017 6/15 prázdný zásobník =4> koncový stav Intuice: K danému M zkonstruujeme J\í simulující jeho činnost. ■ J\f si před simulací přidá na dno zásobníku nový symbol. ■ Je-li J\f schopen číst tento symbol (tj. zásobník automatu M je prázdný) tak J\f přejde do nově přidaného stavu qf, který je koncovým stavem. IB102 Automaty a gramatiky, 20.11.2017 7/15 Konstrukce: Nechť M = (Q, E, l~, S, q0, Z0,0). Klademe JV = (Ou {tf0, gř}, Z, r u {Z'}, 5', q'Ql Z', {g,}), kde Z' r, <7q, qy ^ Q a 5' je definována takto: ■ 5'(q'0,s,Z>) = {(q0,Z0Z>)} ■ jestliže S(q, a, Z) obsahuje (r, 7), pak 5'(qf, a, Z) obsahuje (/-, 7) ■ 5'{q,e,Z') = {{qf,e)} pro všechny qeQ IB102 Automaty a gramatiky, 20.11.2017 Grafická reprezentace konfigurací IB102 Automaty a gramatiky, 20.11.2017 9/15 Rozšířený zásobníkový automat Definice 3.44. Rozšířený zásobníkový automat je sedmice ^ = (Q,Z,r,(5,Q0,Z0,F)5kde ■ všechny symboly až na S mají tentýž význam jako v definici PDA, ■ S je zobrazením z konečné podmnožiny množiny Q x (Z u {s}) x r* do konečných podmnožin množiny Q x r*. Pojmy konfigurace a akceptovaný jazyk (koncovým stavem, prázdným zásobníkem) zůstávají beze změny. Krok výpočtu |-^- definujeme takto: def (p,aw,^a) h?-(<7, w,72a) ^ 3(9,72) e <5(P,a,7i) pro aeHu{e} IB102 Automaty a gramatiky, 20.11.2017 10/15 Příklad n = ({q0,p, f}, {a, b, c, d}, {A, B,Z},ô, g0,Z, {f}), kde S(q0,a,e) ={(qQ,A)} S(q0,b,e) = {{q0,B)} 5(q0,e,e) ={(p,e)} ô(p,a,A) ={(p,e)} 6(p,b,B) ={{p,e)} ô(p,c,AA) ={{p,e)} 5(p,c,BBB) = {(p,e)} 5(p,d,Z) ={(f,e)} IB102 Automaty a gramatiky, 20.11.2017 11/15 Ekvivalence rozšířených PDA a PDA Lemma 3.45. Ke každému rozšířenému PDA existuje ekvivalentní {obyčejný) PDA. Intuice: IB102 Automaty a gramatiky, 20.11.2017 12/15 Důkaz. Nechť n = (Q, z, r, S, q0l z0, F) je rozšírený PDA a m = max{|a| | a, a) je definováno pro nějaké q g q, a g z u {č}}. Definujeme p = (Qi, z, ^, ^, q1, z|, F|), kde ■ = {[q, a] | Q g Q, a g ľ*, 0 < |a| < a7?}, m ľ-i =ru{z1}, kde z| je nový symbol, ■ F! [Qo^oZj77-1], {[Q, a] | Q g F, a g ľ*, 0 < \a\ < m}. IB102 Automaty a gramatiky, 20.11.2017 13/15 Si je definována takto: - jestliže 5(q, a, X1 ... Xk) obsahuje (r, Yí ... Y/), pak / > k\ .. .Xkoi\,a,Z) obsahuje Qr,/3],7Z), kde /37 = V^i ... Y/a a |/3| = m5 pro všechny Z e r1 a a e takové, že |a| = rn - k I < k: 51 ([q,X1 ...Xka],a,Z) obsahuje ([r, ... Y\olZ\s) pro všechny Z e r1 a a e takové, že \a\ = rn - k - 6i([q,a],e,Z) = {([q,aZ\,e)} pro všechny q e Q, Z e r1 a a e V] takové, že \a\ < m IB102 Automaty a gramatiky, 20.11.2017 14/15 Korektnost: Ověříme, že platí (<7, aw, Xi ... X/fX/^i ... Xn) |-^- (r, tv, Ví ... V/X^+i ... Xn) ^ ([q,a],aw,/3)\^-([r,a'],w,p'), kde a/3 = X\ .. a'/3' = V-, . ' m a a' • • V//X/c+1 = m a mezi dvěma výše uvedenými konfiguracemi PDA P neexistuje taková konfigurace, kde druhá komponenta stavu (tj. buffer) by měla délku m. □ IB102 Automaty a gramatiky, 20.11.2017 15/15