我正在用VRP做一个学校项目。我试图解决的问题是生成具有多个点的路由,每个点都必须在一个时间窗口中执行。
我的问题是如何在 jsprit 中将日期(unix 时间戳)转换为时间窗口,因为算法从 0 时间开始。我只是增量出时间间隔,还是缺少最佳实践。
感谢您的任何帮助。
已编辑。
JSprit 与单位无关。您可以选择要使用的设备。
我可以选择我的一周从星期一到星期日,我想用分钟来定义单位。在这种情况下,周一早上 9 点是时间 540 (9*60)。或者我可以用秒来定义它,在这种情况下,同一时间是 32400 (9*60*60)。只要时间单位始终保持一致,这并不重要。
Unix时间戳几乎可以肯定是多余的。在设定的时间运行解决方案;通常,您正在寻找离散问题的解决方案,并且您将按设定的时间间隔运行算法。这总是给你一个基准点,在这个基准点中,jsprit的"抽象"输出(例如到达时间678)到与当前问题相关的日期时间。
这样,我可以在 7 月 19 日为 w/c 7 月 25 日运行算法,但知道到达时间的解决方案是基于 7 月 25 日 00:00 的"0",然后只是添加分钟。
底线:JSprit 不会将调用解决方案的时间作为时间 0。它需要时间 0 作为您选择在任意系统中定义它的任何点;星期天的午夜,教皇方济各的就职典礼,任何事情基本上都:)