You are on page 1of 11

La eleccin de stewards de la Fundacin Wikimedia 2009 ha

empezado. Por favor, vota.

[Contraer]
[Aydanos
traduciendo.]

Autmata con pila


De Wikipedia, la enciclopedia libre
(Redirigido desde Autmata de pila)
Saltar a navegacin, bsqueda
Un autmata con pila o autmata de pila o autmata a pila o autmata apilador es
un modelo matemtico de un sistema que recibe una cadena constituida por smbolos de
un alfabeto y determina si esa cadena pertenece al lenguaje que el autmata reconoce.
El lenguaje que reconoce un autmata a pila pertenece al grupo de los lenguajes de
contexto libre en la clasificacin de la Jerarqua de Chomsky.

Definicin formal [editar]


Formalmente, un autmata con pila puede ser descrito como una sptupla M =
(S,,,,s,Z,F) donde:

y son alfabetos de entrada, de la cadena y de la pila respectivamente;


S un conjunto de estados;
es el estado inicial;
es el smbolo inicial de la pila;
es un conjunto de estados de aceptacin o finales.

La interpretacin de

con
es la siguiente:

Cuando el estado del autmata es s, el smbolo que la cabeza lectora est


inspeccionando en ese momento es a, y en la cima de la pila nos encontramos el
smbolo Z, se realizan las siguientes acciones:

Si
, es decir no es la palabra vaca, se avanza una posicin la cabeza
lectora para inspeccionar el siguiente smbolo.
Se elimina el smbolo Z de la pila del autmata.
Se selecciona un par (pi,i) de entre los existentes en la definicin de (s,A,Z), la
funcin de transicin del autmata.
Se apila la cadena
en la pila del autmata, quedando el
smbolo A1 en la cima de la pila.
Se cambia el control del autmata al estado pi.

Ejemplo [editar]

Sea el siguiente lenguaje libre del contexto

; formado por las

cadenas
Dicho lenguaje puede ser reconocido por el siguiente autmata con pila:

donde las transiciones son:

para cualquier (q,,)


El significado de las transiciones puede ser explicado analizando la primera transicin:

donde q0 es el estado actual, a es el smbolo en la entrada y se extrae de la cima de la


pila. Entonces, el estado del automata cambia a q1 y el smbolo se coloca en la cima
de la pila.
La idea del funcionamiento del autmata es que al ir leyendo los diferentes smbolos a,
estos pasan a la pila en forma de smbolos A. Al aparecer el primer smbolo b en la
entrada, se comienza el proceso de desapilado, de forma que coincida el nmero de
smbolos b ledos con el nmero de smbolos A que aparecen en la pila.

Autmata determinista [editar]


Ntese que, a diferencia de un autmata finito o una mquina de Turing, la definicin
bsica de un autmata con pila es de naturaleza no determinista, pues la clase de los
autmatas con pila deterministas, a diferencia de lo que ocurra con aquellos modelos,
tiene una potencia descriptiva estrictamente menor. Para calificar a un autmata con pila
como determinista deben darse dos circunstancias; en primer lugar, por supuesto, que en
la definicin de cada componente de la funcin de transicin existan un nico elemento
lo que da la naturaleza determinista. Pero eso no es suficiente, pues adems puede darse
la circunstancia de que el autmata est en el estado s y en la pila aparezca el smbolo
sZ, entonces, si existe una definicin de transicin posible para algn smbolo

cualquiera a del alfabeto de entrada, pero, adems existe otra alternativa para la palabra
vaca , tambin esto es una forma de no determinismo, pues podemos optar entre leer
un smbolo o no hacerlo. Por eso, en autmata determinista no debe existir transicin
posible con lectura de smbolo si puede hacerse sin ella, ni al contrario.
Para cada
cada

, se d que:

Obtenido de "http://es.wikipedia.org/wiki/Aut%C3%B3mata_con_pila"
Categora: Lenguajes formales
Vistas

Artculo
Discusin
Editar
Historial

Herramientas personales

Registrarse/Entrar

Navegacin

Portada
Portal de la comunidad
Actualidad
Cambios recientes
Pgina aleatoria
Ayuda
Donaciones

Buscar
Ir

Buscar

Herramientas

Lo que enlaza aqu


Cambios en enlazadas
Subir archivo
Pginas especiales
Versin para imprimir
Enlace permanente
Citar este artculo

En otros idiomas

, para

Bosanski
esky
Deutsch
English
Suomi
Franais

Hrvatski
Italiano

Polski

Slovenina

