Otimização 1

Ementa e programa

Objetivos da disciplina

Textos de referência

Textos complementares

Canais de acesso

Formas de avaliação

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

Tópicos extras

Introdução à complexidade de algoritmos
Breve introdução à otimização aplicada ao aprendizado de máquina supervisionado
  1. Introdução
  2. Método do gradiente incremental
  3. Um pouco de probabilidade
  4. Método do gradiente estocástico (SG) e variantes
  5. Convergência do método do gradiente estocástico para funções convexas
  6. Treinamento de redes neurais multicamadas tipo feedfoward, backpropagation
  7. Experimentos numéricos
  8. EXERCÍCIOS
  9. Referências:
    • Bottou, L; Curtis, F. E.; Nocedal, J. Optimization Methods for Large-Scale Machine Learning. SIAM Rev., 60(2), 223-311 (2018). artigo revista; PDF acesso livre
    • (introdução gradiente incremental – seção 2.1.5) Bertsekas, D. P. Convex Optimization Algorithms. Athena Scientific, 2015.
    • (gradiente incremental/estocástico e convergência – seções 8.3, 8.4) Beck, A. First-Order Methods in Optimization. MOS-SIAM Series on Optimization, SIAM, 2017.
    • Livro on-line “Neural Networks and Deep Learning”

Para mais informações, veja o Tópico 5 deste link.

Método do gradiente projetado para restrições convexas quaisquer
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

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.