|
INSTITUTO DE COMPUTAÇÃO |
|
||
. |
MC448 – Projeto e Análise de Algoritmos IPré-Req: MC202 MC348/ MC202 MS328 Ementa Técnicas de projeto e análise de algoritmos. Algoritmos de ordenação e algoritmos básicos para problemas em grafos. Programa ConteúdoTópicos de cobertura obrigatória: 1. Revisão de conceitos Modelos Computacionais O que é análise de um algoritmo O que é quota inferior de um problema - Exemplos: busca em vetor ordenado, entrada/saída 2. (A) Ferramental Matemático para Análise de Algoritmos Crescimento de Funções e Notação Assintótica Relações de Recorrência: resolução assintótica e exata. 3. (P) Projeto de algoritmos por indução Indução Matemática e Projetos de algoritmos por indução. Projetos por Indução Simples e Forte. Projetos por Divisão e Conquista. 4. Busca, ordenação e estatísticas de ordem (exemplos) (P) busca binária (simples, variações, seqüências gaguejantes, n=ab para n, a, b naturais) (P) paradigma de divisão e conquista (mergesort, busca binária, mediana) (P) conquista pode preceder a divisão (quicksort) (A) análise de caso médio de quicksort (P) seleção do mediano e do k-ésimo menor elemento via partição do quicksort (A) algoritmo de pior caso linear para seleção do mediano e do k-ésimo menor elemento (P) benefícios da escolha de estrutura de dados adequada para projeto de algoritmos eficientes (ordenação com várias estruturas de apoio) (A) quota inferior para busca em vetor ordenado, ordenação e mediana (M/A/P) Algoritmos lineares para ordenação 5. Programação Dinâmica Pelo menos 2 exemplos dentre os seguintes - (P) Multiplicação de cadeias de matrizes - (P) Mais longa subseqüência comum - (P) Árvore binária de busca ótima 6. Algoritmos Gulosos Pelo menos 2 exemplos. Sugestões: - (P) Problema da seleção de atividades - (P) Códigos de Huffman 7. Algoritmos em Grafos - Revisão de definições básicas - Representação de Grafos - (P) Busca em profundidade - (P) Busca em largura - (P) Ordenação topológica - (P) Árvore Geradora Mínima: Algoritmos Gulosos de Prim e Kruskal. - (P) Caminhos Mínimos com uma única fonte: Algoritmo Guloso de Dijkstra. Tópicos opcionais à escolha do docente: Fluxos em Redes Emparelhamento de cadeias de caracteres e biologia computacional Aritmética de ponto flutuante Operações sobre matrizes Algoritmos paralelos Transformanda rápida de Fourier Análise amortizada Busca em tempo contante (hashing) Caminhos Mínimos entre todos os vértices e detecção de ciclo negativo: Algoritmo de Programação Dinâmica de Floyd-Warshall Projeto de programação enfatizando diferenças entre comportamento assintótico de um algoritmo e seu desempenho com entradas realistas. Bibliografia 1. [Livro-texto] T. Cormen, C. Leiserson, R. Rivest, C. Stein, Algoritmos - Teoria e Prática (tradução da 2ª Ed. Americana), Ed. Campus (2002). 2. U. Manber, Algorithms: A Creative Approach, Addison-Wesley (1989). 3. J. Kleinberg e E. Tardos, Algorithm Design, Addison Wesley, (2005). 4. G. Brassard e P. Bratley, Algorithmics: Theory and Practice, Prentice-Hall. 5. A. Aho, J. Hopcroft, e J. Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley (1974). 6. N. Ziviani Projeto de Algoritmos com Implementações em Pascal e C, Pioneira Thomson Learning, 2ª. edição, (2004). 7. J. Szwarcfiter, Algoritmos em Grafos, Editora Campus (1987). 8. J. Szwarcfiter e L. Markenson, Estruturas de Dados e seus Algoritmos, LTC Editora (1994). |
|
![]() Webmaster |
| Instituto de Computação :: Universidade Estadual de Campinas :: Av. Albert Einstein, 1251 - Cidade Universitária, Campinas/SP - Brasil, CEP 13083-852 • Fone: [19] 3521-5838 |