1. Objetivos. 2. Explicación del método. Teoría de Autómatas y Lenguajes Formales. Boletín de Autoevaluación 1: Cómo se transforma un AFN en un AFD?

Documentos relacionados
1. Objetivos. 2. Idea Principal. Teoría de Autómatas y Lenguajes Formales

Autómatas Deterministas. Ivan Olmos Pineda

PRACTICA 5: Autómatas Finitos Deterministas

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 3

Convertir un AFND a un AFD

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

Autómatas de Estados Finitos

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

DEL AUTÓMATA FINITO A LA EXPRESIÓN REGULAR

Computabilidad y lenguajes formales: Sesión 17. Equivalencia entre Expresiones Regulares y Autómatas Finitos

Máquina de estado finito con salida sin salida

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

ANÁLISIS LÉXICO AUTÓMATAS FINITOS

Tema 4. Autómatas Finitos

Computabilidad y Lenguajes Formales: Autómatas Finitos

Curso Básico de Computación

AUTÓMATAS PROBABILÍSTICOS O ESTOCÁSTICOS

1 er Parcial Febrero 2009

Algoritmo para la obtención de los estados accesibles

UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS

TEORIA DE AUTOMATAS.

Hacia las Gramáticas Propias

Igualdad de cadenas. Las nociones de sufijo y prefijo de cadenas sobre un alfabeto son análogas a las que se usan habitualmente.

Examen de Teoría de Autómatas y Lenguajes Formales

Lenguajes y Compiladores Análisis Léxico

Modelos de Computación. Guía Modelos de Computación. Tema VI: Maquinas De Estado Finito Con Salida

1. Lenguajes formales.

ANÁLISIS LÉXICO DESDE LA EXPRESIÓN REGULAR AL AFD

Máquinas de Turing. Definición 2

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos

2.1. Autómatas finitos deterministas (AFD) Los autómatas finitos son máquinas abstractas que procesan cadenas, las cuales son aceptadas o rechazadas:

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

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

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

Autómata finito y Expresiones regulares A* C. B

Teoría de Autómatas y Lenguajes Formales.

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

Autómatas y Lenguajes Formales Unidad de Competencia II Manejar la teoría de autómatas para conocer su relación con los lenguajes de programación

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos).

2 Autómatas finitos y gramáticas regulares.

Clase 07: Autómatas. Solicitado: Ejercicios 05: Autómatas

Equivalencia de Autómatas finitos deterministas y no deterministas

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

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales

Gramáticas Libres de Contexto

Tema: Autómatas de Estado Finitos

Expresiones regulares, gramáticas regulares Unidad 3

1. Cadenas EJERCICIO 1

Descripción de los Lenguajes Aceptados por Autómatas

2 Autómatas finitos y gramáticas regulares.

APRENDIZAJE Práctica 1 Implementación de un generador de muestras aleatorias para lenguajes regulares

Tema 2: Determinantes

Universidad de Valladolid

INGENIERÍA EN INFORMÁTICA MODELOS ABSTRACTOS DE COMPUTO I SOLUCIONES

Teoría de Autómatas y Lenguajes Formales.

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 7: Máquinas Transductoras. Holger Billhardt

Nuestro objetivo es demostrar que autómata = lógica. IIC3260 Una Aplicación de Teoría de Modelos Finitos: Lógica = Autómata 35 / 60

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

El Autómata con Pila

Nuestro objetivo es demostrar que autómata = lógica Qué significa esto? Queremos encontrar una lógica que defina a los lenguajes regulares

Expresiones regulares, gramáticas regulares

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I

Tema 2: Los Autómatas y su Comportamiento

Autómatas finitos no deterministas (AFnD)

1.1 Máquinas secuenciales Modelo de Moore y de Mealy Lenguaje de una máquina secuencial Equivalencia de modelos

Máquinas de estado finito y expresiones regulares

AUTÓMATAS DE ESTADO FINITO

Conjuntos y expresiones regulares. Propiedades de las expresiones regulares (1) Propiedades de las expresiones regulares (2)

Máquinas de Turing Definición y descripción

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

