Introduzione Il metodo Branch and Bound Esempio Il Metodo Branch and Bound Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa [email protected] http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa A.A. 2014/15 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 1 / 18 Introduzione Il metodo Branch and Bound Esempio 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` a di Pisa 2 / 18 Introduzione Il metodo Branch and Bound Esempio L’albero di enumerazione totale Consideriamo un problema di PLI max c T x Ax ≤ b x ∈ Zn (P) in cui la regione ammissibile Ω `e 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` a di Pisa 3 / 18 Introduzione Il metodo Branch and Bound Esempio L’albero di enumerazione totale Albero di enumerazione totale Ha per radice il problema P. Facendo una partizione di Ω in due o pi` u 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` a di Pisa 4 / 18 Introduzione Il metodo Branch and Bound Esempio L’albero di enumerazione totale Esempio max 5 x1 + 6 x2 3 x1 + 4 x2 ≤ 7 x≥0 x ∈ Z2 I vincoli impongono che x1 ∈ {0, 1, 2}. Partizioniamo Ω in tre sottoinsiemi: Ω = (Ω ∩ {x1 = 0}) ∪ (Ω ∩ {x1 = 1}) ∪ (Ω ∩ {x1 = 2}), che sull’albero di enumerazione totale corrispondono a tre figli del nodo radice: P x1 = 2 x1 = 0 x1 = 1 P1 L. Galli P2 Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale P3 Universit` a di Pisa 5 / 18 Introduzione Il metodo Branch and Bound Esempio L’albero di enumerazione totale Esempio (segue) max 5 x1 + 6 x2 3 x1 + 4 x2 ≤ 7 x≥0 x ∈ Z2 Analogamente si ha x2 ∈ {0, 1}, quindi ogni nodo al primo livello dell’albero ha a sua volta due figli (x2 = 0 e x2 = 1). L’albero di enumerazione totale ` e: P x1 = 0 x1 = 2 x1 = 1 P1 x2 = 0 P2 x2 = 1 x2 = 0 P3 x2 = 1 x2 = 0 x2 = 1 P4 P5 P6 P7 P8 P9 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` a di Pisa 6 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Il metodo na¨ıf trova una soluzione ottima, ma `e impraticabile perch´e 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 vI (P) = valutazione inferiore del valore ottimo di P: vI (P) ≤ v (P) vS (P) = valutazione superiore del valore ottimo di P: vS (P) ≥ v (P) Pi = sottoproblema corrispondente ad un nodo dell’albero di enumerazione totale L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 7 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Per ottenere vI (P) • si usano metodi euristici per trovare una soluzione ammissibile. Infatti, se x `e ammissibile per P allora c T x = vI (P) • si risolve una restrizione di P, cio` e un problema ottenuto da P aggiungendo uno o pi`u vincoli Per ottenere vS (P) si risolve un rilassamento di P: • continuo: sostituire xi ∈ Z con xi ∈ R • per eliminazione: eliminare uno o pi` u vincoli • surrogato: sostituire due o pi` u vincoli con la loro somma pesata • lagrangiano (che vedremo in seguito) L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 8 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Teorema (regole per potare l’albero di enumerazione) Sia x una soluzione ammissibile e vI (P) = c T x. 1. Se la regione ammissibile di Pi `e vuota, allora in Pi non esistono soluzioni ammissibili migliori di x e quindi si chiude il nodo Pi 2. Se vS (Pi ) ≤ vI (P) allora si chiude il nodo Pi 3. Se vS (Pi ) > vI (P) e l’ottimo x¯ del rilassamento di Pi `e ammissibile per P, allora si aggiorna la soluzione ammissibile con x¯ e si chiude il nodo Pi Dimostrazione 1. Ovvio 2. v (Pi ) ≤ vS (Pi ) ≤ vI (P) = c T x 3. c T x¯ = vS (Pi ) > vI (P) = c T x, cio`e x¯ `e migliore di x e in Pi non ci sono soluzioni ammissibili migliori di x¯ L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 9 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 (P) L’ottimo del rilassamento continuo `e (7/2, 7/2), quindi vS (P) = 14. Arrotondando per difetto le componenti di tale soluzione, otteniamo la soluzione ammissibile (3, 3) che fornisce vI (P) = 12. 12,14 P L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 10 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Esempio (segue) Esploriamo l’albero di enumerazione totale istanziando la variabile x1 perch´e ha un valore frazionario nella soluzione ottima del rilassamento continuo. Distinguiamo due casi: x1 ≤ 3 oppure x1 ≥ 4 in modo che (7/2, 7/2) non sia ottima per nessuno dei rilassamenti continui dei nodi al primo livello. x2 4 3 2 1 0 L. Galli 1 Corso di Ricerca Operativa 2 2 - 3 4 5 Laurea Magistrale in Ingegneria Gestionale x1 Universit` a di Pisa 11 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Esempio (segue) Vicino ad ogni nodo Pi indichiamo nell’ordine i valori vI (P) e vS (Pi ). 12,14 P x1 ≥ 4 x1 ≤ 3 12,13 12,8 P1 P2 18 5 ) La soluzione ottima del rilassamento continuo di P1 `e (3, di valore 13.8, quindi vS (P1 ) = ⌊13.8⌋ = 13 > 12 = vI (P), pertanto P1 rimane aperto. La soluzione ottima del rilassamento continuo di P2 `e (4, 23 ) di valore 8.5, quindi vS (P2 ) = 8 < 12 = vI (P), quindi chiudiamo P2 . L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 12 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Esempio (segue) L’ottimo del rilassamento continuo di P1 `e (3, 18 5 ) quindi dal nodo P1 istanziamo la variabile x2 : 12,14 P x1 ≤ 3 x1 ≥ 4 12,13 12,8 P1 x2 ≤ 3 P3 L. Galli P2 x2 ≥ 4 P4 Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 13 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Esempio (segue) 12,14 P x1 ≤ 3 x1 ≥ 4 12,13 12,8 P1 x2 ≤ 3 12,12 P3 P2 x2 ≥ 4 13,13 P4 L’ottimo del rilassamento continuo di P3 `e (3, 3), quindi vS (P3 ) = 12 = vI (P), pertanto chiudiamo P3 . L’ottimo del rilassamento continuo di P4 `e (1, 4), quindi vS (P4 ) = 13 > 12 = vI (P), ma (1, 4) `e ammissibile. Aggiorniamo la soluzione ammissibile (3, 3) con la nuova (1, 4), poniamo vI (P) = 13 e chiudiamo P4 . Tutti i nodi dell’albero sono chiusi, quindi la soluzione ottima `e (1, 4). L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 14 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound 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 Pi (cerco rilassamenti ’buoni’ e ’veloci’ da risolvere) • branch: quale partizione si sceglie per ogni sottoproblema Pi (cerco una partizione in modo che l’ottimo del rilassamento dei nodi figli di Pi sia diverso dall’ottimo del rilassamento di Pi ) • in quale ordine si esaminano i nodi dell’albero: • in ampiezza: prima i nodi del livello pi` u alto, poi quelli del livello successivo... • in profondit` a: se un nodo `e aperto, il nodo successivo `e il primo dei suoi figli; mentre se un nodo `e 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` a: tra i nodi aperti viene scelto il pi` u promettente, cio`e quello con il massimo valore di vS (Pi ). 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` a di Pisa 15 / 18 Introduzione Il metodo Branch and Bound Esempio Metodo Branch and Bound Nell’esempio precedente: • soluzione ammissibile ` e ottenuta per arrotondamento a partire dall’ottimo del rilassamento di P • bound: rilassamento continuo per P e Pi • branch: binario su una variabile frazionaria dell’ottimo del rilassamento di Pi • esplorazione dell’albero in ampiezza L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 16 / 18 Introduzione Il metodo Branch and Bound Esempio Esercizio Consideriamo un problema di PLI di massimo. In figura `e riportato l’albero di branch and bound, in cui per alcuni nodi `e indicata la valutazione superiore ottenuta risolvendo un rilassamento. Per il problema `e nota una soluzione ammissibile di valore 85. 100 P P3 90 93 P1 P2 84 88 P4 P5 P6 a) In quale intervallo `e compreso il valore ottimo? Indicare l’intervallo pi` u stringente. ` possibile chiudere alcuni nodi dell’albero? Se s`ı, quali? b) E ` possibile avere vS (P3 ) = 91? Perch´e? c) E L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 17 / 18 Introduzione Il metodo Branch and Bound Esempio Esercizio (segue) Consideriamo un problema di PLI di massimo. In figura `e riportato l’albero di branch and bound, in cui per alcuni nodi `e indicata la valutazione superiore ottenuta risolvendo un rilassamento. Per il problema `e nota una soluzione ammissibile di valore 85. 100 P P3 90 93 P1 P2 84 88 P4 P5 P6 ` possibile avere vS (P6 ) = 89? Perch´e? d) E e) Dopo aver risolto il rilassamento del problema P3 , `e possibile chiudere tutti i nodi dell’albero? Se s`ı, in quali casi? f) Dopo aver risolto il rilassamento del problema P6 , `e 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` a di Pisa 18 / 18
© Copyright 2024 Paperzz