Transcript Document

Generality of Languages
Linear Programs
Algorithm
Simplex Algorithm,
Interior Point Algorithms
Algorithm
Klein’s
algorithm
Algorithm
Edmonds-Karp
Algorithm
Hopcroft-Karp
Increasing generality
Min Cost Flow
Reduction
Max (s,t)-Flow
Reduction
Maximum
Cardinality
Matching
Decreasing efficiency
Reduction
1
Min Cost Flow Problem
• Given flow network with costs
G =(V,E,c,b,k), find flow f minimizing
cost(f).
2
Min Cost Flow Problem
• Given G=(V,E,c,b,k), find f: V £ V ! R
minimizing (u,v) 2 V £ V k(u,v) f(u,v) so that
8 (u,v): f(u,v) · c(u,v).
8 (u,v): f(u,v) = – f(v,u).
8 u 2 V: v 2 V f(u,v) = b(u)
3
Min Cost Flow Problem
Find (x1, x2,…, x64) 2 R64
minimizing
k1x1 + k2x2 +  + k64 x64
so that
x1· 3,
x2 · -1,
…..
x1 = - x19,
x2 = - x27,
….
x9 + x17 + x34 = 17,
x12 + x11 + x19 = 0,
….
4
Linear Programs
Find x 2 Rn minimizing or maximizing a
linear form hx,ci = i ci xi (the objective
function) so that a given set of linear
equations and inequalities are satisfied.
A feasible solution to the program is a
point x satisfying the equations and
inequalities.
5
Linear Programs
• Linear Programs generalize the min cost flow
problem.
• Linear Programs generalize systems of linear
equations.
• To solve general linear programs we seem to
need a common generalization of Klein’s
algorithm and Gaussian elimination!
6
Diet Problem
Serving
Size
Energy
(kcal)
Protein
(g)
Calcium
(mg)
Price per
serving
(cents)
Oatmeal
28 g
110
4
2
3
Chicken
100 g
205
32
12
24
Eggs
2 large
160
13
54
13
Whole Milk
237 cc
160
8
285
9
Cherry Pie
170 g
420
4
22
20
Pork with Beans
260 g
260
14
80
19
Necessary daily intake: Energy 2000 kcal, Protein 55 g, Calcium 800 mg
Compose a diet minimizing price and fulfilling necessary daily intake.
7
Diet Problem
Serving
Size
Energy
(kcal)
Protein
(g)
Calcium
(mg)
Price per
serving
(cents)
Oatmeal x1
28 g
110
4
2
3
Chicken x2
100 g
205
32
12
24
Eggs x3
2 large
160
13
54
13
Whole Milk x4
237 cc
160
8
285
9
Cherry Pie x5
170 g
420
4
22
20
Pork with Beans x6
260 g
260
14
80
19
Necessary daily intake: Energy 2000 kcal, Protein 55 g, Calcium 800 mg
Compose a diet minimizing price and fulfilling necessary daily intake.
8
Linear Program for Diet Problem
Find (x1, x2, x3, x4, x5, x6) 2 (R+)n minimizing
3x1 + 24x2 + 13x3 + 9x4 + 20x5 + 19x6
so that
110x1 + 205x2 + 160 x3 + 160 x4 + 420 x5 + 260 x6 ¸ 2000
4 x1 + 32 x2 + 13 x3 + 8 x4 + 4 x5 + 14 x6 ¸ 55
2 x1 + 12 x2 + 54 x3 + 285 x4 + 22 x5 + 80 x6 ¸ 800
9
Linear Programs, Geometric View
x–y=0
10
x–y¸0
11
x + 2y · 1 Æ
x + 3 y ¸ -1 Æ
x–y¸0Æ
2x-y·3
x + 2y = 1
x + 3y = -1
x–y=0
2x – y = 3
12
x + 2y · 1 Æ
x + 3 y ¸ -1 Æ
x–y¸0Æ
2x-y·3
13
The set of feasible solutions F is a convex Polyhedron.
F
14
Minimize x-2y over F
x-2y = 0
F
x-2y = 1
15
Minimize x-2y over F
x-2y = -2/3
F
16
Linear Programs, Geometric view
• The set of feasible solutions of a linear program is a
polyhedron in Rn.
• The minimal (maximal) value of the linear objective
function is attained in a corner of the polyhedron.
• Simplex algorithm: Do a local search, walking from
corner to corner of the polyhedron improving the
objective function until no improvement is possible.
• Exceptions: The set of feasible solutions may be
unbounded or empty (the linear program is then said to
be infeasible).
17
18
Linear Programs in Standard Form
• The objective must be to maximize a
linear function.
• All variables are restricted to nonnegative values.
• All constraints have the form
d1 x1 + d2 x2 +  + dn xn · e
19
Linear Programs in Standard Form
Find (x1, x2, x3, …, xn) 2 (R+)n maximizing
c1 x1+ c2 x2 +  + cn xn
so that
a11 x1 + a12 x2 +  + a1n xn · b1
a21 x1 + a22 x2 +  + a2n xn · b2
…
am1 x1 + am2 x2 +  + amn xn · bm
Exceptions: If no fesible solution exist, report “Infeasible”.
If arbitrarily good feasible solutions exist, report
“Unbounded”.
20
Linear Program in Standard Form
Matrix Notation
Given A 2 Rm £ n, b 2 Rm, c 2 Rn,
find x 2 (R+)n maximizing hc,xi
so that Ax · b.
21
Reduction from LP in general form
to LP in standard form
Suppose we want to minimize (not maximize)
c1 x1 + c2 x2 +  cn xn
Maximize
- c1 x 1 - c2 x2 -  - cn xn
22
Reduction from LP in general form
to LP in standard form
Suppose we have a constraint
d1 x1 + d2 x2 +  + dn xn ¸ e
Replace with
- d1 x1 - d2 x2 -  - dn xn · - e
23
Reduction from LP in general form
to LP in standard form
Suppose we have a constraint
d1 x1 + d2 x2 +  + dn xn = e
Replace with
d1 x1 + d2 x2 +  + dn xn · e
- d1 x1 - d2 x2 -  - dn xn · - e
24
Reduction from LP in general form
to LP in standard form
• Suppose y is a variable for which we do not want
the constraint y ¸ 0.
• Suppose we do want a constraint such as
y ¸ -17
• Introduce new variable y’ = y+17 and replace y
with y’-17 everywhere in the program.
25
Reduction from LP in general form
to LP in standard form
• Suppose y is a variable for which we do not want the
constraint y ¸ 0 and no other constraint y ¸ –c.
• Introduce two new variables y+, y- with constraints
y+ ¸ 0, y- ¸ 0.
• Replace y with y+ - y- everywhere in the program.
• Do this for every unconstrained variable in the program.
26
Reduction from LP in general form
to LP in standard form
• The old program P and the new program P’ are
related as follows:
• A feasible solution to P can be converted to a
feasible solution to P’ with same value by setting
y+ = max(y,0),
y- = – min(y,0).
• A feasible solution to P’ can be converted to a
feasible solution to P with same value by setting
y = y + - y -.
27
Reduction from LP in general form
to LP in standard form
• Conclusion: Linear Programs in general form
can be converted to linear programs in standard
form by doubling the number of constraints and
doubling number of variables.
• From a practical point of view, the factor 2£2= 4
blowup in size is undesirable. Exercise: One
extra constraint and one extra variable suffices.
28