Il Metodo Branch and Bound - Dipartimento di Informatica

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