Esercitazione n o 3 per il corso di Ricerca Operativa Ultimo aggiornamento November 1, 2011 Fornitura acqua Una città deve essere rifornita, ogni giorno, con 500 000 litri di acqua. Si richiede che l acqua non contenga sostanze inquinanti in quantità superiore a 100 parti per milione. L acqua può essere ottenuta da un fiume o da un pozzo. La quantità di acqua che può essere fornita dal fiume è illimitata, e un impianto di depurazione può depurarla in modo che il livello di inquinamento sia inferiore a 150 parti per milione ad un costo di e10 ogni 5 000 litri di acqua trattata o a 75 parti per milione ad un costo di e30 per 5 000 litri di acqua trattata. Il pozzo, invece, può fornire al più 200 000 litri di acqua al giorno con un livello di inquinamento pari a 50 parti per milione. L acqua fornita dal pozzo può, volendo, essere purificata mediante un processo sperimentale che riduce le impurità a 10 parti per milione. Il pompaggio dell acqua del pozzo costa e40 ogni 5 000 litri e la stessa quantità di acqua può essere purificata mediante il processo sperimentale al costo di e15. Scrivere il problema di PL che permette di determinare il modo di soddisfare le esigenze idriche della città al costo minimo. Analisi sintetica del problema. cittá fiume pozzo proced. 1 proced. 2 estrazione depurazione 500 000 richiesta/fornitura in lt. illimitato 200 000 al più 100 ppm livello inquinante 150 ppm 75 ppm 50 ppm 10 ppm costo e10/5 000lt. e30/5 000lt. e40/5 000lt. e(40+15)/5 000lt. variabili di decisione x 1F x 2F x 1P x 2P 1
Formulazione. Variabili di decisione. Scegliamo come variabili di decisione le quantità di acqua (in litri) x 1F ottenuta dal fiume con procedimento di depurazione 1, x 2F ottenuta dal fiume con procedimento di depurazione 2, x 1P ottenuta dal pozzo senza depurazione, x 2P ottenuta dal pozzo con procedimento di depurazione. Vincoli. Si devono imporre i seguenti vincoli: Vincoli di domanda: la città deve essere rifornita con 500000 lt.di acqua: x 1F + x 2F + x 1P + x 2P = 500 000 Vincoli di capacità: il pozzo può fornire al più 200000 lt. di acqua: x 1P + x 2P 200 000. Vincoli di qualità: la qualità della miscela è misurata in parti di sostanze inquinanti per milione, e deve risultare che fornisce il vincolo lineare 150x 1F + 75x 2F + 50x 1P + 10x 2P x 1F + x 2F + x 1P + x 2P 100 150x 1F + 75x 2F + 50x 1P + 10x 2P 100(x 1F + x 2F + x 1P + x 2P ). N.B. Nel caso specifico la quantità x 1F + x 2F + x 1P + x 2P = 500 000, dunque il vincolo è equivalente a 150x 1F + 75x 2F + 50x 1P + 10x 2P 100 500 000. Vincoli di non negatività. si tratta di quantità acqua, quindi x if 0 x ip 0 i = 1, 2. Funzione obiettivo. È il costo da minimizzare. Il costo è diverso a seconda della sorgente e del trattamento effettuato e supponiamo che valga l ipotesi di proporzionalità. Poiché 5000 lt. di acqua del tipo 1F costano 10000, il costo di x 1F lt. di acqua è (x 1F /5000)10000 = 2x 1F, analogamente il costo di x 2F lt. di acqua prodotti con modalità x 2F è (x 2F /5000)30000 = 6x 2F. Per quanto riguarda l acqua ottenuta dal pozzo, abbiamo che per la quantità x 1P dobbiamo pagare solo il pompaggio dato da: (x 1P /5000)40000 = 8x 1P, mentre per l acqua sottoposta a trattamento dobbiamo pagare sia il pompaggio che la purificazione (x 2P /5000)(40000 + 15000) = 11x 2P. Quindi la funzione obiettivo è: (10000x 1F + 30000x 2F + 40000x 1P + 55000x 2P )/5000 = 2x 1F + 6x 2F + 8x 1P + 11x 2P. 2
Complessivamente possiamo scrivere il problema di PL min 2x 1F + 6x 2F + 8x 1P + 11x 2P x 1F + x 2F + x 1P + x 2P = 500000 x 1P + x 2P 200000 50x 1F 25x 2F 50x 1P 90x 2P 0 x if 0, x ip 0 i = 1, 2. N.B. Si è scelta la formulazione del vincolo 150x 1F + 75x 2F + 50x 1P + 10x 2P 100(x 1F + x 2F + x 1P + x 2P ) 0. 3
Si tratta di un esempio di problema di miscelazione. Si tratta di problemi in cui si hanno a disposizione n sostanze diverse che indichiamo con S 1, S 2,..., S n ciascuna delle quali contenga una certa quantità di m componenti utili che indichiamo con C 1, C 2,..., C m. Si vuole ottenere una miscela M delle sostanze tale che che soddisfi alcuni requisiti qualitativi, cioè contenga una quantità non inferiore a b i ed eventualmente non superiore a d i di ciascun C i, i = 1,..., m C 1 C 2 C m b 1 b 2 b m. d 1 d 2 d m e soddisfi qualche criterio di perfomance. Si indichi con a ij, i = 1,..., m, j = 1,..., n la quantità di componente C i presente nella sostanza S j. Si può così costruire la seguente tabella S 1 S j S n C 1 a 11 a 1j a 1n.... C i a i1 a ij a in.... C m a m1 a mj a mn Ad esempio, se ogni sostanza S j ha costo unitario c j, j = 1,..., n S 1 S 2 S n c 1 c 2 c n si può voler ottenere la miscela più economica. Supponendo che valgano le ipotesi di proporzionalità, additività ed inoltre assumendo che le quantità di sostanze da utilizzare siano frazionabili, si può formulare questo problema in termini di un problema di Programmazione Lineare. È naturale introdurre le variabili di decisione x 1, x 2,..., x n rappresentanti la quantità di ciascuna sostanza S 1, S 2,..., S n da utilizzare nella miscela. Introducendo la matrice (m n) e il vettore b = (b 1,..., b m ) T nella forma A = a 11.... a 1n. a m1... a mn la formulazione completa del problema può essere scritta min c T x Ax b Ax d x 0, x IR n. 4
In alcuni casi si richiede che una certa sostanza appartenga alla miscela solo se un altra sostanza vi appartiene (o non vi appartiene). Questi vincoli richiedono l uso di variabili booleane. Soluzione con uso di Foglio elettronico Il foglio Microsoft Excel che corrisponde alla rappresentazione dei dati modello è in figura.la tabella Microsoft Excel che corrisponde alla rappresentazione del modello è in figura. Risulta x 1F = 166666. 6, x 2F = 333333. 3, x 1P = 0, x 2P = 0 Figure 1: Foglio Excel relativo ai dati del problema La tabella corrispondente al report di Sensibilità è in figura. sono disponibili in rete. Il files corrispondenti 5
Figure 2: Foglio Excel relativo al modello del problema Analizziamo i fogli di report generati da Excel e la soluzione ottima fornita. A questo scopo poniamo il modello in forma standard di PL, aggiungendo le variabili di slack. Al fine di ottenere una completa corrispondenza con il file di Report generato da Excel, è stata inserita anche la variabile s 1 nel primo vincolo di uguaglianza. In una qualunque soluzione ammissibile il valore di s 1 è identicamente nulla. In particolare si ottiene min 2x 1F + 6x 2F + 8x 1P + 11x 2P x 1F + x 2F + x 1P + x 2P + s 1 = 500000 x 1P + x 2P + s 2 = 200000 50x 1F 25x 2F 50x 1P 90x 2P + s 3 = 0 x if 0, x ip 0 i = 1, 2, s i 0, i = 1, 2, 3.. I valori delle variabili di slack sono sul Rapporto Valori ( Tolleranza )e si ha s 1 = 0, s 2 = 200000, s 3 = 0. Le variabili positive sono tre x 1F, x 2F, s 2 e corrispondono alle tre variabili in base. La matrice di base B è dunque costituita dalle tre colonne della matrice A corrispondenti, ed N dalle rimanenti cioè B = 1 1 0 N = 0 0 1 50 25 0 6 1 1 1 0 1 1 0 0 50 90 0 1
Figure 3: Foglio Excel del Report di Sensibilità del problema La soluzione ammissibile di base corrispondente a B è ovviamente x 1F x 2F s 2 = 1 1 1 0 500000 166666. 6 0 0 1 200000 = 333333. 3, 50 25 0 0 200000 Si può risolvere il sistema dei vincoli rispetto ad x B = x 1P x 2P s 1 = 0. s 3 x 1F x 2F, ovvero scrivere x B = s 2 7
Figure 4: Report Valori x 1P B 1 b B 1 N x x N e si ottiene il problema ridotto nelle sole variabili x N = 2P s 1 : s 3 x 166666. 6 1P min (2 6 0) 333333. 3 + γn T x 2P s 200000 1 s 3 1 166666. 6 1 1 0 x 1 1 1 0 1P x 333333. 3 0 0 1 1 1 0 0 2P s 200000 50 25 0 50 90 0 1 1 0 s 3 x ip 0 i = 1, 2, s i 0, i = 1, 3. dove 1 1 1 0 1 1 1 0 γn T = (8 11 0 0) (2 6 0) 0 0 1 1 1 0 0 = 50 25 0 50 90 0 1 0.6667 1.5333 4.6667 0.0533 indica il vettore dei costi ridotti relativo alla base B. I valori corrispondono quelli indicati nel rapporto di sensibilità di figura. 8