Vous êtes sur la page 1sur 14

Universidad Rey Juan Carlos

Grado en Ingeniera de Computadores


quinas Secuenciales, Auto
matas y Lenguajes
Ma
Hoja de Problemas: Aut
omatas Finitos Deterministas

Nivel del ejercicio : () basico, () medio, () avanzado.

1. Indicar el lenguaje aceptado por los siguientes automatas :


1
0

q0

q1

(a) ()

Soluci
on:
El lenguaje que reconoce este automata es un lenguaje binario donde las
palabras aceptadas contienen un n
umero par de unos:
L = {w | w {0, 1}, n1 (w) mod 2 = 0}

0
q0

1
1

q1

q2

0, 1

(b) ()
Soluci
on:
El lenguaje aceptado por este automata es un lenguaje binario donde todas
las palabras aceptadas tienen todos los ceros situados delante de todos los
unos:
L = {0n 1m | n 0, m 0}

q0

q1

0, 1

q2

0, 1

(c) ()
Soluci
on:
El lenguaje reconocido por este automata, es un lenguaje binario que esta formado por palabras compuestas por un cierto n
umero de ceros y finalizadas
con un uno:
L = {0n 1 | n 0}

Pagina 1 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

0
q0

q1

q2

0, 1

(d) ()
Soluci
on:
El automata anterior acepta palabras binarias que contienen la secuencia
01:
L = {w | w {0, 1} , w contiene 01}

1
1
1

q0

q1

q2

q3

(e) ()

Soluci
on:
Dado una palabra x cualquiera. Obviamente, el automata, al procesar x se
quedara en alguno de sus estados. Se puede observar que desde cualquier
estado se llega a q3 con la cadena 101. Por tanto, el lenguaje reconocido por
el automata es el conjunto de palabras binarias que finalizan con la secuencia
101:
L = {xy | x {0, 1}, y = 101}

q0
0

q2

0
q1

(f) ()

0
1

0
q3

Soluci
on:
El lenguaje reconocido por el automata corresponde a las siguientes cadenas
binarias:
1. Si la cadena no tiene ning
un uno, se reconocen cadenas con un n
umero
de ceros par.
2. Si el n
umero de unos es par (y mayor que cero), la cadena debe terminar
con un n
umero de ceros impar.

Pagina 2 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

3. Si el n
umero de unos es impar, la cadena debe terminar con un n
umero
de ceros par.
Es decir:
L = {02m | m 0}
{x102m | x {0, 1}, n1 (x) mod 2 = 0, m 0}
{x102m+1 | x {0, 1}, n1 (x) mod 2 = 1, m 0}

0
q0
0

q1
1

1
q2

0
q3

0, 1

(g) ()
Soluci
on:
El lenguaje reconocido por este automata es el cierre de la union de otros
dos lenguajes. Un primer lenguaje que reconoce cadenas formadas por la
concatenacion de la secuencia 01. Un segundo lenguaje que hace lo mismo
pero con la secuencia 10.
Si definimos estos lenguajes:
L1 = {(01)n | n 0}
L2 = {(10)m | m 0}
L3 = L1 L2
Por lo tanto, el lenguaje aceptado por este automata es:
L = L3

1
1

q0
(h) ()

q1

q2
0

q3

Soluci
on:

Pagina 3 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

El lenguaje reconocido por el automata es la union de los lenguajes siguientes:


L1 = {x11(01)2n+1| x {0, 1}y n 0}

L2 = {x001(01)2n+1 | x {0, 1}y n 0}


L3 = {1(01)2n+1|n 0}
L4 = {01(01)2n+1|n 0}
L(AUT ) = L1 L2 L3 cupL4
2. Dado el alfabeto = {a, b}, construye un automata para cada uno de los siguientes
lenguajes :
(a) () Las cadenas que terminan en bbb.
Soluci
on:
Aa = ({a, b}, {q0 , q1 , q2 , q3 }, fa , q0 , {q3 })
Donde fa esta definida por el siguiente grafo de transicion:
b

