Este documento apresenta uma lista de exercícios sobre fundamentos da teoria da computação. Contém dez questões que abordam tópicos como autômatos, gramáticas livres de contexto e propriedades de linguagens formais. O autor fornece respostas detalhadas para cada exercício proposto.
Fundamentos da Teoria da Computação Terceira Lista de Exercícios - Aula sobre dúvidas
1. Fundamentos da Teoria da Computação
Terceira 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
09/06/2009
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 1 / 30
2. 1) - Para cada linguagem a seguir, construa um APD:
a) {a3n
b2n
| n ≥ 0}.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 2 / 30
3. 1) - Para cada linguagem a seguir, construa um APD:
b) {am
bn
# | m = n}. O alfabeto é {a, b, #} 1
.
1
L = λ. Conforme combinado também será aceito (a, b) em qualquer ordem.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 3 / 30
4. 2) - Construa um APN que reconheça {am
bn
| m = n} 2
.
2
L = λ. Conforme combinado também será aceito (a, b) em qualquer ordem.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 4 / 30
5. 3) - Construa GLC’s para as linguagens:
a){02n
13n
| n ≥ 0}.
P → 00P111|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 5 / 30
6. 3) - Construa GLC’s para as linguagens:
b) {0n
1n
| n ≥ 0}{0n
1n
| n ≥ 0} ∪ {02n
13n
| n ≥ 1}.
P → XX|Y
X → 0X1|λ
Y → 00Y111|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 6 / 30
7. 3) - Construa GLC’s para as linguagens:
c) {an
bn+k
ck
| n, k ≥ 0}.
P → AC
A → aAb|λ
C → bCc|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 7 / 30
8. 3) - Construa GLC’s para as linguagens:
d) {am
bn
ck
| k ≥ m + n}.
P → XC
X → aXc|Y
Y → bYc|λ
C → cC|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 8 / 30
9. 4) - Seja a gramática G:
X → 0A | B1 | λ
A → X1
B → 0A
a) Que linguagem é gerada por G?
X → 0X1|0X11|λ
{0n
1k
|n ≤ k ≤ 2n}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 9 / 30
10. 4) - Seja a gramática G: b) Mostre que G é ambígua.
00111
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 10 / 30
11. 4) - Seja a gramática G:
X → 0A | B1 | λ
A → X1
B → 0A
c) Construa uma gramática não ambígua equivalente a G.
X → 0X11|Y
Y → 0Y1|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 11 / 30
12. 5) - Seja a gramática:
P → AAA | B | Ab
A → aA | B | BC
B → λ
C → BC
a)Se existirem símbolos inúteis, elimine-os.
{X|X →∗
w, w ∈ {a, b}∗
}; produzem sentença.
{B, A, P} → C é inútil
P → AAA|B|Ab
A → aA|B
B → λ
{X|P →∗
uXv} = {P, A, B}; determinando variáveis alcançaveis a partir
de P
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 12 / 30
13. 5) - b)Elimine regras λ.
Variáveis anuláveis = {B, A, P}
P → AAA|AA|A|B|Ab|b|λ
A → aA|a|B
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 13 / 30
14. 5) - c)Elimine regras unitárias.
enc(P) = {P, A, B}
enc(A) = {A, B}
enc(B) = {B}
P → AAA|AA|Ab|b|aA|a|λ
A → aA|a
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 14 / 30
15. 5) - d)Obtenha uma GLC equivalente na forma normal de
Chomsky.
Primeiro.
P → AAA|AA|AY|b|XA|a|λ
A → XA|a
X → a
Y → b
Segundo
P → AQ|AA|AY|b|XA|a|λ
A → XA|a
X → a
Y → b
Q → AA
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 15 / 30
16. 6) - Seja a gramática:
S → abAB
A → bAB | λ
B → bBAa | λ
C → BC
Obtenha uma GLC equivalente na forma normal de Chomsky.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 16 / 30
17. 6) - Eliminando-se regras λ
Variáveis anulavéis = {A, B}
S → abAB|abA|abB|ab
A → bAB|bA|bB|b
B → bBAa|bBa|bAa|ba
C → BC|C - remover C
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 17 / 30
18. 6) - Eliminando regra unitárias
enc(S) = {S}
enc(A) = {A}
enc(B) = {B}
enc(C) = {C}
S → abAB|abA|abB|ab
A → bAB|bA|bB|b
B → bBAa|bBa|bAc|ba
C → BC (C é inútil)
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 18 / 30
19. 6) - Variáveis e terminais
S → XYAB|XYA|XYB|XY
A → YAB|YA|YB|b
B → YBAX|YBX|YAX|YX
X → a
Y → b
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 19 / 30
20. 6) - Quebrando regras
S → XQ1|XQ3|XQ4|XY
Q1 → YQ2
Q2 → AB
Q3 → YA
Q4 → YB
A → YQ2|YA|YB|b
B → YQ5|YQ7|YQ6|YX
Q5 → BQ6
Q6 → AX
Q7 → BX
Y → a
X → b
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 20 / 30
21. 7) - Construa um APN que aceite a linguagem gerada pela
gramática3
:
S → aABB | aAA
A → aBB | a
B → bBB | A
3
L = λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 21 / 30
22. 8) - Mostre que são ou que não são linguagens livres do
contexto4
:
a) {w ∈ {a, b, c}∗ | na(w) = nb(w)}.
É LLC.
P → aPbP|bPaP|cP|λ
4
ns(w) é a quantidade do símbolo s na palavra w.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 22 / 30
23. 8) - Mostre que são ou que não são linguagens livres do
contexto:
b){w ∈ {a, b, c}∗ | na(w) = nb(w) ou na(w) = nc(w)}.
É LLC.
P → X|Y
X → aXbX|bXaX|cX|λ
Y → aYcY|cYaY|bY|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 23 / 30
24. 8) - Mostre que são ou que não são linguagens livres do
contexto:
c){w ∈ {a, b, c}∗ | na(w) = nb(w) = nc(w)}.
Não é LLC.
L ∩ {a}∗
{b}∗
{c}∗
= {an
bn
cn
|n ≥ 1} que não é LLC5
.
5
Exemplo 118, página 226 do livro texto.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 24 / 30
25. 9) - Mostre que sim ou que não; as linguagens livres do
contexto são fechadas sob:
a)Diferença.
Não:
∗
−L = ¬L. Se L é LLC, ¬L pode não ser, pois LLC’s não são
fechadas sob complemento6
.
6
Teorema 29, página 208 do livro texto.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 25 / 30
26. 9) - Mostre que sim ou que não; as linguagens livres do
contexto são fechadas sob:
b)Diferença simétrica7
.
Não: (
∗
−L) ∪ (L −
∗
) = ¬L Se L é LLC, ¬L pode não ser, pois LLC’s
não são fechadas sob complemento8
.
7
{x|x ∈ A ∪ B e x /∈ A ∩ B}
8
Teorema 29, página 208 do livro texto.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 26 / 30
27. 10) - Prove que as seguintes afirmativas são ou não
verdadeiras, considerando os casos em que (i) X é finita e
(ii) X é regular.
a)Se L é uma LLC, então L − X é uma LLC
(i) V: L − X = L ∩ ¬X
(ii) V: L − X = L ∩ ¬X
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 27 / 30
28. 10) - Prove que as seguintes afirmativas são ou não
verdadeiras, considerando os casos em que (i) X é finita e
(ii) X é regular.
b)Se L não é uma LLC, então L − X não é uma LLC.
(i) V: (L − X) ∪ (L ∩ X) = L Se (L − X) fosse LLC, L seria LLC.
(ii) F: L −
∗
=
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 28 / 30
29. 10) - Prove que as seguintes afirmativas são ou não
verdadeiras, considerando os casos em que (i) X é finita e
(ii) X é regular.
c)Se L não é uma LLC, então L ∪ X não é uma LLC.
(i) V: (L ∪ X) − (X − L) = L - Se (L ∪ X) fosse LLC, L seria LLC.
(ii) F: L ∪
∗
=
∗
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 09/06/2009 29 / 30
30. 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 09/06/2009 30 / 30