Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在jsprit中使用带有日期的时间窗口_Java_Graphhopper_Jsprit - Fatal编程技术网

Java 在jsprit中使用带有日期的时间窗口

Java 在jsprit中使用带有日期的时间窗口,java,graphhopper,jsprit,Java,Graphhopper,Jsprit,我正在和VRP一起做一个学校项目。我试图解决的问题是生成具有多个点的路由,每个点必须在一个时间窗口中执行 我的问题是如何将日期(unix时间戳)转换为jsprit中的时间窗口,因为算法在0时间开始。我是只是计算时间间隔的增量,还是缺少最佳实践 谢谢您的帮助。编辑 JSprit是单位不可知论者。您可以选择希望使用的单位 我可以选择我的一周从周一到周日,我想用分钟来定义单位。在这种情况下,周一上午9点是时间540(9*60)。或者我可以用秒来定义它,在这种情况下,同一时间是32400(9*60*60

我正在和VRP一起做一个学校项目。我试图解决的问题是生成具有多个点的路由,每个点必须在一个时间窗口中执行

我的问题是如何将日期(unix时间戳)转换为jsprit中的时间窗口,因为算法在0时间开始。我是只是计算时间间隔的增量,还是缺少最佳实践

谢谢您的帮助。

编辑

JSprit是单位不可知论者。您可以选择希望使用的单位

我可以选择我的一周从周一到周日,我想用分钟来定义单位。在这种情况下,周一上午9点是时间540(9*60)。或者我可以用秒来定义它,在这种情况下,同一时间是32400(9*60*60)。只要时间单位始终保持一致,这并不重要

unix时间戳对于这个问题几乎肯定是多余的。在设定的时间运行解决方案;通常,您正在寻找离散问题的解决方案,并将以设定的时间间隔运行算法。这总是为您提供一个基准点,在该基准点上,您可以将jsprit的“抽象”输出(例如,在时间678到达)转换为与当前问题相关的日期时间

这样,我可以在7月19日为7月25日w/c运行算法,但知道到达时间的解决方案是基于7月25日00:00为“0”,然后只添加分钟数

一句话:JSprit不会将调用解决方案的时间作为时间0。在任意系统中选择定义它的任意点都需要时间0;周日午夜,教皇方济各的就职典礼,基本上:)

编辑

JSprit是单位不可知论者。您可以选择希望使用的单位

我可以选择我的一周从周一到周日,我想用分钟来定义单位。在这种情况下,周一上午9点是时间540(9*60)。或者我可以用秒来定义它,在这种情况下,同一时间是32400(9*60*60)。只要时间单位始终保持一致,这并不重要

unix时间戳对于这个问题几乎肯定是多余的。在设定的时间运行解决方案;通常,您正在寻找离散问题的解决方案,并将以设定的时间间隔运行算法。这总是为您提供一个基准点,在该基准点上,您可以将jsprit的“抽象”输出(例如,在时间678到达)转换为与当前问题相关的日期时间

这样,我可以在7月19日为7月25日w/c运行算法,但知道到达时间的解决方案是基于7月25日00:00为“0”,然后只添加分钟数


一句话:JSprit不会将调用解决方案的时间作为时间0。在任意系统中选择定义它的任意点都需要时间0;周日午夜,教皇方济各的就职典礼,基本上:)

jsprit是单位不可知论者。您可以选择以分钟或秒为单位定义时间。您只需要定义一个参考点(什么是时间0?),之后,您就可以随时将转换回实时日期时间。至于“我是否只需要计算时间间隔的增量”,我不确定我是否理解您的要求。通常在unix时间戳上,0时间是1970年。在jsprit上,时间0是算法的开始。时间单位不是问题,问题是0和时间戳之间的差距,时间戳是一个大数字。我所说的delta是指,如果我必须将当前的时间戳减去所有提供的时间戳,这样就没有间隙。在这种情况下,是的,我们同意这一点。您需要找到一个合理的新unix时间戳来表示零,然后将时间窗口定义为与此位置的偏移量,因此您仍然需要确定如何定义时间单位。我想你把这件事想得太复杂了。我每天计算,00:00是时间零点,一直到1439(分钟)。如果我想解决一周的24小时手术,我会在10080结束。然后你就重新开始。好吧,我想我明白你的意思了。非常感谢你的帮助。你能把它贴出来作为投票的答案吗?jsprit是单位不可知论者。您可以选择以分钟或秒为单位定义时间。您只需要定义一个参考点(什么是时间0?),之后,您就可以随时将转换回实时日期时间。至于“我是否只需要计算时间间隔的增量”,我不确定我是否理解您的要求。通常在unix时间戳上,0时间是1970年。在jsprit上,时间0是算法的开始。时间单位不是问题,问题是0和时间戳之间的差距,时间戳是一个大数字。我所说的delta是指,如果我必须将当前的时间戳减去所有提供的时间戳,这样就没有间隙。在这种情况下,是的,我们同意这一点。您需要找到一个合理的新unix时间戳来表示零,然后将时间窗口定义为与此位置的偏移量,因此您仍然需要确定如何定义时间单位。我想你把这件事想得太复杂了。我每天计算,00:00是时间零点,一直到1439(分钟)。如果我想解决一周的24小时手术,我会在10080结束。然后你就重新开始。好吧,我想我明白你的意思了。非常感谢你的帮助。你能把它贴出来作为投票的答案吗?