Preview only show first 10 pages with watermark. For full document please download

Provas De Pcs2214 - 2214 P3 Gab Total 11

P1 P2 P3 de pcs de diversos anos

   EMBED


Share

Transcript

PCS - 2214 Fundamentos de Engenharia de Computação I Questão 1 (valor: 3,0 pontos): GABARITO Uma das formas de se especificar a gramática de uma linguagem de programação é utilizar a Backus-Naur Form (BNF). Nela, símbolos não terminais (variáveis) são definidos por rótulos entre “< >” e o sinal que indica as possíveis produções de um símbolo é o “::=”.Para simplificar a representação das gramáticas, há a forma estendida da BNF, a EBNF. Seu uso permite a inclusão de operadores de opcionalidade, o operador “[ ]” que indica o uso opcional do não-terminal (ou expressão com não-terminal) incluído no colchete, e de repetição, o operador “{ }” que indica possibilidade de repetir o não-terminal entre chaves, uma ou mais vezes. Seja a EBNF abaixo que expressa a linguagem de uma calculadora binária. ::= [ ] ::= + | − | × | ÷ ::= [−]{} ::= 0 | 1 Pede-se: a) (valor: 0,3 pontos) A cadeia − 1011 ÷ 11 × − 101 pertence a esta linguagem? SIM ( X ) b) NÃO ( ) (valor: 0,4 pontos) Considere o seguinte exemplo: a derivação da cadeia − 1 + 0 sempre feita por substituições ordenadas da esquerda para a direita, substituindo somente um não-terminal por passo. Início Passo 1 Passo 2 Passo 3 Passo 4 Passo 5 Passo 6 Passo 7 ⇒ − ⇒ − 1 ⇒ − 1 + ⇒ − 1 + ⇒ − 1 + ⇒ −1+0 Seguindo este mesmo procedimento (esquerda para a direita, uma substituição por passo), indique qual seria o resultado do Passo 7 (se existir) da derivação da cadeia 11 + − 10 e quantos passos são necessários para gerar a cadeia. Caso não exista o Passo 7, escreva “Não existe” no campo apropriado. Início Passo 7 ⇒ 11 + − Passo 9 ⇒ 11 + − 10 Início Passo 1 Passo 2 Passo 3 Passo 4 Passo 5 Passo 6 Passo 7 Passo 8 Passo 9 ⇒ 1 ⇒ 11 ⇒ 11 + ⇒ 11 + ⇒ 11 + − ⇒ 11 + − 1 ⇒ 11 + − 10 c) (valor: 0,8 pontos) Complete o diagrama de transições de um autômato finito determinístico que decide esta linguagem. +, −, ÷, × 0 A − B 1 C 0, 1 0, 1 +, ÷, × +, −, ÷, × D +, −, ÷, ×,0,1 d) (valor: 0,8 pontos) Forneça a gramática regular equivalente deste autômato (dada pelo procedimento de transformação do autômato finito) G = (N, T, P, A) N = { A, B, C, D} T = { 0, 1, +, −, ÷, ×} P={ A→−B A→0C A→1C A→+D A→÷D A→×D B→0C B→1C B→+D B→−D B→÷D B→×D C→0C C→1C C→+A C→−A C→÷A C→×A D→0D C→λ D→1D D→+D D→−D D→÷D D→×D } e) (valor: 0,7 pontos) Complete a expressão regular desta linguagem L(G)= ((− −(0∪ ∪1)) ∪ (0∪ ∪1)) (0∪ ∪1)*(( + ∪ − ∪ ÷ ∪ × ) ((− −(0∪ ∪1)) ∪ (0∪ ∪1)) (0∪ ∪1)*)* OBS: pode haver mais ou menos parênteses, desde que sejam apropriados. Considere α = ((− −(0∪ ∪1)) ∪ (0∪ ∪1)) (0∪ ∪1)*, que corresponde à aceitação de um numero binário com um ou mais bits, com ou sem o sinal − no início. Se a entrada for somente α , o AF aceita. Porém, o AF também deve aceitar se α for seguido por um operador (+ ou − ou ÷ ou ×) e novamente um número binário com 1 ou mais bits, antecedido ou não por −. Assim, R=L(G) = α (( + ∪ − ∪ ÷ ∪ × ) α )*. Questão 2 (valor: 2,2 pontos) a) (valor: 1,2 pontos) O “complemento de dois” de um número inteiro positivo é frequentemente utilizado para se representar computacionalmente um número inteiro negativo. O cálculo do complemento de dois pode ser realizado da seguinte forma: 1. Considerando-se a representação binária de um número inteiro, inicia-se pelo bit mais à direita, percorrendo a cadeia para a esquerda; 2. Todos os bits 0 e o primeiro bit 1 encontrados são mantidos sem alterações; 3. A partir desse ponto, todos os bits seguintes são invertidos (0 se torna 1 e viceversa). Complete o diagrama da máquina de Turing, a seguir, para que ela calcule o complemento de dois de uma cadeia de entrada da forma Xb1b2b3...bn onde b1...bn são símbolos 0 ou 1 e X é utilizado para marcar o início da cadeia. Por exemplo, para a cadeia de entrada X01010010 o resultado é X10101110. Considera-se que todas as transições não incluídas levam para o estado de rejeição. Uma solução possível: b) (valor: 1,0 pontos) Indique a sequência de configurações da máquina apresentada anteriormente para a cadeia de entrada X0100: (solução para a máquina acima) 1 AX0100 6 X0100B 11 DX1100 2 XB0100 7 X010C0 12 XσA1100 3 X0B100 8 X01C00 13 4 X01B00 9 X0C100 14 5 X010B0 10 XD0100 15 Prova Tipo 1 Tipo 2 Tipo 3 Q1 D B D Q2 C C C Q3 D A B Q4 B C A Q5 C A E Q6 B B D Q7 A D E Q8 E E C Testes tipo 1 (valor: 4,8 pontos) . 1. Seja L a linguagem de todas as listas estilo SCHEME bem formadas sobre o alfabeto Σ = { a, (, ) }. Isto é, Σ contém exatamente três símbolos: o “a” minúsculo, o parêntese esquerdo e o parêntese direito. Uma lista estilo SCHEME é • a lista vazia, escrita ( ), ou • uma lista cujos elementos são ocorrências do átomo a, como (a) ou (aa), ou • uma lista cujos elementos são outras listas, como (( )(aa)(aaa)), ou • uma lista cujos elementos são ocorrências do átomo a ou outras listas, como: (a(a)a( )( )), ou (a(aa)(a(aa))), ou (((a))). Considerando que listas com parênteses são descrições de árvores, onde cada nível da árvore está aninhada dentro de parênteses, e que o primeiro vértice da esquerda para a direita é a raiz da sub-árvore e os demais são sub-árvores na seqüência em que aparecem. Ex: (a (a a) (a a)) a a a a a L é uma linguagem regular? a. Sim, porque a gramática que gera essa linguagem é regular. b. Não, ela é dependente de contexto porque todas as linguagens são dependentes de contexto. c. Sim, porque pelo Teorema a respeito de reconhecimento de linguagens regulares e pelo fato de representar uma árvore (hierarquia) sempre é possível construir um autômato finito para reconhecer a mesma quantidade de parênteses à esquerda e à direita. d. Não, porque pelo Teorema a respeito de reconhecimento de linguagens regulares e pelo fato de representar uma árvore (hierarquia) não é possível construir um autômato finito e controlar a mesma quantidade de parênteses esquerdos e direitos preservando a ordem deles, ou seja, os parênteses esquerdos sempre aparecem antes dos parênteses direitos. e. Nenhuma das outras alternativas é correta. Resposta:: Alternativa d A linguagem (n)n é livre de contexto não regular. 2. Assinale a alternativa incorreta: a. P é a classe dos problemas decidíveis por máquina de Turing estritamente determinística, cujo tempo de execução possa ser expresso por uma função do comprimento da cadeia de entrada, função esta limitada superiormente por um polinômio. b. Se um problema B pertence à classe NP e se todo problema A pertencente a NP puder ser reduzido a B em tempo polinomial, então B pertence à classe NPCompleto. c. O problema do CLIQUE pertence à classe P de problemas. d. NP é a classe de problemas verificáveis por máquina de Turing estritamente determinística, cujo tempo de verificação possa ser expresso por uma função do comprimento da cadeia de entrada, função esta limitada superiormente por um polinômio. e. Pelo menos uma das outras alternativas é incorreta. Resposta: Alternativa c a), b) d) e) Verdadeiros c) Falso, o problema do CLIQUE pertence à classe NP de problemas. 3. Seja a linguagem L(w) a linguagem obtida a partir de w, que é uma expressão regular sobre Σ = {a, b}. Admita-se que w = a (a ∪ b)*. É possível construir um autômato finito determinístico com apenas 2 estados que decida L(w)? E um autômato finito não-determinístico com apenas 2 estados que decida L(w)? a. Não para ambos. Porque esta linguagem admite seqüências com qualquer quantidade de símbolos a e b e, dessa maneira, é necessário controlar cada um dos símbolos. Logo, é necessário ter dois estados para esse fim e mais um de finalização com aceitação. b. Sim para ambos, porque esta linguagem admite seqüências com qualquer quantidade de símbolos a e b e no mínimo um símbolo a; dessa maneira, é necessário controlar o recebimento de um único símbolo a. Logo, é necessário ter dois estados para esse fim, um deles de finalização com aceitação. c. Não para ambos, porque aceitar uma linguagem implica em ler a cadeia inteira, o que é impossível com apenas dois estados. d. Não para determinístico e Sim para não-determinístico, porque dois estados bastam para ler toda a cadeia, embora sem finalização por não-aceitação; assim, em um modelo determinístico isso pode ser resolvido acrescentando mais um estado alcançável a partir do estado inicial. e. Sim para determinístico e Não para não-determinístico, porque bastará ler a cadeia com um estado e decidir com outro, mas o modelo não-determinístico tem pelo menos três estados. Resposta: Alternativa d Um AFD precisa ter uma função total de transição enquanto que um AFND não precisa. 4. A cadeia w=acbabc pode ser derivada da gramática G=(N,T,P,S), com N={S,A,B}, T={a,b,c} como se segue: S ⇒ aAB ⇒ aBbaB ⇒* acbabB ⇒ acbabc=w. As regras de produção de G são: a. b. c. d. e. P = {S → aA, A → aAB, B → b, A → a, A → c}. P = {S → aAB, A → Bba, B → bB, B → c}. P = {S → aAB, AB → bB, B → b, B → AB, A → c}. P = {S → aAB, AB → c, A → b, B → AB, B → c}. P = {S → aB, B → bA, B → b, B → a, A → aB, A → c }. Resposta: Alternativa b A partir do 1º passo de derivação só poderiam ser alternativas válidas b, c, d. No 2º passo de derivação a regra utilizada foi A → Bba, logo a única alternativa válida é a b. 5. Considere o AFND At a seguir e seja M um AFD equivalente a At, obtido a partir do teorema sobre transformar um AFND em um AFD equivalente. Seja ainda a gramática G=(N,T,P,σ), para N={σ,A,B}, T={a,b}, P={σ→aA, A→aA, A→a, A→aB, B→bA} Assinale a alternativa correta: a. Podemos afirmar que M possui exatamente 3 estados após a supressão de estados não atingíveis. b. Podemos afirmar que M possui exatamente 5 estados após a supressão de estados não atingíveis. c. Podemos afirmar que Ac(At)=L(G), onde L(G) é a linguagem gerada por G. d. A expressão regular a*a(ba)* descreve cadeias que são aceitas pelo AFND At. e. Nenhuma das outras alternativas é correta. Resposta: alternativa c a. e b. falsas pois M possui 4 estados após supressão dos estados inatingíveis c. CORRETA: vide teorema para encontrar a gramática que gera o conjunto de cadeias aceitas pelo AF. d. falsa a cadeia formada apenas pelo caractere a não é aceita por At. e. falsa pois c é correta 6. Considere a máquina de Turing MA a seguir, cujos símbolos da fita Γ={1, #, X, b}, estado inicial Ai e estado final Af e a configuração inicial Ai 1 1 1 1 # 1 1 1 b, onde # representa um operador aritmético. 1→D MA : Ai 1→D # → 1,D #→ E b→ E A1 A2 1→X,E A3 1→X,E Af Assinale a alternativa correta: a. A configuração após o final da execução de MA é 1 1 1 1 1 1 Af 1 X b b. A configuração após o final da execução de MA é 1 1 1 1 1 1 Af X X b c. A configuração após o final da execução de MA é 1 1 1 1 1 Af 1 X X b d. A operação aritmética executada por MA é a subtração. e. A operação aritmética executada por MA é a multiplicação. Resposta: alternativa b a). e c). Falsas, pois a configuração final é 1 1 1 1 1 Af 1 X X b b). CORRETA d). e e). Falsa, a operação é ADIÇÃO 7. Considere a MEF M1 a seguir para assinalar a alternativa correta: a. Para a cadeia de entrada aaabbaba a saída será 10111010 e o estado final é igual ao estado inicial. b. Para a entrada bbbabab, o caminho percorrido durante a execução de M1 pode ser descrito por BACDBAC. c. Sendo f a função de transição de estado de M1, podemos afirmar que f(A,b)=B e f(B,a)=D. d. Sendo g a função saída de M1, podemos afirmar que g(B,a)=1=g(B,b) e g(D,a)=1=g(D,b). e. Nenhuma das outras alternativas é correta. Resposta: alternativa a a. CORRETA sequencia estado/entrada-saida: B a 1 D a 0 C a 1 D b 1 B b 1 A a 0 B b 1 A a 0 B b. Falsa, o caminho correto é ACABABA c. Falsa, pois f(A,b) = C. d. Falsa, pois g(D,a) = 0. e. Falsa, pois a é correta. 8. As tabelas abaixo descrevem uma MEF, definindo as transições de estado e as saídas, respectivamente. Cada estado representa a configuração dada por p e q (por exemplo, S0 = 00) e cada saída é representada pelo valor verdade da expressão lógica correspondente (0 = F e 1 = V). Assinale o diagrama de transições que representa esta MEF: p q S p i=1 q S 0 0 S0 S0 S1 0 0 S0 0 1 S1 S1 S2 0 1 S1 1 1 S2 S2 S3 1 1 S2 1 0 S3 S3 S0 1 0 S3 0/0 0/0 S0 1/1 S1 0/0 1/1 S2 1/1 0/0 0/0 S0 1/1 S1 0/1 0/0 S0 1/1 S2 1/0 S1 p → ¬q ¬p → ¬q ¬( p ∧ q ) ¬ p ∨ ¬ q ¬q p S3 S0 0/1 1/1 S1 0/0 S3 S0 S2 0/1 1/0 S3 1/1 Resposta: alternativa e A tabela de estado/saída da MEF é dada por: p 0 0 1 1 q 0 1 1 0 S S0 S1 S2 S3 i=0 0 1 0 1 i=1 1 0 0 1 0/1 1/0 S2 0/1 1/0 S3 1/1 0/1 e. 0/0 1/1 ¬p ∧ q 0/0 1/1 b. i=1 ¬p ∨ q d. 0/0 1/1 i=0 0/0 1/0 a. c. i=0 0/1 1/1 S1 0/0 1/0 1/1 S2 0/1 1/0 S3