AUTÓMATAS DE PILA. Nota: Si existe transición de tipo (2), sólo se garantiza que AP es determinístico si s A, δ( e i, s, X) está indefinida.



Documentos relacionados
Autómatas Finitos y Lenguajes Regulares

Ciencias de la Computación I

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

Autómatas finitos no deterministas (AFnD)

Serafín Moral Departamento de Ciencias de la Computación. Modelos de Computación ITema 2: Autómatas Finitos p.1/88

Definición formal de autómatas finitos deterministas AFD

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc.

TEMA 5. GRAMÁTICAS REGULARES.

Ciencias de la Computación I

2: Autómatas finitos y lenguajes regulares.

Introducción a Autómatas Finitos

Clase 08: Autómatas finitos

Autómata de Pila (AP, PDA) Sesión 18

Máquinas de estado finito y expresiones regulares

Lenguajes No Regulares

Autómata de Pila (AP, PDA) Tema 18

Un conjunto se considera como una colección de objetos, llamados miembros o elementos del conjunto. Existen dos formas de expresar un conjunto:

Proyecto Unico - Parte 1 - Solución

Ciencias de la Computación I

Tema 2: Autómatas finitos

Clase 17: Autómatas de pila

Clase 09: AFN, AFD y Construcción de Thompson

TEORÍA DE AUTÓMATAS I Informática de Sistemas

Conjuntos y relaciones

DESARROLLO DE UN ENTORNO DE SIMULACIÓN PARA AUTÓMATAS DETERMINISTAS CAROLINA GONZÁLEZ NARANJO CÉSAR AUGUSTO MONTOYA ROMÁN

2.Teoría de Autómatas

El cuerpo de los números reales

Unidad 4. Autómatas de Pila

PROPIEDADES DE LOS NUMEROS REALES

Unidad 4. Autómatas de Pila

Ciencias de la Computación I

Autómatas y Lenguajes Formales. Tema 3.2: Autómatas Finitos No Deterministas. Luis Peña luis.pena@urjc.es

Repaso. Lenguajes formales

CURSO CERO DE MATEMATICAS. Apuntes elaborados por Domingo Pestana Galván. y José Manuel Rodríguez García

Un autómata con pila no determinista (APND) es una septupla Q A B F en la que

AUTOMATAS FINITOS Traductores

Definiciones previas

Autómatas finitos con salidas

Tema 2: Los Autómatas y su Comportamiento

AUTÓMATAS DE ESTADO FINITO

3. Autómatas Finitos. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Herramientas digitales de auto-aprendizaje para Matemáticas

CONJUNTOS. Consideremos, por ejemplo, los siguientes conjuntos:

Tema 1: Espacios de Medida. 12 de marzo de 2009

Teoría de conjuntos. Tema 1: Teoría de Conjuntos.

Curso Básico de Computación Preliminares

Tema 3.- Gramáticas formales

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia III: Conocer, utilizar y manipular expresiones regulares

PRACTICA 10: Máquinas de Turing

Cardinalidad. Teorema 0.3 Todo conjunto infinito contiene un subconjunto infinito numerable.

La Jerarquía de Chomsky

1. Cadenas EJERCICIO 1

GRAMATICAS LIBRES DEL CONTEXTO

Autómatas a pila. Capítulo Concepto de AP Equivalencia entre AP por vaciado de pila y AP por estado final

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

Máquinas de Turing. Definición 2

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

Traductores Push Down

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

Tema 5: Autómatas a pila. Teoría de autómatas y lenguajes formales I

TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 }

Lenguajes y Compiladores Análisis Léxico

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

Curso Básico de Computación

Lenguajes Regulares. Antonio Falcó. - p. 1

Expresiones Regulares y Derivadas Formales

Curso Básico de Computación

SSL Guia de Ejercicios

Teoría de Automatas, Lenguajes Formales y Gramáticas. D. Castro Esteban

C H 107 C O 143 C=O 121 C C 154 C=C

TEORÍA DE AUTÓMATAS Y LENGUAJES

09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

Sentido de recorrido. q i

Tema 2. Grupos. 3. El conjunto de matrices de orden 2 con coeficientes enteros (o reales) con la suma es un grupo conmutativo.

Programación y matemática

1. EJERCICIOS TEMAS 1 Y 2.

Departamento de Tecnologías de la Información. Tema 3. Autómatas finitos y autómatas de pila. Ciencias de la Computación e Inteligencia Artificial

