Duality

We will now look at a problem that is more general than solving linear systems of the form A\boldsymbol{x} = \boldsymbol{b}.

Linear programs are of the form:
\min \boldsymbol{c^T}\boldsymbol{x}
s.t.
A\boldsymbol{x} \geq \boldsymbol{b}

Note that linear programs have a linear objective (\boldsymbol{c^T}\boldsymbol{x}) and linear constraints (A\boldsymbol{x} \geq \boldsymbol{b}). We can easily see how to reduce solving a linear system A\boldsymbol{x} = \boldsymbol{b} to a linear program, which would look like

\min \boldsymbol{0}
s.t.
A\boldsymbol{x} \geq \boldsymbol{b}
A\boldsymbol{x} \leq \boldsymbol{b}

Let’s take a look at a few examples of linear programs.

Example 1. (Max Flow)

Let G(V, E) be a graph with directed edges and capacities c_{ij} \geq 0. Let vertices s, t \in V be the source and the sink respectively. Our goal is to find flows f_{ij} \geq 0 such that f_{ij} \leq c_{ij} and \sum_{i}f_{ij} = \sum_{l}f_{jl} \forall j \neq s,t. We want to maximize our net flow, which is the total flow out of source s, so out linear program is

\max \sum_{j}f_{sj}
s.t.
\sum_{i}f_{ij} = \sum_{l}f_{jl} \forall j \in V \setminus \{s,t\}
f_{ij} \geq 0 \forall i,j \in V
f_{ij} \leq c_{ij} \forall i,j \in V

Example 2. (Low-cost Diet)

We need 180 units of protein, 100 units of carbs, and 20 units of fat. We can get sushi for 9 units of cost, tomato soup for 2 units of cost, and chicken massaman for 6 units of cost. A single unit of sushi gives 15 protein, 20 carbs, and 5 fat; tomato soup gives 5 protein, 30 carbs, 15 fat; chicken massaman gives 40 protein, 10 carb, 8 fat. What is the minimum cost satisfactory diet? Let’s assign the following variables:
x = sushi
y = tomato soup
z = chicken massaman

Then, we get the following linear program,

\min 9x + 2y + 6z
s.t.
(1)\ \ \ \ 15x + 5y + 40z \geq 180
(2)\ \ \ \ 20x + 30y + 10z \geq 100
(3)\ \ \ \ 5x + 15y + 8z \geq 20

Let’s note the costs of some solutions to the above program.

x = 12,\ y = z = 0\ \ \ \ cost = 108
x = 2,\ y = 1,\ z = 4\ \ \ \ cost = 44

Is there a better solution? If not, how can we show that there is no better solution? Let’s work towards a lower bound for OPT, the value of the optimal solution to the above program.

We will first try taking a multiple of one of our constraints,

\frac{1}{7}(1) = \frac{15}{7}x + \frac{5}{7}y + \frac{40}{7}z \geq \frac{180}{7}

\implies 9x + 2y + 6z \geq \frac{180}{7} = 25\frac{5}{7}

So, 25\frac{5}{7} \leq OPT \leq 44. Can we tighten this lower bound?

We will explore this question on another example. Consider the following LP,

\max 4x_1 + x_2 + 5x_3 + 3x_4
s.t.
(1)\ \ \ \ x_1 - x_2 - x_3 + 3x_4 \leq 1
(2)\ \ \ \ 5x_1 + x_2 + 3x_3 + 8x_4 \leq 55
(3)\ \ \ \ -x_1 + 2x_2 + 3x_3 - 5x_4 \leq 3
x_1, x_2, x_3, x_4 \geq 0

Let z^{*} be the value of the optimal solution. Again, let’s try some solutions and note the values

\boldsymbol{x} = (0, 0, 1, 0) \implies z^* \geq 5
\boldsymbol{x} = (2, 1, 1, \frac{1}{3}) \implies z^* \geq 15

How can we tell if this z^* is optimal?

\frac{5}{3}(2) = \frac{25}{3}x_1 + \frac{5}{3}x_2 + 5x_3 + \frac{40}{3}x_4 \leq \frac{275}{3}
\implies 4x_1 + x_2 + 5x_3 + 3x_4 \leq \frac{275}{3} \implies z^* \leq \frac{275}{3}

We can try another linear combination of constraints

(2) + (3) = 4x_1 + 3x_2 + 6x_3 + 3x_4 \leq 58
\implies z^* \leq 58

What is the best possible upper bound? We would like to choose multipliers y_1, y_2, y_3 \geq 0 for constraints (1), (2), (3). Then, we get

(y_1 + 5y_2 - y_1)x_1 + (-y_1 + y_2 + 2y_3)x_2 + (-y_1 + 3y_2 + 3y_3)x_3 + (3y_1 + 8y_2 - 5y_3)x_4 \leq y_1 + 55y_2 + 3y_3

So we’d like,

\min y_1 + 55y_2 + 3y_3
s.t.
y_1 + 5y_2 - y_1 \geq 4
-y_1 + y_2 + 2y_3 \geq 1
-y_1 + 3y_2 + 3y_3 \geq 5
3y_1 + 8y_2 - 5y_3 \geq 3
y_1, y_2, y_3 \geq 0

Then, this gives a valid upper bound on z^*.

More generally the solution to the linear program

\min \boldsymbol{b^T}\boldsymbol{y}
s.t.
A^T \boldsymbol{y} \geq \boldsymbol{c}
\boldsymbol{y} \geq 0

gives an upper bound for the linear program

\max \boldsymbol{c^T} \boldsymbol{x}
s.t.
A\boldsymbol{x} \leq \boldsymbol{b}
\boldsymbol{x} \geq 0

or more concisely,

Theorem 1. (Weak Duality)
\max\{\boldsymbol{c^T}\boldsymbol{x}:A\boldsymbol{x} \leq \boldsymbol{b}, \boldsymbol{x} \geq 0\} \leq \min\{\boldsymbol{b^T}\boldsymbol{y}:A^T \boldsymbol{y} \geq \boldsymbol{c}, \boldsymbol{y} \geq 0\}

Advertisement