观察一个有趣的平衡——对偶松弛

上次提到了强对偶定理,说的是一对线性规划问题的两个最优解其最优值一定是相等的。而这两个最优解之间除了各自的函数值相等,他俩之间还有一个有趣的关系,所谓的——对偶松弛。

啥是对偶松弛?首先看以看成是一个判断最优解的一个条件,比如我们有了一对可行解,然后试试两者是否满足这个关系,如果满足的话那么这对解就是最优解了。反过来也是可以的,如果已经知道两个解是各自的最优解,那么一定满足这个关系。

对偶松弛定理是的证明尽管不是很复杂,但是我们这里并不讨论,随便找个课本上都有,咱们这里只是观察一个例子,然后咱来理解一下对偶松弛这四个字的直观含义。

还是看上次的例子,吃货及店老板的一对对偶问题,这里把这对问题列一下:

原问题

min            5*x1 + 8*x2    

subject to    3*x1 >= 6      

                  2x1 + 4x2 >= 10

                  2x1 + 5x>= 8

       x1, x>= 0    

对偶问题

max          6*p1 + 10*p+ 8*p3     

subject to  3*p1 + 2*p+ 2*p<= 5   

                           4*p+ 5*p<= 8

                            p1 , p2 , p>= 0

这次需要把最优解求出来,分别是:

 x1 = 2, x= 3/2 和  p1= 1/3 , p2=2 , p= 0。最优值都是22。

OK,现在咱们就来看一下对偶松弛在哪里。首先要明确一个概念,就是对偶问题的一个变量对应着原问题的一个约束。比如这里原问题有三个约束,对偶问题相应的就有三个变量。

比如对于原问题有(对于对偶问题同理):

3*x1 >= 6             和  p1  对应;

2x1 + 4x2 >= 10    和  p2  对应;

2x1 + 5x>= 8     和  p3  对应;

稍微整理一下:

3*x1 -6           >= 0    和  p >= 0 对应;

2x1 + 4x2 - 10 >= 0    和  p >= 0 对应;

2x1 + 5x2 -  8  >= 0    和  p3  >= 0 对应;

 然后我们把各自的最优值代入(x= 2, x= 3/2 和  p1= 1/3 , p2=2 , p= 0),就可以看到所谓的对偶松弛了:

3*2 - 6                = 0   和   p1= 1/3  > 0

2*2 + 4*3/2 - 10  = 0   和   p2= 2     > 0

2*2 + 5*3/2 - 8    > 0   和   p3            = 0

我们可以看到,如果左边的代表约束的式子等于0,那么其对偶的变量值就大于0;而如果式子大于0,则后面的变量就等于0。也就是说每对数值一定有一个是等于0的。

所以说我们可以把对偶松弛这样理解,每个对偶约束和变量,如果一个是松的(大于0),那么其对偶一定是紧的(等于0).

是不是特别像跷跷板,一个起来另外一个一定下去。或者像拉锯,一边拉远另外一边就被拉近。这种自然中的无处不在的平衡的确有些奇妙。

转载于:https://www.cnblogs.com/zzrnature/p/5109076.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设我们要求解以下线性规划问题: 最小化:$f(x)=3x_1+4x_2$ 约束条件: $$\begin{aligned} x_1+x_2 &\geq 1 \\ 2x_1+x_2 &\geq 2 \\ x_1,x_2 &\geq 0 \end{aligned}$$ 首先,将目标函数转化为对偶变量的线性组合: $$f(x)=3x_1+4x_2=-3(-x_1)-4(-x_2)$$ 然后,将约束条件转化为对偶变量的限制条件: $$\begin{aligned} -x_1-x_2 &\leq -1 \\ -2x_1-x_2 &\leq -2 \\ x_1,x_2 &\geq 0 \end{aligned}$$ 这样,我们就得到了对偶问题: 最大化:$g(\lambda,\mu)=-\lambda-\mu$ 约束条件: $$\begin{aligned} -\lambda-2\mu &\leq -3 \\ -\lambda-\mu &\leq -4 \\ \lambda,\mu &\geq 0 \end{aligned}$$ 下面,我们来使用Wolfe对偶算法求解该问题: 1. 初始化:$\lambda=0,\mu=0$,原始问题的任意可行解作为初始解,例如$x_1=0,x_2=0$。 2. 松弛限制条件:增加松弛变量$s_1,s_2$,将对偶问题的限制条件变为: $$\begin{aligned} -\lambda-2\mu+s_1 &= -3 \\ -\lambda-\mu+s_2 &= -4 \\ \lambda,\mu,s_1,s_2 &\geq 0 \end{aligned}$$ 同时,对原始问题的限制条件进行调整: $$\begin{aligned} x_1+x_2+s_1 &= 1 \\ 2x_1+x_2+s_2 &= 2 \\ x_1,x_2,s_1,s_2 &\geq 0 \end{aligned}$$ 3. 求解对偶问题:在松弛后的对偶问题上求解最优解,即确定对偶变量的最优值。对偶问题的最优解为$\lambda=1.5,\mu=0.5$。 4. 检验原始可行性:检验原始问题的可行性,发现$x_1=0,x_2=0$不满足原始问题的限制条件,因此需要更新原始问题。 5. 更新原始问题:根据对偶变量的最优值,更新原始问题的限制条件,以缩小原始问题的解空间。具体地,将原始问题的第一个限制条件改为$x_1+x_2\geq 1.5$,将第二个限制条件改为$2x_1+x_2\geq 0.5$。 6. 重复步骤2到5,直到找到原始问题的最优解。在本例中,经过多次迭代,得到原始问题的最优解为$x_1=0.5,x_2=0.5$,对应的目标函数值为$f(x)=4$,与线性规划问题的最优解是一致的。 需要注意的是,对于具有大量变量和约束条件的问题,Wolfe对偶算法可能需要进行多次迭代才能找到最优解,因此在实际应用中需要谨慎选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值