数学建模(二):从线性规划到整数规划

&1.概论
1)定义:当一个规划问题中的变量至少有一个被限制为整数时,这个规划问题被称为⎡整数规划⎦,假如这个规划问题是一个⎡线性规划⎦,那这样的既是整数规划又是线性规划的问题我们把它称为⎡整数线性规划⎦。目前为我们流行的求解整数规划的方法,往往只适用于整数线性规划问题,尚未找到一种能够有效求解一切整数规划问题的方法。
2)分类:我们按照变量是否被全部限制为整数来对整数规划进行划分,如果变量被全限制为整数,我们把这样的规划叫做⎡纯(完全)整数规划⎦,否则称为⎡混合整数规划⎦。
3)整数规划特点:
1原线性规划有最优解,当决策变量被限制为整数后,会出现以下情况:
(i)原线性规划问题最优解全为整数,则整数规划问题与线性规划问题具有相同最优解,这种情况是最为简单的。
(ii)整数规划此时无可行解。
在这里插入图片描述
此时我们限制这个线性规划中的x1,x2都必须为整数,那么显然约束条件中的等号是无法成立的,此时的这个转化得到的整数规划是没有可行解的。
(iii)有最优解,但整数规划的最优解和线性规划的最优解不是同一个。
在这里插入图片描述
2整数线性规划的最优解,不能按照线性规划的实数最优解简单取整得到。
3)求解方法分类:
1分枝定界法——可求完全或混合整数线性规划;
2割平面法——可求完全或混合整数线性规划;
3隐枚举法——求解“0-1”整数规划:过滤隐枚举法和分枝隐枚举法。
4匈牙利法——解决指派问题(“0-1”规划的特殊情况)
5蒙特卡洛法——求解各种类型的规划。

&2.分枝界定法
对有约束条件的具有有限个可行解的最优化问题,把它所有的可行解空间进行系统的搜索。把全部可行解空间反复分割,称为分枝;把分割后的每个子集的解计算一个目标下界,称为定界。在每次分枝后,对界限超出已知当前得到的最优下界的子集不再分枝,称为剪枝。
设有最大化的整数规划问题A,与它相应的线性规划问题B,我们从解问题B开始,若其最优解不符合A的整数条件,那么B的最优目标函数必定是最优目标函数z*的上界,而A的任意可行解的目标函数值是z*的下界。逐步减小上界和下界,最终可以求得最优解。
在这里插入图片描述
(4.17后续待更新)
(i)在不考虑整数限制的情况下,我们将这个问题视为一个线性规划问题,有最优解x1=4.8092,x2=1.8168,z1=355.8779
易得这个最优解是不符合整数条件的,于是z1是题中整数规划的上界,而我们假若令x1=0,x2=0,明显是符合整数规划的一个可行解,并且此时z2=0,于是z2是这个整数规划问题的一个下界,即对于这个整数规划问题的最优解z*来说,有z2≤z*≤z1
(ii)因为x1,x2当前均为非整数,是不满足要求的,我们可以选择其中的一个决策变量进行分枝。假设选取x1进行分枝,可以得到两个子集:
x1≤[4.8092]=4,x1≥[4.8092]+1=5;在这一步中我们就得到了两个子问题
子问题B1:其他条件和题中给出条件相同,第三个约束条件改为0≤x1≤4,x2≥0
对于这样一个线性规划问题,我们易得它的最优解为x1=4,x2=2.1,z1=349
子问题B2:其他条件和题中给出条件相同,第三个约束条件改为
x1≥5,x2≥0 易得最优解为x1=5,x2=1.57,z1=341.4
再定界:0≤z*≤349
(iii)仍未得出整数规划最优解,于是我们继续分别对问题B1和B2进行分枝,得到问题B11,B12,B21和B22,前两个是问题B1得到的子问题,后两个是B2得到的子问题
B11,B12在B1的基础上对x2分别限制为0≤x2≤2,x2≥3;
B21,B22在B2的基础上对x2分别限制为0≤x2≤2,x2≥3;
对这四个子问题分别求解有
B11:x1=4,x2=2,z1=340
B12:x1=1.43,x2=3,z1=327.14
B21:x1=5.44,x2=1,z1=308
B22:无可行解
于是我们将B21,B22,B12剪枝,断定原问题最优解为x1=4,x2=2,z1=340
总结分枝定界法求解整数规划问题步骤为:
开始,将问题转化为线性规划问题,解线性规划问题有以下几种情况:
(a)线性规划问题无可行解,此时整数规划问题也没有可行解;
(b) 线性规划问题有最优解,并且符合整数规划问题的整数条件,则两问题最优解相同;
©线性规划问题有最优解,但不符合整数规划问题的整数条件;
于是©中用观察法找一个整数规划问题的可行解作为下界,以线性规划问题的目标函数的最优解代入得到的值作为上界,进行分枝、定界、比较、剪枝迭代。

&3.0-1型整数规划
它是整数规划中的一种特殊情形,它的决策变量xj只能取0或者1,我们在这里先介绍这种变量在什么问题中会使用
1)引入0-1变量的实际问题
在这里插入图片描述
我们令xi(i=1,2,…,7)为0-1变量,当Ai点被选中时,xi取值为1,否则取值为0;于是问题可以被表述为
在这里插入图片描述
还有相互排斥的约束条件,以及关于固定费用的问题,都可以使用0-1型整数规划模型解决,这里不再赘述;
2)0-1型整数规划解法之一(过滤隐枚举法)
对于0-1型整数规划最容易想到的解法,当然是枚举法,当一个0-1型整数规划有n个变量时,需要检查2n次,对于n较大的情况,这么做效率是很低的;前面所说的分枝定界法,实际上就是一种隐枚举法;下面举例说明0-1型整数规划隐枚举法
在这里插入图片描述
(i) 先试探性求一个可行解,易看出 ( x1 , x2 , x3 ) = (1,0,0) 满足约束条件,故为一个可行解,且z = 3。
(ii) 因为是求极大值问题,故求最优解时,凡是目标值 z < 3 的解不必检验是否
满足约束条件即可删除,因它肯定不是最优解,于是应增加一个约束条件(目标值下界);
(iii) 改进过滤条件。
(iv) 由于对每个组合首先计算目标值以验证过滤条件,故应优先计算目标值 z 大的组合,这样可提前抬高过滤门槛,以减少计算量。
这种方法相比较于枚举法,只能说是有些许提升。

&4.蒙特卡洛法
蒙特卡洛法实际上就是一种随机模拟的方法,其实就是通过随机采样来解决问题,获得的结果不一定是最优的,但是是可以近似最优的。
在这里插入图片描述
假如我们使用显枚举法,则需要计算(100)5=1010个值,但假如我们只随机抽取106个点进行计算,由此得到一个最大值,这个最大值的可信度是多少呢?
我们可以假设需要近似的最大值占所有值的0.01,则在计算了106个点后,有至少一个点位于近似的最优解区域的概率为1-(1-0.01)1000000=0.99…9999(100多位),可以看到,这种方法得出的结果是具有很强的可信度的。接下来只需要看我们得到的近似最优解是否符合约束条件,如果不符合,可以增大采样的样本量,并重新进行随机过程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值