Che cos'è Mathopt

Mathopt è una libreria per la modellazione e la risoluzione di problemi di ottimizzazione matematici, ad esempio problemi di programmazione lineare (LP) o problemi di programmazione con numeri interi misti (MIP). Mathopt separa la modellazione dalla soluzione, consentendo agli utenti di passare da un metodo di soluzione all'altro modificando un'enum (e una dipendenza dalla build) per selezionare il proprio risolutore.

Guarda questo video per una breve introduzione a Mathopt dalla presentazione della JuMP Conference 2023.

Funzioni Mathopt

I modelli Mathopt possono contenere:

  • variabili numeri interi o continue
  • vincoli lineari o quadratici
  • obiettivi lineari o quadratici
  • più obiettivi gerarchici
  • vincoli MIP specializzati (SOS, indicatore, a breve)
  • alcuni vincoli conici (cono del secondo ordine, altri in futuro)

I modelli sono definiti indipendentemente da qualsiasi risolutore e i risolutori possono essere scambiati in modo intercambiabile. Mathopt supporta i seguenti risolutori:

Mathopt fornisce librerie client in C++ e Python per creare il tuo modello di ottimizzazione.

Mathopt supporta molte funzioni avanzate, tra cui:

  • Analisi di fattibilità (Irreducible Infeasible Set o IIS), solo Gurobi
  • Soluzioni incrementali
  • Richiamate
  • Dualità
  • Raggi primali e doppi
  • Soluzioni prime e doppie non ottimali
  • Eliminazioni di variabili e vincoli
  • Riavvii tiepidi (per soluzione o base)
  • Motivo dettagliato della risoluzione
  • Priorità di rami
  • Interruzione
  • Molti parametri indipendenti dai risolutori