Programação Semidefinida e Aplicações
Hidden

Material e bibliografia

Bibliografia recomendada

A fonte que seguirei mais de perto são as notas de aula de Monique Laurent e Frank Vallentin; você pode baixá-las na seção de arquivos mais abaixo.

Não pretendo seguir de perto nenhum dos livros abaixo, mas são certamente recomendáveis.

  • A. Barvinok, A Course in Convexity, American Mathematical Society, Providence, 2002.
  • A. Ben-Tal e A. Nemirovski, Lectures on Modern Convex Optimization: Analysis, Algorithms, and Engineering Appllications, SIAM, 2012.
  • S. Boyd e L. Vandenberghe, Convex Optimization, Cambridge University Press, Cambridge, 2004.
  • B. Gärtner e J. Matousek, Approximation Algorithms and Semidefinite Programming, Springer-Verlag, Berlin, 2012.
  • A. Schrijver, Combinatorial Optimization: Polyhedra and Efficiency, Springer-Verlag, Berlin, 2003.

Para os que precisam relembrar conceitos básicos de álgebra linear, recomendo o seguinte livro:

  • S. Lang, Introduction to linear algebra, Springer-Verlag, New York, 1986.

Já para os que precisam relembrar alguns conceitos fundamentais de topologia e análise, recomendo o seguinte livro:

  • G.F. Simmons, Introduction to Topology and Modern Analysis, McGraw-Hill, 1963.

Um livro mais avançado e muito bom sobre análise funcional, que pode ser útil mais ao final do curso, é o seguinte:

  • F. Riez e B. Sz-Nagy, Funcional Analysis, Dover Books on Advanced Mathematics, Dover Publications, Inc., New York, 1990.

Software

Pretendo que o curso tenha uma forte parte experimental, para que os participantes aprendam a resolver problemas de programação semidefinida na prática.

Há muitos solvers para programação semidefinida que podem ser encontrados na Internet. Dois dos que eu recomendo são:

  • CSDP: é um solver escrito em linguagem C, que pode ser utilizado como aplicativo stand-alone ou como biblioteca;
  • SDPA: é uma família de solvers para programação semidefinida que inclui solvers que utilizam aritmética de alta-precisão.

Resolver problemas de programação semidefinida é uma aventura muito maior do que resolver problemas de programação linear, por exemplo, pois surgem diversas questões acerca de estabilidade numérica, precisão, etc., que não são freqüentes ao se resolver problemas de programação linear. Por isso, é interessante usar diversos solvers e comprar os resultados. Uma forma conveniente de ficar por dentro dos solvers que existem é através do NEOS server for optimization, que disponibiliza uma lista de solvers para diversos tipos de otimização que podem ser inclusive utilizados online.

Gerar entrada para os solvers pode ser um problema complicado em si mesmo. Uma forma conveninente de gerar entrada para os solvers e analisar os resultados é utilizar o software de manipulação matemática SAGE, que é baseado em Python. Eu recomendo fortemente que você instale o SAGE, que é software livre, e aprenda a usá-lo. Durante o curso pretendo dar algumas noções de como usar o SAGE.

Eu também escrevi uma biblioteca em C++ e SAGE, chamada SDPSL, que pode ser utilizada para gerar entrada para os solvers e analisar os resultados.

Arquivos para download

laurentv.pdf
Notas de aula de Monique Laurent e Frank Vallentin. Serão seguidas mais ou menos de perto durante o curso.
lovasz.pdf
Notas de aula de L. Lovász.
csdp.py
Módulo simples para usar o CSDP através do SAGE.
maxcut.sage
Função SAGE para resolver a relaxação do MAXCUT.
sage.pdf
Slides sobre SAGE, aula de 13.03.
sdpa.pdf
Slides sobre formato SDPA, aula de 13.03.
ell.pdf
Notas de aula sobre método dos elipsóides.
sym.pdf
Notas de aula sobre exploração de simetria em programação semidefinida.

Listas de exercício

lista0.pdf
Preliminares sobre álgebra linear. Entrega: 11.03.
lista1.pdf
Resolução de problemas de programação semidefinida com o computador. Veja o módulo para utilizar o CSDP através do SAGE e o exemplo de como resolver a relaxação do MAXCUT através do SAGE colocados na área de downloads. Entrega: 25.03.
lista2.pdf
Dualidade e método dos elipsóides. (Para treinar mais a noção de dualidade, faça alguns exercícios das notas de aula de Monique Laurent e Frank Vallentin.) Entrega: 08.04.
lista3.pdf
Desigualdade de Grothendieck, MAXCUT, etc. Entrega: 24.04.
Hidden