Ciencias de la Computación I - Facultad de Ciencias Exactas

Transcripción

Ciencias de la Computación I - Facultad de Ciencias Exactas
Ciencias de la Computación I
Autómatas de Pila y
Lenguajes Libres del Contexto
Octubre 2007
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
Motivación
-¿Es posible diseñar un AF que reconozca el lenguaje L1?
L1 = { an bn / n > 0 }
-¿Es posible diseñar un AF que reconozca el lenguaje L2?
L2 = { x / x ∈ { (, ) }* y x es una cadena con paréntesis balanceados }
Es necesario agregar algo a los AF para incrementar
su poder computacional
Memoria auxiliar que funciona como una Pila
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
1
Autómatas de Pila
Dado un lenguaje L, libre del contexto, definido sobre un alfabeto A y
una cadena x arbitraria, determinar si x ∈ L o x ∉ L.
SI
Cadena x
AUTOMATA DE PILA
NO
Lenguaje Libre
del Contexto
• Dos puntos de vista:
Ø Como dispositivo reconocedor de la pertenencia de
una cadena a un lenguaje libre del contexto.
Ø Como traductor de una cadena en otra.
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
Autómatas de Pila Reconocedores
cinta de entrada (contiene cadena a ser leída)
a
b
c
d
…
cabeza lectora (se mueve a derecha o no se mueve)
indicador de estado
e0
e1
e5
e4
e3
e2
mecanismo de control
B
PILA: permite “recordar”
lo leído en la cinta
A
Z0
Estados del AP:
ü Cantidad finita.
ü Un estado inicial.
ü Al menos un estado final o de aceptación.
Dada una cadena x en la
cinta de entrada, si el AP:
Ø termina en un estado final
→ cadena aceptada
Ø termina en un estado no final
→ cadena rechazada
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
2
Autómatas de Pila Reconocedores
Para definir un AP reconocedor es necesario indicar:
ü el alfabeto de entrada
ü el conjunto finito de estados
ü de estos estados, cuál es el inicial
ü de estos estados, cuál o cuáles son finales
ü el alfabeto de la pila
üuna función que indique para cada estado, a qué estado se
debe pasar y qué acción realizar sobre la pila, luego de leer
un símbolo determinado en la cinta de entrada y el símbolo
en el tope de la pila
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
Autómatas de Pila Reconocedores
Formalmente, un AP reconocedor determinístico (APD) se define
como una 7-upla
APD = <E, A, P, δ, ei, F, Z0>
ü E es un conjunto finito de estados; E ≠ ∅
ü A es el alfabeto de entrada
A∩P=∅
ü P es el alfabeto de la pila
ü δ es la función de transición de estados
δ: E x ( A ∪ {ε} ) x P → E x P*
ü ei es el estado inicial; ei ∈ E
ü F es el conjunto de estados finales o de aceptación; F ⊆ E
ü Z0 símbolo distinguido de la Pila
Z0 ∈ P
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
3
Autómatas de Pila Reconocedores
ü δ es la función de transición de estados
δ: E x ( A ∪ {ε} ) x P → E x P*
1) δ(ei, a, X) = (ek, α)
2) δ(ei, ε, X) = (ek, α)
donde a ∈ A; X ∈ P; α ∈ P* ; ei , ek ∈ E
Importante:
Si existe transición de tipo (2), sólo se garantiza que AP es
determinístico si
∀s: s ∈ A, δ ( ei , s, X) no está definida
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
Autómatas de Pila Reconocedores
Un AP reconocedor determinístico se puede representar
gráficamente usando un diagrama de transición de estados.
- cada estado ej ∈ E
ej
- estado inicial ei
ei
- cada estado final e f ∈ F
ef
a, X / α
- cada transición entre estados
δ(ej , a, X) = (ek, α)
ej
ek
para ej, ek ∈ E, a ∈ A, X ∈ P, α ∈ P*
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
4
Autómatas de Pila Reconocedores
a, X / α
Transición de Tipo 1
ej
δ(ej , a, X) = (ek, α)
ek
Acción sobre la Pila
Nuevo estado
Tope de la Pila
Símbolo leído en cinta de entrada
Estado actual
Si α = ZYX
deja X, apila Y, apila Z
(Nuevo tope Z)
Si α = XX
deja X, apila X
(Nuevo tope X)
Si α = X
deja X
(No altera la Pila)
Si α = ε
elimina X
(Desapila)
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
Autómatas de Pila Reconocedores
Descripción instantánea
Una configuración de un AP es una tripla <e ,σ ,π> donde
e: estado actual; σ: cadena de entrada a ser leída; π: contenido de la pila.
Luego, se define una relación de transición | en el espacio
de posibles configuraciones del AP, como sigue:
(1)
< ei, aω,Xβ > | < ej, ω, αβ >
(1) δ (e i, a, X) = (ej , α)
Si existe la transición 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 transición tipo (2),
(2) δ (e i, ε, X) = (ej ,α)
el AP pasa al estado ej ,
NO avanza la cabeza lectora y
reemplaza el tope X por α.
donde a ∈ A; ω ∈ A*; X ∈ P; α, β ∈ P*; ei ,ej ∈ E
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
5
Autómatas de Pila Reconocedores
Cadena aceptada por AP
Una cadena ω ∈ A* es aceptada por AP = <E, A , P, δ, e0, Z0, F> sí y sólo sí
* < e , ε, α >
< e0, ω, Z0 > |
f
El AP, comienza en el estado e0, con pila vacía, y luego de leer
toda la cadena ω , llega a un estado ef ∈ F, y en la pila queda
cualquier cadena α ∈ P*
Luego, el lenguaje aceptado por un AP = <E, A , P, δ, e0, Z0, F> es:
* < e , ε, α > y ω ∈ A* y e ∈ F y α ∈ P*}
L(AP) = { ω / < e , ω, Z > |
0
0
f
f
Los lenguajes aceptados por los Aut
Autó
ómatas de Pila se denominan
Lenguajes Libres (Independientes
Independientes)) del Contexto o de Tipo 2.
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
Autómatas de Pila Reconocedores
Autómata de pila no determinístico
APND= <E, A , P, δ, e0, Z0, F>, donde las componentes E, A, P, e0, Z0, F se
definen como antes, y la función de transición δ 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, α1), (ek, α2), ....
}
2) δ( ei ,ε, X) = {(ej, α1), (ek, α2), ....
}
donde a ∈ A, X ∈ P,
α1, α2 ∈ P*, ei, ej, ek ∈ E
Teorema:
Los APND tienen mayor poder de reconocimiento que los APD.
Es decir, hay lenguajes que pueden ser reconocidos por un APND pero
no por un APD.
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
6
Autómatas de Pila Traductores
Formalmente, un AP traductor (APT) se define como una 9-tupla
AP T = <E, A, P, δ, ei, F, Z0, S, γ>
donde E, A , P, δ, e0, Z0, F se definen como antes y se agregan dos componentes
ü S es el alfabeto de salida
ü γ es la función de traducción; γ : E x ( A ∪ {ε}) x P → S*
γ está definida siempre que δ está definida.
Si existe δ(ej, a, X) =( ek, α) y además γ(ej, a, X) = t
donde ej , e k ∈ E; a ∈ A; X ∈ P; α ∈ P*; t ∈ S*
a, X / α, t
ej
ek
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
Autómatas de Pila Traductores
Función de traducción para cadenas
El autómata sólo define la traducción, si el autómata AP subyacente
“acepta” la cadena.
Es decir, la traducción T(ω): A* → S* asociada a AP T está
definida como:
* < e , ε, α > donde ω ∈ A*
T(ω) es válida ⇔ < e0, ω, Z0 > |
f
Ciencias de la Computación I - Filminas de Clase – Mg. Virginia Mauco – Facultad C s. Exactas – UNCPBA - 2007
7

Documentos relacionados