Prácticas de Introducción a los Computadores Curso Hoja Gráficos: Hoja Regresión: ESPESOR 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5 ESPESOR COSTES fij

Máquinas de Turing, recordatorio y problemas

Lenguajes Formales. 27 de octubre de 2005

Determinantes. Concepto de determinante A cada matriz cuadrada A se le asigna un número denominado determinante de A, denotado por A o por det (A).

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

Practica 04:Conversión de AFN a AFD

SSL Guia de Ejercicios

Unidad 1 Lenguajes Formales

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

1. Objetivos. 2. Idea Principal. Teoría de Autómatas y Lenguajes Formales. Boletín de Autoevaluación 3: Cómo se minimiza un AFD?.

3. Relacin entre los lenguajes regulares y los autmatas.

Matemáticas 2ºBachillerato Aplicadas a las Ciencias Sociales. Un sistema de ecuaciones lineales es un conjunto de ecuaciones lineales de la forma:

Ciencias de la Computación I

Sistemas de ecuaciones lineales

DEFINICIÓN FORMAL DE UN AFP

Tema 2: Determinantes

EL DESAFÍO DE LA SEMANA. Un mensaje cifrado de despedida.

Introducción a los Sistemas Secuenciales. Problemas estructurales en un circuito secuencial asíncrono

Introducción a los Autómatas Finitos

Ciencias de la Computación I

Informática en la ESO 4ºESO. Elaboración de diagramas Hoja de Cálculo Openoffice Calc

John Venn Matemático y filósofo británico creador de los diagramas de Venn

John Venn Matemático y filósofo británico creador de los diagramas de Venn

GRAMMAR Aplicación de apoyo para el aprendizaje de los lenguajes formales.

Un número natural distinto de 1 es un número primo si sólo tiene dos divisores, él mismo y la unidad.

I. Operaciones con matrices usando Mathematica

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I

DETERMINANTES. Resuelve los siguientes sistemas y calcula el determinante de cada matriz de coeficientes: 2x + 3y = x + 6y = 16.

Conversiones de sistemas de numeración

Transcripción:

Teoría de Autómatas y Lenguajes Formales Boletín de Autoevaluación 1: Cómo se transforma un AFN en un AFD? 1. Objetivos. El objetivo de este boletín es ilustrar el método de transformación de un Autómata Finito No Determinista (AFN) en un Autómata Finito Determinista (AFD) mediante ejemplos y, además, proporcionar la solución a alguno de los problemas propuestos en el boletín para que podáis comprobar si habéis aplicado bien este método. 2. Explicación del método. En un autómata determinista, AFD, las transiciones tienen la siguiente estructura: Desde el estado j, leyendo el símbolo a, se debe transitar al estado k. Un autómata no determinista, AFN, se caracteriza por transistar a más de un estado; es decir, la acción básica podría ser como esta: Desde el estado j, leyendo el símbolo a, se puede transitar al estado k ó al estado p. Formalmente, esta idea se expresa redefiniendo la función de transición; ya no es una función f tal que f : Q Σ Q es decir, una función que dado un estado y un símbolo devuelve el estado al que se transita, sino que se expresa como f : Q Σ 2 Q es decir, una función f tal que dado un estado y un símbolo devuelve el conjunto de estados al que se puede transitar 1. Los AFN son útiles como herramienta teórica: facilitan el diseño y suelen ser más económicos (menor número de estados, menor número de transiciones) que los AFD. Pero, por desgracia, son herramientas teóricas: el mundo real es determinista por lo tanto, para poder verlos en funcionamiento o bien se recurre a la simulación o bien se deben transformar previamente a AFD. 1 No olvidéis que 2 Q (ó P (Q)) es el conjunto de todos los conjuntos que se pueden formar con elementos de Q; por lo tanto, esa definición de f indica que la imagen es un subconjunto de Q. 1

