O que é MathOpt
A MathOpt é uma biblioteca para modelagem e resolução de problemas de otimização matemática, como problemas de programação linear (LPs, na sigla em inglês) ou problemas de programação de números inteiros mistos (MIPs, na sigla em inglês). O MathOpt separa a modelagem da solução, permitindo que os usuários alternem entre os métodos de solução mudando um tipo enumerado (e uma dependência de build) para selecionar o solucionador.
Assista este vídeo para uma breve introdução ao MathOpt na apresentação da conferência JuMP 2023.
Recursos do MathOpt
Os modelos MathOpt podem conter:
- variáveis contínuas ou inteiras
- restrições lineares ou quadráticas
- objetivos lineares ou quadráticos
- vários objetivos hierárquicos
- restrições especializadas de MIP (SOS, indicador, mais opções em breve)
- algumas restrições cônicas (cone de segunda ordem, mais por vir)
Os modelos são definidos independentemente de qualquer solucionador, e os solucionadores podem ser trocados de forma intercambiável. O MathOpt oferece suporte aos seguintes solucionadores:
O MathOpt fornece bibliotecas de cliente em C++ e Python para criar seu modelo de otimização.
O MathOpt oferece suporte a muitos recursos avançados, incluindo:
- Análise de inviabilidade (conjunto inviável irredível ou IIS), somente Gurobi
- Resolução incremental
- Callbacks
- Duplicação
- Raios primais e duplos
- Soluções primárias e duplas abaixo do ideal
- Exclusões de variáveis e restrições
- Inicialização a quente (por solução ou base)
- Motivo detalhado da rescisão
- Prioridade de ramificação
- Interrupção
- Muitos parâmetros independentes do solucionador