MAB 368, Algoritmos e Grafos - 2019/2
Bacharelado em Ciência da Computação, Professora
Márcia R. Cerioli
Instituto de Matemática -
UFRJ
Aulas:
6 ago - terça Descrição do conteúdo da disciplina.
Indicação de ítens a serem revisados.
Revisão do vocabulário de teoria dos grafos.
Representação de grafos e digrafos. Tamanho da entrada de um algoritmo sobre grafos: O(n+m).
8 ago - quinta
Matriz de adjacência x Lista de Adjacências. Complexidade das operações básicas em cada uma.
Algoritmo ótimo. Cota inferior igual ao tamanho da entrada. Cota inferior do problema.
Problema da ordenação topológica. Grafos com ciclos não tem ot. Como exibir uma ot.
Para casa: Teorema de caracterização dos grafos que possuem o.t.
Primeira lista de exercícios.
13 ago - terça
Descrição de um primeiro algoritmo. Graus de entrada.
Prova de corretude e análise da complexidade de tempo e espaço.
Algoritmo para ot de digrafos acíclicos: descrição, corretude e complexidade de tempo e espaço (para casa e discussão no grupo). Algoritmo ótimo para o problema da Ordenação Topológica. Subrotinas na descrição de algoritmos.
15 ago - quinta Busca em Grafos.
Algoritmo Geral de busca. Descrição, exemplos. Busca em Largura e em Profundidade.
Corretude.
Obs. Este conteúdo não está nos livros, de maneira tão explícita.
20 ago - terça Busca em Grafos.
Complexidade do Algoritmo Geral de Busca. Árvores de busca.
Propriedades do Algoritmo Geral de busca. Floresta geradora. Teste de conexidade de grafo. Número de componentes conexos.
22 ago - quinta Nível de vértices na árvore de busca. Ordem do processamento dos vértices em uma busca: L, PE, PS
Busca em Largura.
Classificação das arestas em uma BL.
Teste
27 ago - terça Inscrições na Semana de Computação e Programação
29 ago - quinta Semana de Computação Em especial, teremos Meia-maratona de Programação neste dia! ♥♥
3 set - terça Distância e cálculo da distância de um vértice a raiz da busca.
Ciclos ímpares em uma BL e Reconhecimento de grafos bipartidos.
Segunda lista de exercícios.
5 set - quinta
Busca em Profundidade em grafos não direcionados.
Propriedade das arestas da co-árvore em uma BL. Biconectividade e articulações. Função lowpt e demarcadores.
10 set - terça Busca em Profundidade em grafos direcionados.
Classificação das arestas em uma BP. Componentes fortemente conexos. Grafo dos cfc.
17 set - terça
Conceitos de BP para determinar componentes fortemente conexos.
Terceira lista de exercícios
Algoritmos de Kosaraju-Sharir para cfc (livro do Cormen)).
Prova de corretude. Análise da Complexidade.
19 set - quinta
Alteração Estrutural
Número cromático e o problema da coloração de vértices.
Coloração de vértices - algoritmo de Zykov (Jayme, seção 5.6 e 5.7)
Corretude e complexidade do algoritmo de Zykov.
24 set - terça - Primeira Prova ❀
26 set - quinta Problemas de Otimização Combinatória.
Método Guloso. Algoritmo guloso para coloração (não necessariamente ótima) de grafos de complexidade O(n+m).
(livro do Jayme).
Problema Árvore geradora mínima
1 out - terça Critérios gulosos para resolver o problema da Árvore Geradora Mínima.
Algoritmo de Kruskal (mantém acíclico). Corretude e Complexidade.
3 out - quinta
Árvore geradora mínima. Critério guloso do Algoritmo de Prim (mantém conexo).
Problema da Seleção de Atividades Critérios gulosos que não estão corretos.
Critério guloso que leva a um algoritmo correto. Algoritmo e complexidade.
Quarta lista de exercícios.
8 out - terça
Problemas dos Caminhos mais curtos e suas relações. Algoritmo de Dijkstra
Programação Dinâmica: Técnica geral.
10 out - quinta
Técnica geral e subestrutura ótima (livro do Cormen e pg 130-131 do livro do Jayme).
Algoritmo de Floyd-Warshall (livro do Cormen, seção 25.2).
Corretude e complexidade de Floyd-Warshall.
Teste
15 out - terça
Programação Dinâmica. Execução, complexidade de espaço e recuperação dos caminhos em Floyd-Warshall.
Problema da Maior Subsequência Comum (MSC) (Cormen, seção 15.4). Solução sem PD.
17 out - quinta
Algoritmo para a MSC por PD. Complexidade de tempo e espaço.
22 out - terça Semana de Integração Acadêmica
24 out - quinta Semana de Integração Acadêmica
29 out - terça
Fluxo em grafos. (Jayme, Cap 6)
Rede, fluxo, o problema do fluxo máximo, valor de um fluxo, fluxo maximal.
Corte em uma rede, capacidade do corte, fluxo em um corte.
31 out - quinta Cortes e fluxo
fluxo em um corte, fluxo na rede, cota superior para o valor de um fluxo máximo. Redes residuais. Caminho aumentante.
5 nov - terça
Caminho aumentante de fato, aumenta o valor do fluxo.
Teorema do Fluxo máximo-Corte Mínimo. Algoritmo de Ford e Fulkerson.
Teorema do fluxo inteiro (Se as capacidades são números inteiros, então o fluxo obtido pelo algoritmo de FF terá um valor inteiro em cada aresta da rede) e, portanto, um valor inteiro a cada iteração.
Análise do Algoritmo de Ford e Fulkerson. (Jayme, Seção 6.3 e 6.4)
7 nov - quinta
Algoritmo de Edmonds-Karp para fluxo máximo (Jayme, Seção 6.5)
Algoritmo de Dinic (Jayme, Seção 6.6)
Corretude e exercício comparativo.
12 nov - terça
Algoritmo de Edmonds-Karp e Algoritmo de Dinic
Análise das Complexidades.
Aplicação de fluxo máximo (emparelhamento em grafos bipartidos).
14 nov - quinta
Um filme (menos de 5 min)
Não haverá aula presencial.
19 nov - terça
Segunda Prova ❀
(a confirmar até 15 de novembro)
Página criada em 4 ago 2019 e última atualização 12 out 2019 por
Márcia R. Cerioli