タイム ウィンドウとは、開始時間から終了時間までの期間のことです。この期間に、ルートがネットワーク ロケーション (ルート解析のストップなど) を訪問します。 タイム ウィンドウは、予約時間または配達時間のモデル化によく使用されます。
注意:
タイム ウィンドウから、車両がロケーションにいつ到着できるかがわかりますが、ロケーションのすべての業務を完了する必要のある期間はわかりません。ルート、配車ルート、およびラスト マイル デリバリーは、タイム ウィンドウが組み込まれた 3 つのネットワーク解析タイプです。 ルート解析および配車ルート解析では、特定の日付、一般的な曜日、現在の日付にタイム ウィンドウを設定できます。 ただし、ラスト マイル デリバリーでは、タイム ウィンドウは、特定の日付に対してのみ設定できます。
ルート解析におけるタイム ウィンドウ
ルートの解析では、ネットワークで選択されている規制を満たし、すべてのタイム ウィンドウを満たす、一連のストップを通過する最低コストのルートの検出が試みられます。 タイム ウィンドウ違反が避けられない場合は、合計超過時間が最も少なくなるルートの検出が試みられます。
ルート解析におけるタイム ウィンドウは、以下の Stops 入力クラスのフィールドを使用して定義されます。
ネットワーク解析クラス | タイム ウィンドウ フィールド |
---|---|
Stops |
TimeWindowStart- ストップに訪問できるタイム ウィンドウの始点。 |
TimeWindowEnd- ストップに訪問できるタイム ウィンドウの終点。 |
タイム ウィンドウ フィールドにデータが入力されると、タイム ウィンドウが解析で自動的に使用されます。
各タイム ウィンドウで指定された時間は、各入力ロケーションのローカル タイム ゾーンまたは UTC (協定世界時) を使用して解釈できます。 ルート解析レイヤーを使用すると、ルート解析レイヤーの作成ジオプロセシング ツール ダイアログ ボックスの [時間フィールドのタイム ゾーン] パラメーターまたは [ルート レイヤー] リボンの基準タイム ゾーン ドロップダウン リストを使用して、タイム ウィンドウ フィールドのタイム ゾーンを指定できます。 arcpy.nax Python モジュールの Route 解析オブジェクトを使用する場合は、timeZoneForTimeWindows プロパティを使用します。
タイム ウィンドウを使用する場合は、ルートがいつ開始されるかを判断するのに、最初のストップのタイム ウィンドウが使用されるため、解析時刻を指定する必要はありません。 ただし、たとえば、運転手のシフト開始を表す解析時刻を指定すると、すべてのストップの出発/到着時刻の計算に、これが考慮されます。 ルートが最初のストップのタイム ウィンドウの前に開始されたら、最初のストップに待ち時間が追加されます。 ルートがあるストップのタイム ウィンドウの経過後に開始された場合は、超過時間の罰則が科されます。 タイム ウィンドウの日付は、ルート解析の時刻について指定された日付と一致させる必要があります。
ルートで発生した待ち時間または超過時間が、出力に反映されます。 各ルートの合計の待ち時間と超過時間は、ぞれぞれ TotalWait_ と TotalViolation_ という接頭辞が付いたフィールドの Routes 出力クラスにあります。 ルートに沿った各ストップの待ち時間と超過時間は、それぞれ Wait_ と Violation_ という接頭辞が付いたフィールドの Stops 出力クラスにあります。 出力 Stops クラスの、CumulWait_ と CumulViolation_ という接頭辞が付いたフィールドは、ルートの該当のポイントまでの累積の待ち時間と超過時間を表します。
配車ルート解析のタイム ウィンドウ
配車ルート解析は、サービス訪問先への最もコストの低いルートを見つけようと試み、必要な拠点立ち寄りを行い、必要な休憩を取りながら、ネットワーク上の選択された制限事項を守り、すべてのタイム ウィンドウを遵守します。 タイム ウィンドウ違反が許可され、避けられない場合は、合計超過時間が最も少なくなるルートの検出が試みられます。
以下のフィールドを使用して、Orders クラス、Depots クラス、Breaks クラスに対して、配車ルート解析のタイム ウィンドウを定義できます。
ネットワーク解析クラス | タイム ウィンドウ フィールド |
---|---|
Orders |
TimeWindowStart- 訪問先に訪問できる最初のタイム ウィンドウの始点 |
TimeWindowEnd- 訪問先に訪問できる最初のタイム ウィンドウの終点 | |
TimeWindowStart2- 訪問先に訪問できる 2 番目のタイム ウィンドウの始点 | |
TimeWindowEnd2- 訪問先に訪問できる 2 番目のタイム ウィンドウの終点 | |
Depots | TimeWindowStart- 拠点に訪問できる最初のタイム ウィンドウの始点 |
TimeWindowEnd- 拠点に訪問できる最初のタイム ウィンドウの終点 | |
TimeWindowStart2- 拠点に訪問できる 2 番目のタイム ウィンドウの始点 | |
TimeWindowEnd2- 拠点に訪問できる 2 番目のタイム ウィンドウの終点 | |
Breaks | TimeWindowStart- 休憩を取ることができるタイム ウィンドウの始点 |
TimeWindowEnd- 休憩を取ることができるタイム ウィンドウの終点 |
レガシー:
スキーマ バージョン 1 の VehicleRoutingProblem 解析オブジェクトを arcpy.nax Python モジュールで使用すると、Orders クラスと Depots クラスの最初のタイム ウィンドウが、TimeWindowStart と TimeWindowEnd ではなく、TimeWindowStart1 と TimeWindowEnd1 と呼ばれるフィールドを使用して定義されます。
入力 Routes クラスには、ルートの移動を開始できる期間を指定するために使用されるタイム ウィンドウ フィールドもあります。
ネットワーク解析クラス | タイム ウィンドウ フィールド |
---|---|
Routes |
EarliestStartTime- ルートの移動を開始できるタイム ウィンドウの始点 |
LatestStartTime- ルートの移動を開始できるタイム ウィンドウの終点 |
タイム ウィンドウ フィールドにデータが入力されると、タイム ウィンドウが解析で自動的に使用されます。 タイム ウィンドウの日付は、解析について構成されたデフォルトの日付と一致させる必要があります。
各タイム ウィンドウで指定された時間は、各入力ロケーションのローカル タイム ゾーンまたは UTC (協定世界時) を使用して解釈できます。 配車ルート解析レイヤーを使用する場合は、配車ルート (VRP) 解析レイヤーの作成ジオプロセシング ツール ダイアログ ボックスの [時間フィールドのタイム ゾーン] パラメーターまたは [VRP レイヤー] リボンの基準タイム ゾーン ドロップダウン リストを使用して、タイム ウィンドウ フィールドのタイム ゾーンを指定できます。 arcpy.nax Python モジュールの VehicleRoutingProblem 解析オブジェクトを使用する場合は、timeZoneForTimeWindows プロパティを使用します。
ルートで発生した待ち時間または超過時間が出力に反映されます。 各ルートの合計の待ち時間と超過時間は、ぞれぞれ TotalWaitTime フィールドと TotalViolationTime フィールドの Routes 出力クラスにあります。 あるルート上の各訪問先、休憩、拠点で発生した待ち時間と超過時間は、それぞれ WaitTime フィールドと ViolationTime フィールドで確認できます。 訪問先、拠点、または休憩の CumulWaitTime フィールドと CumulViolationTime フィールドは、ルート上のそのポイントまでの累積の待ち時間と超過時間を表します。
入力訪問先の MaxViolationTime フィールドと MaxViolationTime2 フィールド、入力休憩の MaxViolationTime フィールドを設定して、解析でのタイム ウィンドウ違反の許容可能範囲を制御できます。 タイム ウィンドウをタイム ウィンドウ違反が認められないハード制約としてモデル化するには、対応する MaxViolationTime フィールドと MaxViolationTime2 フィールドをゼロに設定します。
レガシー:
スキーマ バージョン 1 の VehicleRoutingProblem 解析オブジェクトを arcpy.nax Python モジュールで使用する場合、Orders クラスの MaxViolationTime フィールドは MaxViolationTime1 と呼ばれます。
ラスト マイル デリバリー解析のタイム ウィンドウ
ラスト マイル デリバリー解析は、ネットワークについて選択された制限やタイム ウィンドウなどの問題に関する制約を考慮しながら、適切にクラスタリングされて、コストの低い訪問先への最適ルートのセットを探します。 タイム ウィンドウ違反が許可され、避けられない場合は、合計超過時間が最も少なくなるルートの検出が試みられます。
ラスト マイル デリバリー解析のタイム ウィンドウは、訪問先クラスに次のフィールドを使用して定義されます。
ネットワーク解析クラス | タイム ウィンドウ フィールド |
---|---|
Orders |
TimeWindowStart- 訪問先に訪問できるタイム ウィンドウの始点 |
TimeWindowEnd- 訪問先に訪問できるタイム ウィンドウの終点 |
入力ルート クラスには、ルートの移動を開始できる期間を指定するために使用されるタイム ウィンドウ フィールドもあります。
ネットワーク解析クラス | タイム ウィンドウ フィールド |
---|---|
Routes |
EarliestStartDate- これは、[EarliestStartTime] と連携して、ルートの日付部分を指定して、ルートの移動を開始できるタイム ウィンドウの始点を定義します。 |
EarliestStartTime- これは、[EarliestStartDate] と連携して、ルートの時刻部分を指定して、ルートの移動を開始できるタイム ウィンドウの始点を定義します。 | |
StartFlexibility- ルートを開始できる最も早い開始時刻からの経過時間を指定します。 [TimeFieldUnits] パラメーターで指定された単位を使用します。 |
[EarliestStartDate] と [EarliestStartTime] はいずれも、[EarliestRouteStartDate] パラメーターと [EarliestRouteStartTime] パラメーターを使用して、ルート クラスの各フィーチャまたはすべてのフィーチャに指定できます。
タイム ウィンドウ フィールドにデータが入力されると、タイム ウィンドウが解析で自動的に使用されます。 訪問先クラスとルート クラスのタイム ウィンドウ日付はすべて、特定の日付であり、相互に 1 年以内である必要があります。
各タイム ウィンドウで指定された時間は、各入力ロケーションのローカル タイム ゾーンまたは UTC (協定世界時) を使用して解釈できます。 ラスト マイル デリバリー解析レイヤーを使用すると、[ラスト マイル デリバリー解析レイヤーの作成 (Make Last Mile Delivery Analysis Layer)] ジオプロセシング ツール ダイアログ ボックスの [時間フィールドのタイム ゾーン] パラメーターまたはラスト マイル デリバリー レイヤー リボンの基準タイム ゾーン ドロップダウン リストを使用して、タイム ウィンドウ フィールドのタイム ゾーンを指定できます。 arcpy.nax Python モジュールの LastMileDelivery 解析オブジェクトを使用する場合は、timeZoneForTimeFields プロパティを使用します。
ルートで発生した待ち時間または超過時間が、出力に反映されます。 各ルートの合計の待ち時間と超過時間は、ぞれぞれ TotalWaitTime フィールドと TotalViolationTime フィールドのルート出力クラスにあります。 あるルート上の各訪問先で発生した待ち時間と超過時間は、それぞれ WaitTime フィールドと ViolationTime フィールドで確認できます。
入力訪問先の MaxViolationTime フィールドを設定して、解析でのタイム ウィンドウ違反の許容可能範囲を制御できます。 タイム ウィンドウをタイム ウィンドウ違反が認められないハード制約としてモデル化するには、MaxViolationTime をゼロに設定します。
タイム ウィンドウの例
以下の例は、3 つのストップ「a」、「b」、「c」を訪問するための最適ルートを見つけるために使用されるルート解析で使用するタイム ウィンドウを表します。 各ストップのタイム ウィンドウは、TimeWindowStart および TimeWindowEnd フィールドによって設定されています。
ルートは、午前 8:00 から午前 9:00 の間の任意のタイミングで、ポイント「a」から開始できます。ただし、以下に示すように、ルートは、午前 9:08:24 に「b」に到着しますが、午前 9:15 までは、ポイント「b」に到着してはいけません。
「b」には、午前 9:15 から午前 9:30 までの間に訪れる必要があるため、ルートは、「b」で 6 分 36 秒待機して、午前 9:15 に出発します。この待機時間 (6.6 分) は、ストップ「b」の Wait_TravelTime フィールドに格納され、ルートにかかる合計時間に加算されます。 ストップの Cumul_TravelTime フィールドには、そのストップに到着するまでの合計時間が格納されます。 ポイント「b」の累積移動時間は 15 分です (8 分 24 秒の移動時間および、ストップ「b」のタイム ウィンドウを遵守するための 6 分 36 秒の待ち時間)。
ルートは、午前 9:15 にストップ「b」を出発し、午前 9:35:34 にストップ「c」に到着します。ただし、ストップ「c」のタイム ウィンドウは、午前 9:15 ~ 9:30 です。ルートが、ストップ「c」のタイム ウィンドウを遵守できないため、5 分 34 秒の超過時間が発生し、Violation_TravelTime フィールドに 5.58 分として格納されます。