タイム ウィンドウ

タイム ウィンドウとは、開始時間から終了時間までの期間のことです。この期間に、ルートがネットワーク ロケーション (ルート解析のストップなど) を訪問します。 タイム ウィンドウは、予約時間または配達時間のモデル化によく使用されます。

注意:
タイム ウィンドウから、車両がロケーションにいつ到着できるかがわかりますが、ロケーションのすべての業務を完了する必要のある期間はわかりません。

特定の日付、一般的な曜日、現在の日付にタイム ウィンドウを設定できます。

ネットワーク解析における日時についての詳細

ルート」および「配車ルート」の 2 つのネットワーク解析タイプにタイム ウィンドウが組み込まれます。

ルート解析におけるタイム ウィンドウ

ルートの解析では、ネットワークで選択されている規制を満たし、すべてのタイム ウィンドウを満たす、一連のストップを通過する最低コストのルートの検出が試みられます。 タイム ウィンドウの超過が避けられない場合は、合計超過時間が最も少なくなるルートの検出が試みられます。

ルート解析におけるタイム ウィンドウは、以下の 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 クラスの最初のタイム ウィンドウが、TimeWindowStartTimeWindowEnd ではなく TimeWindowStart1TimeWindowEnd1 と呼ばれるフィールドを使用して定義されます。

入力 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 と呼ばれます。

タイム ウィンドウの例

以下の例は、3 つのストップ「a」、「b」、「c」を訪問するための最適ルートを見つけるために使用されるルート解析で使用するタイム ウィンドウを表します。 各ストップのタイム ウィンドウは、TimeWindowStart および TimeWindowEnd フィールドによって設定されています。

タイム ウィンドウ情報を含む 3 つのストップの例

ルートは、午前 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_TraveTime フィールドには、そのストップに到着するまでの合計時間が格納されます。 ポイント「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 分として格納されます。

超過時間