Google OR-Tools VRPTW跨天、分钟级时间窗配置及出发时间相关问题
VRPTW 时间窗配置问题解答
问题1:跨自然日时间窗配置
OR-Tools VRPTW 求解器默认要求时间窗的结束值必须大于等于开始值,直接设置{23,2}会因为结束值小于开始值触发参数校验异常。
正确配置方式是将所有时间统一转换为从调度周期起始点开始计算的连续时间戳,推荐用分钟作为最小单位:比如以当日0点为起始点,今日23:00对应数值为 23*60=1380,次日2:00对应数值为 (24+2)*60=1560,跨天时间窗设置为{1380, 1560}即可正常求解。
问题2:带分钟的时间窗配置
求解器本身只处理时间数值,时间精度由你自己定义的单位决定:
将你当前使用的小时单位切换为分钟单位即可实现分钟级时间窗配置。例如20:20转换为20*60+20=1220,21:00转换为21*60=1260,对应时间窗设置为{1220, 1260}即可。
注意:切换单位后,节点间行驶时间、节点服务时间等所有时间相关参数都要统一使用相同单位,避免逻辑错误。
问题3:车辆出发时间规则
默认配置下,车辆的有效出发时间范围就是depot节点对应的时间窗范围:车辆最早可以从depot时间窗的开始值出发,最晚必须在depot时间窗的结束值之前离开depot。
如果你有特殊需求,也可以通过求解器提供的车辆时间配置接口单独给每个车辆设置独立的出发/返回时间限制,不受depot时间窗约束。
内容的提问来源于stack exchange,提问作者uncle bob
相关产品推荐
相关产品推荐

