150 likes | 394 Views
Integer Linear Programming (ILP). Types of ILP Models. ILP: A linear program in which some or all variables are restricted to integer values. Types: All-integer LP or a pure ILP Mixed-Integer LP 0-1 integer LP. Illustration of All-Integer LP.
E N D
Types of ILP Models ILP: A linear program in which some or all variables are restricted to integer values. Types: • All-integer LP or a pure ILP • Mixed-Integer LP • 0-1 integer LP
Illustration of All-Integer LP Sweeny: Eastborne Reality is considering investing in townhouses (T) and apartments(A). Determine the number of T’s and A’s to be purchased. (Integers) Funds available: $2 million. Cost: $282k per T and $400k per A Numbers available: 5 T’s and any number of A’s. Management time available: 140 h/mo Time needed: 4 hrs/mo for T and 40 h/mo for A. Contribution: $10k for T and $15k for A.
Sweeny Eastborne: ILP Model Maximise 10T + 15A Subject to: 282T + 400A ≤ 2000 4T + 40A ≤ 140 T ≤ 5 T, A ≥ 0 and integer
Sweeny Eastborne Relaxed LP: Rounded Solution If we relax the integer restriction, the optimum solution is T=2.48, A = 3.25, Z = 73.57 This is not acceptable because townhouses and apartments cannot be purchased in fractions! Rounding down gives integer solution with T = 2, A = 3 and Z = 65 Such rounding down may sometimes yield an optimum solution, but one cannot be sure!
Sweeny Eastborne ILPOptimal Integer Solution The optimal solution is T = 4, A = 2, Z = 70 and not the rounded-down solution which gives Z = 65.
ILP Algorithms The ILP algorithms are based on exploiting the tremendous computational success of LP. The strategy involves three steps: • Relax the ILP: Remove integer restrictions; replace any binary variable y with continuous range 0 y 1. • Solve the relaxed LP as a regular LP. • Starting with the relaxed optimum, add constraints that iteratively modify the solution space to satisfy the integer requirements.
B&B and Cutting Plane Methods The two commonly used methods are: • Branch and bound method • Cutting Plane Method Neither method is consistently effective; but B&B is far more successful.
Branch-and-Bound (B&B) • Developed in 1960 by A Land and G Doig • Relax the integer restrictions in the problem and solve it as a regular LP. Let’s call this LP0 (to imply node-zero LP) • Test if integer requirements are met. Else branch to get sub-problems LP1 and LP2.
Branching • If LP0 (in general LPi) fails to yield integer solution, branch on any variable that fails to meet this requirement. The process of branching is illustrated below. If LPi yields x1 = 3.5 and x1 is taken as the branching variable, we get two sub-problems, LPi+1 = LPi & (x1 3) and LPi+2 = LPi & (x1 4).
Bounding / Fathoming • Select LP1 (in general LPi)and solve. Three conditions arise. • Infeasible solution, declare fathomed (no further investigation of LPi). • Integer solution. If it is superior to the current best solution update the current best. Declare fathomed. • Non-integer solution. If it is inferior to the current best, declare fathomed. Else branch again.
Best Bound • In maximisation, the solution to a sub-problem is superior if it raises the current lower bound. • In minimisation, the solution to a sub-problem is superior if it lowers the current upper bound. • When all sub-problems have been fathomed, stop. The current bound is the best bound.
B&B Tree for Eastborne LP0 T = 2.48, A = 3.25, Z = 73.57 Non-integer, non-inferior to current best, branch on T LP1 = LP0 & T ≤ 2 T = 2, A = 3.3, Z = 69.5 Non-integer, can’t give better solution than LP5, fathomed LP2 = LP0 & T ≥ 3 T = 3, A = 2.89 Z = 73.28 Non-integer, non-inferior to current best, branch on A LP3 = LP0 & T ≥ 3 & A ≤ 2 T = 4.26, A = 2, Z = 72.55 Non-integer, non-inferior to current best, branch on T LP4 = LP0 & T ≥ 3 & A ≥ 3 Infeasible, fathomed LP5 = LP0 & T [3,4] & A ≤ 2 T = 4, A = 2, Z = 70 Integer, Lower (best) bound LP6 = LP0 & T ≥ 5 & A ≤ 2 T = 5, A = 1.48, Z = 72.13 Can’t give better solution than LP5, fathomed Note: Z is a multiple of 5 and hence only Z ≥ 75 can be better than z = 70
LP0 T = 2.48, A = 3.25, Z = 73.57 Non-integer, non-inferior to current best, branch on T LP1 = LP0 & T ≤ 2 T = 2, A = 3.3, Z = 69.5 Non-integer, can’t give better solution than LP5, fathomed LP2 = LP0 & T ≥ 3 T = 3, A = 2.89 Z = 73.28 Non-integer, non-inferior to current best, branch on A LP3 = LP0 & T ≥ 3 & A ≤ 2 T = 4.26, A = 2, Z = 72.55 Non-integer, non-inferior to current best, branch on T LP4 = LP0 & T ≥ 3 & A ≥ 3 Infeasible, fathomed LP5 = LP0 & T [3,4] & A ≤ 2 T = 4, A = 2, Z = 70 Integer, Lower (best) bound LP6 = LP0 & T ≥ 5 & A ≤ 2 T = 5, A = 1.48, Z = 72.13 Can’t give better solution than LP5, fathomed