Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ricerca Operativa
1 / 36
Introduzione
• Il metodo del Branch and Bound (B&B) è stato introdotto negli anni
‘60 per risolvere problemi di Programmazione Lineare Intera (PLI) e
più in generale problemi di ottimizzazione combinatoria.
• Il metodo si basa su uno schema enumerativo che esplora lo spazio
(finito) delle soluzioni di un problema al fine di individuare e
certificare una soluzione ottima del problema.
• Si tratta di un metodo di enumerazione implicita che cerca di evitare
l’esplorazione di tutte le soluzioni ammissibili nella ricerca di una
soluzione ottima.
• Il metodo del Branch and Bound è una delle principali tecniche
utilizzate per risolvere diversi problemi di ottimizzazione (ad esempio i
solver di programmazione matematica si basano su questo metodo e
relative evoluzioni).
• Ci concentreremo in questa lezione sull’introduzione della struttura
generale del B&B e dei suoi principali aspetti.
2 / 36
Introduzione
3 / 36
Albero di ricerca
• Si consideri un problema di partenza P0 e si indichi con E0 il
corrispondente insieme delle soluzioni ammissibili.
• Definiamo un albero di ricerca (o delle soluzioni ammissibili) in cui:
1 Il nodo radice è il nodo corrispondente al problema P0 .
2 Al generico nodo i corrisponde un sottoproblema Pi ed un insieme di
soluzioni ammissibili indicato con Ei (con Ei ⊆ E0 ).
3 Un problema figlio Pj viene generato da un problema padre Pi con
un’operazione di branch che tipicamente consiste nell’aggiunta di
vincoli su una o più variabili del problema in modo che:
Gli insiemi delle soluzioni ammissibili dei nodi figli 1, . . . , n generati da
Pi costituiscano una partizione delle soluzioni ammissibili di Ei :
E1 ∪ E2 ∪ · · · ∪ En = Ei ;
Eh ∩ Ek = ∅ h = 1, . . . , n − 1; k = h + 1, . . . , n.
4 Se una serie di operazioni di branch induce un’unica soluzione di un
sottoproblema o un sottoproblema non ammissibile, il corrispondente
nodo, detto foglia, non è ulteriormente esplorato.
4 / 36
Albero di ricerca
• Nell’albero di ricerca la relazione padre-figlio tra due nodi i e j viene
rappresentata graficamente con uno spigolo (i, j) su cui viene
riportata l’operazione di branch.
P0
x3 ≤ 4 x3 ≥ 5
P1 P2
x2 ≤ 2 x2 ≥ 3 x1 = 0 x1 = 1
P3 P4 P5 P6
5 / 36
Branch and Bound
6 / 36
Branch and Bound
• Upper Bound UBi : valore di una soluzione ammissibile (non per forza
ottima) del problema Pi . Rappresenta quindi anche il valore di una
soluzione ammissibile per il problema P0 .
8 / 36
Lower Bound e Upper Bound (problemi di minimo)
9 / 36
Lower Bound e Upper Bound (problemi di minimo)
Esempio di problema di PLI e corrispondente rilassamento continuo:
Problema P0 :
min − 5x1 − 4x2
x1 + x2 ≤ 5
10x1 + 6x2 ≤ 45
x1 , x2 ∈ N
Rilassamento continuo di P0 :
min − 5x1 − 4x2
x1 + x2 ≤ 5
10x1 + 6x2 ≤ 45
x1 ≥ 0, x2 ≥ 0
11 / 36
Lower Bound e Upper Bound (problemi di minimo)
12 / 36
Lower Bound e Upper Bound (problemi di minimo)
• La soluzione ottima del rilassamento continuo di un problema di PLI
può offrire anche indicazioni sull’operazione di branch da effettuare.
• Nel precedente problema, si può considerare ad esempio il valore di x1
(= 3.75) e generare due sottoproblemi P1 e P2 con x1 ≤ 3 e x1 ≥ 4
rispettivamente.
• Questa operazione permette di
escludere la precedente soluzione
continua x1 = 3.75, x2 = 1.25
senza eliminare soluzioni per il
problema di PLI.
13 / 36
Lower Bound e Upper Bound (problemi di minimo)
14 / 36
Criteri di chiusura dei nodi (problemi di minimo)
2 Soluzione intera;
15 / 36
Criteri di chiusura dei nodi (problemi di minimo)
16 / 36
Criteri di chiusura dei nodi (problemi di minimo)
2) Soluzione intera:
• Se la soluzione ottima del rilassamento continuo di Pi è intera, allora
questa soluzione costituisce una soluzione ammissibile e ottima di Pi .
Il relativo nodo dell’albero di ricerca viene quindi chiuso e si ha
LBi = UBi .
17 / 36
Criteri di chiusura dei nodi (problemi di minimo)
18 / 36
Criteri di chiusura dei nodi: Esempio
19 / 36
Criteri di chiusura dei nodi: Esempio
20 / 36
Esercizio 1
• Sia dato un problema di minimo e sia indicato qui di seguito lo
sviluppo parziale dell’albero di ricerca del Branch and Bound
associato. Con Pi (UBi , LBi ) indichiamo rispettivamente il
sottoproblema considerato (Pi ), il suo upper bound (UBi ) ed il suo
lower bound (LBi ).
• Per chiudere i nodi P21 e P22 , bisogna avere per P12 una soluzione
con un valore minore o uguale del più basso dei lower bound dei nodi,
ovvero delle stime di soluzione presenti nei due nodi. Quindi
• Per riconoscere una soluzione ottima, anche il nodo P12 deve essere
chiuso. L’unico modo possibile è imporre LB12 = UB12 .
22 / 36
Esercizio 1: Soluzione
23 / 36
Lower Bound e Upper Bound (problemi di massimo)
24 / 36
Lower Bound e Upper Bound (problemi di massimo)
25 / 36
Lower Bound e Upper Bound (problemi di massimo)
26 / 36
Criteri di chiusura dei nodi (problemi di massimo)
2 Soluzione intera;
27 / 36
Criteri di chiusura dei nodi (problemi di massimo)
28 / 36
Criteri di chiusura dei nodi (problemi di massimo)
2) Soluzione intera:
• Se la soluzione ottima del rilassamento continuo di Pi è intera, allora
questa soluzione costituisce una soluzione ammissibile e ottima di Pi .
Il relativo nodo dell’albero di ricerca viene quindi chiuso e si ha
LBi = UBi .
29 / 36
Esercizio 2
• Sia dato un problema di massimo e sia indicato qui di seguito lo
sviluppo parziale dell’albero di ricerca del Branch and Bound
associato. Con Pi (UBi , LBi ) indichiamo rispettivamente il
sottoproblema considerato (Pi ), il suo upper bound (UBi ) ed il suo
lower bound (LBi ).
• Per chiudere i nodi P21 e P22 , bisogna avere per P12 una soluzione
con un valore maggiore o uguale del più alto degli upper bound dei
nodi, ovvero delle stime di soluzione presenti nei due nodi. Quindi
• Per riconoscere una soluzione ottima, anche il nodo P12 deve essere
chiuso. L’unico modo possibile è imporre LB12 = UB12 .
31 / 36
Esercizio 2: Soluzione
32 / 36
Regole di esplorazione dell’albero di ricerca
33 / 36
Regole di esplorazione dell’albero di ricerca
34 / 36
Regole di branch
35 / 36
Regole di branch
36 / 36