Esta pgina fue modificada por ltima vez el 18:25, 15 dic 2008.
Contenido disponible bajo los trminos de la Licencia de documentacin libre de
GNU (vase Derechos de autor).
Wikipedia es una marca registrada de la organizacin sin nimo de lucro
Wikimedia Foundation, Inc.
Poltica de privacidad
Acerca de Wikipedia
Limitacin de responsabilidad

CIENCIAS DE LA COMPUTACION I 2008

AUTMATAS DE PILA
Los autmatas de pila, en forma similar a como se usan los autmatas finitos, tambin se
pueden
utilizar para aceptar cadenas de un lenguaje definido sobre un alfabeto A.
Los autmatas de pila pueden aceptar lenguajes que no pueden aceptar los autmatas
finitos.
Un autmata de pila cuenta con una cinta de entrada y un mecanismo de control que puede
encontrarse en uno de entre un nmero finito de estados. Uno de estos estados se designa
como
estado inicial, y adems algunos estados se llaman de aceptacin o finales. A diferencia de
los
autmatas finitos, los autmatas de pila cuentan con una memoria auxiliar llamada pila. Los
smbolos (llamados smbolos de pila) pueden ser insertados o extrados de la pila, de
acuerdo con el
manejo last-in-first-out (LIFO).
Las transiciones entre los estados que ejecutan los autmatas de pila dependen de los
smbolos de
entrada y de los smbolos de la pila. El autmata acepta una cadena x si la secuencia de
transiciones,

comenzando en estado inicial y con pila vaca, conduce a un estado final, despus de leer
toda la
cadena x.
Autmata de pila reconocedor determinstico
APD=<E, A , P, e0, Z0, F>
E: Conjunto finito de estados,
A: Alfabeto o conjunto finito de smbolos de la cinta de entrada,
P: Alfabeto o conjunto finito de smbolos de la Pila. PA=
funcin de transicin de estados
e0: Estado inicial e0 E
.
Z0: Smbolo distinguido Z0 P

F: Conjunto de estados finales o estados de aceptacin. F E


.
La funcin de transicin definida como: :E x ( A {}) x P E x P
1) ei a, X) =( ej ,
ei , , X) =( ej , donde a A
; X P
; P
; ei , ej E
.
Nota: Si existe transicin de tipo (2), slo se garantiza que AP es determinstico si
s A
, ei , s, X) est indefinida.
Descripcin instantnea
Una configuracin de un AP es una tripla <e , > donde e: estado_actual; : cadena de
entrada a
ser leda; : contenido de la pila.
Luego, se define una relacin de transicin | en el espacio de posibles configuraciones del
AP,
tanto si:
(1)

ei , a ,X | < ej , Si existe la transicin tipo (1), el AP pasa al estado


ej, avanza la cabeza lectora y reemplaza el tope X
por
(2)

ei , a , X | < ej , a Si existe la transicin tipo (2), el AP pasa al estado


ej, NO avanza la cabeza lectora y reemplaza el tope X por
donde aA;
A; XP; P; ei ,ej E

CIENCIAS DE LA COMPUTACION I 2008


La funcin de transicin de estados de un AP puede ser representada por un diagrama donde
los
nodos representan los estados y los arcos transiciones. Si existe transicin tipo (1)el arco
queda
rotulado de la siguiente manera:
Si el estado actual es ei y la cabeza lectora apunta un smbolo a, y el tope de la pila es X,
entonces
cambiar al nuevo estado ej, avanzar la cabeza lectora, y sustituir el smbolo del tope X en la
pila por
la cadena
Por ejemplo:
Si ZYX deja X , apila Y, y apila Z (nuevo tope Z). donde X, Y, Z P

Si XX deja X y apila X (nuevo tope X).


Si X deja X como el mismo tope (no altera la pila)
Si elimina X, y el nuevo tope es el smbolo por debajo (desapila)
Ejemplo 1
A={a,b,c}

L1={ c R / {a,b} }
APD1 es un autmata de pila que reconoce L1.
APD1=<{e0,e1,e2},{a,b,c},{X,Y, Z0}, e0, Z0, {e2}>

Ejemplos de cadenas aceptadas no aceptadas por AP 1


