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) = . Sea M = (Q, , , q0, F) un AFD con Q = {q0,q1,q2}, = {a, b}, F = {q2} y la funcin de transicin : q0 q1 q2 a) b) c) Dibuja el autmata M Traza los cmputos de M que procesan las palabras abaa, bbbabb, bababa bbbaa Qu palabras de las procesadas en (b) son aceptadas por M? a q0 q2 q2 b q1 q1 q0
2.
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)
a b a a,b b a,b a,b
b)
a b b a
pg. 1
EJERCICIOS de MAC 1 ALF (Tema 2)
Curso 2010/2011
c)
a b
b a
a,b
d)
b a b
a b a
e)
b a b
a b a
a,b
a,b
f)
b a b
g)
a b b b a
a a
4.
Construye AFDs que acepten cada uno de los siguientes lenguajes definidos sobre el alfabeto = {a,b}: a) b) c) d) e) f) g) h) i) j) k) L = { x * : la longitud de x es divisible por 3} L = { x *: aba no es subpalabra de x } 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 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 } 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 } (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".
6.
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 a b a b b
b)
b b a a b
c) a
a a 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)
Curso 2010/2011
f) g) 9.
L = { x * : x tiene tres smbolos iguales seguidos } L = { x * : los smbolos de x de posicin mltiplo de tres son c's }
(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 } (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?
10.
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. 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 qu estados nos llevaran. Reconstruye los cmputos asociados a las palabras aababb y babab.
b) c)
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) e) f) g) h) i) { 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 } { 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 } { 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 } 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.
(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) b) c) Cules de ellas podran ser formas sentenciales de G? 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.
14.
(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. Di si son verdad o no las siguientes afirmaciones: a) c) e) baa L(a*b*a*b*) L(a*b*) L(c*d*) = b) d) L(b*a*) L( a*b*) = L(a* b*) abcd L((a(cd)*b)*)
Las expresiones regulares = y =()* son equivalentes.
16.
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) e) (10)* (01)* (11 0)*(00 1)* b) d) (10 01)* (1 01 001)*( 0 00)
[00 11 (01 10)(00 11)*(01 10)]*
17.
Sea ={a,b}. Escribe expresiones regulares para los siguientes lenguajes: a) b) c) d) e) cadenas con al menos tres a's 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.
18.
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)
Curso 2010/2011
20.
Construye expresiones regulares para denotar los siguientes lenguajes: a) b) c) d) e) f) { 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 } { 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}
21.
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 b a a b a,b b b b) a b a,b a
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) 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
b)
pg. 7
EJERCICIOS de MAC 1 ALF (Tema 2) Ejercicios tericos sobre ERs: 24.
Curso 2010/2011
(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 ... n) (1 2 ... m) = 11 12 ... 1m 21 ... 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) 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*))*
b)
25.
Sea una expresin regular cualquiera: a) b) 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
c)
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) .
26.
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)
Curso 2010/2011
c) d)
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 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 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 }
b) c) d)
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 q2 q3 0 q0,q1 q2 q3 q3 1 q0 q2 q3 2 q0 q1 q2 q3 0 q1,q3 q2 q3 1 q1 q1,q2 q0 q0
31.
Construye AFD's equivalentes a los siguientes -AFND's:
a a a b b
a a
a a a
a b b
pg. 10
EJERCICIOS de MAC 1 ALF (Tema 2)
Curso 2010/2011
32.
Dado los siguientes autmatas finitos construye el autmata finito mnimo equivalente a cada uno de ellos:
b a b b b a a q2
q0
q1
q3
q4 a, b
q5
q 1
q 1
q 0 1 1
q 0
1,0
1,0
33.
Sea el lenguaje L = {a100+3ibj: i j 0} definido sobre el alfabeto = {a b}. a) b) Demuestra que L es regular, dando una expresin regular que lo denote. 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)
Curso 2010/2011
35.
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 p q p p b q q
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. a) b) c) d) e) f) g)
Demuestra que no son regulares sobre el alfabeto = { a , b } : { w w *: w es la palabra que resulta de cambiar cada aparicin en w de a por b y viceversa } { w *: w = wR |w|a = |w|b } { anbm: m n 2*m } { aibjak: j = max(i,k) } { 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