20211-A2- Projeto E Analise DE Algoritmos-1ECP39A- Miguel Figueiredo AIA PDF

Title 20211-A2- Projeto E Analise DE Algoritmos-1ECP39A- Miguel Figueiredo AIA
Author rodrigo lima
Course Introdução à Ciência da Computação
Institution Universidade do Estado do Rio Grande do Norte
Pages 3
File Size 222.4 KB
File Type PDF
Total Downloads 5
Total Views 142

Summary

PAA...


Description

ATIVIDADE INDIVIDUAL AVALIATIVA CURSO:

DISCIPLINA:

Engenharia e Ciência da Computação

Projeto e Análise de Algoritmos

ASSINATURA:

NOME:

DATA:

AIA:

TURMA

MATRÍCULA

A2

1ª Atividade (4,0 pontos; Competência: Conhecimento; Ref.: Enade 2017) A falta de uso do parágrafo na resposta implica na perda de 10% do valor da questão. A falta de uso correto de pontuações e vírgulas, quando se aplicarem, implica na perda de 10% do valor da questão. A falta de uso dos mesmos índices do enunciado e a falta da mesma quantidade de itens na resposta, implicam na perda de pelo menos 10% da questão.

Os algoritmos para busca de partes de um texto (substring) em geral procuram pela ocorrência de uma "palavra" W dentro de um "texto" S empregando a simples técnica de que quando aparece uma diferença, a palavra tem em si a informação necessária para determinar onde começar a próxima comparação. Um dos algoritmos mais conhecido é o KMP (Knuth-Morris-Pratt). (Cormen, T.H., Introdução aos Algoritmos). a) Elabore um programa em qualquer linguagem de programação que seja capaz de realizar a identificação de um padrão W dentro de um texto S, com complexidade O(n) no pior caso. b) A partir da cadeia de caracteres textuais ABACAABACCABACABAABB demonstre a pesquise do padrão ABACAB utilizando o método KMP, informando quantas comparações foram realizadas pelo método. O enunciado abaixo se refere às questões 2 e 3 a seguir. (Cormen, T.H., Introdução aos Algoritmos) Os analistas de sistemas de uma empresa de software estão trabalhando em melhorias no seu principal produto que é um editor de texto na língua portuguesa. Uma das melhorias desejadas é implantação do recurso “Sugestão Automática”, onde a partir de uma falha na busca, em um dicionário de tipo bucket[0..m]{(, ; , ..., )}, por uma palavra digitada pelo usuário no corpo do texto, seja sugerido um termo mais semelhante aos dos constantes no dicionário. 2ª Atividade (2,5 pontos; Competência: Conhecimento; Ref.: Enade 2008) A falta de uso do parágrafo na resposta implica na perda de 10% do valor da questão. A falta de uso correto de pontuações e vírgulas, quando se aplicarem, implica na perda de 10% do valor da questão. A falta de uso dos mesmos índices do enunciado e a falta da mesma quantidade de itens na resposta, implicam na perda de pelo menos 10% da questão.

Para atender a demanda dos analistas, elabore um programa em qualquer linguagem de programação para comparação de duas sequencias de caracteres, uma digitada pelo usuário T e outra qualquer presente no dicionário S, que retorne a quantidade de substituições, inserções ou exclusões necessárias para que T fique igual a S.

ATIVIDADE INDIVIDUAL AVALIATIVA CURSO:

DISCIPLINA:

Engenharia e Ciência da Computação

Projeto e Análise de Algoritmos

ASSINATURA:

NOME:

DATA:

AIA:

TURMA

MATRÍCULA

A2

3ª Atividade (1,5 pontos; Competência: Conhecimento; Ref.: Enade 2008) A falta de uso do parágrafo na resposta implica na perda de 10% do valor da questão. A falta de uso correto de pontuações e vírgulas, quando se aplicarem, implica na perda de 10% do valor da questão. A falta de uso dos mesmos índices do enunciado e a falta da mesma quantidade de itens na resposta, implicam na perda de pelo menos 10% da questão.

Para a mesma aplicação acima, demonstre os passos da execução do algoritmo para comparação de sequencias de caracteres, baseado no cálculo da distância de Levenshtein, entre a expressão digitada pelo usuário “COLLERES” e as expressões do mesmo bucket presentes no dicionário abaixo, e indique a melhor opção a ser sugerida. Bucket CO CO CO

Chave 0 1 2

Valor COLHER COLHERES COOLER

4ª Atividade (1,0 ponto; Competência: Conhecimento; Ref.: Enade 2005) Um projetista de banco de dados hierárquico, em função das mudanças no perfil das aplicações móveis de sua corporação, deseja rever as estruturas de dados internas do modelo e dos algoritmos de busca já implementados. Para isso ele decidiu a utilização de dicionários armazenados na forma de Tries, em detrimento de outras abordagens. (Toscani, L.V., Complexidade de Algoritmos). Em relação a decisão do projetista analise as afirmativas abaixo e julgue-as assinalando com (V) quando verdadeira e (F) quando falsa. Justifique seus julgamentos. I. II. III. IV.

A escolha foi equivocada, pois as árvores de busca binária seriam mais eficientes no pior caso. A escolha foi acertada, pois, no pior caso, a quantidade de comparações pela busca de uma chave em uma Trie seria o tamanho da mesma. A escolha foi indiferente, pois a utilização de tabelas Hash, por exemplo, teriam vantagens adicionais como colisões para chave diferentes. A escolha foi acertada, pois, há colisões entre chaves diferentes em uma Trie.

ATIVIDADE INDIVIDUAL AVALIATIVA CURSO:

DISCIPLINA:

Engenharia e Ciência da Computação

Projeto e Análise de Algoritmos

ASSINATURA:

NOME:

DATA:

AIA:

TURMA

MATRÍCULA

A2

5ª Atividade (1,0 ponto; Competência: Conhecimento; Ref.: Enade 2017) Em uma empresa de desenvolvimento de sistemas, um programador foi instruído a adotar em seus projetos, uma função de similaridade fonética de ampla utilização baseada no algoritmo SOUNDEX padronizado para a língua inglesa. Durante os testes foram avaliadas algumas palavras e obtidos seus respectivos códigos SOUNDEX conforme abaixo: Palavra Calvario Calvicie Nicolau Nicholas Melindrado Melindrarem

Código SOUNDEX C416 C412 N242 N240 N453 N453

Em função dos resultados alcançados, analise as afirmativas abaixo e julgue-as assinalando com (V) quando verdadeira e (F) quando falsa. Justifique seus julgamentos. I. II. III. IV. V.

O algoritmo não está correto, pois há SOMENTE três códigos SOUNDEX errados. O algoritmo não está correto, e depois de consertado, teria no pior caso complexidade O(n). O algoritmo está incorreto apenas no que tange a escolha do prefixo do código. O algoritmo não possui erros, e no pior caso possui complexidade O(n2). A diferença entre as partes numéricas de dois códigos com mesmo prefixo, indica o quanto semelhantes as palavras são foneticamente, onde 0 (zero) indicaria a maior similaridade....


Similar Free PDFs