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