You are on page 1of 13

Relationship between LP and IP

Assuming that we are solving a Minimization problem,


LetZ*LP = Value of LP optimal solution
Z*IP = Value of IP optimal solution
What is the relationship between these?
Z*LP  Z*IP Why?
What about Maximization problem?
Z*LP ≥ Z*IP
A solution feasible to IP is also feasible to LP.
IP solution set is a subset of LP solution set
LP solution provides a Lower Bound for IP problem (Min Prob.)
Upper Bound (Max Prob.)
Enumeration Approach
Since there are a finite number of IP solutions,
List all possible solution
Determine cost of each one
Pick the least costly as the optimum solution.
Is it a practical approach?
Consider 10 binary variables:
No. of possible solutions: 210 = 1024
With 20 variables 220 = 1,048,576 230 = 1,073,741,824
With the addition of each new variables, the number of solutions gets doubled.
(Combinatorial explosion)
Brute Force approach not practical for larger problems.
We need a better idea.
Implicit Enumeration
Consider a subset of possible solutions
(say those which satisfy some additional constraints, e.g. x1 = 1 and x5 = 0)
Suppose we can show that none of the solutions in this subset can be
optimal.
Then, this entire subset can be ignored.
No need to examine each individual solution in this subset.
This subset has been implicitly enumerated.
How to systematically identify such subsets and show that they do
not contain optimal solution?
Implicit Enumeration (Minimization Prob.)
Find the best LP solution for this subset by solving the LP
LP solution value = Z*LP(S)
Suppose we already know an integer solution outside this subset (not
necessarily optimal) with value ZIP
Suppose that Z*LP(S) > ZIP
What does it imply? Can any integer solution in subset S be better than
ZIP ? Why not?
Even the best LP solution has value worse than a known solution. An
IP solution must be even worse.
This subset cannot contain the optimal solution.
Maximization Problem

ZIP=105
105 Z*LP=100

100 How to identify such groups


systematically, without missing any
≤100 possible solutions?
Divide and Conquer approach!
Branch and Bound Algorithm
Solve problem as an LP.
If the solution is integral, it is optimum. Why?
If not integral, pick a variable at fractional value, e.g. x1 = 3.7
Divide the solution set into two subsets (Branching process)
Subset 1: All solutions with x1  3
Subset 2: All solutions with x1  4
What about the subset of solutions with 3  x1  4 ?
BUT, this subset does not contain any integer solution.
For each subset, solve the LP, yielding an upper bound for each set
(Bounding Process)
These subsets will be further sub-divided into still smaller subsets.
Fathoming
Suppose for a given subset, LP solution is integral.
What is the implication of this?
Do we need to further sub-divide this set? Why or why not.
If LP solution is integral, it is the best IP solution in that set.
No need to search this set any more.
The set has been Fathomed or implicitly enumerated.
A set is said to be fathomed when
either a) we know the best IP solution in this set.
Or b) We know it cannot contain the optimum solution, because its LP
solution is worse than a known IP solution.
There is no need to further sub-divide a fathomed set. Why?
As the sets are sub-divided, for some of them the LP solution will turn out to be
integral (Why?)

(3.7,2.9)

(3.4,2.0)
Incumbent Solution
• As the sets are sub-divided, for some of them LP solution will be
integral.
• Keep track of the best integer solution that you come across.
• The current best known integer solution is the incumbent solution.
• As and when a better integer solution is found, the incumbent is
updated.
• ZINC is the value of incumbent solution.
• ZINC provides
– a lower bound on optimum IP solution (Maximization Problem)
– a upper bound on optimum IP solution (Minimization Problem)
• ZINC ≤ Z*IP (Max Prob.), ZINC ≥ Z*IP (Min Prob.)
Branch and Bound Tree
• Solution set is progressively sub-divided into smaller sets.
• How to systematically keep track of all the sub-sets.
• A tree structure is useful.
• Root node represents original set. 75.3
• Child nodes are created to represent division into subsets.
• x1  3 x1  4
Keep LP solution at every node
• Dangling node: A node that needs to be further explored. 72.5 68.5
• Fathomed Node: Need not be explored further.
• Node Selection Rule:
– Which of dangling nodes to explore next.
• Branch Selection Rule:
– Which variable should be selected for further branching.
Zinc = 13
14
∞ Minimization
(0.72,1.23) 9.04
x1 ≤ 0 x1 ≥ 1

(0,2.5) 12.5 9.625 (1, 1.125)


x2 ≤ 2 x2 ≥ 3
x2 ≤ 1 x2 ≥ 1
(0,3)
15.3 15 (1,2)
(1.33,1) 10.33 14.0
x1 ≤ 1 x1 ≥ 2

(2,0.75)
14.8 11.75
x2 ≤ 0 x2 ≥ 1

(4,0) (2,1)
16 13
Branch and Bound Algorithm (Minimization Problem)
• Step 0: (Initialization) Let Zinc = . Solve the LP relaxation. If integral, the
solution is optimal, STOP. Otherwise, create the root node and put it on
the list of dangling nodes.
• Step 1: (Node Selection) If the list of dangling nodes is empty, the current
incumbent solution is optimal, STOP. Otherwise, select a dangling node
according to the node selection criterion, and go to step 2.
• Step 2: (Branching) Pick a branch variable as per branch selection rule,
create the two new dangling nodes corresponding to the two branches and
solve the LP corresponding to them.
• Step 3: (Incumbent Updation) If the LP solution for either node is integral
and less than the current incumbent, update the incumbent solution.
• Step 4: (Fathoming)
– a) If at either node Zlp inc, remove the node from the list of dangling
nodes.
– b) If incumbent was updated in Step 3, compare Zinc with Zlp for each
dangling node, and remove any node with Zlp  Zinc from the list of
dangling nodes.
– Go back to Step 1.
Example 11.7-8 (H&L)
Maximize Z=20x1+10x2+25x3+30x4

x1+x2+x3+2x4 ≤ 12
3x1+x2+2x3+2x4 ≤ 20
x1+2x2+5x3+3x4 ≤ 30

xi ≥ 0, integer

You might also like