Informazioni utili sui programmi per la soluzione di problemi di programmazione matematica

I problemi di programmazione matematica si possono suddividere in problemi lineari e non-lineari: i primi sono quelli in cui sia i vincoli che la funzione obiettivo sono descrivibili da funzioni lineari delle variabili. Un'ulteriore classificazione distingue i problemi nel continuo e i problemi nel discreto a seconda che il dominio delle variabili sia un insieme continuo o discreto.

Esistono diversi programmi per la soluzione di problemi lineari (nel continuo), lineari interi e non-lineari.


Programmazione lineare e lineare intera.

Una rassegna molto dettagliata e aggiornata sui solutori è reperibile all'URL: http://lionhrtpub.com/orms/surveys/LP/LP-survey.html

Un solutore gratuito e molto usato per problemi lineari, sia nel continuo che nel discreto è GLPK. La versione di GLPK per Windows si può scaricare al seguente URL:

http://gnuwin32.sourceforge.net/packages/glpk.htm.

Nel pacchetto di installazione di GLPK è documentato (file lang.pdf) anche MathProg, il linguaggio che serve per descrivere il modello matematico da dare in ingresso a GLPK. La documentazione è di gran lunga sovrabbondante rispetto alle esigenze della gara. Dal momento che il linguaggio MathProg è molto intuitivo, si consiglia di dare prima un'occhiata agli esempi riportati qui di seguito, e di usare il manuale solo come strumento di consultazione in caso di necessità. Gli esempi sono riferiti agli stessi tre modelli (problema dello zaino, problema di bin packing, problema del cammino di costo minimo) usati come esempi di formulazione di problemi di ottimizzazione.

Esempi di formulazioni

Esempi di files corrispondenti (input e output)

Tutto ciò che serve per scrivere il modello nel linguaggio MathProg è un editor di files di testo, come il Notepad di Windows.


Programmazione non-lineare.

Un nutrito elenco di solutori gratuiti per problemi di programmazione non-lineare è consultabile all'URL http://www.mat.univie.ac.at/~neum/glopt/software_g.html#pub_dom

Ma perché non provare a (ri-)formulare il problema in modo lineare?


19 Agosto 2005