Professional Documents
Culture Documents
Autmatas a pila
11.1. Concepto de AP
1
11.1. Concepto de Autmata a pila
Introduccin
estado actual
smbolo de entrada
smbolo superior de la pila
Generalmente, el autmata a pila es no determinista en el
sentido de que se permite que haya varias acciones posibles en
cada momento.
2
Un AP puede realizar dos tipos de operaciones elementales:
1. Dependientes de la entrada.
Se lee la cinta y se avanza la cabeza lectora,
En funcin:
del estado actual (qi)
del smbolo ledo en la cinta (a)
del smbolo en la cima de la pila (Z)
Se pasa a un nuevo estado, se elimina el elemento Z de la
cima de la pila y se introduce en su lugar una cadena de
smbolos.
2. Independientes de la entrada.
Las mismas operaciones que en el caso anterior, slo que
no se lee la cinta, ni se avanza la cabeza lectora. Se
maneja la pila sin la informacin de entrada.
3
Definicin formal de un AP
Q*
f : Q{{}} 2 (subconjunto finito)
4
Interpretacin de la funcin de transicin
Representaremos con:
(a, b,...) los elementos de
(A, B, C..) los de
(x, y, z,...) los de *
(X, Y, Z,...) los de *
La interpretacin de f es:
a) f(q, a, A) = {(q1, Z1), (q2, Z2),... (qn, Zn)}
cuando el autmata se encuentra en el estado q, lee el smbolo
de entrada a y tiene el smbolo A en la cima de la pila; el
autmata pasar a algn estado qi (recordar que es no
determinista), eliminar el smbolo A de la pila e introducir en
ella la palabra Zi , quedando la cabeza de Zi en la cima de la
pila.
b) f(q, , A) = {(q1, Z1), (q2, Z2),... (qn, Zn)}
cuando el autmata se encuentra en el estado q, y tiene el
smbolo A en la cima de la pila; el autmata pasar a algn
estado qi (recordar que es no determinista), eliminar el smbolo
A de la pila e introducir en ella la palabra Zi , quedando la
cabeza de Zi en la cima de la pila.
Se entiende que el resultado de la funcin f para las
configuraciones (estado, smbolo de entrada y smbolo de pila)
no explcitamente especificadas es el conjunto vaco. Estas
representan configuraciones muertas del autmata.
5
Representacin grfica
AP=({a,b,c},{S,A,B,b},{p,q,r},S,p,f,{r})
f(p,a,S)={(p,SAB), (q,b)}
f(p,,S)={(p,SAB)}
f(q,b,b)={(q,)}
f(q,b,B)={(q,)}
f(q,c,A)={(q,A),(q,)}
f(q,,B)={(r,)}
(,B,)
S (a,S,b) r*
p q
(b,b,)
(a,S,SAB) (c,A,A)
(,S,SAB) (c,A,)
(b,B,)
6
Descripcin instantnea
Movimientos
7
Lenguaje aceptado por un autmata a pila
Equivalencia de AP
8
Ejemplo:
S (b,A,)
p q
(a,S,A) (b,A,)
(a,A,AA)
APF=({a,b},{S,A},{p,q,r},S,p,f,{r})
f(p,a,S)={(p,AS)}
f(p,a,A)={(p,AA)}
f(p,b,A)={(q,)}
f(q,b,A)={(q,)}
f(q,,S)={(r,S)}
S (,S,S)
p (b,A,) q r*
(a,S,AS) (b,A,)
(a,A,AA)
Otro ejemplo:
Autmata a pila para el lenguaje
L={wwR | w{a,b}*, wR imagen inversa de w}.
9
Autmatas a pila deterministas
1. qQ, A:
f(q, , A) a: f(q, a, A) =
2. qQ, A, a {}:
f(q, a, A) contiene como mximo un elemento.
Ejemplo:
AP (por vaciado de pila) para L={anbmcp | n0, m1, p n+m}
(a,S,AS) (c,S,S)
(a,A,AA) (c,A,)
(b,A,AA)
(,S,)
S
p q r
(c,A,)
(b,A,AA)
(b,S,AS)
Determinista o no?
Teorema:
Mtodo de demostracin:
1. LAPF LAPV
f(s,,B)={(q0,A0B)}
f(q,a,A)=f(q,a,A) para todo qQ, qF, a{} y A
f(q,a,A)=f(q,a,A) para todo qF, a y A
f(q,,A)=f(q,,A) {(r, )} para todo qF y A
f(q,,B)= {(r, )} para todo qF
f(r,,A)= {(r, )} para todo A{B}
11
2. LAPV LAPF
f(s,,B)={(q0,A0B)}
f(q,a,A)=f(q,a,A) para todo qQ, a{} y A
f(q,,B)= {(r, )} para todo qQ
12
11.3. AP y lenguajes independientes del
contexto
Construccin de un AP a partir de una GIC
Teorema:
Sea AP el conjunto de todos los autmatas a pila sobre un
alfabeto y LAP_={L | L=L(AP) y AP AP} la familia de
lenguajes sobre aceptados por los autmatas a pila. (Da igual
si se acepta el lenguaje por estado final o por vaciado de pila.)
Sea LG_2_ la familia de todos los lenguajes sobre generados
por gramticas del tipo 2 (lenguajes independientes del
contexto).
LG_2_ = LAP_ .
Mtodo de demostracin:
1. LG_2_ LAPV_
Para cada GIC, G, existe un autmata a pila por vaciado de
pila, AP, tal que L(G)=LV(AP).
Encontrar un algoritmo para construir AP a partir de una
gramtica genrica G.
2. LG_2_ LAPV_
Para cada autmata a pila, AP, por vaciado a de pila existe
una GIC, G, tal que L(G)=LV(AP).
Encontrar un algoritmo para construir G a partir de un AP
genrico.
13
GIC AP reconocedor por vaciado de pila
Ejemplo:
2. Construir autmata:
S (,S,)
q
(a,S,SB)
(a,S,B)
(b,B,)
14
Otra posibilidad:
Gramtica en FNG
G=({a,b},{S,B},S,P)
P={S::= aSB|aB|, B::= b}
(,S,aSB)
(,S,aB)
(,S,)
(,B,b)
(a,a,)
(b,b, )
S q
15
Algoritmo:
Algoritmo 1:
= T, = N, Q={q}, A0 = S, q0=q, F=
y f se define por:
1. (q, ) f(q, , S) si (S::= ) P
2. (q, Z) f(q, a, A) si (A::= aZ) P
Algoritmo 2:
= T, = NT, Q={q}, A0 = S, q0=q, F=
y f se define por:
1. (q, ) f(q, , S) si (S::= ) P
2. (q, aZ) f(q, , A) si (A::= aZ) P
3. f(q, a, a)={(q, )} para todo aT
16
Ejemplo:
Lenguaje de las parntesis (bien formada):
S::=SS|aSb| S::= SS|aSb|ab|
2. Construir autmata:
AP= ({a,b}, {S,B,C}, {q}, S, q, f, ), donde f se define:
f(q,,S)={(q, )}
f(q,a,S)={(q,SBC),(q,BC),(q,SB),(q,B)}
f(q,a,C)={(q,SBCC),(q,BCC),(q,SBC),(q,BC),(q,SB),(q,B)}
f(q,b,B)={(q,)}
17
GIC AP reconocedor por estado final
Idea:
Construir el AP por vaciado de pila (de un estado) y aadir dos
estados nuevos:
(,A0,SA0)
A0 s (,S,) r*
q (,A0,A0)
(a,S,SB)
(a,S,B)
(b,B,)
Algoritmo:
Sea la gramtica G = (T, N, S, P), que suponemos en forma
normal de Greibach. A partir de ella construimos un autmata
a pila AP como sigue:
1. Construir el autmata AP= (, , {q}, S, q, f, F) que
acepta por vaciado de pila con el algoritmo dado anteriormente.
Sea q el nico estado de este autmata.
2. AP=(, A0, {q, r, s}, A0, s, f, {r}) con A0 y f
definido por:
f(s, , A0)={(q, SA0)}
f(q, a, A)=f(q,a,A) para todo a {} y A
f(q, , A0)={(r, A0)}
18
Construccin de una GIC a partir de un AP genrico
{ x* / (qi,x,A) * (qj,,) }
y el conjunto de producciones P:
1. para todo qi Q:
S::=[q0A0qi] P
2. por cada (qj, Y1Y2Yk) f(qi, a, A), donde k >0, y
a{}:
{[qiArk] ::= a[qjY1r1][r1Y2 r2] [rk-1Yk rk],
para todas las listas de estados (r1,r2, ,rk) Qk } P
3. por cada (qj, ) f(qi, a, A), donde a{}:
{[qiAqj] ::= a, para todo qjQ } P
19
Ejemplo:
Autmata (por vaciado de pila): S (,S,)
q
(a,S,SB)
(a,S,B)
(b,B,)
AP= ({a,b}, {S,B}, {q}, S, q, f, ), donde f se define por:
f(q,,S)={(q, )} f(q,b,B)={(q,)}
f(q,a,S)={(q,SB),(q,B)}
Autmata:
(q,aaabbb,S) (q,aabbb,SB) (q,abbb,SBB) (q,bbb,BBB)
(q,bb,BB) (q,b,B) (q,,)
Gramtica:
AaABaaABBaaaBBBaaabBB aaabbB aaabbb
Otro ejemplo:
S (a,S,SAA)
q
(b,A,)
(b,S,)
20