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