有效不等式valid inequality和割平面cuts的区别,以及与强有效不等式的区别

目录

1.有效不等式valid inequality

1.1 有效不等式的目的

1.2 有效不等式定义

2.有效不等式和强有效不等式区别

2.1 强有效不等式(有效不等式的加强形式)

2.2 有效不等式的支配关系

3.有效不等式valid inequality和割平面cuts的区别


1.有效不等式valid inequality

1.1 有效不等式的目的

有效不等式的出发点,就是切割可行域中的外围部分最终 得到/刻画出 混合整数规划的凸包(可以想象为西瓜不断切片最终得到里头的全部果肉,但这个例子不严谨,因为凸包是多面体,是有棱有面的刚性的边界,而西瓜是圆的是平滑的。)比如下面的这个图,里头的六边形是凸包(MIP问题的可行域),外面是松弛问题的可行域,那么有效不等式就是添加线或面,切掉松弛问题的可行域,同时不切除MIP问题的可行域(内层六边形),从图形上看是切除掉阴影区域。

可以添加的割有很多个,怎么判断能够起到作用呢?或者怎么判断哪个起到的作用更强呢?就引出以下的问题和途径:

有效不等式,强有效不等式,支配关系;

如何找到,如何更快的找到

等等。

1.2 有效不等式定义

总之根据上面图形,可以得到有效不等式的定义:

基本出发点:判断什么样的约束可能是合适的,并且是有所帮助的。
定义:如果一个线性不等式对于一个离散优化模型的所有整数可行解都成立,那么这个线性不等式就是这个离散优化模型的有效不等式。(合适)


通过增加一个原本离散模型并不需要的有效不等式,常常可以大幅增加其松弛模型的有效性。

但是,并不是每个有效不等式都可以增加其松弛模型的有效性。
原理:为了加强一个松弛模型的有效性,一个有效不等式必须切割掉一些在松弛模型中可行,但在原本整数规划模型中不可行的点。(有所帮助)最常见的是把松弛模型的非整数最优解给切割掉,这就是gomory小数割。

也就是说,合适是指不切掉整数解(rule1,满足原模型的可行解必定满足新添加的不等式),而有所帮助是指不切掉整数解+切掉不合适的其它解(rule1+rule2,满足原模型的可行解必定满足新添加的不等式+原模型松弛模型的可行解不满足新添加的不等式)。

2.有效不等式和强有效不等式区别

2.1 强有效不等式(有效不等式的加强形式)

增加一个不等式约束相当于增加一个割面,可能会把一些顶点给切割出去,即1中的有所帮助,即满足rule2。

得到有效不等式后我们希望加强该有效不等式:

(1)直观理解πx≤π0,加强相当于把小的那侧往上提(增大),或者把大的那侧往下拉(减小),或者一边提一边拉。

(2)从几何上来讲,是调整有效不等式(割平面)的倾斜角度,直到这个割平面完全贴合刻面为止(刻面可以直观上理解为多面体的棱或边界面)。

最强的有效不等式是完全贴合凸包(Convex)的刻面,也就是把凸包给切出来。凸包是包含MIP可行解的最小/紧凸集(多面体),也是包含MIP所有整数解的最紧松弛(那么求解该最紧松弛LP就相当于求解IP)。

2.2 有效不等式的支配关系

有效不等式本质上是在切割凸包外围的松弛多面体,那么可以根据有效不等式距离凸包的远近将有效不等式进行分类。离得近的支配了离得远的有效不等式,因为前者切割的多,除了可以把后者切割掉的切割之外,还可以切除更多。即离得近的切割后的可行域是离得远切割后可行域的子集(切得更多)。

A比B切得更多,称为A改进了B,A支配B。

 

证明A支配B的过程:

(1)证明A和B都是原问题的有效割,即A和B都满足rule1,都不会切除原问题MIP的可行解。

(2)证明A切割后的可行域是B切割后可行域的子集,即A切割得更多。

证明支配,是科研的重点。其它的只是便于理解。

3.有效不等式valid inequality和割平面cuts的区别

有效不等式valid inequality和割平面cuts是不同的两个东西。

有效不等式是一开始就可以直接列举出来的,一般是根据问题的特征,分析出之后得到的东西。而割平面是动态生成的,可以在过程中一个(些)又一个(些)不断的动态添加。

更专业一点的说法是:

一般来讲,valid inequality在模型未求解之前,就可以全部列举出来;而cuts,一般是模型求解过程中,随着迭代,才可以生成的。

但是其实,这两者的概念,也没有说分得那么清楚。

很多人也把valid inequality作为cuts了。

(我自己使用的感觉是,添加了有效不等式,与不加有效不等式相比,一开始的效果会非常明显。但是之后进程提升的效果并不明显。

但是cuts会在之后的进程中起到作用,一点点切割可行域。

个人感觉是两者都需要,关键在于对问题本身的了解和研究。)

相关文章:

整数规划之分支切割算法_云湖在成长的博客-CSDN博客

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值