Open Yongzide opened 4 years ago
请问在readme中你提到的‘’结合了两篇paper的长处‘’,是参考的哪两篇paper呢?我也想参考一下。
吴耀华的《带时间窗车辆路径问题的改进粒子群算法研究》 李宁老师的《带时间窗车辆路径问题的粒子群算法》
目前只找到这两篇,我记得还有英文论文,不过没保存。 这位同学的毕业论文是关于VRPTW的,可惜现在google上搜不到了,也可以参考下: https://github.com/KrupaPrag/VRPTW
吴耀华的《带时间窗车辆路径问题的改进粒子群算法研究》 李宁老师的《带时间窗车辆路径问题的粒子群算法》
目前只找到这两篇,我记得还有英文论文,不过没保存。 这位同学的毕业论文是关于VRPTW的,可惜现在google上搜不到了,也可以参考下: https://github.com/KrupaPrag/VRPTW
非常感谢!!
函数dot_improve中num>selection[2]这个看不懂额(⊙o⊙)
函数dot_improve中num>selection[2]这个看不懂额(⊙o⊙)
看到一篇遗传算法轮盘赌的交叉算子。额但selection[2]不就是1吗
函数dot_improve中num>selection[2]这个看不懂额(⊙o⊙)
看到一篇遗传算法轮盘赌的交叉算子。额但selection[2]不就是1吗
这段if语句应该分别是num>selection[0]和num>selection[1]。 我居然把1当起始索引了,真丢人...
函数dot_improve中num>selection[2]这个看不懂额(⊙o⊙)
看到一篇遗传算法轮盘赌的交叉算子。额但selection[2]不就是1吗
这段if语句应该分别是num>selection[0]和num>selection[1]。 我居然把1当起始索引了,真丢人...
O(∩_∩)O还想问下重编码,solution[1][i]都是1,solution[0][i]依次增大,是每站不同车吗,不理解喔
受益颇多,感谢分享!
您好,我对您的代码有两处疑问,不知您可否解答? 1.您的代码中轮盘赌的部分好像可能没有起到效果,目前只是random.random()的值对比后选择其中一个,本质上好像还是在用随机数来进行选择变异方向。 2.关于run()函数部分注释您写到,生成两两重叠的粒子群,但我发现其实代码中应该只用了一个粒子群呀,或者您是不是想表达不断更新的这个solution和dot_best是两个重叠的粒子群呢,但我个人认为这两者其实表达为一个粒子群的两个不同状态更合适,因为如果说使用两个粒子群,应该是要彼此产生信息共享和引导变异方向的吧。
Best solution: [0, 1, 2, 3, 4, 4, 3, 2, 4, 5, 2, 6, 7, 7, 5, 6, 1, 8, 8, 7, 2, 8, 7, 3, 0, 1, 8, 0, 6, 9, 3, 10, 9, 0, 7, 10, 5, 7, 2, 9, 1, 3, 5, 1, 10, 6, 0, 9, 6, 8, 8] [1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 3, 1, 1, 2, 2, 2, 2, 1, 2, 3, 4, 3, 4, 3, 2, 3, 4, 3, 3, 1, 4, 1, 2, 4, 5, 2, 3, 6, 5, 3, 4, 5, 4, 5, 3, 4, 5, 4, 5, 5, 6] 请问这个结果分别是什么意思
您好,我对您的代码有两处疑问,不知您可否解答? 1.您的代码中轮盘赌的部分好像可能没有起到效果,目前只是random.random()的值对比后选择其中一个,本质上好像还是在用随机数来进行选择变异方向。 2.关于run()函数部分注释您写到,生成两两重叠的粒子群,但我发现其实代码中应该只用了一个粒子群呀,或者您是不是想表达不断更新的这个solution和dot_best是两个重叠的粒子群呢,但我个人认为这两者其实表达为一个粒子群的两个不同状态更合适,因为如果说使用两个粒子群,应该是要彼此产生信息共享和引导变异方向的吧。
你提的问题很关键:
Best solution: [0, 1, 2, 3, 4, 4, 3, 2, 4, 5, 2, 6, 7, 7, 5, 6, 1, 8, 8, 7, 2, 8, 7, 3, 0, 1, 8, 0, 6, 9, 3, 10, 9, 0, 7, 10, 5, 7, 2, 9, 1, 3, 5, 1, 10, 6, 0, 9, 6, 8, 8] [1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 3, 1, 1, 2, 2, 2, 2, 1, 2, 3, 4, 3, 4, 3, 2, 3, 4, 3, 3, 1, 4, 1, 2, 4, 5, 2, 3, 6, 5, 3, 4, 5, 4, 5, 3, 4, 5, 4, 5, 5, 6] 请问这个结果分别是什么意思
参考line 28 "最好方案[Xv各任务车辆编号,Xr各任务在对应车辆路径执行次序]" 你给的列表长度为51,则分别对应需要解决的51个订单。 其中Xv代表执行该订单的车辆编号,Xr代表该订单是这辆车接的第几单。 所以你给的 Xv=[0, 1, 2, 3, 4, 4, ....] Xr=[1, 1, 1, 1, 1, 2, ....] 中index=0时表示第1个订单由编号0的车处理,该订单是编号0车处理的第1个订单。index=1,2,3,4时同理所以Xr均为1。当index=5时,第6个订单还由编号4车处理,此时该订单就是编号4的车处理的第2个订单(因为第5个订单是编号4车处理的第1个订单)。
知网上有几篇,外国文献也比较少。 国内相关论文在实现细节上语焉不详,照着paper来实现算法不太现实。