Vous êtes sur la page 1sur 201

Autmatas Finitos

Autmatas Finitos
1. Motivacin

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

9. Complementos
2

Mquinas: simplifiquemos
input

Computador
MEF

output

Volvamos al modelo conceptual de


una mquina que procesa
informacin.
La mquina estar siempre en algn
estado.
La cantidad de estados posibles es
finita.
"mquina de estados finitos"
3

Mquinas: simplifiquemos
input

MEF

output

Veremos que la finitud limita


fuertemente lo computable.
Si bien todo computador es
finito, su cantidad de estados
posibles es enorme.

Por eso ms adelante


consideraremos esquemas que
combinan MEF con una memoria
ilimitada.

Mquinas: simplifiquemos
input

MEF

Por simplicidad, por ahora


(hasta que lleguemos a mquinas
de Turing) no habr output.

Nos centraremos en el cmputo


[aparentemente] ms simple, en
que la MEF slo debe contestar
"S" o "No".

output

Mquinas: simplifiquemos
input

MEF
estado actual

Es ms: no le pediremos que nos


diga la respuesta, sino que la
deduciremos de su estado final.
Por lo tanto, iremos mirando en
qu estado est la MEF.

Por lo general le llamaremos Q


al conjunto (finito) de posibles
estados.

Algunos estados sern de aceptacin ("S!"), y


al resto los consideraremos de rechazo ("Nop").
6

Mquinas: simplifiquemos
*
w1winput
2w3...wn

El input ser una seal digital.


MEF
estado actual

O sea, ser una secuencia de


smbolos.

O sea, ser una palabra, en


algn alfabeto .

Mquinas: simplifiquemos
w1w2w3...wn *

MEF
estado actual

Leemos un slo smbolo a la vez.


Segn el estado en que la
mquina haya estado, y el
smbolo que lea, pasar a un
nuevo estado.
Esa transicin ser entonces una
funcin
:QQ
8

Mquinas con input


-Input con alfabeto ={1}
1: aprieto el interruptor
-Estados de la MEF:
ON (circuito cerrado)
OFF (circuito abierto)
Transiciones:
(ON,1)=OFF
(OFF,1)=ON

1
ON

OFF

1
grafo de transiciones

Mquinas con input


1

-Input con alfabeto ={1,2}


1: aprieto el interruptor 1
2: aprieto el interruptor 2
-Estados de la MEF ?

Podemos usar Q={AA,AC,CA,CC},


donde cada carcter representa
el estado de un interruptor.
Slo en el estado CC la ampolleta
est ON.

1
AA
00
q0
2

1
2

AC
01
q1

CA
10
q2
2

1
1

2
CC
11
q3
10

Mquinas con input

Lenguaje aceptado:

Estado inicial,
ser uno solo

L = { w*: w contiene cantidades


impares de 1 y de 2}

1
q0
2

1
2

q1

q2
2

1
1

2
q3

Estados de aceptacin (los que


encienden la ampolleta):
Los marcamos con un doble crculo.
11
Podra haber ms de uno.

Autmatas Finitos
1. Motivacin

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

9. Complementos
12

AFD: Autmatas finitos deterministas


Un AFD est definido por:
Q={q0,..., qn}

:QQ

conjunto finito de estados internos

alfabeto de entrada
funcin de transicin de estados

q0 Q

estado inicial

FQ

estados de aceptacin
13

AFD: Autmatas finitos deterministas


AFD:
M = (Q, , , q0, F)

Dibujamos su grafo de transiciones:


Un nodo por cada estado
Marcamos el estado inicial con un > o una flecha

Doble crculo para los estados de F


Si (qi, )=qj , ponemos arco de qi a qj,
etiquetado con .
14

AFD, grafo de transiciones


Ejemplo:

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

AFD, grafo de transiciones


Ejemplo:

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

AFD, grafo de transiciones


Ejemplo:

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

AFD, grafo de transiciones


Ejemplo:

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

AFD, grafo de transiciones


Ejemplo:

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

AFD, grafo de transiciones


Ejemplo:

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

AFD, grafo de transiciones


Otro ejemplo:

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

AFD: Configuracin en un momento dado


Configuracin del AFD en instante dado:
estado interno + string que queda por leer
(qQ)
(w*)

