Introducción a Autómatas Finitos



Documentos relacionados
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

Autómatas finitos no deterministas (AFnD)

Tema 2: Autómatas finitos

2: Autómatas finitos y lenguajes regulares.

Traductores Push Down

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

Definición formal de autómatas finitos deterministas AFD

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

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

Lenguajes No Regulares

El Autómata con Pila

Descripción de los Lenguajes Aceptados por Autómatas

La Jerarquía de Chomsky

Autómatas Finitos y Lenguajes Regulares

Equivalencia Entre PDA y CFL

Expresiones Regulares y Derivadas Formales

TEMA 5. GRAMÁTICAS REGULARES.

Clase 08: Autómatas finitos

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

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

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

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.

Introducción a los Autómatas Finitos

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

Autómatas Finitos. Leopoldo Altamirano, Eduardo Morales. Verano, 2011 INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico

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

Introducción a la Teoría de Automátas

Máquinas de Turing. Complexity D.Moshkovitz

Tema 4. Autómatas Finitos

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 CIENCIAS DE LA COMPUTACION I 2009

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

Lenguajes Formales y Monoides

Hacia las Gramáticas Propias II

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

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

AUTÓMATAS DE ESTADO FINITO

Máquinas de Turing, programas y tesis de Turing-Church

Motivación: Problemas de optimización

Proyecto Unico - Parte 1 - Solución

June 24, 2011 DSIC - UPV. Autómatas Finitos. U.D. Computación. Autómata Finito Determinista. Autómata Finito no Determinista

Notación de Conjuntos

Máquinas de estado finito y expresiones regulares

Tema 2: Los Autómatas y su Comportamiento

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

Lección 49. Funciones I. Definición

TEMA 2 EXPERIMENTOS ALEATORIOS Y CÁLCULO DE PROBABILIDADES

Autómatas finitos con salidas

Área Académica: Licenciatura en Sistemas Computacionales

El Autómata con Pila: Transiciones

Derivadas. Contenido Introducción. ( α) Definición de Derivada. (α) Pendiente de la recta tangente. (α) Funciones diferenciables.

Máquinas de Turing, recordatorio y problemas

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

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Computabilidad y Lenguajes Formales: Autómatas Finitos

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?

Definición de Funciones MATE 3171

Ciencias de la Computación I

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Procesadores de Lenguaje

El cuerpo de los números reales

Unidad 1: Combinatoria

Conjuntos disjuntos (Relaciones de equivalencia)

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

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR. Ciencias de la ingeniería

Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad

Teoría de Autómatas y Lenguajes Formales.

Máquina de estado finito con salida sin salida

Teoría de Autómatas y Lenguajes Formales.

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

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

Autómatas de Pila y Lenguajes Incontextuales

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

La Jerarquía Polinomial

Autómatas de Estados Finitos

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

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

7. Máquinas de Turing.

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

2.Teoría de Autómatas

Ciencias de la Computación I

Definiciones previas

ESTADÍSTICA INFERENCIAL

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

2 Autómatas finitos y gramáticas regulares.

2 Autómatas finitos y gramáticas regulares.

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

Sucesiones y series de números reales

Ciencias de la Computación I

Hacia las Gramáticas Propias

EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

Implementación de diccionarios sobre Trie en C++

Máquinas de Turing. Gálvez Martínez Ernesto Sánchez Sandoval David Isaac Villegas Rosales Erik Salazar Santiago Juan Carlos

Algoritmos de Aproximación

Inteligencia Artificial Resolver problemas mediante búsqueda

Transcripción:

Introducción a e. Universidad de Cantabria

Esquema 1 Introducción 2 3 Grafo de λ Transiciones Eliminación de las λ-transiciones 4

El Problema Podemos interpretar un autómata como un evaluador de la función característica de un subconjunto de L Σ : χ L : Σ {0, 1}

El Problema Por lo tanto siempre nos vamos a centrar en el siguiente problema: Dado un lenguaje L y una palabra, está esa palabra en el lenguaje?

El Problema Entrada: Una palabra ω Σ Salida: 1 si el autómata llega a una configuración final aceptadora (i.e., δ(q 0, ω) F). 0 si el autómata llega a una configuración final no aceptadora (i.e., δ(q 0, ω) Q \ F).

Lenguaje Aceptado por un Autómata Definición (Lenguaje Aceptado por un Autómata) Dado un autómata A se define el lenguaje aceptado por A como el conjunto de palabras al que el anterior algoritmo devuelve 1.

El Problema en Forma de Programa Entrada: x Σ (una palabra sobre el alfabeto). Inicializar: I := (q 0, x) (la configuración inicial sobre x) mientras I F {λ} hacer si I = (q, x x 1 ), x x 1 λ, entonces I := (δ(q, x ), x 1 ) en otro caso devolver NO finaliza si finaliza mientras devolver YES

Diversos Ejemplos Hallar un autómata que acepte solamente las palabras que empiezan por 01, sobre el alfabeto Σ = {0, 1}.

