限制切割模式数量的下料问题

联系我:ligong15 AT foxmail.com

话接上回列生成学习笔记,通过下料问题对列生成问题进行学习。

一、问题场景与建模

在简单的下料问题(简称原问题)上加上切割模式数量限制,朴素的想法是加上如下约束

Mx_{i}\geq y_{i}                                                              (1)

\sum x_{i}\leq n                                                              (2)

其中y_{i}为原问题的变量,即用第i个切割模式切了y_{i}卷原材料。x_{i}为0-1变量,当x_{i}= 1时,y_{i}> 0,约束(1)对x_{i}y_{i}的映射关系进行了阐述。约束(2)通过设定n,对问题生成的切割模式数量进行限制,即最优解的切割模式数量不大于n。

二、问题求解框架

在一般的列生成求解流程中加入以上约束,求解过程中线性松弛所有变量,针对原问题进行加列操作,并配套添加约束(1、2),在加列流程停止之后得到LP(final),修改变量属性为整数型,获得MIP,求解MIP。

三、初始解的生成

简单列生成算法初始可行解为每个切割模式固定切一个需求,初始可行解需要k个切割模式,k为切割需求的数量。当k> n时,可以发现初始模型无可行解,即无法在n个切割模式限制下覆盖到所有需求。因此初始解需要进行特殊生成。

针对初始解的生成有两种思路:

(一)将需求长度进行排序得到序列V_{1},将序列V_{1}中从前到后长度和小于等于原材料长度的需求放置于同一切割模式中,得到初始解x_{1}^{s}; 

(二)将需求数量进行排序得到序列V_{2},将序列V_{2}中从前到后长度和小于等于原材料长度的需求放置于同一切割模式中,得到初始解x_{2}^{s}

四、实验结果

针对上文两种初始解生成方式进行实验,算例存在42种切割需求,总需求数量5393,切割模式限制为12,在15s内求解完成。初始解x_{1}^{s}对应解为534卷,初始解x_{2}^{s}对应解为484卷,且解中均存在初始解。

五、需要解决的问题

通过对简单列生成算法进行修改,可以较为便利的求解限制切割模式数量的下料问题,但初始解对求解质量影响较大,暂未对求解质量进行分析。针对此问题后续进行学习研究。经对比发现,两个初始解得到的LP(final)所求最优解一致。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值