Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
TRADUCTORES E INTERPRETADORES
Clase 5: Minimización de Autómatas
Profs. Carlos Pérez y Ricardo Monascal
Agenda
• Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Minimización de Autómatas.
• Minimización Aproximada de Autómatas usando Derivadas.
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Recordando…
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Recordando…
• Se esperaban la imagen de siempre, ¿no?
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Ahora sí, recordando…
• Queremos demostrar la equivalencia entre los AFND’s/AFD’s y los Lenguajes Regulares.
– Una dirección ya fue probada (todo Lenguaje Regular tiene un AFND que lo reconozca).
– Ahora vamos a probar el converso (todo AFND/AFD reconoce un Lenguaje Regular).
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Para esto, propondremos un Algoritmo que permite construir una Expresión Regular, a partir de cualquier AFND.
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Para esto, propondremos un Algoritmo que permite construir una Expresión Regular, a partir de cualquier AFND.
• Consideremos una modificación sobre la función de transición, para que ahora opere sobre Expresiones Regulares.
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Paso 1: Construir un autómata extendido.
– Crear dos (2) nuevos estados qi y qf, que corresponderán a estados iniciales y finales del autómata respectivamente.
– Colocar una λ-transición, desde qi, hasta el estado inicial del autómata original.
– Colocar una λ-transición, desde cada estado final del autómata original, hasta qf.
– El único estado final debe ser ahora qf.
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Paso 2: Eliminación de estados.
– Mientras existan estados correspondientes al autómata original:
Profs. Carlos Pérez y Ricardo Monascal
qx
qi1 qd1
qdm
qin
u1
un
v1
um
w
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Paso 2: Eliminación de estados.
– Mientras existan estados correspondientes al autómata original:
Profs. Carlos Pérez y Ricardo Monascal
qx
qi1 qd1
qdm
qin
u1
un
v1
um
w qi1
qd1
qdm
qin
qd1
qdm
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Paso 2: Eliminación de estados.
– Unir transiciones que compartan los mismos estados de partida y de llegada.
Profs. Carlos Pérez y Ricardo Monascal
qi qi1
u1
uk
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Paso 2: Eliminación de estados.
– Unir transiciones que compartan los mismos estados de partida y de llegada.
Profs. Carlos Pérez y Ricardo Monascal
qi qi1
u1 + ⋯ + uk qi qi1
u1
uk
Equivalencia entre Autómatas Finitos y Lenguajes Regulares.
• Paso 3: Extracción de la Expresión Regular.
– Al finalizar el paso 2, la expresión regular que vincule qi con qf, es la expresión regular buscada.
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares
• ¿La Expresión Regular representa el mismo lenguaje que reconocía el AFND?
– Demostrar que L(M) = sem(e).
Profs. Carlos Pérez y Ricardo Monascal
Equivalencia entre Autómatas Finitos y Lenguajes Regulares
• ¿La Expresión Regular representa el mismo lenguaje que reconocía el AFND?
– Demostrar que L(M) = sem(e).
– Una vez más, les queda como ejercicio…
Profs. Carlos Pérez y Ricardo Monascal
Minimización de Autómatas
• ¿Cuál es el menor?
Profs. Carlos Pérez y Ricardo Monascal
a, b
b
q’0
q’1
q’2
a
b
a, b
a q’3
q0
q1
q2
b
a
a, b
a, b
Minimización de Autómatas
• ¿Cuál es el menor?
• ¿Por qué? Profs. Carlos Pérez y Ricardo Monascal
a, b
b
q’0
q’1
q’2
a
b
a, b
a q’3
q0
q1
q2
b
a
a, b
a, b
Minimización de Autómatas
• Se dice que dos estados de un AFND son equivalentes, si para cualquier cadena w, correr el autómata con cada estado como estado inicial, resulta en la aceptación o rechazo de w independientemente.
Profs. Carlos Pérez y Ricardo Monascal
Minimización de Autómatas
• Se dice que dos estados de un AFND son equivalentes, si para cualquier cadena w, correr el autómata con cada estado como estado inicial, resulta en la aceptación o rechazo de w independientemente.
• Cualquier AFD, que reconozca el mismo lenguaje, tendrá como mínimo la cantidad de clases de equivalencias formadas por la definición anterior.
Profs. Carlos Pérez y Ricardo Monascal
Minimización de Autómatas
• Paso 1: Crear clases de equivalencia inicial.
Profs. Carlos Pérez y Ricardo Monascal
},{0 FQF
¡Trabajaremos sobre AFD’s, sin perder
generalidad!
Minimización de Autómatas
• Paso 1: Crear clases de equivalencia inicial.
• Paso 2: Inicializar un contador i, en 0. Y hacer:
– Para cada A ∈ ≡i :
• Separar A, de forma que si x, y ∈ A:
– Incrementar el contador i.
– Si ≡i ≠ ≡i-1 , repetir el paso 2. Profs. Carlos Pérez y Ricardo Monascal
},{0 FQF
)),(),(::(1 ayaxaayx ii
Minimización de Autómatas
• Paso 3: Creación del AFD mínimo.
– Construir un autómata , donde:
• , siendo i el último valor que tuvo en la iteración anterior.
•
•
•
Profs. Carlos Pérez y Ricardo Monascal
)',',',',( 0 FqQM
iQ '
YaxXxYaX ),(),('
XqXq 00 '
)::(' FqXqqFX
Minimización de Autómatas
• Por supuesto, hay que demostrar que el Algoritmo es correcto y…
Profs. Carlos Pérez y Ricardo Monascal
Minimización de Autómatas
• Por supuesto, hay que demostrar que el Algoritmo es correcto y… ya saben que hacer.
Profs. Carlos Pérez y Ricardo Monascal
Minimización de Autómatas
• Por supuesto, hay que demostrar que el Algoritmo es correcto y… ya saben que hacer.
• Ahora… ¿Cómo haríamos para calcular un AFD mínimo, dada una Expresión Regular?
Profs. Carlos Pérez y Ricardo Monascal
Minimización de Autómatas
• Por supuesto, hay que demostrar que el Algoritmo es correcto y… ya saben que hacer.
• Ahora… ¿Cómo haríamos para calcular un AFD mínimo, dada una Expresión Regular?
ER → AFND → AFD → AFDmínimo
Profs. Carlos Pérez y Ricardo Monascal
Minimización de Autómatas
• Por supuesto, hay que demostrar que el Algoritmo es correcto y… ya saben que hacer.
• Ahora… ¿Cómo haríamos para calcular un AFD mínimo, dada una Expresión Regular?
ER → AFND → AFD → AFDmínimo
Profs. Carlos Pérez y Ricardo Monascal
Claro…
Minimización de Autómatas
• Por supuesto, hay que demostrar que el Algoritmo es correcto y… ya saben que hacer.
• Ahora… ¿Cómo haríamos para calcular un AFD mínimo, dada una Expresión Regular?
ER → AFND → AFD → AFDmínimo
Profs. Carlos Pérez y Ricardo Monascal
¿?
Minimización Aproximada de Autómatas usando Derivadas
Profs. Carlos Pérez y Ricardo Monascal
• Recordando…
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Recordando…
• Dado un lenguaje L sobre un alfabeto Σ y un símbolo a en Σ, se define el operador DaL (derivada de L con respecto a a) como:
Profs. Carlos Pérez y Ricardo Monascal
}{ LawwLDa
Minimización Aproximada de Autómatas usando Derivadas
• Definiremos ahora, la derivada, pero sobre una Expresión Regular.
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Definiremos ahora, la derivada, pero sobre una Expresión Regular.
• ¡Pero primero! Construyamos una función que nos permita discernir si la semántica de una Expresión Regular contiene λ.
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Definiremos ahora, la derivada, pero sobre una Expresión Regular.
• ¡Pero primero! Construyamos una función que nos permita discernir si la semántica de una Expresión Regular contiene λ.
Profs. Carlos Pérez y Ricardo Monascal
Ø)(
)(
Ø)Ø(
a
*)(
)()()(
)()()(
r
srrs
srsr
Minimización Aproximada de Autómatas usando Derivadas
• Ahora si…
Profs. Carlos Pérez y Ricardo Monascal
*))((*)(
)()()()(
)()()(
)(Ø)(
Ø)(
Ø)Ø(
rrDrD
sDrsrDrsD
sDrDsrD
basi
basibD
D
D
aa
aaa
aaa
a
a
a
Minimización Aproximada de Autómatas usando Derivadas
Profs. Carlos Pérez y Ricardo Monascal
• Igualmente, se puede extender la definición de derivada para trabajar sobre frases.
yawsirDD
wsirrD
yaw )(
Minimización Aproximada de Autómatas usando Derivadas
Profs. Carlos Pérez y Ricardo Monascal
• Igualmente, se puede extender la definición de derivada para trabajar sobre frases.
• Y se cumple la siguiente propiedad:
yawsirDD
wsirrD
yaw )(
)()( rDsemrsemw w
Minimización Aproximada de Autómatas usando Derivadas
• Para una Expresión Regular e, Se construye el autómata , donde:
•
•
•
•
Profs. Carlos Pérez y Ricardo Monascal
),,,,( 0 FqQM
}|{ * weDQ w
)(),( eDDaeD waw
eDq 0
})(|{ eDeDF ww
Por la propiedad que se mostró en la lámina anterior
Minimización Aproximada de Autómatas usando Derivadas
• Ejemplo: Corrida en frío, para e=(0+1)*11.
Profs. Carlos Pérez y Ricardo Monascal
eD
e
DDD
DDeD
11*)10(
1Ø11*)10)(Ø(
1)1(11*)10)(10(
1)1)*)(10((11*)10)(10(
000
000
Minimización Aproximada de Autómatas usando Derivadas
• Ejemplo: Corrida en frío, para e=(0+1)*11.
Profs. Carlos Pérez y Ricardo Monascal
eD
e
DDD
DDeD
11*)10(
1Ø11*)10)(Ø(
1)1(11*)10)(10(
1)1)*)(10((11*)10)(10(
000
000
Como el resultado es igual al de una derivada anterior, no es necesario continuar con frases que empiecen con la frase “0”.
Minimización Aproximada de Autómatas usando Derivadas
• Ejemplo: Corrida en frío, para e=(0+1)*11.
Profs. Carlos Pérez y Ricardo Monascal
1
111*)10(
1)1)*)(10((11*)10)(10( 111
e
DDeD
Minimización Aproximada de Autómatas usando Derivadas
• Ejemplo: Corrida en frío, para e=(0+1)*11.
Profs. Carlos Pérez y Ricardo Monascal
eD
e
eD
eDDeD
)1(
)(
0
1010
Minimización Aproximada de Autómatas usando Derivadas
• Ejemplo: Corrida en frío, para e=(0+1)*11.
Profs. Carlos Pérez y Ricardo Monascal
1
)1(
)(
1
1111
e
eD
eDDeD
Minimización Aproximada de Autómatas usando Derivadas
• Ejemplo: Corrida en frío, para e=(0+1)*11.
Profs. Carlos Pérez y Ricardo Monascal
eD
e
eD
eDDeD
)1(
)(
0
110110
Minimización Aproximada de Autómatas usando Derivadas
• Ejemplo: Corrida en frío, para e=(0+1)*11.
Profs. Carlos Pérez y Ricardo Monascal
eD
e
eD
eDDeD
11
1
111111
1
)1(
)(
Minimización Aproximada de Autómatas usando Derivadas
• Ejemplo: Corrida en frío, para e=(0+1)*11.
¡Y ÉSTE… ES… EL CONJUNTO DE ESTADOOOS!
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
Profs. Carlos Pérez y Ricardo Monascal
Dλe
D1e D11e
1
1
0
1
0 0
Minimización Aproximada de Autómatas usando Derivadas
• Este algoritmo permite obtener un AFD a partir de una Expresión Regular.
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Este algoritmo permite obtener un AFD a partir de una Expresión Regular.
• As usual, the proof is left to the students.
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Este algoritmo permite obtener un AFD a partir de una Expresión Regular.
• El AFD construido mediante este algoritmo tiende a ser el AFD mínimo…
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Este algoritmo permite obtener un AFD a partir de una Expresión Regular.
• El AFD construido mediante este algoritmo tiende a ser el AFD mínimo…
– Pero no necesariamente lo es.
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Este algoritmo permite obtener un AFD a partir de una Expresión Regular.
• El AFD construido mediante este algoritmo tiende a ser el AFD mínimo…
– Pero no necesariamente lo es.
– Si no es mínimo, tiende a ser una buena aproximación a éste.
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Sabemos especificar los Lenguajes Regulares.
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Sabemos especificar los Lenguajes Regulares.
• Sabemos determinar si una frase cualquiera pertenece a un Lenguaje Regular.
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Sabemos especificar los Lenguajes Regulares.
• Sabemos determinar si una frase cualquiera pertenece a un Lenguaje Regular.
• Ahora solo falta saber si un lenguaje cualquiera es Regular o no…
Profs. Carlos Pérez y Ricardo Monascal
Minimización Aproximada de Autómatas usando Derivadas
• Sabemos especificar los Lenguajes Regulares.
• Sabemos determinar si una frase cualquiera pertenece a un Lenguaje Regular.
• Ahora solo falta saber si un lenguaje cualquiera es Regular o no…
– ¡Eso será para la próxima clase!
Profs. Carlos Pérez y Ricardo Monascal