Para transformar un AFN en un AFD se sigue el siguiente método: 1. Se construye una tabla donde cada columna está etiquetada con un símbolo del alfabeto de entrada y cada fila se etiqueta con un conjunto de estados. 2. La primera fila se etiqueta con {q 0 }, estado inicial, y en cada entrada de la tabla [q 0, s i ] se almacena f(q 0, s i ) = {p 1,..., p n } = P. 3. Se etiqueta cada fila con cada uno de los conjuntos P que no tengan asociada una fila en la tabla (es decir, con cada uno de los conjuntos P que aparezcan por primera vez en la tabla) y se completa cada una de estas filas con el correspondiente f(p, s i ). 4. Se realiza el paso (3) hasta que no haya en la tabla conjuntos P sin filas asociadas. 5. Se asocia a cada conjunto P que aparezca en la tabla un estado en el nuevo AFD y aquellos que tengan entre sus componentes algún estado final del AFN se considerarán estados finales en el AFD. 3. Ejemplo 1. Calcular un AFD que reconozca el mismo lenguaje que el siguiente AFN, Figura 1: AFN a transformar en AFD. La función de transición de este AFN es la siguiente: q 0 {q 0, q 1 } {q 0 } q 1 {q 2 } {q 0, q 2 } q 2 Comenzamos a aplicar el método a partir de la imagen de {q 0 } con cada uno de los símbolos del alfabeto, de acuerdo a la tabla original: 2

La imagen de {q 0 } con el símbolo 0 es el conjunto de estados {q 0, q 1 } (f(q 0, 0) = {q 0, q 1 }) y su imagen con el símbolo 1 es el conjunto de estados {q 0 }. Como el conjunto {q 0, q 1 } no tiene asociada ninguna fila en la tabla, se etiqueta una fila con él: {q 0, q 1 } Para calcular la imagen de {q 0, q 1 } con el símbolo 0, se debe calcular f(q 0, 0) f(q 1, 0). Si lo consultamos en la tabla de transición del AFN o en el grafo, se obtiene que es {q 0, q 1 } {q 2 } = {q 0, q 1, q 2 }. Este resultado se escribe en la tabla en la entrada [{q 0, q 1 }, 0]: {q 0, q 1 } {q 0, q 1, q 2 } De forma similar se calcula la imagen de {q 0, q 1 } con el símbolo 1: f(q 0, 1) f(q 1, 1) = {q 0 } {q 0, q 2 } = {q 0, q 2 }, Una vez completada la fila etiquetada como {q 0, q 1 } se observa que aparecen dos conjuntos de estados nuevos; por lo tanto, se procede a crear dos nuevas filas en la tabla, cada una etiquetada con cada uno de los nuevos conjuntos: {q 0, q 1, q 2 } {q 0, q 2 } Se calcula la fila etiquetada como {q 0, q 1, q 2 }: f({q 0, q 1, q 2 }, 0) = f(q 0, 0) f(q 1, 0) f(q 2, 0) = {q 0, q 1 } {q 2 } = {q 0, q 1, q 2 }. {q 0, q 1, q 2 } {q 0, q 1, q 2 } {q 0, q 2 } 3

f({q 0, q 1, q 2 }, 1) = f(q 0, 1) f(q 1, 1) f(q 2, 1) = {q 0 } {q 0, q 2 } = {q 0, q 2 }. {q 0, q 1, q 2 } {q 0, q 1, q 2 } {q 0, q 2 } {q 0, q 2 } Como se puede ver, al rellenar esta fila no ha aparecido ningún nuevo conjunto de estados; por lo tanto, pasamos a completar la fila etiquetada con {q 0, q 2 }. f({q 0, q 2 }, 0) = f(q 0, 0) f(q 2, 0) = {q 0, q 1 } = {q 0, q 1 }. {q 0, q 1, q 2 } {q 0, q 1, q 2 } {q 0, q 2 } {q 0, q 2 } {q 0, q 1 } f({q 0, q 2 }, 1) = f(q 0, 1) f(q 2, 1) = {q 0 } = {q 0 }. {q 0, q 1, q 2 } {q 0, q 1, q 2 } {q 0, q 2 } {q 0, q 2 } {q 0, q 1 } {q 0} Tampoco ahora han aparecido nuevos conjuntos de estados, por lo que ya hemos finalizado: el AFD equivalente al AFN descrito en la figura 1 y en la tabla original tiene como función de transición la descrita en el cuadro 1. {q 0, q 1, q 2 } {q 0, q 1, q 2 } {q 0, q 2 } {q 0, q 2 } {q 0, q 1 } {q 0 } Cuadro 1: Tabla del AFD equivalente, obtenida aplicando el método teórico. 4

