Buscar

P3 - 2013.2 - Gabarito (Prof. Clarisse)

Prévia do material em texto

P3 de INF1626 – Turma 3WA / 4 de dezembro de 2013 de 09:05 às 10:55 horas p. 1 
 
Prova 3 de INF1626 – Linguagens Formais e Autômatos 
Aluno(a): 
Matrícula: 
 
Atenção: O tempo total de prova é de 110 minutos (09:05 às 10:55). Durante a prova não é permitido 
o uso de qualquer aparelho eletrônico (por exemplo: telefone celular, iPod ou MP3 Player, Tablets, 
etc.). Se alguém insistir em usar um, sua prova será anulada. 
 
Os alunos não devem se ausentar da sala durante a prova. Caso isto ocorra, o(a) professor(a) terá a 
opção de acatar ou não as questões respondidas após o retorno do aluno à sala. 
As provas só podem ser entregues depois de decorridos 30 minutos do tempo de realização. Nenhum 
aluno poderá começar a prova depois de o primeiro aluno entregar a dele e sair de sala. 
 
Pedidos de revisão de questões feitas a lápis poderão ser acatados ou não, dependendo do estado do 
manuscrito de prova. Qualquer pedido de revisão deve ser apresentado por escrito, conforme tiver sido 
comunicado à turma em sala de aula ou por email. 
 
Boa prova a todos! 
 
Parte I 
Questões de confirmação para avaliação do trabalho 
 
Estas questões estão formatadas em uma única tabela, na folha 2 desta prova. 
Queira prenchê-la a caneta. Não serão aceitas tabelas preenchidas a lápis. 
 
Suas respostas para as questões de confirmação totalizarão um fator F de 0 a 
1 que será multiplicado pela pontuação atribuída a cada parte do seu trabalho, 
já corrigido. F poderá assumir os seguintes valores, nas condições associadas: 
 
• F=1 para todo aluno que cujas respostas preenchidas na tabela sejam 
100% consistentes com o que verificamos ao corrigir o trabalho; 
 
• 0 
 
 ≤≤≤≤F<1 para todo aluno cujas respostas preenchidas na tabela acusem 
inconsistências com o que verificamos ao corrigir o trabalho (o valor 
de F será inversamente proporcional à extensão das inconsistências 
encontradas) 
 
• F=0 para todo aluno que não preencher a tabela, ou seja: respostas não 
preenchidas serão consideradas inconsistentes uma vez que as 
alternativas apresentadas cobrem todos os casos já verificados na 
correção. 
 
O trabalho vale 40% da prova, ou seja 4 pontos em 10. Sendo P a pontuação 
já atribuída por nossa correção ao trabalho entregue, a nota final do trabalho 
será calculada pela fórmula: Nota do Trabalho = F x P. 
 
A nota da prova será calculada pela seguinte fórmula: 
 
Nota da Prova = Nota do Trabalho [0..4] + Nota da Parte II [0..6] 
 
P3 de INF1626 – Turma 3WA / 4 de dezembro de 2013 de 09:05 às 10:55 horas p. 2 
 
 
Preencha a tabela abaixo, marcando com um ‘x’ as opções que se aplicam ao trabalho 
que você entregou para compor a nota da P3. 
 
 Funciona para a Massa de Testes 1 
 
Funciona para a Massa de Testes 2 
1. Algoritmo de 
eliminação de 
símbolos 
inúteis 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
2. Algoritmo de 
eliminação de 
símbolos 
inacessíveis 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
3. Algoritmo de 
eliminação de 
produções em 
vazio 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
4. Algoritmo de 
eliminação de 
produções 
unitárias 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
5. Algoritmo de 
eliminação de 
recursões à 
esquerda 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
6. Algoritmo de 
normalização 
das produções 
pela FNG 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
( ) Sim. 
( ) Não sei; não testei. 
( ) A minha implementação deste 
algoritmo não está funcionando. 
( ) O meu trabalho não inclui nenhuma 
implementação para este 
algoritmo. 
 
Se você tem alguma observação a adicionar, escreva aqui: 
_____________________________________________________________________ 
_____________________________________________________________________ 
_____________________________________________________________________ 
_____________________________________________________________________ 
_____________________________________________________________________ 
 
P3 de INF1626 – Turma 3WA / 4 de dezembro de 2013 de 09:05 às 10:55 horas p. 3 
 
Parte II 
Questões sobre a matéria da prova 
 
