99 Linear Programming
99 Linear Programming
L INEAR P ROGRAMMING
‣ brewer’s problem
‣ simplex algorithm
‣ implementations
Algorithms
‣ reductions
F O U R T H E D I T I O N
http://algs4.cs.princeton.edu
Linear programming
5A + 15B ≤ 480
subject
to the 4A + 4B ≤ 160
constraints
35A + 20B ≤ 1190
A , B ≥ 0
Why significant?
Fast commercial solvers available.
Ex: Delta claims that LP
Widely applicable problem-solving model. saves $100 million per year.
http://algs4.cs.princeton.edu
5
Toy LP example: brewer’s problem
corn (480 lbs) hops (160 oz) malt (1190 lbs) $13 profit per barrel $23 profit per barrel
6
Brewer’s problem: linear programming formulation
ale beer
A , B ≥ 0
7
Brewer’s problem: feasible region
hops malt
4A + 4B ≤ 160 35A + 20B ≤ 1190
(0, 32)
(12, 28)
corn
beer 5A + 15B ≤ 480
(26, 14)
8
Brewer’s problem: objective function
hi
gh
er
pr
of
it?
(0, 32)
(12, 28)
beer
(26, 14)
intersection of 2 constraints in 2d
extreme point
(0, 32)
(12, 28)
beer
(26, 14)
10
7
Standard form linear program
maximize c1 x1 + c2 x2 + … + cn xn maximize cT x
a11 x1 + a12 x2 + … + a1n xn = b1
subject Ax = b
subject
a21 x1 + a22 x2 + … + a2n xn = b2 to the
to the
⋮ ⋮ ⋮ ⋮ ⋮ constraints x ≥ 0
constraints
am1 x1 + am2 x2 + … + amn xn = bm
x1 , x2 , … , xn ≥ 0
Original formulation.
maximize 13A + 23B
5A + 15B ≤ 480
subject
to the 4A + 4B ≤ 160
constraints
35A + 20B ≤ 1190
A , B ≥ 0
Standard form.
Add variable Z and equation corresponding to objective function.
Add slack variable to convert each inequality to an equality.
Now a 6-dimensional problem.
maximize Z
13A + 23B − Z = 0
subject 5A + 15B + SC = 480
to the
constraints 4A + 4B + SH = 160
A , B , SC , SC , SM ≥ 0
12
Geometry
A set is convex if for any two points a and b in the set, so is ½ (a + b).
Greedy property. Extreme point optimal iff no better adjacent extreme point.
14
L INEAR P ROGRAMMING
‣ brewer’s problem
‣ simplex algorithm
‣ implementations
Algorithms
‣ reductions
http://algs4.cs.princeton.edu
L INEAR P ROGRAMMING
‣ brewer’s problem
‣ simplex algorithm
‣ implementations
Algorithms
‣ reductions
http://algs4.cs.princeton.edu
Simplex algorithm
17
Simplex algorithm: basis
maximize Z {A, B, SH }
A , B , SC , SH , SM ≥ 0
{SH, SM, SC } ale {A, SH, SC }
(0, 0) (34, 0)
18
Simplex algorithm: initialization
maximize Z
basis = { SC, SH, SM }
13A + 23B − Z = 0 A=B=0
subject 5A + 15B + SC = 480 Z=0
to the SC = 480
constraints 4A + 4B + SH = 160
SH = 160
35A + 20B + SM = 1190 SM = 1190
A , B , SC , SH , SM ≥ 0
19
Simplex algorithm: pivot 1
substitute B = (1/15) (480 – 5A – SC) and add B into the basis which basic variable
does B replace?
(rewrite 2nd equation, eliminate B in 1st, 3rd, and 4th equations)
A , B , SC , SH , SM ≥ 0
20
Simplex algorithm: pivot 1
positive coefficient
maximize Z
pivot basis = { B, SH, SM }
(16/3) A − (23/15) SC − Z = -736 A = SC = 0
subject (1/3) A + B + (1/15) SC = 32 Z = 736
to the B = 32
constraints (8/3) A − (4/15) SC + SH = 32
SH = 32
(85/3) A − (4/3) SC + SM = 550 SM = 550
A , B , SC , SH , SM ≥ 0
substitute A = (3/8) (32 + (4/15) SC – SH ) and add A into the basis which basic variable
does A replace?
(rewrite 3rd equation, eliminate A in 1st, 2nd, and 4th equations)
maximize Z
basis = { A, B, SM }
− SC − 2 SH − Z = -800 SC = SH = 0
subject B + (1/10) SC + (1/8) SH = 28 Z = 800
to the B = 28
constraints A − (1/10) SC + (3/8) SH = 12
A = 12
− (25/6) SC − (85/8) SH + SM = 110 SM = 110
A , B , SC , SH , SM ≥ 0
22
Simplex algorithm: optimality
maximize Z
basis = { A, B, SM }
− SC − 2 SH − Z = -800 SC = SH = 0
subject B + (1/10) SC + (1/8) SH = 28 Z = 800
to the B = 28
constraints A − (1/10) SC + (3/8) SH = 12
A = 12
− (25/6) SC − (85/8) SH + SM = 110 SM = 110
A , B , SC , SH , SM ≥ 0
23
L INEAR P ROGRAMMING
‣ brewer’s problem
‣ simplex algorithm
‣ implementations
Algorithms
‣ reductions
http://algs4.cs.princeton.edu
L INEAR P ROGRAMMING
‣ brewer’s problem
‣ simplex algorithm
‣ implementations
Algorithms
‣ reductions
http://algs4.cs.princeton.edu
Simplex tableau
maximize Z
13A + 23B − Z = 0
subject 5A + 15B + SC = 480
to the
constraints 4A + 4B + SH = 160
A , B , SC , SH , SM ≥ 0
5 15 1 0 0 480
4 4 0 1 0 160 m A I b
35 20 0 0 1 1190
1 c 0 0
13 23 0 0 0 0
n m 1
initial simplex tableaux
26
Simplex tableau
maximize Z
− SC − 2 SH − Z = -800
subject B + (1/10) SC + (1/8) SH = 28
to the
constraints A − (1/10) SC + (3/8) SH = 12
A , B , SC , SH , SM ≥ 0
0 1 1/10 1/8 0 28
1 0 -1/10 3/8 0 12 m x*
27
Simplex algorithm: initial simplex tableaux
1 c 0 0
n m 1
for (int j = 0; j < n; j++) a[m][j] = c[j]; put c[] into tableau
for (int i = 0; i < m; i++) a[i][m+n] = b[i]; put b[] into tableau
}
28
Simplex algorithm: Bland's rule
0 q m+n
Find entering column q using Bland's rule: 0
m +
optimal
return -1;
}
29
Simplex algorithm: min-ratio rule
0 q m+n
Find leaving row p using min ratio rule. 0
m +
30
Simplex algorithm: pivot
0 q m+n
Pivot on element row p, column q. 0
p +
m +
31
Simplex algorithm: bare-bones implementation
0 q m+n
Execute the simplex algorithm. 0
p +
m +
32
Simplex algorithm: running time
33
Simplex algorithm: running time
ABSTRACT
34
Simplex algorithm: degeneracy
Cycling. Get stuck by cycling through different bases that all correspond
to same extreme point.
Doesn't occur in the wild.
Bland's rule guarantees finite # of pivots.
choose lowest valid index for
entering and leaving columns
35
Simplex algorithm: implementation issues
36
LP solvers: industrial strength
“ a benchmark production planning model solved using linear programming would have
taken 82 years to solve in 1988, using the computers and the linear programming
algorithms of the day. Fifteen years later—in 2003—this same model could be solved
in roughly 1 minute, an improvement by a factor of roughly 43 million. Of this, a factor
of roughly 1,000 was due to increased processor speed, whereas a factor of roughly
43,000 was due to improvements in algorithms! ”
— Designing a Digital Future
( Report to the President and Congress, 2010 )
37
Brief history
http://algs4.cs.princeton.edu
L INEAR P ROGRAMMING
‣ brewer’s problem
‣ simplex algorithm
‣ implementations
Algorithms
‣ reductions
http://algs4.cs.princeton.edu
Reductions to standard form
Minimization problem. Replace min 13A + 15B with max – 13A – 15B.
≥ constraints. Replace 4A + 4B ≥ 160 with 4A + 4B – SH = 160, SH ≥ 0.
Unrestricted variables. Replace B with B = B0 – B1, B0 ≥ 0 , B1 ≥ 0.
nonstandard form
1. Identify variables.
2. Define constraints (inequalities and equations).
3. Define objective function.
software usually performs
4. Convert to standard form. this step automatically
Examples.
Maxflow.
Shortest paths.
Bipartite matching.
Assignment problem.
2-person zero-sum games.
...
42
maxflow problem maxflo
V
6 E
Maxflow problem (revisited)
8
0 1 2.0 LP formulation LP solution
0 2 3.0 Maximize x 35 + x 45
Input. Weighted digraph G,
1 3single
3.0 source s and single
subject tosink t.
the constraints
1 4 1.0
Goal. Find maximum flow 3 1.0s to t.
2 from 0 ! x 01 ! 2 x 01 = 2
2 4 1.0 0 ! x 02 ! 3 x 02 = 2
3 5 2.0 0 ! x 13 ! 3 x 13 = 1
4 5 3.0
0 ! x 14 ! 1 x 14 = 1
0 ! x 23 ! 1 x 23 = 1
capacities
0 ! x 24 ! 1 x 24 = 1
0 ! x 35 ! 2 x 35 = 2
maxflow problem 0 ! x 45maxflow
! 3 solution x 45 = 2
V x 01 = x 13 + x 14Max flow from 0 to
6 E 5
8 x 02 = x 23 + x 24 0->2 3.0 2.0
0 1 2.0 LP formulation LP solution
x 13 + x 23 = x 35 0->1 2.0 2.0
0 2 3.0 Maximize x 35 + x 45
1 3 3.0 x 14 + x 24 = x 45 1->4 1.0 1.0
subject to the constraints
1 4 1.0 1->3 3.0 1.0
2 3 1.0 0 ! x 01 ! 2 x 01 = 2 2->3 1.0 1.0
2 4 1.0 0 ! x 02 ! 3 x 02 = 2 2->4 1.0 1.0
3 5 2.0 0 ! x 13 ! 3 x 13 = 1 3->5 2.0 2.0
4 5 3.0
0 ! x 14 ! 1 x 14 = 1 4->5 3.0 2.0
0 ! x 23 ! 1 x 23 = 1 Max flow value: 4.0
capacities
0 ! x 24 ! 1 x 24 = 1
0 ! x 35 ! 2 Example ofxreducing
35 = 2 network flow to linear programming
0 ! x 45 ! 3 x 45 = 2
x 01 = x 13 + x 14 43
x 02 = x 23 + x 24
maxflow problem maxflo
V
6 E
Modeling the maxflow 8problem as a linear program
0 1 2.0 LP formulation LP solution
0 2 3.0 Maximize x 35 + x 45
Variables. xvw = flow on edge
1 3 v→w.
3.0 subject to the constraints
1 4 1.0
Constraints. Capacity and 2 flow
3 1.0 conservation. 0 ! x 01 ! 2 x 01 = 2
2 problem
maxflow
Objective function. Net flow4 into
1.0 t. 0 ! x 02 ! 3 x 02 = 2 maxflow so
3 5 2.0 0 ! x 13 ! 3 x 13 = 1
V
4 65 3.0E Max
0 ! x 14 ! 1 x 14 = 1
8 0
0 1capacities
2.0 0 ! x 23 ! 1
LP formulation LP solution
x 23 = 1
0
0 2 3.0 0 ! x ! 1
Maximize x2435 + x 45 x 24 = 1
1 3 3.0 1
subject to the
0 ! x 35 ! 2constraints x 35 = 2
1 4 1.0 1
maxflow problem maxflow
00!!xx0145!!2 3 solution x 01x=452= 2
2 3 1.0 2
V 2 4 1.0 x001!=xx0213!+3x 14Max flow fromx 02 =02 to 5
6 2
E 3 5 2.0
8 x002!=xx1323!+3x 24 0->2 3.0 x2.0 13 = 1 3
0 1 2.0 LP4 formulation
5 3.0 LP solution
x013!+xx1423!=1x 35 0->1 2.0 x2.0 14 = 1 4
0 2 3.0 Maximize x 35 + x 45 capacity constraints
1 3 3.0 capacities x014!+xx2324!=1x 45 1->4 1.0 x1.0 23 = 1 Max
subject to the constraints
1 4 1.0 0 ! x 24 ! 1 1->3 3.0 x1.0
24 = 1
2 3 1.0 0 ! x 01 ! 2 x 01 =02! x ! 2 2->3 1.0 x1.0
35 35 = 2
2 4 1.0 0 ! x 02 ! 3 x 02 =02! x ! 3 2->4 1.0 x1.0
3 5 2.0 45 45 = 2
0 ! x 13 ! 3 x 13x= 1= x + x 3->5 2.0 2.0
4 5 3.0 01 13 14
0 ! x 14 ! 1 x 14 = 1 4->5 3.0 2.0
x 02 = x 23 + x 24 flow conservation
0 ! x 23 ! 1 x 23 = 1 Max flow value: 4.0
capacities x 13 + x 23 = x 35 constraints
0 ! x 24 ! 1 x 24 = 1
x 14 + x 24 =network
Example of reducing x 45 flow to linear programming
0 ! x 35 ! 2 x 35 = 2
0 ! x 45 ! 3 x 45 = 2
x 01 = x 13 + x 14 44
x 02 = x 23 + x 24
Maximum cardinality bipartite matching problem
Alice Adobe
Adobe, Apple, Google Alice, Bob, Dave
Bob Apple
Adobe, Apple, Yahoo Alice, Bob, Dave A B C D E F
Carol Google
Google, IBM, Sun Alice, Carol, Frank
Dave IBM
Adobe, Apple Carol, Eliza
Eliza Sun 0 1 2 3 4 5
IBM, Sun, Yahoo Carol, Eliza, Frank
Frank Yahoo
Google, Sun, Yahoo Bob, Eliza, Frank
matching of cardinality 6:
Example: job offers A–1, B–5, C–2, D–0, E–3, F–4
45
Maximum cardinality bipartite matching problem
at most one job per person at most one person per job
xA0 + xA1 + xA2 ≤1 xA0 + xB0 + xD0 ≤1
all xij ≥ 0
46
Linear programming perspective
47
Universal problem-solving model (in theory)
Factoring intractable ?
NP-complete problems.
… see next lecture
http://algs4.cs.princeton.edu
Algorithms R OBERT S EDGEWICK | K EVIN W AYNE
L INEAR P ROGRAMMING
‣ brewer’s problem
‣ simplex algorithm
‣ implementations
Algorithms
‣ reductions
F O U R T H E D I T I O N
http://algs4.cs.princeton.edu