Subproblem 1 Subproblem 2

advertisement
Example of Branch-and-Bound
6
x1 + x2 = 6
Max Z = 5x1 + 8x2
s.t. x1 + x2  6
5x1 + 9x2  45
x1 , x2 ≥ 0 integer
5
4
(2.25, 3.75)
3
Z=41.25
2
5x1 + 9x2 = 45
1
Z=20
0
1
2
3
4
5
6
7
8
Branching step
• Choose a variable that is fractional in the optimal solution to the
LP-relaxation – say, x2 . Observe that every feasible IP point
must have either x2  3 or x2 ≥ 4 .
• With this in mind, branch on the variable x2 to create the
following two subproblems:
Subproblem 1
Subproblem 2
Max Z = 5x1 + 8x2
Max Z = 5x1 + 8x2
s.t. x1 + x2  6
s.t. x1 + x2  6
5x1 + 9x2  45
5x1 + 9x2  45
x2  3
x2 ≥ 4
x1 , x2 ≥ 0
x1 , x2 ≥ 0
• Solve both subproblems
(note that the original optimal solution (2.25, 3.75) can’t recur)
Branching step (graphically)
Z=41
Subproblem 1: Opt. solution (3,3) with value 39
Subproblem 2: Opt. solution (1.8,4) with value 41
5
Subproblem 2
4
(1.8, 4)
3
(3, 3)
2
Subproblem 1
1
Z=39
Z=20
0
1
2
3
4
5
6
7
8
Solution tree
S1: x2  3
For each subproblem, we record
• the restriction that creates the subproblem
• the optimal LP solution
• the LP optimum value
All
(2.25, 3.75)
Z=41.25
(3, 3)
Z=39
int.
S2: x2 ≥ 4
(1.8, 4)
Z=41
The optimal solution for Subproblem 1 is integral: (3, 3).
 If further branching on a subproblem will yield no useful
information, then we can fathom (dismiss) the subproblem.
In our case, we can fathom Subproblem 1 because its solution is integral.
 The best integer solution found so far is stored as incumbent.
The value of the incumbent is denoted by Z*.
In our case, the first incumbent is (3, 3), and Z*=39.
 Z* is a lower bound for OPT(IP): OPT(IP) ≥ Z* .
In our case, OPT(IP) ≥ 39. The upper bound is 41: OPT(IP)  41.
Next branching step (graphically)
5
(1, 4.44)
Subpr. 4
Subpr. 3
- Fathom Subproblem 1.
- Branch Subproblem 2 on x1 :
Subproblem 3: New restriction is x1  1.
Opt. solution (1, 4.44) with value 40.55
Subproblem 4: New restriction is x1 ≥ 2.
The subproblem is infeasible
4
3
Z=40.55
2
1
Z=20
0
1
2
3
4
5
6
7
8
Solution tree (cont.)
S1: x2  3
All
(2.25, 3.75)
Z=41.25
(3, 3)
Z=39
S2: x2 ≥ 4
(1.8, 4)
Z=41
int.
S3: x1  1
(1, 4.44)
Z=40.55
S4: x1 ≥ 2
infeasible
 If a subproblem is infeasible, then it is fathomed.
In our case, Subproblem 4 is infeasible; fathom it.
 The upper bound for OPT(IP) is updated: 39  OPT(IP)  40.55 .
 Next branch Subproblem 3 on x2 .
(Note that the branching variable might recur).
Next branching step (graphically)
Branch Subproblem 3 on x2 :
(0, 5)
Subproblem 5: New restriction is x2  4.
Feasible region:
the segment joining (0,4) and (1,4)
Opt. solution (1, 4) with value 37
Subproblem 6: New restriction is x2 ≥ 5.
Feasible region is just one point: (0, 5)
Opt. solution (0, 5) with value 40
5
4
(1, 4)
3
2
1
Z=20
0
1
2
3
4
5
6
7
8
Solution tree (final)
S1: x2  3
All
(2.25, 3.75)
Z=41.25
(3, 3)
Z=39
S2: x2 ≥ 4
(1.8, 4)
Z=41
S5: x2  4
int.
S3: x1  1
(1, 4.44)
Z=40.55
S4: x1 ≥ 2
(1, 4)
Z=37
S6: x2 ≥ 5
(0, 5)
Z=40
int.
int.
infeasible
 If the optimal value of a subproblem is  Z*, then it is fathomed.
• In our case, Subproblem 5 is fathomed because 37  39 = Z*.
 If a subproblem has integral optimal solution x*,
and its value > Z*, then x* replaces the current incumbent.
• In our case, Subproblem 5 has integral optimal solution, and its value
40>39=Z*. Thus, (0,5) is the new incumbent, and new Z*=40.
 If there are no unfathomed subproblems left, then the current
incumbent is an optimal solution for (IP).
• In our case, (0, 5) is an optimal solution with optimal value 40.
Download