(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

AFD: Configuracin en un momento dado


0

q0

q1

0,1

q2

(q0, 0010011)
(q0, 010011)
(q0, 10011)
(q1, 0011)
(q2, 011)
(q2, 11)
(q2, 1)
(q2, )
23

AFD: Autmatas finitos deterministas


0

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

por lo tanto no necesitamos distinguirla


escribiremos para ambas.
27

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

L= {w{0,1}*: w no incluye 10}


ER?
0*1*
29

AFD y lenguajes
Y este, con ={1}?
1
q1

q0

L= {w{1}*: |w| es impar}


ER?
1(11)*

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

Aplicaciones para jugar con AFD


JFLAP:

http://www.cs.duke.edu/csed/jflap/

Soporta todos los tipos de mquinas que veremos


Generaciones anteriores lo han preferido
Se los dej en moodle (es un .jar ejecutable)
Alternativa, al parecer ms limitada:
http://www.cs.usfca.edu/~jbovet/vas.html

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:

Necesito saber cuantas a he ledo.


Esa cantidad puede ser arbitrariamente grande.
No puedo distinguir entre un conjunto
arbitrariamente grande de opciones, si tengo un
conjunto finito de estados.
36

AFD y lenguajes
0
q0

1
0

q1

q2

Podemos pensar en un AFD:

Como la formalizacin de una mquina (MEF)


Como un programa
Como la descripcin de un lenguaje
37

AFD y lenguajes
0
q0

1
0

q1

q2

Si es como descripcin de lenguaje, podemos verlo como


reconocedor del lenguaje, o como generador.
Generador?
Hacemos un paseo cualquiera por el grafo:
Partimos de q0.
Nos detenemos en algn estado de aceptacin.
Output : la secuencia de letras de los arcos usados.
38
El conjunto de posibles outputs corresponde a L(M).

AFD y lenguajes
0
1
0

q0

q1

q2

Si lo vemos as, no es problema pensar en caminos que se


bifurquen. Por ejemplo,
0

0
q0

1
0

q1

q2

A eso se le llama AF no determinista.


39

Autmatas Finitos
1. Motivacin

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

9. Complementos
40

AFND: Autmatas finitos no deterministas


Veamos un ejemplo ms de AFD. Con ={0,1}, queremos
que acepte el lenguaje de los strings que terminan en 101.
Bosquejo (incompleto) de
la solucin:

0
q1

q00

q01

q10
q11

q000
1
q001

q0

q101

q111

41

AFND: Autmatas finitos no deterministas


Sera ms cmodo poder adivinar en que momento faltan
slo tres letras, y en ese momento comparar con 101.

0,1

q0

q1

q2

q3

Si en q0 leemos un 1, tenemos dos posibles opciones.


Si adivinamos que estamos a tres letras del final,
entonces escojo irme hacia q1.
42

AFND: Autmatas finitos no deterministas

0,1

q0

q1

q2

q3

Adems, hay transiciones no definidas, como (q1,1).


En ese caso el autmata se cae.
43

AFND: Autmatas finitos no deterministas

0,1

q0

q1

q2

q3

Es ms fcil verlo como generador: su lenguaje son las


palabras que podemos obtener al recorrerlo y terminar
en q3.
44

AFND: Autmatas finitos no deterministas


Un AFND admite bifurcaciones en el comportamiento
del autmata, y transiciones indefinidas.
Podemos interpretar el no determinismo

como que existe un orculo que permite adivinar el


camino correcto
o bien
como que exploramos todas las opciones.
Diremos que el AFND acepta una palabra si existe algn
camino posible que permite leer esa palabra y llegar a un
estado de aceptacin.
45

AFND: Autmatas finitos no deterministas


ya no es funcin
:QQ
(pues desde un mismo q, leyendo un mismo , podemos pasar a ms
de un estado, o a ninguno)

ahora ser una funcin


:QP (Q)
donde P (Q) son las partes de Q, de modo que (q,)
entrega un subconjunto de Q.
En particular, las transiciones indefinidas valen (q,)=.
46

AFND: Autmatas finitos no deterministas


Otro ejemplo: reconocer los strings que incluyen 010 en
alguna parte.

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.

AFND: Autmatas finitos no deterministas


Otro ejemplo: reconocer los strings que incluyen 010 en
alguna parte.

0,1
q0

0,1
0

q1

q2

q3

Ejercicio: hacer lo mismo con un AFD (tambin se


puede), y hacerlo tambin para strings que incluyan 111,
101, 110, respectivamente. Vern que los AFND son
iguales, pero los AFD son ms variados (y menos obvios).
48

AFD, AFND
En AFD, p = (q,)

del estado q, leyendo , se


pasa al estado p

En AFND, p (q,)

del estado q, leyendo , se


puede pasar al estado p

q0

0,1

1
q2
0
q3

Insistamos: en ambos casos


se puede interpretar el AF
como un descriptor de
posibles paseos, cada cual
con una palabra asociada.

0,1
49

AFND: Autmatas finitos no deterministas


Nuevamente podemos extender para que lea ms de
una letra a la vez.
(q,)={q}
(q,w)= { p : r(q,w) tal que p(r,) } =

( r , )
r (q,w)

(q,w) es entonces el conjunto de estados a los que


puedo llegar a partir del estado q, leyendo en el camino
la palabra w desde el input.
Nuevamente resulta ser una generalizacin de , de
modo que el apstrofe no es necesario.
50

AFND: Autmatas finitos no deterministas


(q,)={q}
(q,w)= { p : r(q,w) tal que p(r,) } =

( 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

AFND: Autmatas finitos no deterministas


El lenguaje del AFND ser

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

AFND: Autmatas finitos no deterministas


a,b

Y este, con
= {a,b} ?

q0 a

q4

0,1
1
q0

q1

q2

q1 b

q3

q5

0,1
q3

q2

Y aqu, con = {0,1} ?

Ms ejercicio: ver qu pasa si cambiamos a:


(1) (q3,0) = , (q3,1) =
(2) (q3,0) = , (q3,1) = q5
53

AFND: Autmatas finitos no deterministas


Construir un AFND que acepte palabras que contienen
dos pares de 0s adyacentes, separados por una
cantidad par de 1s: 01001100001 est, 1100111100
tambin, pero 0101001110010 no.
0,1

0,1

54

AFND: Autmatas finitos no deterministas


Dijimos:

L* es regular si existe un AFD que lo reconoce.


AFD son un caso particular de AFND.
Para todo lenguaje regular hay un AFND que lo reconoce.
Qu pasar en la direccin contraria?
Existirn lenguajes que puedan ser reconocidos por un
AFND, pero no por un AFD?

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

Veamos los posibles recorridos al leer la palabra 0101:

(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

Veamos los posibles recorridos al leer la palabra 0101:

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

Veamos los posibles recorridos al leer la palabra 0101:


q0

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

los estados son los conjuntos de estados de M


la funcin de transicin de M, M, une los
resultados de la funcin transicin de M, M

un estado de M ser de aceptacin si incluye


algn estado de aceptacin de M

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

Ser cierto que L(M)=L(M)?


62

AFND AFD
L(M) = { w: (q0, w) F }

Definicin de F

L(M) = { w: ( q0, w) F } = { w: ( q0, w) F }


Demostremos por induccin que ( q0, w) = (q0,w)
BASE: Si |w|=0, w=. (q0, ) = {q0} = (q0, )

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:

Teorema: la clase de lenguajes reconocidos por


AFND es la misma que la clase de lenguajes
reconocidos por AFD (y se llaman lenguajes
regulares).
Los AFND son capaces de hacer exactamente
lo mismo que los AFD, a pesar de su poder de
adivinacin.
Sirven, entre otras cosas, para construir AF
ms rpido.
64

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

{q0, q1, q2}

0
1

{q2}

{q1, q2}

slo esa parte es


relevante (el resto
65
no es accesible!)

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.

Feo, pero ntese


que slo usa 14 de
los 64 subconjuntos
de 2Q.
66

AFND+
Antes habamos definido (al extender ) que en un
AFND,
(q,) = {q}

En un AFND+, ese lado derecho puede incluir otros


estados. Por lo tanto, se define como una funcin
:Q({})2Q
La idea es que son transiciones
gratis, que permiten pasar
de un estado a otro sin leer
ningn input.

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

Derecha: palabras que slo


usan dos de las 3 letras
disponibles.

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,) }

Ntese que slo los AQ que sean cerrados para (es


decir, A=A) sern accesibles.
71

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

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

9. Complementos
74

Propiedades de clausura
Dado cualquier AF, siempre es posible construir
un AFND+ equivalente tal que:
Haya slo un estado de aceptacin.

No haya flechas que salgan de l.


No haya flechas que entren al estado inicial.

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

Corolario: La unin de una cantidad finita de lenguajes


regulares es tambin un lenguaje regular.
Corolario2: Todo lenguaje finito es regular.

77

Propiedades de clausura
L1L2 tambin es un lenguaje regular.
Demostracin:

M1

M2

Corolario: L1n (n concatenaciones) es tambin un


lenguaje regular.

78

Propiedades de clausura
L1+ tambin es un lenguaje regular:

L1* tambin es un lenguaje regular.

Demostracin 1:

Demostracin 2: L1* = L1+ {}


reg.

reg.
reg.

79

Propiedades de clausura
L1C es regular.
Demostracin:
Sea M = (Q, , , q0, F) un
AFD que reconoce a L1

Definimos M = (Q, , , q0, F),


con F=Q\F.
L(M)=L1C

80

Propiedades de clausura
L1 L2 es regular:
Demostracin 1: Ley de Morgan + resultados previos.
Demostracin 2:

Sean M1 = (Q1, , 1, q0,1, F1) y M2 = (Q2, , 2, q0,2, F2) dos


AFD que reconocen L1 y L2 respectivamente. Definimos
M=(Q, , , q0, F) con
Q = Q1Q2
q0 = (q0,1,q0,2)
F= F1F2
((q1,q2),) = (1(q1,), 2(q2,))

Idea: al leer w con M,


estaremos leyendo w con
M1 y M2 simultneamente;
la aceptamos slo si
ambos la aceptan (a la
vez).
81

Una propiedad de "no clausura"


Sean L1, L2, ... una sucesin infinita de lenguajes
regulares. Entonces

no necesariamente es regular.

n 1

Demostracin:
Sea L* cualquiera.
Definamos Ln = L n
Cada Ln es finito cada Ln es regular.

Si L

fuera siempre regular, entonces todos los

n 1

lenguajes seran regulares!


82

Ejercicios
Sean L1 y L2 regulares. Demuestre que L1\L2 [resta
de conjuntos] es regular.

Sea L regular. Demuestre que LR es regular.

Hint: en un caso conviene usar propiedades de clausura ya vistas;


en el otro conviene modificar el autmata.

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*

Demuestre que h() = .


Demuestre que h queda determinada de manera nica
por sus valores sobre 1.
Sea L regular, y sea h un homomorfismo. Demuestre
que h(L)={h(w): wL} es regular.
85

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.

h(L) = palabras del tipo abab...ab, con al menos un ab.

86

Autmatas Finitos
1. Motivacin

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

9. Complementos
87

Expresin regular lenguaje regular


Toda ER describe un lenguaje regular:

Hay AF para las ER primitivas: , , y todo .


Vimos que unin, concatenacin y estrella de Kleene
de lenguajes regulares son regulares.
Por lo tanto, si r1 y r2 describen lenguajes
regulares, tambin lo hacen (r1), r1*, r1+r2, r1r2
Por induccin estructural, toda ER lo hace.
Es fcil construir un AF para una ER dada, usando las
construcciones de clausura:
88

Expresin regular lenguaje regular


(10)*(0+)
1:

0:

10:

(10)*:

(10)*:

(10)*(0+):

0+:

89

Expresin regular lenguaje regular


(10)*(0+):
1

Esto no es ptimo; la gracia es que es mecnico.


Ciertamente, se podra achicar.
De hecho,

reconoce lo mismo.

90

Lenguaje regular expresin regular


Por otro lado, dado un lenguaje regular, siempre
existe una ER que lo describe.
Para demostrarlo, tenemos que hacer el camino
AFER.

Demostraremos algo ms fuerte: que para todo


Generalized Transition Graph (GTG), existe una ER
equivalente.

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

Lenguaje regular expresin regular

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

Lenguaje regular expresin regular


Cuando slo queden
los extremos, la
etiqueta del arco
sobreviviente es la
ER que andbamos
buscando.

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

[Nota: en algunos textos...]

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

Lenguaje regular expresin regular


Los mgicos pasos intermedios.
Si llega a haber ms de un arco entre dos nodos, los
juntamos en uno:

96

Lenguaje regular expresin regular


Arcos continuados: concatenacin

97

Lenguaje regular expresin regular


Si haba loop, estrella de Kleene

98

Lenguaje regular expresin regular


Una entrada y dos salidas
dos arcos

99

Lenguaje regular expresin regular


En general:
n arcos de entrada
m arcos de salida
nm arcos
Entran

r2 desde 1
r6 desde 3

Loop
r4

Salen

r3 hacia 1
r5 hacia 3

100

Lenguaje regular expresin regular


Hemos demostrado:
Las ER describen exactamente el mismo tipo de
lenguajes que los AF. Es decir, los lenguajes regulares.
A veces es ms fcil trabajar con ER, a veces con AF.
Preferible ER, p.ej., para un usuario que describe
lo que quiere buscar en un archivo de texto.
Preferible AFD, p.ej., para el programa que
efectivamente debe revisar ese archivo.
101

Ejemplo: complemento de una ER


O bien, otro ejemplo: dada una ER, cmo encontrar
una ER que represente su complemento?
1.
2.
3.
4.

Creamos un AFND+ equivalente a la ER


Lo convertimos en un AFD
Invertimos los estados de aceptacin
Convertimos el AFD en una ER

Hagmoslo para la ER aa, para el alfabeto {a,b}.


Creamos un AFND+ equivalente a la ER
102

Ejemplo: complemento de una ER

Lo convertimos en un AFD
Es fcil hacerlo a dedo, sin pasar por 2Q:

103

Ejemplo: complemento de una ER


Invertimos los estados de aceptacin

Convertimos el AFD
en una ER:

104

Ejemplo: complemento de una ER

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.

Veremos un algoritmo para minimizar AFD


106

Autmatas Finitos
1. Motivacin

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

9. Complementos
107

Revisitemos { anbn : n > 0 }


Dijimos (sin demostrar formalmente) que {anbn : n>0 }
no es regular. Demos otro argumento.
Si fuera regular, habra un AFD M con L(M)=L :
M

Sea N la cantidad de estados de M.


aNbN est en el lenguaje, as que se acepta.
108

Lema del bombeo


Antes de terminar de leer las a, algn estado de
M se tiene que repetir (porque slo hay N estados
distintos!).
a
a

M
a
a k bN

Por lo tanto, existe un loop.


Pero entonces una palabra que repita ese loop varias veces
tambin se aceptara... Pero tendr ms as que bs !!!
109

Lema del bombeo [para lenguajes regulares]


Lema del bombeo para lenguajes regulares:
Sea L un lenguaje regular. Entonces existe N>0 tal
que cualquier w con |w|N se puede descomponer
como w=xyz, de forma que:
|y| 1
|xy| N
xykz L k0

Demostracin:

110

QED

Lema del bombeo


Escrito de manera compacta: si L es regular, entonces:
N>0 tal que w, |w|N,
x,y,z, w=xyz, con |y|1, |xy|N, tal que
k0, xykz L

Para probar que L no es regular, hay que mostrar que:


N>0 w, |w|N,
desglose w=xyz con |y|1 y |xy|N,
k0 tal que xykzL.

considerar cualquier caso


podemos elegir

111

Lema del bombeo


Es til verlo como una competencia, entre nosotros y
un adversario :
L no es regular!

S, s es regular. Tengo un AFD.

En serio? De cuntos estados?


Ya poh. Aqu tienes wL, |w|N. Tu AFD
necesita un loop. Dnde lo hace?

N
Aqu en el y...
queda w=xyz

Ja! Pero si le damos 3 vueltas al loop con xyyyz,


tu AFD acepta, pero eso no est en L. Toma!
...#@?!

112

Lema del bombeo


La gracia de pensarlo as es recordar que podemos elegir
el w (pero debe ser con |w|N para cualquier N).
Y lo escogemos estratgicamente, pensando en despus
poder escoger un k que haga que xykz se salga de L...
para cualquier desglose w=xyz (con |y|1, |xy|N).

Al N se le llama la constante del lema de bombeo o la


longitud de bombeo.
Por qu bombeo?

La idea es que inflamos la parte del


loop hasta reventar el string.
113

Lema del bombeo


Ataquemos {anbn:n>0}. Sea N la constante del bombeo.
Tomamos w=aNbN.
Sea xyz cualquier desglose de w (con |xy|N, |y|1).

Necesariamente, tanto x como y estn dentro de aN.


x=ap, y=aq (con p0, q1).
z= aN-p-qbN.
El teorema dice entonces que

xykz = apaqkaN-p-qbN = aN+q(k-1)bN L para todo k0,


pero eso requerira que N+q(k-1)=N para todo k, y nop.
{anbn:n>0} no puede ser regular.

114

Lema del bombeo


Ejercicios:
={0,1}, L={ uu: u *}. Hint: tomar w=0N10N1
={0,1}, L={ uuR: u *}. Hint: w=0N12N0N
={0,1}, L={ u: u tiene la misma cantidad de 0 y 1}
={a,b,c}, L={ u: |u| es un cuadrado perfecto}
={0}, L={ u: |u| es primo}
Recordar que si no les resulta ganarle al adversario, no
implica que L sea regular... Puede significar simplemente
que escogieron mal el w o el k.
Del mismo modo, fracasar al construir un AFD o ER no
implica que L no sea regular!
115

Lema del bombeo


Es til recordar la parte del k0. Veamos otro
ejemplo: ={0,1}, L={ u: u tiene ms 0s que 1s}
Sea N la constante de bombeo, y tomemos w=0N1N-1.

Nuevamente, al hacer w=xyz necesariamente x e y son


slo 0s: x=0p y=0q z=0N-p-q1N-1
Si bombeamos el y con cualquier k>0, no se sale de L.
Pero si usamos k=0 (no dar ninguna vuelta al loop!),
entonces obtenemos
xy0z = xz = 0p0N-p-q1N-1 = 0N-q1N-1

Como q1, N-q N-1 xy0z L.


116

Lema del bombeo


Finalmente, a la hora de demostrar que un lenguaje no es
regular tambin sirve recordar las propiedades de
clausura.
Ejemplo: L={ u: u tiene cantidad distinta de 0s y 1s}
Si uno ya hizo el ejercicio de dos transparencias atrs,
entonces ya sabe que LC no es regular.
L no puede serlo, pues si lo fuera, su complemento
tambin debera serlo.

117

Autmatas Finitos
1. Motivacin

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

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

Mapa rutero dentro del punto 7


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

120

Minimizacin de AFD
Idea: puede haber estados equivalentes
a

q0

q1
b

q2
b

b
q3

q4

a,b

a,b

En este caso q3 y q4 son basureros: el AFD


rechazar, sea lo que sea lo que venga despus.
Son equivalentes, y los podemos combinar.
121

Minimizacin de AFD
Idea: puede haber estados equivalentes
a

q0

q1

q2
b

b
q3,4

a,b

Tanto a partir de q1 como q2 el AFD aceptar ssi el


resto del string consiste slo en as.
Son equivalentes, y los podemos combinar.
122

Minimizacin de AFD
Idea: puede haber estados equivalentes
a

q0

q1,2

b
b
q3,4

a,b

Ya no quedan estado equivalentes: para cualquier


par de estados, hay alguna continuacin del string
que puede llevarme a aceptar desde un estado,
rechazar desde otro.
123

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

Otra forma de decir lo mismo:


Definamos L(M,q) como el lenguaje aceptado por
M, si imponemos que q sea el estado de inicio.

Entonces p q ssi L(M,p)=L(M,q)


125

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) =

