Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão Acerto: 0,0 / 1,0 Um grafo é: Um conjunto de nós interligados por arestas Um conjunto de arestas interligadas por nós Apenas um conjunto de arestas Um conjunto de nós e de arestas disjuntos Apenas um conjunto de no. Explicação: Grafos são um conjunto de vértices (ou nós), interconectados dois a dois por arestas. 2a Questão Acerto: 1,0 / 1,0 Um grafo consiste num conjunto de nós (ou vértices) e num conjunto de arcos (ou arestas). É correto afirmar que o grau de um nó é um número associado ao arco, também chamado de peso. a posição deste nó em relação ao nó raiz do grafo o número de pares ordenados que formam o arco. o número de arcos incidentes nesse nó. a distância entre este nó e um outro nó qualquer do grafo. Explicação: O grau de um grafo indica o número de arestas que conectam um vértice do grafo a outros vértices, ou seja, número de vizinhos que aquele vértice possui no grafo (que chegam ou partem dele). Para grafos direcionados são indicados dois tipos de grau, grau de entrada (número de arestas que chegam ao vértice) e grau de saída (número de arestas que partem do vértice 3a Questão Acerto: 1,0 / 1,0 Entre os diversos tipos de árvores, a árvore enraizada se caracteriza por: Não apresentar um vértice (raiz) que se distingue dos demais. Um grafo acíclico, não orientado e conectado. Um grafo acíclico, não orientado mas, possivelmente desconectado. Uma estrutura de vértices que é definida por meio de um conjunto de vértices. Um tipo especial de árvore que apresenta um vértice (raiz) que se distingue dos demais Explicação: Tipo especial de árvore que apresenta um vértice (raiz) que se distingue dos demais. É utilizado o termo nó para fazer referência aos vértices. 4a Questão Acerto: 0,0 / 1,0 Uma das formas de representação do autômato finito indeterminístico mais comum é: Conjunto Símbolo Diagrama Matriz Setas Explicação: . 5a Questão Acerto: 1,0 / 1,0 Se o estado inicial for também estado final em um autômato finito, então esse autômato aceita a cadeia vazia. não aceita a cadeia vazia. é não determinístico. não tem outros estados finais. é determinístico. Explicação: Quando o estado inicial também é final num AF, então ele aceita a cadeia vazia. 6a Questão Acerto: 1,0 / 1,0 Uma gramática G é definida por G=({x,y,z},{S,W,X,Y,Z},P,S) na qual os membros de P são S→WZW→X|YX→x|xXY→y|yYZ→z|zZ Qual das expressões regulares abaixo corresponde a esta gramática? (xx∗|yy∗)zz∗ (xx|yy)∗zz∗ xx∗yy∗zz∗ xx∗(yy∗|zz∗) xx∗|yy∗|zz∗ Explicação: Os símbolos não terminais X, Y e Z produzem, respectivamente, xx∗, yy∗ e zz∗. Além disso, podemos eliminar W substituindo-o na primeira produção: SXYZ→(X|Y)Z→xx∗→yy∗→zz∗ Substituindo X, Y e Z na primeira produção, obtemos Portanto a solução é S→(xx∗|yy∗)zz∗ 7a Questão Acerto: 1,0 / 1,0 Para gerar o automâto finito mínimo a partir um automâto finito o devemos pelo algoritmo de minimização é necessario que: Ele tenha destinos inalcançaveis A função programa seja parcial Todos os estados sejam alcançaveis a partir de qualquer outro estado Ele seja deterministico A partir de uma estado existam 0, 1 ou n transições Explicação: Algoritmo de Minimização de Autômatos PRE-REQUISITOS DO AUTÔMATO A SER MINIMIZADO a.Deve ser determinístico b.Todos os estados devem poder ser alcançados a partir do estado inicial (Sem estados inalcançáveis c.A função programa deve ser total, ou seja, a partir de qualquer estado deve haver transições para todos os símbolos do alfabeto 8a Questão Acerto: 0,0 / 1,0 O problema da parada para máquinas de Turing, ou simplesmente problema da parada, pode ser assim descrito: determinar, para quaisquer máquinas de Turing M e palavra w, se M irá eventualmente parar com entrada w. Mais informalmente, o mesmo problema também pode ser assim descrito: dados um algoritmo e uma entrada finita, decidir se o algoritmo termina ou se executará indefinidamente. Para o problema da parada, não existe algoritmo exato, mas existe algoritmo de aproximação de tempo de execução polinomial que o soluciona, fornecendo respostas aproximadas. existe algoritmo exato de tempo de execução exponencial para solucioná-lo. existe algoritmo exato de tempo de execução polinomial para solucioná-lo. não existe algoritmo que o solucione, não importa quanto tempo seja disponibilizado. não existe algoritmo exato, mas existe algoritmo de aproximação de tempo de execução exponencial que o soluciona, fornecendo respostas aproximadas. Explicação: O problema da parada pode ser definido como: Seja S o conjunto de todos os pares (A,D), em que A é um algoritmo, e D, dado de entrada; (A,D) tem a propriedade P se o algoritmo A, quando recebe o dado D, eventualmente produz um resultado (ou seja, eventualmente para) A tese de Church-Turing mostra que o problema da parada é não decidível, ou seja, não existe um algoritmo H tal que para todo (A,D) que pertence à S: H(A,D)= { 1 se A(D) eventualmente para; 0 caso contrário A prova informal de que tal H não existe é obtida por contradição. Suponha que H existe. Seja C o algoritmo: ¿entrada A; executa H(A,A); se H(A,A)=0, então, retorna 1, senão entra em loop¿. Então, ∀A,(H(A,A)=0 ⇿ ¬A(A) eventualmente para ⇿ H(A,A)=0) (pois H é função total) e ∀A,(H(A,A)=0 ⇿ ¬A(A) eventualmente para). Tomando A como sendo C, obtemos que C(C) eventualmente para, se e somente se ¬C(C) eventualmente para, e isto é uma contradição! Logo, não existe um algoritmo que solucione o problema. As respostas das alternativas A e B não estão corretas, pois afirmam que existe um algoritmo que resolve o problema. As respostas das alternativas D e E não estão corretas, pois afirmam que existe um algoritmo de aproximação e, pelo exposto na justificativa da resposta correta, tal algoritmo não existe. 9a Questão Acerto: 1,0 / 1,0 Considere a gramática a seguir, em que S, A e B são símbolos não terminais, 0 e 1 são terminais e ε é a cadeia vazia. S-> 1S|0A|ε A-> 1S|0B|ε B-> 1S|ε A respeito dessa gramática, analise as afirmações a seguir. I. Nas cadeias geradas por essa gramática, o último símbolo é 1. II. O número de zeros consecutivos nas cadeias geradas pela gramática é, no máximo, dois. III. O número de uns em cada cadeia gerada pela gramática é maior que o número de zeros. IV. Nas cadeias geradas por essa gramática, todos os uns estão à esquerda de todos os zeros. É correto apenas o que se afirma em III e IV. I. II e IV. II. I e III. Explicação: É uma questão de fácil resolução a partir da correta aplicação das regras de derivação da gramática para a construção de palavras. A técnica a ser utilizada para a justificativa de uma alternativa como falsa é a apresentação de um contraexemplo de sequência de derivações que demonstre a falsidade. A afirmativa I deve ser considerada falsa. O contraexemplo é a geração da palavra-vazia a partir do símbolo inicial S (nota do autor: essa é uma suposição, já que a questão pode ser considerada mal construída já que não informa qual dos símbolos, S, A ou B, é o símbolo inicial). S => e (aplicação da regra S->e) A afirmativa II é verdadeira. Considere a seguinte sequência de derivações, na qual W representa uma cadeia de símbolos terminais. A derivação demonstra as duas únicas regras que podem ser aplicadas a qualquer momento para remover o símbolo terminal B da palavra sendo gerada, de forma que número de zeros consecutivos será sempre no máximo dois. S =>* W0A => W00B (Aplicação da regra S->0B é a única que gera zerosseguidos.) => W001S (Aplicação da regra B->1S.) ou => W00 (Aplicação da regra B->e.) A afirmativa III é trivialmente falsa, já que a palavra-vazia pertence ao conjunto de palavras da linguagem gerada pela gramática apresentada. Ou seja, a quantidade zero de símbolos uns e zeros torna a afirmativa falsa. A seguinte sequência de derivações é o contraexemplo que justifica a afirmativa. S => e (aplicação da regra S->e) A afirmativa IV deve ser considerada falsa, pois é possível gerar a palavra 01 (na qual uns aparecem à direita de zeros) a partir da seguinte sequência de derivações do contraexemplo. S => 0A (Aplicação da regra S->0A.) S => 01S (Aplicação da regra A->1S.) S => 01 (Aplicação da regra S->e.) 10a Questão Acerto: 1,0 / 1,0 A área de complexidade de algoritmos abrange a medição da eficiência de um algoritmo frente à quantidade de operações realizadas até que ele encontre seu resultado final. A respeito desse contexto, suponha que um arquivo texto contenha o nome de N cidades de determinado estado, que cada nome de cidade esteja separado do seguinte por um caractere especial de fim de linha e classificado em ordem alfabética crescente. Considere um programa que realize a leitura linha a linha desse arquivo, à procura de nome de cidade. Com base nessa descrição, verifica-se que a complexidade desse programa é: O(log2N), em caso de busca binária. O(N), em caso de busca sequencial. O(1), em caso de busca sequencial. O(N), em caso de transferência dos nomes para uma árvore binária e, então, realizar a busca. O(log2N), em caso de transferência dos nomes para uma árvore binária e, então, realizar a busca. Explicação: A análise de complexidade de algoritmos é realizada através da análise assintótica, que utiliza a notação O. Existe um arquivo em formato texto e ficamos sabendo que: (a) o tamanho da entrada é definido pelo número de cidades N, (b) os nomes estão em ordem alfabética e (c) cada nome de cidade está em uma linha. O programa que deve ser analisado procura o nome de uma cidade no arquivo, realizando a leitura linha a linha. A alternativa A assume que a busca sequencial pode ser realizada em tempo constante (0(1)), ou seja, encontrar o elemento da primeira posição do arquivo tem o mesmo tempo de execução que encontrar o elemento da segunda posição ou mesmo a última (posição N). Como o arquivo é lido linha a linha, claramente para encontrar o primeiro elemento será necessário ler apenas a primeira linha; para o segundo elemento, as duas primeiras linhas; e assim sucessivamente até necessitar realizar a leitura das N linhas do arquivo para o último elemento. Desta forma temos um crescimento linear no número de elementos e não constante, correspondendo à alternativa B, que é a correta para a questão. Para a análise da alternativa C, assumimos que não é possível fazer acesso aleatório ao arquivo, pois as linhas podem ter tamanho variável e o deslocamento para a linha de posição (N/2) teria de ser realizado linha a linha (sequencial) até encontrar N/2 marcadores de final de linha (e desta forma não será possível executar o algoritmo em tempo logarítmico). Podemos projetar, ainda, um algoritmo que calcula o ponto médio do arquivo a partir do seu tamanho em número de bytes e que ¿ajusta¿ para o marcador de final de linha mais próximo. Este algoritmo poderia executar em tempo logarítmico se o sistema permitisse acesso aleatório por caracteres, o que não é possível, pois o enunciado define que a leitura é realizada linha a linha; logo a alternativa é falsa. As duas últimas alternativas supõem a transferência dos dados para uma árvore binária, sem especificar qual o seu tipo. Em uma árvore binária de pesquisa balanceada, o tempo de busca é O(log2N) e, em uma implementação simples de árvore binária, o tempo de busca é O(N), que fazem com que essas alternativas pareçam plausíveis. O tempo de construção da árvore balanceada é O(N*log2N), com N operações de leitura ao arquivo e, para cada elemento, no mínimo log2N operações para realizar a inserção. Caso a árvore não seja balanceada, o custo de inserção de cada elemento é O(N) e o tempo de construção O(N^2). Logo as duas últimas alternativas são falsas, pois o tempo total do algoritmo será a soma do tempo de construção mais o tempo de busca
Compartilhar