1 Autómatas de pila (Pushdown automata). 2 Autómata de conteo Autómata finito determinista con un contador de enteros o “bolsa” en la que se colocan o.

Slides:



Advertisements
Presentaciones similares
Autómata finito Determinista
Advertisements

Introducción ¿Qué es un Algoritmo?
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Autómatas de pila (Pushdown automata)
Gramáticas.
Diseño de Autómatas Finitos
Autómatas Finitos.
Diseño de AFN’s.
Máquinas de Turing (MT)
Autómata Finito Un autómata finito (AF) es un modelo de computación muy restringido, sin embargo tiene una gran aplicación en reconocimiento de patrones.
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
TEÓRIA DE CONJUNTOS.
TEÓRIA DE CONJUNTOS Profesor: Rubén Alva Cabrera.
Tema 2 Autómatas finitos 1. Autómata finito determinista
Análisis sintáctico LR: SLR (LR simple)
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
Teoría de lenguajes y compiladores
Tema 2 Autómatas finitos 1. Autómata finito determinista
Lenguajes regulares Teoría del Autómata.
Ejemplo de AFN Ej. Diseña un AFN que acepte todas las cadenas que contengan dos ceros consecutivos o dos unos consecutivos. Solución AFN q4 1 q2 q1 q0.
Teoría de lenguajes y compiladores Analizadores lexicográficos
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
MÁQUINAS DE TURING Teoría del Autómata.
Teoría de lenguajes y compiladores
Tomado de Sudkamp: Languages and Machines Cap. 6.
Lenguajes Formales y Autómatas
Problemas de grafos y Tratabilidad Computacional
Autómatas de Pila (Pushdown Automatón)
1 AFDAFN AF Gramáticas lineales derecha Expresiones regulares Tema 2 Método de los AF Método de las derivadas Sistemas de Ecuaciones Tema 1.
Teoría de lenguajes y compiladores
TEÓRIA DE CONJUNTOS Profesor: Ing. Oscar Guaypatin Pico.
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
Lenguajes y Autómatas Alfabeto.- es un conjunto finito no vacío cuyos elementos se denominan símbolos Longitud de una palabra.- Es el número de símbolos.
Simulación de un AFD Conversión de un AFND a un AFD.
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
Unidad 2 Lenguajes, Expresiones Regulares, Autómatas
Centro Universitario Valle de México Gramáticas Libres de Contexto Dra. Maricela Quintana López Elaborado por: Autómatas y Lenguajes Formales.
Autómatas finitos (AF) Los AF constan de 5 elementos fundamentales AF=( , E, F, s,  ).  Un alfabeto (  )  Un conjunto de estados (E)  Un conjunto.
Ingreso , proceso y salida de datos
EJERCICIOS Listas, Pilas y Colas
Números reales.
LENGUAJES FORMALES, AUTOMATAS Y MAQUINAS DE ESTADOS FINITOS
Fundamentos de la Computación
Computación Valeria Herskovic –
Básicos de Autómatas.
AUTOMATAS Y LENGUAJES FORMALES FASE 1
CREAR DIAGRAMA DE FLUJO
PILAS. Operaciones de las Pilas Operaciones que se pueden realizar con una pila son: -PUSH (pila, elemento) -POP (pila) -VACIA (pila)
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Universidad Nacional de Loja
Introducción a las estructuras de datos
LENGUAJE DE PROGRAMACION “PILAS”
Algoritmo Capitulo Cinco.
AUTOMATAS FINITOS DETERMINISTICOS
Estas dos líneas de código permiten al Asm iniciar en Code Segment
Grafos dirigidos: Sea G un grafo, si cada arista en G tiene una dirección entonces G se llama grafo dirigido o dígrafo y sus aristas se llaman arcos.
UNIDAD 3. Autómatas Finitos 3.3 Conversión de un AFND a AFD Presentan: Anahi Avila Valdez Erika F. Palma Tzidejhe Docente: Adrián Chávez 1.
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
GRAMATICA LIBRE DE CONTEXTO LENGUAJE LIBRE DE CONTEXTO Marcela Hernandez.
Tema 2 Autómatas finitos 1. Autómata finito determinista
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Fundamentos de la Programación I
AUTÓMATAS ROHERMY OCHOA V AUTÓMATA FINITO Es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir.
Teoría de Conjuntos Conjuntos. CONCEPTO DE CONJUNTO Es considerado un término primitivo, por lo tanto se acepta como un término no definido. Es una colección.
NÚMEROS REALES. NÚMEROS NATURALES Los números naturales son aquellos que sirven para designar la cantidad de elementos que posee un cierto conjunto. Se.
Definición de Conjuntos. Clasificación de Conjuntos. Representación. Subconjuntos. Conjunto Potencia. Propiedades del conjunto Potencia. Relaciones.
Automata de Pila
Transcripción de la presentación:

