lenguajes regulares y autómatas finitos - clase 10
DESCRIPTION
Conversión de un AF-lambda en AFD. Pasar de una ER al AF. Comparación de un AFD y un AFND.TRANSCRIPT
![Page 1: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/1.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
CONVERSIÓN DE AF- A AFD:
ING. JORGE BUABUD
ALGORITMO PARA OBTENER UN AFD A PARTIR DE UN AF-:Entrada: AF- = < Q1 , , q10 , F1 , f1 > || Salida: AFD = < Q2 , , q20 , F2 , f2 >
{ Sean: T Q1 , p q Q1 , p’ q’ Q2 , x }
función Clausura(T)
Pila ← T ; Clausura ← T
mientras Pila hacer
descargar q de la Pila
para cada p f1(q , ) hacer
si p Clausura
entonces agregar p a Clausura
cargar p en la Pila
retorno
función Destino(T,x)
Destino ←
para cada q T hacer
Destino ← Destino f1(q , x)
retorno
![Page 2: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/2.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
CONVERSIÓN DE AF- A AFD:
ING. JORGE BUABUD
inicio
q20 ← clausura({q10}) ; agregar q20 a Q2
si q20 F1 entonces agregar q20 a F2
marcar q20 como no procesado
mientras q’ Q2 no procesado hacer
marcar q’ como procesado
para cada x hacer
p’ ← clausura(destino(q’,x))
f2(q’,x) ← p’
si p’ Q2 entonces agregar p’ a Q2
si p’ F1 entonces agregar p’ a F2
marcar p’ como no procesado
fin
![Page 3: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/3.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
EJEMPLO DE CONVERSIÓN DE AF- A AFD:
ING. JORGE BUABUD
A partir del grafo hacemos la tabla:
AFD16 a b
*q0 ={0,1,4,6,8} q1 q2
q1 ={1,7,2} q3 q4
*q2 ={2,1,5,6,8} q3 q5
*q3 ={1,7,3,4,2,8} q3 q6
*q4 ={2,7,5,8} q7 q4
*q5 ={5,2,6,8} q7 q8
*q6 ={2,7,1,5,8} q3 q4
*q7 ={3,4,7,8,2} q7 q6
*q8 ={5,6,8} q9 q8
q9 ={7,2} q7 q4
AF-2
a1b
2
b
b
8
b
a
4
a
a
b
7
a,b
a
b
0
3
6
5
![Page 4: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/4.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
EJEMPLO DE CONVERSIÓN DE AF- A AFD:
ING. JORGE BUABUD
Normalmente el AFD que se obtiene no es mínimo, aplicando el
algoritmo de minimización llegamos a un AFD16 reducido:
P0 = { [0,2,3,4,5,6,7,8] , [1,9] }
P1 = { [0] , [2,3,4,5,6,7] , [8] , [1,9] }
P2 = { [0] , [2,3,4,6,7] , [5] , [8] , [1,9] }
P3 = { [0] , [2] , [3,4,6,7] , [5] , [8] , [1,9] }
P4 = P3
C1
C3C2C1
C2
C4
C1 C2 C3 C4 C5
C1 C2 C3 C4 C5 C6
AFD16
Mínimoa b
*C1 C6 C2
C6 C3 C3
*C2 C3 C4
*C3 C3 C3
*C4 C3 C5
*C5 C6 C5
![Page 5: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/5.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
EJEMPLO DE CONVERSIÓN DE AF- A AFD:
ING. JORGE BUABUD
Para integrar este ejemplo con los mecanismos vistos anteriormente, tomemos el
grafo del AFD16 con un cambio de nomenclatura, para obtener la GR y la ER:
ER=b*.a.(a+b).(a+b)*+b.b.b*+b.b.a+b.a+
AFD16
b
A
B
D
EC
b
a,b
a
b
a
aba
a,b
AFD16 GR
N={S, A, B, C, D, E}
T={a, b}
S aA | bB |
A aD | bD | a | b
B aD | bE | a | b
C aA | bC | b
D aD | bD | a | b
E aD | bC | a | b
P
S
![Page 6: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/6.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
OBTENCIÓN DEL AF-A PARTIR DE UNA ER:
ING. JORGE BUABUD
Veamos a continuación algunos casos particulares de construcción de
AF- para ER sencillas, donde x y :
x
x
x+y
y
x
x.y
x y
x*
x
![Page 7: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/7.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
OBTENCIÓN DEL AF-A PARTIR DE UNA ER:
ING. JORGE BUABUD
A partir de una ER, con alfabeto base , en general se puede
construir el AF- que acepta el lenguaje asociado con dicha
expresión, teniendo en cuenta las siguientes pautas:
1) Se construye un AF- correspondiente a cada símbolo de y
también para si fuera necesario.
2) Se procede a realizar las operaciones entre estos AF-, de
acuerdo a la ER de partida.
3) Se recomienda unificar los estados finales en cada paso.
![Page 8: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/8.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
EJEMPLO DE OBTENCIÓN DEL AF DE UNA ER:
ING. JORGE BUABUD
ER = a.(a+b.a*.c)*.c+b.b.a
AF-7
a1
a
2c
b14
c
a
4
b b
7
a
0
3
65
1210 11
8 9
13
![Page 9: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/9.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
ING. JORGE BUABUD
Para integrar este ejemplo con los mecanismos vistos anteriormente,
vamos a obtener el AFD Mínimo correspondiente:
AFD17 a b c
q0 ={0,10} q1 q2 q3
q1 ={1,2,9,3,5} q5 q7 q8
q2 ={11} q3 q4 q3
q3 = q3 q3 q3
q4 ={12} q6 q3 q3
q5 ={4,8,9,2,3,5} q5 q7 q8
*q6 ={13,14} q3 q3 q3
q7 ={6} q7 q3 q9
*q8 ={14} q3 q3 q3
q9 ={7,8,9,2,3,5} q5 q7 q8
P0={[q6, q8],[q0, q1, q2, q3, q4, q5, q7, q9]}
P1={[q6, q8],[q0, q2, q3, q7],[q4],[q1, q5, q9]}
P2={[q6, q8],[q0],[q2],[q3],[q7],[q4],[q1, q5, q9]}
P3=P2
A
A B
A CB
B
DC
D E F G
AFD17mínimo
a b c
B G C D
C D F D
D D D D
E E D G
F A D D
G G E A
*A D D D
EJEMPLO DE OBTENCIÓN DEL AF DE UNA ER:
![Page 10: Lenguajes Regulares y Autómatas Finitos - Clase 10](https://reader035.vdocuments.site/reader035/viewer/2022080302/568c495b1a28ab491693e0ec/html5/thumbnails/10.jpg)
LENGUAJES REGULARES Y
AUTÓMATAS FINITOS
U.T.N. – F.R.T.
S. y S. de los L.
Complejidad de los Autómatas Finitos
ING. JORGE BUABUD
Donde “r” es la expresión regular asociada al autómata y “x” es la
secuencia de entrada que se desea analizar.
Vemos que en general el AFD es más rápido que el AFND, pero a la vez
ocupa más memoria y viceversa.
Esta ventaja del AFD, en cuanto a la complejidad temporal, hace que sea
la opción más eficiente para implementar el algoritmo de análisis léxico.
AUTÓMATA / ORDEN Espacial Temporal
AFD 2|r| |x|
AFND |r| |r|.|x|