经过小编的不断努力和修正,Column Generation + ESPPRC+ pulse algorithm的内容终于写完了。此过程真是充满曲折啊,希望大家看完多多支持一下。
关于这部分的代码,我们提供两个版本。
第一个版本来自GitHub,是一个叫Seminar的国外大神写的。
他的子问题采用上一篇推文介绍的模型,找一条reduced cost最短的路径,运行只需要更改下面文件中算例文件的路径即可。
运行的中间结果如下:
- Iteration:迭代次数
- SbTime:子问题求解时间(s)
- nPaths:Master Problem中的总路径
- MP lb:Master Problem的线性松弛最优解,这里由于建模方式的原因,该最优解把服务时间也算在路径距离上的,最终减去9000即可得到路径距离。
- SB lb:子问题的线性松弛最优解。
- SB int:子问题的整数最优解。
关于子问题的最大求解时间限制(s),可以在下面文件中设置:
第二个版本是小编写的:
运行参数说明:
-in:算例文件路径;
-out:结果文件输出。
比如:
【-in input\Solomon\100_customer\C101.TXT -out output\】
参数设置请找到以下主运行文件:
右键找到运行设置里面进行配置。(默认情况下输入上面的参数能直接运行)
中间结果:
- Iteration:迭代次数
- SbTime:子问题求解时间(s)
- nPaths:MasterProblem中的总路径
- MP lb:Master Problem的线性松弛最优解。
- SB lb:子问题的最优解。
关于第一个版本,其子问题建模方式还是依赖主问题的对偶变量的,如下:
其中t_ij就是每条边本来的cost,pi就是Master Problem的对偶变量。每一次迭代就是这样更新子问题的cost,重新建模求解的。
关于小编的版本:
每次迭代的时候会更新ESPPRC问题中的cost,然后运行pulse算法重新求解。
其他的话结构和注释都写得非常清晰了,大家肯定能看懂的。
由于是精确算法,子问题时间没有保障的,有时候很快能跑完,有时候一天都跑不完。和算例有很大关系的。
玛氏中国|2025年度皇家宠物沈阳地区仓配一体服务遴选
1959 阅读又一起物流并购完成,双方将擦出哪些“新火花”?
1783 阅读营收2844亿元的顺丰,依然很“稳”!
1397 阅读极兔速递发布2024年ESG报告 推进物流全链路绿色管理
993 阅读顺丰控股:2024年营收2844亿元 归母净利润102亿元 投入106亿元提升股东回报
890 阅读罗戈研究院长潘永刚获聘成为中物联碳排放管理师职业能力等级认证项目专家
850 阅读百世越南与胡志明工贸厅达成战略合作,助力越南商品加速出海
857 阅读营收157.46亿元净利润持续翻倍,顺丰同城再交亮眼“成绩单”
776 阅读嘉里物流联网股东应占溢利录得95%增长 收入及核心纯利增长表现超越大市
782 阅读小象超市日单量破200万单
780 阅读