Linear Programming Duality
Linear Programming Duality
Learning Goals.
Introduce the Dual Linear Program.
Widget Example and Graphical Solution.
Basic Theory:
• Mutual Bound Theorem.
• Duality Theorem.
1
Standard Form for Linear Programs: Review
2
Widget Factory Example: Revisited
Unknowns:
x = (x1, x2)T number (in thousands) of the two widget types.
Problem Constraints: A x ≤ b
so
Non-negativity Constraints:
x≥0
3
Widget Factory Example: Upper Bounds
Notice, for any feasible x and any y = (y1, y2, y3)T ≥ 0: Could choose
yT A ≥ c and y ≥ 0.
4
Duality in Linear Programming
z (profit)
max cT x min yT b
cT x for feasible x yT b for feasible y
5
Duality Theorem of Linear Programming
maximize cT x
(1)
subject to A x ≤ b and x ≥ 0.
The feasible set F for (1) is not empty and cT x is bounded above for
x є F iff the corresponding dual LP (2) (above) has a non-empty feasible
set G = {y | yTA ≥ cT and y ≥ 0} and yTb is bounded below for y є G.
Moreover, in this case, max { cTx | x є F } = min { yTb | y є G }.
Note: For integer linear programming (i.e., xi, yj є Z) there can be a gap.
No Gap!
z (profit)
max cT x = min yT b
cT x for x є F yT b for y є G
6
Vertices of Dual Linear Program
(3)
The dual LP is an LP, and vertices can be defined the same way as we did
before.
A point v є [Rm is a vertex of the feasible set (3) iff there exists an t
such that E(t) is nonsingular, vT = eT(t)[E(t)]-1, and v satisfies (3).
7
Vertices of LP and Dual LP
Define the m+n dimensional binary valued indicator vector δ(s) where δj = 1
if j є s, and δj = 0 otherwise. Define δ(t) similarly.
Vertex of LP: If the jth coefficient of δ(s) is one (i.e., [δ(s)]j = 1) then
the jth row below is an equality for vertex x:
Vertex of Dual LP: If the ith coefficient of δ(t) is one (i.e., [δ(t)]i = 1)
then the ith column below is an equality for vertex y:
8
Complementary Slackness
and
Pf: Follows from cTx = yTAx = yTb as a necessary and sufficient condition
for the optimality of the feasible solutions x and y.
9
Proposing Vertices for the Dual LP
Given a vertex x of the LP, defined by s, we can use the rule above to
try to construct t and the corresponding vertex of the dual LP. We can
use the pair to check for optimality. See the following example.
10
Graphing the Widget Factory Example: Cont.
Problem Constraints:
x2 Half-plane:
Ax ≤ b, x1 + x2 ≤ 4
Half-plane:
-3x1 + 10x2 ≤ 15
3-
Optimal Solution:
2-
xT = (25, 27)/13
Non-negativity:
x ≥ 0.
1-
Optimal Vertex:
s = { 1, 3 }
x1
1 2 3 4
11
Widget Factory Example: Optimal Dual Solution
E.G. (Cont.): This vertex of the LP was obtained using s = {1, 3}. Generate
corresponding column selection t (possibly a feasible vertex for dual LP):
12
Extra Slides
Duality in Linear Programming
Learning Goals.
Introduce the Dual Linear Program.
Widget Example and Graphical Solution.
Basic Theory:
• Mutual Bound Theorem.
• Duality Theorem.
14
Graphing the Widget Factory Example: Review
Problem Constraints: x2
Ax ≤ b,
Half-plane:
-x1 + x2 ≤ 1
3-
Half-plane:
x1 + x2 ≤ 4 Half-plane:
-3x1 + 10x2 ≤ 15
2-
Optimal Solution:
cTx = constant xT = (25, 27)/13
cTx = 79/13
1-
Direction of
Feasible Set increasing profit c.
Non-negativity:
x ≥ 0.
x1
1 2 3 4
15
The Widget Factory Example Dual
yT A = c and y ≥ 0.
Upper bound,
cT x ≤ yT b = 79/13.
Equals max cT x.
No Gap!
z (profit)
max cT x = min yT b = 79/13
cT x for feasible x yT b for feasible y
16
Three Dimensional Example: Revisited
Problem Constraints:
x1 + 3x3 ≤ 600
x2 + x3 ≤ 300
x3 x1 + x2 + x3 ≤ 400
x2 ≤ 250
Maximize cTx,
cT = (2, 3, 4),
Feasible set F is
cTx gives shading.
this closed polytope.
x2
x1
17