a
q0

a
b

q1

q2

q3

a
a
(b) () Las cadenas que no contengan la secuencia abab.
Soluci
on:
Ab = ({a, b}, {q0 , q1 , q2 , q3 , q4 }, fb , q0 , {q0 , q1 , q2 , q3 })
Donde fb esta definida por el siguiente grafo de transicion:
b
b
q0

q1

q2

q3

q4

a, b

a
a
(c) () Las cadenas tal que cada bloque de cinco smbolos consecutivos contienen
al menos dos bs.

Pagina 4 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

Soluci
on:
Ac = ({a, b}, {q0 , q1 , q2 , q3 , q4 , q6 , q7 , q8 , q9 , q10 , q11 , q12 , q13 }, fc , q0 , {q13 })
Donde fc esta definida por el siguiente grafo de transicion:
b
b
b

q5

q0
a

q1

a
b
a

q10

a, b
b

q11

a, b
b

q12

a, b
b

q13

q6

q7

q8

q9

q4

q2

b
a

q3

a, b

a, b
a

Como comentamos en clase de ejercicios, lo mas sencillo es dotar de semantica


a cada uno de los estados del automata, de esta forma sera mas facil el dise
no
del mismo.
En este ejercicio, por un lado debemos llevar la cuenta del n
umero de caracteres que hemos leido y por otro lado, el n
umero de bs necesarias para
reconocer la cadena (dos en este caso). Por ello, el automata se ha dispuesto
en tres zonas horizontales. La primera division horizontal (q1 ..q4 ), se refiere
a los posibles estados donde todava no hemos ledo ning
un caracter b.
La segunda lnea (q5 ..q9 ), almacena informacion acerca de que hemos ledo
una b. Y la tercera zona (q10 ..q13 ), nos indica que hemos ledo dos o mas
bs. Por otro lado, tambien debemos llevar informacion acerca del n
umero
de caracteres ledos. Por ejemplo, q1 y q5 indican que se ha ledo un caracter;
q2 , q6 y q10 nos informan que se han ledo dos caracteres y as sucesivamente.
Observemos que no son necesarios cinco estados por lnea para guardar informacion acerca de los caracteres ledos. As, la primera lnea solo contiene
cuatro estados, ya que si no hemos ledo previamente ninguna letra b, el
u
ltimo caracter que reconozcamos nos es indiferente, ya que esa cadena no va
a ser reconocida y, en vez de crear un estado sumidero adicional, reutilizamos
el estado q9 . Lo u
ltimo que deberemos tener en cuenta son las transiciones
que salen desde el estado final y que nos indican que se empieza a reconocer
otra ristra de cinco caracteres(y por lo tanto, se debe transitar a los estados
correspondientes).
(d) () Las cadenas con un n
umero de as m
ultiplo de tres.
Soluci
on:
Ad = ({a, b}, {q0 , q1 , q2 }, fd , q0 , {q0 })

Pagina 5 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

Donde fd esta definida por el siguiente grafo de transicion:


q2

b
a

a
q0

q1

(e) () Las cadenas con un n


umero par de as y un n
umero de bs m
ultiplo de tres.
Soluci
on:
Ae = ({a, b}, {q0 , p, i, 1bp, 1bi, 2bp, 2bi, 3bp, 3bi}, fb , q0 , {q0 , p, 3bp})
Donde fe esta definida por el siguiente grafo de transicion:
b

b
b

p
q0

a
a

a
i

a
b

1bp
a
1bi

a
b

2bp
a
2bi

3bp
a

a
3bi

