Introducción a Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo Introducción a Autómatas Finitos El Lenguaje

0 downloads 26 Views 196KB Size

Recommend Stories


Método de Elementos Finitos
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO INSTITUTO DE GEOFÍSICA Y GRUPO DE MODELACIÓN MATEMATICA Y COMPUTACIONAL Método de Elementos Finitos Antonio C

Lenguajes y Autómatas finitos
Trabajo VII Semestre A2005 Teoría Lenguajes y Autómatas finitos 1. Lenguajes. Conceptos fundamentales Sea Σ una colección finita de símbolos. Es

Teor ³a General del M etodo de los Elementos Finitos
Departamento de Mec¶ anica Estructural y Construcciones Industriales - ETS Ingenieros Industriales Madrid Teor¶³a General del M¶ etodo de los Element

AUTÓMATAS FINITOS y LENGUAJES REGULARES
Dpto. de Informática (ATC, CCIA y LSI). Universidad de Valladolid. TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES I Ingeniería Técnica en Informática de Sis

Conjuntos finitos y conjuntos numerables
Tema 3 Conjuntos finitos y conjuntos numerables En este tema vamos a usar los números naturales para contar los elementos de un conjunto, o dicho c

TEMA II: INTRODUCCIÓN A LA TEORÍA DE AUTÓMATAS FINITOS
TEMA II: INTRODUCCIÓN A LA TEORÍA DE AUTÓMATAS FINITOS Haciendo una comparación con la rama combinacional de Electrónica Digital, el Álgebra de Boole

Definición formal de autómatas finitos deterministas AFD
• inicial. Ejemplo, supóngase que tenemos el autómata de la figura 2.4 y la palabra de entrada “bb”. ¾ El autómata inicia su operación en el estado q

Story Transcript

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Introducción a Autómatas Finitos El Lenguaje Aceptado por un Autómata e Indeterminismo.

Universidad de Cantabria

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Esquema

1

Introducción

2

El Lenguaje Aceptado por un Autómata

3

Indeterminismo Grafo de λ−Transiciones Eliminación de las λ-transiciones

4

Algoritmo para tratar el Indeterminismo

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

El Problema

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

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?

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

El Problema

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

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.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

El Problema en Forma de Programa

Entrada: x ∈ Σ∗ (una palabra sobre el alfabeto). Inicializar: I := (q0 , x) (la configuración inicial sobre x) mientras I 6∈ F × {λ} hacer si I = (q, x 0 x1 ), x 0 x1 6= λ, entonces I := (δ(q, x 0 ), x1 ) en otro caso devolver NO finaliza si finaliza mientras devolver YES

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Diversos Ejemplos

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Diversos Ejemplos

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

El Indeterminismo

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Autómatas con λ−transiciones

Definición Se denominan λ−transiciones a las transiciones de una autómata A := (Q, Σ, q0 , F , δ) dadas por igualdades de la forma: δ(q, λ) = {p1 , . . . , ps }.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Interpretación del Indeterminismo

Una λ−transición puede interpretarse como que el autómata “adivina” cuales son los siguientes símbolos que van a aparecer.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Interpretación del Indeterminismo

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.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Grafo de λ−Transiciones

Recordemos que un grafo es un par (V , E), donde V es el conjunto de vertices y E es el conjunto de aristas.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Grafo de λ−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).

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Grafo de λ−Transiciones

V = Q. Dados p, q ∈ V , decimos que (p, q) ∈ E si q ∈ δ(p, λ), i.e. E := {(p, q) : q ∈ δ(p, λ)}.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Clausura Transitiva

La clausura transitiva muestra que nodos se pueden alcanzar de otros nodos en el grafo de λ−Transiciones.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Clausura Transitiva

Definición La clausura transitiva de un nodo (estado) se define del modo siguiente: λ − clausura(p) := {q ∈ V : (p, λ) ` (q, λ)}.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Objetivo

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.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Grafo de λ−Transiciones Eliminación de las λ-transiciones

Algoritmo de Transformación Entrada: Autómata A := (Q, Σ, q0 , F , δ). ¯ := Q y q0 := q0 . Inicializar: Q para cada p ∈ Q encontrar λ − clausura(p) finaliza para F¯ := F ∪ {p : λ − clausura(p) ∩ F 6= ∅}. para cada p ∈ Q hacer si λ − clausura(p, [ a) 6= ∅ , entonces ¯ a) := δ(p, λ − clausura(δ(q, a)). q∈λ−clausura(p)

finaliza si finaliza para cada ¯ Σ, q0 , F¯ , δ) ¯ := (Q, ¯ Salida A Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Determinismo e Indeterminismo

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.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Determinismo e Indeterminismo

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Algoritmo

Empezaremos con un autómata sin λ−transiciones A = (Q, Σ, q0 , F , δ).

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Algoritmo

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Algoritmo

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Algoritmo

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

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Algoritmo

La función de transición δ : Q × Σ −→ Q definida mediante: δ(X , a) := {q ∈ Q : ∃q 0 ∈ X , q = δ(q 0 , a)}.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

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.

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Ejemplo

Sea el siguiente autómata indeterminista A = (Q, Σ, q0 , F , δ), donde Q = {q0 , q1 , q2 }, F = {q2 } y δ viene dada por esta tabla: q0 q1 q2

a q1 , q2 q1 q1

b q1

Autómatas Finitos

Introducción El Lenguaje Aceptado por un Autómata Indeterminismo Algoritmo para tratar el Indeterminismo

Solución

El nuevo autómata tiene dos estados adicionales, q∅ y q1,2 esta es la nueva función de transición: q0 q1 q2 q1,2 q∅

a q1,2 q1 q1 q1 q∅

b q∅ q1 q∅ q1 q∅

¿Cuales son los estados finales?

Autómatas Finitos

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.