第二章 对偶问题
对偶问题的提出
我们可以先通过一个常识来理解“对偶”的含义和特征:
矩形中,周长一定,正方形的面积最大;面积一定,正方形的周长最小。
在许多课本中,都用如下的例子来引出对偶理论:
企业A拥有m种资源(有m 个约束),可以消耗资源生产n 种产品(有n 个变量),目标是最大化总收入;那么对偶问题就是,企业B想要收购这些资源,需要确定m 种资源的报价(有m 个变量),目标是最小化总成本,但企业A只有在卖资源的收益不低于卖产品的时候才会同意卖资源(n个约束)。
而从数学角度,对偶问题可以被理解为寻找原问题目标函数上界或下界的问题。
对偶问题用途
-
原问题约束多、变量少时,求解对偶问题能够降低计算时间
使用单纯形法时,如果原问题约束多变量少,转换成对偶问题,就是约束少变量多。回顾单纯形法的原理,约束的减少能够有效降低计算时间。 -
帮助证明原问题无解
类似“证明无罪比证明有罪更难”,要证明原问题有解,只需要找出一个满足约束的点,但是想证明原问题无解,总不能遍历所有的点来证明吧?而对偶问题的出现为证明原问题无解提供了思路。 -
便于进行敏感度分析
除了得到最优解,我们可能还关注"如果某些已知条件发生变化,对最优解的影响程度如何",这就是敏感度分析。对偶问题和敏感性分析息息相关。一是增加敏感度分析的直观程度(例如,对偶问题的最优解就是原问题约束的影子价格),二是在改变某些条件导致原问题无可行解时,可以借助仍然有可行解的对偶问题来分析。
对偶问题的一般形式
若原问题为 L P 1 ~LP_1 LP1
m a x z = C X s . t . { A X ≤ b X ≥ 0 \begin{aligned} max~z=CX\\s.t. \left\{\begin{aligned} AX\le b\\X\ge0 \end{aligned}\right. \end{aligned} max z=CXs.t.{
AX≤bX≥0
则其对偶问题定义为 L P 2 ~LP_2 LP2
m i n w = Y T b s . t . { A T Y ≥ C T Y ≥ 0 \begin{aligned} min~w=Y^Tb\\s.t. \left\{\begin{aligned} &A^TY\ge C^T\\&Y\ge0 \end{aligned}\right. \end{aligned} min w=YTbs.t.{
ATY≥CTY≥0
若原问题并非 L P 1 ~LP_1~ LP1 形式,则我们可以首先将其转化为 L P 1 ~LP_1~ LP1 形式,然后按照前面定义即可计算出其对偶问题。
∑ i = 1 n a i j x j = b i ⇒ { ∑ i = 1 n a i j x j ≤ b i ∑ i = 1 n − a i j x j ≤ − b i ∑ i = 1 n a i j x j ≥ b i ⇒ ∑ i = 1 n − a i j x j ≤ − b i \sum_{i=1}^{n} a_{ij}x_j= b_i~~\Rightarrow~~\left\{\begin{aligned}\sum_{i=1}^{n} a_{ij}x_j\le b_i\\\sum_{i=1}^{n} -a_{ij}x_j\le -b_i\end{aligned}\right.\\ \displaystyle\sum_{i=1}^{n} a_{ij}x_j\ge b_i~~\Rightarrow~~\sum_{i=1}^{n} -a_{ij}x_j\le -b_i i=1∑naijxj=bi ⇒ ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧i=1∑naijxj≤bii=1∑n−aijxj≤−bii=1∑naijxj≥bi ⇒ i=1∑n−aijxj≤−bi
也可以用如下方法进行变换:
举个例子:
原问题
m i n z = 7 x 1 + 4 x 2 − 3 x 3 s . t . = { − 4 x 1 + 2 x 2 − 6 x 3 ≤ 24 − 3 x 1 − 6 x 2 − 4 x 3 ≥ 15 5 x 2 + x 3 = 30 x 1 ≤ 0 , x 2 无 约 束 , x 3 ≥ 0 \begin{aligned} min~z=&~~~~~~~7x_1+4x_2-3x_3\\ s.t.=&\left\{ \begin{matrix} -4x_1+2x_2-6x_3\le24\\ -3x_1-6x_2-4x_3\ge15\\ ~~ ~~ ~~ ~~ ~~ ~~5x_2+~~x_3=30\\ x_1\le0,x_2无约束,x_3\ge0 \end{matrix} \right. \end{aligned} min z=s.t.= 7x1+4x2−3x3⎩⎪⎪⎨⎪⎪⎧−4x1+2x2−6x3≤24−3x1−6x2−4x3≥15 5x2+ x3=30x1≤0,x2无约束,x3≥0
首先把 C ~C~ C 和 b ~b~ b 互换, A A~ A 转置
m a x w = 24 15 30 s . t . { − 4 − 3 0 7 2 − 6 5 4 − 6 − 4 1 − 3 \begin{aligned} max~w=&~~~~~24~~~~~15~~~30\\ s.t.&\left\{ \begin{matrix} -4&-3&0&&7\\ 2&-6&5&&4\\ -6&-4&1&&-3 \end{matrix} \right. \end{aligned} max w=s.t.