Para voltar à página raíz clique aqui.
Projeto e Análise de Algoritmos
Turmas A e B - 2s2020
Informações do Professor
-
- Nome: Mário César San Felice
-
- Sala: G.08 do Departamento de Computação
-
- Email: [ meu último último nome ] (at) ufscar.br
Informações do Curso
Trabalhos Práticos
- Primeiro Trabalho
Instruções disponíveis na página da disciplina no Google Classroom.
Tópicos das Aulas
- Aula 01 - Motivação, Multiplicação, Recorrências
-
Vídeos da aula 01: Playlist.
Notas de aula: PDF.
Bibliografia: Seção 2.1 do Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1 2, 1 3.
- Aula 02 - Princípios da Análise de Algoritmos, Indução Matemática
-
Vídeos da aula 02: Playlist.
Notas de aula: PDF.
Bibliografia: Seção 0.2 do Algorithms, Capítulo 5 do Elementos de Matemática Discreta para Computação.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1 8.
- Aula 03 - Divisão e Conquista, MergeSort, Árvore de Recorrência
-
Vídeos da aula 03: Playlist.
Notas de aula: PDF.
Bibliografia: Seção 2.3 do Algorithms, Seções 2.3 e 4.4 (4.2 da 2ed) do Introduction to Algorithms, Capítulo 9 do Projeto de Algoritmos (em C).
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1 5, 1 6, 1 7.
- Aula 04 - Análise Assintótica
-
Vídeos da aula 04: Playlist.
Notas de aula: PDF.
Bibliografia: Seção 0.3 do Algorithms, Capítulo 3 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 2 1, 2 2, 2 3, 2 4, 2 5.
- Aula 05 - Encontrar o Par Mais Próximo
-
Notas de aula: PDF.
Bibliografia: Exercício 2.32 do Algorithms, Seção 33.4 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 3 4, 3 5.
- Aula 06 - Teorema Mestre
-
Vídeos da aula 06: Playlist.
Notas de aula: PDF.
Bibliografia: Seção 2.2 do Algorithms, Seções 4.5 e 4.6 (4.3 e 4.4 da 2ed) do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 4 1, 4 2, 4 3, 4 4, 4 5, 4 6.
- Aula 06.2 - (Bônus) Multiplicação de Matrizes de Strassen
-
Notas de aula: PDF.
Bibliografia: Seção 2.5 do Algorithms, Seções 4.2 e 4.3 (4.1 da 2ed) do Introduction to Algorithms.
Material complementar: Vídeo aula do prof. Tim Roughgarden 3 3.
- Aula 07 - QuickSort e Problema da Separação
-
Notas de aula: PDF.
Bibliografia: Capítulo 7 do Introduction to Algorithms, Capítulo 11 do Projeto de Algoritmos (em C).
Material complementar: Vídeo aulas do prof. Tim Roughgarden 5 1, 5 2, 5 3, 5 4, 6 1, 6 2, 6 3.
- Aula 08 - Bases de Probabilidade, Problema da Seleção
-
Notas de aula: PDF.
Bibliografia: Seção 2.4 do Algorithms, Seção 9.2 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 7 1, 7 2, 8 1, 8 2.
- Aula 09 - Grafos, Busca em Grafos e Busca em Largura
-
Notas de aula: PDF.
Bibliografia: Seções 3.1 e 4.2 do Algorithms, Seções 22.1 e 22.2 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 9 2, 10 1, 10 2, 10 3, 10 4.
- Aula 10 - Busca em Profundidade e Ordenação Topológica
-
Notas de aula: PDF.
Bibliografia: Seções 3.2 e 3.3 do Algorithms, Seções 22.3 e 22.4 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 10 5, 10 6.
- Aula 11 - Algoritmos Gulosos e Problema do Escalonamento
-
Vídeos da aula 11: Playlist.
Notas de aula: PDF.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1, 2, 3, 4, 5, 6.
- Aula 12 - Seleção de Atividades e Mochila Fracionária
-
Vídeos da aula 12: Playlist.
Notas de aula: PDF.
Bibliografia: Seção 16.1 do Introduction to Algorithms.
Material complementar: Nota de aula sobre mochila fracionária do profe. Paulo Feofiloff.
- Aula 13 - Caminhos Mínimos, Algoritmo de Dijkstra, Heap com Atualização
-
Notas de aula: PDF.
Bibliografia: Seções 4.3 e 4.4 do Algorithms, Seções 24.3 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden sobre Dijkstra 11 1, 11 2, 11 3, 11 4 e sobre Heaps 12 1, 12 2, 12 3.
- Aula 14 - Árvores Geradoras Mínimas (MST), Propriedade do Corte, Algoritmo de Prim
-
Vídeos da aula 14: Playlist.
Notas de aula: PDF.
Bibliografia: Seção 5.1 do Algorithms, Capítulo 23 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden sobre Prim 1, 2, 3, 4, 5, 6, 7.
- Aula 15 - Árvores Geradoras Mínimas (MST), Algoritmo de Kruskal
-
Notas de aula: PDF.
Bibliografia: Seção 5.1 do Algorithms, Capítulo 23 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden sobre Kruskal 1, 2, 3, 4, 5.
- Aula 16 - Union Find, k-Clusterização com Espalhamento Máximo
-
Notas de aula: PDF.
Bibliografia: Seção 5.1 do Algorithms, Capítulo 21 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden sobre Union-Find 1, 2, 3, 4, 5, 6, 7, 8, 9 e sobre k-Clusterização 1, 2.
- Aula 17 - Programação Dinâmica, Conjunto Independente de Peso Máximo em Caminhos
-
Vídeos da aula 17: Playlist.
Notas de aula: PDF.
Bibliografia: Seção 6.7 do Algorithms, Seção 15.3 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1, 2, 3, 4, 5.
- Aula 18 - Problemas da Mochila e do Alinhamento de Sequências
-
Vídeos da aula 18: Playlist.
Notas de aula: PDF.
Bibliografia: Seções 6.4 e 6.3 do Algorithms.
Material complementar: Nota de aula sobre mochila do profe. Paulo Feofiloff e vídeo aulas do prof. Tim Roughgarden sobre mochila 1, 2, 3 e sobre alinhamento de sequências 1, 2, 3.
- Aula 19 - Problema da Árvore Binária de Busca Ótima
-
Notas de aula: PDF.
Bibliografia: Seção 15.5 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1, 2, 3, 4, 5.
- Aula 20 - Caminhos Mínimos, Algoritmo de Bellman-Ford
-
Notas de aula: PDF.
Bibliografia: Seção 4.6 do Algorithms e Seção 24.1 do Introduction to Algorithms.
Material complementar: Vídeo aulas do prof. Tim Roughgarden sobre Bellman-Ford 1, 2, 3, 4, 5, 6 e sobre roteamento na internet 1, 2, 3.
- Aula 21 - Caminhos Mínimos de Todos para Todos, Algoritmos de Floyd-Warshall e de Johnson
-
Material complementar: Vídeo aulas do prof. Tim Roughgarden sobre Floyd-Warshall 1, 2, 3 e sobre Johnson 1, 2, 3.
- Aulas 22 e 23 - Problemas NP-Completos, Reduções entre Problemas (Partes 1 e 2)
-
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1, 2, 3, 4, 5, 6.
- Aula 24 - Algoritmos Exatos para Cobertura por Vértices e Problema do Caixeiro Viajante
-
Material complementar: Vídeo aulas do prof. Tim Roughgarden sobre Cobertura por Vértices 1, 2, 3 e sobre Problema do Caixeiro Viajante 1, 2.
- Aulas 25 e 26 - Algoritmos de Aproximação para Problemas do Caixeiro Viajante e da Mochila (Partes 1 e 2)
-
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1, 2, 3, 4, 5, 6.
- Aula 27 - Algoritmo de Busca Local para Problema do Corte Máximo
-
Material complementar: Vídeo aulas do prof. Tim Roughgarden 1, 2, 3, 4.
Listas de Exercícios
Abaixo estão indicados vários exercícios da 2a edição do Introduction to Algorithms (CLRS) e do Algorithms (DPV).
Sugere-se que cada estudante tente resolver individualmente os exercícios e só depois discuta-os em grupo. Dúvidas e dificuldades podem ser apresentadas ao docente.
- [Básico]([CLRS] Capítulo 1): Exercícios 1.2-2, 1.2-3; Problema 1-1.
- [Básico]([CLRS] Capítulo 2): Exercícios 2.1-3, 2.1-4, 2.2-2, 2.2-3, 2.3-3, 2.3-5, 2.3-6, 2.3-7; Problema 2-1.
- [Heapsort] ([CLRS] Capítulo 6): Exercícios 6.1-4, 6.1-5, 6.2-1, 6.2-2, 6.2-3, 6.2-4, 6.2-6, 6.4-3, 6.4-4, 6.4-5, 6.5-8.
- [Análise assintótica] ([CLRS] Capítulo 3): Exercícios 3.1-1, 3.1-2, 3.1-3, 3.1-4, 3.1-6, 3.1-7, 3.1-8, 3.2-3; Problemas 3-1, 3-2, 3-3, 3-4.
- [Análise assintótica] ([DPV] Capítulo 0): Exercícios 0.1, 0.2, 0.3, 0.4.
- [Recorrências] ([CLRS] Capítulo 4): Exercícios 4.1-2, 4.1-5, 4.2-2, 4.2-4, 4.2-5, 4.3-1, 4.3-2, 4.3-4, 4.3-5, 4.4-2; Problemas 4-1, 4-3 b, 4-4 a, c, d, e, f, h, i.
- [Divisão-e-conquista e Recorrências] ([DPV] Capítulo 2): Exercícios 2.3, 2.4, 2.5, 2.11, 2.12, 2.13, 2.14, 2.15, 2.16, 2.17, 2.18, 2.19, 2.20, 2.21, 2.22, 2.23, 2.24, 2.25.
- [Quicksort] ([CLRS] Capítulo 7): Exercícios 7.2-2, 7.2-3; Problemas 7-3, 7-4.
- [Problema da Seleção] ([CLRS] Capítulo 9): Exercícios 9.1-1, 9.2-4; Problemas 9-1 a, b, c.
- [Representação de Grafos]([CLRS] Capítulo 22): Exercícios 22.1-1 a 22.1-6.
- [Busca em Largura (BFS)]([CLRS] Capítulo 22): Exercícios 22.2-1 a 22.2-9.
- [Busca em Profundidade (DFS)]([CLRS] Capítulo 22): Exercícios 22.3-1 a 22.3-12.
- [Ordenação Topológica]([CLRS] Capítulo 22): Exercícios 22.4-1 a 22.4-5.
- [Componentes Fortemente Conexos]([CLRS] Capítulo 22): Exercícios 22.5-1 a 22.5-7; Problema 22-1.
- [Caminhos Mínimos - Dijkstra]([CLRS] Capítulo 24:) Exercícios 24.3-1 a 24.3-8.
- [Árvores Geradoras Mínimas - Básico]([CLRS] Capítulo 23): Exercícios 23.1-1 a 23.1-11.
- [Árvores Geradoras Mínimas - Prim e Kruskal]([CLRS] Capítulo 21 e 23): Exercícios 21.2-1 a 21.2-2, 21.2-4 a 21.2-6; 23.2-1 a 23.2-5, 23.2-8; Problemas 23-1 e 23-4.
- [Algoritmos gulosos] ([CLRS] Capítulo 16): Exercícios 16.1-1, 16.1-2, 16.1-3, 16.1-5 , 16.1-4, 16.2-3,16.2-4, 16.2-5, 16.3-1, 16.3-4, 16.3-7, 16.3-8; Problemas: 16-1.
- [Programação dinâmica] ([CLRS] Capítulo 15): Exercícios 15.2-1, 15.2-2, 15.2-3, 15.3-2, 15.3-3, 15.3-5, 15.4-1, 15.4-2, 15.4-3, 15.4-4, 15.4-5, 15.4-6, 15.5-1, 15.5-2, 15.5-3; Problemas: 15-4, 15-6, 15-7.
- [Caminhos Mínimos - Bellman-Ford]([CLRS] Capítulo 24:) Exercícios 24.1-1 a 24.1-4, 24.1-6.
- [Caminhos Mínimos - Floyd-Warshall]([CLRS] Capítulo 25:) Exercícios 25.2-1 a 25.2-9.
Bibliografia e materiais recomendados
- Dasgupta, S.; Papadimitriou, C.; Vazirani, U.. Algorithms. Boston: McGraw-Hill, 2008. PDF
- Tim Roughgarden. Algorithms Illuminated, Part 2: Graph Algorithms and Data Structures. Soundlikeyourself Publishing, LLC, 2018.
- Tim Roughgarden. Algorithms Illuminated, Part 1: The Basics. Soundlikeyourself Publishing, LLC, 2017.
- Cormen, T. H.; Leiserson, C. E.; Rivest, R. L.; Stein, C.. Introduction to Algorithms. 3rd. ed., MIT Press, 2009.
- Vídeo aulas do prof. Tim Roughgarden, de Stanford, em inglês (com legendas): parte 1 e parte 2.
- Vídeo aulas do professor sobre Algoritmos e Estruturas de Dados 2: Playlist.
- Notas de aula sobre análise de algoritmos do prof. Paulo Feofiloff, do IME-USP.
- Kleinberg, J.; Tardos, E.. Algorithm design. Pearson/Addison-Wesley, 2006.
- Feofiloff, P.. Projeto de Algoritmos (em C). Elsevier, 2009. LINK
- Gomide A.; Stolfi J.. Elementos de Matemática Discreta para Computação. PDF
Last Update: 07/07/2021 17:40