LEZIONE N. 6 PROGRAMMAZIONE LINEARE IN MARKAL, SOLUZIONE DEI PROBLEMI DI PROGRAMMAZIONE LINEARE CON: IL METODO GRAFICO ED IL METODO DEL SIMPLESSO. PROPRIETÀ DELLA DUALITÀ ED ESEMPI DI SOLUZIONE DEL PROBLEMA PRIMALE E DUALE. - PARTE 1-1 di 16 Introduzione Le risorse a disposizione sono limitate (olio/territori/...). Decidere come utilizzare tali risorse è un problema universale Tipicamente queste attività comprendono come allocare le risorse al fine di massimizzare profitti/prestazioni o minimizzare costi. La programmazione matematica ha come scopo l ottimizzazione di un sistema soggetto a vincoli o restrizioni in funzione di variabili decisionali per il raggiungimento di un determinato obiettivo Dunque un problema di ottimo coinvolge decisioni/vincoli/obiettivi >> se si costruisce un modello matematico dobbiamo avere il modo di trattare questi elementi 2 di 16
La programmazione lineare (P.L.) è una tecnica matematica che tratta una categoria di problemi di ottimizzazione (massimizzazione o minimizzazione) nella quale intervengono più variabili linearmente espresse - sottomesse a vincoli o restrizioni, linearmente espressi. Questa tecnica tratta problemi di massimizzazione o di minimizzazione che non potrebbero essere risolti con i metodi del calcolo differenziale. La Programmazione Lineare è una metodologia della Ricerca Operativa, tipicamente utilizzata nei problemi di gestione delle risorse per determinare la ripartizione ottimale delle risorse che permette di ottenere simultaneamente i costi di produzione minimi e i maggiori profitti. In particolare, l'ottimizzazione lineare mira a determinare il valore ottimale (valore massimo o minimo, a seconda del problema) di una funzione lineare di un certo numero di variabili (x 1,x 2,...x n ) chiamata funzione obbiettivo, dato un numero m di restrizioni lineari su tali variabili (equazioni o d isequazioni). 3 di 16 Ecco una formulazione matematica di un programma lineare: Massimizzare la funzione obbiettivo Z=c 1 x 1 +c 2 x 2 + +c n x n Dove le variabili x i con i=1,,n sono soggette ai seguenti vincoli: a 11 x 1 +a 12 x 2 + +a 1n x n =b 1 a 21 x 1 +a 22 x 2 + +a 2 nx n =b 2 (1). a m1 x 1 +a m2 x 2 + +a mn x n =b m (2) x i = 0 con i=1,...,n I vincoli del gruppo (1) si chiamano vincoli funzionali ; quelli del gruppo (2), condizioni di non negatività. 4 di 16
Dal 1980 ad oggi, c'è stato un notevole sviluppo di software per la risoluzione di problemi di programmazione lineare (ad esempio CPLEX, LINGO, MINOS, ecc.). Ciascun programma utilizza differenti algoritmi (metodo del simplesso, metodo del punto interno, ecc.) ed offre diverse opzioni (analisi di sensibilità, ecc.). A seconda del problema da risolvere, alcuni risolutori possono essere più o meno efficienti degli altri in termini di velocità, precisione, numero di iterazioni ed opzioni disponibili. 5 di 16 Esempio di soluzione grafica di un problema di programmazione lineare Un primo approccio possibile è quello che si riferisce ad una interpretazione geometrica del problema di programmazione lineare. Il metodo grafico di risoluzione dei programmi lineari è concettualmente valido per i problemi a due variabili con un numero qualsiasi di vincoli, ma non è applicabile, al massimo, che nel caso di tre variabili. Tuttavia esso permette di introdurre chiaramente un certo numero di concetti di uso corrente nella programmazione lineare. A questo scopo si osservi il seguente esempio: 6 di 16
PROBLEMA DI MASSIMO A DUE VARIABILI: AUTOPRODUTTORE DI ENERGIA ELETTRICA Un autoproduttore di energia elettrica ha due gruppi elettrogeni uno che utilizza gasolio e l altro che utilizza olio combustibile. Per ogni litro di gasolio bruciato sono prodotti: 4 g di CO 2 e 4 g di NO x ; per ogni litro di olio combustibile bruciato sono prodotti: 2 g di CO 2, 4 g di NO x e 1 g si SO x. I vincoli imposti sulle emissioni stabiliscono che al giorno non si possa produrre più di: 160 g di CO 2, 240 g di NO x e 50 g di SO x. Non potendo superare i vincoli sulle emissioni giornaliere (per non pagare penali) e, considerando che per ogni litro di gasolio si producono 2 kwh di energia elettrica, mentre per ogni litro di olio combustibile si producono 4 kwh di energia elettrica, ci si chiede quanti litri di gasolio e olio combustibile bruciare al giorno per 7 di 16 massimizzare la produzione di energia elettrica. Si indichino con x 1 e x 2 rispettivamente: x 1 = la quantità incognita in litri di olio combustibile da bruciare al giorno x 2 = la quantità incognita in litri di gasolio da bruciare al giorno La funzione obbiettivo da ottimizzare, nel caso specifico da massimizzare sarà data da: max Z=4x 1 + 2x 2 Imponiamo i vincoli funzionali. I dati dicono che per ogni litro di gasolio bruciato si producono 4 g di CO 2 e che per ogni litro di olio combustibile bruciato si producono 2 g di CO 2, considerando che al giorno non si possano produrre più di 160 g di CO 2. Questo vincolo viene perciò tradotto dalla disequazione: 2x 1 +4x 2 =160 8 di 16
con analogo ragionamento per il vincolo sulla produzione di NO x abbiamo: 4x 1 +4x 2 =240 infine per il vincolo sulla produzione di SO x : 1x 1 =50 Imponiamo ora le condizioni di non negatività. Poiché non possono essere accettate soluzioni che dicano di bruciare quantità negative di x 1 e di x 2 perché prive di significato si devono imporre le condizioni di non negatività: x 1 =0 e x 2 =0. 9 di 16 Il problema lineare completo si presenta quindi così: max Z=4x 1 + 2x 2 2x 1 +4x 2 =160 4x 1 +4x 2 =240 x 1 =50 e x 1 =0 ; x 2 =0 Per poterlo risolvere occorre rappresentare graficamente in un sistema di coordinate (x 1, x 2 ) il sistema di disequazioni come rappresentato in figura 1; tutte le coppie di valori x 1 e x 2 che soddisfano i vincoli funzionali e le condizioni di non negatività sono tutte nell area tratteggiata, area delle soluzioni ammissibili. 10 di 16
Z=140 kwh Z=160 kwh Z=200 kwh Z=220 kwh 1 2 AREA (POLIGONO) DELLE SOLUZIONI AMMISSIBILI 3 5 4 Figura 1 Soluzione grafica del problema lineare 11 di 16 Tutte le coppie di valori di x 1 e x 2 all interno dell area tratteggiata sono soluzioni del problema lineare e inserendoli nella funzione obbiettivo, si trovano i valori di energia elettrica corrispondenti alle varie combinazioni di litri di combustibile. Nel grafico è rappresentata la funzione obbiettivo Z=4x 1 +2x 2 per diversi valori di Z=140 kwh, 160 kwh, 220 kwh Come si può osservare il valore di Z aumenta quanto più la retta nel grafico tratteggiata in rosso è distante dall origine degli assi questo significa che la soluzione ottima giace su uno dei vertici del poligono delle soluzioni ammissibili. Le soluzioni corrispondenti ai vertici del poligono delle soluzioni ammissibili prendono il nome di soluzioni ammissibili di base e tra queste di trova sicuramente la soluzione ottima. 12 di 16
Nel nostro caso abbiamo 5 soluzioni ammissibili di base corrispondenti ai cinque vertici del poligono numerati con i numeri 1,2,3,4,5 1) x 1 =0 x 2 =40 Z=80 kwh 2) x 1 =40 x 2 =20 Z=200 kwh 3) x 1 =50 x 2 =10 Z=220 kwh 4) x 1 =50 x 2 =0 Z=200 kwh 5) x 1 =0 x 2 =0 Z=0 kwh La soluzione ottima è quella del vertice 3 con il consumo al giorno di x 1 =50 litri di olio combustibile e di x 2 =10 litri di gasolio perché massimizza la funzione obbiettivo Z e permette di ottenere una produzione di energia elettrica giornaliera pari a Z=220 kwh. 13 di 16 CONCLUSIONI Il metodo grafico ci ha permesso di introdurre il concetto di soluzione ammissibile di base corrispondente ai vertici del poligono e di dimostrare graficamente come la soluzione ottima è una soluzione ammissibile di base. Si può dimostrare che in generale la soluzione ottima che massimizza o minimizza la funzione obbiettivo Z condizionata dal sistema dei vincoli è necessariamente una soluzione ammissibile di base. Il metodo grafico, può essere utilizzato in casi molto semplici con due massimo tre variabili, nel caso di più di tre variabili si utilizzano metodi come quello del simplesso o del punto interno. 14 di 16
ESERCIZIO A CASA Una società che distribuisce gas naturale vuole sviluppare un piano di distribuzione ottimale per i successivi 10 giorni. Nella tabella riportata di seguito si trovano i costi ($/1000 cf di gas naturale) a cui la società ipotizza di comprare (Bid) e vendere il gas (Ask)... Inoltre la società ha 150 000 cf di gas stoccato e ha una disponibilità di stoccaggio di 500 000 cf. per mantenere il livello di pressione nel sistema delle condotte non si possono immettere più di 200 000 cf/gg ed estrarre più di 180 000 (con estrazioni alla mattina ed immissioni alla sera). Il costo dello stoccaggio è pari al 5% del prezzo del mercato sulla media giornaliera stoccata (con media tra la mattina e la sera) Quale è la soluzione ottimale? Trovare la soluzione anche nell udm del SI La soluzione va inviata a nanglani@unipv.it entro le ore 10 di lunedì 2 aprile (per accedere al punto extra sulla 15 di 16 valutazione finale) tabella Vedere file pte6.2.xls 16 di 16