Descripción: Procedimiento transformacion de expresion regular a automata finito deterministico AFD FDA por medio del me...
Método del Árbol
Evander Flores (
[email protected])
1
Contenidos Objetivos Alcance Desarrollo del tema Resumen 2
Objetivos Definir el método de construcción de un DFA óptimo por
medio de los métodos del árbol y de subconjuntos. Ejercitar la construcción de DFA partiendo de ER.
3
Alcances Método de Árbol Definición. Proceso Ejemplo Método de Subconjuntos
4
Método del árbol Proceso de transformación de ER hacia un DFA óptimo
5
Método del Árbol Partiendo de una expresión regular Permite la reducción de estados repetitivos. Produce autómatas más eficientes Permite la eliminación de nulos Creando un DFA óptimo.
6
Método del Árbol Paso 1: Aumentar la ER con $ Paso 2: Crear el árbol asociado a la ER y enumerar las hojas Paso 3: Calcular Anulable, first, last, follow (primeros, últimos, siguientes) Paso 4: Construir los subconjutos Paso 5: Construir la tabla de transiciones Paso 4: Construir el AFD.
7
Método del Árbol
Aumento de ER con $ El símbolo $ permite definir la finalización de la expresión regular. Por ejemplo: (b*|a*)a$ a*b(b|a*)$
(a|(ba)*)ba*$
8
Método del Árbol
Crear el árbol asociado ε
a
$
a|b
ab
a*
Respetando la Precedencia de operadores 9
Método del Árbol
Ejemplo Por ejemplo la siguiente ER: L(L|D)* 1. Aumentar la expresion ER: L(L|D)*$ 2. Construir el arbol de la ER y enumerar las hojas . .
Nodo RAIZ $ 4
L
*
1 |
10
L 2
D 3
CALCULO DE ANULABLES
11
Nodo
Anulabilidad
Hoja ε
Verdadero
Hoja a
Falso
Alternativa
Anulable(C1) OR Anulable(C2)
Union
Anulable(C1) AND Anulable(C2)
Cerradura Kleene
Verdadero
Cerradura Positiva
Anulable(C1)
Aparicion
Verdadero
CALCULO DE PRIMEROS/FIRST Nodo
Primeros/First
Hoja ε
Φ
Hoja a
Número de la Hoja
Alternativa First(C1) U First(C2) Union
If Anulable(C1) then First(C1) U First(C2) Else First(C1)
Cerradura Kleene First(C1)
12
Cerradura Positiva
First(C1)
Aparicion
First(C1)
CALCULO DE ULTIMOS/LAST Nodo Hoja ε Hoja a
Ultimos/Last Φ Número de la Hoja
Alternativa Last(C1) U Last(C2) Union
If Anulable(C2) then Last(C1) U Last(C2) Else Last(C2)
Cerradura Kleene Last(C1)
13
Cerradura Positiva
Last(C1)
Aparicion
Last(C1)
CALCULO DE SIGUIENTES/FOLLOW
14
Nodo
Siguiente
Union
En cada elemento Last(C1) de la lista agregar el First(C2) a su follow
Cerradura Kleene
En cada elemento Last(C1) agregar el First(C1) a su follow
Cerradura Positiva
En cada elemento Last(C1) agregar el First(C1) a su follow
Importante Los estados de aceptación son todos los que contienen la
posición asociada con el marcador de final #/$. El metodo del arbol es un algoritmo por el cual se construye un DFA optimo, sin embargo este DFA NO SIEMPRE SERA UN AUTOMATA CON ESTADOS MINIMOS.
15
Método del Árbol
Ejemplo 2. Calcular el Anulable de cada nodo. F .
F .
F $ 4
F L
V *
1 F | F L 2 16
F D 3
ER: L(L|D)*$
Método del Árbol
Ejemplo Calcular el First de cada nodo. F 1 .
1
F .
F 4 $ 4
1
F L
V 2,3 *
1
2 17
F 2,3 | F L 3 2
F D 3
ER: L(L|D)*$
Método del Árbol
Ejemplo Calcular el Last de cada nodo. F 1 .
1
4
F F . 1,2,3 4 $
4
4 1
F L
1
V 2,3 *
2,3
1
2 18
F 2,3 | 2,3 F F L 2 3 D 3 2 3
ER: L(L|D)*$
Método del Árbol
Ejemplo Hacer el calculo del Follow i
F 1 .
Follow(i)
L
1
2,3,4
L
2
2,3,4
D
3
2,3,4
$
4
-
1
4
F F . 1,2,3 4 $
4
4 1
F L
1
V 2,3 *
2,3
1
2
F 2,3 | 2,3 F F L 2 3 D 3 2 3 ER: L(L|D)*$
19
Método del Árbol
Ejemplo 4. Construir los subconjuntos a partir de la tabla de siguientes F El primer estado es formado por el 1 . 4 conjunto de elementos que son los F F 1 . 1,2,3 4 $ 4 Primeros del nodo Raiz. 4
Primeros del nodo raiz Entonces: S0 ={1}
F L
1
2,3
1
2 20
V 2,3 *
F 2,3 | 2,3 F F L 2 3 D 2 3
Método del Árbol
Ejemplo Se construyen los nuevos estados a partir de los Siguientes de
cada elemento en la lista del Estado Actual, si el conjunto de estados es distinto a los que ya se tienen entonces este conjunto forma un Nuevo Estado. Se repite el Proceso hasta que ya no hayan mas estados. El conjunto de Estados de Aceptacion son aquellos que tengan el numero de la hoja que denota el fin de la Expresion Regular ($ o #)
21
Método de Subconjuntos
Ejemplo Contiene a 4 ($) entonces es Un estado de Aceptacion.
S0 ={1} S0 Siguiente(1)=Siguiente(L)={2,3,4} S1 (Nuevo Estado) Se lee como= de S0 nos vamos a S1 con una L S1
Siguiente(2)=Siguiente(L)={2,3,4} Siguiente(3)=Siguiente(D)={2,3,4}
22
S1 S1
Método del Árbol
Ejemplo 5. Se construye la Tabla de Transiciones ∑
D
L
0
-
1
1
1
1
Q
23
Método del Árbol
Ejemplo 6. Se construye el AFD (optimo) L,D
S0
24
L
S1
RESUMEN El método del árbol provee el proceso para la
construcción de un DFA óptimo, partiendo de una expresión regular, realizando el calculo de frist, last y follow, que permite crear subconjuntos que formarán un DFA óptimo.
25
RESUMEN Pasos del método del árbol
Paso 1: Aumentar la ER con $ Paso 2: Crear el árbol asociado a la ER y enumerar las hojas Paso 3: Calcular Anulable, first, last, follow (primeros, últimos, siguientes) Paso 4: Construir los subconjutos Paso 5: Construir la tabla de transiciones Paso 4: Construir el AFD.
26