Upload
phunghanh
View
218
Download
0
Embed Size (px)
Citation preview
0 0 09:15
1 1 09:15
Temas
Definición de autómata de pila
Autómata de pila determinístico y no determinístico
Objetivo
Que el estudiante logre:
1) Identificar conceptos constructivos de la Teoría de la
Computabilidad.
2) Definir autómatas de pila.
2 2 09:15
Autómata
• Dispositivo mecánico capaz de procesar cadenas de símbolos.
• Dado un lenguaje L definido sobre un alfabeto A y una
cadena x arbitraria, determina si x L o x L.
• Un autómata tiene dos posibles reacciones:
Autómata
Las hileras son
reconocidas o
aceptadas SI
Las hileras son
rechazadas por
el autómata
NO
Cadena x
Lenguaje
3 3 09:15
GRAMÁTICAS LENGUAJES AUTÓMATAS
Gramáticas no restringidas
Lenguajes Irrestrictos o recursivamente
enumerables (Tipo 0)
Máquinas de Turing
Gramáticas sensibles al contexto Lenguajes sensibles al
contexto (Tipo 1)
Autómatas ligados
linealmente
Gramáticas libres de contexto
Lenguajes libres de contexto (Tipo 2)
Autómatas de pila
Gramáticas regulares
Lenguajes regulares (Tipo 3)
Autómatas finitos
Las gramáticas proporcionan un método para generar cadenas de un lenguaje
y para reconocer cadenas de un lenguaje se han descripto autómatas de varios
tipos.
4 4 09:15
Un autómata de pila consiste de:
1) Una unidad de control, que es un autómata finito.
2) Una memoria auxiliar que es una cinta semi-infinita con una clase
particular de acceso restringido. La memoria de los autómatas de pila
los hace más poderosos que los autómatas finitos. El acceso restringido
a la memoria auxiliar es del tipo LIFO (last input first output). Tal
memoria se denomina almacén pushdown o pila.
a b a b b a
q0
q1
q2
q4 q3 qi
qn
Cinta de entrada
Cabeza lectora Control
Pila
5 5 09:15
Un autómata de pila (pushdown automata) es:
A = (Q, ,, ,q0 ,z0 ,F) donde:
Q es un conjunto no vacío de estados.
es el alfabeto de entrada, no vacío.
es el alfabeto de la pila, no vacío.
q0 Q es el estado inicial.
F Q es el conjunto de estados finales.
es la función de transición directa. Es una proyección:
Q x ( ) x en subconjuntos finitos de Q x *.
z0 : símbolo inicial de la pila.
Una configuración de un autómata de pila es una tripla c = (q , a , z) con
q Q, a * , z *; q es el estado actual, a es el elemento a
considerar de la hilera de entrada y z es el contenido de la pila.
6 6 09:15
Funcionamiento o movimientos
atómicos:
Existen dos clases :
z
Pila
a
Entrada no
procesada
Entrada
q
Unidad de
control en
estado q
1) (q,a,z) = (p,w) donde:
q : estado actual.
a : símbolo de la hilera de entrada.
z : símbolo del tope de pila.
p : próximo estado.
w : símbolo que se deja en el tope de
pila. Al realizar el movimiento atómico la unidad
de control pasa al estado p, el símbolo de
entrada a se procesa y el símbolo z del tope
de pila se reescribe como la hilera w *.
• Si w = se borra, la pila pierde el primer
símbolo de arriba.
• Si |w| = 1, z se reemplaza por otro símbolo,
posiblemente el mismo.
• Si |w| > 1 se añaden símbolos a la pila.
7 7 09:15
z
Pila
a
Entrada no
procesada
Entrada
q
Unidad de
control en
estado q
2) (q,,z) = (p,w)
Al realizar este movimiento no se
procesa ningún símbolo de entrada (la
cabeza de entrada no se mueve). El
autómata de pila puede cambiar de
estado y modificar el contenido de la
pila.
8 8 09:15
El símbolo a la derecha de la barra, como único elemento: a, b / significa que
se borra de la pila el elemento que se encuentra como tope de pila.
El símbolo a la izquierda de la barra significa fin de la hilera de entrada.
L(G) = { an bn / n ≥ 1} A = ({q0 ,q1 ,q2 ,q3}, {a,b}, {z0 ,a},,q0
,z0 ,{q3 })
(q0 ,a,z0 ) = (q1 ,a z0 )
(q1 ,a,a) = (q1 ,a a)
(q1 ,b,a) = (q2 ,)
(q2 ,b,a) = (q2 ,)
(q2 ,,z0 ) = (q3 ,z0)
q0 q1 q2 a,z0/az0 b,a/
a,a/aa b,a/
q3 ,z0/z0
Símbolo que se toma de la hilera de entrada
Símbolo de tope de pila
Símbolo que se carga en el tope de pila
Símbolo anterior al que se carga
a , b a b /
9 9 09:15
Los autómatas de pila son no determinísticos, si para algún:
(q,a,z) Q x ( ) x , |(q,a,z)| > 1
Un autómata de pila es determinístico si |(q,a,z)| ≤ 1.
Ejemplo de Autómata de Pila Determinístico
L = {xcx-1 / x {a,b}*} un conjunto de palíndromas con marcador central c.
q0 q1 c,z0/z0
c,a/a
c,b/b
a,a/
b,b/
q2 ,z0/z0
a,z0/az0
b,z0/bz0
a,a/aa
b,b/bb
a,b/ab
b,a/ba
A = ({q0 , q1 , q2}, {a,b,c}, {a,b,z0 }, , q0 , z0 , {q2})
(q0 ,a,z0 ) = (q0 ,a z0 )
(q0 ,b,z0 ) = (q0 ,b z0 )
(q0 ,a,a) = (q0 ,a a)
(q0 ,b,b) = (q0 ,b b)
(q0 ,a,b) = (q0 ,a b)
(q0 ,b,a) = (q0 ,b a)
(q0 ,c,z0 ) = (q1 ,z0 )
(q0 ,c,a) = (q1 ,a)
(q0 ,c,b) = (q1 ,b)
(q1 ,a,a) = (q1 ,)
(q1 ,b,b) = (q1 , )
(q1 , ,z0 ) = (q2 ,z0 )
10 10 09:15
Ejemplo de Autómata de Pila No Determinístico
L = {xx-1 / x {a,b}*} un conjunto de palíndromas sin marcador central.
A = ({q0 , q1 , q2}, {a,b}, {a,b,z0 }, , q0 , z0 ,
{q2})
(q0 ,a,z0 ) = (q0 ,a z0 )
(q0 ,b,z0 ) = (q0 ,b z0 )
(q0 ,a,a) = (q0 ,a a)
(q0 ,b,b) = (q0 ,b b)
(q0 ,a,b) = (q0 ,a b) q0 q1 a,a/
b,b/
a,a/
b,b/
q2 ,z0/z0
a,z0/az0
b,z0/bz0
a,a/aa
b,b/bb
a,b/ab
b,a/ba
,z0/z0
Es no determinístico debido a:
(q0 ,a,a) = {(q0 ,a a), (q1 ,)}
(q0 ,b,b) = {(q0 ,b b), (q1 , )}
No siempre es posible, dado un autómata de pila no determinístico, encontrar un
autómata de pila determinístico que acepte el mismo lenguaje.
11 11 09:15
El AP tiene más poder que el autómata finito.
La memoria (dada por la pila) es de acceso limitado, para acceder a
un cierto dato es necesario borrar los anteriores. Esto impide, por ejemplo,
reconocer el lenguaje: L(G) = {anbncn / n ≥1}
Se ve entonces la necesidad de disponer otro modelo computacional,
que se presenta como otro tipo de autómata, cuya memoria no tenga esas
limitaciones. Este modelo es la Máquina de Turing.
Cada tipo de autómata definido, incluye al anterior como caso
particular.