Vous êtes sur la page 1sur 14

Universidad Rey Juan Carlos

Grado en Ingeniera de Computadores


Maquinas Secuenciales, Automatas y Lenguajes
Hoja de Problemas: Automatas Finitos Deterministas

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

1. Indicar el lenguaje aceptado por los siguientes automatas :

1
0 q0 q1 0
1
(a) ()

Solucion:
El lenguaje que reconoce este automata es un lenguaje binario donde las
palabras aceptadas contienen un numero par de unos:

L = {w | w {0, 1}, n1 (w) mod 2 = 0}

0 1

q0 1 q1 0 q2 0, 1

(b) ()

Solucion:
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}

1 0, 1
0 q0 q1 q2 0, 1

(c) ()

Solucion:
El lenguaje reconocido por este automata, es un lenguaje binario que esta for-
mado por palabras compuestas por un cierto numero de ceros y finalizadas
con un uno:
L = {0n 1 | n 0}

Pagina 1 de 14
Hoja de Problemas: Automatas Finitos Deterministas (cont.)

q0 0 q1 1 q2
1 0, 1

(d) ()

Solucion:
El automata anterior acepta palabras binarias que contienen la secuencia
01:
L = {w | w {0, 1} , w contiene 01}

0 1
1

q0 1 q1 0 q2 1 q3
0
(e) () 0

Solucion:
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 q2
1 1
0 0 0 0

q1 1 q3

(f) () 1

Solucion:
El lenguaje reconocido por el automata corresponde a las siguientes cadenas
binarias:

1. Si la cadena no tiene ningun uno, se reconocen cadenas con un numero


de ceros par.

2. Si el numero de unos es par (y mayor que cero), la cadena debe terminar


con un numero de ceros impar.

Pagina 2 de 14
Hoja de Problemas: Automatas Finitos Deterministas (cont.)

3. Si el numero de unos es impar, la cadena debe terminar con un numero


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 q1
1
0 1 0

q2 q3 0, 1
1
(g) ()

Solucion:
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

0 1
1

q0 1 q1 0 q2 1 q3

(h) () 0 0

Solucion:

Pagina 3 de 14
Hoja de Problemas: Automatas 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.

Solucion:

Aa = ({a, b}, {q0 , q1 , q2 , q3 }, fa , q0 , {q3 })

Donde fa esta definida por el siguiente grafo de transicion:


a b
a
q0 b q1 b q2 b q3
a
a
(b) () Las cadenas que no contengan la secuencia abab.

Solucion:
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 a q1 b q2 a q3 b 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: Automatas Finitos Deterministas (cont.)

Solucion:

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
a, b a, b a, b
q10 q11 q12 q13
b b b b

b q5 a q6 a q7 a q8 a q9 a, b
q0 b b b

a q1 a q2 a q3 a q4 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 diseno
del mismo.
En este ejercicio, por un lado debemos llevar la cuenta del numero de ca-
racteres que hemos leido y por otro lado, el numero 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 ningun 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 numero
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 in-
formacion acerca de los caracteres ledos. As, la primera lnea solo contiene
cuatro estados, ya que si no hemos ledo previamente ninguna letra b, el
ultimo 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 ultimo 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 numero de as multiplo de tres.

Solucion:
Ad = ({a, b}, {q0 , q1 , q2 }, fd , q0 , {q0 })

Pagina 5 de 14
Hoja de Problemas: Automatas Finitos Deterministas (cont.)

Donde fd esta definida por el siguiente grafo de transicion:

q2 b
b
a a

q0 q1 b
a

(e) () Las cadenas con un numero par de as y un numero de bs multiplo de tres.

Solucion:

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

p b b b
1bp 2bp 3bp

q0 a a a a a a a a

a b b b
i 1bi 2bi 3bi

b
Al igual que en el apartado anterior, en este automata debemos recordar
varias cosas. Por un lado, debemos saber si el numero de as ledas son pares
y por otro lado, debemos saber si el numero de bs es multiplo de tres. Para
disenar 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 numero 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 numero de letras b que hemos
ido reconociendo.
Si queremos ser mas correctos, siempre podemos renombrar los estados al
finalizar el diseno, 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}.

Solucion:
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: Automatas Finitos Deterministas (cont.)

siguen:
m=2,n=2 m=3,n=3
a
q0 a a
1a 2a

b b a b
a
b 1b 1a1b 2a1b b
a a
q0 a b
1a b b b
a a
b b b b 2b 1a2b 2a2b
a a
1b 1a1b
a

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


se puede realizar la siguiente representacion:

q0 a 1a
a
2a
a
...
a
Ya
b b b b b

a a a
1b 1a1b 2a1b ... Y a1b
a
b b b b b
a

a a a a
b 2b 1a2b 2a2b ... Y a2b b
b b b b b
a

a a a a
... ... ... ... ...
b b b b b
a

a a a a
Xb 1aXb 2aXb ... Y aXb
b b b

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: Automatas Finitos Deterministas (cont.)

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

Solucion:

Para comprobar que los dos automatas son equivalentes, lo primero que debere-
mos 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 b c
A A B A
*B B B B

a, c a, b, c

b
A B

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: Automatas 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 b c
A B A A
*B B B B

b, c a, b, c

a
A B

Como se desprende de sus tablas de transicion, estos dos automatas no son iso-
morfos 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: Automatas Finitos Deterministas (cont.)

AFD1 = AFD2=
({a, b}, {p, q, r, s, t, u}, f1, p, {q, r}) ({a, b}, {p, q, r, s, t, u}, f2, p, {u})
f1 a b f2 a b
p q p p q u
*q r s q r t
*r q t r s t
s t u s r t
t s u t u s
u q u *u u q
AFD3 = AFD4 =
({a, b}, {p, q, r, s, t, u}, f3, p, {s, t, u}) ({a, b}, {p, q, r, s, t, u}, f4, p, {r, s})
f3 a b f4 a b
p u q p r q
q t r q r q
r s r *r s t
*s t r *s r t
*t u q t t q
*u s p u u p
AFD5 = AFD6 =
({a, b}, {p, q, r, s, t}, f5, p, {r, s}) ({a, b}, {p, q, r, s, t, u}, f6, p, {r, s, t})
f4 a b
f5 a b
p q r
p q r
q p s
q q t
*r t u
*r s q
*s t u
*s r q
*t t u
t r q
u u u

Solucion:
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 B C

Pagina 10 de 14
Hoja de Problemas: Automatas 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 B C D

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 B

f3 a b
A B A
*B B 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: Automatas 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 B C

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 }
A B C D

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 B C

Pagina 12 de 14
Hoja de Problemas: Automatas 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 pro-
blema 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 numeros binarios tienen un valor entero multiplo de 5. Demuestra que L es
regular.

Solucion:

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 modu-
lo 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 anadir un nuevo bit (0 o 1) al final de la cadena, es
decir, como cambiara el modulo ya conocido de x al anadir 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 anadimos un nuevo bit (0 o 1) al final de x. Analizamos
los dos casos posibles:

Se anade 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: Automatas 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 anade 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 0

q0 q1 q2 q3 0 q4 1
1 0 1
1
0

Pagina 14 de 14

Vous aimerez peut-être aussi