Documente Academic
Documente Profesional
Documente Cultură
Integer Programming
Robert J. Vanderbei
April 21, 2009
Model:
Generate a set of feasible routes (i.e., a collection of legs which taken together can be
flown by one airplane).
Assign a cost to each route (e.g. 1).
Pick a minimum cost collection of routes that exactly covers all of the legs.
Let:
xj =
1
0
if route j is selected,
otherwise
1
if leg i is part of route j,
0
otherwise
cj = cost of using route j.
aij =
n
X
j=1
n
X
cj xj
aij xj = 1
i = 1, 2, . . . , m,
j=1
xj {0, 1}
An example of set-partitioning problems.
j = 1, 2, . . . , n.
n
X
j=1
n
X
cj xj
aij xj 1
i = 1, 2, . . . , m,
j=1
xj {0, 1}
j = 1, 2, . . . , n.
Column Generation
The problem of producing a set of possible routes is called column generation.
If there are m legs in total, then there are up to m20 possible routes.
Given n cities, determine the order in which to visit them so as to minimize the total
travel distance.
Fixed Costs
c(x) =
0
K + cx
if x = 0
if x > 0.
Equivalent to:
c(x) = Ky + cx
together with the following constraints:
x uy
x 0
y {0, 1}.
Piecewise linear functions can be treated using techniques similar to the fixed cost
method above.
LP Relaxation
General Integer Programming Problem
maximize cT x
subject to Ax b
x 0
x has integer components.
Example
x2
6
10x1+7x2=40
3333333333
Optimal Solution
3333333333
to LPrelaxation
43333333333
3333333333
33333333333
x1+x2=5
3333333333
3333333333
2
3333333333 17x1+12x0 2=68.33
3333333333 =z
13333333333
3333333333
03333333333
x
5
40
5
0
integers.
Optimal solution is (x1, x2) = (1.67, 3.33) with objective value 68.33.
Rounding to integers: (2, 3)
Closest feasible: (1, 3)
infeasible.
suboptimal.
Branch-and-Bound
x2
333
333
4333
333
3333
333
P1
333
2
333
333
1333
333
0333
5
x1 1
x1 2
Let
P1 = LP relaxation plus: x1 1
P2 = LP relaxation plus: x1 2
Optimal Solutions
P1: (1, 4)
P2: (2, 2.86)
integer solution!
33333
33333
33333
33333
33333
P2
33333
33333
x1
Enumeration Tree
P0: x1=1.67, x2=3.33
=68.33
x1>2
x1<1
P1: x1=1, x2=4
=65
=68.29
x2<2
x2>3
Refinement of P2 to P3
Feasible Region:
Enumeration Tree:
P0: x1=1.67, x2=3.33
x2
=68.33
333
333
4 333
333
3 333
333
P1
2 333
333
333
1
333
333
0
333
0
1
x1>2
x1<1
=65
=68.29
x2<2
33333
33333
33333
33333
P3
33333
33333
2
3
4
x2>3
x1
x1>3
x2
6
333
333
4333
333
333
3
333
P1
333
2333
333
1333
333
0333
=65
x1>2
x1<1
=68.29
x2<2
x2>3
33
33
33
33
P4
33
33
33
2
=68.2
333
333
333
P5
333
3
x1<2
P4: x1=2, x2=2
x1>3
P5: x1=3, x2=1.43
=58
x1
=68.14
x2<1
x2>2
More Branching
x2
x2
333
333
4333
333
333
3
333
P1
333
2333
333
1333
333
0333
5
333
333
4333
333
333
3
333
P1
333
2333
333
1333
333
0333
5
33
33
33
33
333
P4 333
33
P6
33
333
33
2
3
4
x1
33
33
33
33
P5
33
33
33
2
3
P7 P
3
8
3
33
33 33
4
x1
x1<1
P1: x1=1, x2=4
=65
=68.29
x2<2
x2>3
x1>3
=58
=68.14
x2<1
x2>2
x1>4
P8: x1=4, x2=0
=68
x1<1
P1: x1=1, x2=4
=65
=68.29
x2<2
x2>3
P9: Infeasible
=68.2
x1<2
x1>3
=58
=68.14
x2<1
x2>2
P10: Infeasible
=68.1
x1<3
P7: x1=3, x2=1
=63
x1>4
P8: x1=4, x2=0
=68