当前位置:   article > 正文

线性规划的原始对偶算法

原始对偶算法

假设有如下原始问题和对偶问题:
在这里插入图片描述
如果我们能够找到一个x,一个y,满足根据互补松弛定理,即使得:
在这里插入图片描述
那么这个x,y就是原始问题和对偶问题的最优解。
可是,直接这样找,相当于穷举,大海捞针,我们希望给出一个算法来找到。

算法思路:我们首先找到对偶问题的一个可行解 y y y,并尝试找到一个原问题的可行解 x x x,使得 x x x y y y 满足互补松弛定理。如果我们找到了这样的 x x x,那么 x x x y y y 就分别是原问题和对偶问题的最优解;否则我们就需要调整 y y y,让它变得更好,继续尝试,直到找到最优解为止。

限制的原问题 (RP) 与限制的对偶问题 (DRP)

算法开始了:

假设我们有了一个对偶问题的可行解 y y y,现在我们需要寻找一个新原问题的可行解 x x x 满足互补松弛定理。

先来个定义:

A j A_j Aj 表示矩阵 A A A 的第 j j j 列,定义 J = { j ∣ A j T y = c j } J = \{ j | A_j^Ty = c_j \} J={jAjTy=cj}(称 J J J 为允许指标集,简单来说 J J J 就是以 y y y 作为对偶可行解时,对偶问题中那些成为紧约束的编号)。根据原问题的定义和互补松弛定理,我们有(1)

A x = b x j = 0 ∀ j ∉ J x j ≥ 0 ∀ j ∈ J Ax = b \\ x_j = 0 \quad \forall j \not\in J \\ x_j \ge 0 \quad \forall j \in J Ax=bxj=0jJxj0jJ

如果我们能找到一个 x x x 满足上面三个条件, x x x y y y 就能满足互补松弛定理。

x j = 0 , j ∉ J x_j=0,j\notin J xj=0,j/J,我们为了求解 x j , j ∈ J x_j,j\in J xj,jJ,构造一个优化问题,称为限制的原问题(restricted primal,RP)

min ⁡ ∑ i = 1 m x ˉ i s.t. ∑ j ∈ J a i j x j + x ˉ i = b i x j ≥ 0 , x ˉ i ≥ 0

mini=1mx¯is.t.jJaijxj+x¯i=bixj0,x¯i0
mins.t.i=1mxˉijJaijxj+xˉi=bixj0,xˉi0

如果RP的最优解为0,则说明每一个松弛 x ˉ \bar{x} xˉ都为0,此时(1)中的3个条件都满足,是最优解,找到了 x , y x,y x,y

在这里插入图片描述
注:上面的 Q Q Q J J J, w ( 0 ) w^{(0)} w(0) y y y
在这里插入图片描述

考虑 RP 的对偶问题,称为限制的对偶问题(DRP) max ⁡ b T y s.t. A j T y ≤ 0 ∀ j ∈ J y i ≤ 1 ∀ i ∈ { 1 , 2 , … , m }

maxbTys.t.AjTy0jJyi1i{1,2,,m}
maxs.t.bTyAjTy0yi1jJi{1,2,,m}

在这里插入图片描述

在这里插入图片描述
注意, w ( 0 ) w^{(0)} w(0)是初始选的那个 y y y p j p_j pj是原始问题中的那个系数矩阵A中的第 j j j列。下面我们要判断,新构造的 w w w代入对偶规划的约束中的 y y y,查看能否满足。若可以满足,则新构造了一个对偶问题的可行解。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
即想要负数+非负数=非正数,那么就让这个负数减去(一个很小的正数乘以这个非负数),那么结果肯定就会非正数 ≤ 0 \le 0 0了。
在这里插入图片描述
貌似为了找到下一个 y y y,费了这么大的劲,竟然还求了一个DRP。我们当然会有疑惑,为什么这样求新 y y y,我告诉你,这个新 y y y代入到对偶问题中去,你会发现目标函数值比旧 y y y更大,对偶是求最大,这不正是我们想要的吗?
设新 y y y y ∗ y^* y
在这里插入图片描述

在这里插入图片描述
我们处在更新 y y y的过程,所以 θ > 0 , b T y ˉ > 0 \theta>0,b^T\bar{y}>0 θ>0,bTyˉ>0

其实,我们生成一个新的 y y y的过程中有了一个现象,虽然不影响我们生成新的 y y y,但是如果我们发现这个新的现象,可以不用生成新 y y y了,直接停止算法,因为原问题没有可行解,你是找不到最优解 y ˉ \bar{y} yˉ的。
那么这个现象是什么呢?来看看把。

在这里插入图片描述
由于RP与DRP是对偶,所以DRP最优值就是RP最优值,而此种情况下RP最优值大于0。等于0的情况早就排除了,在前面。
在这里插入图片描述

所以总结就是:如果RP中的最优值不是0,那么就看看是不是上述的情况,如果是,算法终止,如果不是就构造新的 y y y进入下一轮迭代继续调整,直接确定新的 J J J 和新的 DRP 即可(RP也不需要了,DRP和RP是一样的,RP最优值大于0,那么DRP也是),直到 DRP 的最优解让目标函数值为 0,此时的 y y y 就是对偶问题的最优解。

其完整流程如下:
在这里插入图片描述

最后一个问题,送佛送到西,如何构造第一个对偶可行解。
在这里插入图片描述
从而问题变为:
在这里插入图片描述

这个方法非常类似于大M法。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/740416
推荐阅读
相关标签
  

闽ICP备14008679号