e0, abcba)=e2 abcba L
1
e0, c)=e2 c L
1
e0,abcab)=e1 abcab L
1
e0,a)=e0 a L
1
Ejemplo 2
L2 = {ai b ck / i,k 1 y i<k}
APD2 =<{e0,e1,e2},{a,b,c},{A, Z0}, 2 ,e0, Z0, {e2}>
2
ei ej
a ,X /
eo e1 e2
a, Z0 / XZ0
b, Z0 / YZ0
a, X / XX
b, Y / YY
a, Y / XY
b, X / YX
a, X /
b, Y /
Z0 / Z0
c, Z0 / Z0
c, X / X
c, Y / Y
b,A/A
a,Z0/AZ0
a,A/AA
e0
c,A/
c,Z0/Z0
c,Z0/Z0
e1 e2
CIENCIAS DE LA COMPUTACION I 2008
Ejemplo 3
L3 = {ai b ck / i,k 1 y i k}
APD3 =<{e0,e1,e2},{a,b,c},{A, Z0}, 3 ,e0, Z0, {e2}>
3
Ejemplo 4
L4 = {ai b ck / i, k 1 y i > k}
APD41 =<{e0,e1,e2,e3},{a,b,c},{A, Z0}, 41 ,e0, Z0, {e3}>
41:
APD42 =<{e0,e1,e2,e3},{a,b,c},{A, Z0}, 42 ,e0, Z0, {e3}>
42:
Ejemplo 5
L5 = {ai b ck / i, k 1 y i k}

APD5 =<{e0,e1,e2,e3},{a,b,c},{A, Z0},

5 ,e0,

Z0, {e3}>

5:

Ejemplo 6
L6={0i 1i+k 2k 3n+1/ i, k, n 0 }
APD6=<{eo,e1,e2, e3,e4},{0,1,2,3},{A,B, Z0}, ,e0, Z0, {e4}>

1, A /1,B/BB
1,Z0 /BZ0
3,Z0 /Z0
3,Z0 /Z0 2, B /
eo 1, A /e1 e2 2, B /e3 e4
0,Z0 /AZ0
0,A /AA
1,Z0 /BZ0
3,Z0 /Z0
3,Z0 /Z0
b,A/A
a,Z0/AZ0
a,A/AA
e0
c,A/
Z0/Z0
c,Z0/Z0
e1 e2
c,A/
b,A/A
a,Z0/AZ0
a,A/AA
e0 e3 e2 c,A/
b,A/A
a,Z0/AZ0
a,A/AA
e0
/A
c,A/
e1
c/e2 e3
a,Z0/ Z0
e0
a,Z0/AZ0
a,A/AA
e1 b,A/A e2 e3
c,A/
c,A/
CIENCIAS DE LA COMPUTACION I 2008
Ejemplo 7
L7 = {hn gj e2n d3i/ i, j, n 0}
Casos Cadenas de L7
si n, i, j >0 hn gj e2n d3i
si n=0 y i, j >0 gj d3i

si i=0 y n, j >0 hn gj e2n


si j=0 y n, i >0 hn e2n d3i
si n, i=0 y j >0 gj
si n, j=0 y i >0 d3i
si i, j =0 y n >0 hne2n
si n,i,j=0
APD7 = <{eo,e1,e2,e3,e4,e5,e6,e7,e8,e9},{h,e,g,d},{H, Z0}, ,e0, Z0, {e0, e4, e8, e9 }>

