Autómatas Finitos y Lenguajes Regulares



Documentos relacionados
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.

Definición formal de autómatas finitos deterministas AFD

Ciencias de la Computación I

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

Ciencias de la Computación I

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

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

Ciencias de la Computación I

TEMA 5. GRAMÁTICAS REGULARES.

Clase 08: Autómatas finitos

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

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

Tema 2: Autómatas finitos

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

Lenguajes y Compiladores Análisis Léxico

Autómatas finitos con salidas

TEORIA DE AUTOMATAS.

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

AUTÓMATAS DE ESTADO FINITO

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

Proyecto Unico - Parte 1 - Solución

Tema 3.- Gramáticas formales

EJERCICIOS DE INECUACIONES

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

Introducción a Autómatas Finitos

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

2: Autómatas finitos y lenguajes regulares.

Expresiones Regulares y Derivadas Formales

Área Académica: Licenciatura en Sistemas Computacionales

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

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

Máquinas de estado finito y expresiones regulares

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

Unidad 4. Autómatas de Pila

SSL Guia de Ejercicios

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

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

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

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

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil

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

DATOS DE IDENTIFICACIÓN DEL CURSO

Máquinas de Turing, recordatorio y problemas

Clase 17: Autómatas de pila

Unidad 4. Autómatas de Pila

1. Cadenas EJERCICIO 1

Máquina de estado finito con salida sin salida

ANÁLISIS LÉXICO AUTÓMATAS FINITOS

Autómatas Deterministas. Ivan Olmos Pineda

Ciencias de la Computación I

DEFINICIÓN FORMAL DE UN AFP

Espacios Normados (Normas en R n )

Repaso Clase Anterior

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

La Jerarquía de Chomsky

2 Autómatas finitos y gramáticas regulares.

2 Autómatas finitos y gramáticas regulares.

CONJUNTOS. Consideremos, por ejemplo, los siguientes conjuntos:

Curso Propedéutico de Cálculo Sesión 2: Límites y Continuidad

Capítulo II Límites y Continuidad

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

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

EXPRESIONES REGULARES Y AUTOMATAS

Introducción

Tema 4. Autómatas Finitos

PRACTICA 5: Autómatas Finitos Deterministas

Tema 1: Introducción

AUTOMATAS FINITOS Traductores

7. Máquinas de Turing.

Repaso. Lenguajes formales

VALOR ABSOLUTO. Definición.- El valor absoluto de un número real, x, se define como:

PRACTICA 10: Máquinas de Turing

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

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

Notación de Conjuntos

Complementos de Matemáticas, ITT Telemática

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

Tema: Autómatas de Estado Finitos

Lenguajes No Regulares

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

Ciencias de la Computación I

En este capítulo obtendremos los resultados básicos del cálculo diferencial para funciones reales definidas sobre R o sobre intervalos.

TEORÍA DE AUTÓMATAS Y LENGUAJES

Máquinas de Turing. Definición 2

Curso Básico de Computación

Teoría de Lenguajes // 1er. cuatrimestre de er. Parcial

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

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

Sintaxis y Semántica. Un repaso

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

Máquinas Secuenciales, Autómatas y Lenguajes Tema 5: Propiedades de los Lenguajes Regulares. Luis Peña

Teoría de Lenguajes - Primer Parcial

Lenguaje Regular. Sumario. Lenguaje Regular. Autómatas y Lenguajes Formales. Capítulo 8: Propiedades de los Lenguajes Regulares

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

Gramáticas tipo 0 o Estructura de frase En este tipo de gramáticas no hay restricción en su producciones y tienen la forma siguiente.

descripción del argumento identificador tipo longitud condición restricción

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

Transcripción:

