300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Qué es un computador? Todos lo sabemos!!! Todos lo sabemos ??? Los computadores reales son bastante complejos … por ejemplo, para especificar una teoría matemática que nos permita estudiarlo Por eso, usamos modelos, llamados Modelos Computacionales Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Qué es un modelo? Los modelos son importantes en muchos contextos científicos. Ejemplo: El modelo del átomo (Bohr), el modelo de la atmósfera (Lorenz), el modelo del DNA, modelos de equilibrio de mercados … Los modelos son vehículos para el aprendizaje del mundo. Gran parte de la investigación científica se lleva a cabo con modelos (no con la realidad misma). Los modelos permiten descubrir características de aquello que se modela, permiten razonar sobre aquello que se modela. Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Qué es un modelo? Un modelo abstrae, representa sólo algunas características de la realidad Por eso existen varios modelos para una misma realidad y uno debe elegir aquel que mejor se adapte a lo que se necesita estudiar Algunos modelos computacionales son: Autómatas finitos Máquinas de Turing Cálculo lambda Máquina RAM Teoría de Autómatas Preliminares Símbolo, Alfabeto, Cadena, Subcadena Cadena vacía, Longitud de una cadena Concatenación Orden lexicográfico Lenguaje Autómata Finito: Definición Formal Un Autómata Finito es una 5­tupla: A = (Q, Σ, δ, q0, F), donde: Q es un conjunto finito de Estados (Q = { q0, q1, …,qn­1 }) Σ es un conjunto finito llamado Alfabeto δ:QxΣ→Q es una función de transición. q0 ∈ Q es el Estado Inicial F ⊆ Q es el Conjunto de Estados de Aceptación o Estados Finales Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Máquinas de Estados Finitos (Autómata Finito) Es un Modelo de una Máquina que tiene una cantidad muy limitada de memoria. Ejemplo: Dispositivos electrónicos. Es un modelo matemático de un sistema con entradas y salidas discretas. En un momento dado, el sistema esta en un estado, tiene un numero finito de estados (o configuraciones) internas. El estado “resume” la información sobre las entradas anteriores, que es necesaria para determinar el comportamiento del sistema con las entradas siguientes. Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Ejemplos de Aplicación de Autómatas Finitos El circuito que controla una puerta automática, la puerta se abre o cierra de acuerdo a la información de sensores que revisan los dos lados de la puerta. El mecanismo de control de un ascensor. Un circuito de switcheo, compuesto por n compuertas, cada una de las cuales tiene 2 posibilidades: abierta/cerrada. Reconocimiento de patrones en textos: Analizadores léxicos, editores de texto Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Ejemplos de Aplicación de Autómatas Finitos El circuito que controla una puerta automática, la puerta se abre o cierra de acuerdo a la información de sensores que revisan los dos lados de la puerta. El mecanismo de control de un ascensor. Un circuito de switcheo, compuesto por n compuertas, cada una de las cuales tiene 2 posibilidades: abierta/cerrada. Reconocimiento de patrones en textos: Analizadores léxicos, editores de texto Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Representaciones de un autómata finito Diagrama de Transición Tabla de Transición Función de Transición Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Diagramas de Transición Es un grafo dirigido que representa un FA Vértices: representan los estados, cada vértice esta etiquetado con un elemento de Q Estado de inicio: donde se empieza a ejecutarse el autómata Estados de Aceptación: marcados con un doble circulo Arcos: Si δ(p, a) = q, se dibuja un arco con etiqueta a desde el nodo p al nodo q. Las etiquetas en los arcos, indican que entradas pueden aparecer después de que el diagrama ha llegado a un estado p. Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Tablas de Transición Es una matriz representa un FA Los estados se representan en las filas El alfabeto se representa en columnas Los Arcos : Si δ(p, a) = q, la celda T[p, a] = q. Esta dos S0 Entradas 0 1 S1 S1 S1 S2 . S2 S2 S2 Estado Inicial: S0 Estados Finales: {S2 } Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Descripción de las funciones de transición Para i >= 1, Bi = (Qi, Σ, δi, q0, {q0}), Σ = { 0, 1, 2 } δi (qj, 0) = qj, δi (qj, 1) = qk, donde k = (j + 1) modulo i δi (qj, 2) = qk, donde k = (j + 2) modulo i Para un i dado, reconoce las cadenas donde la suma de los números que forman la cadena es múltiplo de i. Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Computación de un FA Sea M = (Q, Σ, δi, q0, F) un autómata finito y la secuencia de entradas w = w1 w2 w3 w4 ...wn, entonces M acepta w si existe una secuencia de estados r0, r1, r2, … rn, que cumple las siguientes condiciones: r0 = q0 δ (ri, wi+1) = ri+1, para i = 0,1, 2, …, n­1, y rn ∈ F Pontificia U. Javeriana Cali - Ingeniería de Sistemas y Computación – 300CIG007 – Prof. Ma. Constanza Pabón Relación entre autómatas finitos y lenguajes Todo autómata finito reconoce un lenguaje formal, que corresponde al conjunto de cadenas que acepta El conjunto de los lenguajes que pueden reconocerse con autómatas finitos se conoce como la clase de los Lenguajes Regulares Usos de un autómata finito Dada una cadena w, establecer si el autómata la acepta o la rechaza Dado un autómata finito, establecer cuál es el lenguaje que reconoce Dado un lenguaje formal, construir un autómata finito que lo reconozca Generar cadenas que pertenecen a un lenguaje formal Operaciones sobre lenguajes regulares Unión Concatenación Estrella