Computabilidad y Lenguajes Formales: Autómatas Finitos

Anuncio
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
Descargar