You are on page 1of 12

EJERCICIOS de MAC 1 ALF (Tema 2)

Curso 2010/2011

EJERCICIOS del TEMA 2: Lenguajes Regulares

Sobre AFDs (autmatas finitos deterministas):


1.

Razona la veracidad o falsedad de la siguientes afirmacin, apoyndote en la


teora vista en clase. Si M = (Q, , , q0, F) es un autmata finito determinista
totalmente especificado con F = Q, entonces L(M) = .

2.

Sea M = (Q, , , q0, F) un AFD con Q = {q0,q1,q2}, = {a, b}, F = {q2} y la funcin
de transicin :
a

q0

q0

q1

q1

q2

q1

q2

q2

q0

a)

Dibuja el autmata M

b)

Traza los cmputos de M que procesan las palabras abaa, bbbabb, bababa
bbbaa
Qu palabras de las procesadas en (b) son aceptadas por M?

c)

3.

Busca tres palabras aceptadas y tres palabras rechazadas por cada uno de los
siguientes autmatas mostrando el cmputo que las procesa. Determina cules
de ellos estn totalmente especificados. Sabras cul es el lenguaje aceptado
por cada uno de ellos?
a)

b)

a,b

a,b
a,b

pg. 1

EJERCICIOS de MAC 1 ALF (Tema 2)

c)

a,b

d)

Curso 2010/2011

e)

g)

b
a

a,b

a,b

f)

a
b
b

a
b

a
a

4.

Construye AFDs que acepten cada uno de los siguientes lenguajes definidos
sobre el alfabeto = {a,b}:
a)
b)

L = { x * : la longitud de x es divisible por 3}


L = { x *: aba no es subpalabra de x }

c)
d)
e)
f)

L = { x * : x comienza por a y termina por ab }


L = { x * : x tiene un nmero par de a's y un nmero par de b's }
L = { x * : x tiene tres a's consecutivas }
L = { x * : toda aparicin de la subpalabra aba en x, o bien va seguida de

g)

bb, o est al final de la palabra }


L = { x * : si x empieza por a no contiene la subpalabra aa y si x empieza
por b contiene la subpalabra aa }

h)
i)
j)
k)

L = { x * : x tiene un nmero par de apariciones de la cadena ab }


L = { x * : ab es subpalabra de x si y slo si ba es subpalabra de x }
L = { x * : x est formada por la concatenacin de un nmero arbitrario
de cadenas de la forma yyR , con |y|=2 }
L = { x * : x no contiene ningn prefijo en el que la diferencia entre el
nmero de a's y b's sea mayor que tres (a favor de cualquiera de ellos) }

pg. 2

EJERCICIOS de MAC 1 ALF (Tema 2)

Curso 2010/2011

5.

(Ejercicio especial) Construye un AFD que acepte el siguiente lenguaje:


L = { x {a, b}* : x no contiene la subpalabra bab ni el sufijo aba }

6.

(Ejercicio especial) Demuestra que la nocin de lenguaje aceptado por un AFD


no depende del alfabeto particular de ste (siempre que al menos contenga los
smbolos involucrados). Es decir, prueba que:
"Si * L y , entonces existe un AFD sobre el alfabeto que acepta
L si y solo si, existe otro AFD sobre el alfabeto que acepta L".

Sobre AFNDs (autmatas finitos no deterministas):


7.

Busca tres palabras aceptadas y tres palabras rechazadas por cada uno de los
siguientes autmatas no deterministas, mostrando todos los cmputos que las
procesan. Sabras qu lenguaje acepta cada uno de ellos?
a)

b)

b
a

c)

a
a

b
b

a
a

b
b

8.

Construye AFNDs que acepten los siguientes lenguajes sobre el alfabeto


= {a,b,c}
a)
b)
c)
d)
e)

