Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Fundamentos da Teoria da Computação - 1a Lista de Exercícios
1. Fundamentos da Teoria da Computação
Primeira Lista de Exercícios - Aula sobre dúvidas da lista
Sérgio Mariano Dias1
1
UFMG/ICEx/DCC
Entrega da 1a
lista: 31/03/2009
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 1 / 48
2. Exercício no
1 - Faça definições recursivas das seguintes
linguagens, considerando a concatenação como a operação
básica no passo recursivo:
a) A = {00}∗{1}∗;
λ ∈ A
Se x ∈ A então 00x ∈ A e x1 ∈ A
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 2 / 48
3. Exercício no
1 - Faça definições recursivas das seguintes
linguagens, considerando a concatenação como a operação
básica no passo recursivo:
b) B = {02n
1n
|n ∈ N};
λ ∈ B
Se x ∈ B então 00x1 ∈ B
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 3 / 48
4. Exercício no
1 - Faça definições recursivas das seguintes
linguagens, considerando a concatenação como a operação
básica no passo recursivo:
c) C = {w ∈ {0,1}∗ |w é palíndromo};
λ,0,1 ∈ C
Se x ∈ C então 0x0 ∈ C e 1x1 ∈ C
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 4 / 48
5. Exercício no
1 - Faça definições recursivas das seguintes
linguagens, considerando a concatenação como a operação
básica no passo recursivo:
d)D = {w ∈ {0,1}∗ |w contém 01}.
01 ∈ D
Se x ∈ D então 0x ∈ D, 1x ∈ D, x0 ∈ D e x1 ∈ D
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 5 / 48
6. Exercício no
2 - Perguntinhas:
a) Que palavras tem cada uma das linguagens a seguir?
/0 - nenhuma
/0∗ - somente λ
/0+
- nenhuma
{λ}∗ - somente λ
{λ}+
- somente λ
{0} - somente 0
{0}∗ - {0n
|n ≥ 0}
{0}+
- {0n
|n ≥ 1}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 6 / 48
7. Exercício no
2 - Perguntinhas:
b) Em que situações L∗ é infinita?
L∗ é infinita se, e somente, se L = 0 e L = {λ}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 7 / 48
8. Exercício no
2 - Perguntinhas:
c) Seja Σ = {a,b}. Explique que palavras pertencem a cada uma das
linguagens:
Σn
para cada n ≥ 0; que valor tem |Σn
|?
∑ = {w ∈ ∑∗
||w| = n}; |∑n
| = |∑|n
.
(Σ∪{λ})n
para cada n ≥ 0; que valor tem |(Σ∪{λ})n
|?
(∑∪{λ})n
= {w ∈ ∑∗
|0 ≤ |w| ≤ n}; |(∑∪{λ})n
| = ∑n
k=0(|∑|k
);
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 8 / 48
9. Exercício no
2 - Perguntinhas:
d) Sejam Σ = {a,b}, A = {a}Σ∗ e B = Σ+{b}. Descreva AA, A ∩B e
A −B.
AA = {ay|y ∈ {a,b}∗ e y contém a}
A ∩B = {axb|x ∈ {a,b}∗}
A −B = {w ∈ {a,b}∗|w começa e termina com a}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 9 / 48
10. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
a) O conjunto das palavras de 4 símbolos sem 00 e sem 11.
{0101,1010}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 10 / 48
11. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
b) O conjunto das palavras que começam com 0 e terminam com 1.
{0}{0,1}∗{1}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 11 / 48
12. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
c) O subconjunto das palavras de {0}∗{1}∗ com número par de 0s e
ímpar de 1s.
{00}∗{1}{11}∗
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 12 / 48
13. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
d) O conjunto das palavras com dois a dez símbolos.
{0,1}{0,1}{λ,0,1}8
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 13 / 48
14. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
e) O conjunto das palavras que contêm 00 ou 11 ou ambas.
({1}∗{00}∪{0}∗{11}){0,1}∗
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 14 / 48
15. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
f) O conjunto das palavras que contêm 00, mas não 11.
{0,1}∗{00}{0,1}∗ - {0,1}∗{11}{0,1}∗
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 15 / 48
16. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
g) O conjunto das palavras que não contêm 00.
{0,1}∗ - {0,1}∗{00}{0,1}∗
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 16 / 48
17. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
h) O conjunto das palavras em que todo 0 é seguido de pelo menos dois
1s consecutivos.
{011,1}∗
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 17 / 48
18. Exercício no
3 - Descreva as linguagens a seguir, todas
sobre o alfabeto {0,1}, usando apenas conjuntos finitos,
operações sobre conjuntos, concatenação e fecho de
Kleene. Procure obter uma descrição bem concisa.
i) O conjunto das palavras em que todo 0 é seguido de pelo menos dois
símbolos.
{1}∗ ∪{1}∗{0}{0,1}∗{11}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 18 / 48
19. Exercício no
4 - Identifique as linguagens que são geradas
pelas gramáticas a seguir:
a) G1 = ({P,X},{a,b},R1,P).
R1: P → aX |bP |λ
X → aP
{w ∈ {a,b}∗|w tem um número par de a s}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 19 / 48
20. Exercício no
4 - Identifique as linguagens que são geradas
pelas gramáticas a seguir:
b) G2 = ({P},{0,1},R2,P).
R2: P → 0P1|1P0|λ
{x¯x|x ∈ {0,1}∗} (¯x é o complemento de x)
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 20 / 48
21. Exercício no
4 - Identifique as linguagens que são geradas
pelas gramáticas a seguir:
c) G3 = ({A,X},{0,1},R3,A).
R3: A → XA|X
X → 0X1|λ
n≥0{ak
bk
|k ≥ 1}n
XA
XXA
XXX
X0X1X
X00X11X
X0011X. . .
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 21 / 48
22. Exercício no
4 - Identifique as linguagens que são geradas
pelas gramáticas a seguir:
d) G4 = ({X,A,#},{a,b},R4,X).
R4: X → aAX |#
Aa → aA
Ab → bA
A# → b#a
# → λ
{an
bn
an
|n ≥ 0}
aAX
aA#
ab#a
aba
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 22 / 48
23. Exercício no
5 - Obtenha gramáticas para as seguintes
linguagens:
a) {0,1}∗.
P → oP|1P|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 23 / 48
24. Exercício no
5 - Obtenha gramáticas para as seguintes
linguagens:
b) {0}∗{1}∗{0}∗.
P → ZUZ
Z → 0Z|λ
U → 1U|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 24 / 48
25. Exercício no
5 - Obtenha gramáticas para as seguintes
linguagens:
c) {0}{11}∗{0,λ}.
P → 0DF
D → 11D|λ
F → 0|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 25 / 48
26. Exercício no
5 - Obtenha gramáticas para as seguintes
linguagens:
d) {0}{0,1}∗ ∪{0,1}∗{1}.
Começa com 1 e termina com 0 ou é λ
P → 1A|λ
A → 1A|0B
B → 1A|0B|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 26 / 48
27. Exercício no
5 - Obtenha gramáticas para as seguintes
linguagens:
e) {w ∈ {a,b,c}∗ | o número de a’s em w é par}.
P → λ|aI|bP|cP
I → aP|bI|cI
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 27 / 48
28. Exercício no
5 - Obtenha gramáticas para as seguintes
linguagens:
f) {am
bm+n+1
cn
|m,n ≥ 0}.
P → AbC
A → aAb|λ
C → bCc|λ
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 28 / 48
29. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
a) O conjunto das palavras de 4 símbolos sem 00 e sem 11.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 29 / 48
30. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
b) O conjunto das palavras que começam com 0 e terminam com 1.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 30 / 48
31. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
c) O subconjunto das palavras de {0}∗{1}∗ com número par de 0s e
ímpar de 1s.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 31 / 48
32. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
d) O conjunto das palavras com dois a dez símbolos.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 32 / 48
33. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
e) O conjunto das palavras que contêm 00 ou 11 ou ambas.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 33 / 48
34. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
f) O conjunto das palavras que contêm 00, mas não 11.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 34 / 48
35. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
g) O conjunto das palavras que não contêm 00.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 35 / 48
36. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
h) O conjunto das palavras em que todo 0 é seguido de pelo menos dois
1s consecutivos.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 36 / 48
37. Exercício no
6 - Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
i) O conjunto das palavras em que todo 0 é seguido de pelo menos dois
símbolos.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 37 / 48
38. Exercício no
7 -Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
a) {w ∈ {0,1}∗ ||w| ≥ 2 e o penúltimo símbolo de w é 1}.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 38 / 48
39. Exercício no
7 -Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
b) {w ∈ {0,1}∗ | o último símbolo de w é igual ao primeiro}.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 39 / 48
40. Exercício no
7 -Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
c) {w ∈ {0,1}∗ | os três últimos símbolos de w não são 000}.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 40 / 48
41. Exercício no
7 -Construa autômatos finitos determinísticos
(AFDs) que reconheçam as linguagens da questão 3.
Apresente apenas os diagramas de estados.
d) {w ∈ {0,1}∗ | em w o símbolo da posição 2i é diferente daquele na
posição 2i +2 para cada i ≥ 1}.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 41 / 48
42. Exercício no
8 - Faça AFDs que reconheçam:
X = {w ∈ {0,1}∗ ||w| é par}. e Y = {w ∈ {0,1}∗ |w não
contém 00}. Bastam apenas os diagramas de estados. Em
seguida, obtenha o produto dos dois AFDs e explicite que
estados finais ele deve ter para reconhecer:
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 42 / 48
43. Exercício no
8 - Faça AFDs que reconheçam:
X = {w ∈ {0,1}∗ ||w| é par}. e Y = {w ∈ {0,1}∗ |w não
contém 00}. Bastam apenas os diagramas de estados. Em
seguida, obtenha o produto dos dois AFDs e explicite que
estados finais ele deve ter para reconhecer:
a) X ∩Y.
Final em X e final em Y.
b) X ∪Y.
final em X ou final em Y.
c) X −Y.
X ∩ ¯Y - Final em X e não é final em Y.
Estado inicial é o estado inicial de X e o estado inicial de Y - {SS}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 43 / 48
44. Exercício no
9 -Sejam as linguagens L1 = {0n
1n
0n
|n ∈ N}
e L2 = {0n
0n
0n
|n ∈ N}. Mostre que existe AFD que
reconhece L2 e que não existe AFD que reconhece L1.
L1 - É preciso ter “memória” para reconhecer a linguagem.
L2 -
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 44 / 48
45. Exercício no
10 - Explique:
a) Para um estado e e uma palavra x, se ˆδ(e,x) = e, então ˆδ(e,xn
) = e
para todo n ≥ 0.
ˆδ(e,x) = e - processa x e para em e.
ˆδ(e,xn
) = e - processa x n vezes e para em e.
Todas as transições são deterministicas.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 45 / 48
46. Exercício no
10 - Explique:
b) Se um AFD M reconhece uma palavra de tamanho maior ou igual ao
número de estados de M, então L(M) é infinita.
A palavra é maior ou igual ao número de estados, logo M precisa possuir
um loop.
Pode se passar pelo loop infinitas vezes.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 46 / 48
47. Exercício no
10 - Explique:
c) Seja um AFD M. Se X ⊆ L(M), então pode ser que exista ou não M
tal que L(M ) = X. Dica: considere M como sendo um AFD que
reconheça {0,1}∗.
Reconhece: {λ}
Não reconhece: {0n
1n
|n ≥ 1 e n ∈ N}
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 47 / 48
48. Obrigado pela atenção e boa prova.
Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação Entrega da 1a lista: 31/03/2009 48 / 48