Java 时间窗口变量的解释,尤其是到达时间

Java 时间窗口变量的解释,尤其是到达时间,java,optaplanner,Java,Optaplanner,我试图理解Optaplanner车辆路径示例的可变时间窗口。有些观点我并不真正理解,需要确认 readyTime、dueTime、serviceDuration和arrivalTime使用的单位度量是什么?我试着查看样本数据,但仍然无法找到它 如何计算到达时间?它应该和从一个地点到另一个地点所需的时间有关,但我找不到如何计算时间 任何意见和答案都将不胜感激。 谢谢和问候 时间单位是/似乎是相对的。在本例中,它是一个整数,没有实际的时间戳信息(例如,绝对日期)。采用这种方法的优点是,您不需要使用“

我试图理解Optaplanner车辆路径示例的可变时间窗口。有些观点我并不真正理解,需要确认

  • readyTime、dueTime、serviceDuration和arrivalTime使用的单位度量是什么?我试着查看样本数据,但仍然无法找到它
  • 如何计算到达时间?它应该和从一个地点到另一个地点所需的时间有关,但我找不到如何计算时间
  • 任何意见和答案都将不胜感激。 谢谢和问候

  • 时间单位是/似乎是相对的。在本例中,它是一个整数,没有实际的时间戳信息(例如,绝对日期)。采用这种方法的优点是,您不需要使用“年”、“月”或“日”单位制

  • 查看
    ArrivalTimeUpdateingVariableListener
    类。有一种方法叫做
    calculaterRivalTime()
    。计算本身会计算当前客户和上一个出发时间,并检查上一个出发时间是客户链的起点(如果其
    null
    ,则您得到您的车辆)还是现有客户

    2.1案例“车辆”表示,您检查当前客户(即您车辆的第一个作业)的最大读取时间
    以及车辆段到当前客户的距离。取一个大于另一个,并将其设置为更新的到达时间

    2.2案例“N-客户(N>1)”:获取前一个客户的
    出发时间
    ,添加与前一个客户的距离,并将该值作为更新后的
    到达时间
    返回

  • 在这两种情况下,如果最后一次已知的到达时间等于更新的
    到达时间
    ,您将检查整个链,以防止重复计算。这将节省性能,因为您将在
    条件下中断

  • 时间单位是/似乎是相对的。在本例中,它是一个整数,没有实际的时间戳信息(例如,绝对日期)。采用这种方法的优点是,您不需要使用“年”、“月”或“日”单位制

  • 查看
    ArrivalTimeUpdateingVariableListener
    类。有一种方法叫做
    calculaterRivalTime()
    。计算本身会计算当前客户和上一个出发时间,并检查上一个出发时间是客户链的起点(如果其
    null
    ,则您得到您的车辆)还是现有客户

    2.1案例“车辆”表示,您检查当前客户(即您车辆的第一个作业)的最大读取时间
    以及车辆段到当前客户的距离。取一个大于另一个,并将其设置为更新的到达时间

    2.2案例“N-客户(N>1)”:获取前一个客户的
    出发时间
    ,添加与前一个客户的距离,并将该值作为更新后的
    到达时间
    返回


  • 在这两种情况下,如果最后一次已知的到达时间等于更新的
    到达时间
    ,您将检查整个链,以防止重复计算。这节省了性能,因为您将打破
    while
    条件。

    对于否决我的问题的人,请告诉我您为什么这样做。如果我问了一个错误的问题,你可以告诉我我的问题出了什么问题,我可以纠正它。如果我问错了问题,你可以告诉我我的问题出了什么问题,我可以纠正它。这就是问题所在,我需要知道如何测量它,也就是说,我希望客户的readyTime是8.00,dueTime是17.00,我该怎么做?我不知道如何将这些整数值转换为时间值。2.这是否意味着,距离等于旅行的时间呢?在现实世界中,有什么不同吗?相同的10公里2路距离可能需要不同的时间才能正确行驶?1。我在回答当前的实施时只是在想,从来没有说过我已经实施了:-)。您可以在预处理步骤中实现“关系时间”。每个作业都有一个以绝对日期格式定义的可选dueTime(因此我理解您的用例)。如果在数据集中读取数据,则可以根据当前系统时间转换该格式。您当前的系统时间是一个所谓的“锚定点”,您可以从中比较您的系统时间。转换时间是一个预处理步骤。比较过程是解决问题过程的一部分。是的,这就是“最快”路线的要点。如果你的“行驶距离”或“油耗”不起作用,你可以这样做,节省时间,而不是“燃油”和“行驶距离”。在现实世界中(例如,使用导航系统),人们也会根据驾驶员的知识和个人偏好(例如,舒适驾驶、公路限速较低、骑行过程中不停车等)选择最快或最短的路线1。这就是问题所在,我需要知道如何测量它,也就是说,我希望客户的readyTime是8.00,dueTime是17.00,我该怎么做?我不知道如何将这些整数值转换为时间值。2.这是否意味着,距离等于旅行的时间呢?在现实世界中,有什么不同吗?相同的10公里2路距离可能需要不同的时间才能正确行驶?1。我在回答当前的实施时只是在想,从来没有说过我已经实施了:-)。您可以在预处理步骤中实现“关系时间”。每个作业都有一个以绝对日期格式定义的可选dueTime(因此我理解您的用例)。如果你读入你的数据