L = { x * : x tiene algn par de a's separadas por una cadena de smbolos


de longitud 4*i, con i 0 }
L = { x * : |x| 5 y el quinto smbolo contado desde el final es a }
L = { x * : ni aa ni bb son subcadenas de x }
L = { x * : x tiene ab y ba como subcadena }
L = { x * : ccc es sufijo de x y en ninguna otra posicin de x pueden
encontrarse dos smbolos iguales seguidos }

pg. 3

EJERCICIOS de MAC 1 ALF (Tema 2)

f)
g)

Curso 2010/2011

L = { x * : x tiene tres smbolos iguales seguidos }


L = { x * : los smbolos de x de posicin mltiplo de tres son c's }

9.

(Ejercicio especial) Construye un AFND que acepte el siguiente lenguaje L =


{ x {a, b, c}* : x empieza y termina por a y entre cada aparicin de a y la
siguiente hay un nmero par de b's o un nmero impar c's }

10.

(Ejercicio especial) Cuntos autmatas finitos deterministas y con dos estados


pueden construirse sobre el alfabeto {0,1}? Aceptan todos ellos lenguajes
distintos? Y de ellos, cuntos estn totalmente especificados? Y si construimos
autmatas finitos no deterministas?

11.

Sea el lenguaje regular L = { x {a,b}*: |x|a mod 2 = 1 |x|b mod 3 = 0 aba


es subpalabra de x }. Sigue los pasos que se te indican a continuacin sin
construir en ningn momento el autmata finito indicado :
a)

Supn que quieres construir un autmata finito M que reconozca a L.

b)

Indica cuntos estados tendra M y explica por qu. Enumera dichos


estados, explicando para qu sirve cada uno de ellos en tu construccin.
Seala cul sera el estado inicial y cules los finales.
Elige tres estados cualesquiera e indica cules seran sus transiciones y a

c)

qu estados nos llevaran.


Reconstruye los cmputos asociados a las palabras aababb y babab.

Sobre GRs (gramticas regulares) y GLs (gramticas lineales):


12.

Construye gramticas regulares lineales a la derecha que generen cada uno de


los siguientes lenguajes sobre el alfabeto terminal = {a, b, c}
a)
b)
c)
d)

{ x * : |x|a mod 2 = 0 }
{ x * : x empieza por a y contiene la subpalabra bbb }
{ x * : x no contiene tres b's consecutivas }
{ x * : |x|a + |x|b mod 3 = 0 }

e)
f)
g)

{ x * : x contiene las subpalabras aa, bb y cc }


{ x * : x no contiene las subpalabras aba ni aca }
{ x * : cada aparicin de a en x es precedida de b o seguida de c }

h)

{ x * : x no contiene ninguna aparicin de la subcadena aa despus de la


ltima aparicin del smbolo c }
{ x * : x contiene dos as separadas por un nmero impar de smbolos }

i)

pg. 4

EJERCICIOS de MAC 1 ALF (Tema 2)

Curso 2010/2011

j)
{ x * : x contiene la subpalabra ab pero no contiene la subpalabra aba }
De entre ellas, di cuales son regulares y cuales son lineales. Transforma las
lineales en regulares.

13.

14.

(Ejercicio especial) Sea G=(N, , P, S) una gramtica lineal a la derecha, con


N={S,A,B} y = {a ,b }, y sean las siguientes palabras: S, A, AB, , aaA, abaS,
bbab, aSba, Baaab, abAS, abBAbSb.
a)

Cules de ellas podran ser formas sentenciales de G?

b)
c)

Describe la estructura general de una forma sentencial de G.


Demuestra por induccin que las formas sentenciales de G no pueden ser
distintas de lo descrito en el apartado anterior.

(Ejercicio especial) Una Gramtica cuasi-regular a la derecha se define como


una gramtica G = (N, , P, S), donde las reglas de P responden a alguna de las
3 siguientes formas: A , A aB, A a, con A,BN, a. Considera el
siguiente algoritmo:
Entrada: G = (N, , P, S) gramtica cuasi-regular a la derecha
Salida: INCOGNITA
Procedimiento: Construir INCOGNITA = ( N1, , , S, F) donde
N1 = N {Z}
F = {Z} {A: A P }
B(A,a) AaBP
Z(A,a) AaP
a) Aplica el algoritmo a la gramtica siguiente: G=({S,A,B}, {a,b,c}, P, S) siendo P
el conjunto de producciones
S aA | aB

