The Electric Vehicle-Routing Problem with Time Windows and Recharging Stations

       困扰了快三天的问题,还是没有完全解决,留个坑在这,等下次有时间再来解决吧。希望有知道原因的朋友可以给予指导或者提供解决问题的思路,不甚感激!!!

经过互联网友友的帮助,这个坑填上啦,所有算例的结果和原文均一样!(2024.04.09)

代码放在github上了,有需自取:mumuorMUMU/EVRPTW_GUROBI: GUROBI code for paper " The Electric Vehicle-Routing Problem with Time Windows and Recharging Stations " (github.com)

或者有知道这篇论文源码的同学可以分享一下吗,github上的不太确定是复现的还是源码

这篇论文里的EVRPTW问题的经典模型,采用的也是经典的公开算例集

The Electric Vehicle-Routing Problem with Time Windows and Recharging Stations | Transportation Science (informs.org)

1. 用cplex求解的结果如下表

用的是github上的一个用cplex建模求解的(不确定是自己复现的还是论文的源码)

E-VRPTW/E-VRPTW.mod at main · jmanzolli/E-VRPTW (github.com)

2. 用Gurobi求解的结果如下表

是自己根据论文里的数学模型和上述cplex例子,用Gurobi的python api写的

算例论文CplexGurobi
C101-5

m = 2

257.75

 m =3

247.15

m = 3 (不约束车辆数)

247.15

m =2 (约束m<=2)

257.75

m<=1

无解

C103-5

m=1

176.05

 m = 2

165.67

m=2(不约束车辆数)

165.67

m = 1(约束m<=1)

无解

C206-5

m=1

242.55

 m = 3

236.58

m = 3

236.58

 m =2

236.58

m =1

245.34

C208-5

m=1

158.48

m =1

158.48

R104-5

m =2

136.69

m =2 

136.69

R105-5

m =2 

156.08

 m =2 

156.08

R202-5

m=1

128.78

m =1 

128.78

出现的问题如下:

问题一  cplex(246.7)和gurobi(247.15)求解同一个算例得到的目标函数值不一样,但最优解对应的路径是一样的

      怀疑是数值精度问题,发现cplex得到的解里面的浮点数都只有一位小数,明显精度不够,于是想到要提高计算精度,但查找了很多资料也没有找到提高计算精度的方式,修改了.ops文件里的"Display presion"也没有用。

最后按图索骥,返回去检查代码所有会产生浮点数计算的地方,发现在计算距离矩阵的时候只保留了一位小数:

修改上述问题,此问题得到了解决!!!!cplex和gurobi求解同一算例得到的目标函数值完全相同!

小结:出现此类问题首先注意是不是数值精度问题;接着考虑两个模型是否完全等价;最后考虑是否cplex和gurobi中的gap(终点)不一样。

问题二  前三个算例和论文里给出的结果不一致

       怀疑是设置的车辆数量约束导致的不一样,论文里应该是第一目标都是最小化车辆数,再在最小化车辆数的前提下来最小化总路径长度,但论文给出的数学模型并没有表示出这一点

于是尝试在gurobi中给模型添加总车辆数量的约束(论文中给出的数学并没有这一约束):

于是出现了下表所示的情况,C101-5算例确实如猜想一样,但C103-5算例当设置车辆数为1时,根本无可行解,C206-5算例得到的结果和论文给出的不一样,所以应该不完全是否设置车辆数量约束的问题,。对其他的算例进行测试,发现得到的结果和论文又是一样的,所以不知道前面这三个算例的结果到底问题出在哪里?????

本人目前小白入门,欢迎大家讨论、指教,谢谢!

### 回答1: 车辆路径问题是指在给定的一组客户需求和一组可用车辆的情况下,如何安排车辆的路径,以满足所有客户需求并最小化总路程或总成本的问题。这是一个NP难问题,需要运用优化算法来求解。常见的解决方法包括贪心算法、遗传算法、模拟退火算法等。该问题在物流、配送、交通等领域有广泛的应用。 ### 回答2: 车辆路径问题(Vehicle Routing ProblemVRP)是指在给定一组客户的需求和一定数量的车辆的情况下,如何合理安排车辆的路线,使得满足客户需求的同时,最大程度地减少总行驶距离或总成本。 在VRP中,车辆需要从一个或多个中心点出发,途径多个客户点,并最终返回中心点。问题的目标是找到一条合理的路线安排,使得每个客户点都得到满足,同时最小化车辆的总行驶距离或总成本。这么做可以有效地提高运输的效率和经济性。 VRP是一个经典的优化问题,它在物流、供应链管理、货物配送等领域具有广泛的应用。解决VRP问题的方法通常是建立数学模型,并利用启发式算法、精确算法等来求解最优解。常用的求解方法有贪婪算法、遗传算法、蚁群算法等。 VRP的解决可以帮助企业合理调度和管理车辆,提高运输效率,降低成本。例如,在城市配送中,合理的路线安排可以减少车辆的等待时间和行驶时间,提高配送效率。在邮政快递中,VRP可以帮助确定最佳的投递路线,减少快递员的行驶距离和时间。 总之,车辆路径问题是指在给定客户需求和车辆数量的情况下,优化车辆的路线安排,使得满足客户需求的同时,最大程度地减少总行驶距离或总成本。解决这个问题可以提高运输的效率和经济性,具有广泛的应用价值。 ### 回答3: 车辆路径问题(Vehicle Routing ProblemVRP)是一种组合优化问题,它涉及到在给定一组配送点和一组车辆的情况下,如何合理规划车辆的路径,以最小化总体成本或满足特定约束条件。 车辆路径问题主要存在于物流配送、快递派送、货物运输等领域,其目标是使运输效率最大化,成本最小化。在解决这个问题时,需要考虑多个因素,包括配送点的数量、需求量、车辆的容量与数量、运输时间窗口、路径限制等。 要解决车辆路径问题,需要采用合适的算法和优化技术。常用的算法包括贪婪算法、遗传算法、模拟退火算法等。这些算法通过逐步选择符合某种规则的路径,经过一系列的迭代和优化,最终得到一组最优的车辆路径方案。 解决车辆路径问题可以带来多方面的好处。首先,它可以提高物流配送的效率,减少运输成本。其次,它可以优化路径规划,减少车辆行驶的里程和时间,降低交通拥堵和环境污染。此外,车辆路径问题也可以提高客户服务水平,确保货物准时送达,增强公司的竞争力和品牌形象。 总之,车辆路径问题是一个复杂的优化问题,通过合理运用算法和优化技术,可以得到一组最佳的车辆路径方案,从而提高物流效率、降低成本、优化路径规划,并带来多方面的好处。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值