Ottimizzazione Multi Obiettivo 1 Ottimizzazione Multi Obiettivo I problemi affrontati fino ad ora erano caratterizzati da una unica (e ben definita) funzione obiettivo. I problemi di ottimizzazione reali possono, invece, presentare vari obiettivi. Esempi: Trasporto merci e/o persone: Costo totale Tempo totale Bilanciamento del carico di lavoro... Scheduling: Costo totale Makespan (istante di fine operazioni) Tardiness (ritardi nelle consegne)... Portfolio: Profitto Rischio Diversificazione... Telecomunicazioni, bio-informatica, ambiente,...
Ottimizzazione Multi Obiettivo 2 Ottimizzazione Multi Obiettivo (2) I metodi utilizzati fino ad ora trovano una soluzione che minimizza (o massimizza) una data funzione obiettivo. Per risolvere i problemi multiobiettivo bisogna sviluppare nuovi metodi ad hoc. Questi metodi si basano generalmente sui metodi mono-obiettivo, o su loro varianti, eventualmente iterate più volte. Spesso, invece di fornire un unica soluzione, devono fornirne molte. Questo può complicare notevolmente la difficoltà dei problemi: Problema Mono-Obiettivo Multi-Obiettivo Cammino minimo Facile Difficile Assegnamento lineare Facile Difficile Nel seguito considereremo un generico problema Mono-Obiettivo: min (z 1 ) = (c T 1 x) Ax = b x 0... e un generico problema Multi-Obiettivo: min (z 1, z 2,..., z p ) = (c T 1 x, c T 2 x,..., c T p x) Ax = b x 0 In generale, indichiamo con p il numero di obiettivi.
Ottimizzazione Multi Obiettivo 3 Esempio (1) Un azienda produce tre prodotti P i, i = 1, 2, 3. Nella tabella sono riportati per ogni unità di prodotto il profitto unitario, le ore di lavoro necessarie, la quantità di materia prima utilizzata e il livello di inquinamento generato. profitto unitario ore lavoro materia prima inquinamento P 1 10 4 3 10 P 2 9 3 2 6 P 3 8 2 2 3 L azienda ha a disposizione operai per 1300 ore di lavoro e 1000 unità di materia prima. L azienda ha due obiettivi: massimizzazione del profitto; minimizzazione del livello di inquinamento. (p = 2: problema Bi-Obiettivo)
Ottimizzazione Multi Obiettivo 4 Esempio (2) Per formulare il problema introduciamo le varibili x i, i = 1, 2, 3: x i rappresenta le unità di P i prodotte. Modello matematico: min (z 1, z 2 ) = ( 10x 1 9x 2 8x 3, 10x 1 + 6x 2 + 3x 3 ) 4x 1 + 3x 2 + 2x 3 1300 3x 1 + 2x 2 + 2x 3 1000 x 1, x 2, x 3 {0, 1} Soluzione ottenuta massimizzando singolarmente il profitto ( z 1 ): z 1 = 4300 z 2 = 2400 x 1 = 0, x 2 = 300, x 3 = 200 Soluzione ottenuta minimizzando singolarmente l inquinamento (z 2 ): z 1 = 0 z 2 = 0 x 1 = 0, x 2 = 0, x 3 = 0 Come spesso accade nei problemi multi-obiettivo, le due soluzioni sono in netto contrasto tra loro.
Ottimizzazione Multi Obiettivo 5 Dominanza e Frontiera di Pareto Definizione di dominanza: In un problema di minimo, una soluzione y domina una soluzione w se: 1. c T i y ct i w i = 1,..., p 2. k {1,..., p} : c T k y < ct k w In un problema di massimo, una soluzione y domina una soluzione w se: 1. c T i y ct i w i = 1,..., p 2. k {1,..., p} : c T k y > ct k w Definizione di ottimo di Pareto: Una soluzione y è un ottimo di Pareto (punto non dominato) se non esiste nessuna soluzione w che domina y. ottimo di Pareto soluzione dominata z 2 z 2 minimo z 1 massimo z 1 Definizione di Frontiera di Pareto: La Frontiera di Pareto è l insieme degli ottimi di Pareto.
Ottimizzazione Multi Obiettivo 6 Metodi Risolutivi Tipicamente, l obiettivo è individuare uno specifico ottimo di Pareto. Questo può tuttavia richiedere di generare tutta la frontiera (ammesso che ci si riesca) o un suo sottoinsieme. In ogni caso, si assume l esistenza di un decisore in grado di selezionare o caratterizzare la soluzione considerata migliore. In base al ruolo svolto dal decisore nella strategia di soluzione del problema, i metodi risolutivi possono essere suddivisi in quattro grandi categorie. Metodi senza preferenze, nei quali il decisore non ha nessun ruolo e si considera soddisfacente l aver trovato un qualunque ottimo di Pareto. Metodi a posteriori, nei quali si genera l insieme di tutti gli ottimi di Pareto e poi lo si presenta al decisore che sceglie la soluzione per lui migliore. Metodi a priori, nei quali il decisore specifica le sue preferenze prima che abbia inizio il processo risolutivo. In base alle informazioni avute dal decisore viene direttamente trovata la soluzione migliore, senza dover (necessariamente) generare tutti gli ottimi di Pareto. Metodi interattivi, nei quali il decisore specifica le sue preferenze mano a mano che il processo risolutivo procede, guidando in tal modo il processo stesso verso la soluzione per lui più soddisfacente.
Ottimizzazione Multi Obiettivo 7 Si tratta di un metodo a priori. Goal Programming Per ognuna delle p funzioni obiettivo, il decisore definisce un valore target: T 1, T 2,..., T p. L obiettivo diventa la minimizzazione della distanza totale delle funzioni obiettivo dai loro valori target. Dato il problema: min (z 1, z 2,..., z p ) = (c T 1 x, c T 2 x,..., c T p x) Ax = b x 0 definiamo l eventuale scarto in eccesso dal target T i come: d + i = max{c T i x T i, 0} i = 1,..., p e l eventuale scarto in difetto dal target T i come: d i = max{t i c T i x, 0} i = 1,..., p e formuliamo la distanza dal target come: c T i x d + i + d i = T i i = 1,..., p Il problema (mono-obiettivo) risultante è: min p i=1 d+ i + d i c T i x d+ i + d i = T i i = 1,..., p Ax = b d +, d, x 0
Ottimizzazione Multi Obiettivo 8 Goal Programming Es. Assegnamento Lineare Bi-Obiettivo Si consideri il seguente problema di assegnamento lineare. Sono dati n lavoratori e n compiti. Ogni lavoratore deve svolgere un compito e ogni compito deve essere svolto da un lavoratore. Gli assegnamenti lavoratore/compito hanno un costo, riportato in seguito dalla matrice c. Notare che un costo 0 nella matrice implica che l assegnamento corrispondente non è possibile. Un obiettivo del problema è quello di minimizzare il costo totale. I lavoratori possono esprimere una certa avversione ai compiti che possono svolgere. In particolare, ogni lavoratore definisce un indice di avversione che va da 5 (avversione massima) a 1, per al massimo 5 compiti possibili. Tali valori sono dati nella sottostante tabella a. Un obiettivo del problema è anche quello di minimizzare l avversione totale dei lavoratori. Ottimizzando i due obiettivi separatamente, si ottiene: - costo minimo 54, con avversione totale 26; - avversione minima 15, con costo 96. Si vuole applicare il metodo Goal Programming, ponendo: 1. il target di costo T c = 70; 2. il target di avversione T a = 20.
Ottimizzazione Multi Obiettivo 9 Goal Programming Es. Ass. Lineare Bi-Obiettivo (2) Costi: Indici di avversione: c ij : 1 2 3 4 5 6 7 8 1 10 15 13 11 3 3 0 1 2 11 0 9 0 15 9 12 22 3 4 8 10 0 1 0 0 0 4 7 12 0 8 0 1 0 5 5 6 15 16 9 0 0 18 8 6 0 0 0 6 0 0 24 44 7 0 22 0 9 8 22 0 0 8 11 0 12 0 0 23 0 0 a ij : 1 2 3 4 5 6 7 8 1 1 1 4 4 3 4 0 5 2 0 0 1 0 4 2 4 2 3 2 2 3 0 5 0 0 0 4 3 3 0 1 0 5 0 1 5 4 4 5 3 0 0 5 3 6 0 0 0 2 0 0 3 4 7 0 5 0 5 2 1 0 0 8 5 0 2 0 0 3 0 0 I compiti corrispondono alle righe, i lavoratori alle colonne.
Ottimizzazione Multi Obiettivo 10 Goal Programming Es. Ass. Lineare Bi-Obiettivo (3) Formulazione matematica: min d + c + d c + d + a + d a n n c ij x ij d + c + d c T c = 0 i=0 n i=0 j=0 n a ij x ij d + a + d a T a = 0 j=0 8 x ij = 1 j = 1,..., 8 i=1 8 x ij = 1 i = 1,..., 8 j=1 x ij = 0 i, j = 1,..., 8 : c ij = 0 x ij {0, 1} i, j = 1,..., 8 Risolvendo otteniamo: Distanza totale dai target 3: d + c = 1, d a = 2, d c = d + a = 0 Costo totale 71 Avversione totale 18 Assegnamenti scelti: (1,6), (2,1), (3,2), (4,8), (5,7), (6,4), (7,5), (8,3).
Ottimizzazione Multi Obiettivo 11 Algoritmo ε constrained Si tratta di un metodo a posteriori. Si seleziona una funzione obiettivo k e la si ottimizza, mentre le altre funzioni (i = 1,..., p, i k) vengono trasformate in vincoli, limitando opportunamente i loro valori. In dettaglio, dato il problema di minimo: min (z 1, z 2,..., z p ) = (c T 1 x, c T 2 x,..., c T p x) (1) Ax = b (2) x 0 (3) Scelto k {1,..., p} definiamo per ogni altra funzioni obiettivo i k un upper bound ε i. Il problema (mono-obiettivo) risultante è: min c T k x (4) c T i x ε i i = 1,..., p, i k (5) Ax = b (6) x 0 (7) La soluzione ottima del modello (4) (7) non appartiene necessariamente alla frontiera di Pareto del modello (1) (3); tuttavia, risolvendo iterativamente con valori ε i opportunamente aggiornati, è possibile generare tutta la frontiera. il metodo risulta particolarmente semplice e intuitivo se p = 2, come vedremo nei prossimi esempi. Nota: nei problemi di massimo si usano lower bound (c T i x ε i)
Ottimizzazione Multi Obiettivo 12 Algoritmo ε constrained Esempio Knapsack Bi-Obiettivo (1) Consideriamo una applicazione del problema all ottimizzazione finanziaria. Sia dato un insieme di n possibili investimenti i, ognuno richiedente un esborso in denaro w i, e con un profitto p i e un indice di sicurezza o affidabilità (inversamente proporzionale al rischio) s i. Sia dato inoltre un limite massimo di budget W per l esborso iniziale. L obiettivo è quello di selezionare l insieme di investimenti il cui esborso totale non ecceda W e per cui siano massimi il profitto totale e la sicurezza totale. Si consideri il caso in cui n = 14, W = 100 e i dati sono quelli nella tabella sottostante. i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 w i 16 18 21 9 7 23 14 38 16 41 13 26 31 22 p i 23 13 53 2 2 8 33 43 13 13 10 11 31 30 s i 34 44 14 22 11 28 9 7 27 9 15 6 16 10 Determiniamo la frontiera di Pareto con il seguente metodo ε-constrained: 1. Risolviamo un problema di knapsack massimizzando il profitto; siano P ed S il profitto e la sicurezza ottenuti; 2. massimizziamo nuovamente il profitto, ma imponendo come vincolo che la sicurezza totale sia maggiore o uguale a S + 1; 3. iteriamo aggiornando il vincolo sulla sicurezza con l ultimo valore S ottenuto, fino a quando il modello risulta non ammissibile.
Ottimizzazione Multi Obiettivo 13 Algoritmo ε constrained Esempio Knapsack Bi-Obiettivo (2) Iterazione 1: risolviamo il problema di zaino max p T x w T x 100 x j {0, 1} j = 1,..., 14 ottenendo profitto massimo P= 159 e sicurezza S = 40, con gli investimenti: 3,7,8,14. Iterazione 2: risolviamo il modello max p T x w T x 100 s T x LB S x j {0, 1} j = 1,..., 14 con LB S = S + 1 = 41, dove S è il valore di sicurezza ottenuto all iterazione precedente; in questo modo otteniamo i nuovi valori P = 154 e S = 105, con gli investimenti: 1,3,5,7,9,14. Iterazione 3: risolviamo il modello (8) con LB S = 106, ottenendo P= 154 e S = 122, con gli investimenti: 1,2,3,5,7,14. Notare che P è rimasto invariato! (8)
Ottimizzazione Multi Obiettivo 14 Algoritmo ε constrained Esempio Knapsack Bi-Obiettivo (3) Iterazione 4: risolviamo il modello (8) con LB S = 123, ottenendo P= 154 e S = 133, con gli investimenti: 1,2,3,4,7,14. Notare che P è rimasto di nuovo invariato! Iterazione 5: risolviamo il modello (8) con LB S = 134, ottenendo P= 145 e S = 143, con gli investimenti: 1,2,3,7,9,11. Iterazione 6: risolviamo il modello (8) con LB S = 144, ottenendo P= 137 e S = 150, con gli investimenti: 1,2,3,4,7,9. Iterazione 7: risolviamo il modello (8) con LB S = 151, ottenendo P=116 e S = 167, con gli investimenti: 1,2,3,4,5,9,11. Iterazione 8: risolviamo il modello (8) con LB S = 168, ottenendo P=69 e S = 170, con gli investimenti: 1,2,4,6,9,11. Iterazione 9: risolviamo il modello (8) con LB S = 171, e non otteniamo nessuna soluzione ammissibile. Il metodo termina.
Ottimizzazione Multi Obiettivo 15 Algoritmo ε constrained Esempio Knapsack Bi-Obiettivo (4) Le coppie (P, S) generate dall algoritmo sono: (159, 40), (154, 105), (154, 122), (154, 133), (145, 143), (137, 150), (116, 167), (69, 170) Il grafico dei punti corrispondenti a queste coppie è il seguente 180 Grafico dei risultati 160 140 120 100 80 60 40 20 0 60 90 120 150 Come risulta evidente dal grafico, l insieme di coppie ottenuto non è la frontiera di Pareto, perché contiene le due soluzioni (154, 105) e (154, 122) dominate dalla soluzione (154, 133)
Ottimizzazione Multi Obiettivo 16 Algoritmo ε constrained Esempio Knapsack Bi-Obiettivo (5) Il grafico della frontiera di Pareto si ottiene eliminando le due soluzioni dominate; in sostanza, tra tutte le soluzioni con valore di profitto P = 154, si mantiene solo quella non dominata (154, 133) 180 Frontiera di Pareto 160 140 120 Sicurezza S 100 80 60 40 20 60 70 80 90 100 110 120 130 140 150 160 Profitto P Osservazione: l eventualità di generare soluzioni dominate dipende non solo dal modello che si sta risolvendo, ma anche dal solutore impiegato. Nel nostro esempio, un diverso solutore avrebbe potuto generare la soluzione non dominata (154, 133) già all iterazione 2 (rendendo quindi superflue le iterazioni 3 e 4).
Ottimizzazione Multi Obiettivo 17 Algoritmo ε constrained Es. Cammino Minimo Bi-obiettivo Si consideri il seguente problema di trasporto di materiale pericoloso. Un singolo veicolo parte da un deposito iniziale (vertice 0) per visitare un dato insieme di n vertici j (j = 1,..., n) e concludere poi il viaggio ad un deposito finale (vertice n + 1). Gli spostamenti da un vertice all altro hanno un costo, riportato in seguito nella matrice c. Ogni c ij = 0 nella matrice implica che il collegamento diretto da i a j non esiste. Analogamente, gli spostamenti da un vertice all altro comportano un rischio per la popolazione; il grado di rischio per ciascun spostamento è rappresentato dalla matrice r (tabella successiva). Determinare l insieme di cammini dal deposito iniziale a quello finale che minimizza la somma dei costi e la somma dei rischi. A tal fine esplorare la frontiera di Pareto nel seguente modo: 1. Risolvere il problema di cammino di costo minimo (considerando quindi solo i costi c nella funzione obiettivo), determinando un costo totale C e un rischio totale R; 2. risolvere nuovamente il problema minimizzando sempre il costo, ma imponendo come vincolo che il rischio totale non superi R 1; 3. iterare imponendo un vincolo sempre più stringente sul rischio, fino a quando il problema ottenuto risulta non ammissibile.
Ottimizzazione Multi Obiettivo 18 Algoritmo ε constrained Es. Cammino Minimo Bi-obiettivo (2) Costi: Rischi: c ij : 0 1 2 3 4 5 6 7 0 0 15 3 11 3 3 0 0 1 22 0 8 0 15 9 22 22 2 3 8 0 0 6 0 0 0 3 11 0 0 0 0 16 0 5 4 3 15 6 0 0 0 8 8 5 3 0 0 6 0 0 44 44 6 0 22 0 0 8 44 0 0 7 9 11 0 0 0 13 0 0 r ij : 0 1 2 3 4 5 6 7 0 0 4 11 21 24 23 0 39 1 4 0 7 0 25 3 12 3 2 11 7 0 0 36 0 0 0 3 25 0 0 0 0 11 0 1 4 24 25 36 0 0 0 8 0 5 23 0 0 4 0 0 4 23 6 0 12 0 0 8 4 0 0 7 39 3 0 0 0 23 0 0 Deposito di partenza: vertice 0; deposito di arrivo: vertice 7.
Ottimizzazione Multi Obiettivo 19 Algoritmo ε constrained Es. Cammino Minimo Bi-obiettivo (3) Formulazione matematica: 7 7 min C = c ij x ij i=0 7 i=0 j=0 7 r ij x ij j=0 UB R 7 (x 0i x i0 ) = 1 i=0 7 (x 7i x i7 ) = 1 i=0 7 (x ji x ij ) = 0 j = 1,..., 6 i=0 x ij = 0 i, j = 0,..., 7, c ij = 0 x ij {0, 1} i, j = 0,..., 7 Iterazione 1: risolviamo il modello con UB R = + (in pratica, UB R maggiore della somma dei valori di rischio) ottenendo C= 11 e R = 24, con il cammino: (0,4), (4,7). Iterazione 2: risolviamo il modello con UB R = 23, ottenendo C= 16 e R = 22, con il cammino: (0,3), (3,7). Iterazione 3: risolviamo il modello con UB R = 21, ottenendo C= 33 e R = 21, con il cammino: (0,2), (2,1), (1,7).
Ottimizzazione Multi Obiettivo 20 Algoritmo ε constrained Es. Cammino Minimo Bi-obiettivo (4) Iterazione 4: risolviamo il modello con UB R = 20, ottenendo C= 35 e R = 12, con il cammino: (0,1), (1,5), (5,3), (3,7). Iterazione 5: risolviamo il modello con UB R = 11, ottenendo C= 37 e R = 7, con il cammino: (0,1), (1,7). Iterazione 6: risolviamo il modello con UB R = 6 e e non otteniamo nessuna soluzione ammissibile. Fermiamo quindi le iterazioni. L insieme delle soluzioni (C, R) ottenute fornisce la frontiera di Pareto (non ci sono soluzioni dominate); il grafico risultante è: 30 Frontiera di Pareto 25 20 15 10 5 0 10 15 20 25 30 35 40