线性规划对偶:定理、互补松弛与影子价格

Views: --

对偶不是另一套孤立公式,而是同一个线性规划从“生产方案”和“资源定价”两个角度看的结果。

一组标准对应

(P)mincTxs.t.Axb, x0\begin{aligned} (P)\quad \min\quad &c^Tx\\ \text{s.t.}\quad &Ax\ge b,\ x\ge0 \end{aligned}

的对偶是

(D)maxbTys.t.ATyc, y0.\begin{aligned} (D)\quad \max\quad &b^Ty\\ \text{s.t.}\quad &A^Ty\le c,\ y\ge0. \end{aligned}

每条原约束对应一个对偶变量;每个原变量对应一条对偶约束。等式约束对应自由对偶变量,自由原变量对应等式对偶约束。

最稳的做法不是背完整符号表,而是先把原问题化到标准形式,再逐列写对偶。

弱对偶

对任意原可行 xx 和对偶可行 yy

bTyyTAx=xTATycTx.b^Ty\le y^TAx=x^TA^Ty\le c^Tx.

因此对偶值永远是原最小化问题的下界。若找到一对可行解满足 bTy=cTxb^Ty=c^Tx,不用再跑算法,它们已经同时最优。

弱对偶还立即推出:若原问题目标可趋于 -\infty,对偶不可能可行;若对偶目标可趋于 ++\infty,原问题不可能可行。

强对偶

在线性规划中,只要一方存在有限最优解,另一方也存在最优解,且

cTx=bTy.c^Tx^*=b^Ty^*.

单纯形最优表中,检验数的符号条件本质上正是构造了一个对偶可行解。

互补松弛

把弱对偶中的两段不等式变成等式,需要

yi(Axb)i=0,xj(cATy)j=0.y_i(Ax-b)_i=0,\qquad x_j(c-A^Ty)_j=0.

使用口诀:

  • 原约束不紧,所对应的对偶变量为零;
  • 原变量为正,所对应的对偶约束取等号;
  • 反方向同理。

例:若某最优原解满足 x1>0,x2=0x_1>0,x_2=0,且第一条资源约束有剩余,则相应有第一对偶变量 y1=0y_1=0,而 x1x_1 对应的对偶约束必须取等号。通常几条线性方程就能求出 yy^*

影子价格

v(b)=min{cTx:Axb,x0}v(b)=\min\{c^Tx:Ax\ge b,x\ge0\}

中,最优对偶变量 yiy_i^* 描述右端 bib_i 小幅增加时最优值的边际变化。在最优基不变的范围内,

v(b+Δb)=v(b)+yTΔb.v(b+\Delta b)=v(b)+{y^*}^T\Delta b.

这就是影子价格。它只在局部、最优基保持不变时是精确线性的,不能无限外推。

对偶间隙自检

计算

cTxbTy0.c^Tx-b^Ty\ge0.

若出现负数,至少有一边不可行或符号写错;若为零且双方可行,最优性已经证明。

考试要点

  • 写对偶时标清每个变量的符号范围。
  • 互补松弛使用前必须先确认原、对偶可行。
  • “约束取等号”不强迫对应乘子为正;互补关系只给单向推论。
  • 会从最优原解快速反求对偶解,并用目标值相等核验。

评论