1. Sobre a linguagem L = anbncn para n>0 podemos afirmar que: (marque V ou F) 
[ 1 ponto] 
a. se trata de uma linguagem livre de contexto. ( ) V (X) F 
b. não se trata de uma linguagem livre de contexto porque não é possível 
aplicar a suas cadeias o Lema do Bombeamento para as linguagens livres de 
contexto. (X) V ( ) F 
c. seria uma lingagem livre de contexto se n ≥≥≥≥ 0, ou seja: o que impede a 
aplicação do Lema do Bombeamento a L é não ser possível operar uma 
retração nas cadeias em an e cn em torno de bn. ( ) V (X) F 
d. seria uma linguagem livre de contexto se a subcadeia bn fosse uma 
concatenação do sufixo de an com o prefixo de cn. ( ) V ou (X) F 
e. seria uma linguagem livre de contexto se as cadeias de L tivessem o padrão 
anbncm ou anbmcn ou ambncn para n,m>0. (X) V ou ( ) F 
 
2. Sejam as produções P de uma Gramática G, expressas convencionalmente abaixo 
através de cadeias de símbolos terminais e não terminais. 
[ 2 pontos] 
 
P = { 
 S � ID | IMD 
 I � n | nn | nnn 
 M � pnnn | pnnnM 
 D � vmm 
 } 
 
a. Utilizando a norma EBNF , escreva um conjunto de produções P’ que 
especifica a mesma linguagem que P, mas que contém, comparativamente, 
um número menor de produções. Como unidade de contagem para 
produções, você pode utilizar o número de não terminais. Assim, por 
exemplo, uma boa solução seria reduzir o número de produções à metade (de 
4 em P para 2 em P’), ou até mesmo reescrever toda a gramática em uma 
única linha de produção. 
 
Na EBNF, por convenção: os símbolos não terminais são representados através de literais 
maiúsculos, entre ‘<’ e ‘>’ (exemplo: <S>); o operador de reescrita é representado por ‘::=’ 
(exemplo: <S> ::= ...); e para efeitos de simplificação notacional são admitidas do ladodireito 
das produções, expressões regulares (exemplo: (a | b)* c+ (da+)*). 
 
 
P’ = { 
<S> ::= (n|nn|nnn) (pnnn)* (vmm) 
} 
 
b. Sendo G uma gramática livre de contexto, a linguagem LG por ela 
especificada pode ser reconhecida por qualquer tipo de autômato associado 
a linguagens menos restritas do que ela na Hierarquia de Chomsky. 
Especifique as transições de estado de uma Máquina de Turing MT 
 
P3 de INF1626 – Turma 3WA / 4 de dezembro de 2013 de 09:05 às 10:55 horas p. 4 
 
(determinística ou não, de fita limitada ou ilimitada, a seu critério) que 
reconheça LG. Note que você não precisa apresentar a especificação 
completa de MT; basta apresentar o conjunto completo de transições que 
ela deve efetuar para reconhecer LG sobre o alfabeto Σ = {n, m, p, v}. 
 
S = { (qi,<) → (q0,<,D) ; (q0,n) → (q1,n,D) ; (q1,n) → (q2,n,D) ; (q1,p) → (q4,p,D) ; 
(q1,v) → (q8,v,D) ; (q2,n) → (q3,n,D) ; (q2,p) → (q4,p,D) ; (q2,v) → (q8, v,D) ; (q3,p) 
→ (q4,p,D) ; (q3,v) → (q8,v,D) ; (q4,n) → (q5,n,D) ; (q5,n) → (q6,n,D) ; (q6,n) → 
(q7,n,D) ; (q7,p) → (q4,p,D) ; (q7,v) → (q8,v,D) ; (q8,m) → (q9,m,D) ; (q9,n) → 
(q10,m,D) } 
 
Máquina de Turing determinística e de fita limitada, com estado inicial qi, estado final 
q10, marcador de início de fita <. 
 
c. Dadas as características de gravação e movientação de cabeçote de MT, 
você tem argumentos para afirmar que LG não é uma linguagem 
estritamente livre de contexto? Justifique sua resposta. 
 
Como o cabeçote da MT apresentada simplesmente lê cada terminal da cadeia de 
entrada, sem ter que gravar quaisquer informações de apoio ao processamento, para 
então o controlador fazer uma transição determinística entre estados, pode-se ver 
claramente que a máquina opera como um autômato finito determinístico. A 
linguagem em questão, portanto, não é estritamente livre de contexto, pois é uma 
linguagem regular. 
 
