Teoría de Autómatas
Evander Flores (evander (
[email protected])
[email protected])
1
Contenidos Objetivos Alcance Desarrollo del tema Resumen
Ejercicios 2
Objetivos
Definir que son los Autómatas Autómatas finitos
3
Autómatas Autómatas Finitos Determinísticos. Deter minísticos. Autómatas Autómatas Finitos No Determinísticos. Deter minísticos.
Establecer las formas de representar los Autómatas Autómatas.. Definir las propiedades de los Autómatas Autómatas
Alcances
Autómatas Autómatas Finitos Deterministas.
4
Definición. Estados Tabla de transición Diagrama Diagra ma de Transición
Transformación ER-DFA, ER-D FA, Tabla de Transiciónransi ción-DFA DFA y LR-DFA LR-D FA Reconocimiento de Cadenas
Autómatas finitos Definición, Propiedades, Ejemplos
5
Autómatas Finitos
6
También llamado máquina de estado finito. Es un modelo matemático que recibe una cadena de símbolos de un alfabeto y determina si la cadena pertenece al lenguaje que el autómata reconoce. Puede reconocer o traducir una cadena de símbolos
Autómatas Finitos Los autómatas a través de una entrada de símbolos cambia de estados. Por ejemplo un video, donde las cada entrada modifica el estado del video.
7
Autómata Finito Es una máquina que interpreta expresiones regulares, y reconoce cadenas de entrada
8
Autómata Finito
Inspecciona cada símbolo de la cadena comparándola con una tabla de transiciones y el estado actual en que se encuentra, si es reconocido cambia su estado y se mueve mueve una celda hacia la derecha, hasta que reconoce todos los elementos de la cadena.
Cabeza Lectora
Cinta lectora
9
Autómata Finito
10
La cadena se divide en Celdas de memoria memor ia para almacenar. almacenar. Los estados son la memoria de los autómatas. autómatas. Cuando finaliza la cadena, acepta o rechaza la cadena, dependiendo de procesamiento.
Diseño de Autómatas Finitos
Establecer un conjunto de estados que “memoricen”
condiciones importantes
11
Establecer correctamente cual es el estado inicial y los estados de aceptación Establecer las transiciones que permiten pasar de un estado a otro
Diseño de Autómatas Finitos Algunos errores al momento de construir cualquier autómata: autómata: Aceptar cadenas que no se debería aceptar , pues no están definidas.
12
No aceptar todas las cadenas que debe de aceptar.
Notación
13
Descripción abstracta
Tabla de transición transi ción
Diagrama de transiciones (Diagrama de Moore)
Autómata Finito
Descripción Abstracta
14
Se define por medio del quinteto (Q, (Q, Σ, q0, A, ) donde: Q es un conjunto finito (de estados) Σ es un alfabeto (finito) de símbolos q0 Є Q (El estado inicial) A Q (El conjunto de estados aceptores) es una función de transición
Tabla de Transición
Generado a través de un producto producto cartesiano cartesiano de los estados y los símbolos del alfabeto. Donde
es el estado inicial * es un estado de aceptación
→
Σ
0
1
→A
A
B
B
A
C
*C
A
c
Q
15
Diagrama de Transiciones
Define el flujo de un autómata
16
Los estados son nodos Las transiciones son arcos
Autómatas finitos Determinísticos Definición, Propiedades, Ejemplos
17
Autómata Finito Determinístico
También es llamado AFD o en sus siglas en inglés DFA Deterministic finite automata. automata.
18
Puede detectar símbolos conforme llegan y se basa en el estado actual y el símbolo recibido, ejecutar una transición. Tiene un número finito de estados.
Autómata Finito Determinístico
19
Los Autómata Autómata Finito Determinista no debe tener ambigüedades. El diagrama de transición cada arco posee solo un símbolo del alfabeto, al salir de un estado.
DFA ---Autómata Finito Determinístico Determiníst ico
Definición
20
Se define por medio del quinteto (Q, (Q, Σ, q0, A, ) donde: Q es un conjunto finito (de estados) Σ es un alfabeto (finito) de símbolos q0 Є Q (El estado inicial) A Q (El conjunto de estados aceptores) es una función de transición QxaQ
DFA ---Autómata Finito Determinístico Determiníst ico
Función de Transició ransición n Para todo q Є Q & a Є Σ, (q, a) = p es decir, existe un estado p al que se mueve al estar en el estado q, y lee el carácter a. Una transición: (q, a, q0) Є Q normalmente se describe q q0
a
21
Algoritmo Inicia en el estado Inicial, y en el primer símbolo de entrada
q = estado actual s = símbolo actual en la cinta Mientras (s! = blanco) haga q = (q, s) s = siguiente símbolo a la derecha en la cinta entonces si qn = Estado Final Acepta sino No Acepta
22
Notación General Ge neral DFA DFA
23
Estado
Estado Inicial
Estado de Aceptación Aceptación
Transición
Ejemplos de transf transformación ormación ER – DFA DFA , Tabla ablass Tran ransic sición ión – DFA, Defin Definición ición LR - DFA
24
Transformación ER - DFA a*
Cerradura de Kleene
25
a+
Cerradura de Positiva
Transformación ER - DFA ac*b
ac+b
26
Transformación ER - DFA
Otro ejemplo
bc*d | h | ae
27
Transformación ER - DFA A par partir tir de de una una expresión regular bb|(a(ba)*)* Iniciando por bb|(a(ba)*)* Tomando en e n cuenta cue nta que q ue al completar la cadena bb puede llegar a un estado final.
28
Expresión Regular - DFA Tomando en cuenta la utilización de paréntesis se define la secuencia (ba)* Por estar contenida en una cerradura, indica que puede o no venir, por lo que q 3 es un estado de aceptación
bb|(a(ba)*)*
29
Expresión Regular - DFA Para finalizar finali zar,, la secuencia secue ncia (a (..) )* Parte del estado inicial con una transición a, y dando la recursividad en q3. Pero tomando en cuenta que puede recibir cadena vacía q0 puede ser estado final.
bb|(a(ba)*)*
30
Generación de DFA DFA a partir par tir de Definiciones LR Al ser los DFA reconocedores de LR, puede generarse un DFA a partir de definiciones de lenguaje como:
Cadenas terminadas en 00
Donde el alfabeto = {0,1}
31
Definición LR - DFA
Transformación Cadenas terminadas en 00
32
Reconocimiento de Cadenas Por los estados de DFA
33
Reconocimiento de Cadenas El autómata parte de un estado inicial y solamente reconocerá la cadena, si esta termina ter mina en un estado de aceptación. Si no es así no se reconoce la cadena Comprobar:
34
aaab
bbba
Comprobando Comprobando la cadena: aaab
q
0
q
1
a
35
Comprobando Comprobando la cadena: aaab
q q q q 0
1
1
2
a a
36
Comprobando Comprobando la cadena: aaab
q q q
0
1
2
q q q
1
2
a
2
a a
37
Comprobando Comprobando la cadena: aaab
q q q q
0
1
2
2
q q q q
1
2
a
2
a
2
a b
q2 es estado de aceptación, Se acepta la cadena 38
Comprobando Comprobando la cadena: bbba
q
0
q
1
b
39
Comprobando Comprobando la cadena: bbba
q q q q 0
1
1
1
b b
40
Comprobando Comprobando la cadena: bbba
q q q
0
1
1
41
q q q
1
b
1
b
1
b
Comprobando Comprobando la cadena: bbba
q q q q
0
1
1
1
q q q q
1
1
b
1
b
1
b a
q1 NO ES estado de aceptación, no es aceptada por DFA 42
Gramática Regular - AFD Partiendo de la una gramática se puede construir un diagrama diagr ama de Moore que represente re presente el AFD. AFD. Identificadores, ER: L(L|D)*
| |λ a|b|c|…|z 0|1|2|…|9 43
Construcción AFD Partimos de la definición del ID (Identificador)
44
Construcción AFD Se debe tomar en cuenta que cuando reciba cualquier otro símbolo, (puede ser espacio) se terminara de reconocer.
Suponiendo que $ es cualquier otro símbolo 45
Evaluación AFD Evaluando la cadena var1; al llegar a “;” se finaliza el reconocimiento definiendo al identificador como var1
46
Autómatas finitos no Determinísticos Definición, Propiedades, P ropiedades, Algoritmo de Thompson
47
Autómata Finito No Determinístico
48
Los Autómata Autómata Finito Finito No Determinista puede tener tener ambigüedades. Los estados pueden tener una o mas transiciones con diferentes símbolos del lenguaje. l enguaje. El autómata acepta una palabra si existe al menos un camino desde el estado q0 a un estado final con la palabra de entrada. Acepta transiciones con cadenas vacias ( λ)
Definición
49
Se define por medio del quinteto (Q, (Q, Σ, q0, A, ) donde: Q es un conjunto finito (de estados) Σ es un alfabeto (finito) de símbolos q0 Є Q (El estado inicial) A Q (El conjunto de estados aceptores) es una función de transición *: Q x Σ* → 2Q
Construcción de AFND Tabla de Transic ransiciones iones,, Expresión Expresi ón Regular Regular,, Gramática Gramáti ca
50
Construcción de AFND
51
Puede partir desde una tabla de transiciones, generando un diagrama de Moore. A través de una expresión regular, generando un diagrama de Moore. Por medio de una gramática regular.
abla de ransic ransición ión
AFND
Ejemplo 1 A partir de la definición (Q, Σ, q0, A, ) donde: Q= {0,1,2,3}
Σ
={a, b}
q0 =0 A={3} Genere el Diagrama de Moore que representa al AFND a partir par tir de la tabla de transiciones
Σ
a
b
0
1,2
-
1
-
1,3
2
2
3
3
3
-
Q
52
Construcción AFND El estado de aceptación es q 3
Diagrama de Moore 53
AFND – Expresión Regular A partir par tir del AFND se puede deducir la expresión o las expresiones asociadas a este. a b* b a* | a a* b a*
54
AFND – Expresión Regular A partir par tir del AFND se puede deducir la expresión o las expresiones asociadas a este. a b* b a* | a a* b a* Factorizando a ( b*b| a*b) a*
55
AFND – Expresión Regular A partir par tir del AFND se puede deducir la expresión o las expresiones asociadas a este. a b* b a* | a a* b a* Factorizando a ( b*b| a*b) a*
Factorizando a ( b*|a*) b a*
56
Otro Ejemplo
Se tiene el siguiente AFND, cual sera el lenguaje aceptado?
q0
a
b
q1
57
q2
q3
Evaluando la cadena de entrada ab “
a
b
q0
a
b
q1
58
”
q2
q3
Evaluando la cadena de entrada ab “
a
b
q0
a
b
q1
59
”
q2
q3
Evaluando la cadena de entrada ab “
a
”
b Acepta la cadena
q0
a
b
q1
60
q2
q3
Evaluando otra cadena abab “
a
b
q0
a
”
b
a
b
q1
61
q2
q3
Evaluando otra cadena abab “
a
b
q0
a
”
b
a
b
q1
62
q2
q3
Evaluando otra cadena abab “
a
b
q0
a
”
b
a
b
q1
63
q2
q3
Evaluando otra cadena abab “
a
b
q0
a
”
b
a
b
q1
64
q2
q3
Evaluando otra cadena abab “
a
b
q0
a
”
b
a
b
q1
65
q2
q3
Evaluando otra cadena abab “
a
b
q0
a
”
b
a
b
q1
66
q2
q3
a
b
a
b La cadena es aceptada
q0
a
b
q1
67
q2
q3
Lenguaje Aceptado
L
q0
ab
abab
,
,
,
...
ab
a
b
q1
68
ababab
q2
q3