Tópicos Especiais em Otimização  —  2017/2

Página principal

Informações

Local: Sala DLC.
Horário: 3as e 5as, das 8h às 10h.
Início: 13 de junho de 2017.

Repositório do código criado em sala de aula:
https://github.com/vigusmao/top_esp_otimizacao_2017_2

Problemas possíveis (entre outros):

-   Minimum Cut Max Flow
-   Knapsack Problem
-   Bin Packing
-   Traveling Salesman
-   Minimum Spanning Trees and variations (e.g. Spanning Trees With Few Branches)
-   Maximum Matchings / Maximum Weighted Matchings
-   Edge Coloring
-   Maximum Independent Set / Maximum-Weight Independent Set
-   Vertex Coloring
-   Vertex Covers
-   Dominating Sets

Apresentações:

-   01/08 - Judismar - cobertura de vértices
-   03/08 - Bernardo K - emparelhamento m&aacu;ximo
-   08/08 - Diego - 3-SAT
-   10/08 - Alexsander - árvore de Steiner com número fixo de terminais
-   15/08 - Jamile - coloração de vértices
-   17/08 - André Carlos - coloração de arestas
-   22/08 - Benardo S - um problema original de inferência

Bibliografia sugerida:

-   Alan Tucker - Applied Combinatorics
-   William J. Cook / William H. Cunningham / William R. Pulleyblank / Alexander Schrijver - Combinatorial Optimization
-   Alexander Schrijver - A Course in Combinatorial Optimization
-   Christos Papadimitriou - Computational Complexity
-   Christos Papadimitriou / K. Steiglitz - Combinatorial Optimization
-   Bernhard Korte / Jens Vygen - Combinatorial Optimization: Theory and Algorithms

Conteúdo das aulas

13/06


Introdução ao curso. Abordagem prática, computacional. Relacionamento mais próximo, "completo", com cada problema. Problemas difíceis. Força bruta. Domínio restrito. Aproximação / Randomização / Parametrização.  
 

20/06


Fluxo máximo em redes. Ford-Fulkerson.  
 

22/06


Teorema do Fluxo Máximo / Corte Mínimo. Algoritmo de Edmonds-Karp.  
 

27/06


Aula prática: Python; representação de grafos; busca em largura.
Código (commit parcial) feito em sala de aula no GitHub.  
 

29/06


Implementação do Edmonds-Karp e do Ford-Fulkerson usando busca em profundidade, para comparar.
Código (commit parcial) feito em sala de aula no GitHub.  
 

04/07


Push-relabel.  
 

06/07


Push-relabel (continuação).  
 

11/07


O problema da mochila. Variante 0-1 e fracionária. Gulosos que não funcionam. Idéias de força bruta (enumeração total, backtracking com poda).  
 

13/07


O problema da carga da balsa. Como explorar simetrias, possíveis certificados de otimalidade. Repetição de subproblemas. Programação dinâmica.  
 

18/07


Implementação de algoritmos para o problema da mochila 0-1: enumeração total de subconjuntos, backtracking.
Código (commit parcial) feito em sala de aula no GitHub.  
 

20/07


Resolvendo o problema da mochila 0-1 via PD. Complexidade psudo-polinomial. PD top-down (recursão com memoização).  
 

25/07


Implementação do problema da mochila por recursão (sem memoização) e via PD (bottom-up e top-down).  
 

01/08


Apresentação do Judismar sobre cobertura de vértices.  
 

03/08


Apresentação do Bernardo K sobre emparelhamento máximo.  
 

08/08


Apresentação do Diego sobre 3-SAT.  
 

10/08


Apresentação do Aleksander sobre árvores de Steiner.  
 

15/08


Apresentação da Jamile sobre coloração de vértices.  
 

17/08


Apresentação do André sobre coloração de arestas.  
 

24/08


Apresentação do Bernardo S sobre um problema de otimização em mineração de dados (resultados do Enem).  
 

29/08


Complemento da apresentação do Bernardo K: algoritmo de Edmonds para a determinação de emparelhamentos máximos.

Branch and bound: ideias básicas. Exemplo de relaxação de restrições: mochila.  
 

Voltar ao topo