El conjunto {q 0 } se renombra como q 0, el {q 0, q 1 } como q 1, el {q 0, q 1, q 2 } como q 2 y el estado {q 0, q 2 } se renombra como q 3. Como los conjuntos {q 0, q 1, q 2 } y {q 0, q 2 } contienen estados finales del AFN original, entonces los estados q 2 y q 3 serán estados finales en el AFD. La representación del AFD como grafo dirigido se muestra en la figura 2. Figura 2: Grafo del AFD obtenido al transformar el AFN presentado en la figura 1. 4. Ejemplo 2. Calcular un AFD que reconozca el mismo lenguaje que el siguiente AFN, A = {p, q, r, s}, {0, 1}, f 1, p, {s} siendo f 1 la siguiente función de transición: f 1 0 1 p {p, q} {p} q {r} {r} r {s} s {s} {s} Como en el ejemplo anterior, se comienza a partir de la imagen del conjunto formado por el estado inicial, {p}, con cada uno de los símbolos: El conjunto de estados {p, q} no tiene ninguna fila asociada, por lo que se etiqueta una fila con él: {p, q} 5

Como antes, empezaremos a calcular las imágenes del conjunto de estados con cada uno de los símbolos. f({p, q}, 0) = f 1 (p, 0) f 1 (q, 0) = {p, q} {r} = {p, q, r}. {p, q} {p, q, r} f({p, q}, 1) = f 1 (p, 1) f 1 (q, 1) = {p, } {r} = {p, r}. Una vez completada la fila, han aparecido dos nuevos conjuntos de estados nuevos; por lo tanto, hay que crear dos nuevas filas en la tabla: {p, q, r} {p, r} Vamos a calcular la fila de {p, q, r}: f({p, q, r}, 0) = f 1 (p, 0) f 1 (q, 0) f 1 (r, 0) = {p, q} {r} {s} = {p, q, r, s}. {p, q, r} {p, q, r, s} {p, r} 6

f({p, q, r}, 1) = f 1 (p, 1) f 1 (q, 1) f 1 (r, 1) = {p} {r} = {p, r}. {p, r} Al rellenar esta fila ha aparecido un nuevo conjunto de estados, {p, q, r, s}. Esto quiere decir que se añade una nueva fila etiquetada con dicho conjunto. {p, r} {p, q, r, s} Pasamos a calcular la fila del conjunto {p, r}: f({p, r}, 0) = f 1 (p, 0) f 1 (r, 0) = {p, q} {s} = {p, q, s}. {p, r} {p, q, s} {p, q, r, s} f({p, r}, 1) = f 1 (p, 1) f 1 (r, 1) = {p} = {p}. {p, q, r, s} En el proceso de calcular esta fila ha aparecido un nuevo conjunto de estados, {p, q, s}, así que 7

añadimos una nueva fila a la tabla, {p, q, r, s} {p, q, s} Ahora toca la fila {p, q, r, s}: f({p, q, r, s}, 0) = f 1 (p, 0) f 1 (q, 0) f 1 (r, 0) f 1 (s, 0) = {p, q} {r} {s} {s} = {p, q, r, s}. {p, q, r, s} {p, q, r, s} {p, q, s} f({p, q, r, s}, 1) = f 1 (p, 1) f 1 (q, 1) f 1 (r, 1) f 1 (s, 1) = {p} {r} {s} = {p, r, s}. {p, q, s} Aún siguen saliendo nuevos estados: hay que añadir una fila por el conjunto {p, r, s}. {p, q, s} {p, r, s} 8

