2

Section 29.4 "Duality" of CLRS (3rd Edition) describes the way of reading off an optimal dual solution from the last slack form of the primal as follows:

Suppose that the last slack form of the primal is $$ \begin{align} z &= v' + \sum_{j \in N} c'_j x_j \\ x_i &= b'_i - \sum_{j \in N} a'_{ij} x_j, \; i \in B. \end{align} $$ Then, to produce an optimal dual solution, we set $$ \overline{y_i} = \begin{cases} - c'_{n+i} & \text{if } (n + i) \in N, \\ 0 & \text{otherwise}. \end{cases} $$

I am able to follow the proof of a later Theorem (Theorem 29.10: LP Duality) to convince myself that this $\overline{y_i}$ is indeed an optimal dual solution.

However, what is the intuition behind the way the optimal dual solution is constructed? I notice that each non-zero $\overline{y_i}$ corresponds to a tight constraint in the optimal primal solution. Is this fact helpful to understand the optimal dual solution?

hengxin
  • 9,671
  • 3
  • 37
  • 75

1 Answers1

2

Answer My Own Question:

I found that the interpretation in Section 8.3 of the textbook "Introduction to Linear Algebra; 4th Edition" by Gilbert Strang is quite intuitive and much easier to understand than that in CLRS.

Note: The textbook of Gilbert Strang takes the "min" program as the primal and the max program as the dual. I follow this convention. Besides, it adopts the matrix form of linear programs, which, in my opinion, helps a lot in understanding the simplex method and the duality theory.

Quoted from the textbook:

The $m$ inequalities $Ax \ge b$ were changed to equations by introducing the slack variables $w = Ax - b$: $$\begin{bmatrix} A & -I \end{bmatrix} \begin{bmatrix} x \\ w \end{bmatrix} = b$$ and $$\begin{bmatrix} x \\ w \end{bmatrix} \ge 0.$$ Every simplex step picked $m$ columns of the long matrix $\begin{bmatrix} A & -I \end{bmatrix}$ to be basic, and shifted them (theoretically) to the front. This produce $\begin{bmatrix} B & N \end{bmatrix}$. The same shift reordered the long cost vector $\begin{bmatrix} c & 0 \end{bmatrix}$ into $\begin{bmatrix} c_{B} & c_{N} \end{bmatrix}$. The stopping condition, which brought the simplex method to an end, was $r = c_N - c_B B^{-1} N \ge 0$. At the stopping moment, the cost was as low as possible: $$cx^{\ast} = \begin{bmatrix} c_{B} & c_{N} \end{bmatrix} \begin{bmatrix} B^{-1}b \\ 0 \end{bmatrix} = c_B B^{-1} b.$$ If we can choose $y^{\ast} = c_B B^{-1}$ in the dual, we certainly have $y^{\ast}b = cx^{\ast}$. The minimum and maximum will be equal.

It turns out that $y^{\ast} = c_B B^{-1}$ is exactly the one read off in the final slack form of the primal program in the way CLRS describes. Its feasibility in the dual is due to the stopping condition $r = c_N - c_B B^{-1} N \ge 0$.

hengxin
  • 9,671
  • 3
  • 37
  • 75