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

Avaliação 1

A avaliação consiste no seguinte:

No caso de trabalho computacional e artigo, o(a) estudante será arguido pelo professor individualmente. No caso de artigo, o(a) estudante deverá reproduzir os testes do artigo na medida do possível. Testes adicionais são sempre bem vindos. No caso de artigo, caso a qualidade do trabalho realizado seja excepcional, o(a) estudante poderá ser dispensado de novas avaliações. Não é preciso estudar/reproduzir os teoremas de convergência.

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.

Para uma introdução ao Julia e seu uso em otimização, acesse este link.

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 lineares

Referência principal: Friedlander, A. Elementos de Programação Não-Linear

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

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

Obs: Em novas versões de um pacote, comandos antigos podem deixar de funcionar. Logo, caso algum código apresente erro, pode ser devido à comandos obsoletos. Avise-me para que eu atualize os códigos.

Tópicos extras

Comparação do desempenho de diferentes algoritmos

Referência 1: Ribeiro, A. A; Karas, E. W. Otimização contínua. Cengage, 2014 (seção 6.3 do livro publicado pela Cengage) Referência 2: Dolan, Elizabeth D.; Moré, Jorge J. Benchmarking optimization software with performance profiles. Math. Program., Ser. A 91: 201-213 (2002). artigo revista; PDF acesso aberto

Breve introdução à otimização aplicada ao aprendizado de máquina supervisionado
Outros