Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TABLE OF CONTENTS
1. Introduction.....................................................................3
2. Method.............................................................................3
3. Exercises..........................................................................7
1. Introduction
Branch and bound is an algorithm to find optimal solutions to various
optimization problems, especially in combinatorial optimization. It has two
strategies, branch, enumeration of solutions and bound, "prune, probing.
A. H. Land and A. G. Doig proposed the method in 1960 for discrete
programming. It is used for various NP-complete problems such as traveling
salesman problem and the knapsack problem.
2. Method
Method strategy may be defined by:
Elimination by infeasibility
Elimination by quality
-
One can compare the cost of the solutions of the sub problems;
Analogous to quality;
Occurs when the solution of the sub problem is also the solution of the
original problem;
For every interaction, solve one problem relaxed (providing limits) and
generate "children" sub problems;
iii) From the relaxed solution, you choose a variables that do not satisfy
the conditions of integrality for the branch;
iv) Branch: Generate two sub-problems adding limits (restrictions) to the
variable chosen;
v) Bound: known the limits of the problem, one can apply the criteria of
elimination.
S1 is fathomed by infeasibility
S1 is fathomed by quality
7
S1 is fathomed by optimality
3. Exercises
a) Branch and bound
The method can also be solved graphically as the example below:
Find the optimal solution of the following ILP problem
maxX1 + 4X2
X1 + X2 1/2
X1 X2 5/2
2X1 + x2 7
X2 7/2
X1, X2 0, Z
Applying the branch and bound method, and describing each node of the
branch and bound tree.
i)
ii)
The yellow area is the intersection of all the restrictions and the
blue dots are its extreme that through them the optimal value will
be calculated using the objective function.
iii)
After calculating the z value of the objective function for each point,
the optimum value is z = 14 for (0, 7/2), where x1 = 0 and x2 = 7/2.
Thus, this will be the initial value of the tree.
iv)
v)
vi)
To calculate the new points P1, we find the values z = 11.5 for the
point (1/2, 3) and z= 12 for the point (0, 3). The two values are
smaller than the value of P0, and therefore they are eliminated by
quality.
10
vii)
11
The optimal solution for the upper bound is easy to calculate: simply
take the items with the highest density first; when coming across with
the first item that does not fit, use the largest possible fraction of it.
-
11/5= 2.2
X2:
19/2= 9.5
X3:
5/3= 1.67
X4:
6/4= 1.5
Thus, the order of importance is X2, X1, X3 e X4. So, it is possible take X2
and 4/5X1, which define the upper bound as 27.8
For the lower bound we use a greedy heuristic, in which is placed in the
knapsack items with higher profit and lower weight.
13
The order of items follows the order of importance X2, X1, X3, X4.
Therefore, the first item is X2.
The bounds are calculated the same way, but in P1 is not allowed to use
the X2.
The values of the bounds of P1 are outside the range of its father node,
so it was eliminated by infeasibility and therefore continue to calculate
only the branch P2.
14
The P4 node exceeds the capacity of the knapsack, it has a higher weight
and therefore it was eliminated by infeasibility and therefore continue
only calculate the branch of P3.
15