Diversos Ejemplos Hallar un autómata que acepte solamente las palabras que contengan la subpalabra 00, sobre el alfabeto Σ = {0, 1}.

El Grafo de λ Transiciones Eliminación de las λ-transiciones Este código es fácil de interpretar si no tenemos en cuenta: La presencia de λ transiciones. La indefinición de I = (δ(q, x ), x 1 ) por no estar definido δ(q, x ) o por tener más de un valor asociado.

Autómatas con λ transiciones Grafo de λ Transiciones Eliminación de las λ-transiciones Definición Se denominan λ transiciones a las transiciones de una autómata A := (Q, Σ, q 0, F, δ) dadas por igualdades de la forma: δ(q, λ) = {p 1,..., p s }.

Interpretación del Grafo de λ Transiciones Eliminación de las λ-transiciones Una λ transición puede interpretarse como que el autómata adivina cuales son los siguientes símbolos que van a aparecer.

Interpretación del Grafo de λ Transiciones Eliminación de las λ-transiciones NO lee el contenido de la cinta. Modifica el estado en la unidad de control. NO borra el contenido de la celda señalada por la unidad de control. NO se mueve a la izquierda.

Grafo de λ Transiciones Grafo de λ Transiciones Eliminación de las λ-transiciones Recordemos que un grafo es un par (V, E), donde V es el conjunto de vertices y E es el conjunto de aristas.

Grafo de λ Transiciones Grafo de λ Transiciones Eliminación de las λ-transiciones Queremos saber que cual como opera el autómata sin leer de la cinta. Queremos saber cual es el la configuración al acabar de leer la palabra ( si es que termina de leer la palabra).

Grafo de λ Transiciones Grafo de λ Transiciones Eliminación de las λ-transiciones V = Q. Dados p, q V, decimos que (p, q) E si q δ(p, λ), i.e. E := {(p, q) : q δ(p, λ)}.

Clausura Transitiva Grafo de λ Transiciones Eliminación de las λ-transiciones La clausura transitiva muestra que nodos se pueden alcanzar de otros nodos en el grafo de λ Transiciones.

Clausura Transitiva Grafo de λ Transiciones Eliminación de las λ-transiciones Definición La clausura transitiva de un nodo (estado) se define del modo siguiente: λ clausura(p) := {q V : (p, λ) (q, λ)}.

Objetivo Introducción Grafo de λ Transiciones Eliminación de las λ-transiciones Teorema Dado cualquier lenguaje L que sea aceptado por un autómata con λ transiciones, entonces existe un autómata sin λ transiciones que acepta el mismo lenguaje. Más aun, la transformación de un autómata a otro se puede dar algorítmicamente.

Algoritmo de Transformación Grafo de λ Transiciones Eliminación de las λ-transiciones Entrada: Autómata A := (Q, Σ, q 0, F, δ). Inicializar: Q := Q y q 0 := q 0. para cada p Q encontrar λ clausura(p) finaliza para F := F {p : λ clausura(p) F }. para cada p Q hacer si λ clausura(p, a), entonces δ(p, a) := λ clausura(δ(q, a)). q λ clausura(p) finaliza si finaliza para cada Salida Ā := ( Q, Σ, q 0, F, δ)

Determinismo e Todavía no hemos acabado con el indeterminismo. Queremos saber que papel juega en nuestros lenguajes. Esta claro que los autómatas indeterministas son útiles pero no son fáciles de utilizar.

Determinismo e Sorprendentemente, es posible encontrar autómatas deterministas que acepten los mismos lenguajes que los indeterministas (aunque pagando un precio).

Algoritmo Empezaremos con un autómata sin λ transiciones A = (Q, Σ, q 0, F, δ).

Algoritmo Q := P(Q) (el espacio de estados es el conjunto de las partes de Q).

Algoritmo F := {X Q : X F } (las configuraciones finales aceptadoras son aquellas que contienen algún estado del espacio F de estados finales aceptadores).

Algoritmo q 0 := {q 0 } (el conjunto formado por la antigua configuración inicial).

Algoritmo La función de transición δ : Q Σ Q definida mediante: δ(x, a) := {q Q : q X, q = δ(q, a)}.

Sugerencia Este es la forma más cómoda de programar el algoritmo, aunque para lápiz y papel sea mejor no añadir todos los estados de una vez, sino ir añadiendo estados a medida que se generen.

Ejemplo Sea el siguiente autómata indeterminista A = (Q, Σ, q 0, F, δ), donde Q = {q 0, q 1, q 2 }, F = {q 2 } y δ viene dada por esta tabla: a b q 0 q 1, q 2 q 1 q 1 q 1 q 2 q 1

Solución El nuevo autómata tiene dos estados adicionales, q y q 1,2 esta es la nueva función de transición: a b q 0 q 1,2 q q 1 q 1 q 1 q 2 q 1 q q 1,2 q 1 q 1 q q q Cuales son los estados finales?