Otimização 1

Horários das aulas

Ementa e programa

Objetivos da disciplina

Textos de referência

Textos complementares

Canais de acesso

Formas de avaliação

Avaliações

Critérios para aprovação

Listas de exercícios

Trabalhos computacionais

Material

Conceitos básicos

Referência principal: Friedlander, A. Elementos de Programação Não-Linear (capítulo 1)

Otimização sem restrições

Referência principal: Friedlander, A. Elementos de Programação Não-Linear (capítulo 2)
Referência complementar: Ribeiro, A. A; Karas, E. W. Otimização contínua. Cengage, 2014 (capítulo 2)

Convexidade

Referência principal: Friedlander, A. Elementos de Programação Não-Linear (capítulo 3)
Referência complementar: Ribeiro, A. A; Karas, E. W. Otimização contínua. Cengage, 2014 (capítulo 3)

A linguagem de programação Julia

Julia é uma linguagem de programação de alto nível criada em 2012 que implementa várias ferramentas para uso geral em matemática aplicada. Em particular, Julia possui várias ferramentas para otimização. É muito parecida com o Matlab, portanto os códigos são fáceis de entender. Os trabalhos computacionais desta disciplina serão feitos em Julia. A seguir você encontra instruções de instalação, bem como exemplos simples que ajudarão você a dar os primeiros passos nas ferramentas de otimização disponíveis no Julia.

Para auxiliá-lo na instalação do Julia pré-compilado + pré-requisitos + pacotes utilizados nas disciplinas de otimização, baixe ESTE SCRIPT e siga as instruções contidas nele (testado no Ubuntu 22.04)

Métodos para otimização sem restrições

Métodos de descida gerais

Referência principal: Friedlander, A. Elementos de Programação Não-Linear (seção 6.1)
Referência complementar: Martínez, J. M.; Santos, S. A. Métodos computacionais de otimização (seção 6.1)

Método de Newton

Referência principal: Friedlander, A. Elementos de Programação Não-Linear (capítulo 5, seção 6.2)
Referência complementar: Martínez, J. M.; Santos, S. A. Métodos computacionais de otimização (seção 6.1)

Métodos quase-Newton

Referência principal: Martínez, J. M.; Santos, S. A. Métodos computacionais de otimização (seção 6.3)
Referência complementar 1: Friedlander, A. Elementos de Programação Não-Linear (seção 6.1)
Referência complementar 2: Ribeiro, A. A; Karas, E. W. Otimização contínua. Cengage, 2014 (seção 5.4 do livro publicado pela Cengage)

Método do gradiente espectral

Referência principal: TCC de Elivandro Oliveira Grippa (seção 3.4)

Método dos gradientes conjugados para minimização de quadráticas

Referência principal: Ribeiro, A. A; Karas, E. W. Otimização contínua. Cengage, 2014 (seção 5.3 do livro publicado pela Cengage)

Otimização com restrições

Referência principal: Friedlander, A. Elementos de Programação Não-Linear (seções 13.1 e 13.2)

Métodos para otimização com restrições

Referência principal 1: Friedlander, A. Elementos de Programação Não-Linear
Referência principal 2: Martínez, J. M. Otimização prática usando o Lagrangiano aumentado (capítulo 2)
Referência complementar: Martínez, J. M.; Santos, S. A. Métodos computacionais de otimização

Códigos em Julia

Tópicos extras

Comparação do desempenho de diferentes algoritmos

Referência principal: Ribeiro, A. A; Karas, E. W. Otimização contínua. Cengage, 2014 (seção 6.3 do livro publicado pela Cengage)

Breve introdução à otimização aplicada ao aprendizado de máquina supervisionado (a fazer)

Outros

Vídeos interessantes sobre Otimização