método del Árbol
DESCRIPTION
Procedimiento transformacion de expresion regular a automata finito deterministico AFD FDA por medio del metodo del arbolTRANSCRIPT
Mtodo del rbol
Evander Flores ([email protected])
1
ContenidosObjetivosAlcance Desarrollo del tema Resumen2
Objetivos Definir el mtodo de construccin de un DFA ptimo por
medio de los mtodos del rbol y de subconjuntos. Ejercitar la construccin de DFA partiendo de ER.
3
Alcances Mtodo de rbol Definicin. Proceso Ejemplo Mtodo de Subconjuntos
4
Mtodo del rbolProceso de transformacin de ER hacia un DFA ptimo
5
Mtodo del rbolPartiendo de una expresin regular Permite la reduccin de estados repetitivos. Produce autmatas ms eficientes Permite la eliminacin de nulos Creando un DFA ptimo.
6
Mtodo del rbolPaso 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
Mtodo del rbol
Aumento de ER con $El smbolo $ permite definir la finalizacin de la expresin regular. Por ejemplo: (b*|a*)a$ a*b(b|a*)$
(a|(ba)*)ba*$
8
Mtodo del rbol
Crear el rbol asociado a $
a|b
ab
a*
Respetando la Precedencia de operadores9
Mtodo del rbol
EjemploPor 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. . $ 4 L 1 | L 2 D 3 *
Nodo RAIZ
10
CALCULO DE ANULABLES NodoHoja Hoja a Alternativa
AnulabilidadVerdadero Falso Anulable(C1) OR Anulable(C2)
Union Cerradura Kleene
Anulable(C1) AND Anulable(C2) Verdadero
Cerradura Positiva
Anulable(C1)
Aparicion
Verdadero
11
CALCULO DE PRIMEROS/FIRST NodoHoja Hoja a Alternativa First(C1) U First(C2) Union If Anulable(C1) then First(C1) U First(C2) Else First(C1) First(C1) Cerradura Positiva First(C1)
Primeros/First Nmero de la Hoja
Cerradura Kleene
Aparicion
First(C1)
12
CALCULO DE ULTIMOS/LAST NodoHoja Hoja a Alternativa Last(C1) U Last(C2) Union If Anulable(C2) then Last(C1) U Last(C2) Else Last(C2) Last(C1) Cerradura Positiva Last(C1)
Ultimos/Last Nmero de la Hoja
Cerradura Kleene
Aparicion
Last(C1)
13
CALCULO DE SIGUIENTES/FOLLOW NodoUnion Cerradura Kleene
SiguienteEn cada elemento Last(C1) de la lista agregar el First(C2) a su follow En cada elemento Last(C1) agregar el First(C1) a su follow En cada elemento Last(C1) agregar el First(C1) a su follow
Cerradura Positiva
14
Importante Los estados de aceptacin son todos los que contienen la
posicin 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
Mtodo del rbol
Ejemplo2. Calcular el Anulable de cada nodo.F . F . F L 1 F | F L 216
F $ 4 V *
F D 3
ER: L(L|D)*$
Mtodo del rbol
Ejemplo Calcular el First de cada nodo.F 1 .F . V 2,3 * F 2,3 | F L 3 2 F 4 $ 4 1 F L 1
1
217
F D 3
ER: L(L|D)*$
Mtodo del rbol
Ejemplo Calcular el Last de cada nodo.F 1 .4
1 F L 1
F F . 1,2,3 4 $ 4 V 2,3 *
4
1
1
2,3
218
F 2,3 | 2,3 F F L 2 3 D 3 2 3
ER: L(L|D)*$
Mtodo del rbol
Ejemplo Hacer el calculo del Followi L L D $ 1 2 3 4 Follow(i) 2,3,4 2,3,4 2,3,4 1 1 F 1 .
4
F F . 1,2,3 4 $ 4
4
F L1
1
V 2,3 *
2,3
2
F 2,3 | 2,3 F F L 2 3 D 3 2 3ER: L(L|D)*$
19
Mtodo del rbol
Ejemplo4. 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}20
F L 1
1
V 2,3 *
2,3
2
F 2,3 | 2,3 F F L 2 3 D 2 3
Mtodo 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
Mtodo de Subconjuntos
EjemploS0 ={1} S0 Siguiente(1)=Siguiente(L)={2,3,4} S1 (Nuevo Estado) Se lee como= de S0 nos vamos a S1 con una L S1Contiene a 4 ($) entonces es Un estado de Aceptacion.
Siguiente(2)=Siguiente(L)={2,3,4} Siguiente(3)=Siguiente(D)={2,3,4}
S1 S1
22
Mtodo del rbol
Ejemplo5. Se construye la Tabla de Transiciones Q 0 1 1 1 1 D L
23
Mtodo del rbol
Ejemplo6. Se construye el AFD (optimo)L,D
S0
L
S1
24
RESUMEN El mtodo del rbol provee el proceso para la
construccin de un DFA ptimo, partiendo de una expresin regular, realizando el calculo de frist, last y follow, que permite crear subconjuntos que formarn un DFA ptimo.
25
RESUMEN Pasos del mtodo 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