Autómatas Finitos y Lenguajes Regulares Problema: Dado un lenguaje L definido sobre un alfabeto A y una cadena x arbitraria, determinar si x L o x L. Cadena x AUTOMATA FINITO SI NO Lenguaje Regular Autómatas Finitos Un Autómata Finito es un modelo matemático de una máquina abstracta con entradas y salidas discretas. Dos puntos de vista: Como dispositivo reconocedor de la pertenencia de una cadena a un lenguaje regular. Como traductor de una cadena en otra. Un AF puede leer símbolos de una cinta, y puede estar en un número finito de estados. 1

Autómatas Finitos Aplicaciones: Análisis de cadenas de caracteres (búsqueda de una cadena en un archivo de texto, reconocimiento de cadenas que satisfacen ciertos criterios, etc.) Reproductor de video, máquina expendedora de boletos, etc. esperando mostrando película pausa Autómatas Finitos Reconocedores cinta de entrada (contiene cadena a ser leída) a b c d cabeza lectora (se mueve a derecha) indicador de estado e 5 e 4 e 3 e 2 mecanismo de control Estados del AF: Cantidad finita. Representan la memoria del autómata. Un estado inicial. Al menos un estado final o de aceptación. Dada una cadena x en la cinta de entrada, si el AF: termina en un estado final cadena aceptada termina en un estado no final cadena rechazada 2

Autómatas Finitos Reconocedores L = { x / x {a, b, c}* y x termina en b } Cadenas que pertenecen a L b ab bb cb aab bab Dos situaciones para distinguir: - el último símbolo leído es distinto de b - el último símbolo leído es b Cadenas que no pertenecen a L ε a c aa ba Dos estados: Autómatas Finitos Reconocedores e : estado inicial (último símbolo leído b) 1 : estado final (último símbolo leído es b) b a b b a b Configuración de inicio b a b b a b Configuración de aceptación cadena aceptada 3

Autómatas Finitos Reconocedores e : estado inicial (último símbolo leído b) 1 : estado final (último símbolo leído es b) b a b a Configuración de inicio b a Configuración de no aceptación cadena rechazada Autómatas Finitos Reconocedores Para definir un AF reconocedor es necesario indicar: el alfabeto de entrada: A el conjunto finito de estados: E={,,.,e n } de estos estados, un único estado inicial: de estos estados, uno o varios estados finales: F una función de transición de estados: δ (indica a qué estado pasar luego de leer un símbolo en la cinta de entrada) 4

Autómatas Finitos Reconocedores Formalmente, un AF reconocedor determinístico (AFD) se define como una quintupla M = <E, A, δ, e i, F> E es un conjunto finito de estados; E A es el alfabeto de entrada δ es la función de transición de estados; δ: E x A E δ(e j, a) = e k la máquina puede pasar del estado e j al e k después de leer el símbolo a en la cinta (e j, e k E; a A) e i es el estado inicial; e i E F es el conjunto de estados finales o de aceptación; F E Autómatas Finitos Reconocedores Un AF reconocedor determinístico se puede representar gráficamente usando un diagrama de transición de estados. - cada estado e j E e j - estado inicial e i e i - cada estado final e f F e f -cada transición entre estados δ(e j, a) = e k para e j, e k E, a A e j a e k 5

Autómatas Finitos Reconocedores L = { x / x {a, b, c}* y x termina en b } : estado inicial (último símbolo leído b) : estado final (último símbolo leído es b) Diagrama de transición de estados a, c b b a, c Descripción instantánea α e i β donde e i estado actual, α cadena ya leída, β cadena que falta leer (α, β A * ) Ejemplos abcb a bcb ab cb abc b abcb ba b a ba lee ba y termina en estado no final. Luego, ba L lee abcb y termina en estado final. Luego, abcb L Autómatas Finitos Reconocedores L = { x / x {a, b, c}* y x termina en b } Diagrama de transición de estados a, c b b Función δ a, c δ(, a)= δ(, b)= δ(, c)= δ(, a)= δ(, b)= δ(, c)= Tabla de transición de estados: AFD = <{, }, {a, b, c}, δ,, { }> El AFD = <{, }, {a, b, c}, δ,, { }> acepta una cadena x si la secuencia de transiciones correspondientes a los símbolos de x conduce desde (el estado inicial) a (el único estado final). δ a b c 6

