Esercizio 1 Dato il seguente problema di Knapsack 0-1 max 30x1 + 36x2 + 15x3 + 11x4 + 5x5 + 3x6 9x1 + 12x2 + 6x3 + 5x4 + 3x5 + 2x6 < 17 x {0,1}6 risolvere il problema tramite l’algoritmo di Branch-and-Bound.
Esercizio 1 Poiché in corrispondenza di ogni nodo dell’albero dovremo risolvere un problema di Knapsack continuo, riordiniamo gli oggetti in modo tale che 𝑝 1 𝑎 1 ≥ 𝑝 2 𝑎 2 ≥...≥ 𝑝 𝑛 𝑎 𝑛 p1/a1 = 30/9 = 3,333 y1 p2/a2 = 36/12 = 3 y2 p3/a3 = 15/6 = 2,5 y3 p4/a4 = 11/5 = 2,2 y4 p5/a5 = 5/3 = 1,666 y5 p6/a6 = 3/2 = 1,5 y6 Gli oggetti sono già ordinati Conserviamo la formulazione iniziale
Esercizio 1 Sia P0 il rilassamento lineare associato al sottoproblema S0 del nodo radice max 30x1 + 36x2 + 15x3 + 11x4 + 5x5 + 3x6 9x1 + 12x2 + 6x3 + 5x4 + 3x5 + 2x6 < 17 0 < xi < 1, i = 1, …,6 Calcoliamo la soluzione associata all’upper bound utilizzando l’algoritmo per il Knapsack continuo: x0UB = [1, (17 – 9)/12, 0, 0, 0, 0] = [1, 2/3, 0, 0, 0, 0] z0UB = 54 Per il lower bound, consideriamo una soluzione ammissibile data da x0LB = [1, 0, 0, 0, 0, 0] z0LB = 30 = zLB.
Esercizio 1 Generiamo i due sottoproblemi S1 t.c. x2 = 0 S2 t.c. x2 = 1 z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 S1 S2 Sia P1 il rilassamento lineare associato al sottoproblema S1 (x2 = 0) max 30x1 + 15x3 + 11x4 + 5x5 + 3x6 9x1 + 6x3 + 5x4 + 3x5 + 2x6 < 17 0 < xi < 1, i = 1, …,6 x1UB = [1, 0, 1, (17–15)/5, 0, 0] = [1, 0, 1, 2/5, 0, 0] z1UB = 49,4 x1LB = [1, 0, 1, 0, 0, 0] = [1, 0, 1, 0, 0, 0] z1LB = 45. Poiché z1LB > zLB, aggiorniamo il valore del lower bound corrente zLB = 45
Esercizio 1 z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 z1UB = 49.4 z1LB = 45 z2UB = 52.6 z2LB = 36 S1 zLB = 45 S2 Sia P2 il rilassamento lineare associato al sottoproblema S2 (x2 = 1) max 30x1 + 36 + 15x3 + 11x4 + 5x5 + 3x6 9x1 + 12 + 6x3 + 5x4 + 3x5 + 2x6 < 17 9x1 + 6x3 + 5x4 + 3x5 + 2x6 < 5 0 < xi < 1, i = 1, …,6 x2UB = [(17–12)/9, 1, 0, 0, 0, 0] = [5/9, 1, 0, 0, 0, 0] z2UB = 52,6 x2LB = [0, 1, 0, 0, 0, 0] z2LB = 36.
Esercizio 1 Da S2, generiamo i due sottoproblemi S3 t.c. x1 = 0 S4 t.c. x1 = 1 z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 z1UB = 49.4 z1LB = 45 z2UB = 52.6 z2LB = 36 S1 zLB = 45 S2 x1 = 0 x1 = 1 z3UB = 48.5 z3LB = 36 S3 S4 Sia P3 il rilassamento lineare associato al sottoproblema S3 (x2 = 1, x1=0) max 36 + 15x3 + 11x4 + 5x5 + 3x6 6x3 + 5x4 + 3x5 + 2x6 < 5 0 < xi < 1, i = 1, …,6 x3UB = [0, 1, 5/6, 0, 0, 0] z3UB = 48,5 x3LB = [0, 1, 0, 0, 0, 0] z3LB = 36.
Esercizio 1 Da S2, generiamo i due sottoproblemi S3 t.c. x1 = 0 S4 t.c. x1 = 1 z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 z1UB = 49.4 z1LB = 45 z2UB = 52.6 z2LB = 36 S1 S2 x1 = 0 x1 = 1 z3UB = 48.5 z3LB = 36 S3 S4 inammissibilità Sia P4 il rilassamento lineare associato al sottoproblema S4 (x2 = x1=1) max 30 + 36 + 15x3 + 11x4 + 5x5 + 3x6 9 + 12 + 6x3 + 5x4 + 3x5 + 2x6 < 17 6x3+5x4+3x5+2x6 < 17– 21 0 < xi < 1, i = 1, …,6 Poiché P4 è inammissibile, il nodo S4 può essere chiuso per inammissibilità.
Esercizio 1 Da S1, generiamo i due sottoproblemi S5 t.c. x4 = 0 S6 t.c. x4 = 1 z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 z1UB = 49.4 z1LB = 45 z2UB = 52.6 z2LB = 36 S1 S2 zLB = 45 x4 = 0 x4 = 1 x1 = 0 x1 = 1 z5UB = 48.33 z6LB = 45 z3UB = 48.5 z3LB = 36 S5 S6 S3 S4 inammissibilità Sia P5 il rilassamento lineare associato al sottoproblema S1 (x2 =x4 = 0) max 30 x1 + 15x3 + 5x5 + 3x6 9x1 + 6x3 + 3x5 + 2x6 < 17 0 < xi < 1, i = 1, …,6 x5UB = [1, 0, 1, 0, (17–15)/3, 0] = [1, 0, 1, 0, 2/3, 0] z5UB = 48,33 x5LB = [1, 0, 1, 0, 0, 0] z5LB = 45.
Esercizio 1 Da S1, generiamo i due sottoproblemi S5 t.c. x4 = 0 S6 t.c. x4 = 1 z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 z1UB = 49.4 z1LB = 45 z2UB = 52.6 z2LB = 36 S1 S2 zLB = 45 x4 = 0 x4 = 1 x1 = 0 x1 = 1 z5UB = 48.33 z6LB = 45 z6UB = 48.5 z6LB = 41 z3UB = 48.5 z3LB = 36 S5 S6 S3 S4 inammissibilità Sia P6 il rilassamento lineare associato al sottoproblema S6 (x2 = 0, x4=1) max 30 x1 + 15x3 + 11 + 5x5 + 3x6 9x1 + 6x3 + 5 + 3x5 + 2x6 < 17 9x1 + 6x3 + 3x5 + 2x6 < 12 0 < xi < 1, i = 1, …,6 x6UB = [1, 0, (12–9)/6 , 1, 0, 0] = [1, 0, 1/2, 1, 0, 0] z6UB = 48,5 x6LB = [1, 0, 0, 1, 0, 0] z6LB = 41.
Esercizio 1 Da S3, generiamo i due sottoproblemi S7 t.c. x5 = 0 z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 z1UB = 49.4 z1LB = 45 z2UB = 52.6 z2LB = 36 S1 S2 zLB = 45 x4 = 0 x4 = 1 x1 = 0 x1 = 1 z5UB = 48.33 z5LB = 45 z6UB = 48.5 z6LB = 41 z3UB = 48.5 z3LB = 36 S5 S6 S3 S4 inammissibilità x5 = 0 x5 = 1 Sia P7 il rilassamento lineare associato al sottoproblema S7 (x2=x4=x5=0) max 30x1 + 15x3 + 3x6 9x1 + 6x3 + 2x6 < 17 0 < xi < 1, i = 1, …,6 x7UB = [1, 0, 1, 0, 0, 1] z7UB = 48 x7LB = [1, 0, 1, 0, 0, 1] z7LB = 48 zLB = 48. S7 S7 S8 z7UB = 48 z7LB = 48 zLB = 48 OPT.
Esercizio 1 Da S3, generiamo i due sottoproblemi S7 t.c. x5 = 0 S8 t.c. x5 = 1 z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 z1UB = 49.4 z1LB = 45 z2UB = 52.6 z2LB = 36 S1 zLB = 45 S2 x4 = 0 x4 = 1 x1 = 0 x1 = 1 z5UB = 48.33 z5LB = 45 z6UB = 48.5 z6LB = 41 z3UB = 48.5 z3LB = 36 S5 S6 S3 S4 bound. bound. inammissibilità x5 = 0 x5 = 1 Poiché z8UB = 47,5 < zLB, il nodo S8 può essere chiuso per bound. Sia P8 il rilassamento lineare associato al sottoproblema S8 (x2=x4=0, x5=1) max 30x1 + 15x3 + 5 + 3x6 9x1 + 6x3 + 3 + 2x6 < 17 9x1+6x3+2x6 < 14 0 < xi < 1, i = 1, …,6 x8UB = [1, 0, (14–9)/6, 0, 1, 0]=[1,0,5/6,0,1,0] z8UB = 47,5 x8LB = [1, 0, 0, 0, 1, 0] z8LB = 35 S7 S7 S8 Per lo stesso motivo, anche i nodi S3 ed S6 possono essere chiusi per bound. z7UB = 48 z7LB = 48 z8UB = 47.5 z8LB = 35 zLB = 48 OPT bound.
Esercizio 1 Per determinare il valore finale ottimo del problema, consideriamo tutti i nodi che sono stati chiusi per ottimalità e prendiamo la soluzione che da’ il massimo valore della funzione obiettivo. Nel nostro caso il valore ottimo è dato da z*=48 e corrisponde alla soluzione x* = [1,0,1,0,0,1] associata al nodo S7.
Esercizio 1 S0 S1 S2 S5 S6 S3 S4 bound. bound. z0UB = 54 z0LB = 30 = zLB S0 x2 = 0 x2 = 1 z1UB = 49.4 z1LB = 45 z2UB = 52.6 z2LB = 36 S1 zLB = 45 S2 x4 = 0 x4 = 1 x1 = 0 x1 = 1 z5UB = 48.33 z5LB = 45 z6UB = 48.5 z6LB = 41 z3UB = 48.5 z3LB = 36 S5 S6 S3 S4 bound. bound. inammissibilità x5 = 0 x5 = 1 S7 S7 S8 z7UB = 48 z7LB = 48 z8UB = 47.5 z8LB = 35 zLB = 48 bound. OPT
Esercizio 2 Dato il seguente problema di Knapsack max 6 x1 + 10 x2 + 12 x3 x1 + 2x2 + 3 x3 < 5 (KP) x {0,1}3 risolvere il problema tramite l’algoritmo di programmazione dinamica.
Esercizio 2 max 6 x1 + 10 x2 + 12 x3 x1 + 2x2 + 3 x3 < 5 (KP) Calcoliamo la formula di ricorsione per r = 1: z1(0) = 0 x1= 0 z1(1) = 6 x1 = 1 z1(2) = 6 x1 = 1 z1(3) = 6 x1 = 1 z1(4) = 6 x1 = 1 z1(5) = 6 x1 = 1
Esercizio 2 d r 1 2 3 4 5 6 z2(0) z2(1) z2(2) z2(3) z2(4) z2(5) z3(0) Rappresentiamo questi valori in una tabella di dimensione n b = 3 5, in cui ogni elemento contiene zr(d). Il simbolo * nella soluzione indica che la variabile non è stata ancora fissata d r 1 2 3 4 5 (0,*,*) (1,*,*) 6 z2(0) z2(1) z2(2) z2(3) z2(4) z2(5) z3(0) z3(1) z3(2) z3(3) z3(4) z3(5)
Esercizio 2 Calcoliamo ora z2(d): Per d = {0, 1} z2(0) = z1(0) = 0 x2= 0 z2(1) = z1(1) = 6 x2= 0 Per d = {2, 3, 4, 5} z2(2) = max {z1(2), z1(0) + c2} = max {6, 10} = 10 x2 = 1 z2(3) = max {z1(3), z1(1) + c2} = max {6, 16} = 16 x2 = 1 z2(4) = max {z1(4), z1(2) + c2} = max {6, 16} = 16 x2 = 1 z2(5) = max {z1(5), z1(3) + c2} = max {6, 16} = 16 x2 = 1 Riportando questi valori in tabella si ha:
Esercizio 2 d r 1 2 3 4 5 6 10 16 z3(0) z3(1) z3(2) z3(3) z3(4) z3(5) 1 2 3 4 5 (0,*,*) (1,*,*) 6 (0,0,*) (1,0,*) (0,1,*) 10 (1,1,*) 16 z3(0) z3(1) z3(2) z3(3) z3(4) z3(5)
Esercizio 2 Calcoliamo ora z3(d): Per d = {0, 1, 2} z3(0) = z2(0) x3 = 0 z3(1) = z2(1) x3 = 0 z3(2) = z2(2) x3 = 0 Per d = {3, 4, 5} z3(3) = max {z2(3), z2(0) + c3} = max {16, 12} = 16 x3 = 0 z3(4) = max {z2(4), z2(1) + c3} = max {16, 18} = 18 x3 = 1 z3(5) = max {z2(5), z2(2) + c3} = max {16, 22} = 22 x3 = 1 Riportando questi valori in tabella si ha:
Esercizio 2 d r 1 2 3 4 5 (0,*,*) (1,*,*) 6 (0,0,*) (1,0,*) (0,1,*) 10 (1,1,*) 16 (0,0,0) (1,0,0) (0,1,0) (1,1,0) (1,0,1) 18 (0,1,1) 22 Pertanto, la soluzione ottima è x* = (0, 1, 1) di valore 22.
Esercizio 3 Dato il seguente problema di Knapsack 0-1 max 22x1 + 8x2 – 12x3 + 16x4 7x1 + 3x2 – 4x3 + 5x4 < 10 x {0,1}4 risolvere il problema tramite l’algoritmo di Branch-and-Bound.
Esercizio 3 Poiché la variabile x3 ha coefficiente negativo, applichiamo il seguente cambio di variabile x'3 = 1 – x3 per ricondurci ad un problema di Knapsack 0-1 in cui i coefficienti del vincolo e della funzione obiettivo sono tutti non negativi. Il problema diventa – 12 + max 22x1 + 8x2 + x'3 + 16x4 7x1 + 3x2 + 4x'3 + 5x4 < 14 x {0,1}4 Possiamo momentaneamente trascurare la costante –12 ricordandoci di aggiungerla al valore finale della soluzione di branch & bound.
Esercizio 3 Riordiniamo ora gli oggetti in modo tale che 𝑝 1 𝑎 1 ≥ 𝑝 2 𝑎 2 ≥...≥ 𝑝 𝑛 𝑎 𝑛 p1/a1 = 22/7 = 3,14 y2 p2/a2 = 8/3 = 2,66 y4 p3/a3 = 12/4 = 3 y3 p4/a4 = 16/5 = 3,2 y1 Riscriviamo ora il problema nelle nuove variabili yi max 16y1 + 22y2 + 12y3 + 8y4 5y1 + 7y2 + 4y3 + 3y4 < 14 y {0,1}4
Esercizio 3 Sia P0 il rilassamento lineare associato al sottoproblema S0 del nodo radice max 16y1 + 22y2 + 12y3 + 8y4 5y1 + 7y2 + 4y3 + 3y4 < 14 0 < yi < 1, i = 1, …,4 Calcoliamo la soluzione associata all’upper bound utilizzando l’algoritmo per il Knapsack continuo: y0UB = [1, 1, 1/2, 0] z0UB = 44 Per il lower bound, consideriamo una soluzione ammissibile data da x0LB = [1, 1, 0, 0] z0LB = 38 = zLB.
Esercizio 3 Generiamo i due sottoproblemi S1 t.c. y3 = 0 S2 t.c. y3 = 1 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 S1 S2 Sia P1 il rilassamento lineare associato al sottoproblema S1 (y3 = 0) max 16y1 + 22y2 + 8x4 5y1 + 7y2 + 3y4 < 14 0 < yi < 1, i = 1, …,4 y1UB = [1, 1, 0, 2/3] z1UB = 43,33 z1LB = [1, 1, 0, 0] z1LB = 38.
Esercizio 3 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 Sia P2 il rilassamento lineare associato al sottoproblema S2 (y3 = 1) max 16y1 + 22y2 + 12 + 8y4 5y1 + 7y2 + 3y4 < 10 0 < yi < 1, i = 1, …,4 y2UB = [1, 5/7, 1, 0] z2UB = 43,7 y2LB = [1, 0, 1, 0] z2LB = 28.
Esercizio 3 Da S1, generiamo i due sottoproblemi S3 t.c. y4 = 0 S4 t.c. y4 = 1 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 z3UB = 38 z3LB = 38 S3 S4 OPT Sia P3 il rilassamento lineare associato al sottoproblema S3 (y3 = y4 = 0) max 16y1 + 22y2 5y1 + 7y2 < 14 0 < yi < 1, i = 1, …,4 y3UB = [1, 1, 0, 0] z3UB = 38 x3LB = [1, 1, 0, 0] z3LB = 38. Chiudiamo il nodo per ottimalità.
Esercizio 3 Da S1, generiamo i due sottoproblemi S3 t.c. x4 = 0 S4 t.c. x4 = 1 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 S3 S4 OPT Sia P4 il rilassamento lineare associato al sottoproblema S4 (y3 = 0, y4=1) max 16y1 + 22y2 + 8 5y1 + 7y2 < 11 0 < yi < 1, i = 1, …,5 y4UB = [1, 6/7, 0, 1] z4UB = 42,8 y4LB = [1, 0, 0, 1] z4LB = 24.
Esercizio 3 Da S2, generiamo i due sottoproblemi S5 t.c. y2 = 0 S6 t.c. y2 = 1 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 S3 S4 S5 S6 OPT OPT/Bound Sia P5 il rilassamento lineare associato al sottoproblema S5 (y3 = 1, y2=0) max 16y1 + 12 + 8y4 5y1 + 3y4 < 10 0 < yi < 1, i = 1, …,4 y5UB = [1, 0, 1, 1] z5UB = 36 y5LB = [1, 0, 1, 1] z5LB = 36. Chiudiamo il nodo per ottimalità o per bound.
Esercizio 3 z0UB = 44 z0LB = 38 = zLB Da S2, generiamo i due sottoproblemi S5 t.c. x1 = 0 S6 t.c. x1 = 1 S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 z6UB = 43,6 z5LB = 34 S3 S4 S5 S6 OPT OPT/Bound Sia P6 il rilassamento lineare associato al sottoproblema S6 (y3 = 0, y2=1) max 16y1 + 22 + 12 + 8y4 5y1+3y4 < 3 0 < yi < 1, i = 1, …,4 y6UB = [3/5, 1, 1, 0] z6UB = 43,6 y6LB = [0, 1, 1, 1] z6LB = 34.
Esercizio 3 Da S4, generiamo i due sottoproblemi S7 t.c. y2 = 0 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 S3 S4 S5 S6 OPT OPT/Bound y2 = 0 y2 = 1 S7 S7 S8
Esercizio 3 Sia P7 il rilassamento lineare associato al sottoproblema S7 (y3=y2=0,y4=1) max 16y1 + 8 5y1 < 11 0 < yi < 1, i = 1, …,4 y7UB = [1, 0,0, 1] z7UB = 20 y7LB = [1, 0, 0, 1] z7LB = 20 Poiché y7UB è intera il nodo S7 può essere chiuso per ottimalità. Osserviamo che questo nodo potrebbe anche essere chiuso per bound in quanto z7UB < zLB.
Esercizio 3 Da S4, generiamo i due sottoproblemi S7 t.c. y2 = 0 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 S3 S4 S5 S6 OPT OPT/Bound y2 = 0 y2 = 1 z7UB = 20 z7LB = 20 S7 S7 S8 OPT/Bound
Esercizio 3 Sia P8 il rilassamento lineare associato al sottoproblema S8 (y3=0,y4=y2=1) max 16y1 + 30 5y1 < 4 0 < yi < 1, i = 1, …,4 y8UB = [4/5, 1,0, 1] z8UB = 42,8 y8LB = [0, 0, 1, 1] z8LB = 30
Esercizio 3 Da S4, generiamo i due sottoproblemi S7 t.c. y2 = 0 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 S3 S4 S5 S6 OPT OPT y2 = 0 y2 = 1 z7UB = 20 z7LB = 20 z8UB = 42.8 z8LB = 30 S7 S7 S8 OPT/Bound
Esercizio 3 Da S6, generiamo i due sottoproblemi S9 t.c. y1 = 0 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 S3 S4 S5 S6 OPT OPT y2 = 0 y2 = 1 y1 = 0 y1 = 1 z7UB = 20 z7LB = 20 z8UB = 42.8 z8LB = 30 S7 S7 S8 S9 S10 OPT/Bound
Esercizio 3 Sia P9 il rilassamento lineare associato al sottoproblema S9 (y3=y2=1, y1=0) max 22 + 12 + 8y4 3y4 < 3 0 < yi < 1, i = 1, …,4 y9UB = [0, 1,1, 1] z8UB = 42 y8LB = [0, 1, 1, 1] z8LB = 42 Poiché y9UB è intera, il nodo S9 può essere chiuso per ottimalità. Aggiorniamo il valore del lower bound globale: zLB = 42.
Esercizio 3 Da S6, generiamo i due sottoproblemi S9 t.c. y1 = 0 S10 t.c. y1 = 1 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 S3 S4 S5 S6 OPT OPT y2 = 0 y2 = 1 y1 = 0 y1 = 1 z7UB = 20 z7LB = 20 z8UB = 42.8 z8LB = 30 z9UB = 42 z9LB = 42 S7 S7 S8 S9 S10 zLB = 42 OPT/Bound OPT
Esercizio 3 Poiché il lower bound globale è stato aggiornato al valore zLB = 42, anche il nodo S8 può essere chiuso per bound.
Esercizio 3 Da S6, generiamo i due sottoproblemi S9 t.c. y1 = 0 S10 t.c. y1 = 1 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 S3 S4 S5 S6 OPT OPT y2 = 0 y2 = 1 y1 = 0 y1 = 1 z7UB = 20 z7LB = 20 z8UB = 42.8 z8LB = 30 z9UB = 42 z9LB = 42 S7 S7 S8 S9 S10 zLB = 42 OPT/Bound Bound OPT
Esercizio 3 Sia P10 il rilassamento lineare associato al sottoproblema S10 (y3=y2= y1=1) max 16 + 22 + 12 + 8y4 5 + 3y4 < 3 0 < yi < 1, i = 1, …,4 Poiché P10 è inammissibile, il nodo S10 può essere chiuso per inammissibilità.
Esercizio 3 Da S6, generiamo i due sottoproblemi S9 t.c. y1 = 0 S10 t.c. y1 = 1 z0UB = 44 z0LB = 38 = zLB S0 y3 = 0 y3 = 1 z1UB = 43.33 z1LB = 38 z2UB = 43.7 z2LB = 28 S1 S2 y4 = 0 y4 = 1 y2 = 0 y2 = 1 z3UB = 38 z3LB = 38 z4UB = 42.8 z4LB = 24 z5UB = 36 z5LB = 36 S3 S4 S5 S6 OPT OPT y2 = 0 y2 = 1 y1 = 0 y1 = 1 z7UB = 20 z7LB = 20 z8UB = 42.8 z8LB = 30 z9UB = 42 z9LB = 42 S7 S7 S8 S9 S10 zLB = 42 OPT/Bound Bound OPT Inammissibilità
Esercizio 3 La soluzione ottima del problema è quella associata al nodo S9 e data da y* = [0, 1,1, 1] di valore z* = 42. Ricordandoci di aggiungere la costante –12 al valore finale, otteniamo che la soluzione ottima ha valore z* = 30. Ricordiamo che y* è la soluzione del problema in cui gli oggetti sono stati riordinati e la variabile x3 è stata complementata. La soluzione ottenuta riordinando gli oggetti è data da: (x*)' = [1, 1, 1, 0] La soluzione ottenuta ricomplementando la variabile x3 è data da: x* = [1, 1, 0, 0]