0% found this document useful (0 votes)
12 views

Linear Programming Duality

This document introduces the concept of duality in linear programming. It provides the widget factory example to demonstrate the dual linear program and how to graphically solve it. It discusses the mutual bound theorem and duality theorem of linear programming. It also covers vertices of the primal and dual linear programs and complementary slackness conditions. The document uses the widget factory example throughout to illustrate key concepts such as constructing the dual linear program, finding optimal solutions, and checking complementary slackness.

Uploaded by

Dr-Junaid Shaju
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Linear Programming Duality

This document introduces the concept of duality in linear programming. It provides the widget factory example to demonstrate the dual linear program and how to graphically solve it. It discusses the mutual bound theorem and duality theorem of linear programming. It also covers vertices of the primal and dual linear programs and complementary slackness conditions. The document uses the widget factory example throughout to illustrate key concepts such as constructing the dual linear program, finding optimal solutions, and checking complementary slackness.

Uploaded by

Dr-Junaid Shaju
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Duality in Linear Programming

Learning Goals.
 Introduce the Dual Linear Program.
 Widget Example and Graphical Solution.
 Basic Theory:
• Mutual Bound Theorem.
• Duality Theorem.

Readings: Read text section 11.6, and sections 1 and 2 of Tom


Ferguson’s notes (see course homepage).

1
Standard Form for Linear Programs: Review

Consider a real-valued, unknown, n-vector x = (x1, x2, … , xn)T.

A linear programming problem in standard form (A, b, c) has the three


components: Constants:
A an m x n matrix,
b an m x 1 vector,
Objective Function: We wish to choose x to maximize: c an n x 1 vector.
cT x = c1x1 + c2x2 + … cnxn Linear function of x
with x subject to the following constraints:

Problem Constraints: For an m x n matrix A, and an m x 1 vector b:


Ax≤b

Linear inequality constraints on x


Non-negativity Constraints:
x≥0
Notation: For two K-vectors x and y,
x ≤ y iff xk ≤ yk for each k = 1, 2, …, K.
Other inequalities (≥, etc.) defined similarly.

2
Widget Factory Example: Revisited

Widget problem in Standard Form, constants (A, b, c).

Unknowns:
x = (x1, x2)T number (in thousands) of the two widget types.

Objective function (profit):


cT x = c1x1 + c2x2 = x1 + 2x2, so cT = (c1, c2) = (1, 2).

Problem Constraints: A x ≤ b

so

Non-negativity Constraints:
x≥0

3
Widget Factory Example: Upper Bounds

Maximize profit: cT x, where cT = (c1, c2) = (1, 2).

Subject to: Ax ≤ b and x ≥ 0.

Notice, for any feasible x and any y = (y1, y2, y3)T ≥ 0: Could choose
yT A ≥ c and y ≥ 0.

E.g., y = (2, 0, 0)T gives yT A = (2, 2) ≥ cT. Therefore: Upper bound!

cTx ≤ yTAx ≤ yTb = 2b1 = 8, i.e. max profit cTx ≤ 8.

In general, for any feasible x and any y such that


y ≥ 0 and yT A ≥ cT, Feasible y
Dual LP
we have the inequality:
minimize yTb
cTx ≤ yTAx ≤ yTb.

4
Duality in Linear Programming

Defn. Consider the linear programming problem (in standard form):


maximize cT x
(1)
subject to A x ≤ b and x ≥ 0,
The dual of this LP problem is the LP minimization problem:
minimize yT b
(2)
subject to y A ≥ c and y ≥ 0.
T T

These two LP problems are said to be duals of each other.

Mutual Bound Theorem: If x is a feasible solution of LP (1) and y is a


feasible solution of LP (2), then cT x ≤ yTAx ≤ yT b.
Pf: See previous slide.
Gap?
cT x1 (y1)T b

z (profit)
max cT x min yT b
cT x for feasible x yT b for feasible y

5
Duality Theorem of Linear Programming

LP Duality Theorem: Consider the linear programming problem:

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

Consider the Dual LP problem:


minimize yT b (2)
subject to yTA ≥ cT and y ≥ 0.

We can rewrite the feasibility conditions (2) of the dual as


m x (n + m) matrix

(3)

The dual LP is an LP, and vertices can be defined the same way as we did
before.

Let t = {t1, t2, … , tm} be a selection of m columns of (3), 1 ≤ ti ≤ m+n.


Define E(t) to be the m x m matrix formed from the t-columns of D, and
eT(t) the (1 x m)-vector formed from the same columns of dT.

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

Complementary Slackness: Given feasible solutions x and y of the LP and


the dual LP, respectively. Then x and y are optimal iff

and

Pf: Follows from cTx = yTAx = yTb as a necessary and sufficient condition
for the optimality of the feasible solutions x and y.

Suggests choosing of the sets s and t (defining the vertex x of the LP


and the vertex y of the dual LP) such that the bit vectors satisfy:

9
Proposing Vertices for the Dual LP

Spatially, complementary slackness suggests:

Where βi+n = bitFlip(αi) for i = 1, 2, …, m.


And βj = bitFlip(αj+m) for j = 1, 2, …, n.

Since sum(δ(s)) = n, length(δ(·)) = n+m, it follows sum(δ(t)) = m.

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.

Example: x = (x1, x2)T. Linear Program specified by (A, b, c).

Objective Function: cTx,


c = (1, 2)T

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):

So t = { 1, 2, 4} and we select columns 1, 2, and 4 from (3) below.


(3)

Soln: yT = (16, 0, 1)/13.


Check: cT x = (1, 2) (25, 27)T/13 = 79/13 = yTb = (16, 0, 1)/13(4, 1, 15)T
Conclude: y is a feasible vertex of the dual LP, and x, y are optimal.

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.

Readings: Read text section 11.6, and sections 1 and 2 of Tom


Ferguson’s notes (see course homepage).
Next Lecture: Begin approximation algorithms, Chapter 11.

14
Graphing the Widget Factory Example: Review

Example: x = (x1, x2)T. Linear Program specified by (A, b, c).

Objective Function: cTx,


c = (1, 2)T

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

The dual of the widget LP problem is:


minimize yT b
subject to yTA ≥ cT and y ≥ 0.
with the same constants (A, b, c) as above.
For example, using yT = (y1, 0, y3) we can solve yTA = cT to find:

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

Multiple solns iff


c is perpendicular
to an edge or face
of F.

x1

17

You might also like