ip lecture 1
TRANSCRIPT
-
7/29/2019 Ip Lecture 1
1/62
Integer Programming
Wolfram Wiesemann
November 17, 2009
http://goforward/http://find/http://goback/ -
7/29/2019 Ip Lecture 1
2/62
Contents of this Lecture
Mixed and Pure Integer Programming Problems
DefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital Budgeting
Depot Location
Further Uses of Integer VariablesFinite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
http://find/ -
7/29/2019 Ip Lecture 1
3/62
Contents of this Lecture
Mixed and Pure Integer Programming Problems
DefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital Budgeting
Depot Location
Further Uses of Integer VariablesFinite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
http://find/ -
7/29/2019 Ip Lecture 1
4/62
Definitions
Mixed Integer Programming Problem.
min x0 = cTx
subject to
Ax = b
xj 0 for j N = {1, . . . , n}
xj Z for j Z N.
Note: xj N \ Z are continuous, as before. Pure Integer Programming Problem. Z = N {x0}, i.e.,
all variables (including slack and objective value) are integral.Can be achieved by scaling.
http://find/ -
7/29/2019 Ip Lecture 1
5/62
Contents of this Lecture
Mixed and Pure Integer Programming Problems
DefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital Budgeting
Depot Location
Further Uses of Integer VariablesFinite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
6/62
Obtaining a Pure Integer Progamming Problem
Consider the following problem:
min x0 = 13
x1 12
x2
subject to
2
3 x1 +
1
3 x2
4
31
2x1
3
2x2
2
3x1, x2 0
x1, x2 Z.
This is not a pure integer programming problem:
x0 not integral.
Slack variables not integral.
http://find/ -
7/29/2019 Ip Lecture 1
7/62
Obtaining a Pure Integer Progamming Problem
Step 1. Scale the equations of the model.
min x0 = 2x1 3x2 (6)
subject to
2x1 + x2 4 (3)
3x1 9x2 4 (6)
x1, x2 0
x1, x2 Z.
http://find/ -
7/29/2019 Ip Lecture 1
8/62
Obtaining a Pure Integer Progamming Problem
Step 2. Insert (integral) slack variables:
min x0 = 2x1 3x2
subject to
2x1 + x2 + x3 = 4
3x1 9x2 + x4 = 4
x1, x2, x3, x4 0
x1, x2, x3, x4 Z.
http://find/ -
7/29/2019 Ip Lecture 1
9/62
Contents of this Lecture
Mixed and Pure Integer Programming Problems
DefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital Budgeting
Depot Location
Further Uses of Integer VariablesFinite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
http://find/ -
7/29/2019 Ip Lecture 1
10/62
Capital Budgeting
Company has resources i {1, . . . ,m}. Resource i has limitedavailability bi.
Company can undertake projects j {1, . . . ,n}. Project jrequires aij units of resource i and gives revenues cj.
Which projects should be undertaken such that the resourceavailabilities are observed and the revenues maximised?
maxx
nj=1
cjxj
subject to
nj=1
aijxj bi i {1, . . . ,m}
xj {0, 1} j {1, . . . ,n}
http://find/ -
7/29/2019 Ip Lecture 1
11/62
Contents of this Lecture
Mixed and Pure Integer Programming Problems
DefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital Budgeting
Depot Location
Further Uses of Integer VariablesFinite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
http://find/ -
7/29/2019 Ip Lecture 1
12/62
Depot Location (1)
Company has m potential distribution sites i {1, . . . ,m}.Building a distribution centre at site i costs fi.
There are n customers j {1, . . . , n}, each of whose demands
need to be satisfied from one or more distribution centres.Satisfying fraction xij of customer js demand fromdistribution centre i costs cij, given that centre i is built.
Which distribution centres should be built, and how should
the customer demands be satisfied, to minimise costs?
http://find/ -
7/29/2019 Ip Lecture 1
13/62
Depot Location (2)
minx,y
mi=1
fiyi +m
i=1
nj=1
cijxij
subject to
mi=1
xij = 1 j {1, . . . , n}
xij yi i {1, . . . , m} , j {1, . . . , n}
xij 0 i {1, . . . , m} , j {1, . . . , n}yi {0, 1} i {1, . . . , m}
http://find/ -
7/29/2019 Ip Lecture 1
14/62
Contents of this Lecture
Mixed and Pure Integer Programming Problems
DefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital Budgeting
Depot LocationFurther Uses of Integer Variables
Finite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
http://find/ -
7/29/2019 Ip Lecture 1
15/62
Finite-Valued Variables
Assume a variable xj can only take a finite number of values:
xj {p1, . . . , pm} .
We can introduce variables z1j , . . . , zmj {0, 1} and add the
constraint
z1j + . . . + zmj = 1.
Now, we can substiute xj with
p1z1j + . . . + pmzmj
in the objective function and all constraints.
http://find/ -
7/29/2019 Ip Lecture 1
16/62
Finite-Valued Variables
Example. xj {1, 3, 11} can be modeled as
z1j + z2
j + z3
j = 1
z1j , z2
j , z3
j {0, 1} .
We then substitute xj everywhere by
1z1j + 3z2
j + 11z3
j .
Exercise. Is it possible to save variables here?
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
17/62
Contents of this Lecture
Mixed and Pure Integer Programming Problems
DefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital Budgeting
Depot LocationFurther Uses of Integer Variables
Finite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
O
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
18/62
Logical Operations
We can model logical operations on the constraints via integervariables. For example, the expression
aTx b dTx e
can be expressed by:
aTx M b
dTx M(1 ) e
{0, 1} ,
where M is a large number.
L i l O i
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
19/62
Logical Operations
Example. We want to model the following problem:
min x
subject tox [0, 1] x 2.
Solution. This can be expressed as:
min x
subject to
x 1 + M
x 2 M(1 )
x 0.
L i l O i
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
20/62
Logical Operations
Example. We want to model the following problem:
min x1 x2
subject to
x1 + x2 4
x1 1 x2 1 but not both x1, x2 > 1
x1, x2 0.
L i l O ti
http://find/ -
7/29/2019 Ip Lecture 1
21/62
Logical Operations
Solution. This can be expressed as:
min x1 + x2
subject to
x1 + x2 4x1 1 M
x2 1 M(1 )
x1 1 + M(1 )
x2 1 + M
x1, x2 0.
C t t f thi L t
http://find/ -
7/29/2019 Ip Lecture 1
22/62
Contents of this Lecture
Mixed and Pure Integer Programming ProblemsDefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital BudgetingDepot Location
Further Uses of Integer VariablesFinite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
The Big Pict e
http://find/ -
7/29/2019 Ip Lecture 1
23/62
The Big Picture
Want to solve a pure IP problem:
Dont know how to solve IP problems. Know how to solve continuous problems (Simplex).
Outline of a solution procedure:
Solve a continuous relaxation. Contains all originally feasible solutions, plus others.
If optimal solution is integral, we are done.
Otherwise, tighten the relaxation and repeat.
Continuous relaxation: xj Z xj R.Tightening: Add cutting planes (cut off current optimum).
The Big Picture
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
24/62
The Big Picture
A cutting plane algorithm to solve pure integer programmingproblems works as follows.
1. Solve the IP problem with continuous variables instead ofdiscrete ones.
2. If the resulting optimal solution x
is integral, stop optimalsolution found.
3. Generate a cut, i.e., a constraint which is satisfied by allfeasible integer solutions but not by x.
4. Add this new constraint, resolve problem, and go back to (2).
Terminates after finite number of iterations in (2). Resulting x isintegral and optimal.
Example
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
25/62
Example
Consider the following problem:
max x0 = 5x1 + 8x2
subject to
x1 + x2 6
5x1 + 9x2 45
x1, x2 0
x1, x2 Z.
Example
http://find/ -
7/29/2019 Ip Lecture 1
26/62
Example
Step 1. Solve the IP problem with continuous variables instead ofdiscrete ones.
0
1
2
3
4
5
6
0 1 2 3 4 5 6 7 8
o o o o o o o
o o o o o o
o o o o o
o o o o
o o
o
Example
http://find/ -
7/29/2019 Ip Lecture 1
27/62
Example
Step 2. If the resulting optimal solution x is integral, stop
optimal solution found.
0
1
2
3
4
5
6
0 1 2 3 4 5 6 7 8
o o o o o o o
o o o o o o
o o o o o
o o o o
o o
o
x
Resulting solution is x = (2.25, 3.75) and hence not integral.
Example
http://find/ -
7/29/2019 Ip Lecture 1
28/62
Example
Step 3. Generate a cut, i.e., a constraint which is satisfied by all
feasible integer solutions but not by x
.
0
1
2
3
4
5
6
0 1 2 3 4 5 6 7 8
o o o o o o o
o o o o o o
o o o o o
o o o o
o o
o
x
We generate cut 2x1 + 3x2 15.
Example
http://find/ -
7/29/2019 Ip Lecture 1
29/62
Example
Step 4. Add this new constraint, resolve problem, and go back to(2).
0
1
2
3
4
5
6
0 1 2 3 4 5 6 7 8
o o o o o o o
o o o o o o
o o o o o
o o o o
o o
o
New optimal solution is x = (3, 3).Note: previous x is not feasible anymore.
Example
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
30/62
Example
Step 2. If the resulting optimal solution x is integral, stop
optimal solution found.
0
1
2
3
4
5
6
0 1 2 3 4 5 6 7 8
o o o o o o o
o o o o o o
o o o o o
o o o o
o o
o
x
x = (3, 3) is integral optimal solution found.
Example
http://find/ -
7/29/2019 Ip Lecture 1
31/62
Example
Remark. The cut we introduced only removed non-integral
solutions. Cuts never cut off feasible solutions of the original IPproblem!
0
1
2
3
4
5
6
0 1 2 3 4 5 6 7 8
o o o o o o o
o o o o o o
o o o o o
o o o o
o o
o
Contents of this Lecture
http://find/ -
7/29/2019 Ip Lecture 1
32/62
Contents of this Lecture
Mixed and Pure Integer Programming ProblemsDefinitionsObtaining a Pure Integer Progamming Problem
ExamplesCapital BudgetingDepot Location
Further Uses of Integer VariablesFinite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
Ralph E. Gomory (* 1929)
http://find/ -
7/29/2019 Ip Lecture 1
33/62
p y ( 9 9)
Outline of an Algorithm for Integer Solutions to Linear ProgramsBulletin of the American Mathematical Society, Vol. 64,
pp. 275-278, 1958.
Gomory Cut
http://find/ -
7/29/2019 Ip Lecture 1
34/62
y
Assume x1, . . . , xn 0 and integral. We show how to construct aGomory Cut for
a1x1 + . . . + anxn = b,
where aj, b R (not necessarily integral). Note that this can be
written as
(a1+[a1 a1] f1
)x1+. . .+(an+[an an] fn
)xn = b+[b b] f
,
where = max { Z : } (largest integer smaller than orequal to ).
Gomory Cut
http://find/ -
7/29/2019 Ip Lecture 1
35/62
y
We separate fractional and integral terms:
(a1 + f1)x1 + . . . + (an + fn)xn = b + f
f1x1 + . . . + fnxn f = b a1 x1 . . . an xn.
Observations.
1. As xj Z for all feasible x, right-hand side is integral.
2. Thus, for all feasible x, left-hand side must be integral, too.
3. As 0 f< 1, x 0 and left-hand side integral, left-hand sidemust be non-negative.
Consequence. f1x1 + . . . + fnxn f 0 f1x1 + . . . + fnxn ffor every feasible x.
Gomory Cut
http://find/ -
7/29/2019 Ip Lecture 1
36/62
y
Suppose Step 1 of our cutting plane algorithm gives non-integralx. Then there is row in Simplex tableau with
xi +
j/I
yijx
j = yi0
with yi0 / Z.Gomory Cut. Setting fj := yij yij, f := yi0 yi0, we get:
j/I
fjxj f. ()
() is fulfilled for all feasible x but not for x:
j/I fjx
j = 0 < f.
Contents of this Lecture
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
37/62
Mixed and Pure Integer Programming ProblemsDefinitions
Obtaining a Pure Integer Progamming Problem
ExamplesCapital BudgetingDepot Location
Further Uses of Integer VariablesFinite-Valued VariablesLogical Operations
Solving IP Problems: Cutting Plane AlgorithmOutline: Cutting Plane AlgorithmGomory CutsExample
Example
http://find/ -
7/29/2019 Ip Lecture 1
38/62
Consider the following problem:
max 3x1 + 4x2
subject to
25
x1 + x2 3
2
5x1
2
5x2 1
x1, x2 0
x1, x2 Z.
Example
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
39/62
Step 1. Convert maximisation objective into minimisation.
min x0 = 3x1 4x2
subject to
25
x1 + x2 3
2
5x1
2
5x2 1
x1, x2 0
x1, x2 Z.
Example
http://find/ -
7/29/2019 Ip Lecture 1
40/62
Step 1. Scale the equations of the problem.
min x0 = 3x1 4x2
subject to
25
x1 + x2 3 (5)
2
5x1
2
5x2 1 (5)
x1, x2 0
x1, x2 Z.
Example
http://find/ -
7/29/2019 Ip Lecture 1
41/62
Step 1. Scale the equations of the problem.
min x0 = 3x1 4x2
subject to
2x1 + 5x2 15
2x1 2x2 5
x1, x2 0
x1, x2 Z.
Example
http://find/ -
7/29/2019 Ip Lecture 1
42/62
Step 1. Insert integral slack variables.
min x0 = 3x1 4x2
subject to
2x1 + 5x2 + x3 = 15
2x1 2x2 + x4 = 5
x1, x2, x3, x4 0
x1, x2, x3, x4 Z.
Example
http://find/ -
7/29/2019 Ip Lecture 1
43/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 RHS
x0 3 4 0x3 2 5 1 15x4 2 -2 1 5
Example
http://find/ -
7/29/2019 Ip Lecture 1
44/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 RHS
x0 3 4 0x3 2 5 1 15x4 2 -2 1 5
Example
http://find/ -
7/29/2019 Ip Lecture 1
45/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 RHS
x0 3 4 0x3 2 5 1 15x4 2 -2 1 5
Example
http://find/ -
7/29/2019 Ip Lecture 1
46/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 RHS
x0 3 4 0x3 2 5 1 15
x4 2 -2 1 5
x07
54
5-12
x22
51 1
53
x4
14
5
2
5 1 11
Example
http://find/ -
7/29/2019 Ip Lecture 1
47/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 RHS
x07
5
4
5 -12x2
2
51 1
53
x414
5
2
51 11
Example
http://find/ -
7/29/2019 Ip Lecture 1
48/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 RHS
x07
5 4
5 -12x2
2
51 1
53
x414
5
2
51 11
Example
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
49/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 RHS
x07
5
4
5
-12
x22
51 1
53
x414
5
2
51 11
Example
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
50/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 RHS
x07
54
5-12
x22
51 1
53
x4 1452
51 11
x0 -1 1
2-352
x2 11
71
7
10
7
x1 11
7
5
14
55
14
Solution optimal; Simplex stops.
Example
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
51/62
Step 3. Generate cut based on x1 row.
1
7x3 +
5
14x4
13
14
1
7
(15 2x1 5x2) +5
14
(5 2x1 2x2) 13
14 x1 3
Introduce new variable x5 with
x5 = 1314
+ 17
x3 + 514
x4 = 3 x1.
Add this cut to the problem and go back to Step (1).
Example
http://find/ -
7/29/2019 Ip Lecture 1
52/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 x5 RHS
x0 -1 1
2-352
x2 1 17 17
107
x1 11
7
5
14
55
14
17
5
14-1 13
14
Example
http://find/ -
7/29/2019 Ip Lecture 1
53/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 x5 RHS
x0 -1 1
2-352
x2 1 17 17 107
x1 11
7
5
14
55
14
17
5
14-1 13
14
Example
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
54/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 x5 RHS
x0 -1 1
2-352
x2 11
71
7
10
7
x1 11
7
5
14
55
14
17
5
14-1 13
14
x0 4
57
581
5
x2 11
52
5
9
5
x1 1 1 3
x42
51 14
5
13
5
Solution optimal; Simplex stops.
Example
http://find/ -
7/29/2019 Ip Lecture 1
55/62
Step 3. Generate cut based on x2 row.
1
5x3 +
3
5x5
4
5
1
5
(15 2x1 5x2) +3
5
(3 x1) 4
5 x1 + x2 4
Introduce new variable x6 with
x6 = 15
x3 + 35
x5 45
= 4 x1 x2
Add this cut to the problem and go back to Step (1).
Example
http://find/ -
7/29/2019 Ip Lecture 1
56/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 x5 x6 RHS
x0 4
57
581
5
x2 11
5 2
5
9
5
x1 1 1 3
x42
51 14
5
13
5
15
3
5-1 4
5
Example
http://find/ -
7/29/2019 Ip Lecture 1
57/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 x5 x6 RHS
x0 4
57
581
5
x2 11
5
25
9
5
x1 1 1 3
x42
51 14
5
13
5
15
3
5-1 4
5
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
58/62
Example
http://find/http://goback/ -
7/29/2019 Ip Lecture 1
59/62
Step 3. Generate cut based on x2 row.
1
3x3 +
1
3x6
1
3
1
3
(15 2x1 5x2) +1
3
(4 x1 x2) 1
3 x1 + 2x2 6
Introduce new variable x7 with
x7 = 13
x3 + 13
x6 13
= 6 x1 2x2
Add this cut to the problem and go back to Step (1).
Example
http://goforward/http://find/http://goback/ -
7/29/2019 Ip Lecture 1
60/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 x5 x6 x7 RHS
x0 1
37
343
3
x2 11
32
3
7
3
x1 1 1
3
5
3
5
3
x44
31 14
3
19
3
x51
31 5
3
4
3
13 13 -1 13
Example
http://find/ -
7/29/2019 Ip Lecture 1
61/62
Step 1. Solve continuous relaxation of problem.
BV x1 x2 x3 x4 x5 x6 x7 RHS
x0 1
37
343
3
x2 11
32
3
7
3
x1 1 1353
53
x44
31 14
3
19
3
x51
31 5
3
4
3
13 13 -1 13
ExampleStep 1. Solve continuous relaxation of problem.
http://find/ -
7/29/2019 Ip Lecture 1
62/62
BV x1 x2 x3 x4 x5 x6 x7 RHS
x0 1
3
7
3
43
3
x2 11
3
2
3
7
3
x1 1 1
3
5
3
5
3
x44
31
14
3
19
3
x5
1
31
5
3
4
3
13
1
3-1
1
3
x0 -2 -1 -14
x2 1 -1 1 2
x1 1 2 -1 2
x4 1 -6 4 5
x5 1 -2 1 1
x3 1 1 -3 1
http://find/