Adaptive Large Neighborhood Search Heuristic for the Pickup and Delivery Problem with Time Windows.
If you find any problem with the code, you can contact by email, WeChat, public account, etc., or publish it in the issue, etc.
Please also star and fork if you liked it or thought it was helpful to you!
Mail: 1763423314@qq.com (wangqianlong), nku_yjy@163.com (yujinyue)
包括文件:
OAs为需求信息,ID,PICKUP,DELIVERY节点,(服务费)
Nodes为节点信息:ID,坐标(x,y),时间窗(a,b),需求量(dm),服务时间(st)
txt为基本信息说明
为了便于分析,保留了三个阶段的解:初始解,LNS最小化车辆数,ALNS优化
ALNS求解结果:可视化,解输出,算子得分曲线变化图,ALNS目标值变化曲线
参数:文件夹位置,订单的数量(该参数暂时不用)
属性说明:
Nodes_numpy:将dataframe转换为array,提高算法中访问节点各类信息的效率
参数:ID,卡车的最大载重,数据集中时间窗的最大值(一般就是depot的b值)
time_line:卡车离开某节点的时间
其余属性说明见代码注释
由于在算法中需要频繁的区分当前解和搜索返回解、python面向对象的特性以及数据结构的复杂,使用deepcopy函数复杂度较高,使用时时间开销过大,故定义一个该数据结构专用的copy函数
入参:修改点位置、inputdata、removal还是insert、如果为insert那么为插入PICKUP还是DELIVERY、如果为插入DELIVERY则还需要传入PICKUP的插入位置
return 插入是否成功
说明:如果时insert则使用了参数latest_possible_time 进行O(1)检查加速
其他函数见代码注释