O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Fundamentos da Teoria da Computação Segunda Lista de Exercícios - Aula sobre dúvidas

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 49 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Fundamentos da Teoria da Computação Segunda Lista de Exercícios - Aula sobre dúvidas (20)

Anúncio

Mais recentes (20)

Anúncio

Fundamentos da Teoria da Computação Segunda Lista de Exercícios - Aula sobre dúvidas

  1. 1. Fundamentos da Teoria da Computação Segunda Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias1 1 Mestrando em Ciência da Computação Departamento de Ciência da Computação Universidade Federal de Minas Gerais 07/05/2009 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 1 / 49
  2. 2. Exercício no 1 - Construa AFNs para as seguintes linguagens, com o menor número de estados e de transições que conseguir: a) {w ∈ {a, b, c}∗ | w tem pelo menos uma ocorrência de aba ou de bcb ou de cac}. aba bcb cac Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 2 / 49
  3. 3. Exercício no 1 - Construa AFNs para as seguintes linguagens, com o menor número de estados e de transições que conseguir: b) O conjunto das palavras de {a, b, c}∗, de três ou mais símbolos, em que o último símbolo seja diferente do primeiro. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 3 / 49
  4. 4. Exercício no 1 - Construa AFNs para as seguintes linguagens, com o menor número de estados e de transições que conseguir: c) O conjunto das palavras de {a, b, c}∗ em que o último símbolo tenha ocorrido antes no mínimo uma vez. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 4 / 49
  5. 5. Exercício no 1 - Construa AFNs para as seguintes linguagens, com o menor número de estados e de transições que conseguir: d) O conjunto das palavras de {a, b, c}∗ em que o último símbolo tenha ocorrido antes no máximo duas vezes. Estados iniciais: q7, q0, q1, q8, q3, q4, q9, q5, q6 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 5 / 49
  6. 6. Exercício no 2 - Seja o AFNλ M: Construa um AFD equivalente usando o método visto em aula (subset construction). Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 6 / 49
  7. 7. Exercício no 2 subset 0 1 {1} {2} {1} {2} {1,3} {} {3} {3} {4} {4} {4} {3} subset 0 1 {1,3} {2,3} {1,4} {1,4} {2,4} {1,3} {2,3} {1,3} {4} {2,4} {1,3,4} {3} {3,4} {3,4} {3,4} {4} {4} {3} {3} {3} {4} {1,3,4} {2,3,4} {1,3,4} {2,3,4} {1,3,4} {3,4} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 7 / 49
  8. 8. Exercício no 2 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 8 / 49
  9. 9. Exercício no 3 - Obtenha um AFN K com um único estado inicial, equivalente ao AFN da questão anterior, que contenha todos os estados e transições lá contidos. Em seguida, obtenha uma gramática regular para L(K) usando o método visto em aula. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 9 / 49
  10. 10. Exercício no 3 q4=A, q0=B, q1=C, q2=D, q3=E A → λ|1B|0C|0D|1E B → λ|1B|0C C → 0B|0D D → 0D|1E E → λ|1D|0E Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 10 / 49
  11. 11. Exercício no 4 - Seja o AFNλ M: a) Construa um AFN N, equivalente a M, usando o método visto em aula. b) A partir do AFN N, construa uma expressão regular que denote a linguagem reconhecida. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 11 / 49
  12. 12. Exercício no 4 - a) Construa um AFN N, equivalente a M, usando o método visto em aula. I = fλ(A) = {A, B, C, D, E} δ (A, a) = fλ(δ(A, a)) =⇒ fλ(A) =⇒ {A, B, C, D, E} δ (B, b) = fλ(δ(B, b)) =⇒ fλ(B) =⇒ {B, D, E} δ (C, c) = fλ(δ(C, c)) =⇒ fλ(C) =⇒ {C, D, E} δ (D, d) = fλ(δ(D, d)) =⇒ fλ(D) =⇒ {D, E} δ (E, a) = fλ(δ(E, a)) =⇒ fλ(E) =⇒ {E} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 12 / 49
  13. 13. Exercício no 4 - a) Construa um AFN N, equivalente a M, usando o método visto em aula. Todos os estados são iniciais I = fλ(A) = {A, B, C, D, E} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 13 / 49
  14. 14. Exercício no 4 - b) - Criando novo estado inicial e final. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 14 / 49
  15. 15. Exercício no 4 - b) - Removendo o estado B. P1 = λ + (b+) P2 = a + ab+ P3 = λ + (b+) P4 = a + ab+ Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 15 / 49
  16. 16. Exercício no 4 - b) - Removendo o estado A. P1 = (λ + b+) + a∗(a + ab+) P2 = (a + ab+) + a∗(λ + b+) P3 = λ + a+ Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 16 / 49
  17. 17. Exercício no 4 - b) - Removendo o estado C. P1 = [(λ + b+) + (a∗(a + ab+))] + [(λ + a+)c+] P2 = [(a + ab+) + a∗(λ + b+)] + [(λ + a+)c+] Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 17 / 49
  18. 18. Exercício no 4 - b) - Removendo o estado D. P1 = [(λ + b+) + (a∗(a + ab+))] + [(λ + a+)c+] P2 = {[(a + ab+) + a∗(λ + b+)] + [(λ + a+)c+]d∗} + {[(a + ab+) + a∗(λ + b+)] + [(λ + a+)c+]d+a∗} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 18 / 49
  19. 19. Exercício no 4 - b) - Removendo o estado E. P1 = [(λ + b+) + (a∗(a + ab+))] + [(λ + a+)c+] P2 = {[(a + ab+) + a∗(λ + b+)] + [(λ + a+)c+]d∗} + {[(a + ab+) + a∗(λ + b+)] + [(λ + a+)c+]d+a∗} ER = P1a∗P2 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 19 / 49
  20. 20. Exercício no 5 - Prove que os seguintes conjuntos não são linguagens regulares, usando o lema do bombeamento: Lema do bombeamento - LB Seja L uma linguagem regular. Então existe uma constante K > 0 tal que para qualquer palavra Z ∈ L com |Z| > K existem u, v, w que satisfazem as seguintes condições: Z = uvw; |uv| ≤ K; v = λ e uvi w ∈ L, ∀i ≥ 0 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 20 / 49
  21. 21. Exercício no 5 - Prove que os seguintes conjuntos não são linguagens regulares, usando o lema do bombeamento: a) L = {x1n | n ≥ 0, x ∈ {0, 1}∗ e |x| = n} Suponha que L seja regular. Seja k a constante a constante referida no LB, e seja Z = 0k 1k . Como |Z| > k, o lema diz que existem u, v, w de forma que as seguintes condições se verificam: Z = uvw; |uv| ≤ k; v = λ e uvi w ∈ L, ∀i ≥ 0. Nesse caso v só tem 0, pois Z = uvw = 0k 1k e |uv| < k e v possui pelo menos um 0 porque v = λ. Isso implica que uv2 w = 0k+|v| 1k /∈ L. Desta forma, a suposição é falsa. Portanto, L não é regular. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 21 / 49
  22. 22. Exercício no 5 - Prove que os seguintes conjuntos não são linguagens regulares, usando o lema do bombeamento: b) {10n 1n | n ≥ 1}. Suponha que L seja regular. Seja k a constante a constante referida no LB, e seja Z = 10k 1k . Como |Z| > k, o lema diz que existem u, v, w de forma que as seguintes condições se verificam: Z = uvw; |uv| ≤ k; v = λ e uvi w ∈ L, ∀i ≥ 0. Z = uvw = 10k 1k e |uv| < k. caso 1: v só tem 0 uv2 w = 10k+|v| 1k /∈ L caso 2: v começa com 1 (u = λ) uv2 w /∈ L (repete o padrão de v) Logo, pelo caso 1 e 2 L não é regular. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 22 / 49
  23. 23. Exercício no 6 - Prove que os seguintes conjuntos não são linguagens regulares, usando propriedades de fecho: a) X = {0m 1n | m = n}. ¬X ∩ {0}∗ {1}∗ = {0n 1n |n ≥ 0} L = {0n 1n |n ≥ 0} não é regular1 . Pelas propriedades de fecho: se X fosse regular, ¬X séria; sendo ¬X regular interseção com {0}∗ {1}∗ é regular; L = {0n 1n |n ≥ 0} séria regular. 1 página 105, exemplo 71 do livro texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 23 / 49
  24. 24. Exercício no 6 - Prove que os seguintes conjuntos não são linguagens regulares, usando propriedades de fecho: b) X = {w ∈ {0, 1}∗ | o número de 0s em w é par e o de 1s é primo}. X ∩ 1∗ = {1n |n é primo } L = {1n |n é primo } não é regular2 . Pelas propriedades de fecho: se X fosse regular, interseção com {1}∗ é regular; L = {1n |n é primo } séria regular. 2 Página 106, exemplo 73 do livro texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 24 / 49
  25. 25. Exercício no 7 - Sejam as linguagens L1 = {0, 1}∗ {1}{0, 1} e L2 = {w ∈ {0, 1}∗ | η(w) mod 3 = 0}, sendo η(w) o número representado por w na base dois. a) Prove que L1 − L2 é regular usando propriedades de fecho. L1 − L2 = L1 ∩ ¬L2 L1 é regular L2 é regular Fechado sobre o complemento e interseção Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 25 / 49
  26. 26. Exercício no 7 - b) Construa um autômato finito para L1 − L2. L1 − L2 = L1 ∩ ¬L2 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 26 / 49
  27. 27. Exercício no 7 - b) - Removendo não determinismo de L1. subset 0 1 { 3} { 3} { 3,4} { 4} { 5} { 5} { 5} { } { } { 3,4} { 3,5} { 3,4,5} { 3,5} { 3} { 3,4 } { 3,4,5} { 3,5} { 3,4,5 } Faça o produto do novo L1 (AFD) com ¬L2, mesmo procedimento aplicado no exercício 8 da lista 1. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 27 / 49
  28. 28. Exercício no 8 - Seja L uma linguagem regular sobre um alfabeto Σ1. Prove que o conjunto das palavras sobre Σ2 (que pode ser igual ou não a Σ1) que têm como sufixo alguma palavra de L é regular. ( ∗ 2 L) ∩ ∗ 2 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 28 / 49
  29. 29. Exercício no 9 - Encontre expressões regulares para as seguintes linguagens. a) {w ∈ {a, b}∗ | |w| ∈ {0, 1, 3}}. λ + (a + b) + [(a + b)(a + b)(a + b)] Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 29 / 49
  30. 30. Exercício no 9 - Encontre expressões regulares para as seguintes linguagens. b) {w ∈ {a, b}∗ | w contém um, dois ou três bs}. (a∗ ba∗ ) + (a∗ ba∗ ba∗ ) + (a∗ ba∗ ba∗ ba∗ ) Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 30 / 49
  31. 31. Exercício no 9 - Encontre expressões regulares para as seguintes linguagens. c){w ∈ {a, b, c}∗ | o número de as mais o de bs em w é par}. λ + c∗ + [(c∗ ac∗ ac∗ ) + (c∗ ac∗ bc∗ ) + (c∗ bc∗ ac∗ ) + (c∗ bc∗ bc∗ )]∗ {c + [(a + b)c∗ (a + b)]}∗ Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 31 / 49
  32. 32. Exercício no 9 - Encontre expressões regulares para as seguintes linguagens. d){w ∈ {0, 1}∗ | w contém o símbolo N(w) mod 3 = 0}. Não pode ser 000. . . ; x0 = 2n(x)3 x1 = 2n(x) + 1 r = 2n(x)mod3 = 2r/3 r = 2n(x) + 1mod3 = (2r + 1)/3 3 pag 63 e 64 do livro texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 32 / 49
  33. 33. Exercício no 9 - d)- Criando novo estado inicial e final. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 33 / 49
  34. 34. Exercício no 9 - d)- Removendo o estado 2. P1 = 01∗0 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 34 / 49
  35. 35. Exercício no 9 - d)- Removendo o estado 0. P1 = (01∗0) + 10∗1 P2 = 10∗ Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 35 / 49
  36. 36. Exercício no 9 - d)- Removendo o estado −1. P1 = (01∗0) + 10∗1 P2 = 10∗ P3 = 0∗1 ER = P3P1∗P2 = 0∗1[(01∗0) + 10∗1]∗10∗ Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 36 / 49
  37. 37. Exercício no 10 - Obtenha expressões regulares que denotem as linguagens sobre {0, 1} a seguir, a partir de AFs que reconheçam as mesmas, usando o método visto em aula. Não simplifique as ERs. a) O conjunto das palavras que começam com 1, terminam com 1 e têm algum 0. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 37 / 49
  38. 38. Exercício no 10 - a) O conjunto das palavras que começam com 1, terminam com 1 e têm algum 0. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 38 / 49
  39. 39. Exercício no 10 - a) - Removendo o estado q0. P1 = 1 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 39 / 49
  40. 40. Exercício no 10 - a) - Removendo o estado q1. P1 = 11∗0 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 40 / 49
  41. 41. Exercício no 10 - a) - Removendo o estado q2. P1 = 1+0 P2 = 0 + 11∗0 P3 = 11∗ ER = P1P2∗P3 = 1+0(0 + 1+0)∗1+ Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 41 / 49
  42. 42. Exercício no 10 - Obtenha expressões regulares que denotem as linguagens sobre {0, 1} a seguir, a partir de AFs que reconheçam as mesmas, usando o método visto em aula. Não simplifique as ERs. b) O conjunto das palavras que não contém a subpalavra 0101. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 42 / 49
  43. 43. Exercício no 10 - b) O conjunto das palavras que não contém a subpalavra 0101. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 43 / 49
  44. 44. Exercício no 10 - b) - Removendo o estado q3. P1 = 00 P2 = 0 + 1 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 44 / 49
  45. 45. Exercício no 10 - b) - Removendo o estado q2. P1 = 11 P2 = 0 + 100 P3 = λ + [1(0 + λ)] Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 45 / 49
  46. 46. Exercício no 10 - b) - Removendo o estado q1. P1 = 1 + [0(0 + 100)]∗11 P2 = λ + [0(0 + 100)]∗{λ + [1(0 + λ)]} ER = P1∗P2 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 46 / 49
  47. 47. Exercício no 11 - Mostre que os seguintes problemas são decidíveis, se G1 e G2 são gramáticas regulares quaisquer: a)L(G1) = ∅? Seja M um AF que aceite L(G1). L(G1) = {} se e somente se não existe um caminho do estado inicial de M para um estado final de M. Determinar se existe um caminho em um grafo é sabidamente decidível. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 47 / 49
  48. 48. Exercício no 11 - Mostre que os seguintes problemas são decidíveis, se G1 e G2 são gramáticas regulares quaisquer: b)L(G1) ⊆ L(G2)? L(G1) ⊆ L(G2) ↔ L(G1) ∩ ¬L(G2) = Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 48 / 49
  49. 49. Obrigado pela atenção e boa prova. contato: sergiomariano@gmail.com mariano@dcc.ufmg.br Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 07/05/2009 49 / 49

×