What are the advantages of studying the dual problem in linear programming?
Here are some uses of the dual problem.
- Understanding the dual problem leads to specialized algorithms for some important classes of linear programming problems. Examples include the transportation simplex method, the Hungarian algorithm for the assignment problem, and the network simplex method. Even column generation relies partly on duality.
- The dual can be helpful for sensitivity analysis. Changing the primal's right-hand side constraint vector or adding a new constraint to it can make the original primal optimal solution infeasible. However, this only changes the objective function or adds a new variable to the dual, respectively, so the original dual optimal solution is still feasible (and is usually not far from the new dual optimal solution).
- Sometimes finding an initial feasible solution to the dual is much easier than finding one for the primal. For example, if the primal is a minimization problem, the constraints are often of the form $A {\bf x} \geq {\bf b}$, ${\bf x} \geq {\bf 0}$, for ${\bf b} \geq {\bf 0}$. The dual constraints would then likely be of the form $A^T {\bf y} \leq {\bf c}$, ${\bf y} \geq {\bf 0}$, for ${\bf c} \geq {\bf 0}$. The origin is feasible for the latter problem but not for the former.
- The dual variables give the shadow prices for the primal constraints. Suppose you have a profit maximization problem with a resource constraint $i$. Then the value $y_i$ of the corresponding dual variable in the optimal solution tells you that you get an increase of $y_i$ in the maximum profit for each unit increase in the amount of resource $i$ (absent degeneracy and for small increases in resource $i$).
- Sometimes the dual is just easier to solve. Aseem Dua mentions this: A problem with many constraints and few variables can be converted into one with few constraints and many variables.