我正在分析带有时间窗口的JSPRIT功能,以解决几天单程的特定问题。
卡车正在装载包裹,这些包裹将在几天内(而不是一天)内送达。这是因为发送点之间的距离很大。每一站的营业时间都是从8:00到16:00,所以时间窗口很紧。因此,在第一天,卡车递送一些包裹,直到16:00,当天不允许更多的递送。
然后,司机应该进入另一个投递点,该投递点将在第二天8:00到16:00再次开放,该过程将继续进行,直到所有包裹都已交付,track可以返回其仓库。
在JSPRIT中实现这样的场景是可能的吗?
发布于 2017-01-11 02:44:31
回复晚了,对不起。我不明白为什么这应该是一个太大的问题。只需定义整个星期的时间单位,不要给任何作业一个时间窗口(或者一个基本上跨越整个星期的时间窗口)。
然后你定义你的交通工具。假设你有两辆车组成的车队,你必须定义:
mondayA
mondayB
tuesdayA
tuesdayB
wednesdayA
....在你一周的时间表中,每辆车只在早上7点半到下午4点之间运行(不返回仓库)一天。当没有可用的车辆时,其他作业无法提供服务,因此这符合您的目标(在开始时间上有30分钟的近似值)。
我认为定义每天复制每个作业的问题要复杂得多,所以你可能不得不接受这个或类似的近似,除非你想走具有许多约束的大规模问题的道路,或者编写自定义约束。
https://stackoverflow.com/questions/41169984
复制相似问题