L(M,q0) = cantidad impar de 0s


L(M,q1) = cantidad par de 0s
L(M,q2) = cantidad impar de 0s

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:

1) Eliminar todos los estados no alcanzables desde q0.


2) Determinar los pares de estados equivalentes.
3) Mientras quede un par pq, redirigir hacia p todos
los arcos que llegaban a q, y luego eliminar q.
Teorema (demostracin:pronto)
Sea L un lenguaje regular. Si aplicamos el
algoritmo anterior a un AFD que reconoce L,
obtenemos un AFD que reconoce L y tiene la
menor cantidad posible de estados.
129

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

q q0 q1 q00 q01 q10

AFD que reconoce las palabras terminadas en 11.


Ser el ms chico posible?

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

Marcamos los pares en los que un estado est en F y


el otro no.

Motivo: los distingue la palabra .


133

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

(p,q) no marcado, y , si ((p, ), (q, ) ) est


marcado marcar (p,q).

Motivo: alguna palabra w distingua a (p, ) y (q,


). Por lo tanto, w distingue a p y q.

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

q q0 q1 q00 q01 q10

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

q q0 q1 q00 q01 q10

Ya no queda nada ms que marcar: (p,q) no


marcado, y , ((p, ), (q, ) ) est no marcado.

Todos los pares no marcados son equivalentes;


