Buscar

Lista 2 - Solução

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Área Conhecimento em Algoritmos e Teoria DCC/UFMG Fundamentos de Teoria da
Computação 2021/2
SOLUÇÃO DE LISTA DE EXERCÍCIOS
Lista 2
(Linguagens Livres-do-Contexto)
Leitura necessária:
• Introdução à Teoria da Computação, 2a Edição (Michael Sipser):
– Caṕıtulo 2.1: Gramáticas Livres-do-Contexto
– Caṕıtulo 2.2: Autômato com Pilha
– Caṕıtulo 2.3: Linguagens Não-livres-do-contexto
Revisão.
1. Responda formalmente às seguintes perguntas:
(a) Qual a definição formal de uma gramática livre-do-contexto?
Solução do professor: Uma gramática livre-do-contexto (GLC) é uma 4-tupla (V,Σ, R, S),
onde:
1. V é um conjunto finito denominado variáveis,
2. Σ é um conjunto finito, disjunto de V , denominado terminais,
3. R é um conjunto finito de regras, com cada regra sendo uma variável e uma cadeia de variáveis
e terminais, e
4. S ∈ V é uma variável inicial (ou variável de partida).
(b) O que é uma linguagem livre-do-contexto?
Solução do professor: Uma linguagem livre-do-contexto é uma linguagem que pode ser gerada
por uma gramática livre-do-contexto.
(c) O que significa dizer que uma gramática amb́ıgua? O que significa dizer que uma linguagem é
inerentemente amb́ıgua?
Solução do professor: Uma gramática G é amb́ıgua se ela gera alguma cadeia ambiguamente,
ou seja, se existe pelo menos uma cadeia w que possui duas ou mais derivações mais à esquerda
diferentes em G.
Uma linguagem L é inerentemente amb́ıgua se toda GLC para L é amb́ıgua (ou seja, se não é
posśıvel construir uma GLC não-amb́ıgua para L).
(d) Qual a definição formal de um autômato com pilha?
1
Solução do professor: Um autômato com pilha (AP) é uma 6-tupla (Q,Σ,Γ, δ, q0, F ), onde:
1. Q é um conjunto finito de estados,
2. Σ é o alfabeto (finito) de entrada,
3. Γ é o alfabeto (finito) de pilha,
4. δ : Q× Σ� × Γ� → P(Q× Γ�) é a função de transição (onde Σ� = Σ ∪ {�} e Γ� = Γ ∪ {�}),
5. q0 ∈ Q é o estado inicial, e
6. F ⊆ Q é o conjunto de estados de aceitação (ou estados finais).
(e) O que diz o lema do bombeamento para linguagens livres-do-contexto?
Solução do professor: O Lema do bombeamento (LB) para linguagens livres-do-contexto diz
que se A é uma linguagem livre do contexto, então existe um número p, chamado de comprimento
de bombeamento, tal que, se s é uma cadeia qualquer em A de comprimento pelo menos p, então
s pode ser divida em cinco partes
s = uvxyz
satisfazendo as seguintes condições:
1. para cada i ≥ 0, uvixyiz ∈ A,
2. |vy| > 0, e
3. |vxy| ≤ p.
(f) Explique como o lema do bombeamento para linguagens livres-do-contexto pode ser utilizado
para demonstrar que uma linguagem não é livre-do-contexto.
Solução do professor: Para usar o lema do bombeamento para linguagens livres-do-contexto
para mostrar que uma linguagem L não é livre-do-contexto:
1. Assuma que L seja livre-do-contexto.
2. Use o LB para garantir que existe um comprimento p tal que toda cadeia s ∈ L com compri-
mento maior que p possa ser bombeada.
3. Encontre uma cadeia s ∈ L com comprimento maior que p que não possa ser bombeada,
mostrando que para qualquer divisão de s = uvxyz (satisfazendo as condições do LB de que
|vy| > 0 e |vxy| ≤ p), existe pelo menos um valor de i tal que uvixyiz /∈ L.
4. Como você chegou a uma contradição, pois (3) contradiz (2), sua hipótese em (1) era falsa, e
L não pode ser uma linguagem livre-do-contexto.
Exerćıcios.
2. (Sipser 2.2)
(a) Use as linguagens A = {ambncn | m,n ≥ 0} e B = {anbncm | m,n ≥ 0} juntamente com
o Exemplo 2.36 (que mostra que a linguagem {anbncn | n ≥ 0} não é livre-do-contexto) para
mostrar que a classe das linguagens livres-do-contexto não é fechada sob interseção.
(b) Use a parte (a) e a lei de DeMorgan (Teorema 0.20) para mostrar que a classe de linguagens
livres-do-contexto não é fechada sob complementação.
2
Solução do professor:
(a) A linguagem A = {ambncn | m,n ≥ 0} é uma LLC, pois possui a seguinte GLC:
P →AY
A→ aA | �
Y → bY c | �
A linguagem B = {anbncm | m,n ≥ 0} é uma LLC, pois possui a seguinte GLC:
P →XC
X → aXb | �
C → cC | �
Mas a interseção delas é A ∩B = {anbncn | n ≥ 0}, que pelo Exemplo 2.36 sabemos não ser uma
LLC. Logo LLCs não são fechadas sob interseção.
(b) Vamos mostrar que a classe das LLCs não é fechada sob complementação. A prova é por con-
tradição.
Assuma que a classe das linguagens livres-do-contexto fosse fechada sob complementação.
Mas note que sabemos que LLCs são fechadas sob união, e sabemos que (por DeMorgan)
A ∩B = A ∪B.
Logo, se LLCs fossem fechadas sob complementação, elas também seriam fechadas sob interseção,
o que é um absurdo (já provamos que elas não são). Assim conclúımos que a classe das LLCs não
é fechada sob complementação.
3. (Sipser 2.3) Responda a cada item para a seguinte gramática livre-do-contexto G.
R→ XRX | S
S → aTb | bTa
T → XTX | X | �
X → a | b
(a) Quais são as variáveis de G?
(b) Quais são os terminais de G?
(c) Qual é a variável inicial de G?
(d) Dê três cadeias em L(G).
(e) Dê três cadeias que não estão em L(G).
(f) Verdadeiro ou Falso: T ⇒ aba.
(g) Verdadeiro ou Falso: T
∗⇒ aba.
(h) Verdadeiro ou Falso: T ⇒ T .
(i) Verdadeiro ou Falso: T
∗⇒ T .
(j) Verdadeiro ou Falso: XXX
∗⇒ aba.
(k) Verdadeiro ou Falso: X
∗⇒ aba.
(l) Verdadeiro ou Falso: T
∗⇒ XX.
(m) Verdadeiro ou Falso: T
∗⇒ XXX.
(n) Verdadeiro ou Falso: S
∗⇒ �.
(o) Dê uma descrição em português de L(G).
Solução do professor: Solução dada no livro-texto.
4. (Sipser 2.4 - itens (a), (d)) Dê gramáticas livres-do-contexto que gerem as seguintes linguagens. Em
todos os itens o alfabeto Σ é {0, 1}.
Obs: Também dê diagramas de estados de autômatos com pilha para estas linguagens.
(a) {w | w contém pelo menos três 1’s}.
(d) {w | o comprimento de w é ı́mpar e o śımbolo do meio é um 0}.
3
Solução do professor:
a) GLC: dada no livro-texto.
Diagrama do autômato com pilha dado na figura seguinte.
d) GLC: dada no livro-texto.
Diagrama do autômato com pilha dado na figura seguinte.
5. (Sipser 2.6 - itens (a), (c)) Dê gramáticas livres-do-contexto gerando as seguintes linguagens.
Obs: Também dê diagramas de estados de autômatos com pilha para estas linguagens.
(a) O conjunto de cadeias sobre o alfabeto {a, b} com mais a’s que b’s.
(c) {w#x | wR é uma subcadeia de x para w, x ∈ {0, 1}∗}
Solução do professor:
(a) GLC: dada no livro-texto.
Diagrama do autômato com pilha dado na figura seguinte.
(c) GLC: dada no livro-texto.
Diagrama do autômato com pilha dado na figura seguinte.
4
6. (Sipser 2.8) Mostre que a cadeia the girl touches the boy with the flower tem duas derivações
mais à esquerda diferentes na gramática G2 da página 107. Descreva em português os dois significados
diferentes dessa sentença.
Solução do professor: Dada no livro-texto.
7. (Sipser 2.11) Converta a GLC G4 dada no Exerćıcio 2.1 para um AP equivalente, usando o procedi-
mento dado no Teorema 2.20.
Solução do professor: Vide figura abaixo.
8. (Sipser 2.14) Converta a seguinte GLC numa GLC equivalente na forma normal de Chomsky, usando
o procedimento dado no Teorema 2.9.
A→ BAB | B | �
B → 00 | �
Solução do professor: Para colocar a seguinte GLC na forma normal de Chomsky
A→ BAB | B | �
B → 00 | �
nós seguimos os seguintes passos.
Primeiro adicionamos uma nova variável de partida:
S → A
A→ BAB | B | �
B → 00 | �
Eliminamos a regra B → �:
S → A
A→ BAB | B | � | AB | BA | A
B → 00
Eliminamos a regra A→ �:
S → A | �
A→ BAB | B | AB | BA | A | BB
B → 00
5
Eliminamos a regra inútil A→ A:
S → A | �
A→ BAB | B | AB | BA | BB
B → 00
Eliminamos a regra unitária A→ B:
S → A | �
A→ BAB | AB | BA | BB | 00
B → 00
Eliminamos a regra unitária S → A:
S → � | BAB | AB | BA | BB | 00
A→ BAB | AB | BA | BB | 00
B → 00
Inclúımos uma nova regra Z → 0:
S → � | BAB | AB | BA | BB | ZZ
A→ BAB | AB | BA | BB | ZZ
B → ZZ
Z → 0
Inclúımos uma nova regra U →BA:
S → � | UB | AB | BA | BB | ZZ
A→ UB | AB | BA | BB | ZZ
B → ZZ
Z → 0
U → BA
Note que a GLC acima está na forma normal de Chomsky pois toda regra ou tem exatamente duas
variáveis ou exatamente um terminal no lado direito, e a única regra � está na variável de partida.
9. (Sipser 2.16) Mostre que a classe de linguagens livres-do-contexto é fechada sob as operações regulares,
união, concatenação e estrela (fecho de Kleene).
Solução do professor: Solução dada nos slides da disciplina.
10. (Sipser 2.30 - itens (b) e (c)) Use o lema do bombeamento para mostrar que as seguintes linguagens
não são livres do contexto.
(b) {0n#02n#03n | n ≥ 0}
(c) {w#t | w é uma subcadeia de t, onde w, t ∈ {a, b}∗}
Solução do professor: Dada no livro-texto.
6

Continue navegando