时间窗变量的解释,特别是到达时间
Explanation of Time Windowed variables, especially arrival time
我试图了解 Optaplanner 车辆路径示例的变体时间窗。有些地方我不是很明白,需要确认。
- 用于 readyTime、dueTime、serviceDuration 和 arrivalTime 的测量单位是什么?我试图查看示例数据,但仍然无法弄清楚。
- 如何计算到达时间?应该和从一个地方到另一个地方需要的时间有关,但是我找不到怎么计算那个时间。
任何评论和回答将不胜感激。
谢谢和问候。
时间单位is/seems相对。在示例中,它是一个整数,没有真正的时间戳信息(例如绝对日期)。采用这种方法的优点是您不需要使用 "year"、"month" 或 "day" 单位系统。
看看ArrivalTimeUpdatingVariableListener
class。有一种方法叫做calculateArrivalTime()
。计算本身需要您当前的客户和之前的出发时间,并检查之前的出发时间是否是您的客户链的起点(如果它是 null
,那么您会得到您的车辆)或现有客户。
2.1 案例 "vehicle" 说,你检查当前客户(也就是你的车辆的第一份工作)的最大值 readyTime
和仓库到你当前客户的距离。你拿一个比另一个大的,然后设置为更新后的 arrivalTime
.
2.2 案例"N-customer (N > 1)":获取前一个客户的departureTime
,加上与前一个客户的距离和return更新后的值arrivalTime
。
在这两种情况下,您都将检查您的完整链,如果最后已知的到达时间等于更新后的 arrivalTime
以防止重复计算。这样可以节省性能,因为您将打破 while
条件。
我试图了解 Optaplanner 车辆路径示例的变体时间窗。有些地方我不是很明白,需要确认。
- 用于 readyTime、dueTime、serviceDuration 和 arrivalTime 的测量单位是什么?我试图查看示例数据,但仍然无法弄清楚。
- 如何计算到达时间?应该和从一个地方到另一个地方需要的时间有关,但是我找不到怎么计算那个时间。
任何评论和回答将不胜感激。 谢谢和问候。
时间单位is/seems相对。在示例中,它是一个整数,没有真正的时间戳信息(例如绝对日期)。采用这种方法的优点是您不需要使用 "year"、"month" 或 "day" 单位系统。
看看
ArrivalTimeUpdatingVariableListener
class。有一种方法叫做calculateArrivalTime()
。计算本身需要您当前的客户和之前的出发时间,并检查之前的出发时间是否是您的客户链的起点(如果它是null
,那么您会得到您的车辆)或现有客户。2.1 案例 "vehicle" 说,你检查当前客户(也就是你的车辆的第一份工作)的最大值
readyTime
和仓库到你当前客户的距离。你拿一个比另一个大的,然后设置为更新后的arrivalTime
.2.2 案例"N-customer (N > 1)":获取前一个客户的
departureTime
,加上与前一个客户的距离和return更新后的值arrivalTime
。
在这两种情况下,您都将检查您的完整链,如果最后已知的到达时间等于更新后的 arrivalTime
以防止重复计算。这样可以节省性能,因为您将打破 while
条件。