podemos empezar a minimizar.

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

q q1 q00 q01 q10

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

Fusiono q00 con q.

138

Minimizacin de AFD
Ejemplo:
0
q

q01

0
q1

0
q11
1

q1

q01
q11

x
x
x x x
q q1 q01

Fusiono q10 con q.

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

Mapa rutero dentro del punto 7


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

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

marcados por el algoritmo, y sea W={w:w distingue alguno par


no marcado}. Escojamos en W una palabra w de largo mnimo,
y sean p y q los estados que distingue. Ntese que |w|>0.

Escribamos w= w1w2...wn. La palabra w2...wn distingue (p, w1) de


(q, w1), pues de lo contrario w no distinguira p de q.
Si ((p, w1),(q, w1)) no est marcado, entonces w no era
de largo mnimo
Si ((p, w1),(q, w1)) est marcado, entonces el algoritmo
marc (p,q)
144

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

q q0 q1 q00 q01 q10

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

Mapa rutero dentro del punto 7


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

148

Minimizacin de AFD: da mnimo


Demostremos que el AFD minimizado (producto del
algoritmo) tiene la cantidad mnima posible de estados.
Sea M=(Q, , , q0, F) el AFD minimizado, y
supongamos que existe M=(Q, , , q0, F) con menos
estados, que reconoce el mismo lenguaje.

