我们此前探讨过了一般的单纯形法(传送门),这次则来研究所谓“对偶单纯形法”。
线性规划的对偶问题
原始的线性规划问题:
max c T x \max c^T x maxcTx
A x ≤ b Ax \leq b Ax≤b
x ≥ 0 x \geq 0 x≥0
它的对偶问题:
min b T y \min b^Ty minbTy
A T y ≥ c A^Ty \geq c ATy≥c
y ≥ 0 y \geq 0 y≥0
容易看出,对偶的对偶就是它自身。
定理1: c T x ≤ ( A T y ) T x = y T ( A x ) ≤ y T c = c T y c^T x \leq (A^Ty)^T x=y^T(Ax)\leq y^Tc=c^Ty cTx≤(ATy)Tx=yT(Ax)≤yTc=cTy
定理2:若原始问题有一组可行解 x x x,对偶问题有一组可行解 y y y,且 c T x = b T y c^Tx=b^Ty cTx=bTy,则两个解分别是它们的最优解。(由定理1确定的上下界知,显然)
定理3:若原问题有最优解,则对偶问题有最优解。
证明:
先按照单纯形的流程做一下,在原问题引入松弛变量 u u u后转化为 A x + E u = b Ax+Eu=b Ax+Eu=b。我们找到了一组基本最优解,基向量为 x B = B − 1 b x_B=B^{-1}b xB=B−1b。
还记得最优解的条件码?对,检验数。由于这个原问题是最大化问题,所以检验数此时应该全部小于等于0。
还记得检验数的公式吗? λ T = c T − c B T B − 1 A \lambda^T=c^T-c_B^TB^{-1}A λT=cT−cBTB−1A,不过由于我们加了变量没有扩展 A A A,所以松弛变量 u u u这一块要额外考虑考虑。考虑的结果就是:
λ T = ( c T − c B T B − 1 A , − c B T B − 1 E ) \lambda^T = (c^T-c_B^TB^{-1}A, -c_B^TB^{-1}E) λT=(cT−cBTB−1A,−cBTB−1E)
因此 c T − c B T B − 1 A ≤ 0 c^T-c_B^TB^{-1}A \leq 0 cT−cBTB−1A≤0即 c T ≤ c B T B − 1 A c^T \leq c_B^TB^{-1}A cT≤cBTB−1A。两边同时取反一下得: c ≤ A T ( ( B − 1 ) T c B ) c \leq A^T((B^{-1})^Tc_B) c≤AT((B−1)TcB)
对比一下对偶问题的条件 A T y ≥ c A^Ty \geq c ATy≥c,发现 y = ( B − 1 ) T c B y=(B^{-1})^Tc_B y=(B−1)TcB是一组可行解。
而 y T b = c B T B − 1 b = c B T x B y^Tb=c_B^TB^{-1}b=c_B^Tx_B yTb=cBTB−1b=cBTxB,即 b T y = c T x b^Ty=c^Tx b

本文详细介绍了线性规划的对偶问题,包括对偶单纯形法的原理和步骤,并通过实例展示了如何应用于整数线性规划问题的求解,特别是分支限界算法的应用。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