A bA | b

B cB | c

b) A qu modelo pertenece INCGNITA?. Razona tu respuesta.


c) Justifica la siguiente afirmacin: Todo lenguaje generado por una gramtica
regular (a derecha) se puede generar mediante una gramtica cuasi-regular (a
derecha) y viceversa.

pg. 5

EJERCICIOS de MAC 1 ALF (Tema 2)

Curso 2010/2011

Sobre ERs (expresiones regulares):


15.

16.

17.

18.

Di si son verdad o no las siguientes afirmaciones:


a)
c)

baa L(a*b*a*b*)
L(a*b*) L(c*d*) =

e)

Las expresiones regulares = y =()* son equivalentes.

b)
d)

L(b*a*) L( a*b*) = L(a* b*)


abcd L((a(cd)*b)*)

Para las siguientes expresiones regulares, escribe todas las palabras de longitud
menor o igual que seis pertenecientes al lenguaje que generan, y describe dicho
lenguaje en cada caso:
a)
c)

(10)* (01)*
(11 0)*(00 1)*

e)

[00 11 (01 10)(00 11)*(01 10)]*

b)
d)

(10 01)*
(1 01 001)*( 0 00)

Sea ={a,b}. Escribe expresiones regulares para los siguientes lenguajes:


a)

cadenas con al menos tres a's

b)
c)
d)
e)

cadenas con a lo sumo tres a's


cadenas con un nmero de a's divisible por 3
cadenas con al menos una aparicin de la subcadena aaa
cadenas en las que las a's van agrupadas como mnimo de tres en tres.

Sea ={a,b}. Construye una expresin regular para el lenguaje formado por las
cadenas que no contienen la subcadena aaa. Se debe hacer primero el AFD,
obtener a partir de l la GRD y, resolviendo las ecuaciones correspondientes,
llegar a la expresin regular.

19.

(Ejercicio especial) Sea ={a,b}. Construye una expresin regular para el


lenguaje formado por las cadenas que contienen exactamente una aparicin de
la subcadena aaa. Se debe hacer primero el AFD, obtener a partir de l la GRD
y, resolviendo las ecuaciones correspondientes, llegar a la expresin regular.

pg. 6

EJERCICIOS de MAC 1 ALF (Tema 2)

20.

21.

Curso 2010/2011

Construye expresiones regulares para denotar los siguientes lenguajes:


a)
b)
c)

{ w {a ,b }* : w acaba en ab }
{ w {a,b }* : |w|a 1} .
{ w {a,b }* : w tiene un nmero par de as y termina por ab }

d)
e)
f)

{ w {1,0 }* : w no contiene 101 como subpalabra }


{ w {1,0}* : w comienza por 101 y termina por 101 }
{ w {a,b,c}* : entre cada dos a's de w hay un nmero de c's mltiplo de 3}

En la definicin inductiva de las expresiones regulares, la regla que afirma que


es una expresin regular se puede eliminar, ya que con el resto de las reglas
es posible construir una expresin tal que L() = {}. Por qu?

Sobre ERs equivalentes a autmatas:


22.

Construye expresiones regulares equivalentes a los siguientes AF's:


a)

b)

a,b

b
a

b
a,b

Sobre ERs equivalentes a gramticas:


23.

Construye expresiones regulares equivalentes a las gramticas lineales a la


derecha cuyas reglas de produccin figuran a continuacin:
a)

b)

S aS | bS | abaA | ababaB | abababaC | abababa


A aA | bA | abaB | ababaC | ababa
B aB | bB | abaC | aba
C aC | bC | a | b
S a | aA | bB
A b | bA
B a | aA | aC
C b | bA | aD
D aC | bD

