You are on page 1of 12

Branch and Bound Search

Node is a subproblem (LP relaxation),


where Bound comes from

Branch to break down


the problem

Fathom not to explore beyond this


node, if either feasible to IP or infeasible.
Terminates if every node is either explored or fathomed.

IP Problem

Maximize 4x1+x2
subject to 9x1 + 6x2 25

x2

x1 0, x2 0

4.17

x1, x2 integer

Objective Function

x1

2.78

Root Node

Maximize 4x1+x2
subject to 9x1 + 6x2 25

x2

x1 0, x2 0

4.17
LP Relaxation

x1, x2 integer

Objective Function

x1

2.78

Root Node

Maximize 4x1+x2
subject to 9x1 + 6x2 25

x2

x1 0, x2 0

4.17

x1, x2 integer

Optimal Solution:
x* = (2.78, 0), zLP = 11.12
Upper Bound
x1

2.78

IP solution cannot be better than this!

Branching

The B&B tree now looks like this:

x1 2.78

x2

4.17

UB=11.11 x 2 0

x1 2 x1 3

z 11.11

x1 2
x1
1 x2
z

2.78

x1 3
x1
x2
z

The LPs in nodes 1 and 2 are obtained


by taking the original LP (from node
x1 0) and adding the constraint on the
connecting branch.

x2

4.17

We can see immediately that the LP for node


2 is infeasible. Therefore, there are no
x1 2.78
integer solutions with x13.
UB=11.11 x 2 0

x1 2 x1 3

z 11.11

x1 2
x1
1 x2
z

x1

2.78

x1 3
infeasible 2

Since there cannot be any feasible


points in this section, there is no
need to divide it further!

x2

We add the constraint x1 2 to the


original LP relaxation and solve to obtain
x1 2.78
the solution for node 1.
x2 0

4.17

z 11.11

x1 2

x1 2
x1 2
1 x 2 1.17

UB=9.17

x1

2.78

x1 3
infeasible 2

z 9.17

Now x1 has an integer value, but x2 is


fractional! We branch again, this
time influencing the value of x2.

x2

4.17

To eliminate the current fractional


value of x2 without eliminating
integer solutions, we constraint x2 to
either be less than or equal to 1, or
greater than or equal to 2.

x1 2

x1 2
1 x 2 1.17

x2 2

x1 2.78
x2 0

z 11.11

x1 3
infeasible 2

UB=9.17 z 9.17

x2 1

x2 1
x1

2.78

x2 2
x1
x2
z

x1
x2
z

x2

4.17
x2 2

x2 1

The LP for node 3 is the original, plus


the constraints x1 2 and x2 1. Notice x1 2.78
that the feasible region has integer
x2 0
corner points, so the optimal solution
z 11.11
will be an integer.

x1 2

x1 2
1 x 2 1.17

x1 3

infeasible 2

UB=9.17 z 9.17

x2 1
3

x1

2.78

LB=9

x2 2
x1 2
x2 1
z9

x1
x2
z

x2

4.17
x2 2

x2 1

Since we were able to find the best


solution in this piece of the feasible
region, we dont need to divide it any
further.

x1 2.78
x2 0
z 11.11

x1 2
x1 2
1 x 2 1.17

x1 3
infeasible 2

UB=9.17 z 9.17

x2 1
3

x1

2.78

LB=9

x2 2
x1 2
x2 1
z9
Fathom!

x1
x2
z

x2

4.17

Next we solve the LP at node 4. Notice


x1 2.78
that the objective value is 7.76. Since
x2 0
branching adds restrictions, we know
that we cannot get a solution with an
z 11.11
objective value of better than 7.76 from
this node!
x 2
1

x2 2

x2 1

x1 2
1 x 2 1.17

x1 3

infeasible 2

z 9.17

x2 1
3

x1

2.78

x2 2
x1 2

x1 1.44

x2 1

x2 2

z9

z 7.76

Fathom!

Fathom!

Branch and Bound Summary


Node: LP relaxation with additional variable
bounds according to branching decisions
(accumulated along path from root node)
Branching: Choose a variable with fractional
value in optimal solution of node, and add
restrictions to round up and down (often many
possible choices for branching variable)
If node infeasible: fathom node.
If optimal solution in node is integer: new
feasible solution for IP. If better than any
previous feasible solution, this becomes new
incumbent. Fathom node.
If optimal value at node worse than current
incumbent: fathom node.

You might also like