Guillem Godoy Ejercicios para la evaluación continua 1 Teorı́a de lenguajes 1. Formalitzeu els següents llenguatges utilitzant la notació clàssica de conjunts, com a parell variable de mot i propietat sobre aquest. Feu servir quantificadors universals i existencials, operadors booleans i les notacions sobre mides de mots que hem introduı̈t. (a) Llenguatge dels mots sobre {a, b} que contenen el submot ab. (b) Llenguatge dels mots sobre {a, b} tals que a la dreta de cada submot ab hi ha algun submot ba. (c) Llenguatge dels mots sobre {a, b} que contenen el submot ab i el submot ba. (d) Llenguatge dels mots sobre {a, b, c} tals que entre cada dues b’s hi ha alguna a. (e) Llenguatge de mots sobre {a, b} tal que tota ocurrència de b està en posició parell (el primer sı́mbol d’un mot ocupa la posició 1). (f) Llenguatge dels mots sobre {a, b} amb algun prefix amb més b’s o igual que a’s. (g) Llenguatge dels mots sobre {a, b} tals que qualsevol prefixe seu té més b’s o igual que a’s. (h) Llenguatge dels mots sobre {a, b} amb algun prefix de mida parell amb més b’s o igual que a’s. (i) Llenguatge dels mots sobre {a, b} tals que qualsevol prefixe seu de mida parell té més b’s o igual que a’s. (j) Llenguatge dels mots sobre {a, b} que tenen un prefix i un sufix idèntics de mida major que 0 i menor que la mida del propi mot. 2. Argumenteu si són certes (amb una justificació) o falses (amb un contraexemple) les següents afirmacions sobre mots x, y, z y llenguatges A, B, C en general. (a) xy = yx. (b) xy = xz ⇒ y = z. (c) A(BC) = (AB)C. 1 (d) AB = BA. (e) A 6= ∅ ∧ AB = AC ⇒ B = C. (f) A 6= ∅ ∧ B 6= ∅ ∧ AB = CD ∧ (∀u ∈ A, v ∈ C : |u| = |v|) ⇒ A = C ∧ B = D. (g) (A ∪ B)C = AC ∪ BC y A(B ∪ C) = AB ∪ AC. (h) (A ∩ B)C ⊆ AC ∩ BC y A(B ∩ C) ⊆ AB ∩ AC. (i) (A ∩ B)C ⊇ AC ∩ BC y A(B ∩ C) ⊇ AB ∩ AC. 3. Argumenteu si són certes (amb una justificació) o falses (amb un contraexemple) les següents afirmacions en general. (a) L∗ = {a, b}∗ ⇒ {a, b} ⊆ L. (b) L∗1 L∗2 ⊆ (L1 L2 )∗ . (c) L∗1 L∗2 ⊇ (L1 L2 )∗ . + + ∧ L+ ∩ L+ = ∅ ⇒ L = ∅ ∨ L = ∅. (d) L+ 1 2 2 1 1 ∪ L2 = {a, b} (e) (L∗1 ∪ L∗2 ) ⊆ (L1 ∪ L2 )∗ . (f) (L∗1 ∪ L∗2 ) ⊇ (L1 ∪ L2 )∗ . (g) (L1 ∩ L2 )∗ ⊆ (L∗1 ∩ L∗2 ). (h) (L1 ∩ L2 )∗ ⊇ (L∗1 ∩ L∗2 ). (i) L∗1 ⊆ L∗2 ⇒ L1 ⊆ L2 . ∗ (j) L∗ ⊆ L ⊆ L . ∗ (k) L∗ ⊇ L ⊇ L . (l) L1 6= ∅ ∧ L2 6= ∅ ∧ L1 ∩ L2 = ∅ ⇒ L∗1 6= L∗2 . (m) L+ L+ ⊆ L+ . (n) L+ L+ ⊇ L+ . (o) (L2 )∗ ⊆ (L∗ )2 . (p) (L2 )∗ ⊇ (L∗ )2 . (q) L ⊆ L2 ⇔ (λ ∈ L) ∨ (L = ∅). (r) L2 ⊆ L ⇔ L = L+ . (s) (λ ∈ L) ∧ (L2 ⊆ L) ⇔ L = L∗ . (t) L = L2 ⇒ (L = L∗ ) ∨ (L = ∅). 4. Argumenteu si són certes (amb una justificació) o falses (amb un contraexemple) les següents afirmacions en general. 2 (a) (xy)R = y R xR . R (b) (L1 L2 )R = LR 2 L1 . R (c) (L1 ∪ L2 )R = LR 1 ∪ L2 . R (d) (L1 ∩ L2 )R = LR 1 ∩ L2 . R (e) L = LR . (f) (L∗ )R = (LR )∗ . R (g) (L1 L2 )R = LR 1 L2 ⇒ L1 = L2 . 5. Quines de les següents definicions de la funció σ defineixen un morfisme (és a dir, cumpleixen σ(xy) = σ(x)σ(y) per a mots x, y qualsevols). (a) σ(a1 a2 · · · an ) = a1 a1 a2 a2 · · · an an . n) z }| { (b) σ(a1 a2 a3 · · · an ) = a1 a2 a2 a3 a3 a3 · · · an · · · an . (c) σ(w) = w. (d) σ(w) = λ. (e) σ(w) = a|w| . (f) σ(w) = wR . (g) σ(w) = σ1 (σ2 (w)) per a morfismes σ1 , σ2 . 6. Argumenteu si són certes (amb una justificació) o falses (amb un contraexemple) les següents afirmacions en general, on σ és un morfisme. (a) σ(L1 L2 ) = σ(L1 )σ(L2 ). (b) σ(Ln ) = σ(L)n . (c) σ(L1 ∪ L2 ) = σ(L1 ) ∪ σ(L2 ). (d) σ(L∗ ) = σ(L)∗ . (e) σ(LR ) = σ(L)R . (f) σ(L) = σ(L). (g) σ(L) = L ⇒ ∀x ∈ L : σ(x) = x. 7. Argumenteu si són certes (amb una justificació) o falses (amb un contraexemple) les següents afirmacions en general. (a) |L1 | · |L2 | = |L1 · L2 |. (b) (∀a, b ∈ Σ : (a 6= b ⇒ σ(a) 6= σ(b))) ⇒ |σ(L)| = |L|, on σ és un morfisme. 3 (c) |LR | = |L|. (d) |Ln | = |L|n . 8. Donat un llenguatge L, shiftar L dóna lloc a un nou llenguatge, que denotem S(L), i que conté als mots que s’obtenen agafant cada mot de L i rotant-lo de totes les maneres possibles, formalment: S(L) = {vu | uv ∈ L}. Argumenteu si són certes (amb una justificació) o falses (amb un contraexemple) les següents afirmacions en general. (a) S(L)∗ ⊆ S(L∗ ). (b) S(L)∗ ⊇ S(L∗ ). (c) S(L) = S(L). (d) S(LR ) = S(L)R . (e) S(L1 ∪ L2 ) = S(L1 ) ∪ S(L2 ). (f) S(L1 ∩ L2 ) = S(L1 ) ∩ S(L2 ). (g) S(L1 L2 ) = S(L1 )S(L2 ). (h) S(σ(L)) = σ(S(L)), on σ és un morfisme. 9. Demostrad que no hay ninguna palabra w que cumpla aw = wb. 10. Demostrad que, para cualquier alfabeto Σ, hay un único lenguaje L que cumple L = ΣL. Cuál es este lenguaje? 2 Autómatas finitos 1. Obtén los DFA’s mı́nimos A1 , A2 para L1 = {xaay | x, y ∈ {a, b}∗ } y L2 {xbby | x, y ∈ {a, b}∗ }, respectivamente, y calcula explı́citamente el DFA intersección A1 ∩ A2 . 2. Obtén los DFA’s mı́nimos A1 , A2 para L1 = {xaay | x, y ∈ {a, b}∗ } y L2 {xbby | x, y ∈ {a, b}∗ }, respectivamente, y calcula explı́citamente el DFA unión A1 ∩ A2 . 3. Obtén los DFA’s mı́nimos A1 , A2 para L1 = {xay | x, y ∈ {a, b}∗ } y L2 {xbbby | x, y ∈ {a, b}∗ }, respectivamente, y calcula explı́citamente el DFA unión A1 ∪ A2 . 4. Obtén el DFA mı́nimo A para L = {aaw | w ∈ {a, b}∗ }, y calcula explı́citamente A. 4 5. Obtén el DFA mı́nimo A para L = {w ∈ {0, 1}∗ | valor2 (w) ∈ 3̇}, y calcula explı́citamente A. 6. Obtén el DFA mı́nimo A para L = {w ∈ {0, 1}∗ | |w| ∈ 3̇ + 1}, y calcula explı́citamente A. 7. Obtén los DFA’s mı́nimos A1 , A2 para L1 = {xaya | x, y ∈ {a, b}∗ } y L2 {bxby | x, y ∈ {a, b}∗ }, respectivamente, y calcula explı́citamente el λ-NFA concatenación A1 · A2 , determinı́zalo y minimı́zalo. 8. Obtén los DFA’s mı́nimos A1 , A2 para L1 = {xaay | x, y ∈ {a, b}∗ } y L2 {bxb | x ∈ {a, b}∗ }, respectivamente, y calcula explı́citamente el λ-NFA concatenación A1 · A2 , determinı́zalo y minimı́zalo. 9. Obtén los DFA’s mı́nimos A1 , A2 para L1 = {xaya | x, y ∈ {a, b}∗ } y L2 {bxb | x ∈ {a, b}∗ }, respectivamente, y calcula explı́citamente el λ-NFA concatenación A1 · A2 , determinı́zalo y minimı́zalo. 10. Obtén el DFA mı́nimo A para L = {xay ∈ {a, b}∗ | |y| = 1}, y calcula explı́citamente el λ-NFA estrella A∗ , determinı́zalo y minimı́zalo. 11. Obtén el DFA mı́nimo A para L = {xaby ∈ {a, b}∗ | |y| = 1}, y calcula explı́citamente el λ-NFA estrella A∗ , determinı́zalo y minimı́zalo. 12. Obtén el DFA mı́nimo A para L = {axab ∈ {a, b}∗ | |y| = 1}, y calcula explı́citamente el λ-NFA estrella A∗ , determinı́zalo y minimı́zalo. 13. Obtén el DFA mı́nimo A para L = {w ∈ {a, b}∗ | ∀w1 , w2 (w = w1 aw2 ⇒ |w1 |b ∈ 2̇)}, y calcula explı́citamente el λ-NFA reverso AR , determinı́zalo y minimı́zalo. 14. Obtén el DFA mı́nimo A para L = {w ∈ {a, b}∗ | ∀w1 , w2 (w = w1 aw2 ⇒ |w1 |b ∈ 2̇ + 1)}, y calcula explı́citamente el λ-NFA reverso AR , determinı́zalo y minimı́zalo. 15. Obtén el DFA mı́nimo A para L = {w ∈ {a, b}∗ | ∀w1 , w2 (w = w1 aw2 ⇒ |w1 | ∈ 2̇)}, y calcula explı́citamente el λ-NFA reverso AR , determinı́zalo y minimı́zalo. 16. Obtén el DFA mı́nimo A para L = {axbya | x, y ∈ {a, b}∗ }, y dado el morfismo definido por σ(a) = aa, σ(b) = ba, calcula explı́citamente el λ-NFA imagen σ(A), determinı́zalo y minimı́zalo. 5 17. Obtén el DFA mı́nimo A para L = {axbyc | x, y ∈ {a, b, c}∗ }, y dado el morfismo definido por σ(a) = ab, σ(b) = b, σ(c) = λ, calcula explı́citamente el λ-NFA imagen σ(A), determinı́zalo y minimı́zalo. 18. Obtén el DFA mı́nimo A para L = {xbcya | x, y ∈ {a, b, c}∗ }, y dado el morfismo definido por σ(a) = bbb, σ(b) = a, σ(c) = λ, calcula explı́citamente el λ-NFA imagen σ(A), determinı́zalo y minimı́zalo. 19. Sea A el DFA mı́nimo que reconoce a los números binarios múltiples de 3. Calcula σ −1 (A) tomando como σ los morfismos: (a) σ(a) = 01, σ(b) = 0, σ(c) = λ. (b) σ(a) = 10, σ(b) = 0, σ(c) = λ. (c) σ(a) = 00, σ(b) = 11, σ(c) = λ. (d) σ(a) = 001, σ(b) = 101, σ(c) = 0. 20. Diseña un algoritmo de coste razonable para encontrar los estados no accesibles de un DFA de entrada. 21. Diseña un algoritmo de coste razonable para decidir si un DFA de entrada acepta alguna palabra. 22. Diseña un algoritmo de coste razonable para decidir si un DFA de entrada acepta infinitas palabras. 23. Cuál es el coste del algoritmo de determinización de NFA’s en DFA’s. 24. Cual es el coste temporal de las siguentes operaciones de DFA’s: (a) intersección. (b) unión. (c) complementario. (d) concatenación (incluyendo determinización). (e) estrella (incluyendo determinización). (f) reverso (incluyendo determinización). (g) aplicación de morfismo (incluyendo determinización). (h) aplicación de morfismo inverso. 25. Por qué en nuestra definición de A∗ añadimos un nuevo estado inicial, que es también aceptador, en el caso particular en que se cumpla λ 6∈ L(A)? En este caso, no bastarı́a con poner el propio estado inicial de A como aceptador? 6 26. Cuál es el coste del algoritmo de minimización con una implementación razonable. 27. Propón un algoritmo de coste razonable para saber si dos DFA’s de entrada reconocen el mismo lenguaje. 28. Propón un algoritmo de coste razonable para saber, si dados dos DFA’s de entrada, el lenguaje generado por el primero está incluido en el lenguaje generado por el segundo. 29. Justifiqueu la veracitat o falsetat de les següents afirmacions per a DFAs mı́nims A, A1 , A2 , NFAs B, B1 , B2 , B3 i morfisme σ. En cas que les operacions que apareixen hagin estat definides només per a DFAs, assumiu la seva extensió natural a NFAs. (a) A1 ∩ A2 és DFA mı́nim. (b) A1 ∪ A2 és DFA mı́nim. (c) Ā és DFA mı́nim. (d) σ(A) és DFA. (e) σ −1 (A) és DFA mı́nim. (f) Ā¯ = A. (g) (B R )R = B. (h) (B ∗ )∗ = B ∗ . (i) (B1 B2 )B3 = B1 (B2 B3 ). (j) (B1 B2 )R = B2R B1R . (k) (B R )∗ = (B ∗ )R . (l) En el cas en que AR també sigui DFA, llavors podem concloure que és mı́nim. 30. Dado un lenguaje L, definimos Prefijos(L) como el lenguaje {w|∃x : (wx ∈ L)}. Dado un DFA A, cómo se puede construir un DFA Prefijos(A) que cumpla L(Prefijos(A)) = Prefijos(L(A)). 31. Dado un lenguaje L, definimos Sufijos(L) como el lenguaje {w|∃x : (xw ∈ L)}. Dado un DFA A, cómo se puede construir un DFA Sufijos(A) que cumpla L(Sufijos(A)) = Sufijos(L(A)). 32. Dado un natural n definimos Ln = {w ∈ {0, 1}∗ |∃k : (valor2 (w) = k · 2n )}. Justifica que cualquier Ln es regular. Cuantos estados tiene el DFA mı́nimo que reconoce Ln ? 7 33. Cuantos estados tiene el DFA mı́nimo que reconoce las palabras sobre {a, b, c} que contienen al menos 100 ocurrencias de cada uno de estos tres sı́mbolos. 34. Decimos que un NFA es de aceptación única si para cada palabra aceptada existe una única ejecución aceptadora. Demuestra que, para un NFA de aceptación única A, AR es un NFA de aceptación única. 3 Gramáticas incontextuales 1. Doneu una gramática no ambigua per a generar expressions amb operadors binaris de suma, resta, producte, divisió, i també admetent parentització explı́cita, de manera que l’arbre sintàctic generat es correspongui a la precedència habitual que donem als operadors. 2. Supón que una gramática cumple que en cada parte derecha hay como mucho una variable, y que los lenguajes generados desde dos partes derechas cualesquiera de una misma variable són disjuntos. Demuestra que, bajo estas condiciones, la gramática no es ambigua. 3. Justifica la ambigüetat o no ambigüetat de les següents CFG’s: (a) S → (S)S| (b) S → S(S)S| S B A C → → → → aSb|B bAa|bCb|λ aAbA|bAaA|λ Aaa|aAa|aaA (c) (d) S Z1 U1 U2 F → → → → → aU1 |aS|bZ1 |bS aU2 |bF bU2 bF |b aF |bF |a|b (e) S B C A → → → → AaBA|ABaA|ACA|AbabA bb bB aA|bA|λ 8 (f) S Z1 U1 U2 Z2 F → → → → → → aU1 |aS|bZ1 |bS aU2 |bZ2 bU2 bF aF |bF aF |bF |λ S Z1 Z2 Z3 U1 U2 F → → → → → → → Z1 a|Z2 b Z1 a|U1 b U2 a|Z3 b F a|U2 U2 |F ba Fb F a|F b|λ (g) 4. Muestra que la gramática unión G1 ∪G2 de dos gramáticas no ambiguas G1 , G2 sı́ podrı́a ser ambigua. 5. Muestra que la gramática concatenación G1 · G2 de dos gramáticas no ambiguas G1 , G2 sı́ podrı́a ser ambigua. 6. Muestra que la gramática estrella G∗ de una gramática no ambigua G sı́ podrı́a ser ambigua. 7. Muestra que la gramática imagen σ(G) de una gramática no ambigua G por un morfismo σ sı́ podrı́a ser ambigua. 8. Muestra que la gramática reverso GR una gramática no ambigua G tampoco es ambigua. 9. Escribe el DFA mı́nimo para {w ∈ {a, b}∗ | |w|a ∈ 2̇}, y haz la intersección explı́cita de ese DFA con la CFG S → aSa | bSb | a | b | λ. 10. Escribe el DFA mı́nimo para {wa | w ∈ {a, b}∗ }, y haz la intersección explı́cita de ese DFA con la CFG S → aSbS | bSaS | λ. 11. Escribe el DFA mı́nimo para {aw | w ∈ {a, b}∗ }, y haz la intersección explı́cita de ese DFA con la CFG S → aSbS | bSaS | λ. 12. Realizad la eliminación de λ-producciones, producciones unarias, y sı́mbolos no-útiles, de las gramáticas siguientes: 9 (a) S → (S)S|λ S → SS|(S)|λ S A → → AA AA|λ S A B → → → A B c S A B → → → AB a|λ b|λ S A B → → → AB aAb|λ bBc|λ S A B C → → → → BC|λ aA|λ bB c S X A Y B → → → → → X|Y Xc|A aAb|λ aY |B bBc|λ S A B C → → → → A|B|C SaSbS|λ SbSaS|λ Cc|λ (b) (c) (d) (e) (f) (g) (h) (i) 10 13. Sea G una CFG y sea C su conjunto de variables no-accesibles. Sea G0 la gramática obtenida al borrar de G las variables de C junto con las reglas donde aparecen. Demuestra que el conjunto de variables accesibles de G0 es, de hecho, el conjunto de todas las variables de G0 . 14. Sea G una CFG y sea C su conjunto de sı́mbolos no-fructı́feros. Sea G0 la gramática obtenida al borrar de G los sı́mbolos de C junto con las reglas donde aparecen. Demuestra que el conjunto de sı́mbolos fructı́feros de G0 es, de hecho, el conjunto de todas las variables de G0 . 15. Sea G una CFG y sea C su conjunto de sı́mbolos no-accesibles. Supongamos que todos los sı́mbolos de G son fructı́feros. Sea G0 el resultado de borrar de G los sı́mbolos de C junto con las reglas donde aparecen. Demuestra que el conjunto de sı́mbolos fructı́feros de G0 es, de hecho, el conjunto de todas las variables de G0 . 16. Da un ejemplo de gramática en la que, tras borrar un cierto sı́mbolo útil, y todas las reglas en las que aparece, aún ası́ el lenguaje generado se preserva. 17. Cuál es el coste temporal y espacial de eliminar las λ-producciones de una CFG. 18. Cuál es el coste temporal y espacial de eliminar las producciones unarias de una CFG. 19. Cuál es el coste temporal y espacial de eliminar los sı́mbolos no útiles de una CFG. 20. Cuál es el coste temporal y espacial de pasar una CFG a CNF? 21. Cuál es el coste del algoritmo propuesto en el curso para decidir si una gramática genera una cierta palabra, si se realiza una implementación razonable del mismo? Cuál es el coste si se supone G fija, y que la entrada sólo contiene w? 22. Sea n el número de pasos de derivación necesarios para generar una cierta palabra w con una cierta gramática G en forma normal de Chomsky. Podemos establecer alguna relación entre n y |w|? 23. Justifiqueu la veracitat o falsetat de les següents afirmacions per a CFGs G, G1 , G2 , G3 . (a) (GR )R = G. 11 R (b) (G1 ∪ G2 )R = GR 1 ∪ G2 . (c) (GR )∗ = (G∗ )R . (d) (G1 ∪ G2 )G = (G1 G) ∪ (G2 G). (e) σ(G1 ∪ G2 ) = σ(G1 ) ∪ σ(G2 ). (f) G1 (G2 G3 ) = (G1 G2 )G3 . R (g) (G1 G2 )R = GR 2 G1 . 24. Propón un algoritmo de coste razonable para saber si una CFG de entrada genera alguna palabra. 25. Propón un algoritmo de coste razonable para saber si una CFG de entrada genera infinitas palabras. 26. Propón un algoritmo de coste razonable para saber si una CFG de entrada genera alguna palabra de tamaño par. 27. Propón un algoritmo de coste razonable para saber si una CFG de entrada genera infinitas palabras de tamaño par. 28. Propón un algoritmo de coste razonable para saber, dada una CFG G de entrada y un natural n, cuantos árboles de derivación distintos de palabras de tamaño n genera G. 29. Sigui L un llenguatge incontextual infinit. Demostra que hi ha una CFG G tal que L(G) = L i totes les variables de G generen un llenguatge infinit. 4 Expresiones regulares 1. Trobeu expressions regulars que representin els següents llenguatges transformant un DFA en una expressió regular segons el mètode basat en el lema d’Arden. (a) Mots sobre {a, b} amb un nombre parell de a’s. (b) Mots sobre {a, b} amb o bé un nombre parell de a’s, o bé un nombre parell de b’s. (c) Mots sobre {a, b} acabats en ababa. (d) Mots sobre {a, b} que no contenen el submot aba. (e) Mots sobre {a, b, c} tals que, entre cada dues a’s hi ha almenys una b. 12 (f) Mots sobre {0, 1} amb almenys dos 0’s consecutius. 2. Dada una expresión regular, cómo construirı́as otra, de forma sencilla, que genere el lenguaje reverso de la primera? 3. Dada una expresión regular r y un morfismo σ, cómo construirı́as otra expresión regular, de forma sencilla, que genere σ(L(r))? 4. Dadas dos expresiones regulares r1 y r2 , cómo decidirı́as: (a) L(r1 ) = L(r2 ). (b) L(r1 ) ⊆ L(r2 ). (c) L(r1 ) = ∅. (d) |L(r1 )| = ∞. (e) |L(r1 ) ∩ L(r2 )| = 0. (f) |L(r1 ) ∩ L(r2 )| = ∞. 5. (Lema de Arden (bis)) Demuestra que BA∗ es solución de la ecuación X = XA + B, que toda solución de esa ecuación contiene a BA∗ , y que en el supuesto de que A no contenga λ, entonces BA∗ es la única solución. 6. Aprovechando el resultado del ejercicio anterior, obtén una expresión regular para el complementario de las palabras que representan un múltiple de 3 (es decir, {w ∈ {0, 1}∗ | valor2 (w) ∈ 3̇}). Para ello, escribe el autómata mı́nimo para ese lenguaje, crea una variable Xq para cada estado q, y crea ecuaciones con la idea de que la sustitución solución de cada Xq sea el lenguaje de las palabras que nos llevan desde el estado inicial al estado q. 7. Usa el método del ejercicio anterior para obtener expresiones regulares de los siguientes lenguajes. Compáralas con expresiones regulares que se obtienen aplicando el lema de Arden tal y como se explica en los videos. (a) Mots sobre {a, b} amb un nombre parell de a’s. (b) Mots sobre {a, b} amb o bé un nombre parell de a’s, o bé un nombre parell de b’s. (c) Mots sobre {a, b} acabats en ababa. (d) Mots sobre {a, b} que no contenen el submot aba. 13 (e) Mots sobre {a, b, c} tals que, entre cada dues a’s hi ha almenys una b. (f) Mots sobre {0, 1} amb almenys dos 0’s consecutius. 5 No regularidad 1. Demostreu la no-regularitat dels següents llenguatges: (a) {an bn |n ∈ 2̇}. (b) {an bn |n ∈ 3̇}. (c) {an bm |n 6= m}. (d) {a2n bn |n ∈ 2̇}. (e) {w ∈ {a, b}∗ | |w|a = |w|b }. (f) {an bm |n ≤ m}. (g) {an bm |n ≥ m}. (h) {cm an bn |(n, m ≥ 0)}. (i) {a, b}∗ ∪ {cm an bn |(m ≥ 1) ∧ (n ≥ 0)}. (j) {w ∈ {a, b}∗ |w = wR }. (k) {ww ∈ {a, b}∗ } 2 (l) {an |n ≥ 0}. n (m) {a2 |n ≥ 0}. (n) {an |n apareix a la successió de Fibonacci}. (o) {an |n és primer}. (p) {an |n és parell o primer}. (q) {abab2 ab3 . . . abn |n ≥ 0}. (r) {w1 #w2 |w1 , w2 ∈ {0, 1}∗ ∧ (|w1 | < |w2 | ∨ |w1 | ∈ 2̇)}. (s) {u#v|u, v ∈ {a, b}∗ ∧ v és submot de u}. (t) {w ∈ (a + b + c)∗ | |w|a ≥ |w|b ∨ |w|b ≥ |w|c }. (u) Qualsevol subconjunt infinit del llenguatge {an bn }. (v) {w ∈ {a, b}∗ | (|w| ∈ 3̇ ⇒ |w|a = |w|b )}. (w) {w1 #w2 |w1 , w2 ∈ {0, 1}∗ ∧ valor2 (w1 ) = valor2 (w2 )}. (x) {w1 #w2 |w1 , w2 ∈ {0, 1}∗ ∧ valor2 (w1 ) = 1 + valor2 (w2 )}. 14 (y) {w1 #w2 #w3 |w1 , w2 , w3 ∈ {0, 1}∗ ∧ valor2 (w1 ) + valor2 (w2 ) = valor2 (w3 )}. (z) {xy ∈ {a, b}∗ | |x|a = 2|y|b } 2. Considerem el llenguatge Lk = {w ∈ (0 + 1)∗ |valor2 (w) ≤ k}. Quins dels següents llenguatges són regulars per a qualsevol k: (a) Lk . S (b) k≥1 Lk . (c) {w#w|w ∈ Lk }. (d) {1w#1w|1w ∈ Lk }. (e) {1w#1w|w ∈ Lk }. (f) {w#w|w ∈ Lk ∧ |w| ≤ valor2 (w)}. (g) {w#w|1w ∈ Lk }. (h) {w1 #w2 |w1 , w2 ∈ Lk ∧ valor2 (w1 ) = valor2 (w2 ). (i) {w1 #w2 |∃k : (w1 , w2 ∈ Lk ∧ valor2 (w1 ) = valor2 (w2 )). 3. Quins dels següents llenguatges podem assegurar que són no regulars sabent que A i B són no regulars i que σ és un morfisme. (a) Ā. (b) A ∪ B. (c) A ∩ B. (d) A · B. (e) AR . (f) A∗ . (g) S(A) (recordeu la definició de shiftar un llenguatge dels exercicis del primer tema). (h) σ(A). (i) σ −1 (A). 4. Determineu quin llenguatge genera cadascuna de les següents CFG’s, i justifiqueu si aquest llenguatge és regular o no. (a) 15 S A B C D → → → → → AB|CD 0A0|0 1B1|λ 0C0|λ 1D1|λ S A B → → → aA|bB|λ Sa|Sb Sb S A B → → → AB 0A0|1 1B1|0 S → 0S0|0S1|λ S A B → → → AB 0A0|0A1|λ 0B|1B|λ S A B → → → A|B 0S0|1S1|λ 0S1|1S0|λ S A B → → → A|B 0A0|1A1|λ 0B1|1B0|λ S X → → aSa|bSb|X aXb|bXa|a|b|λ (b) (c) (d) (e) (f) (g) (h) (i) S X W W0 → → → → W XW 0 aX|bX|λ aW |bW |λ W 0 a|W 0 b|λ 16 6 Autómatas con pila y jerarquı́a de Chomsky 1. Muestra un ejemplo de lenguaje inambiguo que no sea DCFL. 2. Muestra un ejemplo de DCFL que no sea regular. 3. Muestra que los lenguajes inambiguos y los DCFL no son cerrados por morfismo directo. 4. Muestra que los lenguajes inambiguos y los DCFL no son cerrados por intersección. 5. Muestra que los DCFL no son cerrados por reverso. 6. Muestra que los lenguajes inambiguos y los DCFL no son cerrados por concatenación. 7. Muestra que los lenguajes inambiguos y los DCFL no son cerrados por estrella. 8. Sigui A regular, B CFL, C DCFL i σ un morfisme. Quins dels següents llenguatges podem assegurar que són regulars, quins podem assegurar que són DCFL, i quins podem assegurar que són CFL? Raoneu les respostes, i doneu contraexemples quan sigui necessari. (a) σ −1 (B) ∩ A. (b) σ −1 (C). (c) C R . (d) S(C) (recordeu la definició de shiftar un llenguatge donada en els problemes del primer tema). (e) S(A). (f) (A ∩ C ∪ B). (g) (σ(B) ∩ B)C. (h) (A − σ(B) ∩ C). (i) (σ −1 (σ(B)) ∩ B)C. (j) (σ(A) ∩ C)σ(B ∩ A). (k) σ(σ −1 (B) ∩ A)σ −1 (C). 9. Propón un algoritmo de coste razonable para saber, dado un DFA A y una CFG G, si se cumple L(G) ⊆ L(A). 17 10. Propón un algoritmo de coste razonable para saber, dado un DFA A y una CFG G, si G genera infinitas palabras no aceptadas por A. 11. Propón un algoritmo de coste razonable para saber, dado un DFA A y una CFG G, si G genera alguna palabra de tamaño par no aceptada por A. 7 Máquinas de Turing 1. Escrivid TM sencillas para los siguientes lenguajes: (a) {an bn cn |n ≥ 0}. (b) {w1 #w2 |w1 , w2 ∈ {0, 1}∗ ∧ valor2 (w1 ) = valor2 (w2 ) + 1}. (c) {ww|w ∈ {0, 1}∗ }. n (d) {02 |n ≥ 0} 2. Escrivid 2-TM (o 3-TM o 4-TM en caso de necesidad) sencillas para los siguientes lenguajes: (a) {an bn cn |n ≥ 0}. (b) {w1 #w2 |w1 , w2 ∈ {0, 1}∗ ∧ valor2 (w1 ) = valor2 (w2 ) + 1}. (c) {ww|w ∈ {0, 1}∗ }. n (d) {02 |n ≥ 0} 2 (e) {0n |n ≥ 0} 3. Argumenta a grandes rasgos que las máquinas de Turing nodeterministas no son más expresivas que las máquinas de Turing deterministas. 4. Considera el modelo de máquina que definimos a grandes rasgos ası́: una variante de los autómatas con pila donde, en vez de una pila, tenemos dos pilas, las transiciones dependen del contenido de la cima de ambas pilas, y en la acción de cada transición se puede o bien borrar el elemento de la cima o bien añadir nuevos elementos, todo ello en ambas pilas. Justifica a grandes rasgos que este modelo puede simular una máquina de Turing, y que, por tanto, es Turing-completo. 5. Considera el modelo de máquina que definimos a grandes rasgos ası́: una variante de los autómatas con pila donde, en vez de una pila, tenemos una cola, las transiciones dependen del contenido del inicio de 18 la cola, y en la acción de cada transición se puede borrar el elemento del inicio, y también añadir nuevos elementos al final de la cola. Justifica a grandes rasgos que este modelo puede simular una máquina de Turing, y que, por tanto, es Turing-completo. 8 decidibilidad, semi-decidibilidad, computabilidad 1. Demuestra que los lenguajes decidibles son cerrados por las siguientes operaciones: (a) Intersección. (b) Complementario. (c) Resta (de conjuntos). (d) Reverso. (e) Concatenación. (f) Estrella. (g) Morfismo inverso. (h) Shiftado. 2. Demuestra que los lenguajes decidibles no son cerrados por morfismo directo. 3. Demuestra que los lenguajes semi-decidibles son cerrados por las siguientes operaciones: (a) Intersección. (b) Concatenación. (c) Reverso. (d) Estrella. (e) Morfismo directo. (f) Morfismo inverso. (g) Shiftado. 4. Demuestra que los siguientes conjuntos son semi-decidibles: (a) {hx, yi|Mx (y) ↓}. 19 (b) {x|∃y : Mx (y) ↓}. (c) {hu, v, Ri | u →∗R v}. (d) {G ∈ CFG | G ambigua}. (e) {hG1 , G2 i | G1 , G2 ∈ CFG ∧ L(G1 ) ∩ L(G2 ) 6= ∅}. 5. Sea B un conjunto semi-decidible y sea C un conjunto que cumple C = {x | ∃y : hx, yi ∈ B}. Demuestra que C es semi-decidible. 6. Sea C un conjunto infinito. Demuestra que C es decidible si y solo si existe una función computable, total, inyectiva y creciente cuya imagen es C. 7. Sea C un conjunto infinito. Demuestra que C es semi-decidible si y solo si existe una función computable total e inyectiva cuya imagen es C. 8. Sea f una función computable e inyectiva. Es f −1 computable e inyectiva? 9. Sea f : N → N una función estrı́ctamente decreciente. Podemos asegurar que es computable? 10. Sean A y B dos conjuntos tales que (A ∪ B) − (A ∩ B) es decidible y A es decidible. Eso implica que B es decidible? 11. Sean A y B dos conjuntos tales que (A ∪ B) − (A ∩ B) es decidible y A es semi-decidible. Eso implica que B es semi-decidible? 9 No-decidibilidad, computabilidad no-semi-decidibilidad, no- 1. Clasifica como decidibles, no decidibles pero semi-decidibles, o no semidecidibles, los siguientes conjuntos. (a) {p|Lp es finito}. (b) {p|Lp es infinito}. (c) {p|Mp (p) = p}. (d) {p|∃y : My (p) = p}. (e) {p | |Dom(ϕp )| ≥ 10}. (f) {p | |Dom(ϕp )| ≥ 0}. 20 (g) {p | |Im(ϕp )| ≥ 10}. (h) {p | |Im(ϕp )| ≥ 0}. (i) {p | |Im(ϕp )| < |Dom(ϕp )| < ∞}. (j) {p | |Dom(ϕp )| < |Im(ϕp )| < ∞}. (k) {p|ϕp es inyectiva y total}. (l) {p|ϕp es exhaustiva y total}. (m) {p|ϕp es creciente y total}. (n) {p|ϕp es total y estrı́ctamente decreciente}. (o) {p|ϕp es inyectiva parcial}. (p) {p|ϕp es exhaustiva parcial}. (q) {p|ϕp es creciente parcial}. (r) {p|ϕp es estrı́ctamente decreciente parcial}. 2. Clasifica como decidibles, no decidibles pero semi-decidibles, o no semidecidibles, los siguientes conjuntos. (a) {hp, qi|∀z : ((Mp (z) ↓ ∧Mq (z) ↑) ∨ (Mp (z) ↑ ∧Mq (z) ↓))}. (b) {hp, zi|∃y : Mp (y) = z}. (c) {hp, zi|∃y : Mp (y) 6= z}. (d) {p | Lp es incontextual}. (e) {p | Lp no es incontextual}. (f) {p|Dom(ϕp ) ∈ Dec}. (g) {p|Dom(ϕp ) 6∈ Dec}. (h) {p|Dom(ϕp ) 6∈ semi − Dec}. (i) {p|Im(ϕp ) ∈ Dec}. (j) {p|Im(ϕp ) 6∈ Dec}. (k) {p|Im(ϕp ) ∈ semi − Dec}. (l) {p|Im(ϕp ) 6∈ semi − Dec}. (m) {p|p ≤ 100 ∧ Dom(ϕp ) ∈ Dec}. (n) {p|p ≥ 100 ∧ Dom(ϕp ) ∈ semi − Dec}. (o) {p|∀y > p : ϕy es biyectiva}. (p) {p|∀y < p : ϕy es biyectiva}. (q) {p|∃y > p : ϕy es biyectiva}. 21 (r) {p|∃y < p : ϕy es biyectiva}. (s) {p|∃y : Dom(ϕp ) ⊆ Dom(ϕy )}. (t) {p|∃y : Dom(ϕp ) ⊇ Dom(ϕy )}. (u) {p|Dom(ϕp ) ⊆ 2̇}. (v) {p|Dom(ϕp ) ⊇ 2̇}. 3. Clasifica como decidibles, no decidibles pero semi-decidibles, o no semidecidibles, los siguientes conjuntos. (a) K × K. (b) K̄ × K. (c) K̄ × K̄. (d) K̄ × K. (e) {x | el decimal 3 aparece x veces en el número π}. (f) {hx, yi | 0 ≤ x ≤ 9 ∧ el decimal x aparece y veces consecutivas en la secuencia de decimales del número π}. 4. Demuestra que K no se puede reducir a K̄. 5. Demuestra que puede ocurrir que C sea decidible, f computable, y sin embargo f (C) no sea decidible. 6. Demuestra que puede ocurrir que C sea decidible, f computable y total, y sin embargo f (C) no sea decidible. 7. Demuestra que si C es semi-decidible y f es computable, entonces f (C) es semi-decidible. 8. Para cada una de las siguientes funciones indica si son computables, totales y cuál es su imagen. 1 si ∃n : Mn (x) ↓ (a) f (x) = ↑ si 6 ∃n : Mn (x) ↓ 1 si ∀n : Mn (x) ↓ (b) f (x) = ↑ si 6 ∀n : Mn (x) ↓ 1 si ∃n : Mx (n) ↓ (c) f (x) = ↑ si 6 ∃n : Mx (n) ↓ 1 si ∀n : Mx (n) ↓ (d) f (x) = ↑ si 6 ∀n : Mx (n) ↓ 22 9. La función caracterı́stica de un conjunto C se define como: 1 si x ∈ C χC (x) = 0 si x 6∈ C Demuestra que C es decidible si y solo si su función caracterı́stica χC es computable. 10. Justifica si los siguientes conjuntos de parejas son funciones, y si son funciones computables. (a) ϕ3 . (b) {hx, yi|Mx (x) = y}. (c) {hx, yi|Mx (x) ≤ y}. (d) {hx, yi|Mx (x) ≥ y}. (e) {hx, yi|Mx (x) = My (y)}. (f) {hx, yi|Mx (x) para en y pasos o más}. (g) {hx, yi|Mx (x) para en exactamente y pasos}. (h) {hx, 1i|Mx (x) ↓} ∪ {hx, 0i|Mx (x) ↑}. (i) {hx, 1i|Mx (x) ↓}. (j) {hx, 0i|Mx (x) ↑}. (k) {hx, yi|y = |{z|Mx (z) ↓}|}. 10 Problemas naturales indecidibles 1. Demostrad que los siguientes problemas son indecidibles reduciendo desde accesibilidad de palabras. (a) {hu, v, Ri|∃w1 , w2 : u →∗R w1 vw2 }. (b) {hu, v, Ri|u →∗R vv}. (c) {hu, v, Ri|uu →∗R v}. (d) {hu, v, w, Ri|u →∗R v sin pasar por w}. (e) {hu, v, Ri|u →∗R v ∧ ∀(l → r) ∈ R : |l| = 1 ∨ |r| = 1}. (f) {hu, v, R = {l1 → r1 , . . . , ln → rn }i |l1 |, |r1 |, . . . , |ln |, |rn | ≤ 2 ∧ |u| = |v| = 1}. | u →∗R v ∧ (g) {hu, v, Ri|u →∗R v usando cada regla de R al menos una vez}. 23 2. Demostrad que los siguientes problemas son indecidibles reduciendo desde PCP o PCP-INI. (a) {hu1 , v1 , . . . , un , vn i|n ∈ 2̇ + 1 ∧ ∃1 ≤ i1 , . . . , ik ≤ n : (k > 0 ∧ ui1 · · · uik = vi1 · · · vik )}. (b) {hu1 , v1 , . . . , un , vn i|∃1 ≤ i1 , . . . , ik ≤ n : (k ∈ 2̇ ∧ ui1 · · · uik = vi1 · · · vik )}. (c) {hu1 , v1 , . . . , un , vn i| |u1 |, |v1 |, . . . , |un |, |vn | ∈ 2̇ ∧ ∃1 ≤ i1 , . . . , ik ≤ n : (k > 0 ∧ ui1 · · · uik = vi1 · · · vik )}. (d) {hu1 , v1 , . . . , un , vn i|u1 , v1 , . . . , un , vn ∈ {0, 1}∗ ∧ ∃1 ≤ i1 , . . . , ik ≤ n : (k > 0 ∧ ui1 · · · uik = vi1 · · · vik )}. 3. Demostrad que los siguientes problemas son indecidibles reduciendo desde intersección vacı́a, o desde intersección no vacı́a. (a) {hG1 , G2 i | |L(G1 ) ∩ L(G2 )| ≥ 3}. (b) {hG1 , G2 i | |L(G1 ) ∩ L(G2 )| = 3}. (c) {hG1 , G2 i | |L(G1 ) ∩ L(G2 )| = ∞}. (d) {hG1 , G2 i | |L(G1 )| = |L(G2 )| = ∞ ∧ |L(G1 ) ∩ L(G2 )| = 6 ∞}. (e) {hG1 , G2 i | ΣG1 = ΣG2 = {a, b}∗ ∧ L(G1 ) ∩ L(G2 ) 6= ∅ ∧ L(G1 ) ∩ L(G2 ) ∩ {aa, bb}∗ = ∅}. (f) {hG1 , G2 i | L(G1 ) ∩ L(G2 ) 6= ∅∧ 6 ∃w ∈ (L(G1 ) ∩ L(G2 )) : |w| ∈ 2̇ + 1}. (g) {hG1 , G2 i | L(G1 )∩L(G2 ) 6= ∅∧ 6 ∃w ∈ (L(G1 )∩L(G2 )) : |w| ∈ 2̇}. 4. Demostrad que los siguientes problemas son indecidibles reduciendo desde no universalidad. (a) {G | L(G) 6= Σ∗ − {λ}}. (b) {G | L(G) 6= Σ∗ − {aab}}. (c) {G | L(G) 6⊇ (aabΣ∗ )}. (d) {G = hV, Σ, δ, Si | Σ = {a, b} ∧ L(G) 6= Σ∗ }. (e) {G = hV, Σ, δ, Si | Σ = {a, b} ∧ L(G) 6= (aa + bb)∗ }. (f) {G = hV, Σ, δ, Si | Σ = {a, b} ∧ L(G) 6= (aa + bb + ab + ba)∗ }. (g) {G = hV, Σ, δ, Si | Σ = {a, b, c} ∧ L(G) 6= Σ∗ }. (h) {G | |L(G)| = ∞}. 24 5. Sea L un lenguaje regular. Demuestra que o bien {G | L(G) = L} o bien {G | L(G) = L̄} es indecidible. Pista: Procede por reducción al absurdo suponiendo que ambos son decidibles y concluyendo que entonces universalidad es decidible. 6. Demuestra que los siguientes problemas son indecidibles reduciendo desde veracidad de fórmulas de lógica de primer orden interpretadas sobre palabras. (a) El problema de saber si una descripción de la forma {w|F (w)}, donde F es una fórmula de lógica de palabras con variable libre w, representa al lenguaje (a + b)∗ . (b) El problema de saber si una descripción de la forma {w|F (w)}, donde F es una fórmula de lógica de palabras con variable libre w, representa al lenguaje vacı́o. (c) El problema de saber si una descripción de la forma {w|F (w)}, donde F es una fórmula de lógica de palabras con variable libre w, representa al lenguaje a∗ b∗ . (d) El problema de saber si una descripción de la forma {w|F (w)}, donde F es una fórmula de lógica de palabras con variable libre w, representa al lenguaje de las palabras palı́ndromas sobre {a, b}. (e) El problema de saber si una descripción de la forma {w|F (w)}, donde F es una fórmula de lógica de palabras con variable libre w, representa algun lenguaje finito. (f) El problema de saber si una descripción de la forma {w|F (w)}, donde F es una fórmula de lógica de palabras con variable libre w, representa algun lenguaje incontextual. 7. Demuestra que los siguientes problemas son decidibles: (a) {hu, v, R = {l1 → r1 , . . . , ln → rn }i | u →∗R v ∧ ∀1 ≤ i ≤ n : |li | ≥ |ri |}. (b) {hu, v, R = {l1 → r1 , . . . , ln → rn }i | u →∗R v ∧ ∀1 ≤ i ≤ n : |li | ≤ |ri |}. (c) {hu, v, R = {l1 → r1 , . . . , ln → rn }i | u →∗R v ∧ |R| = 1}. (d) {hu, v, R = {l1 → r1 , . . . , ln → rn }i | |u|, |v|, |l1 |, |r1 |, . . . , |ln |, |rn | ≤ 10 ∧ Σ = {0, 1}}. u →∗R v ∧ (e) {hu, v, R = {l1 → r1 , . . . , ln u, v, l1 , r1 , . . . , ln , rn ∈ a∗ }. u →∗R v ∧ 25 → rn }i | (f) {hu1 , v1 , . . . , un , vn i|u1 , v1 , . . . , un , vn ∈ a∗ ∃1 ≤ i1 , . . . , ik ≤ n : ui1 · · · uik = vi1 · · · vik }. (g) {hG, Ai ∈ CFG × DFA | L(G) 6⊆ L(A)}. 8. Completa la siguiente reducción de sección no vacı́a: hu1 , v1 , . . . , un , vn i u1 Sv1R | · · · |un SvnR |u1 #v1R | · · · |un #vnR , . . .? . . .i. PCP 7→ a interhS → 9. Cuales de los siguientes problemas pueden ser decidibles y cuales pueden ser indecidibles: (a) {hu, vi | u →∗R v} donde R es un sistema de reescritura fijado de antemano. (b) {R | u →∗R v} donde u, v son palabras diferentes fijadas de antemano. (c) {hu1 , v1 , . . . , un , vn i|∃1 ≤ i1 , . . . , ik ≤ n : ui1 · · · uik = vi1 · · · vik } donde k es un número fijado de antemano. (d) {hu1 , v1 , . . . , un , vn i|∃1 ≤ i1 , . . . , ik ≤ n : ui1 · · · uik = vi1 · · · vik } donde n es un número fijado de antemano. (e) {G|L(G) ⊇ L(G0 )} donde G0 es una gramática fijada de antemano. (f) {G|L(G) 6⊆ L(G0 )} donde G0 es una gramática fijada de antemano. Pista: piensa en la reducción de PCP a intersección no vacı́a del problema 8. (g) {G|L(G) ∩ L(G0 ) 6= ∅} donde G0 es una gramática fijada de antemano. Pista: piensa en la reducción de PCP a intersección no vacı́a del problema 8. (h) {G ∈ CFG | L(G) 6⊇ L(A)} donde A es un DFA fijado de antemano. 10. Dado un sistema de reescritura R = {l1 → r1 , . . . , ln → rn } sobre el alfabeto {a, b},, llamaremos wR a la palabra #l1 $r1 #l2 $r2 # . . . #ln $rn #, donde # y $ son sı́mbolos nuevos. Esencialmente, wR es una palabra que codifica el sistema de reescritura. Demuestra que existe una fórmula de lógica de primer orden sobre palabras F (x, y, z), donde x, y y z son variables libres, que cumple lo siguiente: dadas dos palabras u, v y un sistema de reescritura R, todos ellos sobre el alfabeto {a, b}, resulta que u →∗R v ⇔ F (u, v, wR ). 26 11. Aprovechando el resultado del ejercicio anterior, Demuestra que los siguientes problemas son indecidibles reduciendo desde veracidad de fórmulas de lógica de primer orden interpretadas sobre palabras. (a) El problema de saber si una descripción de la forma {w|F (w)}, donde F es una fórmula de lógica de palabras con variable libre w, representa algun lenguaje decidible. (b) El problema de saber si una descripción de la forma {w|F (w)}, donde F es una fórmula de lógica de palabras con variable libre w, representa algun lenguaje semi-decidible. 12. Justifica que {G|L(G) no es regular} es indecidible. Pista: retoca la reducción de PCP a intersección no vacı́a hu1 , v1 , . . . , un , vn i 7→ hG1 , G2 i ası́: hu1 , v1 , . . . , un , vn i 7→ h{am bm }·G1 , {am bm }·G2 i, donde a y b son sı́mbolos nuevos. Haz lo mismo con la reducción de PCP a nouniversalidad. Justifica que la gramática resultante, si no es universal, entonces el lenguaje que genera no es regular. 27