Julia para Otimização
Nas disciplinas de otimização ministradas por mim, bem como nas orientações de IC e TCC, utilizo a linguagem de programação Julia. O principal material para início no uso do Julia é o tutorial
Bancos de problemas-teste
O Julia oferece interfaces para vários bancos de problemas-teste. A seguir, listo algumas delas separadas por categoria (a maioria não presente no tutorial):
Otimização contínua (em geral, problemas não lineares)
- CUTEst (Constrained and Unconstrained Testing Environment with safe threads):
CUTEst.jl
. Inclui problemas-teste lineares da NETLIB - Problemas de quadrados mínimos não lineares de Moré, Garbow e Hillstrom (1981):
NLSModels.jl
- Problemas irrestritos:
OptimizationProblems.jl
Programação linear inteira mista e otimização combinatória
- Problema do caixeiro viajante (Traveling Salesman Problem):
TSPLIB.jl
- Problemas de localização de facilidades (Facility Location Problems):
FacilityLocationProblems.jl
- Problema de alocação generalizado (Generalized Assignmnent Problem):
AssignmentProblems.jl
- Problema de empacotamento (Bin Packing Problem):
BPPLib.jl
- Capacitated Lot Sizing Problem:
LotSizingProblems.jl
- Multi-Depot Vechile Scheduling Problem:
MDVSP.jl
- Problema de roteamento de veículos capacitado (Capacitated Vehicle Routing Problem):
CVRPLIB.jl
- Inventory Routing Problem:
InventoryRoutingProblems.jl
- Capacitated Arc Routing Problem:
CARPData.jl
Banco de matrizes
- Matrizes esparsas da Suite Sparse Matrix Collection, o maior banco de matrizes esparsas disponível:
MatrixDepot.jl
ouSuiteSparseMatrixCollection.jl
Conjuntos de dados para aprendizado de máquina
- Acesso a vários datasets:
OpenML.jl
- Pequeno pacote com alguns datasets:
MLDatasets.jl
Formatos específicos
- Leitura de arquivos AMPL (
.nl
):AmplNLReader.jl
- Leitura de arquivos
MPS
eQPS
(programação linear e quadrática):QPSReader.jl
Fontes sem interface para Julia
Outras fontes
O curso de Abel Siqueira no Youtube é uma boa fonte para uso do Julia em otimização.
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.