IES Fco Ayala de Granada Junio de 2011 (Específico 2 Modelo 1) Soluciones Germán-Jesús Rubio Luna

Miguel-Ángel Pérez García-Ortega

Introducción a la Teoría de Autómatas, Lenguajes y Computación

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES

INSTITUTO TECNOLÓGICO DE APIZACO TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO

Área Académica: Licenciatura en Sistemas Computacionales

Teoría de Conjuntos. Conjunto es: colección de cosas, o una colección determinada de objetos.

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Funciones de varias variables.

Clase 25/09/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf

Tema XIV: SUCESIONES Y SERIES DE NÚMEROS REALES XIV.1. Sucesiones. Sucesiones convergentes

EXPRESIONES REGULARES Y AUTOMATAS

ANÁLISIS LÉXICO AUTÓMATAS FINITOS

Capítulo 9. Introducción a los lenguajes formales. Continuar

Temas. Objetivo 07:00

Autómatas de Pila y Lenguajes Incontextuales

Transcripción:

AUTÓMATAS DE PILA Los autómatas de pila, en forma similar a como se usan los autómatas finitos, también se pueden utilizar para aceptar cadenas de un lenguaje definido sobre un alfabeto A. Los autómatas de pila pueden aceptar lenguajes que no pueden aceptar los autómatas finitos. Un autómata de pila cuenta con una cinta de entrada y un mecanismo de control que puede encontrarse en uno de entre un número finito de estados. Uno de estos estados se designa como estado inicial, y además algunos estados se llaman de aceptación o finales. A diferencia de los autómatas finitos, los autómatas de pila cuentan con una memoria auxiliar llamada pila. Los símbolos (llamados símbolos de pila) pueden ser insertados o extraídos de la pila, de acuerdo con el manejo last-in-first-out (LIFO). Las transiciones entre los estados que ejecutan los autómatas de pila dependen de los símbolos de entrada y de los símbolos de la pila. El autómata acepta una cadena x si la secuencia de transiciones, comenzando en estado inicial y con pila vacía, conduce a un estado final, después de leer toda la cadena x. Autómata de pila reconocedor determinístico APD=<E, A, P, δ,, Z 0, F> E: Conjunto finito de estados, A: Alfabeto o conjunto finito de símbolos de la cinta de entrada, P: Alfabeto o conjunto finito de símbolos de la Pila. P A= δ: función de transición de estados : Estado inicial E. Z 0 : Símbolo distinguido Z 0 P F: Conjunto de estados finales o estados de aceptación. F E. La función de transición definida como: δ:e x ( A {ε}) x P E x P 1) δ( e i, a, X) =( e j, α) 2) δ( e i, ε, X) =( e j, α) donde a A; X P; α P ; e i, e j E. Nota: Si existe transición de tipo (2), sólo se garantiza que AP es determinístico si s A, δ( e i, s, X) está indefinida. 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, tanto si: (1) < e i, aω,xβ > < e j, ω, αβ > Si existe la transición tipo (1), el AP pasa al estado e j, avanza la cabeza lectora y reemplaza el tope X por α. (2) < e i, ω, Xβ > < e j, ω, αβ > Si existe la transición tipo (2), el AP pasa al estado e j, NO avanza la cabeza lectora y reemplaza el tope X por α. donde a A; ω A ; X P; α,β P ; e i,e j E

La función de transición de estados de un AP puede ser representada por un diagrama donde los nodos representan los estados y los arcos transiciones. Si existe transición tipo (1), el arco queda rotulado de la siguiente manera: e i a,x / α e j Si el estado actual es e i y la cabeza lectora apunta un símbolo a, y el tope de la pila es X, entonces cambiar al nuevo estado e j, avanzar la cabeza lectora, y sustituir el símbolo 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 símbolo por debajo (desapila) Ejemplo 1 A={a,b,c} L 1 ={ωcω R / ω {a,b} } APD 1 es un autómata de pila que reconoce L1. APD 1 =<{,,e 2 },{a,b,c},{x,y, Z 0 }, δ,, Z 0, {e 2 }> δ: a, Z 0 / XZ 0 b, Z 0 / YZ 0 a, X / XX b, Y / YY a, Y / XY b, X / YX e o c, Z 0 / Z 0 c, X / X c, Y / Y a, X / ε b, Y / ε ε, Z 0 / Z 0 e 2 Ejemplos de cadenas aceptadas ó no aceptadas por AP 1 δ (, abcba)=e 2 abcba L 1 δ (, c)=e 2 c L 1 δ (,abcab)= abcab L 1 δ (,a)= a L 1 Ejemplo 2 L 2 = {a i b c k / i,k 1 y i<k} APD 2 =<{,,e 2 },{a,b,c},{a, Z 0 }, δ 2,, Z 0, {e 2 }> δ 2 : c,z 0 /Z 0 c,z 0 /Z 0 e 2