pg. 7

EJERCICIOS de MAC 1 ALF (Tema 2)

Curso 2010/2011

Ejercicios tericos sobre ERs:


24.

(Ejercicio especial) Asumamos como ya demostrado que para cualesquiera


expresiones regulares 1, ..., n, 1, ..., n se cumple que:
i)
ii )

(
1 2 ... n)* = (
1*
2*... n*)*
(
1 2 ... m) = 11 12 ... 1m 21
1 2 ... n) (
... n1 ... nm

Se dice que una expresin regular est en forma normal disyuntiva si tiene la
forma 1 2 ... n, con n1 y 1, ..., n son expresiones regulares en las
que no aparece el smbolo "".
a)

b)

Utilizando los resultados anteriores i) y ii) demuestra que para toda


expresin regular existe otra equivalente fnd() en forma normal
disyuntiva.
Escribe la forma normal disyuntiva de las siguientes expresiones
regulares:
( (0 1)*100)0*
((10* 01*) (00* 11*))*

25.

Sea una expresin regular cualquiera:


a)
b)

c)

26.

Disea un algoritmo recursivo para decidir si es equivalente a la


expresin regular .
Describe otro algoritmo para obtener a partir de otra expresin regular
equivalente sinvac() que, o bien no contiene la subexpresin , o es

exactamente la expresin regular (inevitable cuando es equivalente a


).
Aplica el algoritmo hecho en el apartado (b) a la expresin regular:
(1 (11)*)*(0 0 01)*(
(1 0)* 10) .

Sea una expresin regular que no contiene ninguna aparicin de la


subexpresin .
a)
b)

Disea un algoritmo recursivo para decidir si la palabra vaca pertenece o


no a L(
).
Describe otro algoritmo para obtener a partir de otra expresin regular
equivalente sineps(), que sigue sin contener apariciones de , y que
tiene la forma , , donde es una expresin regular que no
contiene apariciones de (es decir, en sineps() eliminamos todas las
apariciones de salvo una en caso de que sea estrictamente necesaria

pg. 8

EJERCICIOS de MAC 1 ALF (Tema 2)

c)
d)

Curso 2010/2011

para mantener la equivalencia).


Aplica el algoritmo encontrado en (b) a la expresin regular (((1 )* )
01 1 )* (01 ) (10 ) * .
Supongamos ahora que, en la definicin de expresin regular, se suprimen
las clasulas que aseguran que y son expresiones regulares. A la luz
de los resultados de este ejercicio y el precedente cules seran los
lenguajes regulares que no podran ser denotados por las mismas? Y si
slo quitamos una de las clasulas?

Sobre -AFND's y su relacin con las ERs:


27.

Construye -AFND's que acepten los siguientes lenguajes sobre = {a ,b, c}


a)

L = { x * : las apariciones de a en x no pueden ir seguidas de c, las

b)

apariciones de b en x no pueden ir seguidas de a, y las apariciones de c en


x no pueden ir seguidas de b }
L = { x * : x no puede tener ninguna a ocupando una posicin posterior

c)
d)

a la de una b y x no contiene c's aisladas }


L = { x * : x est formada por uno ms grupos de a's separados por
cadenas de 1, 2 3 b's }
L = { x * : x puede descomponerse como concatenacin de tres
subpalabras y, z y w cumpliendo que en y cada grupo de a's tiene
longitud par, en z cada grupo de b's tiene longitud par y en w cada grupo
de c's tiene longitud par }

28.

Construye autmatas finitos que reconozcan los lenguajes denotados por las
siguientes expresiones regulares:
a)
c)
e)

a*bb*(a b)ab*
(a+b*a+b*)+
(a2)*(b3)*(c4)*(a4)*(b3)*(c2)*

b)
d)

b((aab* a4)b)*a
(((b*a)*a)*a)*a

29. (Ejercicio especial)