3. Em um processo de simplificação de gramáticas livres de contexto, a aplicação do 
algoritmo de eliminação dos símbolos inúteis influencia o resultado do algoritmo 
de eliminação de símbolos inacessíveis ? E o contrário, pode-se afirmar ? 
Justifique a sua resposta. 
[ 0,5 pontos] 
 
A ordem de aplicação não importa. Podemos ter: 
 1. símbolos úteis e acessíveis 
 2. símbolos úteis e inacessíveis 
 3. símbolos inúteis e acesssíveis 
 4. símbolos inúteis e inacessíveis 
Queremos tratar os casos 2, 3 e 4. O caso 4 trivialmente não depende da ordem, pois 
seriam eliminados por ambos os algoritmos. 
Agora, pode-se observar que os casos 2 e 3 representam partições disjuntas do 
conjunto de não-terminais. Deste modo, a aplicação de cada algoritmo eliminaria 
apenas os membros de seu respectivo conjunto (e produções de outros não-terminais 
que usassem tais membros). Assim, a ordem não importa. 
 
4. Considere o seguinte algoritmo de eliminação de produções em vazio (Ramos, 
2009), cuja implementação era parte do trabalho proposto para a sua turma. 
[ 2 pontos] 
 
Entrada: uma gramática livre de contexto G=(V=N∪Σ, Σ, P, S). 
Saída: uma gramática livre de contexto G′=(V′=N′∪Σ, Σ, P′, S′), tal que L(G′) = L(G) e: 
 i) Se ε ∉ L(G), então não há produções em vazio em G', ou 
 
P3 de INF1626 – Turma 3WA / 4 de dezembro de 2013 de 09:05 às 10:55 horas p. 5 
 
 ii) Se ε ∈ L(G), então a única produção em vazio em G' é S' → ε, onde S' é 
 a raiz de G' e S' não aparece no lado direito de nenhuma produção. 
 
Método: 
1. E0 ← {A | A → ε ∈ P}; 
2. i ← 1; 
3. Ei ← Ei-1 ∪ {A | A → X1X2...Xn ∈ P e X1,X2...Xn ∈ Ei−1}; 
4. Se Ei ≠ Ei−1, então: 
 a) i ← i + 1; 
 b) Desviar para (3); 
Caso contrário: 
 a) E ← Ei-1; 
5. P' ← ∅; 
6. P' ← { A → β ∈ P | β ≠ ε }; 
7. Considerem-se as produções de P' no formato: 
 A → α0B1α1B2α2...Bkαk, com αi ∈ (V-E)
+
 e Bi ∈ E 
A versão final do conjunto P' é obtida acrescentando-se à sua versão anterior o conjunto das 
produções obtidas pela substituição dos símbolos Bi, 0 ≤ i ≤ k por ε, considerando-se todas as 
combinações possíveis, sem no entanto gerar a produção A → ε. 
8. Se S ∈ E, então: 
 a) P' ← P' ∪ {S' → S | ε}; 
 b) N' ← N ∪ {S'}; 
 Caso contrário: 
 a) N' ← N; 
 b) S' ← S. 
 
Aplique este algoritmo à gramática livre de contexto G, abaixo, e apresente as 
produções da gramática G’ que resulta desta simplificação (não é preciso mostrar os 
passos do algoritmo, mas as produções resultantes têm de espelhar exatamente o 
resultado da sua aplicação). 
 
G = 
S → aAbBcC 
A → aA | ε 
B → bB | aA | ε 
C → aA | ε | bB 
 
G’ = 
S → aAbBcC | abBcC | aAbcC | aAbBc | aAbc | abBc | abcC | abc 
A → a | aA 
B → b | bB | a | aA 
C → a | aA | b | bB 
 
 
P3 de INF1626 – Turma 3WA / 4 de dezembro de 2013 de 09:05 às 10:55 horas p. 6 
 
 
5. Qual a ordem máxima (pior caso) da complexidade de espaço das Máquinas de 
Turing de Fita Limitada em relação ao tamanho da entrada que processam: 
constante, linear ou quadrática? Justifique a sua resposta. 
[ 0,5 pontos] 
 
Como a máquina de Turing é de fita limitada (ou seja, pode-se escrever apenas nos 
espaços ocupados pela cadeia de entrada), usam-se, no pior caso, todos os n espaços 
da cadeia de entrada para armazenamento de informações de amparo ao 
processamento da cadeia. Assim, temos uma complexidade de espaço que, no pior 
caso, é n. Portanto, é linear.

Continue navegando