1,Z 0 /BZ 0 3,Z 0 /Z 0 CIENCIAS DE LA COMPUTACION I 2009 Ejemplo 3 L 3 = {a i b c k / i,k 1 y i k} APD 3 =<{,,e 2 },{a,b,c},{a, Z 0 }, δ 3,, Z 0, {e 2 }> δ 3 : c,z 0 /Z 0 e ε,z 0 /Z 0 1 e 2 Ejemplo 4 L 4 = {a i b c k / i, k 1 y i > k} APD 41 =<{,,e 2,e 3 },{a,b,c},{a, Z 0 }, δ 41,, Z 0, {e 3 }> δ 41: c,α/ε e 2 ε,α/a e 3 c,a/ ε APD 42 =<{,,e 2,e 3 },{a,b,c},{a, Z 0 }, δ 42,, Z 0, {e 3 }> δ 42: a,z 0 / Z 0 e 1 e 2 e 3 Ejemplo 5 L 5 = {a i b c k / i, k 1 y i k} APD 5 =<{,,e 2,e 3 },{a,b,c},{a, Z 0 }, δ 5,, Z 0, {e 3 }> δ 5: e 2 c,a/ ε e 3 c,a/ ε Ejemplo 6 L 6 ={0 i 1 i+k 2 k 3 n+1 / i, k, n 0 } APD 6 =<{e o,,e 2, e 3,e 4 },{0,1,2,3},{A,B, Z 0 }, δ 6,, Z 0, {e 4 }> δ 6 : 0,Z 0 /AZ 0 0,A /AA 1, A /ε 1,B/BB 2, B /ε 3,Z 0 /Z 0 e o 1, A /ε 1,Z 0 /BZ 2, B /ε 0 e 3,Z 0 /Z 0 2 e 3 e 4 3,Z 0 /Z 0

Ejemplo 7 L 7 = {h n g j e 2n d 3i / i, j, n 0} Casos Cadenas de L 7 si n, i, j >0 h n g j e 2n d 3i si n=0 y i, j >0 g j d 3i si i=0 y n, j >0 h n g j e 2n si j=0 y n, i >0 h n e 2n d 3i si n, i=0 y j >0 g j si n, j=0 y i >0 d 3i si i, j =0 y n >0 h n e 2n si n,i,j=0 ε APD 7 = <{e o,,e 2,e 3,e 4,e 5,,,e 8, e 9 },{h,e,g,d},{h, Z 0 }, δ 7,, Z 0, {, e 4, e 8, e 9 }> δ 7 : e,h/h h,h/hh g,h/h e,h/h e,h/ε e o h,z 0 /HZ g,h/h e 2 e,h/h e 3 e 4 e 5 ε,z 0 /Z 0 g,z 0 /Z 0 g,z 0 /Z 0 e 9 e 8 Autómata de pila no determinístico APND= <E, A, P, δ,, Z 0, F>, donde las componentes E, A, P,, Z 0, F se definen como antes, y la función de transición se define como δ: E x (A {ε}) x P P f ( E x P * ) P f denota los subconjuntos finitos de E x P * 1) δ( e i,a, X) = {(e j, α 1 ), (e k, α 2 ),... } 2) δ( e i,ε, X) = {(e j, α 1 ), (e k, α 2 ),... } donde a A, X P, α 1, α 2 P *, e i, e j, e k E Como ya se ha estudiado los autómatas finitos no determinísticos (AFND) reconocen los mismos lenguajes que los autómatas finitos determinísticos (AFD). Sin embargo no ocurre lo mismo con autómatas de pila no determinísticos (APND) y autómatas de pila determinísticos (APD). Algunos lenguajes sólo pueden ser reconocidos por un APND, pero no por un APD.

