06 - Conversiones AFN ER-AFD ER
06 - Conversiones AFN ER-AFD ER
06 - Conversiones AFN ER-AFD ER
Teoría de Autómatas y
Lenguajes Formales
Conversión ER - AFN | AFD - ER
Profesor Guía: Alexander Espina-Leyton
[email protected]
Fecha: 30-09-2020 1
Contenido
2
Tabla de contenidos
● Repaso AFN
● Transformaciones
○ AFD a ER
■ Lemma Hopcroft
■ Lemma Arden
○ Método de Thompson (ER a AFN)
● Ejercicios
3
Repaso AFN
● En cada estado, pueden existir más de un
camino para el mismo símbolo e incluso
para la misma palabra vacía 𝜀.
● Al no ser determinista, el camino desde el
estado inicial q0 para una cadena 𝓌 puede
llevar a múltiples estados (finales y/o no
finales). 4
TRANSFORMACIONES
5
Transformaciones
Aunque las expresiones regulares describen
los lenguajes de manera completamente
diferente a como lo hacen los autómatas
finitos, ambas notaciones representan
exáctamente el mismo conjunto de
lenguajes, que hemos denominado
“lenguajes regulares”. 6
Transformaciones
● Todo lenguaje definido mediante un
autómata visto en clases, también se define
mediante una expresión regular.
● Todo lenguaje definido por una expresión
regular, puede definirse mediante un
autómata visto en clases.
7
Transformaciones
8
Página 77 del libro guía.
Lemma Hopcroft
● Conversión de un AFN en una expresión
regular mediante la eliminación de estados
(pág. 82).
○ Consiste de 3 principios, los cuales en conjunto
buscan eliminar estados no finales de un AFD/N,
remplazándolos por expresiones regulares.
9
10
Facultad de Ingeniería
Lemma Hopcroft
(1) Un estado S va a ser eliminado.
Facultad de Ingeniería
Lemma Hopcroft
(2) (R + SU*T)*SU*
(3) R*
Facultad de Ingeniería
Hopcroft - Ejemplo
Un AFN que acepta cadenas que tienen un 1 a dos o tres posiciones respecto del final.
Facultad de Ingeniería
Hopcroft - Ejemplo
Facultad de Ingeniería
Hopcroft - Ejemplo
Facultad de Ingeniería
Hopcroft - Ejemplo
Facultad de Ingeniería
Hopcroft - Ejemplo
(0+1)*1(0+1)+(0+1)*1(0+1)(0+1)
17
Lemma Arden
A0= 𝒶A1∪ 𝑏A3
A1= 𝒶A5∪ 𝑏A2
A2= 𝒶A5∪ 𝑏A5∪ 𝜀
A3= 𝒶A4∪ 𝑏A5
A4= 𝒶A5∪ 𝑏A5∪ 𝜀 Regla, si qi ∈ F, 𝜀 ∈ Ai, es decir, como es
de aceptación, se añade 𝜀.
A5= 𝒶∅ ∪ 𝑏∅ = ∅
18
Lemma Arden
Debemos despejar A0 en el sistema de
ecuaciones creado.
A4= 𝒶A5∪ 𝑏A5∪ 𝜀 = 𝒶∅ ∪ 𝑏∅ ∪ 𝜀 = ∅ ∪ ∅ ∪ 𝜀 = 𝜀
A3= 𝒶A4∪ 𝑏A5 = 𝒶𝜀 ∪ 𝑏∅ = 𝒶
A2= 𝒶A5∪ 𝑏A5∪ 𝜀 = A4 = 𝜀
A1= 𝒶A5∪ 𝑏A2 = 𝒶∅ ∪ 𝑏𝜀 = 𝑏
A0= 𝒶A1∪ 𝑏A3 = 𝒶𝑏 ∪ 𝑏𝒶 Por lo tanto, L(M) = (𝒶b+b𝒶)
19
Lemma Arden
¿Qué pasa con la estrella de kleene?
20
Fuente: Página 50 del libro de "autómatas y Lenguajes Formales - Edgar Alberto Quiroga Rojas"
Lemma Arden
¿Qué pasa con la estrella de kleene?
Considere el siguiente ejemplo.
A = 1A U 0B
B = 1∅ U 0C
C = 1∅ U 0∅ U 𝜀 = 𝜀
B=0
A = 1A U 00
A = 1*00
21
Lemma Arden
¿Qué pasa con la estrella de kleene?
Considere el siguiente ejemplo.
A = 1A U 0B
B = 1∅ U 0C
C = 1∅ U 0C U 𝜀 = 0C U 𝜀 (lo forzaremos hasta el final, para
expresar el problema que acarrearía)
B = 0(0C U 𝜀)
A = 1A U 00(0C U 𝜀)
A = 1*000C U 1*00𝜀 = 1*00(0C U 𝜀) (por quiroga)
24
Estrella de Kleene Arden
El libro de Quiroga (página 51) muestra el siguiente ejemplo:
25
Estrella de Kleene Arden
De lo anterior, podemos ejemplificar el siguiente caso.
A = 0A + 1A + 1B + 𝜀 = (0+1)A + 1B + 𝜀 /// Para aplicar la regla de
distributividad, es importante que la letra A esté, para ambos casos (0A y 1A), en el
mismo lado de la palabra (propiedad de concatenación).
B = 0∅ + 1B + 𝜀 = 1B + 𝜀 = 1*
A = (0+1)A + 11* + 𝜀
A = (0+1)*(11* + 𝜀)
26
Estrella de Kleene Arden
Y como último ejemplo, consideremos el siguiente AFN.
A = 0∅ + 1B
B = (0 + 1)B + 1C + 0D + 𝜀
C = 0∅ + 1C + 𝜀 = 1*
D = 0∅ + 1B = 1B
B = (0+1)B + 11* + 01B + 𝜀
B = (0+1+01)B + 11* + 𝜀
B = (0+1+01)*11* + (0+1+01)*𝜀 = (0+1+01)*(1+ + 𝜀)
A = 1(0+1+01)*(1+ + 𝜀)
27
Método Thompson
1. La función Th, para un caso base que
cumpla.
a. Exactamente un estado de
aceptación. L = {𝜀}
b. Ningún arco que entre en el
estado inicial: L = ∅.
c. Ningún arco que salga del
estado de aceptación. L(a)
28
Página 87 del libro guía.
Método Thompson
1. Transformación ER a
AFN-𝜀 utilizando las
siguientes reglas
a. R + S (unión)
b. RS (Concatenación)
c. R*
29
Página 88 del libro guía.
30
Facultad de Ingeniería
Thompson - Ejemplo
Deseamos convertir la expresión regular
(0 + 1)* 1(0 + 1) en un AFN-𝜀.
- Primero la parte 0+1, utilizando (a).
- A continuación (0+1)* se utiliza (c)
- Finalmente (b), para concatenar toda la
ER, como muestra la siguiente imagen.
Facultad de Ingeniería
Thompson - Ejemplo
0+1
(0 + 1)*
Facultad de Ingeniería
Thompson - Ejemplo
(0 + 1)*1(0+1)
33
34
Facultad de Ingeniería
Ejercicios
1. Para el siguiente AFN
a. Transforme el siguiente AFN a AFD
b. Utilice el Lemma Arden, para obtener la ER
desde el AFN
35
Facultad de Ingeniería
Solución
AFN a AFD 0 1
->A A {A,B}
*{A,D} A {A,B}
Facultad de Ingeniería
Solución
1) S. ecuaciones 2) Debemos despejar A. Comenzaremos despejando D
A: 0A U 1A U 1B D: ∅U∅U𝜀=𝜀
B: 0C U 1C C: 0𝜀 U 1𝜀 U 𝜀 = 0 U 1 U 𝜀
(0+1)*1(0+1)((0+1)+𝜀)
37
Facultad de Ingeniería
Ejercicios
1. Transforme el siguiente AFD a ER
38
Facultad de Ingeniería
Solución
1) S. ecuaciones 2) Debemos despejar A. Comenzaremos despejando D
A: 1A U 0B B: 0*(1A U 𝜀) = 0*1A U 0*
ER: (1 + 00*1)*00*
39
Facultad de Ingeniería
Ejercicios
1. He aquí una tabla de transiciones para un AFD:
a. Convierta el siguiente AFD en
una expresión regular
utilizando el Lemma de
Arden
40
Facultad de Ingeniería
Solución - AFD diagrama
41
Facultad de Ingeniería
Solución - Transformación
Qs Ecuaciones
Facultad de Ingeniería
Ejercicios
1. Convierta las siguientes expresiones regulares en
un AFN-𝜀.
a. 01*
b. (0+1)01
c. 00(0+1)*
43
Facultad de Ingeniería
Solución A
44
Facultad de Ingeniería
Solución B
45
Facultad de Ingeniería
Solución C
Anexos
46
47
Facultad de Ingeniería
Fuentes
➢ Ponencias Curso Carlos Rey Barra
➢ Ponencias Curso Carlos Gómez-Pantoja
➢ J. Hopcroft, R. Motwani, J. Ullman. (2001).
Introduction to Automata Theory, Languages,
and Computation. Pearson Education.
48
Facultad de Ingeniería
Ejercicio T Parte 1
Eliminando 2, llegamos a lo siguiente.
Eliminar el 2 se hace sencillo, sólo
porque es un nodo intermedio a 3 y 4.
Así que es llegar de 1->2 y desde ahí
a 3 y 4.
49
Facultad de Ingeniería
Ejercicio T Parte 2
Primero asumamos el llegar a 3 como estado
final (eliminando 4) y luego es homólogo llegar
a 4 como estado final. Y ambos se deben unir.
1⇒3 = (0+11(00)*1)*(10(00)*)
1⇒4 = (0+10(00)*1)*(11(1+00(00)*1)*)
4⇒3 = (1+00(00)*1)*0
En el 1⇒3, me pregunto ¿Cómo llego
del 1 al 3, sin pasar por el 4?.
3⇒4 = (0(00)*11*0)*((0(00)*1)1*)
(0+11(00)*1) Representa el volver al 1. 3⇒1 = (10*10(00)*)*(10*)
(caso (2) hopcroft)
(1⇒3 + 1⇒4∙4⇒3)
Luego, como busco llegar desde 1, hasta 3
y todos los caminos intermedios (y ciclos ∙(
por formar). Se genera una unión, como el (3⇒4∙4⇒3)
caso (1) hopcroft. Ojo que en 1, ya están + (3⇒1∙
consideradas las formas que te devuelven a
1. Y luego le concateno los ciclos desde 3 + (1⇒3+ 1⇒4∙4⇒3)
a 3. + )*
Facultad de Ingeniería
Teoría de Autómatas y
Lenguajes Formales
Conversión ER - AFN | AFD - ER
Profesor Guía: Alexander Espina-Leyton
[email protected]
Fecha: 02-10-2019 50