我正在分析具有时间窗口的JSPRIT功能,以解决一日游的特定问题。
卡车装满了包裹,这些包裹将在几天内(不是一天)交付。这是因为交货点之间的距离很远。每个站点从8:00开放至16:00,因此有困难的时间窗口。因此,在第一天,卡车在16:00之前提供一些包裹,并且在同一天允许的情况下不再提供更多的包裹。
然后司机应该进入另一个交付点,该交付点将在第二天从8:00到16:00再次开放,并且程序继续,直到所有包裹被交付并且轨道可以返回其仓库。
是否可以在JSPRIT中实现这样的场景?
答案 0 :(得分:0)
迟到回复抱歉。我不明白为什么这应该是一个太大的问题。只需在整个星期定义您的时间单位,不要给任何作业一个时间窗口(或基本跨越整周的时间窗口)。
然后你定义你的车辆。假设你拥有2辆车的车队,你必须定义:
mondayA
mondayB
tuesdayA
tuesdayB
wednesdayA
....
这些车辆中的每一辆仅在您的一周时间线内的上午7:30至下午4点(不返回仓库)运行一天。当没有车辆可用时,其他工作无法进行维修,因此符合您的目标(在开始时间内小近30分钟)。
我认为定义每个作业每天重复的问题会更加复杂 更复杂,所以你可能不得不接受这个或类似的近似,除非你想要下去具有大量约束的大规模问题或编写自定义约束的路径。