温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JAVA VRPTW松弛模型的Column Generation算法怎么实现

发布时间:2021-11-30 13:36:02 来源:亿速云 阅读:171 作者:iii 栏目:大数据

本篇内容介绍了“JAVA VRPTW松弛模型的Column Generation算法怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

第一个版本来自GitHub,是一个叫Seminar的国外大神写的。

他的子问题采用上一篇推文介绍的模型,找一条reduced cost最短的路径,运行只需要更改下面文件中算例文件的路径即可。

JAVA VRPTW松弛模型的Column Generation算法怎么实现

运行的中间结果如下:

JAVA VRPTW松弛模型的Column Generation算法怎么实现

- Iteration:迭代次数

- SbTime:子问题求解时间(s)

- nPaths:Master Problem中的总路径

- MP lb:Master Problem的线性松弛最优解,这里由于建模方式的原因,该最优解把服务时间也算在路径距离上的,最终减去9000即可得到路径距离。

- SB lb:子问题的线性松弛最优解。

- SB int:子问题的整数最优解。

关于子问题的最大求解时间限制(s),可以在下面文件中设置:

JAVA VRPTW松弛模型的Column Generation算法怎么实现

第二个版本是小编写的:

运行参数说明:

-in:算例文件路径;

-out:结果文件输出。

比如:

【-in input\Solomon\100_customer\C101.TXT -out output\】

参数设置请找到以下主运行文件:

JAVA VRPTW松弛模型的Column Generation算法怎么实现

右键找到运行设置里面进行配置。(默认情况下输入上面的参数能直接运行)

JAVA VRPTW松弛模型的Column Generation算法怎么实现

中间结果:

JAVA VRPTW松弛模型的Column Generation算法怎么实现

- Iteration:迭代次数

- SbTime:子问题求解时间(s)

- nPaths:MasterProblem中的总路径

- MP lb:Master Problem的线性松弛最优解。

- SB lb:子问题的最优解。

关于第一个版本,其子问题建模方式还是依赖主问题的对偶变量的,如下:

JAVA VRPTW松弛模型的Column Generation算法怎么实现

其中t_ij就是每条边本来的cost,pi就是Master Problem的对偶变量。每一次迭代就是这样更新子问题的cost,重新建模求解的。

关于小编的版本:

JAVA VRPTW松弛模型的Column Generation算法怎么实现

每次迭代的时候会更新ESPPRC问题中的cost,然后运行pulse算法重新求解。

“JAVA VRPTW松弛模型的Column Generation算法怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI