oliveira(AT)inf.pucrs.br
O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de:
Conhecer e analisar as principais técnicas de projeto de algoritmo.
Formalizar, com precisão matemática, um problema computacional.
Determinar qual é a técnica de projeto mais apropriada para a resolução de um determinado problema.
Generalizar as técnicas para resolução de algum problema inédito.
Analisar precisamente o algoritmo desenvolvido a fim de provar a sua corretude e de estabelecer limites para o tempo de execução e para o consumo de memória.
Estudo das principais técnicas para o projeto e análise de algoritmos: programação dinâmica, algoritmos gulosos, divisão e conquista, backtracking, branch and bound e algoritmos genéticos. Estudos de caso no desenvolvimento de algoritmos. Introdução ao Teorema Mestre.
Introdução ao Projeto e Análise de Algoritmos
Algoritmos Gulosos
Divisão e Conquista
Programação Dinâmica
Backtracking
Branch and bound
Algoritmos genéticos
Teorema Mestre
G1 = ( 3 * P1 + 3 * P2 + MT ) / 7
Metodologias de desenvolvimento de algoritmos
Veja na Wikipedia: divide and conquer, greedy, branch and bound, dynamic programming.
O livro de algoritmos do Jeff Erickson, excelente!!
E a coleção de problemas do Ian Parberry, que é muito boa também!!
Uma playlist sobre Programação Dinâmica no YouTube, bem legal!
Material bem legal na Universidade Federal de Campina Grande, do Prof. Jorge Abrantes de Figueiredo.
Veja tambem o livro do Skiena, na biblioteca ou na Web.
Um ótimo livro online em espanhol: Guerequeta y Vallecillo (trata de todas as abordagens, mas às vezes a matemática é meio exigente).
Um exemplo australiano sobre backtracking em Berkeley.
Uma lista de exercícios está aqui.
Um pouco de tudo:
Alguns vídeos sobre o passeio do cavalo usando o algoritmo de Warnsdorff:
Uma série de aulas do MIT (em inglês), sobre vários tópicos da disciplina e outros assuntos.
Um catálogo de cursos sobre algoritmos na Universidade de Pittsburgh. Fonte de outros links!
Design and Analysis na Universidade de Kent.
Recorrências estão aqui e uma lista de exercícios está aqui.
Siga no Twitter: CompSciFact
Um Wikibook inteiro sobre algoritmos.
Um livro ótimo está aqui.
Este livro é muito bom! Leia com calma e cuidado!!
Um repositório de links existe na Iowa State.
Problemas P e NP na Univ. da California (Irvine).
A reportagem de capa da Communications of the ACM de setembro de 2009, que trata dos últimos resultados sobre P e NP.
KLEINBERG, J.; TARDOS, E. Algorithm design. Addison-Wesley, 2005.
CORMEN, T. H. Algoritmos: teoria e prática. 3ª ed., Rio de Janeiro: Elsevier-Campus, 2012.
BALAMURUGAN, S. Nature-inspired Algorithms Applications. 2021. Artificial Intelligence and Soft Computing for Industrial Transformation. Web.
HOROWITZ, E.; SAHNI, S.; RAJASEKARAN, S. Computer algorithms. Silicon Press, 2008.
LEVITIN, A.; LEVITIN, M. Algorithmic puzzles. Oxford University Press, 2011.
McCORMICK, J. Nine algorithms that changed the future: The ingenious ideas that drive today´s computers. Princeton University Press, 2013.
MORET, B.; SHAPIRO, H.: Algorithms from P to NP: Design and Efficiency. 1ª ed. Addison-Wesley, 1991.
DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U. Algorithms. McGraw-Hill, 2006.
GUSFIELD, D.: Algorithms on strings, trees, and sequences: computer science and computational biology. Cambridge University Press, 1997.