The Binary Integer LP Branch-and-Bound Algorithm:
Initialization: Set
z
*
=
−∞
. Apply the bounding step, fathoming step, and optimality test
described below to the whole problem.
If not fathomed, classify this problem as the one
remaining “subproblem” for performing the first full iteration below.
Steps for each iteration:
1) Branching: Among the remaining (unfathomed) subproblems, select the one that was created
most recently. (Break ties according to which has the larger bound.) Branch for this sub-
problem to create two new subproblems by fixing the next variable (the branching variable)
at either 0 or 1.
2) Bounding: For each new subproblem, apply the simplex method to its LP relaxation to obtain
an optimal solution and the optimal value
z
for this LP relaxation. If this optimal value
z
is
not an integer, round it down to an integer. No action is needed if the optimal value
z
is an
integer. This integer value
z
is the bound for this subproblem.
3) Fathoming: For each new subproblem, apply the three fathoming tests summarized above,
and discard those subproblems that are fathomed by any of the tests.
Optimality test: Stop when there are no remaining subproblems; the current incumbent is
optimal. (If there is no incumbent, the problem has no feasible solutions.) Otherwise, return
to perform another iteration.
Now, let us complete the above example.
67

Lecture 13
Iteration 2:
The only remaining subproblem corresponds to
x
1
= 1 in Figure 5.3, so we shall
branch from here to create two new subproblems given below:
Subproblem 3:
Fix
x
1
= 1 and
x
2
= 0, so the resulting subproblem reduces to
max
z
= 9 + 6
x
3
+ 4
x
4
s.t.
5
x
3
+ 2
x
4
≤
4
x
3
+
x
4
≤
1
x
3
≤
1
x
4
≤
0
x
i
is binary
, i
= 3
,
4
.
Subproblem 4:
Fix
x
1
= 1 and
x
2
= 1, so the resulting subproblem reduces to
max
z
= 14 + 6
x
3
+ 4
x
4
s.t.
5
x
3
+ 2
x
4
≤
1
x
3
+
x
4
≤
1
x
3
≤
0
x
4
≤
1
x
i
is binary
, i
= 3
,
4
.
LP relaxation of subproblem 3: optimal solution (
x
1
, x
2
, x
3
, x
4
) = (1
,
0
,
4
5
,
0) with
z
= 13
4
5
.
LP relaxation of subproblem 4: optimal solution (
x
1
, x
2
, x
3
, x
4
) = (1
,
0
,
0
,
1
2
) with
z
= 16.
The resulting bounds for the subproblems are
Bound for subproblem 3:
z
≤
13.
Bound for subproblem 4:
z
≤
16.
Note that both these bounds are larger than
z
*
, so fathoming test 1 fails in both cases. Test 2
also fails since both LP relaxations have feasible solutions. Finally, test 3 also fails because both
optimal solutions include variables with noninteger values.
Figure 5.4 shows the resulting branching at this point. The lack of an
F
to the right of either
new case indicates that both remain unfathomed.
68

Lecture 13
All
Variable:
16
16
13
16
x
1
x
1
= 0
x
1
= 1
9 =
Z
∗
F
(3)
(0
,
1
,
0
,
1) = incumbent
x
2
= 1
(1
,
1
,
0
,
1
2
)
(1
,
0
,
4
5
,
0)
x
2
= 0
x
2
Figure 5.4 Branching after
x
1
= 1
Iteration 3:
So far, the algorithm has created four subproblems. Subproblem 1 has been fathomed,
and subproblem 2 has been replaced by (separated into) subproblems 3 and 4, but these last
two remain under consideration.
Because they were created simultaneously, but subproblem 4
(
x
1
= 1
, x
2
= 1) has the larger bound (16
>
13), the next branching is done from the point of
(
x
1
, x
2
) = (1
,
1), which creates the following new subproblems.