b
Al igual que en el apartado anterior, en este automata debemos recordar
varias cosas. Por un lado, debemos saber si el n
umero de as ledas son pares
y por otro lado, debemos saber si el n
umero de bs es m
ultiplo de tres. Para
dise
nar el automata procederemos de forma analoga al caso anterior. En este
apartado, se ha decidido nombrar a los estados del automata de forma que
conozcamos la sematica de cada uno de los mismos. De esta forma, si la letra
p forma parte del nombre del automata significara que el n
umero de letras
a es par (y al contrario si tenemos la letra i). Y por otra parte, en el
nombre del automata tambien definimos el n
umero de letras b que hemos
ido reconociendo.
Si queremos ser mas correctos, siempre podemos renombrar los estados al
finalizar el dise
no, de forma que los nombres sean los habituales (q0 , q1 , ...).
(f) () L(m, n) := {w | na (w) mod m = 0 y nb (w) mod n = 0}.
Soluci
on:
Para poder dar una solucion generica como se pide en el ejercicio, es mas
facil generar unos cuantos automatas para intentar identificar el patron que

Pagina 6 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

siguen:
m=2,n=2

m=3,n=3
a

q0

1a
b

q0
b

1a

2b

2a
b

1a1b

b b
a

1b

1b

a
a

a
a

1a2b

2a1b

b
2a2b

1a1b

Podemos observar que de forma generica, donde X = (n 1) e Y = (m 1),


se puede realizar la siguiente representacion:
a

q0 a

b
b

2b

1a2b

...

1aXb
b

...

2a1b

Ya
b

...

2a2b

...

...

...

...

b
...

a
a

Y a2b
a

2aXb

Y a1b
a

b
a

b
a

b
Xb

1a1b

2a
b

b
...

b
1b

1a

Y aXb

Por lo tanto, el automata puede ser definido como:


Af = ({a, b}, {q0 , 1a, 2a, ..., 1b, 2b, ..., (m 1)a(n 1)b}, ff , q0 , {q0 })
Donde ff esta definida por el grafo de transicion anterior.
3. () Comprobar si los siguientes AFD son equivalentes :

Pagina 7 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

AFD1 =
({a, b, c}, {p, q, r, s, t, u, v}, f1, p, {s, t, u, v})
f1 a b c
p r t q
q q v p
r p u r
*s q t u
*t t v u
*u t t v
*v u u t

AFD2 =
({a, b, c}, {p, q, r, s, t}, f2, p, {r, s, t})
f1 a
p s
q t
*r q
*s s
*t t

b c
q p
p q
t s
t s
s s

Soluci
on:
Para comprobar que los dos automatas son equivalentes, lo primero que deberemos hacer es hallar sus respectivos automatas mnimos equivalentes.
Minimizacion de f1 :
Primero eliminamos los estados inaccesibles. Por lo tanto, s se elimina de la tabla
de transiciones. Despues, calcularemos el conjunto cociente Q/E:
Q/E0 = {{p, q, r}, {t, u, v}}
Q/E1 = {{p, q, r}, {t, u, v}}
Q/E0 = Q/E1

por lo tanto Q/E0 = Q/E

Si renombramos los conjuntos de estados equivalentes y creamos una nueva tabla


de transiciones, nos queda el siguiente automata:
f1 a
A A
*B B

b
B
B

c
A
B
a, b, c

a, c

Minimizacion de f2 :
Primero eliminamos los estados inaccesibles. Por lo tanto, r se elimina de la tabla
de transiciones. Despues, calcularemos el conjunto cociente Q/E:
Q/E0 = {{p, q}, {s, t}}

Pagina 8 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

Q/E1 = {{p, q}, {s, t}}


Q/E0 = Q/E1

por lo tanto Q/E0 = Q/E

Si renombramos los conjuntos de estados equivalentes y creamos una nueva tabla


de transiciones, nos queda el siguiente automata:
f2 a
A B
*B B

b
A
B

c
A
B

b, c

a, b, c
a

Como se desprende de sus tablas de transicion, estos dos automatas no son isomorfos y por lo tanto, no son equivalentes.
4. () Comprobar cuales de los siguientes AFD son equivalentes entre s.

Pagina 9 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

