Università di Catania L.M. in Informatica Metodi Matematici per l Ottimizzazione Modulo di Ottimizzazione Matematica Introduzione alla programmazione lineare Laura Scrimali DMI - Studio 338, piano II blocco I Tel. 095 7383063 - E-mail: scrimali@dmi.unict.it
Informazioni generali Materiale didattico Programma e lucidi delle lezioni scaricabili alla pagina: http://studium.unict.it/dokeos/2015/ Ricevimento Lunedì dalle ore 11,00 alle ore 13,00 e giovedì dalle ore 9,00 alle ore 11,00. Prova d esame ORALE CON SVOLGIMENTO DI UN ESERCIZIO O ELABORAZIONE DI UN PROGRAMMA IN GAMS. Lezioni In aula. Le ultime 6 o 7 lezioni si terranno in aula Archimede. ATTIVITÀ DI GRUPPO
Programma PROGRAMMAZIONE LINEARE Problemi di PL. Algoritmo del Simplesso. Teoria della Dualità. OTTIMIZZAZIONE SU GRAFI Albero di copertura di costo minimo. Cammino minimo. Massimo flusso. Problema dell accoppiamento. Problema dell assegnamento di costo minimo. PROGRAMMAZIONE LINEARE INTERA Esempi di problemi di PLI. Metodo dei piani di taglio. Metodo del Branch and Bound. Problema dello zaino. Problema del commesso viaggiatore. LINGUAGGIO DI PROGRAMMAZIONE GAMS Scrivere e risolvere un modello con GAMS.
Testi di riferimento R. Tadei, F. Della Croce. Elementi di Ricerca Operativa. Società Editrice Esculapio, 2005. R. Baldacci, M. Dell Amico. Fondamenti di Ricerca Operativa. Pitagora Editrice, 2002. M. Bruglieri, A. Colorni. Ricerca Operativa. Zanichelli, 2012. F.S. Hillier, G.J. Lieberman. Ricerca operativa. McGraw-Hill, 2006.
Testi di riferimento R.E. Rosenthal. A GAMS Tutorial. Scaricabile all url: http://www.gams.com/dd/docs/gams/tutorial.pdf. R.E. Rosenthal. GAMS-A User s Guide. Scaricabile all url: http://www.gams.com/dd/docs/bigdocs/gamsusersguide.pdf.
Siti internet di interesse http://www.airo.org http://www.euro-online.org http://www.informs.org http://www.gams.com
Per cominciare...
Cos è l ottimizzazione matematica L ottimizzazione matematica si occupa di studiare problemi (detti problemi di ottimizzazione) della forma: min f (x) x S, f : R n R, S R n. Quindi un problema di ottimizzazione consiste nel determinare, se esiste, un punto di minimo della funzione f tra i punti dell insieme S. L ottimizzazione matematica è una branca della Ricerca Operativa, la disciplina che si occupa della formulazione e risoluzione di modelli matematici associati a processi decisionali complessi.
Video motivazionale http://www.sportellomatematico.it
Problemi di ottimizzazione Alcuni problemi che possono essere affrontati come problemi di ottimizzazione sono: Problemi di natura industriale: pianificazione della produzione; gestione ottima delle scorte; localizzazione e dimensionamento di impianti. Problemi di progettazione ottima: progettazione di reti e loro gestione; progettazione strutturale; progettazione di sistemi ottici; allocazione ottima di componenti elettronici. Problemi di economia e finanza: scelta di investimenti; composizione di un portafoglio. Problemi di organizzazione: determinazione dei turni del personale; manutenzione di beni; project planning.
Problemi scientifici: studi sulla struttura del DNA; ricostruzione di immagini. Problemi di diagnostica medica: interpretazione e analisi dei dati ottenibili da strumenti di analisi clinica. Problemi di controllo ottimo: controllo di servomeccanismi e di sistemi di guida; controllo di traiettorie.
Giochiamo con le costruzioni? Disponibilità settimanale di materie prime: 8 mattoni piccoli Prodotti: 6 mattoni grandi Tavoli Sedie Profitto = euro 20/Tavolo Profitto = euro15/sedia
Il dilemma del pasticcere Se un pasticcere vende biscotti da dessert guadagna 4 e la dozzina, se vende torte guadagna 8, 5 e a torta. Un giorno si accorge di avere poca farina, poco burro e poche uova. Poiché entrambe le ricette richiedono tutti e tre gli ingredienti, anche se in proporzioni diverse, il pasticcere non sa più come comportarsi per ottenere il massimo guadagno.
Pianificazione degli investimenti Una società finanziaria estera dispone di un capitale di 200.000e da investire in progetti di sviluppo. In particolare, sono al vaglio tre progetti A, B e C. La tabella seguente riporta, per ognuno dei tre progetti, il capitale richiesto e il ritorno atteso. Progetto Costo [ke] Ritorno atteso [ke] A 90 100 B 80 80 C 70 75 Si tratta di scegliere l insieme dei progetti che consente di massimizzare il ritorno atteso.
Pianificazione di progetti Un progetto è composto da 9 attività, con le durate minime e le relazioni di precedenza indicate nella tabella. Si vuole determinare il tempo minimo di completamento dell intero progetto. Attività Durata Predecessori A 3 B 2 A C 3 A D 3 C E 4 B,C F 3 B G 1 E,D H 4 C I 2 F
Approccio modellistico
Approccio modellistico 1 Formulazione del problema (analisi): individuazione degli obiettivi, determinazione dei vincoli e raccolta dei dati.
Approccio modellistico 1 Formulazione del problema (analisi): individuazione degli obiettivi, determinazione dei vincoli e raccolta dei dati. 2 Costruzione del modello: compromesso tra precisione e trattabilità matematica, individuazione delle variabili, funzione obiettivo, vincoli.
Approccio modellistico 1 Formulazione del problema (analisi): individuazione degli obiettivi, determinazione dei vincoli e raccolta dei dati. 2 Costruzione del modello: compromesso tra precisione e trattabilità matematica, individuazione delle variabili, funzione obiettivo, vincoli. 3 Analisi del modello: deduzione di proprietà (esistenza e unicità della soluzione, condizioni di ottimalità, stabilità delle soluzioni).
Approccio modellistico 1 Formulazione del problema (analisi): individuazione degli obiettivi, determinazione dei vincoli e raccolta dei dati. 2 Costruzione del modello: compromesso tra precisione e trattabilità matematica, individuazione delle variabili, funzione obiettivo, vincoli. 3 Analisi del modello: deduzione di proprietà (esistenza e unicità della soluzione, condizioni di ottimalità, stabilità delle soluzioni). 4 Soluzione numerica: costruzione dell algoritmo e calcolo della soluzione.
Approccio modellistico 1 Formulazione del problema (analisi): individuazione degli obiettivi, determinazione dei vincoli e raccolta dei dati. 2 Costruzione del modello: compromesso tra precisione e trattabilità matematica, individuazione delle variabili, funzione obiettivo, vincoli. 3 Analisi del modello: deduzione di proprietà (esistenza e unicità della soluzione, condizioni di ottimalità, stabilità delle soluzioni). 4 Soluzione numerica: costruzione dell algoritmo e calcolo della soluzione. 5 Validazione del modello: collaudo e miglioramento del modello.
Problemi di Ottimizzazione Un problema di Ottimizzazione può presentarsi nella forma f : R n R, S R n f funzione obiettivo S regione ammissibile x S punto ammissibile min f (x) x S, Si parlerà indifferentemente di problemi di massimo o di minimo in quanto vale min x S f (x) = max x S ( f (x)).
Definizione Un problema di ottimizzazione si dice inammissibile se S =. Definizione Un problema di ottimizzazione si dice illimitato se comunque si sceglie k > 0 esiste un punto x S tale che f (x) < k. Definizione Un punto x S si dice di ottimo globale se risulta f (x ) f (x), x S. Definizione Un punto x S si dice di ottimo locale se esiste ε > 0 tale che f (x ) f (x), x : x x < ε.
Classificazione dei problemi di Ottimizzazione Problemi di Ottimizzazione Continua. Le variabili possono assumere tutti i valori reali. Si possono avere problemi di ottimizzazione continua vincolata se S R n e non vincolata se S = R n. Problemi di Ottimizzazione Discreta. Le variabili sono vincolate ad essere numeri interi. In particolare, si ha programmazione a numeri interi se S Z n. Problemi misti. Solo alcune variabili sono vincolate ad essere intere.
Programmazione Matematica Un problema di Programmazione Matematica ha la forma min f (x) x S = {x R n : g(x) b}, f : R n R, g : R n R m, b R m.
Programmazione Matematica Un problema di Programmazione Matematica ha la forma min f (x) f : R n R, g : R n R m, b R m. Definizione x S = {x R n : g(x) b}, Dato un vincolo g(x) b, esso si dice violato nel punto x se g( x) < b; si dice attivo se g( x) = b. Un vincolo si dice infine ridondante se può essere eliminato senza alterare l insieme ammissibile.
Problemi di Programmazione Lineare (PL). La funzione obiettivo e le funzioni dei vincoli sono lineari, sono cioè del tipo: a 1 x 1 + + a n x n. Problema di Programmazione non Lineare. Almeno una delle funzioni non è lineare.
Problema generale di PL ) min / max (c 1 x 1 + c 2 x 2 + + c n x n a 11 x 1 + a 12 x 2 + + a 1n x n b 1................................. a m1 x 1 + a m2 x 2 + + a mn x n b m x j 0, j = 1,..., n x j variabili decisionali c j coefficienti di costo (o di profitto) b i termini noti a ij coefficienti del sistema dei vincoli
Modelli di PL 1 modelli di produzione 2 modelli di miscelazione 3 modelli di trasporto
Modelli di produzione Supponiamo che si debbano realizzare n diversi prodotti P 1,..., P n a partire da m materie prime R 1,..., R m diverse tra loro. Il problema dell allocazione ottima delle risorse consiste nel determinare le quantità da produrre di ciascun prodotto P 1,..., P n in modo da massimizzare il profitto rispettando i vincoli sulle risorse disponibili. Sia a ij la quantità di risorsa i necessaria a fabbricare una unità del prodotto P j. Supponiamo che ciascuna risorsa R i non possa superare un valore fissato b i e che c j sia il profitto ottenuto dalla vendita di una unità di prodotto P j.
Si introducano le variabili decisionali x 1,..., x n che rappresentano le quantità di ciascun prodotto P 1,..., P n. Tali variabili sono i cosiddetti livelli di attività. Il problema si può formulare come segue: max n j=1 c jx j n j=1 a ijx j b i i = 1,..., m x j 0 j = 1,..., n.
Il problema dei mattoni Lego Si vogliono determinare le quantità da produrre di tavoli e sedie in modo da massimizzare il profitto rispettando i vincoli sulle risorse disponibili. Disponibilità settimanale di materie prime: 8 mattoni piccoli Prodotti: 6 mattoni grandi Tavoli Sedie Profitto = euro 20/Tavolo Profitto = euro15/sedia
Formulazione matematica max(15x 1 + 20x 2 ) x 1 + 2x 2 6 2x 1 + 2x 2 8 x 1, x 2 0
Esempio Un azienda tessile produce due tipi di tessuto: A e B. Nella tabella sono riportate le quantità di lana e cotone impiegate e i profitti netti in euro: A B Lana 30 q 11 q Cotone 7 q 20 q Profitti 300 160 Supponiamo che occorrano 5 ore di lavoro per ogni unità di prodotto. Supponiamo inoltre che ogni settimana siano disponbili 170 q di lana e 60 q di cotone e si abbiano a diposizione 40 ore di lavoro. Si vogliono massimizzare i profitti, rispettando i vincoli di disponibilità delle risorse.
Formulazione matematica max(300x 1 + 160x 2 ) 30x 1 + 11x 2 170 7x 1 + 20x 2 60 5x 1 + 5x 2 40 x 1, x 2 0
Modelli di miscelazione Supponiamo di avere a disposizione n sostanze diverse S 1,..., S n, ciasuna delle quali contenga una certa quantità di ciasuno degli m componenti C 1,..., C m. Supponendo che ogni sostanza S j abbia costo unitario c j, j = 1,..., n, si vuole ottenere la miscela (delle sostanze) più economica che soddisfi alcuni requisiti qualitativi, cioè contenga una quantità non inferiore a b i di ciascun componente C i, i = 1,..., m. Sia a ij la quantità di componente C i presente nella sostanza S j.
Introducendo le variabili x 1,..., x n, che rappresentano la quantità di ciascuna sostanza S 1,..., S n da utilizzare nella miscela, il problema può essere scritto nella forma: min n j=1 c jx j n j=1 a ijx j b i i = 1,..., m x j 0 j = 1,..., n.
Esempio Un industria conserviera produce marmellata utilizzando frutta e dolcificante in modo che vengano soddisfatti certi requisiti circa il contenuto di vitamina C, sali minerali e zucchero. La frutta e il dolcificante vengono acquistati al costo di 0.5 euro e 0.4 euro ogni etto. Inoltre, 100 g di frutta contengono 120 mg di vitamina C, 20 mg di sali minerali, 20 g di zucchero, 100 g di dolcificante contegono 10 mg di sali minerali e 50 g di zucchero. Il prodotto finale deve contenere almeno 70 mg di vitamina C, 30 mg di sali minerali e 75 g di zucchero. Determinare le quantità di frutta e dolcificante da utilizzare, in modo da minimizzare il costo dell acquisto della frutta e del dolcificante.
Formulazione matematica min(0.5x 1 + 0.4x 2 ) 120x 1 70 20x 1 + 10x 2 30 20x 1 + 50x 2 75 x 1, x 2 0
Assegnazione di personale a turni Supponiamo che: i generico giorno i 1,..., m; j generico turno lavorativo j 1,..., n; a ij rappresenti il numero di ore che una persona assegnata al turno j lavorerà il giorno i; c j sia il salario di una persona assegnata al turno j; x j sia il numero di persone assegnate al turno j; b i sia il numero minimo di ore lavorative prestate da coloro che lavorano nel giorno i. Si vuole minimizzare il costo della retribuzione in modo che siano soddisfatte le richieste giornaliere.
Il problema può essere scritto nella forma: min n j=1 c jx j n j=1 a ijx j b i i = 1,..., m x j 0, x j Z, j = 1,..., n.
Esempio Un ristorante deve organizzare i turni dei camerieri con programmazione settimanale. Siano 30, 35, 40, 42, 50, 60, 74 i numeri minimi di camerieri necessari, rispettivamente, nel giorno i = 1,..., 7 della settimana. Supponiamo inoltre che ogni cameriere lavori cinque giorni consecutivi ed abbia poi due giorni consecutivi liberi. Il salario settimanale di un cameriere è pari a 300 euro se include la domenica e 250 euro in caso contrario.
Formulazione matematica min(250x 1 + 250x 2 + 300x 3 + 300x 4 + 300x 5 + 300x 6 + 300x 7 ) x 1 + x 4 + x 5 + x 6 + x 7 30 x 1 + x 2 + x 5 + x 6 + x 7 35 x 1 + x 2 + x 3 + x 6 + x 7 40 x 1 + x 2 + x 3 + x 4 + x 7 42 x 1 + x 2 + x 3 + x 4 + x 5 50 x 2 + x 3 + x 4 + x 5 + x 6 60 x 3 + x 4 + x 5 + x 6 + x 7 74 x j 0, x j Z, j = 1,..., 7.
Dieta ottimale Supponiamo di avere a disposizione n alimenti A 1,..., A n ed m principi nutritivi essenziali (proteine, vitamine, ecc.) P 1,..., P m. Siano: a ij la quantità del principio nutritivo P i contenuta nell alimento A j ; c j il costo unitario dell alimento A j ; b i il fabbisogno minimo giornaliero del principio nutritivo P i. Si vuole determinare una dieta gionaliera che minimizzi il costo totale e che rispetti il fabbisogno minimo giornaliero. Sia x j, j = 1,..., n la quantità di alimento A j da introdurre nella dieta, allora il problema si può formulare come segue: min n j=1 c jx j n j=1 a ijx j b i i = 1,..., m x j 0 j = 1,..., n.
Esempio Una fattoria acquista due tipi di alimenti per i suoi ovini. Il bestiame richiede ogni giorno almeno 60, 125 e 76 unità di ciascuno degli elementi nutrizionali A, B, C. Nella tabella sono riportati gli elementi nutrizionali (unità al chilo) e il costo (euro al chilo).
Esempio Una fattoria acquista due tipi di alimenti per i suoi ovini. Il bestiame richiede ogni giorno almeno 60, 125 e 76 unità di ciascuno degli elementi nutrizionali A, B, C. Nella tabella sono riportati gli elementi nutrizionali (unità al chilo) e il costo (euro al chilo). Alimento 1 Alimento 2 A 5 9 B 3 4 C 6 7 Costi 0.2 0.6
Formulazione matematica min(0.2x 1 + 0.6x 2 ) 5x 1 + 9x 2 60 3x 1 + 4x 2 125 6x 1 + 7x 2 76 x 1, x 2 0.
Modelli di trasporto Supponiamo che siano definite m località di produzione (generica località di produzione indicata con i) ed n località di distribuzione (generica località di distribuzione indicata con j). Siano definite le seguenti quantità: p i la capacità produttiva; q j la domanda; c ij il costo del trasporto dalla località i alla destinazione j. Si vogliono pianificare i trasporti in modo da soddisfare le richieste delle destinazioni minimizzando il costo del trasporto.
Sia x ij, i = 1,..., m, j = 1,..., n, la quantità di merce spedita dal luogo i al luogo j, allora il problema si può formulare come segue ( m ) min n i=1 j=1 c ijx ij n j=1 x ij p i i = 1,..., m m i=1 x ij q j j = 1,..., n x ij 0 i = 1,..., m, j = 1,..., n.
Se n j=1 q j > m i=1 p i, il sistema non ammette soluzioni ammissibili. Tuttavia si può ammettere l esistenza di un origine fittizia, collegata con costo nullo con tutti i luoghi di destinazione, che raccoglie l eccesso di domanda. La quantità di prodotto che una destinazione riceve dal luogo fittizio corrisponde ad una richiesta non soddisfatta per quella destinazione. Se n j=1 q j < m i=1 p i, si aggiunge un luogo fittizio di raccolta, collegato con costo nullo con tutti i luoghi di produzione, che raccoglie l eccesso di offerta.
Il problema bilanciato diventa ( m ) min n i=1 j=1 c ijx ij n j=1 x ij = p i i = 1,..., m m i=1 x ij = q j j = 1,..., n x ij 0 i = 1,..., m, j = 1,..., n.
Esempio Sono disponibili 3 cinquecento a Torino e 9 a Vicenza. Vengono richieste 2 automobili a Perugia, 5 a Milano e 5 a Roma. I costi di trasporto sono riportati nella tabella da/per Perugia Milano Roma Torino 600 400 740 Vicenza 980 430 860 Determinare lo schema del trasporto in modo da minimizzare il costo.
Formulazione matematica Indichiamo con x 1, x 2, x 3 rispettivamente le auto da trasportare da Torino a Perugia, Milano e Roma e con x 4, x 5, x 6 rispettivamente le auto da trasportare da Vicenza a Perugia, Milano e Roma. min(600x 1 + 400x 2 + 740x 3 + 980x 4 + 430x 5 + 860x 6 ) x 1 + x 2 + x 3 = 3 x 4 + x 5 + x 6 = 9 x 1 + x 4 = 2 x 2 + x 5 = 5 x 3 + x 6 = 5 x i 0, i = 1,..., 6.