Julia para Otimização
Nesta página você encontrará exemplos/exercícios simples para iniciar a escrita e resolução de modelos de otimização em Julia. Não é um tutorial completo. Evidentemente, há muito material na internet que você pode acessar; um deles é o curso de Abel Siqueira no Youtube.
Pré-requisitos
- Antes estudar os exemplos, leia atentamente o tutorial de instalação do Julia. Sugiro familiarizar-se com as dicas descritas na seção “Dicas” deste link.
Principais pacotes utilizados nos exemplos:
- Escrita dos modelos de otimização:
JuMP
. Documentação completa aqui - Modelos de otimização com derivadas automáticas:
NLPModels
,NLPModelsJuMP
. Como avaliar funções e suas derivadas, veja este link - Rotinas de álgebra linear:
LinearAlgebra
- Impressão na tela/arquivo estilo C:
Printf
- Plotagem de gráficos:
Plots
Outros pacotes são apresentados nos exemplos.
Exemplos
- Exemplo 1: escrevendo um modelo simples de otimização irrestrita
- Exemplo 2: escrevendo um modelo de otimização a partir de variáveis do ambiente
- Exemplo 3: carregando e executando códigos salvos em arquivos
- Exemplo 4: um método simples de gradiente
- Exemplo 5: construindo gráficos
- Exemplo 6: escrevendo um modelo de otimização com restrições
- Exemplo 7: resolvendo modelos de otimização restrita e irrestrita por métodos disponíveis
- Exemplo 8: acessando bibliotecas de problemas-teste usadas na literatura
- Exemplo 9: gravando arquivos de texto; tabelando resultados
- Exemplo 10: executando códigos fora do ambiente Julia
- Exemplo 11: salvando objetos em arquivos
- Exemplo 12: tabelando resultados de forma inteligente com DataFrames
- Exemplo 13: tratando erros de execução
- Exemplo 14: calculando tempos de execução
Bancos de problemas-teste
- Você encontra alguns bancos de problemas-teste para otimização contínua, otimização combinatória, programação linear inteira mista e outros neste link.
Pacotes para fins específicos (avançado)
Leituras interessantes
- Computação com precisão finita. Notas de aula do curso de Cálculo Numérico de Paulo J. S. Silva (Unicamp). Acesse o PDF direto neste link ou o caderno Julia.