Ejemplo 8 L 8 = {a m b p c p+m / m,p 1} {a 2i b i / i 1} L 8 sólo puede reconocerse con un APND. APND 8 =<{,,e 2, e 3,e 4,e 5,,,e 8, e 9 },{a,b,c},{a,b, Z 0 }, δ 8,, Z 0, {e 9 }> δ 8 : a, A/AA b,b/bb c,b/ε a, Z 0 /AZ 0 b,a/ba e 2 c,b/ε e 3 e 4 e o a, Z 0 /AZ 0 a,a/a b,a/ε APND 8 es no determinístico ya que en el caso de: δ(,a, Z 0 ) = {(, AZ 0 ), (, A Z 0 )} b,a/ε ε, Z 0 / Z 0 e 8 ε, Z 0 / Z 0 e 9 Ejemplo 9 L 9 = {a m b p c p+m / m,p 1} {a i b 2i / i 1} L 9 sólo puede reconocerse con un APND. APND 9 =<{,, e 2, e 3, e 4, e 5,, },{a,b,c},{a,b, Z 0 }, δ 9,, Z 0, { }> δ 9 : a, A/AA b,b/bb c,b/ε a, Z 0 /AZ 0 b,a/ba e 2 c,b/ε e 3 e 4 e o e 5 b,a/ε ε, Z 0 / Z 0 ε, Z 0 / Z 0 Lenguajes aceptados por los Autómata de Pila Una cadena ω A * es aceptada por AP=<E, A, P, δ,, Z 0, F> si y solo si <,ω, Z 0 > * < e f, ε, α > El AP, comienza en el estado, con pila vacía, luego de leer toda la cadena ω, llega a un estado e f 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)= { ω / <,ω, Z 0 > * < e f, ε, α > y ω A * y e f F y α P * } Los lenguajes aceptados por los Autómatas de Pila se denominan lenguaje libres del contexto.

Autómata de pila traductor Autómata de pila traductor AP T Un AP T es simplemente un AP que se define como una 9-upla AP T = <E, A, P, δ,, Z 0, F, γ, S> donde E, A, P, δ,, Z 0, F se definen como antes y se agregan dos componentes: S: Alfabeto o conjunto finito de símbolos de salida γ: función de traducción definida como γ:e x (A {ε}) x P S * La γ está definida siempre que δ está definida. En el diagrama de transición de AP T puede describirse como una extensión de la notación usada para AP. Si existe δ(e i, a, X) =( e j, α) y además γ(e i, a, X) = t; luego el arco queda rotulado de la siguiente manera: e i a,x / α,t e j donde e i, e j E ; a A; X P; α P * ;t S * 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 T(ω) es válida <,ω, Z 0 > * < e f, ε, α > Ejemplo 10 L 6 ={0 i 1 i+k 2 k 3 n+1 / i, k, n 0 } Traducir las cadenas de L 6 0 i 1 i+k 2 k 3 n+1 como a i+ k b 2k c 3n APD T6 =<{e o,,e 2,e 3,e 4 },{0,1,2,3},{A,B, Z 0 }, δ 6,, Z 0, {e 4 },γ 6, {a,b,c}> δ 6 y γ 6 : 0,Z 0 /AZ 0,ε 0,A /AA, ε 1,A/ε,a 1,B/BB,a 2,B/ε,bb 3,Z 0 / Z 0,ccc e o 1,A/ε,a 1,Z 0 /BZ 0,a e 2,B/ε,bb 3,Z 0 /Z 0,ε 2 e 3 e 4 1,Z 0 /BZ 0,a 3,Z 0 /Z 0, ε 3,Z 0 /Z 0, ε

Ejemplo 11: L 7 = {h n g j e 2n d 3i / i, j, n 0} Traducir las cadenas de L 7 h n g j e 2n d 3i como 1 2j 0 n 2 i APD T7 =<{e o,,e 2,e 3,e 4,e 5,,,e 8, e 9 },{h,e,g,d},{h, Z 0 }, δ 7,, Z 0, {, e 4, e 8, e 9 },γ 7, {0,1,2}> δ 7 y γ 7 : h,h/hh, ε e,h/h, ε g,h/h,11 e,h/h, ε e 5 ε,z 0 /Z 0, ε e o h,z 0 /HZ 0, ε g,h/h,11 e e,h/h,ε e,h/ε,0 2 e 3 e 4 g,z 0 /Z 0, 11 g,z 0 /Z 0,11 e 9, ε, ε, ε, ε, ε e 8, 2