Modelli e Algoritmi per la Logistica Branch & Bound SARA MATTIA Università di Roma“La Sapienza” Dipartimento di Informatica e Sistemistica
Branch & Bound z* valore ottimo partizione di S in S1 ...Sk z*i valore ottimo di z* = min {z*1 ... z*k } L lista dei sottoproblemi da esaminare UB upper bound per il problema x* soluzione corrispondente all’UB
Branch & Bound inizializzazione: L = P, x*, UB L = ? x* ottima si no scegli PiÎ L calcola LB per Pi , y LB UB ? si y Î Z ? no decomponi Pi in Pi1 ...Pik L = L {Pi1 ...Pik} no aggiorna UB e x* si
Branch & Bound scelta del problema: problema con minimo LB (best bound) LIFO (visita in profondità) FIFO (visita in ampiezza) calcolo LB: Rilassamento Lineare Formulazione alternativa
decomposizione (branching) scelta della variabile di branching Branch & Bound decomposizione (branching) xÎ {0,1}n scegli xi frazionaria Pi0 = Pi {xi = 0} Pi1 = Pi {xi = 1} xÎ Zn scegli xi frazionaria scelta della variabile di branching variabile più “intera” variabile più “frazionaria” ordine predefinito
soluzione del rilassamento: Esempio soluzione del rilassamento: { 1,2,3,4 } LB = 10,4 UB = 14
Esempio UB = 14
Esempio UB = 14 { 1,2,3,4 } LB = 11,5 LB 14 =UB
Esempio { 1,2,3,4 } UB = 14 LB = 12 x intera LB 14 = UB aggiorna UB ottima
Esempio B LB = 11 A UB = 13,4 4 x1 4 x1 x1 x2 1 1,25 6,5 5 x1 5
Esempio LB = 11 C UB = 11 x1 x2 1 1,25 6,5 4 5
Esempio LB = 11 UB = 13 x2 2 x2 x2 x2 3 x1 P = D 2 3 1 1,25 6,5 4 5
Esempio LB = 11 UB = 12 x intera aggiorna LB x2 x ottima x1 E 1 1,25 6,5 4 5 2 3