Professional Documents
Culture Documents
Autmatas Finitos
1. Motivacin
9. Complementos
2
Mquinas: simplifiquemos
input
Computador
MEF
output
Mquinas: simplifiquemos
input
MEF
output
Mquinas: simplifiquemos
input
MEF
output
Mquinas: simplifiquemos
input
MEF
estado actual
Mquinas: simplifiquemos
*
w1winput
2w3...wn
Mquinas: simplifiquemos
w1w2w3...wn *
MEF
estado actual
1
ON
OFF
1
grafo de transiciones
1
AA
00
q0
2
1
2
AC
01
q1
CA
10
q2
2
1
1
2
CC
11
q3
10
Lenguaje aceptado:
Estado inicial,
ser uno solo
1
q0
2
1
2
q1
q2
2
1
1
2
q3
Autmatas Finitos
1. Motivacin
9. Complementos
12
alfabeto de entrada
funcin de transicin de estados
q0 Q
estado inicial
FQ
estados de aceptacin
13
M = (Q, , , q0, F)
donde
= {a, b}
Q: estados internos
: alfabeto de entrada
:QQ: funcin de transicin
q0 Q: estado inicial
a
F Q: estados de aceptacin
b
q0
b
q3
q1
b
q2
b
b
q4
15
M = (Q, , , q0, F)
donde
= {a, b}
Q: estados internos
: alfabeto de entrada
:QQ: funcin de transicin
q0 Q: estado inicial
a
F Q: estados de aceptacin
b
q0
b
q3
q1
b
q2
b
b
q4
16
M = (Q, , , q0, F)
donde
= {a, b}
Q: estados internos
: alfabeto de entrada
:QQ: funcin de transicin
q0 Q: estado inicial
a
F Q: estados de aceptacin
b
q0
b
q3
q1
b
q2
b
b
q4
17
M = (Q, , , q0, F)
donde
= {a, b}
Q: estados internos
: alfabeto de entrada
:QQ: funcin de transicin
q0 Q: estado inicial
a
F Q: estados de aceptacin
b
q0
b
q3
q1
b
q2
b
b
q4
18
M = (Q, , , q0, F)
donde
= {a, b}
Q: estados internos
: alfabeto de entrada
:QQ: funcin de transicin
q0 Q: estado inicial
a
F Q: estados de aceptacin
b
q0
b
q3
q1
b
q2
b
b
q4
19
M = (Q, , , q0, F)
donde
= {a, b}
Q: estados internos
: alfabeto de entrada
:QQ: funcin de transicin
q0 Q: estado inicial
a
F Q: estados de aceptacin
b
q0
b
q3
q1
b
q2
b
b
q4
20
q0
q1
Alfabeto = {0, 1}
Estados Q = {q0, q1, q2}
Estado inicial q0
Estados de aceptacin F = {q0, q1}
0,1
q2
Funcin de transicin :
input
estados
q0
q1
q2
0
q0
q2
q2
1
q1
q1
q221
(q,w)
Si el autmata recibe
w=w1...wm como input, las
transiciones sern
(q0, w1...wm)
((q0,w1), w2...wm)
...
( qk, wm )
( qr, )
para algn qk y qr
22
q0
q1
0,1
q2
(q0, 0010011)
(q0, 010011)
(q0, 10011)
(q1, 0011)
(q2, 011)
(q2, 11)
(q2, 1)
(q2, )
23
q0
OJO, no confundirse:
los nodos del grafo no
son partes del
autmata; son sus
posibles estados.
q1
0,1
q2
0010011
010011
10011
0011
011
11
1
q201
24
AFD: extensin de
Construyamos de la siguiente manera (recursiva):
(q,)=q
(q,w)= ( (q,w), )
La funcin toma un estado y una palabra, y me
dice a qu estado voy a llegar, una vez que haya
procesado con todas las letras de la palabra.
25
AFD: extensin de
0
q0
(q,)=q
(q,w)= ( (q,w), )
1
1
q1
0,1
0
q2
(q0,011) = ?
(q0,011)
= ((q0,01),1)
= (((q0,0),1),1)
= ((q0,1),1)
= (q1,1)
= q1
26
AFD: extensin de
(q,)=q
(q,w)= ( (q,w), )
En particular se tiene
(q,) = ( (q,), ) = (q,)
de modo que es una extensin de
AFD y lenguajes
Lenguaje aceptado (o reconocido) por un AFD:
es el conjunto de palabras que lo llevan desde
el estado inicial hasta un estado de aceptacin.
En otras palabras,
L(M) = { w: (q0, w) F }
28
AFD y lenguajes
Que lenguaje acepta este autmata?
0
q0
1
1
q1
0,1
0
q2
AFD y lenguajes
Y este, con ={1}?
1
q1
q0
30
AFD y lenguajes
Y este, con ={0,1}?
0
1
1
q0
q1
L= {w{0,1}*: w termina en 1}
ER?
(0+1)*1
31
AFD y lenguajes
Y en estos?
0,1
q0
L = {0,1}*
0,1
q0
L=
0,1
q0
O,1
q1
L = {}
32
AFD y lenguajes
Otro tipo de problema: construir un AFD que
acepte un lenguaje dado.
Por ejemplo: con ={0,1}, reconocer el lenguaje
de los strings con a lo ms tres 1s.
0
0
q0
q1
0
1
q2
0, 1
0
1
q3
q4
33
http://www.cs.duke.edu/csed/jflap/
34
AFD y lenguajes
Si L es un lenguaje, y existe un AFD M tal que
L = L(M)
decimos que L es regular.
Sern todos los lenguajes regulares?
Respuesta: NO.
Contraejemplo: L = { anbn : n > 0 }
35
AFD y lenguajes
L = { anbn : n > 0 }
Por qu no es regular?
Idea:
AFD y lenguajes
0
q0
1
0
q1
q2
AFD y lenguajes
0
q0
1
0
q1
q2
AFD y lenguajes
0
1
0
q0
q1
q2
0
q0
1
0
q1
q2
Autmatas Finitos
1. Motivacin
9. Complementos
40
0
q1
q00
q01
q10
q11
q000
1
q001
q0
q101
q111
41
0,1
q0
q1
q2
q3
0,1
q0
q1
q2
q3
0,1
q0
q1
q2
q3
0,1
0,1
0
q0
q0
q1
q2
q3
q1
0
{q0,q1}
{q3}
{q3}
q2
1
{q0}
{q2}
{q3}
q3
Ntese que si
|(q,)|=1 qQ, ,
entonces es un AFD.
Por lo tanto, todo AFD
47
es un AFND.
0,1
q0
0,1
0
q1
q2
q3
AFD, AFND
En AFD, p = (q,)
En AFND, p (q,)
q0
0,1
1
q2
0
q3
0,1
49
( r , )
r (q,w)
( r , )
r (q,w)
0,1
0,1
0
q0
q0
q1
q2
q3
q1
0
{q0,q1}
{q3}
{q3}
q2
1
{q0}
{q2}
{q3}
q3
(q0, 01) = ?
{ q0, q2 }
51
L(M) = { w: (q0, w) F }
O sea: w pertenece al lenguaje, si a partir del estado
inicial, y leyendo w, es posible llegar a algn estado que
sea de aceptacin.
Qu acepta este AFND, con = {a} ?
L = {aa, }
q1 a
q2
q0
a
q3
52
Y este, con
= {a,b} ?
q0 a
q4
0,1
1
q0
q1
q2
q1 b
q3
q5
0,1
q3
q2
0,1
54
No!
55
AFND AFD
Idea:
consideremos de nuevo el AFND que acepta el lenguaje
de strings que incluyen 010.
0,1
q0
0,1
q1
q2
q3
(q0, 0101)
(q0, 101)
(q1, 101)
(q0, 01)
(q2, 01)
(q0, 1)
(q0, ) rechaza
(q1, 1)
(q2, ) rechaza
(q3, 1)
(q3, ) acepta
56
AFND AFD
Idea:
consideremos de nuevo el AFND que acepta el lenguaje
de strings que incluyen 010.
0,1
0,1
q0
q1
q2
q3
q0
0
0
q0 1
q1
q0
q2
0
0
q0
q1
q3
q0 rechaza
q2 rechaza
q3 acepta
57
AFND AFD
Idea:
consideremos de nuevo el AFND que acepta el lenguaje
de strings que incluyen 010.
0,1
0,1
q0
q1
q2
q3
q0
q1
q0
q0
0
q2
q1
q3
q0
q2
q3
58
AFND AFD
Entonces: el conjunto de posibles recorridos para la
palabra 0101, se convierte en un nico recorrido, que va
pasando por distintos subconjuntos de Q.
0,1
q0
q0
0,1
q0
q1
q1
q0
q0
0
q2
q2
q1
q3
q3
q0
q2
q3
59
AFND AFD
A partir del AFND M, construimos un AFD M en que
q0
q0
q1
q0
q2
q0
q1
q3
q0
q2
q3
60
AFND AFD
Otro ejemplo:
0, 1
AFND
q0
AFD
q2
0
q0
q1
{q0, q1}
1
{q0, q2}
1
61
AFND AFD
Mtodo general para construir el AFD M equivalente a
un AFND M=(Q, , , q0, F):
Q = 2Q
=
q0 = {q0}
F = { AQ : AF }
( A, ) = { q: pA, q(p,) } =
(p, )
pA
AFND AFD
L(M) = { w: (q0, w) F }
Definicin de F
PASO INDUCTIVO:
Supongamos para |w| y demostremos para |w|+1.
( q0, w) = ( (q0,w), ) = ( (q0,w), ) =
(p, ) = (q ,w)
0
p ( q 0 , w )
Definicin
(recursiva) de
Hiptesis de
induccin
Definicin
de
Definicin
(recursiva) de
63
AFND AFD
Hemos demostrado:
AFND AFD
De nuevo el ejemplo: dado el AFND
0, 1
q0
la construccin
da el AFD:
q2
0
{q0}
0, 1
1
1
{q0, q1}
0
q1
{q0, q2}
{q1}
1
0
0
1
{q2}
{q1, q2}
AFND AFD
Suele ocurrir que muchos de los subconjuntos de Q no sean
accesibles en el AFD. Las implementaciones lo que hacen es
partir de {q0}, e ir agregando slo lo accesible.
Para el AFND de la derecha
(que vimos antes), el programa
dio el AFD de abajo.
AFND+
Antes habamos definido (al extender ) que en un
AFND,
(q,) = {q}
q0
q1
1
q2
0
q3
0
1
1
67
q4
AFND+
q0
= {0,1}
q1
q2
q3
q4
A la izquierda: palabras
consistentes en 0 o ms
repeticiones de 10,
seguidas por 0 o ms
repeticiones de 110.
= {0,1,2}
q0
q1
q2
q3
0,1
0,2
1,2
68
AFND+
Nuevamente, es claro que los AFND son caso
particular de los AFND+.
Y al revs? Ser posible reconocer un lenguaje no
regular con un AFND+?
Respuesta: NO. La clase de lenguajes queda igual.
Demostracin: veamos que dado un AFND+,
podemos construir un AFD equivalente (es decir, con
el mismo lenguaje).
69
AFND+
Consideremos un AFND+ M = (Q, , , q0, F), y
definamos una relacin mediante
p q q (p,), p=q
Sea la clausura transitiva de R, y dado AQ sea
A =A { q: pA, p q}
Es decir, A le agrega a A todo aquello que se puede
alcanzar desde A mediante transiciones nulas.
70
AFND+
Se hace una variante de la construccin previa, con
Q = 2Q , = , F = { AQ : AF }
pero ahora
q0 = {q0}
( A, ) = { q: pA, q(p,) }
AFND+
Ejemplo:
q0
q1
q2
q0
q1, q2
a, b
Palabras que
comienzan y terminan
en a, y no tienen dos b
72
consecutivas.
AF FA
Las siglas en ingls para lo que hemos tratado son,
por lo general:
AFD (D)FA : (deterministic) finite automaton
AFND NFA: non-deterministic finite
automaton
AFND+ -NFA: non-deterministic finite
automaton with -transitions
OJO: en ingls el singular es automaton, plural es
automata (en castellano, autmata y autmatas).
73
Autmatas Finitos
1. Motivacin
9. Complementos
74
Propiedades de clausura
Dado cualquier AF, siempre es posible construir
un AFND+ equivalente tal que:
Haya slo un estado de aceptacin.
75
Propiedades de clausura
En efecto: si no
es el caso,
agregamos
estados de inicio
o trmino, y los
conectamos con
los que haban
mediante
transiciones
nulas.
a
b
a
b
a
a
b
76
Propiedades de clausura
Sean L1 y L2 lenguajes regulares, con autmatas M1 y M2.
L1 L2 tambin es un lenguaje regular.
Demostracin:
M1
M2
77
Propiedades de clausura
L1L2 tambin es un lenguaje regular.
Demostracin:
M1
M2
78
Propiedades de clausura
L1+ tambin es un lenguaje regular:
Demostracin 1:
reg.
reg.
79
Propiedades de clausura
L1C es regular.
Demostracin:
Sea M = (Q, , , q0, F) un
AFD que reconoce a L1
80
Propiedades de clausura
L1 L2 es regular:
Demostracin 1: Ley de Morgan + resultados previos.
Demostracin 2:
no necesariamente es regular.
n 1
Demostracin:
Sea L* cualquiera.
Definamos Ln = L n
Cada Ln es finito cada Ln es regular.
Si L
n 1
Ejercicios
Sean L1 y L2 regulares. Demuestre que L1\L2 [resta
de conjuntos] es regular.
83
Ejercicios
Sean L1 regular y L2 cualquiera. Se define el
cuociente [derecho] como
L1/L2 = { u: vL2 tal que uvL1 }
O sea: son las palabras formadas al quitarles, a
palabras de L1, sufijos pertenecientes a L2.
Demuestre que L1/L2 es regular.
Hint: partir asumiendo un AFD para L1, y demostrar que existe
uno para L1/L2 (aunque no sepamos construirlo!).
84
Ejercicios
Sean 1 y 2 dos alfabetos (eventualmente el mismo).
Un homomorfismo es una funcin h: 1* 2*
tal que
h(uv) = h(u)h(v) para todo u,v1*
Propiedades de clausura
Ejemplo de homomorfismo:
1={0,1}
2={a,b}
h definida por h(0)=ab, h(1)=
h(0011) = h(0)h(0)h(1)h(1) = abab = abab
L = palabras del tipo 100...001, con al menos un 0.
86
Autmatas Finitos
1. Motivacin
9. Complementos
87
0:
10:
(10)*:
(10)*:
(10)*(0+):
0+:
89
reconoce lo mismo.
90
91
GTG
GTG: son similares a un AFND+, pero permitimos
usar ER en los arcos.
Claramente los AFND+ son caso particular de GTG.
Adems pediremos que sean de la forma:
Ejemplo:
q3
0*11
q0
+10*
0*1
(00+11)*
q1
01
1010
q2
92
Idea de GTGER:
Eliminar estados
intermedios, hasta
que slo queden el de
inicio y el de
aceptacin.
q0
q1 a b q2
bb * a
q0
b
bb * (a b)
q2
93
0*1
q0
+10*
q1
0*11
q2
01
q0
(+10*)(0*1)*0*11
q2
01
q0
(+10*)(0*1)*0*11 + 01
q2
94
r4
r1
r3
q0
r2
qf
En algunos textos la
situacin final se muestra
como aqu, con loops.
En tal caso,
r r r (r4 r r r )
*
1 2
*
*
31 2
da la expresin final.
No es nuestro caso, aqu basta
r
95
96
97
98
99
r2 desde 1
r6 desde 3
Loop
r4
Salen
r3 hacia 1
r5 hacia 3
100
Lo convertimos en un AFD
Es fcil hacerlo a dedo, sin pasar por 2Q:
103
Convertimos el AFD
en una ER:
104
105
y crecen y crecen...
ER AFND+ AFD AFD ER
Tambin sera el caso para intersectar dos ER.
En cada paso, la cantidad de estados del AF (o la
longitud de las ER) tiende a crecer.
Pero puede haber ER y/o AF ms chicos que los que
obtenemos de ese modo.
Autmatas Finitos
1. Motivacin
9. Complementos
107
M
a
a k bN
Demostracin:
110
QED
111
N
Aqu en el y...
queda w=xyz
112
114
117
Autmatas Finitos
1. Motivacin
9. Complementos
118
Minimizacin de AFD
Motivos para querer minimizar AFD:
Al trabajar con AFD, AFND+, ER, etc., y hacer
las conversiones de unos a otros, la cantidad de
estados tiende a crecer (a veces mucho ms all
del mnimo necesario para el lenguaje que nos
interesa).
Al construir circuitos fsicos que son AFD,
minimizarlos puede abaratar costos y consumos.
Al implementar AFD en cdigo (por ejemplo, para
buscar una ER en un texto), podemos ganar
eficiencia.
119
120
Minimizacin de AFD
Idea: puede haber estados equivalentes
a
q0
q1
b
q2
b
b
q3
q4
a,b
a,b
Minimizacin de AFD
Idea: puede haber estados equivalentes
a
q0
q1
q2
b
b
q3,4
a,b
Minimizacin de AFD
Idea: puede haber estados equivalentes
a
q0
q1,2
b
b
q3,4
a,b
Minimizacin de AFD
No siempre es tan obvio como en el ejemplo previo:
q0
q1
q2
q0,2
q1
124
Minimizacin de AFD
Informalmente: dos estados p y q son equivalentes
(pq) si la decisin del AFD sobre cualquier input
restante es la misma para los dos estados.
O sea: p q ssi w*, (p,w)F (q,w)F
Minimizacin de AFD
a
q0
q1
b
q2
b
b
q3
q4
a,b
a,b
L(M,q0) = b*aa*
L(M,q1) = a*
L(M,q2) = a*
L(M,q3) =
L(M,q4) =
q0 q2
q1 q2
q3 q4
q0
q1
q2
126
Mapa rutero
Minimizacin de AFD
Motivacin va motivos
Motivacin e idea, va ejemplo
Algoritmo
Ejemplo
Demostracin de parte del algoritmo (el marcado)
Demostracin de que el algoritmo da el mnimo
Idea de por qu funciona
Teorema de Myhill-Nerode
Myhill-Nerode unicidad del AFD mnimo
Uso de Myhill-Nerode para demostrar no-regularidad
El problema con AFND
127
Minimizacin de AFD
Decimos que una palabra w distingue dos estados si
w es la culpable de que no sean equivalentes: w se
aceptara a partir de uno, pero no del otro.
a
q0
q1
b
En este caso,
ba distingue q0 de q1
a distingue q0 de q2
a distingue q1 de q2
q2
a,b
128
Minimizacin de AFD
Algoritmo de minimizacin:
Minimizacin de AFD
Para determinar los pares equivalentes, usamos el
siguiente algoritmo de llenado de tabla.
La tabla contiene los pares (p,q), pq. Iremos marcando
los pares distinguibles (no equivalentes).
1. Marcamos todos los pares en los que un estado
es de aceptacin y el otro no.
2. Para todo (p,q) no marcado y para todo , si
( (p, ), (q, ) ) est marcado marcar (p,q).
3. Si en (2) se marc algo, repetir (2).
130
Mapa rutero
Minimizacin de AFD
Motivacin va motivos
Motivacin e idea, va ejemplo
Algoritmo
Ejemplo
Demostracin de parte del algoritmo (el marcado)
Demostracin de que el algoritmo da el mnimo
Idea de por qu funciona
Teorema de Myhill-Nerode
Myhill-Nerode unicidad del AFD mnimo
Uso de Myhill-Nerode para demostrar no-regularidad
El problema con AFND
131
Minimizacin de AFD
Ejemplo:
0
0
q0
0
q1
q0
q00
q01
1
q10
q1
1
0
0
0
q11
q00
q01
q10
q11
Hacemos la tabla.
132
Minimizacin de AFD
Ejemplo:
0
0
q0
0
q1
q0
q00
q01
1
q10
q1
1
0
0
0
q11
q00
q01
q10
q11
x x x x x x
q q0 q1 q00 q01 q10
Minimizacin de AFD
Ejemplo:
0
0
q0
0
q1
q0
q00
q01
1
q10
q1
1
0
0
0
q11
q00
q01
q10
q11
x x
x
x x x x x x
q q0 q1 q00 q01 q10
134
Minimizacin de AFD
Ejemplo:
0
0
q0
0
q1
q0
q00
q01
1
q10
q1
1
0
0
0
q11
q00
q01
x x
q10
x
x
x x x x x x
q11
1
x x
x
Aplicamos de nuevo.
135
Minimizacin de AFD
Ejemplo:
0
0
q0
0
q1
q0
q00
q01
1
q10
q1
1
0
0
0
q11
q00
q01
x x
q10
x
x
x x x x x x
q11
1
x x
x
136
Minimizacin de AFD
Ejemplo:
0
q00
q01
0
q1
q10
q1
1
0
0
0
q11
q00
q01
q10
x
x
x x x x x
q11
1
x
x
Fusiono q0 con q.
137
Minimizacin de AFD
Ejemplo:
0
q01
q1
q10
q1
0
0
q11
q01
q10
q11
x
x
x x
x x x x
q q1 q01 q10
138
Minimizacin de AFD
Ejemplo:
0
q
q01
0
q1
0
q11
1
q1
q01
q11
x
x
x x x
q q1 q01
139
Minimizacin de AFD
Finalmente fusiono q01 con q1
(aunque en el fondo slo tengo que
borrarlo, pues no era alcanzable).
0
q
0
q1
q1
q11
q11
x
x x
q q1
qA
1
0
qB
0
qC
1
140
141
Minimizacin de AFD
El algoritmo marca (p,q) p es distinguible de q
Dem.:
() Induccin sobre los pasos del algoritmo.
Base: Si en el paso 1 marco un par, entonces los distingue.
Paso inductivo: Supongamos que hasta la k-sima iteracin
del paso 2, las marcas son en estados distinguibles.
Si en la (k+1)-sima iteracin del paso 2 marcamos (p,q), es
porque tal que ((p, ), (q, ) ) est marcado. Por hip. de
ind., (p, ) y (q, ) son distinguibles. Sea w que los
distingue. Entonces w distingue p y q.
142
Minimizacin de AFD
El algoritmo marca (p,q) p es distinguible de q
Dem.:
()
p
(p,)
(q,)
143
Minimizacin de AFD
El algoritmo marca (p,q) p es distinguible de q
Dem.:
() Supongamos que existen pares distinguibles, pero no
Minimizacin de AFD
El algoritmo marca (p,q) p es distinguible de q
Dem.:
()
p
w1
(p,w1)
q w1 (q,w )
1
w2w3...wn
w2w3...wn
145
Minimizacin de AFD
Nota: pueden convertirse las clases en estados
directamente (en lugar de
ir fusionando de a pares):
0
0
q0
0
q1
q00
q0
q01
1
q10
q1
1
0
q01
q00
q10
q11
q11
A
x
A
x
A
x
x
A
x
A
x
x
B x
x A x
x x x x
0
qA
1
0
qB
0
qC
1
146
Minimizacin de AFD
No se producen inconsistencias con , pues
pq (p, )(q, )
(de lo contrario, distinguira p y q !)
B
q2
q1
q5
q6
w
147
148
q0
wr
wq
...
...
M (el retador)
q0
wp
wq
150
151
QED
152
154
156
Observacin
Una observacin: las clases de
equivalencia de L (y por lo tanto
tambin las de M) estn contenidas
en L, o bien en LC.
LC
158
159
Myhill-Nerode
Teorema de Myhill-Nerode:
Sea L* un lenguaje y sea u L v definida como antes.
Entonces L es regular ssi L es de ndice finito.
Dem.:
(, La direccin fcil )
L es regular AFD M=(Q, , , q0, F), L=L(M)
el ndice de M es |Q|.
Myhill-Nerode
Teorema de Myhill-Nerode:
Sea L* un lenguaje y sea u L v definida como antes.
Entonces L es regular ssi L es de ndice finito.
Dem.:
() Definimos el AFD M=(Q, , , q0, F) mediante
( [u], ) = [u]
161
Myhill-Nerode
Q = */L, [conjunto de clases de equivalencia de L ]
q0 = [], F = { qQ: qL}, ( [u], ) = [u]
PDQ L(M)=L.
Es decir, que u*, uL(M) [u]L
Myhill-Nerode
Q = */L, [conjunto de clases de equivalencia de L ]
q0 = [], F = { qQ: qL}, ( [u], ) = [u]
PDQ u,v*, ([v],u)=[vu]
Induccin sobre |u| :
|u|=1. Cierto, por definicin de .
Paso inductivo:
|u|>1, u=w para algn , w con |w|<|u|.
([v],u) = ([v],w) = (([v],w),) = ([vw],) = [vw] = [vu]
Definicin
(recursiva) de
Hiptesis de
induccin
Definicin
de
163
QED
Myhill-Nerode
Cul es la intuicin tras Myhill-Nerode?
Recibimos el input: u=vw
Al terminar de verlo, debemos decidir
acaso uL.
Hemos ledo v, falta w.
La relacin L est definida de tal forma que lo nico
que necesitamos saber (para cumplir con la tarea final)
es en cul clase de equivalencia est v.
164
Myhill-Nerode
Cul es la intuicin tras Myhill-Nerode?
La funcin define como voy
actualizando esa informacin con
cada nueva letra que pasa.
0
[v]
[v1]
[v0]
165
166
q
1
0
q1
-1
q11
1
C
168
es un isomorfismo
entre M y M.
q
1
0
q1
-1
q11
1
C
169
170
171
172
Usando Myhill-Nerode
Myhill-Nerode sirve por lo tanto para explicar el
algoritmo de minimizacin y su resultado.
Sin embargo, tambin se puede usar directamente,
como herramienta para demostrar que un cierto
lenguaje es regular (o que no lo es).
Hasta ahora la nica herramienta para mostrar noregularidad era el lema de bombeo; a veces (aunque
son las menos) es Myhill-Nerode el que saca de
apuros.
173
El ndice de L es finito
L es regular.
175
Usando Myhill-Nerode
Ntese que:
Si queremos probar que L no es regular, basta
mostrar infinitas clases de equivalencia. No necesitan
recubrir todo *, pero s necesitan ser distintas
entre s.
Si queremos probar que L s es regular, hay que
mostrar una cantidad finita de clases de equivalencia
que recubran *. No necesitan ser distintas entre s.
176
177
[ Minimizacin de AFND ? ]
El algoritmo de minimizacin es para AFD.
D
Para ellos funciona, y para ellos es cierto que para
un mismo lenguaje, el AFD mnimo es siempre el
mismo.
Para AFND[+] eso no es cierto.
0,1
0,1
0
0,1
0
0,1
1
0
[ Minimizacin de AFND ? ]
Tambin puede pasar esto: todos
los estados son distinguibles, pero
el AFND no es mnimo: eliminando
el estado C, el AFND que queda
acepta el mismo lenguaje.
Algoritmo para minimizar AFND no veremos. Es tema
peludo (y sin solucin corta; sigue siendo investigado).
Autmatas Finitos
1. Motivacin
9. Complementos
180
Alternativa 2:
construimos el AFD. Sea n =|Q|
probar todas las palabras de largo n
L= ssi ninguna de esas se acepta
[Razn de eso? Lema de bombeo!]
182
Alternativa 1:
construimos un AFD para L
Alternativa 2:
construimos el AFD. Sea n =|Q|
A\B
AB
Problemas decidibles
Las preguntas previas tienen algo en comn: todas
piden una respuesta del tipo s/no.
Se habla de problemas de decisin.
Si existe un algoritmo para resolver un problema
de decisin, decimos que el problema es decidible.
Por lo tanto decimos que los problemas anteriores
son decidibles para lenguajes regulares.
Ms adelante veremos que, para otras clases de
lenguajes, pueden ser indecidibles.
187
Autmatas Finitos
1. Motivacin
9. Complementos
188
Complementos
Autmatas traductores
Bsquedas en texto
Parseo con ER
189
input
MEF
output
estado actual
190
Autmatas traductores
Los dos sabores ms conocidos son las mquinas de
Moore y las mquinas de Mealy. La diferencia:
Moore escribe cuando pasa por un
estado (asocia letras a los nodos
del grafo de transicin).
q0
00/b
11/a
q1
1
1/b
0/a,1/b
0,1
00/c
q2
a q0
a q1
1
0,1
b q2
Autmatas traductores
Un ejemplo de Mealy:
q0
00/b
11/a
00101001
bbaabacb
input
output
q1
1
1/b
0/a,1/b
0,1
00/c
q2
192
Autmatas traductores
Cada mquina de Moore (o de Mealy) define una
funcin * ' *.
193
Autmatas traductores
Tambin es posible extender como en los GTG que
vimos, de modo que al ver una ER r1 escribamos algo
segn una ER r2.
Lo escribimos r1:r2, y en general ser no-determinista.
ab:a
a*:b
194
Autmatas traductores
195
Bsqueda en texto
Un ejemplo de AFD para bsqueda de una palabra
especfica: ver cuando ocurre la palabra ccacct
en un texto laaaaargo escrito en alfabeto {a,c,g,t}.
Idea nave: para cada posicin del texto, hacer la
comparacin de las 6 letras siguientes con las de la
palabra. Pero no es lo ms eficiente!
196
Aplicaciones?
ccacct, ={a,c,g,t}
c
0
a
a
Todas las
transiciones no
mostradas van al
estado 0.
Anlisis lxico
Un uso de ER es para separar un texto en sus
"tomos" sintcticos, que luego se procesarn de
alguna forma.
198
Anlisis lxico
T o t a l
Total
= p r e c i o + i v a ;
precio
iva
asignacin
Total
Analizador
lxico
Parser
Expresin
:=
id
precio
id
iva
199
200
Parseo?
T o t a l
Total
= p r e c i o + i v a ;
precio
iva
asignacin
Total
Analizador
lxico
Parser
Expresin
:=
id
precio
id
iva