lecture 5

Branch and bound
Integer programming
• Modelling logical constraints and making them linear:
Logical constraints for binary variables
• implication
• disjunction
• exclusive disjunction
– Fixed costs modelling
• Question: Is it OK to just round an LP solution to the
nearest integer to get the solution of the integer
– Branch and bound algorithm (Divide and conquer)
Stepwise linear objective function
Stepwise linear objective function
• Binary variables
• Introducing constraints
where w1 and w2 are binary
Stepwise linear objective function
• A)
if 1 = 0, then 2 = 0
• B)
if 1 = 1 and 2 = 0
• C)
if 1 = 1 and 2 = 1
Branch and bound algorithm - idea
Three decision variables x1 (integer-valued) and two binary variables x2 and x3.
Constraints: 1 ≤ x1 ≤ 3, 0 ≤ x2 ≤ 1, 0 ≤ x3 ≤ 1
Full enumeration tree
Instead of building the whole tree up front, build it successively starting from the
root. Develop only those branches which are most promising at any given step. Most
promising is determined by estimating bounds on the best objective function value
given current information which can be achieved by developing a given node further.
Basic concepts
• Branching
• Bounding
– fathoming
• Prunning
• node – each partial or complete solution
• leaf node – complete solution
• bud node – partial solution feasible or infeasible
• bounding function – estimation method for bud
nodes, should be optimistic
• branching, growing, expanding nodes – a process of
creating child nodes for a bud node
• incumbent
Node selection policy
• Best-first / global-best node selection
• Depth-first
• Breadth-first
Example – an assignment problem
• Meaning of the nodes in a tree:
– Partial or complete assignement of people to tasks
• Node selection policy: global best
• Variable selection policy: choose the next task in a natural order 1
to 4
• Bounding function: for unassigned tasks choose the best
unassigned person, even if she were to be assigned too more than
one tasks
• Algorithm termination rule: when the objective function value for
an incumbent solution is better or equal to the objective function
value for all bud nodes
• Fathoming: a solution generated by the bounding function is
feasible if each task is assigned to a different person
How do the bounding function values come about?
• Look at the first stage bud node A
• All solutions represented by this node can be denoted by A???
Actual value of assigning person A to task 1 is equal to 9
The best yet unassigned person for task 2 is C, value = 1
The best yet unassigned person for task 3 is D, value = 2
The best yet unassigned person for task 4 is C, value = 2
• Bounding function solution is ACDC with a total value of
– The best objective function value of A??? is14. It is not a feasible
solution because person C is assigned to 2 tasks. Person A is the only
actually assigned person.
Creating a tree
First stage: root
Prunned nodes have broken edges
Feasible nodes have bold edges
Prunned feasible nodes have broken and bold edges
Second stage:
• Node C??? is fathomed – the
first incumbent feasible
solution CBDA=13
• We can then prune node
A???, with bounding
function value of 14.
• Two bud nodes which are
hope for improvement: B???
and D??? – global best: we
choose D???
Building a tree
Third stage:
• There are no new feasible
solutions, so the incumbent
solution does not change.
• New nodes cannot be
prunned by comparing with
the current incumbent
solution or fathomed
• We choose the global best
from among B??? (9), DA??
(12), DB?? (10) oraz DC??
• So B??? it is
Building a tree
Fourth stage:
• We fathom two nodes BA?? and
• A new incumbent feasible solution
is BCDA=12
• We prune the previous
incumbent CBDA
• BA?? Is feasible, but we prune it by
comparison with a new incumbent
• We prune nodes DA?? i DC?? by
comparing them with the
incumbent solution
• If we wanted to find ALL
optimal solutions and not only
one we can later analyze it
• We are left with only one bud node
Building a tree
Fifth stage:
• DBAC has better value
than the incumbent
solution, so we replace
it and prune the
• DBCA is pruned by
comparing it with the
incumbent solution
• There are no more bud
nodes to expand, so
we terminate
• We analyzed 13 out of
24 nodes
• For bigger problems it
gives a real
A good bounding function is a key
• Travelling salesman problem: visit each city exactly once and come back
to where you started
• Assume we have a partial solution (bold)
• Smart bounding function: a minimal spanning tree on the starting and the
ending node of the current partial solution and the unvisited nodes
Branch and bound algorithm for mixed
integer problems (Dakin’s algorithm)
• The following integer programming problem is given:
Solving an LP
Divide into two subproblems excluding the
current nonfeasible solution.
The two subproblems solved as LP
Successively divide and solve an LP
L3 ignored since it is not feasible
We continue until we get an integer solution
• We can stop the
procedure at L5 if we
want to be at most
10% from the
minimum (second
Cutting planes
Gomory cuts

similar documents