MAC5711
Análise de Algoritmos
2001 semestre 2
—— Veja www.ime.usp.br/~pf/analise_de_algoritmos ——
"Ao verificar que um dado programa está muito lento,
uma pessoa prática
pede uma máquina mais rápida ao seu chefe.
Mas o ganho potencial que uma máquina mais rápida pode proporcionar
é tipicamente limitado por um fator de 10,
por razões técnicas ou econômicas.
Para obter um ganho maior,
é preciso buscar melhores algoritmos.
Um bom algoritmo, mesmo rodando em uma máquina lenta,
sempre acaba vencendo
(para instâncias grandes do problema)
um algoritmo pior rodando em uma máquina rápida.
Sempre."
- S. S. Skiena, The Algorithm Design Manual
"A análise de algoritmos é uma disciplina de engenharia.
Um engenheiro civil, por exemplo,
tem métodos e tecnologia para
prever o comportamento de uma estrutura antes de constui-la.
Da mesma forma, um projetista de algoritmos
deve ser capaz de
prever o comportamento de um algoritmo antes
de implementá-lo."
- Anônimo
MAC5711 é disciplina de pós-graduação em Ciência da Computação da USP. Segundo o programa oficial, o objetivo da disciplina MAC5711 é Introduzir as técnicas básicas de análise de eficiência de algoritmos, com cálculo de tempo de pior caso e tempo médio. Isso é feito simultaneamente com a formação de um grande repertório de algoritmos eficientes, que ilustram as técnicas de análise e servem como ponto de partida para o desenvolvimento de novos algoritmos. A justificativa oficial da disciplina é a seguinte: O desenvolvimento de algoritmos é uma atividade fundamental na Computação, e a análise é parte indispensável nesse desenvolvimento. Tipicamente o aluno dessa disciplina já está familiarizado com os outros aspectos do projeto de algoritmos, e essa disciplina complementa a formação nessa atividade. Ainda segundo o programa oficial, o conteúdo de MAC5711 é o seguinte:
|
A disciplina tem carga de 4 horas de aulas teóricas por semana durante cerca de 12 semanas e dá direito a 8 créditos. Pré-requisitosOs pré-requisitos de MAC5711 são noções básicas de estruturas de dados e teoria dos grafos. Esses pré-requisitos correspondem às disciplinas MAC5710 (Estruturas de Dados e sua Manipulação) e MAC5770 (Introdução à Teoria dos Grafos). A edição mais recente de MAC5710 esteve a cargo de Cristina Gomes Fernandes, e a edição mais recente de MAC5770 esteve a cargo de Paulo Feofiloff. Também são desejáveis noções básicas de teoria das probabilidades (correspondentes a uma disciplina de graduação sobre o assunto) e uma certa experiência de programação, particularmente em linguagem C. |
Aulas
|