1 Autómatas de pila (Pushdown automata)

2 Autómata de conteo Autómata finito determinista con un contador de enteros o “bolsa” en la que se colocan o extraen cuentas o “piedras” en respuesta a un símbolo de entrada. En otras palabras, en cada transición el autómata no sólo selecciona un nuevo estado sino que también decide, independientemente del estado de la bolsa, si añade otra cuenta a la bolsa o saca una cuenta de la bolsa o la deja igual. La bolsa inicia con una cuenta y el autómata continúa operando mientras haya símbolos de entrada y la bolsa no esté vacía. Si se consumen todos los símbolos de la palabra de entrada al mismo tiempo que se vacía la bolsa, entonces se acepta la palabra.

3 Ejemplo: {a n b n | n  1} a a b b q0q0 q1q1 q2q2

4 Autómatas de pila Desafortunadamente los autómatas de conteo no son suficientemente poderosos para reconocer todos los LLC. En ocasiones se requiere más de un tipo de cuenta o “roca” o en lugar de una “bolsa”. Se utiliza un stack o pila LIFO (Last In First Out) en el cual el orden es importante. La acción que lleva a cabo el autómata sólo es influenciada no sólo por el estado en que se encuentra y por el símbolo que lee, sino también por el tipo de piedra u objeto que se encuentra arriba en la pila. ab abba q0q0 q1q1 q2q2 q4q4 q3q3 qiqi qnqn Cinta de entrada Cabeza lectora Control   Pila

5 Definición formal Un autómata de pila (pushdown automata) es una sexteta (K, , , , s 0, F) donde: –K 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. –s 0  K es el estado inicial. –F  K es el conjunto de estados finales. –   (K  (   { })  (   { }))  (K   * ) es la relación de transición. (p, u,  )  (q,  )   significa que el autómata está en el estado p, lee el símbolo u, saca  de la pila, pasa al estado q e introduce  a la pila. La operación “push” (sólo meter a la pila) se logra tomando  como la palabra vacía. La operación “pop” (sólo sacar de la pila) se logra tomando  como la palabra vacía. Ya que  es una relación y no necesariamente una función, un autómata de pila es no determinista. Una palabra es aceptada por un AP si al “procesarla” completamente, se llega a un estado final y la pila queda vacía. Debido al no-determinismo del autómata es posible que al terminar de procesar la palabra, varios estados estén activos. Es suficiente que uno de estos estados sea final para que la palabra se acepte. L(M) denota al lenguaje formado por las palabras aceptadas por M.

6 Representación gráfica de un AP La transición ((p, u,  ), (q,  )),  (p, u,  ) = (q,  ), se representa gráficamente por y significa que cuando estamos en el estado p, leemos de la palabra de entrada el símbolo u y sacamos del stack el símbolo , entonces pasamos al estado q y ponemos en la pila la cadena . p q u,  / 

7 Ejemplo Autómata de pila que acepte {a i b i | i  0} –K = {q 0, q 1 } –  = {a, b} –  = {A} –s 0 = q 0 –F = {q 0, q 1 } –  (q 0, a, ) = (q 0, A) –  (q 0, b, A) = (q 1, ) –  (q 1, b, A) = (q 1, ) a, / A b, A / q0q0 q1q1

8 Ejemplo: palíndromos de longitud impar Autómata de pila que acepte {wcw R | w  {a, b} * }. w R es la palabra w al revés, por ejemplo, “anita” R = “atina”. –K = {q 0, q 1 } –  = {a, b, c} –  = {A, B} –s 0 = q 0 –F = {q 1 } –  (q 0, a, ) = (q 0, A)  (q 1, a, A) = (q 1, ) –  (q 0, b, ) = (q 0, B)  (q 1, b, B) = (q 1, ) –  (q 0, c, ) = (q 1, ) a, / A b, / B b, B / a, A / c, / q0q0 q1q1

9 Ejemplo: palíndromos de longitud par Autómata de pila que acepte {ww R | w  {a, b} * }. w R es la palabra w al revés, por ejemplo, “anita” R = “atina”. –K = {q 0, q 1 } –  = {a, b} –  = {A, B} –s 0 = q 0 –F = {q 1 } –  (q 0, a, ) = (q 0, A)  (q 1, a, A) = (q 1, ) –  (q 0, b, ) = (q 0, B)  (q 1, b, B) = (q 1, ) –  (q 0,, ) = (q 1, ) a, / A b, / B b, B / a, A /, / q0q0 q1q1

