Modelli e Algoritmi per la Logistica Branch & Bound SARA MATTIA Università di Roma“La Sapienza” Dipartimento di Informatica e Sistemistica Branch & Bound min c T x x S z* valore ottimo partizione di S in S1 ...Sk Si S j S S i i 1..k z*i valore ottimo di min {c T x : x S i } z* = min {z*1 ... z*k } • L lista dei sottoproblemi da esaminare • UB upper bound per il problema • x* soluzione corrispondente all’UB i j Branch & Bound inizializzazione: L = P, x*, UB L=? si x* ottima no scegli Pi L calcola LB per Pi , y LB UB ? decomponi Pi in Pi1 ...Pik L = L {Pi1 ...Pik} no no yZ? si 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 Branch & Bound decomposizione (branching) • x {0,1}n scegli xi frazionaria • x Zn scegli xi frazionaria Pi0 = Pi {xi = 0} Pi1 = Pi {xi = 1} PiL Pi { x i xˆi } PiU Pi { x i xˆi } scelta della variabile di branching • variabile più “intera” • variabile più “frazionaria” • ordine predefinito Esempio min 5x1 9x 2 7x 3 5x 4 4x1 5x 2 3x 3 2x 4 7 4 x { 0 , 1 } • soluzione del rilassamento: r1 5 4 1,25 r2 9 5 1,8 r3 7 3 2,33 { 1,2,3,4 } r4 5 2 2,5 LB = 10,4 UB = 14 xˆ1 xˆ2 1 xˆ3 xˆ 4 0 xˆ1 1 xˆ 2 3 5 0,6 xˆ 3 0 xˆ 4 0 Esempio min 5x1 9x 2 7x 3 5x 4 4x1 5x 2 3x 3 2x 4 7 4 x { 0 , 1 } UB = 14 xˆ1 xˆ2 1 xˆ3 xˆ 4 0 x2 0 min 5x1 7x 3 5x 4 4x1 3x 3 2x 4 7 xˆ1 1 xˆ 2 3 5 0,6 xˆ 4 0 xˆ 3 0 x2 1 9 min 5x1 7x 3 5x 4 4x1 3x 3 2x 4 2 Esempio { 1,2,3,4 } UB = 14 x2 0 x2 1 9 min 5x1 7x 3 5x 4 min 5x1 7x 3 5x 4 4x1 3x 3 2x 4 7 x1 0 9 min 7x 3 5x 4 3x 3 2x 4 2 xˆ1 xˆ2 1 xˆ3 xˆ 4 0 4x1 3x 3 2x 4 2 xˆ 2 1 xˆ1 1 2 0,5 LB = 11,5 xˆ xˆ 0 4 3 x1 1 14 min 7x 3 5x 4 3x 3 2x 4 2 LB 14 =UB Esempio { 1,2,3,4 } UB = 14 x2 0 xˆ1 xˆ2 1 xˆ3 xˆ 4 0 x2 1 min 5x1 7x 3 5x 4 4x1 3x 3 2x 4 7 xˆ1 xˆ3 1 xˆ2 xˆ 4 0 LB = 12 x intera aggiorna UB ottima 9 min 5x1 7x 3 5x 4 4x1 3x 3 2x 4 2 x1 0 x1 1 9 min 7x 3 5x 4 14 min 7x 3 5x 4 3x 3 2x 4 2 xˆ 2 1 xˆ 3 2 3 0,66 xˆ xˆ 0 4 1 3x 3 2x 4 2 LB = 13,6 LB 14 = UB Esempio max x1 4x 2 xˆ1 2 B xˆ 2 3 x1 4 x 2 5 2x1 2x 2 13 x1 0 x 2 0 x Z 2 LB = 11 xˆ1 4,2 UB = 13,4 A xˆ2 2,3 x1 4 x2 A B x1 1,25 1 4 5 6,5 x1 x1 5 Esempio max x1 4x 2 LB = 11 x1 4 x 2 5 2x1 2x 2 13 x1 0 x 2 0 x 5 1 x Z 2 x xˆ1 5 C xˆ2 1,5 UB = 11 2 C 1,25 1 4 5 6,5 x1 Esempio max x1 4x 2 LB = 11 x1 4 x 2 5 2x1 2x 2 13 x1 0 x 2 0 x 4 1 x Z 2 x2 xˆ1 4 D xˆ 2 2,25 UB = 13 x2 2 3 x2 D 2 1,25 x2 3 1 4 5 6,5 x1 P= Esempio max x1 4x 2 LB = 11 x1 4 x 2 5 2x1 2x 2 13 x1 0 x 2 0 x 4 1 x Z 2 x2 xˆ1 4 E xˆ 2 2 UB = 12 x intera aggiorna LB x ottima 3 E 2 1,25 1 4 5 6,5 x1