Para cada estado p de M, sea wp una palabra tal que


(q0 , wp)=p. Esas palabras existen, pues todos los
estados de M son alcanzables.
Como M tiene menos estados que M
p,q tales que (q0 , wp)=(q0 , wq).
149

Minimizacin de AFD: da mnimo


M (el AFD minimizado)
wp

q0
wr

wq

...
...

M (el retador)

q0

wp
wq

150

Minimizacin de AFD: da mnimo


Como p y q son estados de M, son distinguibles (de lo
contrario, el algoritmo los habra fundido),
u, tal que de (p, u) y (q, u) uno y slo uno F
de ((q0 , wp), u) y ((q0 , wq), u) uno y slo uno F
de (q0 , wpu) y (q0 , wqu) uno y slo uno F
de wpu y wqu, uno y slo uno L(M).
Pero en M, (q0 , wp)=(q0 , wq)
(q0 , wpu)=(q0 , wqu)
wpu y wqu, o estn ambas en L(M), o ninguna.
L(M) L(M)

151

QED

Mapa rutero dentro del punto 7


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

152

Minimizacin de AFD: por qu funciona?


Para entender mejor lo que est pasando, tomemos
un AFD cualquiera M =(Q, , , q0, F) con lenguaje L.
Dadas u,v*, diremos que w* las distingue
respecto a L si en {uw,vw} una est en L y la otra no.
Definamos dos relaciones entre palabras de *:
u M v (q0,u)= (q0,v)