10 AF  AP Todo lenguaje aceptado por un autómata finito es también aceptado por un autómata de pila. Si M = (K, , , s 0, F) es un autómata finito, entonces (K, , ,  ’, s 0, F) con –  =  –  ’ = {((p, u, ), (q, )) | (p, u, q)   } acepta el mismo lenguaje que M. Los lenguajes libres de contexto son aceptados por los autómatas de pila y los lenguajes generados por los autómatas de pila son los lenguajes libres de contexto.

11 LLC  AP Sea G = (V, , R, S) una gramática libre de contexto. Entonces el autómata de pila M = ({p, q}, , V, , p, {q}) donde la relación de transición se define de la siguiente manera acepta exactamente el mismo lenguaje que G. –1)  (p,, ) = (q, S) –2)  (q,, A) = (q, x) para cada regla A  x  R –3)  (q, ,  ) = (q, ) para cada    El autómata de pila contiene sólo dos estados. El primero se utiliza sólo en la primera transición por lo que los estados no sirven para “recordar” las características de la palabra de entrada, este “recordatorio” se hace en la pila. Las transiciones tipo 2) lo que hacen es derivar en la pila la palabra de entrada sin consumir ningún carácter de entrada. Las transiciones tipo 3) comparan la palabra en la pila con la palabra de entrada.

12 Ejemplo Obtener un AP que acepte el lenguaje generado por la gramática libre de contexto cuyas reglas son: S  aSa S  bSb S  c Transiciones del AP –Tipo 1):  (p,, ) = (q, S) –Tipo 2):  (q,, S) = (q, aSa)  (q,, S) = (q, bSb)  (q,, S) = (q, c) –Tipo 3):  (q, a, a) = (q, )  (q, b, b) = (q, )  (q, c, c) = (q, )

13...Ejemplo: analizar abcba EstadoFalta leerPila pabcba qabcbaS qabcbaaSa qbcbaSa qbcbabSba qcbaSba qcbacba qbaba qaa q

14 Cerradura de los LLC Dadas dos gramáticas G 1 = (V 1,  , R 1, S 1 ) y G 1 = (V 2,  , R 2, S 2 ) entonces (se asume, sin perder generalidad, que los símbolos no terminales de G 1 y G 2 son disjuntos): –La gramática libre de contexto que genera L(G 1 )  L(G 2 ) es G = (V 1  V 2  {S},     , R 1  R 2  {S  S 1, S  S 2 }, S) –La gramática libre de contexto que genera L(G 1 ) L(G 2 ) es G = (V 1  V 2  {S},     , R 1  R 2  {S  S 1 S 2 }, S) –La gramática libre de contexto que genera L(G 1 )*es G = (V 1,  , R 1  {S , S  S 1 S 1 }, S} Si M 1 = (K 1,  1,  1,  1, s 1, F 1 ) y M 2 = (K 2,  2,  2,  2, s 2, F 2 ) son dos autómatas de pila que aceptan los lenguajes L 1 y L 2, respectivamente, entonces un autómata de pila que acepta el lenguaje L 1  L 2 es M 1  2 = (K 1  K 2  {s},  1   2,  1   2, {((s,, ),(s 1, )), (s,, ),(s 2, ))}   1   2, s, F 1  F 2 )

15 Ejemplos Obtener una GLC para el lenguaje {a n b m | n  m}. –{a n b m | n  m} = {a n b m | n m} –{a n b m | n < m} es generado por S  aSb, S  Sb, S  b. –{a n b m | n > m} es generado por

16 Tarea 5. Primera parte Fecha límite de entrega: 06/Mayo/2004 Problema 1. –Obtener un autómata de pila que acepte el lenguaje L = {a i b j c k | ¬(i = j = k)} Utilice el hecho L = {a i b j c k | ¬(i = j = k)} = {a i b j c k | i  j}  {a i b j c k | j  k} Sugerencia: para obtener el AP que acepte el primer lenguaje, primero almacenaría las a’s en la pila para luego ir descontando una b por cada a en la pila; las a’s deben acabarse antes de terminar las b’s o deben sobrar a’s al terminar con las b’s; las c’s no modifican la pila y simplemente se verifica que no haya a después de la primera b ni que haya a o b después de la primera c. La segunda parte de esta Tarea 5 está en la lámina 35 del TLarchivo09.ppt