AFD1 =
({a, b}, {p, q, r, s, t, u}, f1, p, {q, r})
f1 a b
p q p
*q r s
*r q t
s t u
t s u
u q u
AFD3 =
({a, b}, {p, q, r, s, t, u}, f3, p, {s, t, u})
f3 a b
p u q
q t r
r s r
*s t r
*t u q
*u s p
AFD5 =
({a, b}, {p, q, r, s, t}, f5, p, {r, s})
f5 a b
p q r
q q t
*r s q
*s r q
t r q

AFD2=
({a, b}, {p, q, r, s, t, u}, f2, p, {u})
f2 a b
p q u
q r t
r s t
s r t
t u s
*u u q
AFD4 =
({a, b}, {p, q, r, s, t, u}, f4, p, {r, s})
f4 a b
p r q
q r q
*r s t
*s r t
t t q
u u p
AFD6 =
({a, b}, {p, q, r, s, t, u}, f6, p, {r, s, t})
f4 a b
p q r
q p s
*r t u
*s t u
*t t u
u u u

Soluci
on:
Al igual que en el ejercicio anterior, hallaremos el automata mnimo equivalente
de cada uno de ellos.
Minimizacion de f1 :
No tiene estados inaccesibles,por lo tanto, pasamos a calcular el conjunto cociente
Q/E:
Q/E0 = {{p, s, t, u}, {q, r}}
Q/E1 = {{p, u}, {s, t}, {q, r}}
Q/E2 = {{p, u}, {s, t}, {q, r}}
Q/E2 = Q/E1

por lo tanto Q/E1 = Q/E

{p, u}, {s, t}, {q, r}


| {z } | {z } | {z }
A

Pagina 10 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

f1 a b
A C A
B B A
*C C B
Minimizacion de f2 :
No tiene estados inaccesibles,por lo tanto, pasamos a calcular el conjunto cociente
Q/E:
Q/E0 = {{p, q, r, s, t}, {u}}
Q/E1 = {{p}, {q, r, s}, {t}, {u}}
Q/E2 = {{p}, {q, r, s}, {t}, {u}}
Q/E2 = Q/E1

por lo tanto Q/E1 = Q/E

{p} , {q, r, s}, {t} , {u}


|{z} | {z } |{z} |{z}
A

f2 a b
A B D
B B C
C D B
*D D B
Minimizacion de f3 :
No tiene estados inaccesibles,por lo tanto, pasamos a calcular el conjunto cociente
Q/E:
Q/E0 = {{p, q, r}, {s, t, u}}
Q/E1 = {{p, q, r}, {s, t, u}}
Q/E0 = Q/E1

por lo tanto Q/E0 = Q/E

{p, q, r}, {s, t, u}


| {z } | {z }
A

f3 a
A B
*B B

b
A
A

Minimizacion de f4 :
No tiene estados inaccesibles,por lo tanto, pasamos a calcular el conjunto cociente
Q/E:

Pagina 11 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

Q/E0 = {{p, q, t, u}, {r, s}}


Q/E1 = {{p, q}, {t, u}, {r, s}}
Q/E2 = {{p, q}, {t, u}, {r, s}}
Q/E2 = Q/E1

por lo tanto Q/E1 = Q/E

{p, q}, {t, u}, {r, s}


| {z } | {z } | {z }
A

f4 a b
A C A
B B A
*C C B
Minimizacion de f5 :
No tiene estados inaccesibles,por lo tanto, pasamos a calcular el conjunto cociente
Q/E:
Q/E0 = {{p, q, t}, {r, s}}
Q/E1 = {{p}, {q}, {t}, {r, s}}
Q/E2 = {{p}, {q}, {t}, {r, s}}
Q/E2 = Q/E1

por lo tanto Q/E1 = Q/E

{p} , {q} , {t} , {r, s}


|{z} |{z} |{z} | {z }
C

f5 a b
A B D
B B C
C D B
*D D B
Minimizacion de f6 :
No tiene estados inaccesibles,por lo tanto, pasamos a calcular el conjunto cociente
Q/E:
Q/E0 = {{p, q, u}, {r, s, t}}
Q/E1 = {{p, q}, {u}, {r, s, t}}
Q/E2 = {{p, q}, {u}, {r, s, t}}
Q/E2 = Q/E1

