时间窗是路径在某个网络位置(如路径分析中的停靠点)访问的开始时间和结束时间之间的时段。
有两个网络分析图层包含时间窗:路径图层和车辆配送图层。以下两个表列出了可设置时间窗的网络分析类列表。
路径分析图层中的时间窗字段
网络分析类 | 时间窗字段 |
---|---|
停靠点 | TimeWindowStart |
TimeWindowEnd |
注:
如果填充了 Stops 图层中的任何时间窗字段(TimeWindowStart 和 TimeWindowEnd),将使用时间窗。使用创建路径分析图层地理处理工具对话框中的时间字段的时区参数创建新路径分析图层时,可以为时间窗字段指定时区。要更新现有图层上时间窗字段的时区,请使用 Python 中 RouteSolverProperties 类的 timeZoneUsageForTimeFields 属性。
车辆路线问题分析图层中的时间窗字段
网络分析类 | 时间窗字段 |
---|---|
停靠点 | TimeWindowStart |
TimeWindowEnd | |
TimeWindowStart2 | |
TimeWindowEnd2 | |
站点 | TimeWindowStart |
TimeWindowEnd | |
TimeWindowStart2 | |
TimeWindowEnd2 | |
休息点 | TimeWindowStart |
TimeWindowEnd |
在车辆路线问题分析图层中,不需要选中任何属性以启用时间窗,它们始终处于可用状态。在“停靠点”和“站点”类中,您可以设置两个时间窗。
注:
如果填充了 Orders 和 Depots 图层中的任何时间窗字段(TimeWindowStart 和 TimeWindowEnd),将使用时间窗。使用创建车辆配送分析图层地理处理工具对话框中的时间字段的时区参数创建路径分析图层时,可以为时间窗字段指定时区。要更新现有图层上时间窗字段的时区,请使用 Python 中 VehicleRoutingProblemSolverProperties 类的 timeZoneUsageForTimeFields 属性。
车辆配送中的路径对象也包含时间窗字段:EarliestStartTime 和 LatestStartTime。它们用于指定路径可以开始其行程的时段。
使用时间窗中的日期
时间窗的日期部分用于指示时间窗口是否在特定日期,一周中某一天或是当前日期发生。例如,如果您的时间窗代表配送时间,则可以是计划的特定日期的一次性配送,星期三发生的常规配送,或者是当天计划的配送,而与当前的日期无关。
对于特定日期的时间窗,仅需在填充时间窗字段时包括该日期即可。在下一部分的示例中,时间窗发生在 2018 年 3 月 16 日。
可使用以下日期来指定一周中的每一天,而无需使用特定的日期:
- 今天 - 12/30/1899
- 星期日 - 12/31/1899
- 星期一 - 1/1/1900
- 星期二 - 1/2/1900
- 星期三 - 1/3/1900
- 星期四 - 1/4/1900
- 星期五 - 1/5/1900
- 星期六 - 1/6/1900
时间窗日期应与时间中指定的日期(用于路径分析)或默认日期(用于车辆配送分析图层)匹配。
时间窗示例
为了更好地理解时间窗,以需要找到路径的四个停靠点(a、b、c 和 d)为例进行说明。每个停靠点的时间窗由其 TimeWindowStart 和 TimeWindowEnd 字段指定。
路径可以在上午 8:00 到 9:00 之间的任意时间从点 a 开始。但是,它不应在上午 9:10 之前到达点 b。如下所示,路径在上午 9:05:08 到达点 b。
由于仅应在 9:10 和 9:12 a.m. 间访问 b,路径在 b 处等待了 4 分钟 40 秒后于 9:10 a.m. 离开。该等待时间(4.66 分钟)存储在停靠点 b 的 Wait_TravelTime 字段中并被添加到路径所用的总时间中。停靠点的 Cumul_TraveTime 字段用于存储到达停靠点所用的总时间。b 的累积行驶时间为 10 分钟(行驶时间为 5 分钟 20 秒,为遵循停靠点 b 的时间窗而等待的时间为 4 分钟 40 秒)。
路径于上午 9:10 离开停靠点 b,并于上午 9:15:20 到达停靠点 c。但是,停靠点 c 的时间窗为上午 9:10 到 9:12。由于路径无法遵守停靠点 c 的时间窗,因此发生了 3 分 20 秒的冲突,该冲突在 Violation_TravelTime 字段中存储为 3.33 分钟。
使用时间冲突符号对停靠点 c 进行符号化。
可将时间窗视为一种“软”约束。这意味着求解程序会尽量遵循时间窗,但在必要时会违反某些停靠点的时间窗以到达相应位置。这与“硬”约束不同,在“硬”约束中,将没有路径可到达出现时间窗冲突的停靠点。路径分析图层不支持硬性时间窗。但是,您可以通过将 MaxViolationTime 字段的相应值设置为零,来将它们用于“车辆配送”分析图层。
路径求解程序试图在考虑网络上的所选限制并遵循所有时间窗的同时,通过一系列停靠点找到成本最低的路径。如果时间窗冲突不可避免,求解程序会尝试最大程度减少总冲突时间。