Java 在jsprit中使用带有日期的时间窗口
我正在和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”,然后只添加分钟数Java 在jsprit中使用带有日期的时间窗口,java,graphhopper,jsprit,Java,Graphhopper,Jsprit,我正在和VRP一起做一个学校项目。我试图解决的问题是生成具有多个点的路由,每个点必须在一个时间窗口中执行 我的问题是如何将日期(unix时间戳)转换为jsprit中的时间窗口,因为算法在0时间开始。我是只是计算时间间隔的增量,还是缺少最佳实践 谢谢您的帮助。编辑 JSprit是单位不可知论者。您可以选择希望使用的单位 我可以选择我的一周从周一到周日,我想用分钟来定义单位。在这种情况下,周一上午9点是时间540(9*60)。或者我可以用秒来定义它,在这种情况下,同一时间是32400(9*60*60
一句话: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结束。然后你就重新开始。好吧,我想我明白你的意思了。非常感谢你的帮助。你能把它贴出来作为投票的答案吗?