por lo tanto Q/E1 = Q/E

{p, q}, {u} , {r, s, t}


| {z } |{z} | {z }
A

Pagina 12 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

f6 a b
A A C
B B B
*C C B

Si comprobamos las tablas de transicion correspondientes, el resultado del problema es el siguiente:


AF1 es equivalente a AF4
AF2 es equivalente a AF5
5. () Sea = {0, 1} un alfabeto y sea L el lenguaje de las cadenas que consideradas
como n
umeros binarios tienen un valor entero m
ultiplo de 5. Demuestra que L es
regular.
Soluci
on:
Debemos encontrar un automata que reconozca el lenguaje, apoyandonos en la
definicion:
L es regular si existe un automata finito que lo reconoce
La construccion del automata se basa en las siguientes ideas:
El automata tendra 5 estados uno para cada posible valor del modulo de una cadena binaria cualquiera. Sean los nombres de estos estados
{q0 , q1 , q2 , q3 , q4 } tal que con una palabra x con x mod 5 = i el automata
una para o transita al estado qi . Obviamente, el estado q0 sera final.
Definimos las transiciones de forma recursiva. Para ello se supone que el
automata haya ledio una cadena binaria x (x mod 5 = i) y se encontrara en
el estado qi (para i {0, 1, 2, 3, 4}). La cuestion sera a que estado tendra que
transitar el automata al a
nadir un nuevo bit (0 o 1) al final de la cadena, es
decir, como cambiara el modulo ya conocido de x al a
nadir un nuevo bit.
Realizamos el analisis correspondiente:
Sea x la cadena de bits ya leida por el automata y sea qi el estado al que haya
transitado. Suponemos que x = xn xn1 x...x0 (xi {0, 1}. Obviamente, el
valor decimal de x es vx = xn 2n + xn1 2n1 + ... + x0 20 y, dado que el
automata hay transitado a qi , se cumple vx mod 5 = i. Como tendra que
cambiar el modulo si a
nadimos un nuevo bit (0 o 1) al final de x. Analizamos
los dos casos posibles:
Se a
nade un 0: La cuestion es a que estado hay que transitar desde el
estado qi si leemos un 0. La nueva palabra sera x0 = xn xn1 x...x0 0. El
valor decimal sera vx0 = 2(xn 2n + xn1 2n1 + ... + x0 20 ). Respecto
al modulo de x0 podemos observar que vx0 mod 5 = (2vx ) mod 5 =

Pagina 13 de 14

Hoja de Problemas: Aut


omatas Finitos Deterministas (cont.)

2(vx mod 5) mod 5 y si vx mod 5 = i, se cumple: vx0 mod 5 =


(2i) mod 5. Esta formula nos da el estado al que hay que transitar
desde el estado qi con el 0. As desde q3 , por ejemplo, hay que transitar
a q1 ((2 3) mod 5 = 1), etc.
Se a
nade un 1: La cuestion es a que estado hay que transitar desde el
estado qi si leemos un 1. La nueva palabra sera x1 = xn xn1 x...x0 1.
El valor decimal sera vx1 = 2(xn 2n + xn1 2n1 + ... + x0 20 ) + 1.
Respecto al modulo de x1 podemos observar que vx1 mod 5 = (2vx +
1) mod 5 = 2(vx mod 5) + 1 mod 5 y si vx mod 5 = i, se cumple:
vx1 mod 5 = (2i + 1) mod 5. Esta formula nos da el estado al que hay
que transitar desde el estado qi con el 1. As desde q3 , por ejemplo, hay
que transitar a q2 ((2 3 + 1) mod 5 = 2), etc.
Con esta idea construimos el siguiente automata:
A = ({0, 1}, {q0, q1 , q2 , q3 , q4 }, f, q0 , {q0 })
Donde f esta definida por el siguiente grafo de transicion:
0
1
q0

q1

0
0

q2

q3
1

1
0

Pagina 14 de 14

q4

Vous aimerez peut-être aussi