u L v no existe w que distinga u


de v respecto a L
Ejercicio: mostrar que son relaciones de equivalencia.
153

Minimizacin de AFD: por qu funciona?


u M v (q0,u)= (q0,v)
u L v no existe w que las distinga respecto a L
Es fcil ver que u M v u L v
En efecto, sea w una palabra cualquiera. Tenemos
u M v (q0,u)= (q0,v) (q0,uw)= (q0,vw)

De modo que uw y vw, o bien estn ambas en L, o


ninguna lo est.
w no distingue u de v respecto a L.

154

Minimizacin de AFD: por qu funciona?


u M v (q0,u)= (q0,v)
u L v no existe w que las distinga respecto a L
La particin que M induce en * es un refinamiento
de la particin que induce L.
Cada clase de equivalencia de M
est contenida en alguna clase de
equivalencia de L.

Cada clase de equivalencia de L es


la unin de una o ms clases de
equivalencia de M.
155

Minimizacin de AFD: por qu funciona?


u M v (q0,u)= (q0,v)
u L v no existe w que las distinga respecto a L
Cada clase de equivalencia de M corresponde a un
estado de M.
Si una clase de L contiene dos
clases de M , entonces los estados
correspondientes en M son
equivalentes para el algoritmo de
minimizacin.

156

