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?


1 Answer 1


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$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.