Branch and Bound
Branch and Bound
1252
Each object has a positive value and a positive weight. (E.g. a balloon filled with
helium has a negative weight. See Exercises 24.1-1 and 24.1-2) The value is the
degree of contribution of the object to the success of the tour.
The objects are independent from each other. (E.g. can and can opener are not
independent as any of them without the other one has limited value.)
The knapsack of the tourist is strong and large enough to contain all possible
objects.
The strength of the tourist makes possible to bring only a limited total weight.
But within this weight limit the tourist want to achieve the maximal total value.
The following notations are used to the mathematical formulation of the problem:
n
j
wj
vj
b
the
the
the
the
the
number of objects;
index of the objects;
weight of object j;
value of object j;
maximal weight what the tourist can bring.
wj
0
wj xj
1253
which may not exceed the weight limit. Hence the mathematical form of the problem
is
n
X
vj xj
(24.1)
wj xj b
(24.2)
max
j=1
n
X
j=1
xj = 0 or 1,
j = 1, . . . , n .
(24.3)
The difficulty of the problem is caused by the integrality requirement. If constraint (24.3) is substituted by the relaxed constraint, i.e. by
0 xj 1,
j = 1, . . . , n ,
(24.4)
then the Problem (24.1), (24.2), and (24.4) is a linear programming problem. (24.4)
means that not only a complete object can be in the knapsack but any part of it.
Moreover it is not necessary to apply the simplex method or any other LP algorithm
to solve it as its optimal solution is described by
Theorem 24.1 Suppose that the numbers vj , wj (j = 1, . . . , n) are all positive and
moreover the index order satisfies the inequality
v2
vn
v1
.
w1
w2
wn
(24.5)
The optimal value of the Problem (24.1), (24.2), and (24.4) is an upper bound
of the optimal value of the Problem (24.1), (24.2), and (24.3).
If the optimal solution of the Problem (24.1), (24.2), and (24.4) is feasible in the
Problem (24.1), (24.2), and (24.3) then it is the optimal solution of the latter
problem as well.
These properties are used in the course of the branch and bound method intensively.
1254
23x1
8x1
+
+
44x5
19x5
25
(24.6)
23x1
8x1
+
+
44x5
19x5
25
(24.7)
10
, x = x5 = 0 .
11 4
As the value of x3 is non-integer, the optimal value 67.54 is just an upper bound
of the optimal value of (24.6) and further analysis is needed. The value 67.54 can
be rounded down to 67 because of the integrality of the coefficients in the objective
function.
The key idea is that the sets of feasible solutions of both problems are divided
into two parts according the two possible values of x3 . The variable x3 is chosen as
its value is non-integer. The importance of the choice is discussed below.
Let
F0 = F, F1 = F0 {x | x3 = 0}, F2 = F0 {x | x3 = 1}
R0
67.45
x3 = 0
1255
x3 = 1
R1
65.26
R2
67.28
x2 = 0
x2 = 1
R3
65
R4
67.127
x1 = 0
x1 = x3 = x4 = 1
x2 = x5 = 0
R5
63.32
x1 = 1
R6
and
R0 = R, R1 = R0 {x | x3 = 0}, R2 = R0 {x | x3 = 1} .
Obviously
F1 R1 and F2 R2 .
Hence the problem
max 23x1 + 19x2 + 28x3 + 14x4 + 44x5
x R1
(24.8)
1256
(24.9)
Problem (24.8) can be solved by Theorem 24.1, too, but it must be taken into
consideration that the value of x3 is 0. Thus its optimal solution is
x1 = x2 = 1, x3 = 0, x4 = 1, x5 =
4
.
19
The optimal value is 65.26 which gives the upper bound 65 for the optimal value of
Problem (24.9). The other subsets of the feasible solutions are immediately investigated. The optimal solution of the problem
max 23x1 + 19x2 + 28x3 + 14x4 + 44x5
x R2
(24.10)
is
6
, x = 1, x4 = x5 = 0
7 3
giving the value 67.28. Hence 67 is an upper bound of the problem
x1 = 1, x2 =
(24.11)
As the upper bound of (24.11) is higher than the upper bound of (24.9), i.e. this
branch is more promising, first it is fathomed further on. It is cut again into two
branches according to the two values of x2 as it is the non-integer variable in the
optimal solution of (24.10). Let
F3 = F2 {x | x2 = 0} ,
F4 = F2 {x | x2 = 1} ,
R3 = R2 {x | x2 = 0} ,
R4 = R2 {x | x2 = 1} .
The sets F3 and R3 are containing the feasible solution of the original problems such
that x3 is fixed to 1 and x2 is fixed to 0. In the sets F4 and R4 both variables are
fixed to 1. The optimal solution of the first relaxed problem, i.e.
max 23x1 + 19x2 + 28x3 + 14x4 + 44x5
x R3
is
x1 = 1, x2 = 0, x3 = 1, x4 = 1, x5 = 0 .
As it is integer it is also the optimal solution of the problem
max 23x1 + 19x2 + 28x3 + 14x4 + 44x5
x F3 .
1257
The optimal objective function value is 65. The branch of the sets F3 and R3 is
completely fathomed, i.e. it is not possible to find a better solution in it.
The other new branch is when both x2 and x3 are fixed to 1. If the objective
function is optimized on R4 then the optimal solution is
x1 =
7
, x = x3 = 1, x4 = x5 = 0 .
8 2
Applying the same technique again two branches are defined by the sets
F5 = F4 {x | x1 = 0}, F6 = F4 {x | x1 = 1},
R5 = R4 {x | x2 = 0}, R6 = R4 {x | x2 = 1} .
The optimal solution of the branch of R5 is
x1 = 0, x2 = x3 = x4 = 1, x5 =
1
.
19
The optimal value is 63.32. It is strictly less than the objective function value of the
feasible solution found in the branch of R3 . Therefore it cannot contain an optimal
solution. Thus its further exploration can be omitted although the best feasible
solution of the branch is still not known. The branch of R6 is infeasible as objects
1, 2, and 3 are overusing the knapsack. Traditionally this fact is denoted by using
as optimal objective function value.
At this moment there is only one branch which is still unfathomed. It is the
branch of R1 . The upper bound here is 65 which is equal to the objective function
value of the found feasible solution. One can immediately conclude that this feasible
solution is optimal. If there is no need for alternative optimal solutions then the
exploration of this last branch can be abandoned and the method is finished. If
alternative optimal solutions are required then the exploration must be continued.
The non-integer variable in the optimal solution of the branch is x5 . The subbranches
referred later as the 7th and 8th branches, defined by the equations x5 = 0 and
x5 = 1, give the upper bounds 56 and 61, respectively. Thus they do not contain
any optimal solution and the method is finished.
1258
Subproblems (24.9) and (24.11). Both subproblems have their own optimal solution
and the better one is the optimal solution of (24.6). They are still too difficult to be
solved directly, therefore relaxations were generated to both of them. These problems
are (24.8) and (24.10). The nature of (24.8) and (24.10) from mathematical point of
view is the same as of (24.7).
Notice that the union of the sets of the feasible solutions of (24.8) and (24.10)
is a proper subset of the relaxation (24.7), i.e.
R1 R2 R0 .
Moreover the two subsets have no common element, i.e.
R1 R2 = .
It is true for all other cases, as well. The reason is that the branching, i.e. the
determination of the Subproblems (24.9) and (24.11) was made in a way that the
optimal solution of the relaxation, i.e. the optimal solution of (24.7), was cut off.
The branching policy also has consequences on the upper bounds. Let (S) be
the optimal value of the problem where the objective function is unchanged and
the set of feasible solutions is S. Using this notation the optimal objective function
values of the original and the relaxed problems are in the relation
(F) (R) .
If a subset Rk is divided into Rp and Rq then
(Rk ) max{(Rp ), (Rq )} .
(24.12)
Notice that in the current Problem (24.12) is always satisfied with strict inequality
(R0 ) > max{(R1 ), (R2 )} ,
(R1 ) > max{(R7 ), (R8 )} ,
(R2 ) > max{(R3 ), (R4 )} ,
(R4 ) > max{(R5 ), (R6 )} .
(The values (R7 ) and (R8 ) were mentioned only.) If the upper bounds of a certain
quantity are compared then one can conclude that the smaller the better as it is
closer to the value to be estimated. An equation similar to (24.12) is true for the
non-relaxed problems, i.e. if Fk = Fp Fq then
(Fk ) = max{(Fp ), (Fq )} ,
(24.13)
but because of the difficulty of the solution of the problems, practically it is not
possible to use (24.13) for getting further information.
A subproblem is fathomed and no further investigation of it is needed if either
1259
its upper bound is not greater than the value of the best known feasible solution
(cases of F1 and F5 ).
If the first or third of these conditions are satisfied then all feasible solutions of the
subproblem are enumerated in an implicit way.
The subproblems which are generated in the same iteration, are represented by
two branches on the enumeration tree. They are siblings and have the same parent.
Figure 24.1 visualize the course of the calculations using the parentchild relation.
The enumeration tree is modified by constructive steps when new branches are
formed and also by reduction steps when some branches can be deleted as one of
the three above-mentioned criteria are satisfied. The method stops when no subset
remained which has to be still fathomed.
Exercises
24.1-1 What is the suggestion of the optimal solution of a Knapsack Problem in
connection of an object having (a) negative weight and positive value, (b) positive
weight and negative value?
24.1-2 Show that an object of a knapsack problem having negative weight and
negative value can be substituted by an object having positive weight and positive
value such that the two knapsack problems are equivalent. (Hint. Use complementary
variable.)
24.1-3 Solve Problem (24.6) with a branching strategy such that an integer valued
variable is used for branching provided that such a variable exists.
1260
24.2.1. Relaxation
Relaxation is discussed in two steps. There are several techniques to define relaxation
to a particular problem. There is no rule for choosing among them. It depends on
the design of the algorithm which type serves the algorithm well. The different types
are discussed in the first part titled Relaxations of a particular problem. In the
course of the solution of Problem (24.6) subproblems were generated which were
still knapsack problems. They had their own relaxations which were not totally
independent from the relaxations of each other and the main problem. The expected
common properties and structure is analyzed in the second step under the title
Relaxation of a problem class.
Relaxations of a particular problem
The description of Problem (24.6) consists of three parts: (1) the objective function,
(2) the algebraic constraints, and (3) the requirement that the variables must be
binary. This structure is typical for optimization problems. In a general formulation
an optimization problem can be given as
max f (x)
(24.14)
g(x) b
(24.15)
xX.
(24.16)
(24.15)
x Y.
(24.17)
This type of relaxation can be applied if a large amount of difficulty can be eliminated
by changing the nature of the variables.
1261
i gi (x)
m
X
i bi .
(24.18)
i=1
Then the relaxation is the optimization of the (24.14) objective function under the
conditions (24.18) and (24.16). The name of the inequality (24.18) is surrogate
constraint.
The problem
max
23x1
5x1
2x1
1x1
+
+
+
+
+
+
44x5
5x5
6x5
8x5
14
4
7
(24.19)
x1 + x2 2 .
A new relaxed problem is defined by the introduction of the cut. The method is
similar to one of the method relaxing of the objective function discussed below.
1262
(24.20)
(24.21)
g(x) b
(24.15)
xX.
(24.16)
00
3
, 33
3
1263
max h
h 6x + 21,
x [0, 5].
h x + 2.25
The optimal solution is x = 1.25. It is the intersection point of the first and third
tangent lines. Now both new intersection points are in the interval [0,5]. In general
some intersection points can be infeasible. The method goes in the same way further
on. The approximated unknow function is f (x) = (x 2)2 .
The Lagrange Relaxation
Another relaxation called Lagrange relaxation. In that method both the objective
function and the constraints are modified. The underlying idea is the following. The
variables must satisfy two different types of constraints, i.e. they must satisfy both
(24.15) and (24.16). The reason that the constraints are written in two parts is that
the nature of the two sets of constraints is different. The difficulty of the problem
caused by the requirement of both constraints. It is significantly easier to satisfy only
1264
m
X
i=1
i (bi gi (x))
xX.
(24.22)
(24.16)
Notice that the objective function (24.22) penalizes the violation of the constraints,
e.g. trying to use too much resources, and rewards the saving of resources. The first
set of constraints disappeared from the problem. In most of the cases the Lagrange
relaxation is a much easier one than the original problem. In what follows Problem
(24.14)- (24.16) is also denoted by (P ) and the Lagrange relaxation is referred as
(L()). The notation reflects the fact that the Lagrange relaxation problem depends
on the choice of i s. The numbers i s are called Lagrange multipliers.
It is not obvious that (L()) is really a relaxation of (P ). This relation is established by
Theorem 24.2 Assume that both (P ) and (L()) have optimal solutions. Then
for any nonnegative i (i = 1, . . . , m) the inequality
(L()) (P )
holds.
Proof The statement is that the optimal value of (L()) is an upper bound of the
optimal value of (P ). Let x be the optimal solution of (P ). It is obviously feasible
in both problems. Hence for all i the inequalities i 0, bi gi (x ) hold. Thus
i (bi gi (x )) 0 which implies that
f (x ) f (x ) +
m
X
i=1
i (bi gi (x )).
Here the right-hand side is the objective function value of a feasible solution of
(L()), i.e.
(P ) = f (x ) f (x ) +
m
X
i=1
i (bi gi (x )) (L()) .
1265
(24.23)
and
m
X
i=1
i (bi gi (xL )) = 0
(24.24)
m
X
i=1
m
X
i=1
The only constraint is that all variables are binary. It implies that if a coefficient is
positive in the objective function then the variable must be 1 in the optimal solution
of the Lagrange problem, and if the coefficient is negative then the variable must
be 0. As the coefficient of x2 is zero, there are two optimal solutions: (1,0,1,1,0)
and (1,1,1,1,0). The first one satisfies the optimality condition thus it is an optimal
solution. The second one is infeasible.
What is common in all relaxation?
They have three common properties.
1266
(24.25)
max{f (x) | x U}
(24.26)
if
(i) U V and
(ii) it is known a priori, i.e. without solving the problems that (24.25) (24.26).
Relaxation of a problem class
No exact definition of the notion of problem class will be given. There are many
problem classes in optimization. A few examples are the knapsack problem, the
more general zero-one optimization, the traveling salesperson problem, linear programming, convex programming, etc. In what follows problem class means only an
infinite set of problems.
One key step in the solution of (24.6) was that the problem was divided into
subproblems and even the subproblems were divided into further subproblems, and
so on.
The division must be carried out in a way such that the subproblems belong
to the same problem class. By fixing the value of a variable the knapsack problem
just becomes another knapsack problem of lesser dimension. The same is true for
almost all optimization problems, i.e. a restriction on the value of a single variable
(introducing either a lower bound, or upper bound, or an exact value) creates a new
problem in the same class. But restricting a single variable is not the only possible
way to divide a problem into subproblems. Sometimes special constraints on a set
of variables may have sense. For example it is easy to see from the first constraint
of (24.19) that at most two out of the variables x1 , x3 , and x5 can be 1. Thus it is
possible to divide it into two subproblems by introducing the new constraint which
is either x1 + x3 + x5 = 2, or x1 + x3 + x5 1. The resulted problems are still in the
class of binary optimization. The same does not work in the case of the knapsack
problem as it must have only one constraint, i.e. if a second inequality is added to
1267
the problem then the new problem is out of the class of the knapsack problems.
The division of the problem into subproblems means that the set of feasible
solutions is divided into subsets not excluding the case that one or more of the
subsets turn out to be empty set. R5 and R6 gave such an example.
Another important feature is summarized in formula (24.12). It says that the
upper bound of the optimal value obtained from the undivided problem is at most
as accurate as the upper bound obtained from the divided problems.
Finally, the further investigation of the subset F1 could be abandoned as R1
was not giving a higher upper bound as the objective function value of the optimal
solution on R3 which lies at the same time in F3 , too, i.e. the subproblem defined
on the set F3 was solved.
The definition of the relaxation of a problem class reflects the fact that relaxation and defining subproblems (branching) are not completely independent. In the
definition it is assumed that the branching method is a priori given.
Definition 24.5 Let P and Q be two problem classes. Class Q is a relaxation of
class P if there is a map R with the following properties.
1. R maps the problems of P into the problems of Q.
3. If (P) is divided into (P1 ),. . .,(Pk ) and these problems are mapped into
(Q1 ),. . .,(Qk ), then the inequality
(Q) max{(Q1 ), . . . , (Qk )}
(24.27)
holds.
4. There are infinite many pairs (P), (Q) such that an optimal solution of (Q) is
also optimal in (P).
1268
The algorithm can stop if all subsets (branches) are fathomed. If nonlinear programming problems are solved by B&B then the finiteness of the algorithm cannot be
always guaranteed.
In a typical iteration the algorithm executes the following steps.
It selects a leaf of the branching tree, i.e. a subproblem not divided yet into
further subproblems.
The subproblem is divided into further subproblems (branches) and their relaxations are defined.
Each new relaxed subproblem is solved and checked if it belongs to one of the
above-mentioned cases. If so then it is fathomed and no further investigation is
needed. If not then it must be stored for further branching.
If a new feasible solution is found which is better than the so far best one, then
even stored branches having an upper bound less than the value of the new best
feasible solution can be deleted without further investigation.
In what follows it is supposed that the relaxation satisfies definition 24.5.
The original problem to be solved is
max f (x)
(24.14)
g(x) b
(24.15)
x X.
(24.16)
(24.28)
p
[
l=1
Ft+l .
1269
Let Rk and Rt+1 ,. . . ,Rt+p be the feasible sets of the relaxed subproblems. To satisfy
the requirement (24.27) of definition 24.5 it is assumed that
Rk
p
[
l=1
Rt+l .
The subproblems are identified by their sets of feasible solutions. The unfathomed subproblems are stored in a list. The algorithm selects a subproblem from the
list for further branching. In the formal description of the general frame of B&B the
following notations are used.
z
L
t
F0
r
p(r)
xi
zi
L + Fi
L Fi
the
the
the
the
the
the
the
the
the
the
z
L { F0 }
t 0
while L =
6
do determination of r
L L Fr
determination of p(r)
determination of branching Fr R1 ... Rp(r)
for i 1 to p(r) do
Ft+i Fr Ri
calculation of (xt+i , zt+i )
if zt+i > z
then if xt+i F
then z zt+i
else L L + Ft+i
t t + p(r)
for i 1 to t do
if zi z
then L L Fi
return
1270
The operations in rows 5, 7, 8, and 11 depend on the particular problem class and
on the skills of the designer of the algorithm. The relaxed subproblem is solved in
row 11. A detailed example is discussed in the next section. The handling of the list
needs also careful consideration. Section 24.4 is devoted to this topic.
The loop in rows 17 and 18 can be executed in an implicit way. If the selected
subproblem in row 5 has a low upper bound, i.e. zr z then the subproblem is
fathomed and a new subproblem is selected.
However the most important issue is the number of required operations including the finiteness of the algorithm. The method is not necessarily finite. Especially
nonlinear programming has infinite versions of it. Infinite loop may occur even in the
case if the number of the feasible solutions is finite. The problem can be caused by
an incautious branching procedure. A branch can belong to an empty set. Assume
that that the branching procedure generates subsets from Fr such that one of the
subsets Ft+1 , ..., Ft+p(r) is equal to Fr and the other ones are empty sets. Thus there
is an index i such that
Ft+i = Fr , Ft+1 = ... = Ft+i1 = Ft+i+1 = ... = Ft+p(r) = .
(24.29)
If the same situation is repeated at the branching of Ft+i then an infinite loop is
possible.
Assume that a zero-one optimization problem of n variables is solved by B&B
and the branching is made always according to the two values of a free variable.
Generally it is not known that how large is the number of the feasible solutions.
There are at most 2n feasible solutions as it is the number of the zero-one vectors.
After the first branching there are at most 2n1 feasible solutions in the two first
level leaves, each. This number is halved with each branching, i.e. in a branch on
level k there are at most 2nk feasible solutions. It implies that on level n there is
at most 2nn = 20 = 1 feasible solution. As a matter of fact on that level there is
exactly 1 zero-one vector and it is possible to decide whether or not it is feasible.
Hence after generating all branches on level n the problem can be solved. This idea
is generalized in the following finiteness theorem. While formulating the statement
the previous notations are used.
Theorem 24.6 Assume that
(i) The set F is finite.
(ii) There is a finite set U such that the following conditions are satisfied. If a subset
F is generated in the course of the branch and bound method then there is a subset
Furthermore if the branching procedure creates the cover
U of U such that F U.
(24.30)
(iii) If a set U belonging to set F has only a single element then the relaxed subproblem solves the unrelaxed subproblem as well.
1271
1272
possible. In both of the cases Condition (iii) of the theorem is fulfilled in a natural
way.
Exercises
24.2-1 Decide if the Knapsack Problem can be a relaxation of the Linear Binary
Optimization Problem in the sense of Definition 24.5. Explain your solution regardless that your answer is YES or NO.
(24.31)
Ax = b
(24.32)
j I : xj gj
(24.33)
xj 0 j = 1, . . . , n
(24.34)
j I : xj is integer ,
(24.35)
1273
one another in an equivalent way. Even in the numerical example discussed below
inequality form is used.
First a numerical example is analyzed. The course of the method is discussed
from geometric point of view. Thus some technical details remain concealed. Next
simplex method and related topics are discussed. All technical details can be described only in the possession of them. Finally some strategic points of the algorithm
are analyzed.
x0
2x1
3x1
3x1
+ x2
5x2
0
+ 5x2 15
x1 , x2 0
x1 , x2 is integer .
(24.36)
To obtain a relaxation the integrality constraints are omitted from the problem.
Thus a linear programming problem of two variables is obtained.
1274
4
2x1 + x2 =
13
2
A
3
2
B
Feasible region
Figure 24.2 The geometry of linear programming relaxation of Problem (24.36) including the
feasible region (triangle OAB), the optimal solution (x1 = 2.5, x2 = 1.5), and the optimal level of
.
the objective function represented by the line 2x1 + x2 = 13
2
1275
Branch 6
A
Branch 5 I
6
F
Branch 2
- Branch 3; EMPTY
E
J
B
D
?
Branch 4
Figure 24.3 The geometry of the course of the solution. The co-ordinates of the points are:
O=(0,0), A=(0,3), B=(2.5,1.5), C=(2,1.8), D=(2,1.2), E=( 35 ,2), F=(0,2), G=( 35 ,1), H=(0,1),
I=(1,2.4), and J=(1,2). The feasible regions of the relaxation are as follows. Branch 1: OAB, Branch
2: OACD, Branch 3: empty set, Branch 4: OHG, Branch 5: AEF , Branch 6: AIJF , Branch 7:
empty set (not on the figure). Point J is the optimal solution.
this branch is (1,2). There is a technique which can help to leap over the continuous
optimum. In this case it reaches directly point J, i.e. the optimal integer solution of
the branch as it will be seen in the next section, too. Right now assume that the
integer optimal solution with objective function value 4 is uncovered.
At this stage of the algorithm the only unfathomed branch is Branch 4 with
feasible region OHG. Obviously the optimal solution is point G=( 53 ,1). Its objective
function value is 13
3 . Thus it cannot contain a better feasible solution than the known
(1,2). Hence the algorithm is finished.
1276
6 1/2
x1 2
x1 3
7/10
5 4/5
x2 1
x2 2
4/5
7/15
4 1/3
5 1/3
x1 1
x1 = 2
4/3
x1 = 1
x2 = 2
solution
Figure 24.4 The course of the solution of Problem (24.36). The upper numbers in the circuits are
explained in subsection 24.3.2. They are the corrections of the previous bounds obtained from the
first pivoting step of the simplex method. The lower numbers are the (continuous) upper bounds
obtained in the branch.
further consequences are drawn from the current equivalent form of the equations.
If there are inequalities in the problem then they are reformulated by introducing
nonnegative slack variables. E.g. in case of LP-relaxation of Problem (24.36) the
1277
x0
2x1 + x2
3x1 5x2
3x1 + 5x2
x1 , x2 x3 , x4
+ 0x3
+ x3
+ 0x3
0.
+
+
+
0x4
0x4
x4
=
=
0
15
(24.37)
Notice that all variables appear in all equations including the objective function,
but it is allowed that some coefficients are zeros. The current version (24.37) can be
considered as a form where the variables x3 and x4 are expressed by x1 and x2 and
the expression is substituted into the objective function. If x1 = x2 = 0 then x3 = 0
and x4 = 15, thus the solution is feasible. Notice that the value of the objective
function is 0 and if it is possible to increase the value of any of x1 and x2 and
still getting a feasible solution then a better feasible solution is obtained. It is true,
because the method uses equivalent forms of the objective function. The method
obtains better feasible solution by pivoting. Let x1 and x2 be the two expressed
variables. Skipping some pivot steps the equivalent form of (24.37) is
max
x0
0x1
0x2
7
30 x3
13
30 x4
13
2
x1
0x2
1
6 x3
1
6 x4
5
2
1
x3
0x1 + x2 10
x1 , x2 x3 , x4 0 .
1
10 x4
3
2
(24.38)
(24.39)
(24.40)
x 0,
(24.41)
where A is an m n matrix, c and x are n-dimensional vectors, and b is an mdimensional vector. According to the assumption that all equations are independent,
A has m linearly independent columns. They form a basis of the m-dimensional
linear space. They also form an m m invertible submatrix. It is denoted by B.
The inverse of B is B1 . Matrix A is partitioned into the basic and non-basic parts:
1278
(24.42)
(24.43)
(24.44)
1279
Definition 24.8 A basic solution is OPTIMAL if it is both primal and dual feasible.
It is known from the theory of linear programming that among the optimal
solutions there is always at least one basic solution. To prove this statement is
beyond the scope of the chapter.
In Problem (24.37)
2
1
3 5 1 0
0
A=
b=
c=
0 .
3
5 0 1
15
0
0
1
cB =
2
1
Hence
cTB B1
1
b=
30
5 5
3 3
1
= (2, 1)
30
0
15
5 5
3 3
75/30
45/30
7 13
,
30 30
5/2
3/2
, B1 N = B1 .
1280
negative non-basic variables including the objective function variable x0 and the
non-basic variables. For the latter ones the trivial
xj = (xj )
equation is included. For example the dual simplex tableau for (24.37) is provided
that the basic variables are x1 and x2 (see (24.38))
variable
x0
x1
x2
x3
x4
constant
x3
13/2
7/30
5/2
1/6
3/2 1/10
0
1
0
0
x4
13/30
1/6
1/10
0
1
Generally speaking the potentially non-zero coefficients of the objective function are
in the first row, the constant terms are in the first column and all other coefficients
are in the inside of the tableau. The order of the rows is never changed. On the
other hand a variable which left the basis immediately has a column instead of that
variable which entered the basis.
The elements of the dual simplex tableau are denoted by djk where k = 0 refers
to the constant term of the equation of variable xj and otherwise k IN and djk is
the coefficient of the non-basic variable xk in the expression of the variable xj . As
x0 is the objective function variable d0k is the coefficient of xk in the equivalent
form (24.42) of the objective function. The dual simplex tableau can be seen on
Figure 24.5.
Notice that dual feasibility means that there are nonnegative elements in the
first row of the tableau with the potential exception of its first element, i.e. with the
potential exception of the objective function value.
Without giving the proof of its correctness the pivoting procedure is this. The
aim of the pivoting is to eliminate the primal infeasibility, i.e. the negative values
of the variables, with the potential exception of the objective function value, i.e.
the elimination of the negative terms from the first column. Instead of that basic
variable xp a non-basic one will be expressed from the equation such that the negative
constant term becomes zero and the value of the new basic variable, i.e. the value
of xk , becomes positive. It is easy to see that this requirement can be satisfied only
if the new expressed variable, say xk , has a negative coefficient in the equation, i.e.
dpk < 0. After the change of the basis the row of xp must become a negative unit
vector as xp became a non-basic variable, thus its expression is
xp = (xp ) .
(24.45)
The transformation of the tableau consists of the transformations of the columns such
that the form (24.45) of the row of xp is generated. The position of the (-1) in the
row is the crossing of the row of xp and the column belonging to xk before pivoting.
1281
d00
d0k+
dj0
djk
the coefficient of
xk
in the equation of
xj
xj
This column becomes the column of xp . There is another requirement claiming that
the dual feasibility must hold on. Let dj be the column of the non-basic variable xj
including d0 as the column of the constant terms. Then the formulae of the column
transformation are the followings where j is either zero or the index of a non-basic
variable different from k:
dnew
= dold
j
j
dold
pj
dold
pk
dold
k
(24.46)
and
dnew
=
p
1 old
dk .
dold
pk
To maintain dual feasibility means that after the change of the basis the relation
new
dnew
0 must hold for all non-basic indices, i.e. for all j IN
. It follows from
0j
(24.46) that k must be chosen such that
k = argmax
dold
0j
dold
pj
dold
pj
<0
(24.47)
In the course of the branch method in the optimization of the relaxed subproblems
dual simplex method can save a lot of computation. On the other hand what is used
in the description of the method, is only the effect of one pivoting on the value of
1282
dold
p0 old
d0k .
dold
pk
old
old
Notice that dold
p0 , dpk < 0 and d0k 0. Hence the objective function value decreases
by the nonnegative value
dold
p0 old
d0k .
dold
pk
(24.48)
(24.49)
1
5 1
+ (x3 ) + (x4 ).
2 6
6
Hence
1 1
1
x5 = (x3 ) (x4 ) .
2 6
6
(24.50)
(24.49) is added to the problem in the form (24.50). Then the dual simplex tableau
is
variable
x0
x1
x2
x3
x4
x5
constant
x3
13/2
7/30
5/2
1/6
3/2 1/10
0
1
0
0
1/2
1/6
x4
13/30
1/6
1/10
0
1
1/6
Only x5 has a negative value, thus the first pivoting must be done in its row. Rule
(24.47) selects x3 for entering the basis. Then after the first pivot step the value of
the objective function decreases by
12
7
7
=
.
30
10
16
If the optimal solution of the relaxed problem is not reached after the first pivoting
variable
x0
x1
x2
x3
x4
x6
constant
x3
13/2
7/30
5/2
1/6
3/2 1/10
0
1
0
0
1/2
1/6
1283
x4
13/30
1/6
1/10
0
1
1/6
then further decrease is possible. But decrease of 0.7 is sure compared to the previous
upper bound.
Another important property of the cuts is that if it has no negative coefficient
in the form how it is added to the simplex tableau then there is no negative pivot
element, i.e. the relaxed problem is infeasible, i.e. the branch is empty. For example
the cut x1 3 leading to an empty branch is added to the problem in the form
x1 x6 = 3
where x6 is also a nonnegative variable. Substituting the value of x1 again the
equation is transformed to
1
1 1
x6 = + (x3 ) + (x4 ) .
2 6
6
Hence the simplex tableau is obtained. There is a negative value at the crossing point
of the first column and the row of x6 . But it is not possible to choose a pivot element
in that row, as there is no negative element of the row. It means that feasibility can
not be achieved, i.e. that branch is infeasible and thus it is completely fathomed.
(24.52)
1284
Thus
s = fp +
(dpj )(xj )
(24.53)
jIN
is a nonnegative variable and row (24.53) can be added to the dual simplex tableau.
It will contain the only negative element in the first column that is the optimization
in the lower branch starts by pivoting in this row. (24.53) can be reformulated
according to the signs of the coefficients as
X
X
s = fp +
(dpj )(xj ) .
(24.54)
(dpj )(xj ) +
jJ +
jJ
The pivot element must be negative, thus it is one of dpj s with j J + . Hence
the first decrease (24.48) of the objective function is
d0j
(24.55)
fp | j J + .
Plp = min
dpj
In the upper branch the inequality (24.52) is equivalent to
X
dpj (xj ) 1 .
xp bdp0 c = fp +
jIN
Again the nonnegative slack variable s should be introduced. Then the row which
can be added to the simplex tableau is
X
X
s = (fp 1) +
dpj (xj ) .
(24.56)
dpj (xj ) +
jJ +
jJ
Thus the pivot element must belong to one of the indices j J giving the value
d0j
.
(24.57)
(1 fp ) | j J
Pup = min
dpj
1285
Let z be the upper bound on the original branch obtained by linear programming.
Then the quantities Plp and Pup define the upper bounds of the objective functions
z Plp and z Pup on the lower and upper subbranches, respectively. They are not
substituting complete optimization in the subbranches. On the other hand they are
easily computable and can give some orientation to the selection of the next branch
for further investigation (see below).
The quantities Plp and Pup can be improved, i.e. increased. The claim that the
variable s defined in (24.54) is nonnegative implies that
X
fp
dpj (xj ) .
(24.58)
jJ +
(24.59)
jJ
jJ
fp
(dpj )(xj ) .
1 fp
(24.60)
dpj (xj ) +
jJ +
jJ
fp
(dpj )(xj ) .
1 fp
(24.61)
Notice that (24.61) not the sum of the two inequalities. The same negative number
stands on the left-hand side of both inequalities and is greater or equal than the
right-hand side. Then both right-hand sides must have negative value. Hence the
left-hand side is greater than their sum.
0
The same technique is applied to the variable xp instead of xp with
0
xp = xp +
j xj ,
jIIN
0
jIN \I
Obviously xp is an integer variable as well and its current value if the non-basic
1286
variables are fixed to zero is equal to the current value of dp0 . Thus it is possible to
0
define the new branches according to the values of xp . Then the inequality of type
0
(24.61) which is defined by xp , has the form
fp
j I IN
dpj j 0
(dpj j )(xj ) +
j I IN
dpj j < 0
dpj (xj ) +
fp
(j dpj )(xj )
1 fp
j IN \ I
dpj < 0
j IN \ I
dpj > 0
0
fp
(dpj )(xj ) .
1 fp
Plp = min{a, b} ,
where
a = min
and
d0j
fp | j I IN , dpj j > 0
dpj j
b = min
further
d0j
fp | j IN \ I, dpj > 0
dpj
0
Pup = min{c, d} ,
where
c = min
and
d0j (1 fp )2
| j I IN , dpj j < 0
(j dpj )fp
d0j (1 fp )2
| j IN \ I, dpj < 0 .
d = min
fp dpj
The values of the integers must be selected in a way that the absolute values of the
coefficients are as small as possible, because the inequality cuts the greatest possible
part of the polyhedral set of the continuous relaxation in this way. (See Exercise
24.3-1.) To do so the absolute value of dpj j must be small. Depending on its sign
it can be either fj , or fj 1, where fj is the fractional part of dpj , i.e. fj = dpj bdpj c.
Assume that fj > 0. If dpj + j = fj then the term
d0j fp
fj
(24.62)
is present among the terms of the minimum of the lower branch. If dpj > 0 then it
obviously is at least as great as the term
d0j fp
,
dpj
1287
which appears in Plp , i.e. in the right-hand side of (24.55). If dpj < 0 then there is
a term
d0j (fp 1)
(24.63)
dpj
is in the right-hand side of (24.57) . doj is a common multiplier in the terms (24.62)
and (24.63), therefore it can be disregarded when the terms are compared. Under
the assumption that fj fp it will be shown that
fp 1
fp
.
fj
dpj
fj
< 0.
fp
is present among the terms of the minimum of the upper branch. In a similar way
it can be shown that if fj > fp then it is always at least as great as the term
d0j (fj 1)
dpj
which is present in the original formula (24.57).
Thus the rule of the choice of the integers j s is
bdpj c if fj fp ,
j =
ddpj e if fj > fp
(24.64)
1288
gj + 1
j=1
leaves.
The drawback of the strategy is that the flexibility of the enumeration is lost.
The flexibility is one of the the main advantage of B&B in solving pure integer
problems.
If the algorithm skips from one branch to another branch far away from the
first one then it is necessary to reconstruct the second branch including not only the
branching restrictions on the variables but any other information which is necessary
to the bounding procedure. In the particular algorithm the procedure determining
the bound is linear programming, more precisely a simplex method. If a new restriction as a linear constraint is added to the problem which cuts off the previous
optimal solution, then the simplex tableau looses the primal feasibility but the dual
feasibility still holds. Thus a dual simplex method can immediately start without
carrying out a first phase. (The purpose of the first phase which itself is a complete
optimization, is to find a primal or dual feasible basic solution depending for primal
or dual simplex method, respectively.) If the B&B method skips to another branch
then to get the new bound by the simplex method will require the execution of the
first phase, too.
A further consideration concerns to the construction of feasible solutions. Generally speaking if good feasible solutions are known in the early phase of the algorithm
then the whole procedure can be accelerated. In the current algorithm branching has
a "constructive nature". It means that the value of the branching variable becomes
more restricted therefore it either becomes integer in the further optimal solutions
in the subbranches of the branch, or it will be restricted further on. Thus it can be
expected that sooner or later a complete integer solution is constructed which might
be feasible or infeasible. On the other hand if the algorithm skips frequently in the
phase when no feasible solution is known then it is very likely that any construction
will be finished only later, i.e. the acceleration will not take place, because of the
lack of feasible solution.
If a LIFO type step is to be done and the branching variable is xp then the lower
branch should be chosen in step 7 of the algorithm, if
zr Plp zr Pup , i.e. Plp Pup .
1289
jI
zr (z0 z) P
min{fj , 1 fj }
0
0
jI min{fj , 1 fj }
(24.65)
is a natural choice.
1290
(24.66)
(24.67)
(24.68)
(24.69)
(24.70)
p:
p:
p:
p:
p:
(24.71)
1291
is the upper bound in the worse one of the two subbranches. The interest of the
algorithm is that it will be fathomed without explicit investigation, i.e. the bound
of this subbranch will be less than the objective function value of an integer feasible
solution. Thus it is good if (24.71) is as small as possible. Hence (24.69) is a good
strategy and (24.67) is not. Finally, (24.70) tries to separate the good and low quality
feasible solutions. The conclusion is that (24.69) and (24.70) are the two best ones
and (24.68) is still applicable, but (24.66) and (24.67) must be avoided.
Priority rule
Assume that the numerical problem (24.31)-(24.35) is the model of an industrial
problem. Then the final user is the manager and/or expert who must apply the
decisions coded into the optimal solution. The expert may know that which factors (decisions) are the most critical ones from the point of view of the managerial
problem and the industrial system. The variables belonging to these factors may
have a special importance. Therefore it has sense if the user may define a priority
order of variables. Then the first non-integer variable of the order can be selected as
branching variable.
x0
2x1
3x1
3x1
+ x2
5x2
0
+ 5x2 15
x1 , x2 0
x1 , x2 is integer .
(24.36)
has been analyzed from geometric point of view in subsection 24.3.1. Now the abovementioned methods will be applied and the same course of solution will be obtained.
After introducing the slack variables x3 and x4 the (primal) simplex method
gives the equivalent form (24.38) of the equations and the objective function:
max
x0
0x1
0x2
7
30 x3
13
30 x4
13
2
x1
0x2
1
6 x3
1
6 x4
5
2
1
x3
0x1 +
x2 10
x1 , x2 x3 , x4 0 .
1
10 x4
3
2
13/2
5/2
3/2
0
0
5
2
and x2 =
x3
7/30
1/6
1/10
1
0
x4
13/30
1/6
.
1/10
0
1
3
2.
(24.38)
1292
The first two branches were defined by the inequalities x1 2 and x1 3. The
second one is an empty branch. The algebraic evidence of this fact is that there is
no negative element in the row of x1 , thus it is not possible to find a pivot element
for the dual simplex method after introducing the cut. Now it will be shown in a
detailed way. Let s be the appropriate slack variable, i.e. the cut introduced in the
form
x1 s = 3, s 0 .
The new variable s must be expressed by the non-basic variables, i.e. by x3 and x4 :
3 = x1 s =
5
1
1
x3 x4 s .
2
6
6
Hence
1
1
1
+ (x3 ) + (x4 ) .
2
6
6
When this row is added to the dual simplex tableaux, it is the only row having a
negative constant term, but there is no negative coefficient of any non-basic variable
proving that the problem is infeasible. Notice that the sign of a coefficient is an
immediate consequence of the sign of the coefficient in the row of x1 , i.e. it is not
necessary to carry out the calculation of the row of s and it is possible to conclude
immediately that the branch is empty.
The fractional part f1 equals 21 . Hence the fast bound (24.55) of the lower branch
defined by x1 2 is
7 13
7
1
30
=
min 30
.
1 , 1
2
10
6
6
s =
It means that the fast upper bound in the branch is 13/2-7/10=5.8. The bound can
be rounded down to 5 as the objective function is integer valued.
Let x5 be the slack variable of the cut x1 2, i.e. x1 + x5 = 2. Hence
1
1
1
(x3 )
(x4 ) .
x5 =
2
6
6
If it is added to the simplex tableaux then the pivot element is d53 . After the first
pivot step the tableaux becomes optimal. It is
x0
x1
x2
x3
x4
x5
29/5
2
9/5
3
0
0
x5 x4
7/5 1/5
1
0
3/5 1/5 .
6
1
0
1
1
0
(24.72)
Notice that the optimal value is 5.8, i.e. exactly the same what was provided by
the fast bound. The reason is that the fast bound gives the value of the objective
function after the first pivot step. In the current case the first pivot step immediately
1293
4
1 7/5
7
4 1/5
= , Pu2 =
=
.
5 1/5
5
5 3/5
15
Thus the continuous upper bound is higher on the upper branch, therefore it is
selected first for further branching.
The constraint
x2 x6 = 2, x6 0
are added to the problem. By using the current simplex tableaux the equation
x6 =
3
1
1
(x5 ) + (x4 )
5
5
5
is obtained. It becomes the last row of the simplex tableaux. In the first pivoting
step x6 enters the basis and x5 leaves it. The first tableaux is immediately optimal
and it is
x0
x1
x2
x3
x4
x5
x6
16/3
5/3
2
5
0
1/3
0
x6
7/3
5/3
1
10
0
5/3
1
x4
2/3
1/3
0
1
1
1/3
0
Here both x1 and x5 are integer variables having non-integer values. Thus branching
is possible according to both of them. Notice that the upper branch is empty in the
case of x1 , while the lower branch of x5 is empty as well. x1 is selected for branching
as it is the variable of the original problem. Now
2
14
7/3 2/3
Pl1 = min
=
,
.
3
5/3 1/3
15
On the other hand the bound can be improved in accordance with (24.64) as d16 > 1,
i.e. the coefficient of x6 may be 2/3 instead of 5/3. It means that the inequality
x1 + x6 1
is claimed instead of
x1 1 .
It is transferred to the form
x1 + x6 + x7 = 1 .
1294
Hence
1
2 2
x7 = (x6 ) (x4 ) .
3 3
3
The improved fast bound is obtained from
0
4
2
7
,2 = .
Pl1 = min
3
2
3
It means that the objective function can not be greater than 4. After the first pivoting
the simplex tableau becomes
x0
x1
x2
x3
x4
x5
x6
x7
4
1
2
7
2
1
0
0
x6 x7
1
2
1
1
1
0
8
3
2
3
1
1
1
0
0
1
13/3
5/3
1
5
5
1/3
0
x3
x6
2/3 13/3
1/3
5/3
0
1
1
0
1
10
1/3 5/3
0
1
Although the optimal solution is not integer, the branch is fathomed as the upper
bound is under 5, i.e. the branch can not contain a feasible solution better than the
current best known integer solution. Thus the method is finished.
Exercises
24.3-1 Show that the rule of the choice of the integers j (24.64) is not necessarily
optimal from the point of view of the object function. (Hint. Assume that variable
xj enters into the basis in the first pivoting. Compare the changes in the objective
function value if its coefficient is fj and fj 1, respectively.)
1295
the
the
the
the
parent branch, i.e. the branch from which it was generated directly,
bound of the objective function on the branch,
index of the branching variable,
branch defining constraint of the branching variable.
record Branch
begin
Parent
Bound
Variable
Value
Decomposition
Descendant
suc
end;
:
:
:
:
:
:
:
Branch;
integer;
integer;
integer;
Boolean;
Boolean;
Branch
The value of the Parent attribute is none if and only if the branch is the initial
branch, i.e. the complete problem. It is the root of the B&B tree. The reconstruction
1296
of the constraints defining the particular branch is the simplest if it is supposed that
the branches are defined by the fixing of a free variable. Assume that Node is a
variable of type Branch. At the beginning its value is the branch to be reconstructed.
Then the algorithm of the reconstruction is as follows.
Branch-Reconstruction
1 while Node 6= none
2
do x[Node.Variable] Node.Value;
3
...
4
Node Node.Parent;
5 return Node
The value of a previously fixed variable is set to the appropriate value in row
2. Further operations are possible (row 3). Node becomes its own parent branch in
row 4. If it is none then the root is passed and all fixings are done.
Sometimes it is necessary to execute some operations on all elements of the
list L. The suc attribute of the branches point to the next element of the list.
The last element has no next element, therefore the value of suc is none in this
case. The procedure of changing all elements is somewhat similar to the Branch
Reconstruction procedure. The head of the list L is Tree, i.e. the first element of
the list is Tree.suc.
B&B-List
1 Node Tree.suc
2 while Node6=none
3
...
4
Node Node.suc
5 return Node
The loop runs until there is no next element. The necessary operations are
executed in row 3. The variable Node becomes the next element of the list in row
4. To insert a new branch into the list is easy. Assume that it is NewNode of type
Branch and it is to be inserted after Node which is in the list. Then the necessary
two commands are:
NewNode.suc Node.suc
Node.suc NewNode
If the branches are not stored as objects but they are described in long arrays
then the use of attribute suc is superflous and instead of the procedure B&B List
a for loop can be applied.
The greatest technical problem of B&B from computer science point of view
is memory management. Because branches are created in enormous large quantity
the fathomed branches must be deleted from the list time to time and the memory
occupied by them must be freed. It is a kind of garbage collection. It can be done in
three main steps. In the first one value false is assigned to the attribute Descendant
1297
of all elements of the list. In the second main step an attribute Descendant is changed
to true if and only if the branch has unfathomed descendant(s). In the third step
the unnecessary branches are deleted. It is assumed that there is a procedure Out
which gets the branch to be deleted as a parameter and deletes it and frees the part
of the memory.
Garbage-Collection
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Node Tree.suc
while Node 6= none
Node.Descendant False
Node Node.suc
Node Tree.suc
while Node 6= none
do if not Node.Decomposition and Node.Bound > z
then Pont Node.Parent
while Pont 6= none do
Pont.Descendant True
Pont Pont.Parent
Node Node.suc
Node Tree.suc
while Node 6= none do
Pont Node.suc
if (not Node.Descendant and Node.Decomposition) or Node.Bound z
then Out(Node)
Node Pont
return
1298
24.5.2. Preprocessing
Preprocessing means to obtain information on variables and constraints based on
algebraic constraints and integrality.
For example if the two constraints of problem (24.36) are summed up then the
inequality
6x1 15
is obtained implying that x1 2.
Let
gi (x) bi
(24.73)
be one of the constraints of problem (24.14)-(24.16). Many tests can be based on the
following two easy observations:
1. If the maximal value of the left-hand side of (24.73) of x X is not greater than
the right-hand side of (24.73) then the constraint is redundant.
2. If the minimal value of the left-hand side of (24.73) if x X is greater than the
right-hand side of (24.73) then it is not possible to satisfy the constraint, i.e. the
problem (24.14)-(24.16) has no feasible solution.
If under some further restriction the second observation is true then the restriction
in question can be excluded. A typical example is that certain variables are supposed
to have maximal/minimal possible value. In this way it is possible to fix a variable
or decrease its range.
Lagrange relaxation can be used to fix some variables, too. Assume that the
optimal value of Problem (24.22) and (24.16) is (L( | xj = )) under the further
condition that xj must take the value . If z is the objective function value of a
known feasible solution and z > (L( | xj = )) then xj can not take value .
Further methods are assuming that the LP relaxation of the problem is solved and
based on optimal dual prices try to fix the values of variables.
1299
x1 + x2 3,
x1 1,
x1 x2 0 .
Under the conditions of the definition the integer hull is a polyhedral set, too.
It is a non-trivial statement and in the case of irrational coefficients it can be not
true. If the integer hull is known, i.e. a set of linear inequalities defining exactly the
integer hull polyhedral set is known, then the integer programming problem can be
reduced to a linear programming problem. Thus problem (24.36) is equivalent to the
problem
max
x0
2x1
x1
x1
x1
x1
+ x2
+ x2
x2
0
3
1
0.
(24.74)
As the linear programming problem easier to solve than the integer programming
problem, one may think that it worth to carry out this reduction. It is not completely
true. First of all the number of the linear constraint can be extremely high. Thus
generating all constraints of the integer hull can be more difficult than the solution
of the original problem. Further on the constraints determining the shape of the
integer hull on the side opposite to the optimal solution are not contributing to the
finding of the optimal solution. For example the optimal solution of (24.74) will not
change if the first constraint is deleted and it is allowed both x1 and x2 may take
negative values.
On the other hand the first general integer programming method is the cutting
plane method of Gomory. Its main tool is the cut which is based on the observation
that possible to determine linear inequalities such that they cut the non-integer
optimal solution of the current LP relaxation, but they do not cut any integer feasible
solution. A systematic generation of cuts leads to a finite algorithm which finds an
optimal solution and proves its optimality if optimal solution exist, otherwise it
proves the non-existence of the optimal solution. From geometrical point of view the
result of the introducing of the cuts is that the shape of the polyhedral set of the last
LP relaxation is very similar to the integer hull in the neighborhood of the optimal
solution.
There is the generalization of Gomorys cut called Chvtal (or Chvtal-Gomory)
cut. If the two inequalities of (24.36) are summed such that both have weight 61 then
the constraint
x1 2.5
1300
(24.75)
5
8
x1
1
8
15
8
implying
x1 1.
Finally the integer hull is obtained. In general the idea is as follows. Assume that a
polyhedral set is defined by the linear inequality system
Ax b .
(24.76)
value. Then
yT Ax byT bc
is a valid cut, i.e. all integer points of the polyhedral set satisfy it. As a matter of
fact it can be proven that a systematic application of the method creates a complete
description of the integer hull after finite many steps.
The example shows that Gomory and Chvtal cuts can help to solve a problem.
On the other hand they can be incorporated in a B&B frame easily. But in the very
general case it is hopeless to generate all effective cuts of this type.
The situation is significantly different in the case of many combinatorial problems. There are many theoretical results known on the type of the facet defining
constraints of special polyhedral sets. Here only one example is discussed. It is the
Traveling Salesperson Problem (TSP). A salesman must visit some cities and at
the end of the tour he must return to his home city. The problem is to find a tour
with minimal possible length. TSP has many applications including cases when the
"cities" are products or other objects and the distance among them doesnt satisfy
the properties of the geometric distances, i.e. symmetry and triangle inequality may
be violated.
1301
The first exact mathematical formulation of the problem is the so-called DantzigFulkerson-Johnson (DFJ) model. DFJ is still the basis of the numerical solutions.
Assume that the number of cities is n. Let dij the distance of the route from city i
to city j (1 i, j n, i 6= j). DFJ uses the variables xij such that
1 if the salesman travel from city i to city j
xij =
0 otherwise
The objective function is the minimization on the total travel length:
min
n X
X
dij xij .
(24.77)
i=1 i6=j
The set of the constraints consists of three parts. The meaning of the first part is
that the salesman must travel from each city to another city exactly once:
n
X
xij = 1 i = 1, . . . , n .
(24.78)
j=1,j6=i
The second part is very similar. It claims that the salesman must arrive to each city
from somewhere else again exactly once:
n
X
xij = 1 j = 1, . . . , n .
(24.79)
i=1,i6=j
Constraints (24.78) and (24.79) are the constraints of an assignment problem. Taking
into account that the variables must be binary Problem (24.77)-(24.79) is really an
assignment problem. They dont exclude solutions consisting of several smaller tours.
For example if n = 6 and x12 = x23 = x31 = 1 and x45 = x56 = x64 = 1 then all
other variables must be zero. The solution consists of two smaller tours. The first
one visits only cities 1, 2, and 3, the second one goes through the cities 4, 5, and 6.
The small tours are called subtours in the language of the theory of TSP.
Thus further constraints are needed which excludes the subtours. They are called
subtour elimination constraints. There are two kinds of logic how the subtours can
be excluded. The first one claims that in any subset of the cities which has at least
two elements but not the complete set of the cities the number of travels must be
less than the number of elements of the set. The logic can be formalized as follows:
X X
S {1, 2, . . . , n}, 1 |S| n 1 :
xij |S| .
(24.80)
iS jSj6=i
The other logic claims that the salesman must leave all such sets. Let S =
{1, 2, . . . , n} \ S. Then the subtour elimination constraints are the inequalities
S {1, 2, . . . , n}, 1 |S| n 1 :
XX
iS jS
xij 1 .
(24.81)
1302
The numbers of the two types of constraints are equal and exponential. Although
the constraints (24.78)(24.80) or (24.78), (24.79), and (24.81) are satisfied by only
binary vectors being characteristic vectors of complete tours but the polyhedral set
of the LP relaxation is strictly larger than the integer hull.
On the other hand it is clear that it is not possible to claim all of the subtour
elimination constraints in the real practice. What can be done? It is possible to
claim only the violated once. The difficulty is that the optimal solution of the LP
relaxation is a fractional vector in most of the cases and that subtour elimination
constraint must be found which is violated by the fractional solution provided that
such constraint exists as the subtour elimination constraints are necessary to the
description of the integer hull but further constraints are needed, too. Thus it is
possible that there is no violated subtour elimination constraint but the optimal
solution of the LP relaxation is still fractional.
To find a violated subtour elimination constraint is equivalent to the finding
of the absolute minimal cut in the graph which has only the edges having positive
weights in the optimal solution of the relaxed problem. If the value of the absolute
minimal cut is less than 1 in the directed case or less than 2 in the non-directed case
then such a violated constraint exists. The reason can be explained based on the
second logic of the constraints. If the condition is satisfied then the current solution
doesnt leaves at least one of the two sets of the cut in enough number. There are
many effective methods to find the absolute minimal cut.
A general frame of the numerical solution of the TSP is the following. In a B&B
frame the calculation of the lower bound is repeated until a new violated subtour
elimination constraint is obtained, that is the new inequality is added to the relaxed
problem and the LP optimization is carried out again. If all subtour elimination
constraints are satisfied and the optimal solution of the relaxed problem is still noninteger then branching is made according to a fractional valued variable.
The frame is rather general. The violated constraint cuts the previous optimal
solution and reoptimization is needed. Gomory cuts do the same for the general
integer programming problem. In the case of other combinatorial problems special
cuts may work if the description of the integer hull is known.
Thus the general idea of B&C is that a cut is generated until it can be found
and the improvement in the lower bound is great enough. Otherwise branching is
made by a non-integer variable. If the cut generation is made only at the root of the
enumeration tree then the name of the method is Cut and Branch (C&B). If a cut
is generated in a branch then it is locally valid in that branch and in its successors.
The cuts generated at the root are valid globally, i.e. in all branches. In some cases,
e.e. in binary optimization, it is possible to modify it such that it is valid in the
original problem, too.
For practical reasons the type of the generated cut can be restricted. It is the
case in TSP as the subtour elimination constraints can be found relatively easily.
1303
Problems
24-1 Continuous Knapsack Problem
Prove Theorem 24.1. (Hint. Let x be a feasible solution such that there are two
indices, say j and k, such that 1 j < k n and xj < 1, and xk > 0. Show that
the solution can be improved.)
24-2 TSPs relaxation
Decide if the Assignment Problem can be a relaxation of the Traveling Salesperson
Problem in the sense of definition 24.5. Explain your solution regardless that your
answer is YES or NO.
24-3 Infeasibility test
Based on the the second observation of Subsection 24.5.2 develop a test for the
infeasibility of a linear constraint of binary variables.
24-4 Mandatory fixing
Based on the previous problem develop a test for the mandatory fixing of binary
variables satisfying a linear constraint.
Chapter Notes
The principle of B&B first appears in [11]. It solves problems with bounded integer
variables. The fast bounds were introduced in [4] and [15]. A good summary of the
bounds is [7]. To the best knowledge of the author of this chapter the improvement
of the fast bounds appeared first in [16].
B&B can be used as an approximation scheme, too. In that case a branch can
be deleted even in the case if its bound is not greater than the objective function
value of the current best solution plus an allowed error. [10] showed that there are
classes such that the approximate method requires more computation than to solve
the problem optimally. B&B is very suitable for parallel processing. This issue is
discussed in [5].
Based on the theoretical results of [12] a very effective version of B&C method
was developed for pure binary optimization problem by [14] and independently [1].
Especially Egon Balas and his co-authors could achieve a significant progress. Their
method of lifting cuts means that a locally generated cut can be made globally valid
by solving a larger LP problem and modify the cut according to its optimal solution.
1304
The first integer programming method to solve an IP problem with general, i.e.
non-bounded, integer variables is Ralph Gomorys cutting plane method [9]. In a
certain sense it is still the only general method. Strong cuts of integer programming
problems are discussed in [2]. The surrogate constraint (24.18) has been introduced
by [8]. The strength of the inequality depends on the choice of the multipliers i . A
rule of thumb is that the optimal dual variables of the continuous problem give a
strong inequality provided that the original problem is linear.
The DFJ model of TSP appeared in [6]. It was not only an excellent theoretical
result, but is also an enormous computational effort as the capacities and speed of
that time computers were far above the recent ones. One important cut of the TSP
polyhedral set is the so-called comb inequality. The number of edges of a complete
tour is restricted in a special subgraph. The subgraph consists of a subset of cities
called hand and odd number of further subsets of cities intersecting the hand. They
are called teeth and their number must be at least three. Numerical problems of TSP
are exhaustively discussed in [13].
A good summary of Branch and Price is [3].
Bibliography
[1] E. Balas, S. G. Ceria, G. Cornujols. Cutting plane algorithm for mixed 0-1 programs. Mathematical Programming, 58:295324, 1993. 1303
[2] E. Balas, R. G. Jeroslow. Strengthening cuts for mixed integer programs. European Journal
of Operations Research, 4:224234, 1980. 1304
[3] C. Barnhart, E. L. Johnson, G. Nemhauser, M. Savelsbergh, P. Vance. Branch-and-Price:
Column generation for solving huge integer programs. Operations Research, 46:316329, 1998.
1304
[4] E. Beale, R. Small. Mixed integer programming by a branch-and-bound technique. In W. A.
Kalenich (Ed.), Proceedings of IFIP Congress New York, May 1865, 450451 pages, 1965.
Spartan Books. 1303
[5] F. W. Burton, M. Huntbach, G. McKeown, V. Rayward-Smith. Parallelism in branch and
bound algorithms. Technical Reportof Mathematical Algorithms Group-2, Internal Report
CSA/3, University of East Anglia, Norwich, 1983. 1303
[6] G. Dantzig, D. R. Fulkerson, S. Johnson. Solution of a large-scale traveling salesman problem
to optimality. Operations Research, 2:393410, 1954. 1304
[7] J. J. H. Forrest, J. P. H. Hirst, J. Tomlin. Practical solution of large mixed integer programming problems with umpire. Management Science, 20:736773, 1974. 1303
[8] F. Glover. A multiphase-dual algorithm for zero-one integer programming problem. Operations
Research, 13:879919, 1965. 1304
[9] R. E. Gomory. Outline of an algorithm for integer solutions to linear programs. Bulletin of
American Mathematical Society, 64:275278, 1958. 1304
[10] T. Ibaraki. Computational efficiency of approximate branch-and-bound algorithms. Mathematics of Operations Research, 1:287298, 1976. 1303
[11] A. H. Land, A. Doig. An automatic method of solving Discrete Programming problems.
Econometrica, 28:497520, 1960. 1303
[12] L. Lovsz, A. Schrijver. Cones of matrices and set-functions and 0-1 optimization. SIAM
Journal on Optimization, 1:166190, 1991. 1303
[13] G. Reinelt (Ed.). The Traveling Salesman. Lecture Notes in Computer Science. Springer,
2004. 1304
[14] H. D. Sherali, W. P. Adams. A hierarchy of relaxations between the continuous and convex hull
representations for zero-one programming problems. SIAM Journal on Discrete Mathematics,
3:411430, 1990. 1303
[15] J. Tomlin. An improved branch-and-bound method for integer programming. Operations Research, 31:10701075, 1971. 1303
[16] B. Vizvri. Integer Programming. Hungarian. Tanknyvkiad, 1990. 1303
This bibliography is made by HBibTEX. First key of the sorting is the name of the
authors (first author, second author etc.), second key is the year of publication, third
1306
Bibliography
Subject Index
This index uses the following conventions. Numbers are alphabetised as if spelled out; for
example, 2-3-4-tree" is indexed as if were two-three-four-tree". When an entry refers to a place
other than the main text, the page number is followed by a tag: exe for exercise, exa for example,
fig for figure, pr for problem and fn for footnote.
The numbers of pages containing a definition are printed in italic font, e.g.
time complexity, 583 .
A
absolute minimal cut, 1302
Assignment Problem, 1303pr
assignment problem, 1301
B
B&B-List, 1296
basic dual feasible solution, 1278
basic feasible solution, 1278
basic primal feasible solution, 1278
basic solution, 1278
Branch-and-Bound, 1269
Branch and Cut, 1298
Branch and Price method, 1303
branching, 1254
Branch-Reconstruction, 1296
C
Continuous Knapsack Problem, 1303pr
continuous relaxation, 1254
Cut and Branch, 1302
D
dual feasibility, 1277
dual simplex method, 1275, 1279
G
Garbage-Collection, 1297
Gomory cut, 1300, 1302
S
shadow price, 1303
simplex method, 1275
solution (of linear programming problem),
1278
subtour, 1301
subtour elimination constraints, 1301
surrogate constraint, 1261
I
infeasibility test, 1303pr
T
Traveling Salesperson Problem, 1300, 1303pr
F
feasible solution, 1278
Name Index
This index uses the following conventions. If we know the full name of a cited person, then we
print it. If the cited person is not living, and we know the correct data, then we print also the year
of her/his birth and death.
A
Adams, W. P., 1305
B
Balas, E., 1305
Barnhart, Cynthia, 1305
Beale, E. M. L. (19281985), 1305
Burton, F. W., 1305
C
Ceria, S., 1305
Cornujols, G., 1305
D
Dantzig, George Bernard (19142005), 1275,
1301, 1305
Doig, A., 1305
F
Forrest, J. J. H., 1305
Fulkerson, Delbert Ray (19241976), 1301,
1305
G
Glover, F., 1305
Gomory, Ralph E., 1305
H
Hirst, J. P. H., 1305
Huntbach, M. M., 1305
I
Ibaraki, Toshihide, 1305
J
Jeroslaw, R. G., 1305
Johnson, Ellis L., 1305
Johnson, S. M., 1301, 1305
K
Kalenich, W. A., 1305
L
Land, A. H., 1305
Lovsz, Lszl, 1305
M
McKeown, G., 1305
N
Nemhauser, George L., 1305
R
Rayward-Smith, V. J., 1305
Reinelt, Gerhard, 1305
S
Savelsbergh, Martin W. P., 1305
Schrijver, Alexander, 1305
Sherali, H. D., 1305
Small, R. E., 1305
T
Tomlin, J. A., 1305
V
Vance, Pamela H., 1305
Vizvri, Bla, 1305