Lenguaje aceptado por un AFD Definición de δ * (extensión de la función de transición para cadenas) Sea M = <E, A, δ, e i, F> un AFD. Se define la función δ * : E x A * E δ * (e j, ε) = e j e j E δ * (e j, xa) = δ(δ* (e j,x), a) e j E, x A*, a A Una cadena x es aceptada por un AFD M = <E, A, δ, e i, F> si: δ * (e i, x) = e f para algún e f F Luego, el lenguaje aceptado por un AFD M = <E, A, δ, e i, F> es: L(M) = { x / x A* y δ * (e i, x) = e f y e f F} Los lenguajes aceptados por los Autómatas Finitos se denominan Lenguajes Regulares o de Tipo 3. Diseño de Autómatas Finitos No es conveniente proceder por prueba y error, pueden cometerse dos tipos de errores: - que sobren cadenas, es decir el AF acepta cadenas que no debería aceptar - que falten cadenas, es decir el AF no acepta todas las cadenas del lenguaje considerado Importante para un diseño sistemático: 1) Proponer un conjunto de estados que recuerdan condiciones importantes en el problema considerado 2) De estos estados, determinar cuál representa la condición inicial y cuál/cuáles la condición de aceptación 3) Proponer las transiciones que permiten pasar de un estado a otro 7

Autómatas Finitos Traductores - Producen una salida diferente de SI o NO - Permiten realizar cálculos a partir de una cadena de entrada traducen una cadena de entrada en una cadena de salida x AUTOMATA FINITO x TRADUCTOR Lenguaje Regular Ejemplos: AF que calcule la función f(x) = 2x +3 Analizador léxico de un compilador Autómatas Finitos Traductores Formalmente, un AF traductor determinístico (AFT) se define como una 7-tupla M T = <E, A, δ, e i, F, S, γ> E es un conjunto finito de estados; E A es el alfabeto de entrada δ es la función de transición de estados; δ: E x A E e i es el estado inicial; e i E F es el conjunto de estados finales o de aceptación; F E S es el alfabeto de salida γ es la función de traducción; γ : E x A S * 8

Autómatas Finitos Traductores Si existen δ (e i, a) = e k y γ (e i, a) = x donde e i, e k E; a A ; x S* se representa en el diagrama de transición de estados e i a / x e k Ejemplo: Autómata finito traductor que calcula f(x) = 2x + 3 para x N, x > 0, x representado en unario Ejemplos 1 / 11 1 / 11111 si x =1 traduc1111 si x =11 traduc111111 si x =111 salida 1 9 si x =11111 salida 1 AFT = <{, }, {1}, δ,, { }, {1}, γ 13 > Autómatas Finitos Traductores Definición de γ * (función de traducción para cadenas) Sea M T = <E, A, δ,, F, S, γ > un AFT. Se define la función γ * : E x A * S * tal que γ * (e i, w) es la cadena que traducirá el autómata luego de leer w comenzando en e i γ * (e i, ε) = ε γ * (e i, wa) = γ * (e i, w). γ (δ* (e i, w), a) e i E, w A*, a A Nota: El autómata solo define la traducción, si el autómata finito reconocedor subyacente acepta la cadena. Es decir, la traducción T(w): A* S* asociada a M T está definida como: T(w)= γ * (, w) δ * (, w) F donde w A* 9

Autómatas Finitos Modelos Formalmente, un AF modelo se define como una 3-upla M M = < E, A, δ > E es un conjunto finito de estados; E A es el alfabeto de entrada δ es la función de transición de estados; δ: E x A E Ejemplo Modelo de Videograbadora esperando mostrando pausa M M = <{esperando, mostrando, pausa},{,, }, δ> Autómatas Finitos Modelos Ejemplo Modelo de Videograbadora δ: esperando mostrando pausa M M = <{esperando, mostrando, pausa},{,,}, δ> 10