a) Construye un autmata, M, que rechace todas las
palabras de longitud impar que tengan los dos ltimos smbolos iguales. Debe
aceptar, por ejemplo, las palabras abaa, a, aba y rechazar abb, babbbaaaa.
Puedes construirlo directamente (con las explicaciones oportunas) u obtenerlo
del apartado siguiente mediante algn algoritmo de transformacin.

pg. 9

EJERCICIOS de MAC 1 ALF (Tema 2)

Curso 2010/2011

b) Disea una expresin regular que genere el mismo lenguaje del apartado
anterior . Puedes disearla directamente (con las explicaciones oportunas) u
obtenerla del apartado anterior mediante algn algoritmo de transformacin.
Sobre equivalencias entre autmatas:
30.

Construye AFD's equivalentes a los siguientes AFND's:


a)
b)

({ q0, q1, q2, q3 }, { 0 , 1 }, 1, q0, { q3 } )


({ q0, q1, q2, q3 }, { 0 , 1 }, 2, q0, { q1,q3 } )
1

q0
q1

q0,q1
q2

q0
q2

q0
q1

q1,q3
q2

q1
q1,q2

q2
q3

q3
q3

q3

q2
q3

q3
-

q0
q0

Construye AFD's equivalentes a los siguientes -AFND's:

31.

a
b

b
a

a
a

a
b

pg. 10

EJERCICIOS de MAC 1 ALF (Tema 2)

32.

Curso 2010/2011

Dado los siguientes autmatas finitos construye el autmata finito mnimo


equivalente a cada uno de ellos:
b
a

q0

q1

q2

b
b

q3

q4

q5

a, b

q
1

q
1

1
q

1,0

33.

1,0

Sea el lenguaje L = {a100+3ibj: i j 0} definido sobre el alfabeto = {a b}.


a)

Demuestra que L es regular, dando una expresin regular que lo


denote.

b)

Describe como sera un AFD M, totalmente especificado, equivalente a .


Procura que sea el autmata mnimo. Toma un estado cualquiera de M, y

comprueba que no es equivalente/indistinguible de ninguno de los dems


estados.
Nota: No es necesario ni conveniente que apliques los algoritmos de
transformacin o minimizacin. De hecho no hace falta que escribas el
autmata M completo.

34.

Supn que te dan dos expresiones regulares y , y que te piden que


compruebes si son o no equivalentes. Explica el proceso que seguiras para
resolverlo.

pg. 11

EJERCICIOS de MAC 1 ALF (Tema 2)

35.

Curso 2010/2011

Di si son ciertas o falsas las siguientes afirmaciones, razonando tu respuesta de


forma breve pero convincente.
a)

Tenemos un AFD sobre el alfabeto {a,b} que contiene dos estados no


finales, p y q, con las siguientes transiciones:
a

Sin conocer el resto del autmata podemos asegurar que estos estados son
necesariamente indistinguibles.
b)

Si M = (Q, , , q0, F) es el autmata mnimo equivalente al AFD, N = (P,


, , p0, G), el cardinal de F y G ha de ser el mismo.

36.

Demuestra que no son regulares sobre el alfabeto = { a , b } :

a)

{ w w *: w es la palabra que resulta de cambiar cada aparicin en w de a

b)
c)
d)

por b y viceversa }
{ w *: w = wR |w|a = |w|b }
{ anbm: m n 2*m }
{ aibjak: j = max(i,k) }

e)
f)
g)

{ aibjak : i, j, k >0 (i j j k i = k) }
{ aibjak : i, j, k >0 (i = j i = k j = k) }
{ w * : w tiene al menos un prefijo con ms b's que a's }

37.

Considera el alfabeto { M, D, C, L, X, V, I } y el lenguaje de los nmeros


romanos. Demuestra que es un lenguaje regular construyendo un autmata
finito con transiciones vacas que lo reconozca. Recuerda que, por ejemplo, VIIII
no es un nmero romano, y que debemos escribir IX, en su lugar. Puede
resultarte til construir la expresin regular y luego el -AFND
correspondiente.

pg. 12

You might also like