Vai al contenuto

Materiale scaricabile

Tutto il materiale del corso, in PDF, aggiornato a ogni pubblicazione del sito. Testi, figure e dati sono sotto licenza CC BY 4.0; gli script Python sotto licenza MIT.

Le tre dispense

Se vuoi il corso intero da leggere offline, parti da questi tre PDF: sono il cuore del materiale. Quello che viene dopo e' di contorno.

  • Modellazione


    La parte metodologica: che cos'è un modello MIP, logica e variabili binarie, i quattordici legami fra variabili con le loro dimostrazioni, rilassamenti, dualità e bound, euristiche costruttive, e il passaggio a Python/Gurobi.

    dispensa-1-modellazione.pdf

  • Problemi numerici


    I quindici modelli numerici, dall'EX 1 all'EX 15: dati espliciti, poche variabili, un solo passaggio per tecnica. Si leggono per prendere le misure prima dei problemi generali.

    dispensa-2-numerici.pdf

  • Problemi con modello simbolico


    I ventitré problemi delle tre famiglie e dei problemi misti: enunciato, modello simbolico, istanza, euristica, duale del rilassamento, ottimo, domande aggiuntive e una variante svolta per intero.

    dispensa-3-simbolici.pdf

Gli altri documenti

  • Come si lavora con il corso


    Come è fatto il corso, come è fatto ogni esercizio e come è fatto l'esame: il percorso, i criteri di valutazione, le domande tipiche di discussione, gli errori più comuni e la riproducibilità dei numeri.

    organizzazione-del-corso.pdf

  • Problemi da modellare


    Per esercitarsi — soluzioni riservate ai docenti.

    Quaranta problemi dati come arrivano davvero, senza il modello già scritto: venti con i dati numerici espliciti e venti in forma simbolica.

    esercizi.pdf

  • Le slide del corso


    Centocinquanta slide: il metodo e i quattordici legami, il sandwich dei bound, e poi tutti i modelli e tutti i problemi --- una slide per ciascuno dei quindici modelli numerici, l'enunciato e il modello di ciascuno dei ventitré problemi, e i quaranta problemi da modellare. I modelli sono generati dalle stesse sorgenti delle dispense.

    slide-mip.pdf

  • Il codice


    Uno script per modello, i notebook generati, i dati in CSV. Tutto si rigenera con un comando e ogni numero è verificato da un assert.

    modellazione-mip

Rigenerare tutto

python3 -m pip install gurobipy pandas matplotlib mkdocs-material
python3 python/esegui_tutti.py       # dati, figure, modelli e notebook
python3 python/verifica_numeri.py    # ogni numero citato nei testi
python3 -m mkdocs build --strict     # il sito

La licenza di Gurobi

python3 -m pip install gurobipy

Il pacchetto pip include una licenza dimostrativa (fino a 2000 variabili e 2000 vincoli): basta per tutte le istanze di questo corso. All'avvio compare la riga Restricted license - for non-production use only: è normale.

Licenza accademica completa, gratuita:

  1. registrarsi su https://portal.gurobi.com con l'email istituzionale;
  2. richiedere una Named-User Academic License;
  3. eseguire il comando grbgetkey XXXXXXXX-... mostrato dal portale (serve la rete di ateneo o la VPN);
  4. la licenza finisce in ~/gurobi.lic e da quel momento non ci sono limiti di dimensione.