Minimizacin de AFD: por qu funciona?


u M v (q0,u)= (q0,v)
u L v no existe w que las distinga respecto a L
Lo que hace el algoritmo es fundir estados para ir
uniendo esas clases, hasta que quedan las de L.

La particin del AFD minimizado es la misma de L...


que no depende del AFD de partida, sino slo de L.
157

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

Estamos listos para...

158

Mapa rutero dentro del punto 7


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

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|.

Como cada clase de equivalencia de L est formada por


una o ms clases de equivalencia de M, el ndice de L
debe ser |Q| o menor.
160

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

Q = */L, [el conjunto de clases de equivalencia de L ]


q0 = []
F = { qQ: qL}

( [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

Pero uL(M) (q0,u)F ([],u)L


as que estamos listos si demostramos que ([],u)=[u].
Demostraremos, ms en general, que
u,v*, ([v],u)=[vu]
162

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]

Myhill-Nerode lo que me dice es que


un lenguaje es regular ssi eso que
tengo que saber, momento a momento,
cabe en una memoria finita.

165

Mapa rutero dentro del punto 7


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

166

La unicidad del AFD mnimo.


Teorema de minimizacin:
Sea L un lenguaje regular. Entonces dentro de los AFD que
reconocen a L, existe un nico AFD que tiene la cantidad mnima
de estados, y es el que se obtiene a partir de cualquier otro
mediante la aplicacin del algoritmo de minimizacin.

Falta demostrar la parte en itlica : que siempre


llegamos al mismo AFD.
No lo haremos, slo daremos la idea de por qu.
Los detalles tcnicos ejercicio.
167

La unicidad del AFD mnimo.


Supongamos que partimos de dos AFD distintos,
ambos con el mismo lenguaje, y llegamos a dos AFD
minimales M y M.
Qu significa que sean el mismo?
Significa que salvo cambio de nombre, los estados
son los mismos. Llamemos al cambio de nombre.
0

q
1

0
q1

-1

q11
1

C
168

La unicidad del AFD mnimo.


Dados dos AFD M=(Q, , , q0, F) y M=(Q, , , q0,
F), son el mismo ssi existe :QQ biyectiva tal que
(q0) = q0
(F) = F
((q,)) = ((q),)

es un isomorfismo
entre M y M.

En el ejemplo de abajo, (q)=A, (q11)=B, (q1)=C.


0

q
1

0
q1

-1

q11
1

C
169

La unicidad del AFD mnimo.


Ser isomorfos (ser el mismo) es claramente una
relacin de equivalencia entre AFD.
Para demostrar la unicidad del AFD mnimo, se
demuestra que es isomorfo al AFD de Myhill-Nerode:
Sea M1 un AFD minimizado, y para cada estado p de M1,
sea wp una palabra tal que (q0,wp)=p. Sea M2 el AFD
entregado por Myhill-Nerode para L(M1).
Entonces (p)=[wp] es un isomorfismo entre M1 y M2.
ejercicio
Corolario: el AFD de Myhill-Nerode es mnimo.

170

La unicidad del AFD mnimo.


La unicidad del AFD mnimo nos da un par de
razones extra para querer minimizarlos:

Minimizando dos AFD podemos saber si su


lenguaje es el mismo.
Nos da una nocin, comparable, de complejidad
de lenguajes regulares (comparo el tamao de los
AFD minimales respectivos).

171

Mapa rutero dentro del punto 7


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

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

Usando Myhill-Nerode para no regularidad


El clsico no regular: L={anbn:n>0}.
Consideremos las palabras:
a
a2 = aa
a3 = aaa
a4 = aaaa
...

Dadas dos aj y ak, con jk, entonces bk (y tambin bj) las


distingue: ajbkL, akbkL.
Ergo, las clases [a], [aa], [aaa], ... son distintas.

El ndice de L no es finito (hay clases de equiv.)


L no es regular.
174

Usando Myhill-Nerode para regularidad


Probemos que { w{a,b}*: |w|a100 } s es regular.
Consideremos las clases [ak] para k=0,...,101.
Afirmacin: toda palabra w{a,b}* pertenece a alguna de
estas clases.
En efecto: si |w|a = n, entonces su clase ser
[an] si n 100
[a101] si n 100
Ergo, hay a lo ms 102 clases de equivalencia.

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

Mapa rutero dentro del punto 7


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

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

Por ejemplo, estos tres AFND aceptan el mismo lenguaje,


y claramente son mnimos (no se puede con 1 solo estado!).
178

[ 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).

Por suerte la minimizacin de AF, cuando interesa,


interesa con AFD (casi siempre): los circuitos fsicos
que queramos construir, o el software que queramos
correr, no son adivinos.
179

Autmatas Finitos
1. Motivacin

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

9. Complementos
180

Problemas de decisin para LR


Sea L un lenguaje regular descrito de alguna manera
formal (AFD, AFND+, ER).
Hay varias preguntas tpicas, que quisiramos poder
contestar.

Dada una palabra w, wL?

Respuesta: construimos el AFD para L, y


vemos si acepta w.
181

Problemas de decisin para LR


L ?
Alternativa 1:
construimos el AF (sirven D y ND) para L
L= ssi no hay camino desde q0 hasta algn qF

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

Problemas de decisin para LR


L ?

Alternativa 3: construimos una ER para L. Desde ah es


fcil encontrar alguna palabra de L.
Borramos las *
En cada +, eliminamos un lado (si alguno es ,
borramos ese; si no, borramos el lado derecho).
Borramos los parntesis.

Lo que queda [ejercicio] es una palabra de L.


r = (a+)(ab*+ba*)*(+b*)*
(a+)(ab+ba)(+b) (a)(ab)() aab L(r)
183

Problemas de decisin para LR


Es L infinito?

Alternativa 1:
construimos un AFD para L

vemos acaso existe un camino desde q0 hasta algn


qF que incluya algn ciclo.
Nota: Funciona con
AFND+, siempre que no
consideremos los ciclos
formados por puras
184
transiciones .

Problemas de decisin para LR


Es L infinito?

Alternativa 2:
construimos el AFD. Sea n =|Q|

probamos todas las palabras de largo


n m 2n
L es infinito ssi alguna de esas se acepta.
Razn de que eso sea cierto: ejercicio. Pero tambin es va
bombeo.
185

Problemas de decisin para LR


Dados dos lenguajes regulares L1 y L2. Son iguales?
Alternativa 1:
construimos un AFD para cada uno.
los minimizamos.
vemos si los AFD resultantes son isomorfos.
Alternativa 2:
Ver acaso L1L2 =

A\B

AB

L1L2 = (L1\L2) (L2\L1) = (L1L2C) (L1CL2)


Es regular y podemos construirle un AFD, segn
186
vimos en las propiedades de clausura.

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

2. Autmatas finitos deterministas y sus lenguajes


3. Autmatas finitos no deterministas
4. Propiedades de clausura
5. Relacin con expresiones regulares
6. Lema de bombeo

7. Minimizacin de AF y teorema de Myhill-Nerode


8. Problemas de decisin asociados

9. Complementos
188

Complementos
Autmatas traductores
Bsquedas en texto

Parseo con ER

189

Autmatas traductores ("transducers")

input

MEF

output

estado actual

En los autmatas traductores, agregamos la


posibilidad de que escriban mientras van leyendo.

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

Mealy escribe al pasar de un


estado a otro (asocia letras a los
arcos del grafo de transicin). 191

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 * ' *.

Si se agrega no-determinismo, ser una relacin


(entre palabras).
Relaciones regulares", tienen propiedades de
clausura (y definicin recursiva) anlogas a los
lenguajes regulares.

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

Existe una notacin para ER


"traductoras"; esta sera
(a*:b)(ab:a)*

194

Autmatas traductores

AF traductores se usan, por ejemplo, en


procesamiento de lenguaje natural (escrito), o en
reconocimiento y sntesis de habla.
Adems se aplican en diseo de circuitos
electrnicos de control. AF aceptadores tambin.

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!

acaggccaccaac Cuando detecto esa diferencia, no necesito


ccacct
probar con ccacct ubicada 1 o 2 posiciones a
la derecha: puedo avanzar 3 altiro.

196

Aplicaciones?
ccacct, ={a,c,g,t}
c
0

a
a

Todas las
transiciones no
mostradas van al
estado 0.

Evitamos comparaciones intiles.


Con palabras ms largas puede quedar harto ms complejo.

Se puede extender la idea para buscar varias palabras a la vez.


Preprocesamiento pesado, pero bsqueda rpida.
Detalles: googlear algoritmo Knuth-Morris-Pratt.
197

Anlisis lxico
Un uso de ER es para separar un texto en sus
"tomos" sintcticos, que luego se procesarn de
alguna forma.

Se transforma el texto en una lista de "tokens".


Por ejemplo, al procesar los argumentos de un
programa.

O al preparar el cdigo de un programa para ser


compilado.

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

Anlisis lxico: LEX


Lex: utilidad para generar analizadores lxicos.
Input de lex: lista de ER, y para c/u, cdigo en C
indicando qu hacer con ella.

Output de lex: un programa en C. Al compilarlo, ese


programa reconocer las ER en su input, y ejecutar el
cdigo apropiado.

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

Esta fase por lo general


requiere ms poder que el que
dan los lenguajes regulares.
201
All vamos.

Vous aimerez peut-être aussi