Cálculo de la fila etiquetada con {p, q, s}: f({p, q, s}, 0) = f 1 (p, 0) f 1 (q, 0) f 1 (s, 0) = {p, q} {r} {s} = {p, q, r, s}. {p, q, s} {p, q, r, s} {p, r, s} f({p, q, s}, 1) = f 1 (p, 1) f 1 (q, 1) f 1 (s, 1) = {p} {r} {s} = {p, r, s}. {p, q, s} {p, q, r, s} {p, r, s} {p, r, s} En esta ocasión no ha aparecido ningún nuevo conjunto de estados, por lo que pasamos al cálculo de la fila del conjunto {p, r, s}: f({p, r, s}, 0) = f 1 (p, 0) f 1 (r, 0) f 1 (s, 0) = {p, q} {s} {s} = {p, q, s}. {p, q, s} {p, q, r, s} {p, r, s} {p, r, s} {p, q, s} 9

f({p, r, s}, 1) = f 1 (p, 1) f 1 (r, 1) f 1 (s, 1) = {p} {s} = {p, s}. {p, q, s} {p, q, r, s} {p, r, s} {p, r, s} {p, q, s} {p, s} Bien, como resultado se tiene un nuevo conjunto de estados, así que aún no hemos acabado. Añadimos la nueva fila y la calculamos: f({p, s}, 0) = f 1 (p, 0) f 1 (s, 0) = {p, q} {s} = {p, q, s}. {p, q, s} {p, q, r, s} {p, r, s} {p, r, s} {p, q, s} {p, s} {p, s} {p, q, s} f({p, s}, 1) = f 1 (p, 1) f 1 (s, 1) = {p} {s} = {p, s}. {p, q, s} {p, q, r, s} {p, r, s} {p, r, s} {p, q, s} {p, s} {p, s} {p, q, s} {p, s} Bueno, ya está: no aparecen nuevos conjuntos y, por lo tanto, hemos finalizado. La anterior es la tabla del AFD equivalente al AFN inicial. En esta tabla hemos de tener en cuenta que los conjuntos que contienen al estado final del AFN, s, son finales; esto es, {p, q, r, s}, {p, q, s}, {p, r, s} y {p, s}, 10

5. Autoevaluación. Los ejemplos anteriores eran ejemplos de aplicación del método. Ahora, inténtadlo vosotros. Para poder comprobar si ya lo habéis pillado o no, os proponemos varios AFs y os damos la solución. Si coincide con la vuestra enhorabuena! ;-) Calcular un AFD que reconozca el mismo lenguaje que el siguiente AFN, siendo f 2 la siguiente función de transición: A = {p, q, r, s}, {0, 1}, f 2, p, {q, s} f 2 0 1 p {q, s} {q} q {r} {q, r} r {s} {p} s {p} Solución: {p} {q, s} {q} F {q, s} {r} {p, q, r} F {q} {r} {q, r} {r} {s} {p} F {p, q, r} {q, r, s} {p, q, r} F {q, r} {r, s} {p, q, r} F {s} {p} F {q, r, s} {r, s} {p, q, r} F {r, s} {s} {p} Todos los conjuntos que contienen a q o a s son estados finales. Calcular el AFD asociado al AFN definido por la siguiente función de transición: q 0 {q 1, q 2 } {q 3 } q 1 {q 1, q 4 } q 2 {q 3 } q 3 {q 1, q 2, q 4 } q 4 {q 3 } {q 4 } donde F = {q 4 }. Solución: {q 0 } {q 1, q 2 } {q 3 } {q 1, q 2 } {q 1, q 3, q 4 } {q 3 } {q 1, q 2, q 4 } F {q 1, q 3, q 4 } {q 1, q 3, q 4 } {q 1, q 2, q 4 } F {q 1, q 2, q 4 } {q 1, q 3, q 4 } {q 4 } F {q 4 } {q 3 } {q 4 } 11

Todos los conjuntos que contienen a q 4 son estados finales. Calcular el AFD asociado al siguiente AF: Solución: f a b {q 0, q 1 } {q 0, q 1 } {q 0, q 2 } {q 0, q 2 } {q 0, q 1, q 4 } {q 0, q 2, q 3 } {q 0, q 1, q 4 } {q 0, q 1 } {q 0, q 2, q 3 } F {q 0, q 2, q 3 } {q 0, q 1, q 4 } {q 0, q 2, q 3 } El conjunto {q 0, q 2, q 3 } es un estado final ya que contiene a q 3. 12