Il Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale Università di Pisa A.A. 2014/15 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 1 / 18
Metodi risolutivi per la PLI Metodi esatti (garanzia soluzione ottima) metodi poliedrali Branch and bound programmazione dinamica metodi ad hoc Metodi euristici greedy ricerca locale metodi ad hoc L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 2 / 18
L albero di enumerazione totale Consideriamo un problema di PLI max c T x Ax b x Z n (P) in cui la regione ammissibile Ω è limitata. Metodo naïf Si calcola la funzione obiettivo in tutte le soluzioni ammissibili (che sono in numero finito) e si trova l ottimo confrontando i valori ottenuti. Per esplorare la regione ammissibile si costruisce l albero di enumerazione totale. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 3 / 18
L albero di enumerazione totale Albero di enumerazione totale Ha per radice il problema P. Facendo una partizione di Ω in due o più sottoinsiemi Ω 1,...,Ω n si ottengono i nodi al primo livello, che corrispondono ai sottoproblemi di P aventi come regioni ammissibili gli insiemi Ω 1,...,Ω n. Il resto dell albero viene generato allo stesso modo, fino ad arrivare alle foglie che corrispondono a sottoproblemi aventi la regione ammissibile vuota o costituita da un solo elemento. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 4 / 18
L albero di enumerazione totale Esempio max 5x 1 +6x 2 3x 1 +4x 2 7 x 0 x Z 2 I vincoli impongono che x 1 {0,1,2}. Partizioniamo Ω in tre sottoinsiemi: Ω = (Ω {x 1 = 0}) (Ω {x 1 = 1}) (Ω {x 1 = 2}), che sull albero di enumerazione totale corrispondono a tre figli del nodo radice: P x 1 = 0 x 1 = 1 x 1 = 2 P 1 P 2 P 3 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 5 / 18
L albero di enumerazione totale Esempio (segue) max 5x 1 +6x 2 3x 1 +4x 2 7 x 0 x Z 2 Analogamente si ha x 2 {0,1}, quindi ogni nodo al primo livello dell albero ha a sua volta due figli (x 2 = 0 e x 2 = 1). L albero di enumerazione totale è: x 1 = 0 x 1 = 1 P x 1 = 2 P 1 P 2 P 3 x 2 = 0 x 2 = 1 x 2 = 0 x 2 = 1 x 2 = 0 x 2 = 1 P 4 P 5 P 6 P 7 P 8 P 9 amm. amm. amm. amm. amm. NON amm. val. 0 val. 6 val. 5 val. 11 val. 10 ottimo L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 6 / 18
Il metodo naïf trova una soluzione ottima, ma è impraticabile perché il numero delle soluzioni ammissibili cresce in modo esponenziale rispetto al numero delle variabili del problema. Il metodo Branch and Bound esplora l albero di enumerazione totale senza enumerare esplicitamente tutte le foglie. Notazioni v(p) = valore ottimo di P v I (P) = valutazione inferiore del valore ottimo di P: v I (P) v(p) v S (P) = valutazione superiore del valore ottimo di P: v S (P) v(p) P i = sottoproblema corrispondente ad un nodo dell albero di enumerazione totale L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 7 / 18
Per ottenere v I (P) si usano metodi euristici per trovare una soluzione ammissibile. Infatti, se x è ammissibile per P allora c T x = v I (P) si risolve una restrizione di P, cioè un problema ottenuto da P aggiungendo uno o più vincoli Per ottenere v S (P) si risolve un rilassamento di P: continuo: sostituire x i Z con x i R per eliminazione: eliminare uno o più vincoli surrogato: sostituire due o più vincoli con la loro somma pesata lagrangiano (che vedremo in seguito) L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 8 / 18
Teorema (regole per potare l albero di enumerazione) Sia x una soluzione ammissibile e v I (P) = c T x. 1. Se la regione ammissibile di P i è vuota, allora in P i non esistono soluzioni ammissibili migliori di x e quindi si chiude il nodo P i 2. Se v S (P i ) v I (P) allora si chiude il nodo P i 3. Se v S (P i ) > v I (P) e l ottimo x del rilassamento di P i è ammissibile per P, allora si aggiorna la soluzione ammissibile con x e si chiude il nodo P i Dimostrazione 1. Ovvio 2. v(p i ) v S (P i ) v I (P) = c T x 3. c T x = v S (P i ) > v I (P) = c T x, cioè x è migliore di x e in P i non ci sono soluzioni ammissibili migliori di x L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 9 / 18
Esempio max x 1 +3x 2 x 1 +5x 2 21 8x 1 +2x 2 35 x 0 x Z 2 L ottimo del rilassamento continuo è (7/2,7/2), quindi v S (P) = 14. (P) Arrotondando per difetto le componenti di tale soluzione, otteniamo la soluzione ammissibile (3,3) che fornisce v I (P) = 12. 12,14 P L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 10 / 18
Esempio (segue) Esploriamo l albero di enumerazione totale istanziando la variabile x 1 perché ha un valore frazionario nella soluzione ottima del rilassamento continuo. Distinguiamo due casi: x 1 3 oppure x 1 4 in modo che (7/2,7/2) non sia ottima per nessuno dei rilassamenti continui dei nodi al primo livello. x 2 4 3 2 1 0 1 2 3 4 5 x 1 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 11 / 18
Esempio (segue) Vicino ad ogni nodo P i indichiamo nell ordine i valori v I (P) e v S (P i ). 12,14 P x 1 3 x 1 4 12,13 12,8 P 1 P 2 La soluzione ottima del rilassamento continuo di P 1 è (3, 18 5 ) di valore 13.8, quindi v S (P 1 ) = 13.8 = 13 > 12 = v I (P), pertanto P 1 rimane aperto. La soluzione ottima del rilassamento continuo di P 2 è (4, 3 2 ) di valore 8.5, quindi v S (P 2 ) = 8 < 12 = v I (P), quindi chiudiamo P 2. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 12 / 18
Esempio (segue) L ottimo del rilassamento continuo di P 1 è (3, 18 5 ) quindi dal nodo P 1 istanziamo la variabile x 2 : 12,14 P 12,13 12,8 P 1 P 2 x 2 3 x 2 4 x 1 3 x 1 4 P 3 P 4 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 13 / 18
Esempio (segue) 12,14 P x 1 3 x 1 4 12,13 P 1 x 2 3 x 2 4 12,12 13,13 12,8 P 2 P 3 P 4 L ottimo del rilassamento continuo di P 3 è (3,3), quindi v S (P 3) = 12 = v I (P), pertanto chiudiamo P 3. L ottimo del rilassamento continuo di P 4 è (1,4), quindi v S (P 4) = 13 > 12 = v I (P), ma (1, 4) è ammissibile. Aggiorniamo la soluzione ammissibile (3, 3) con la nuova (1, 4), poniamo v I (P) = 13 e chiudiamo P 4. Tutti i nodi dell albero sono chiusi, quindi la soluzione ottima è (1, 4). L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 14 / 18
L implementazione del metodo Branch and Bound dipende da: come si trova una soluzione ammissibile iniziale (cerco una soluzione buona e veloce da trovare) bound: quale rilassamento si sceglie per P e per i sottoproblemi P i (cerco rilassamenti buoni e veloci da risolvere) branch: quale partizione si sceglie per ogni sottoproblema P i (cerco una partizione in modo che l ottimo del rilassamento dei nodi figli di P i sia diverso dall ottimo del rilassamento di P i) in quale ordine si esaminano i nodi dell albero: in ampiezza: prima i nodi del livello più alto, poi quelli del livello successivo... in profondità: se un nodo è aperto, il nodo successivo è il primo dei suoi figli; mentre se un nodo è chiuso, si ritorna indietro verso il nodo radice fino a quando si trova un nodo che ha un figlio non ancora esaminato. Con questa scelta si cerca di rendere minimo il numero dei nodi aperti ancora da esaminare (spazio di memoria occupato). in qualità: tra i nodi aperti viene scelto il più promettente, cioè quello con il massimo valore di v S (P i). Con questa scelta si cerca di rendere minimo il numero totale di nodi esaminati. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 15 / 18
Nell esempio precedente: soluzione ammissibile è ottenuta per arrotondamento a partire dall ottimo del rilassamento di P bound: rilassamento continuo per P e P i branch: binario su una variabile frazionaria dell ottimo del rilassamento di P i esplorazione dell albero in ampiezza L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 16 / 18
Esercizio Consideriamo un problema di PLI di massimo. In figura è riportato l albero di branch and bound, in cui per alcuni nodi è indicata la valutazione superiore ottenuta risolvendo un rilassamento. Per il problema è nota una soluzione ammissibile di valore 85. 100 P 90 P 1 93 P 2 84 P 3 P 4 88 P 5 P 6 a) In quale intervallo è compreso il valore ottimo? Indicare l intervallo più stringente. b) È possibile chiudere alcuni nodi dell albero? Se sì, quali? c) È possibile avere v S (P 3) = 91? Perché? L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 17 / 18
Esercizio (segue) Consideriamo un problema di PLI di massimo. In figura è riportato l albero di branch and bound, in cui per alcuni nodi è indicata la valutazione superiore ottenuta risolvendo un rilassamento. Per il problema è nota una soluzione ammissibile di valore 85. 100 P 90 P 1 93 P 2 84 P 3 P 4 88 P 5 P 6 d) È possibile avere v S(P 6) = 89? Perché? e) Dopo aver risolto il rilassamento del problema P 3, è possibile chiudere tutti i nodi dell albero? Se sì, in quali casi? f) Dopo aver risolto il rilassamento del problema P 6, è possibile chiudere tutti i nodi dell albero? Se sì, in quali casi? L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Università di Pisa 18 / 18