Definición Formal de Autómatas Finitos
Métodos de Diseño de AFDs
Diseño por conjuntos de Estados
Diseño de AFD por Complemento
Bibliografía
Lenguajes Formales y Autómatas Lic. M.I.K.
INTRODUCCIÓN
En 1930, A. Turing desarrolló una máquina abstracta denominada Máquina de Turing para el estudio de la computabilidad.
Entre los años 1940 y 1950, se desarrollan unas máquinas simples, en cuanto su funcionamiento, que fueron conocidas como autómatas finitos, para modelar el funcionamiento del cerebro.
También en los 1950, N. Chomsky comienza el estudio formal de las gramáticas (generadoras de lenguajes).
En 1969,. Cook extiende el estudio de Turing, separando aquellos problemas que pueden ser solucionados de aquellos que en principio lo pueden ser pero que en la práctica toman demasiados recursos.
Lenguajes Formales y Autómatas Lic. M.I.K.
INTRODUCCIÓN
¿Por qué estudiar Teoría de Autómatas?
Los Autómatas finitos y ciertas clases de gramáticas formales son usadas en el diseño y construcción de software.
Ej.:
Software para diseñar y chequear la conducta de circuitos digitales.
El analizador léxico de un compilador.
Software para escanear grandes volúmenes de texto para encontrar patrones.
Software para verificar sistemas que tengan un número finito de estados, tales como protocolos de comunicación o de intercambio seguro de información.
Lenguajes Formales y Autómatas Lic. M.I.K.
INTRODUCCIÓN
La Máquina de Turing ayuda a comprender que es lo que podemos esperar de nuestro software. Es decir lo límites de la Computación
Decidibilidad, ¿qué puede hacer un computador?.
Intratabilidad, ¿qué puede hacer un computador eficientemente?.
Lenguajes Formales y Autómatas Lic. M.I.K.
INTRODUCCIÓN
¿Pero… que es un Autómata?
Son abstracciones matemáticas que capturan solamente el aspecto referente a las secuencias de eventos que ocurren: su funcionamiento
Lenguajes Formales y Autómatas Lic. M.I.K.
INTRODUCCIÓN
¿Qué Máquinas Abstractas se conocen?
Autómatas Finitos. Autómatas a Pila. Autómatas linealmente acotados.
Máquina de Turing.
Lenguajes Formales y Autómatas Lic. M.I.K.
INTRODUCCIÓN
Modelado de Sistemas Discretos
El modelado de fenómenos y procesos es una actividad que permite:
Verificar hipótesis sobre dichos procesosEfectuar predicciones sobre el comportamiento
futuroHacer simulaciones (eventualmente
computarizadas)
Lenguajes Formales y Autómatas Lic. M.I.K.
Introducción
Definición Formal de Autómatas FinitosDefinición Formal de Autómatas Finitos
Métodos de Diseño de AFDs
Diseño por conjuntos de Estados
Diseño de AFD por Complemento
Bibliografía
Lenguajes Formales y Autómatas Lic. M.I.K.
Definición formal de Autómatas Finito
Modelo de autómata finito para un interruptor de encendido / apagado
Lenguajes Formales y Autómatas Lic. M.I.K.
pulsar
pulsar
Definición formal de Autómatas Finito
Lenguajes Formales y Autómatas Lic. M.I.K.
El interruptor puede encontrarse en dos situaciones distintas: apagado o encendido.
El interruptor sólo puede recibir un estímulo exterior: que se pulse su botón.
Es frecuente que inicialmente el interruptor esté apagado.
En este caso, puede considerarse que la salida del sistema es el funcionamiento del dispositivo que controle (una bombilla, por ejemplo).
Definición formal de Autómatas Finito
El análisis del comportamiento del autómata del interruptor sugiere dividir la descripción formal del mismo en dos partes:
Entradas (externas), Que representan los estímulos del exterior a los que puede reaccionar el autómata.
Estados (internos) y transiciones, Los estados representan las diferentes situaciones en las que se puede encontrar el autómata. Recuerdan la historia del sistema. En el caso del interruptor: encendido y apagadoLas Transiciones representan el cambio del autómata de un estado a otro debido a las entradas.
Lenguajes Formales y Autómatas Lic. M.I.K.
Definición formal de Autómatas Finito
Definición Formal:
Un autómata finito determinista se puede definir como una quíntupla
A=(Q, , , q0, F) Donde:
Q es un conjunto finito no vacío de estados.
es el alfabeto de entrada.
:QQ es la función de transición que, a cada pareja de estados y símbolos de entrada (q,a), le asigna un nuevo estado q’= (q,a).
q0Q es el estado inicial del autómata.
FQ es el conjunto de estados de finalización del autómata.
Lenguajes Formales y Autómatas Lic. M.I.K.
Definición formal de Autómatas Finito
A continuación se muestra la formalización del ejemplo del interruptor:
A1 = ( Q1, 1, 1, 0, F ) Donde
El conjunto de estados representa encendido con 1 y apagado con 0.Q1={0, 1}
El alfabeto de entrada representa pulsar con p.1={p}
El estado inicial q0 es que esté apagado (0).
En este autómata no se indican estados finales (F es el conjunto vacío).
La función de transición se muestra mediante la notación habitual en teoría de conjuntos.
Lenguajes Formales y Autómatas Lic. M.I.K.
Definición formal de Autómatas Finito
Función de transición del ejemplo
Q
Q
Lenguajes Formales y Autómatas Lic. M.I.K.
10
1
( 0, p)
(1, p)
Definición formal de Autómatas Finito
Diagrama de transición
Lenguajes Formales y Autómatas Lic. M.I.K.
0
1
p
p
Definición formal de Autómatas Finito
Otra forma de representar formalmente un AF, es a través de las tablas de transición
p
Lenguajes Formales y Autómatas Lic. M.I.K.
1
0
10
1
Definición formal de Autómatas Finito
Una aplicación muy importante de los autómatas finitos y que será estudiada a lo largo de este curso es su capacidad de reconocer palabras.
El autómata reconocerá una palabra si, tras procesar la secuencia de sus símbolos en el mismo orden en el que aparece, termina en un estado final.
En este sentido el conjunto de estados finales, que indica que el funcionamiento del autómata ha terminado de forma exitosa, realmente indica que la palabra tratada por él ha sido reconocida
Lenguajes Formales y Autómatas Lic. M.I.K.
Definición formal de Autómatas Finito
Como funciona un AFDVeamos el siguiente diagrama, corresponde a un
AFD que acepta todas las hileras que contienen la subcadena “01”
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0
q1 q2q0
Definición formal de Autómatas Finito
Para la hilera w = 00111 que pertenece al lenguaje
w = 00111
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
q0 q1 q2
Definición formal de Autómatas Finito
Para la hilera w = 00111 que pertenece al lenguaje
w = 00111
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0
q1 q2q0
Definición formal de Autómatas Finito
Para la hilera w = 00111 que pertenece al lenguaje
w = 00111
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0q
0q1 q2q0
Definición formal de Autómatas Finito
Para la hilera w = 00111 que pertenece al lenguaje
w = 00111
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1 q2
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0q
0q1 q2q0 q1
Definición formal de Autómatas Finito
Para la hilera w = 00111 que pertenece al lenguaje
w = 00111
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1 q2
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0q
0q1 q2q0 q1
Definición formal de Autómatas Finito
Para la hilera w = 00111 que pertenece al lenguaje
w = 00111 Si la reconoce
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1 q2
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0q
0q1 q2q0 q1
Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje
w = 1100
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
q0 q1 q2
Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje
w = 1100
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0
qq1 q2q0
Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje
w = 1100
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0
qq1 q2q0
Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje
w = 1100
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0
q1 q2q0
Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje
w = 1100 No la reconoce
AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }
0 q1 1
1 0 0/1
Lenguajes Formales y Autómatas Lic. M.I.K.
qq0q0
q1 q2q0
Definición formal de Autómatas Finito
Definición 1: El lenguaje aceptado por una máquina M
es el conjunto de palabras aceptadas por dicha máquina
Definición 2: Una palabra w є ∑* es aceptada por una
máquina M = ( Q, , , q0 , F) ssi existe un estado q є F tal que (q0, w) (q, λ )
Notar: que no es suficiente llegar a un estado final q, sino que además no deben quedar caracteres por leer.
Lenguajes Formales y Autómatas Lic. M.I.K.
Introducción
Definición Formal de Autómatas Finitos
Métodos de Diseño de AFDsMétodos de Diseño de AFDs
Diseño por conjuntos de Estados
Diseño de AFD por Complemento
Bibliografía
Lenguajes Formales y Autómatas Lic. M.I.K.
Métodos de Diseño de AFDs
Considérese el problema de construir un AFD que acepte exactamente el lenguaje dado. Este problema es comúnmente llamado “problema de diseño”.
No es conveniente proceder por ensayo y error, pues puede pasar que:
Lenguajes Formales y Autómatas Lic. M.I.K.
Métodos de Diseño de AFDs
1. Que sobren palabras Solución Incorrecta
2. Que falten palabras Solución Incompleta
Por ello es necesario diseñar los AFD de una manera más sistemática, que consiste en determinar, de manera explícita, que condición “recuerda” cada uno de los estados del AFD
Lenguajes Formales y Autómatas Lic. M.I.K.
Métodos de Diseño de AFDs
Ejemplo: Diseñar un AFD que acepte exactamente el
lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00
Solución: Para emprender el diseño en forma
metódica, comenzamos por determinar las condiciones que son importantes recordar, y asociamos un estado a cada una de estas condiciones.
Lenguajes Formales y Autómatas Lic. M.I.K.
Métodos de Diseño de AFDs
Ejemplo: Diseñar un AFD que acepte exactamente el
lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00
Pero primero debemos comprender que nos piden.
w1 = 011100 w2 = 101010 w3 = λ w4 = 001100
Lenguajes Formales y Autómatas Lic. M.I.K.
Métodos de Diseño de AFDs
Ejemplo: Diseñar un AFD que acepte exactamente el
lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00
Ahora podemos determinar las condiciones y asociarlas a un estado.
Lenguajes Formales y Autómatas Lic. M.I.K.
Métodos de Diseño de AFDs
Lenguajes Formales y Autómatas Lic. M.I.K.
Estado Condición
q0 No se han recibido caracteres
q1 Se ha recibido un cero al inicio
q2 Se han recibido dos ceros iniciales
q3 Se recibió algo que no son dos ceros iniciales
w1 = 011100 w2 = 101010 w3 = λ
w4 = 001100
Métodos de Diseño de AFDs
1 1
1 0 0
1
x1= 0001 x2= 0100 x3 = 1100
Lenguajes Formales y Autómatas Lic. M.I.K.
q0
q1
q2
q3
00
Estado
condición
q0 No se recibió caracteres
q1 Cero al inicio
q2 Dos ceros iniciales
q3 Algo que no son dos ceros
Introducción
Definición Formal de Autómatas Finitos
Métodos de Diseño de AFDs
Diseño por conjuntos de EstadosDiseño por conjuntos de Estados
Diseño de AFD por Complemento
Bibliografía
Lenguajes Formales y Autómatas Lic. M.I.K.
Diseño por conjuntos de estados
Es posible llevar más allá el método de asociar una condición a cada estado: Vamos a asociar condiciones a grupos de estados más que a estados individuales.
Consiste en identificar inicialmente condiciones asociadas al enunciado del problema, aunque estas no sean suficientemente específicas para hacerlo a estados individuales. Aumentamos el grado de abstracción para tratar problemas más complejos.
Lenguajes Formales y Autómatas Lic. M.I.K.
Diseño por conjuntos de estados
Ejemplo:
Diseñar un AFD que acepte las palabras del lenguaje en { a , b } donde las palabras no contienen la subcadena bb pero si la aa.
Vemos algunas cadenas y1= babaaba y2= bababb y3= ababab
Lenguajes Formales y Autómatas Lic. M.I.K.
Diseño por conjuntos de estados
A partir del enunciado identificamos las siguientes situaciones:
Las letras consumidas hasta el momento no contienen aa ni bb (y3= ababab)
Contienen aa pero no bb (y1= babaaba ) Contienen bb (y2= bababb )
Estas condiciones cumplen dos requisitos:Excluyentes
ComprensivasLenguajes Formales y Autómatas Lic. M.I.K.
Diseño por conjuntos de estados
b b
Lenguajes Formales y Autómatas Lic. M.I.K.
Ni bb ni aa
aa pero no bb
bb
aaa pero no bb
Diseño por conjuntos de estados
Ahora se subdividen las “nubes” asociando a estados individuales,
Las letras consumidas hasta el momento no contienen ni aa ni bb
1. Inicial, no se han recibido caracteres (A)2. Se acaba de recibir una a (B )
3. Se acaba de recibir una b (C)
b
Lenguajes Formales y Autómatas Lic. M.I.K.
Ni bb ni aa
AB
C
Diseño por conjuntos de estados
Debemos trazar las transacciones para los estados
1. Inicial, no se han recibido caracteres (A)2. Se acaba de recibir una a (B )
3. Se acaba de recibir una b (C) a
a
a b
b
bLenguajes Formales y Autómatas Lic. M.I.K.
Ni bb ni aa
AB
C
Diseño por conjuntos de estados
Las letras consumidas hasta el momento contienen aa pero no bb
1. Se acaba de recibir una a ( D)2. Se acaba de recibir una b ( E )
Lenguajes Formales y Autómatas Lic. M.I.K.
D
EE
Daa pero no bb
Diseño por conjuntos de estados
Trazamos las transacciones para cada estado de esta nube
1. Se acaba de recibir una a ( D)2. Se acaba de recibir una b ( E )
a
a
a b
b Lenguajes Formales y Autómatas Lic. M.I.K.
D
EE
Daa pero no bb
Diseño por conjuntos de estados
Las letras consumidas hasta el momento contienen bb ( aquí no hay subcondiciones)
Quedaron 6 estados, cada uno de los cuales tiene una condición muy específica asociada.
Lenguajes Formales y Autómatas Lic. M.I.K.
Diseño por conjuntos de estados
Diseño a b
aa a
a b b b
b a,b
y1= babaaba y2= bababb y3= ababab
Lenguajes Formales y Autómatas Lic. M.I.K.
AB
C
F
D
E
Introducción
Definición Formal de Autómatas Finitos
Métodos de Diseño de AFDs
Diseño por conjuntos de Estados
Diseño de AFD por ComplementoDiseño de AFD por Complemento
Bibliografía
Lenguajes Formales y Autómatas Lic. M.I.K.
Diseño de AFD por Complemento
En ocasiones, para un cierto lenguaje L, es más sencillo encontrar exactamente el contrario.
Si M = ( Q, , , q0 , F) es un autómata determinísta que acepta un lenguaje regular L, para construir un autómata Mc que acepte el lenguaje complemento de L ( * - L ), basta con intercambiar los estados finales de M en no finales y viceversa.
Lenguajes Formales y Autómatas Lic. M.I.K.
Diseño de AFD por Complemento
Formalmente:
Mc = ( Q, , , q0 , Q - F)
Así cuando una palabra es rechazada en M, ella es aceptada en Mc
Lenguajes Formales y Autómatas Lic. M.I.K.
Diseño de AFD por Complemento
Ejemplo: Obtener un AF para el lenguaje en {a,b}* de
las palabras que no contienen la cadena “abaab”
Solución:
Primero obtenemos un AFD para el lenguaje cuyas palabras SI contienen la cadena “abaab”, utilizando grupos de estados.
Lenguajes Formales y Autómatas Lic. M.I.K.
Diseño de AFD por Complemento
= recuerda que la palabra no contiene aún abaab b
b a a a b a
a b b
Lenguajes Formales y Autómatas Lic. M.I.K.
A
q0
a
abaa
baba
Diseño de AFD por Complemento
= recuerda que la palabra ya se reconoció la cadena
a, b b
Lenguajes Formales y Autómatas Lic. M.I.K.
B
abaababaab
Diseño de AFD por Complemento
AFD que reconoce el lenguaje con la cadena abaab b
b a a a b a a,b
a b b
Lenguajes Formales y Autómatas Lic. M.I.K.
q0
a
abaa
baba
abaab
Diseño de AFD por Complemento
AFD que reconoce el lenguaje SIN cadena abaab b
b a a a b a a,b
a b b
Lenguajes Formales y Autómatas Lic. M.I.K.
q0
a
abaa
b abaq0
abaab
a
abaa
baba
Introducción
Definición Formal de Autómatas Finitos
Métodos de Diseño de AFDs
Diseño por conjuntos de Estados
Diseño de AFD por Complemento
BibliografíaBibliografía
Lenguajes Formales y Autómatas Lic. M.I.K.
BIBLIOGRAFIA
“Teoría de Autómatas y Lenguajes Formales” Enrique Alfonseca Cubero, Manuel Alfonseca Moreno, Roberto Morillon Salomón – 2007
“Introducción a la Teoría de Autómatas, Lenguajes y Computación” John Hopcroft, Jeffrey Ullman -2002
“Lenguajes y Autómatas: un enfoque de diseño” Ramón Brena – 2003
Lenguajes Formales y Autómatas Lic. M.I.K.
Top Related