Autmata de pila no determinstico
APND= <E, A , P, e0, Z0, F> , donde las componentes E, A , Pe0, Z0, F se definen como
antes, y
la funcin de transicin se define como
E x (A {}) x P Pf( E x P*) Pf denota los subconjuntos finitos de E x P*
1) ei ,a, X) = {(ej , (ek ,
ei ,, X) = {(ej , (ek , donde a A
, X P
, P
*, ei, ej, ek E

Como ya se ha estudiado los autmatas finitos no determinsticos (AFND) reconocen los


mismos
lenguajes que los autmatas finitos determinsticos (AFD). Sin embargo no ocurre lo mismo
con
autmatas de pila no determinsticos (APND) y autmatas de pila determinsticos (APD).
Algunos
lenguajes slo pueden ser reconocidos por un APND, pero no por un APD.
d,Z0 /Z0
d,Z0 /Z0
h,H/HH
g,H/H
g,H/H
,Z0/Z0
e,H/
h,Z0/HZ e,H/H
eo e1 e2 e3 e4
g,Z0 /Z0
d,Z0 /Z0
e5
e,H/H
e,H/H
e6
e8
e7
d,Z0 /Z0
d,Z0 /Z0
e9
g,Z0 /Z0
d,Z0 /Z0
CIENCIAS DE LA COMPUTACION I 2008
Ejemplo 8
L8= {am bp cp+m / m,p 1} {a
2i bi / i 1}
L8 slo puede reconocerse con un APND.
APND8 =<{e0,e1,e2,e3,e4,e5, e6,e7,e8, e9},{a,b,c},{A,B, Z0}, ,e0, Z0, {e9}>
:
APND8 es no determinstico ya que en el caso de:

e0 ,a, Z0) = {(e1 , AZ0(e6 , A Z0


Ejemplo 9
L9= {am bp cp+m / m,p 1} {ai b2i / i 1}
L9 slo puede reconocerse con un APND.
APND9 =<{e0, e1, e2, e3, e4, e5, e6, e7 },{a,b,c},{A,B, Z0}, ,e0, Z0, {e7}>
:
Lenguajes aceptados por los Autmata de Pila
Una cadena A* es aceptada por AP=<E, A , P, e0, Z0, F>
si y solo si
e0 , , Z0 | * < ef , El AP, comienza en el estado e0, con pila
vaca, luego de leer toda la cadena llega a un estado
ef F , y en la pila queda cualquier cadena P
*.
El lenguaje aceptado por AP, es el conjunto de todas las cadenas que son aceptadas por AP:
L(AP)= { / e0 , , Z0> | * < ef , y A* y ef F y P
*
Los lenguajes aceptados por los Autmatas de Pila se denominan lenguaje libres del
contexto.
a,A/AA
Z0/ Z0
b,B/BB c,B/c,A/
c,A/
b,A/
c,B/
Z0/ Z0
b,A/
a, A/AA
b,A/BA
a,A/A
a, Z0 /AZ0
a, Z0 /AZ0
eo
e1 e2 e3 e4
e6
e7 e8 e9
b,A/A
Z0/ Z0
b,B/BB c,B/c,A/
c,B/c,A/
Z0/ Z0
a, A/AA
b,A/BA
b,A/
a, Z0 /AZ0
eo
e1 e2 e3 e4
e5
e6 e7
b,A/A
CIENCIAS DE LA COMPUTACION I 2008
Autmata de pila traductor
Autmata de pila traductor APT

Un APT es simplemente un AP que se define como una 9-upla


APT = <E, A , P, , e0, Z0, F, S>
donde E, A , P, e0, Z0, F se definen como antes y se agregan dos componentes:
S: Alfabeto o conjunto finito de smbolos de salida
funcin de traduccin definida como E x (A {})

x P S*
La est definida siempre que est definida.
En el diagrama de transicin de APT puede describirse como una extensin de la notacin
usada
para AP. Si existe ei a, X) =( ej , y adems ei , a, X) = tluego el arco queda rotulado
de la
siguiente manera:
donde ei , ej E
; a A
; X P
; P
* ;t S *
Funcin de traduccin para cadenas
El autmata slo define la traduccin, si el autmata AP subyacente acepta la cadena. Es
decir la
traduccin T( ): A*S* asociada a APT est definida como
T( ) es vlida
e0 , , Z0> | * < ef ,
Ejemplo 10
L6={0i 1i+k 2k 3n+1/ i, k, n 0 }
Traducir las cadenas de L6 0i 1i+k 2k 3n+1 como a i+ k b2k c3n
APDT6=<{eo,e1,e2,e3,e4},{0,1,2,3},{A,B, Z0}, ,e0, Z0, {e4}, a,b,c}>
y
ei ej
a ,X / t
3,Z0 /Z0,ccc
0,Z0 /AZ0
0,A /AA,
1,A/,a 1,B/BB,a
1,Z0/BZ0,a 3,Z0/Z0,
2,B/,bb
eo 1,A/a e1 e2 2,B/bb e3 e4
1,Z0 /BZ0,a
3,Z0 /Z0,
3,Z0 /Z0,
CIENCIAS DE LA COMPUTACION I 2008
Ejemplo 11:
L7 = {hn gj e2n d3i/ i, j, n 0}
Traducir las cadenas de L7 hn gj e2n d3i como 12j 0n 2 i
APDT7=<{eo,e1,e2,e3,e4,e5,e6,e7,e8,e9},{h,e,g,d},{H, Z0}, ,e0, Z0, {e0, e4, e8, e9
}, 0,1,2}>
y
d,Z0 /Z0,
h,H/HH,
g,H/H,11
g,H/H,11
,Z0/Z0,
eo h,Z0/HZ0, e1 e2 e,H/H,e3 e,H/0 e4
g,Z0 /Z0,11

d,Z0 /Z0 ,
e5
e,H/H, e,H/H,
e6
e8
e7
d,Z0 /Z0, 2
d,Z0 /Z0,
e9
g,Z0 /Z0, 11
d,Z0 /Z0,
d,Z0 /Z0,

You might also like