[配車ルート (VRP) の解析 (Solve Vehicle Routing Problem)] の出力

[配車ルート (VRP) の解析 (Solve Vehicle Routing Problem)] ジオプロセシング ツールは、出力として以下のテーブルおよびフィーチャクラスを出力として生成します。ストップ、未割り当てストップ、ルート、ルート案内 出力のテーブルとフィーチャクラスおよびそれらに対応するフィールド属性について、以下で説明します。

ルート フィーチャクラス

ルート ライン フィーチャクラスは、運転手、車両、および配車ルートでの車両のルート パスを表します。この出力フィーチャクラスのデフォルト名は Routes ですが、解析を実行する前に [出力ルート名] パラメーター (Python では output_routes_name) を変更して、別の名前を指定できます。

ArcGIS は、基本となるネットワーク データセットがルート フィーチャクラスに使用するものと同じ座標系を割り当てます。これは、[出力データの座標系] ジオプロセシング環境の値を指定することで、制御できます。

ルート フィーチャクラスの各フィールド名とその説明を以下に示します。

フィールド名説明

ObjectID

システムで管理される ID フィールド。

Name

ルートの名前。

Shape

ルートの形状を示すジオメトリ フィールド。

[ルート ラインの設定] パラメーター (Python では populate_route_lines) を使用して、このフィールドに値を取り込むかどうかを選択します。

ルート フィーチャクラスは、[配車ルート (VRP) の解析 (Solve Vehicle Routing Problem)] の実行中に常に作成され、データが取り込まれます。ただし、[ルート ラインの設定] パラメーター (Python では populate_route_lines) を使用して、ライン フィーチャの [Shape] フィールドの値の生成と保存を実行するかどうかを選択できます。[Shape] フィールドに値を取り込まないようにすると、解析処理が早くなり、サーバーとクライアント間で交換されるデータ サイズが減少します。ただし、多くの場合は、マップ上にルートを表示するために、[Shape] フィールドに値を取り込むことが必要となります。

ViolatedConstraints

このフィールドは制約違反のサマリーを含み、解析の実行後に設定されます。ルートを使用することで制約違反が発生する場合は、以下に示す 1 つまたは複数の違反の組み合わせがフィールドに割り当てられる可能性があります。

詳細:

テキスト説明を表すコード値は、以下のリストの括弧内に示しています。 これらのコード値は、公比が 2 の等比数列で表されます。 これを利用して、さまざまな違反の組み合わせをコード化できます。 たとえば、Capacities が超過しました (2) とハード ルート ゾーン (128) の組み合わせは、2 + 128 で 130 となります。

  • MaxOrderCount が超過しました (1) - 訪問先を割り当てるとルートの MaxOrderCount フィールド値によって指定された、ルートに割り当て可能な訪問先の最大数を超過するので、あらかじめ割り当てられている訪問先をルートに割り当てることができなくなります。
  • Capacities が超過しました (2) - 訪問先を割り当てるとルートの Capacities フィールド値によって指定された合計ルート積載制限を超過するので、あらかじめ割り当てられている訪問先をルートに割り当てることができなくなります。
  • MaxTotalTime が超過しました (4) - 開始拠点から終了拠点までの移動時間、両方の拠点でのサービス時間と待ち時間、および休憩時間の合計が、ルートの MaxTotalTime フィールド値によって指定されたルートの合計時間を超過しています。
  • MaxTotalTravelTime が超過しました (8) - 開始拠点から終了拠点までの移動時間がルートの MaxTotalTravelTime フィールド値によって指定されたルートの合計移動時間を超過しています。
  • MaxTotalDistance が超過しました (16) - 開始拠点から終了拠点までの移動距離がルートの MaxTotalDistance フィールド値によって指定されたルートの合計移動距離を超過しています。
  • ハード タイム ウィンドウ (32) - ルートと関連付けられた開始拠点、終了拠点、または休憩にはハード タイム ウィンドウ違反が存在します。
  • 特別指定の不一致 (64) - 訪問先で必要とされる特別指定が対象ルートで見つかりません。
  • ハード ルート ゾーン (128) - あらかじめルートに割り当てられた訪問先がハード ルート ゾーンの範囲内にありません。
  • Order pair MaxTransitTime が超過しました (256) - ルートにあらかじめ割り当てられている訪問先ペアが存在します。このため訪問先を訪問先ペアで割り当てると、訪問先ペアの MaxTransitTime フィールド値によって指定された、訪問先ペアの最大移動時間を超過します。
  • 訪問先ペア違反 (512) - 訪問先は訪問先ペアに属しており、あらかじめ割り当てられたルートに割り当てることができません。
  • 到達できません (1024) - あらかじめ割り当てられた訪問先は、このルートでは到達できないネットワーク エレメントに配置されています。
  • 必要な休憩を挿入できません(2048) - あらかじめ割り当てられた訪問先が存在する場合、ルートの休憩のシーケンス値は NULL になり、休憩を挿入すると、必ず他の違反が発生します。
  • 必要なリニューアルを挿入できません (4096) - ルートが容量を超え、ルート リニューアルを訪問する必要があります。ただし、あらかじめ割り当てられた訪問先が存在する場合、関連するルート リニューアルのシーケンス値は NULL になり、ルート リニューアルを挿入すると、必ず他の違反が発生します。
  • MaxTravelTimeBetweenBreaks が超過しました (8192) - 解析では、休憩の MaxTravelTimeBetweenBreaks フィールドに指定された時間内に休憩を挿入できませんでした。これは、最大移動時間内に到達できないようなシーケンスがあらかじめ休憩に割り当てられている場合によく発生します。

  • MaxCumulWorkTime の休憩が超過しました (16384) - 解析では、休憩の MaxCumulWorkTime フィールドに指定された時間内に休憩を挿入できませんでした。これは、最大労働時間内に到達できないようなシーケンスがあらかじめ休憩に割り当てられている場合によく発生します。
  • InboundArriveTime または OutboundDepartTime の訪問先違反(32768) - インバウンド到着時刻またはアウトバウンド出発時刻の制限内に訪問先にサービスを提供できませんでした。この違反は、すべてのルートの LatestStartTime フィールドの値が InboundArriveTime の値よりも前であるか、どのルートも訪問先の OutboundDepartTime 値の前に拠点に到達できない場合に発生します。
  • 最初/最後にアンカーできません (65536) - 訪問先に「最初にアンカー」または「最後にアンカー」の割り当てルールがありますが、解析ではこの制約を適用できませんでした。この違反は、「最初にアンカー」の訪問先の数または「最後にアンカー」の訪問先の数が、使用可能なルートの数より多い場合に発生します。

  • ViolatedConstraint_1
  • ViolatedConstraint_2
  • ViolatedConstraint_3
  • ViolatedConstraint_4

各フィールドに制約違反が 1 つ表示されます。違反の説明が ViolationConstraints に表示されます。

  • MaxOrderCount が超過しました (0) - 訪問先を割り当てるとルートの MaxOrderCount フィールド値によって指定された、ルートに割り当て可能な訪問先の最大数を超過するので、あらかじめ割り当てられている訪問先をルートに割り当てることができなくなります。
  • Capacities が超過しました (1) - 訪問先を割り当てるとルートの Capacities フィールド値によって指定された合計ルート積載制限を超過するので、あらかじめ割り当てられている訪問先をルートに割り当てることができなくなります。
  • MaxTotalTime が超過しました (2) - 開始拠点から終了拠点までの移動時間、両方の拠点でのサービス時間と待ち時間、および休憩時間の合計が、ルートの MaxTotalTime フィールド値によって指定されたルートの合計時間を超過しています。
  • MaxTotalTravelTime が超過しました (3) - 開始拠点から終了拠点までの移動時間がルートの MaxTotalTravelTime フィールド値によって指定されたルートの合計移動時間を超過しています。
  • MaxTotalDistance が超過しました (4) - 開始拠点から終了拠点までの移動距離がルートの MaxTotalDistance フィールド値によって指定されたルートの合計移動距離を超過しています。
  • ハード タイム ウィンドウ (5) - ルートと関連付けられた開始拠点、終了拠点、または休憩にはハード タイム ウィンドウ違反が存在します。
  • 特別指定の不一致 (6) - 訪問先で必要とされる特別指定が対象ルートで見つかりません。
  • ハード ルート ゾーン (7) - あらかじめルートに割り当てられた訪問先がハード ルート ゾーンの範囲内にありません。
  • Order pair MaxTransitTime が超過しました (8) - ルートにあらかじめ割り当てられている訪問先ペアが存在します。このため訪問先を訪問先ペアで割り当てると、訪問先ペアの MaxTransitTime フィールド値によって指定された、訪問先ペアの最大移動時間を超過します。
  • 訪問先ペア違反 (9) - 訪問先は訪問先ペアに属しており、あらかじめ割り当てられたルートに割り当てることができません。
  • 到達できません (10) - あらかじめ割り当てられた訪問先は、このルートでは到達できないネットワーク エレメントに配置されています。
  • 必要な休憩を挿入できません (11) - あらかじめ割り当てられた訪問先が存在する場合、ルートの休憩のシーケンス値は NULL になり、休憩を挿入すると、必ず他の違反が発生します。
  • 必要なリニューアルを挿入できません (12) - ルートが容量を超え、ルート リニューアルを訪問する必要があります。ただし、あらかじめ割り当てられた訪問先が存在する場合、関連するルート リニューアルのシーケンス値は NULL になり、ルート リニューアルを挿入すると、必ず他の違反が発生します。
  • MaxTravelTimeBetweenBreaks が超過しました (13) - 解析では、休憩の MaxTravelTimeBetweenBreaks フィールドに指定された時間内に休憩を挿入できませんでした。これは、最大移動時間内に到達できないようなシーケンスがあらかじめ休憩に割り当てられている場合によく発生します。

  • MaxCumulWorkTime の休憩が超過しました (14) - 解析では、休憩の MaxCumulWorkTime フィールドに指定された時間内に休憩を挿入できませんでした。これは、最大労働時間内に到達できないようなシーケンスがあらかじめ休憩に割り当てられている場合によく発生します。
  • InboundArriveTime または OutboundDepartTime の訪問先違反 (15) - インバウンド到着時刻またはアウトバウンド出発時刻の制限内に訪問先にサービスを提供できませんでした。この違反は、すべてのルートの LatestStartTime フィールドの値が InboundArriveTime の値よりも前であるか、どのルートも訪問先の OutboundDepartTime 値の前に拠点に到達できない場合に発生します。
  • 最初/最後にアンカーできません (16) - 訪問先に「最初にアンカー」または「最後にアンカー」の割り当てルールがありますが、解析ではこの制約を適用できませんでした。この違反は、「最初にアンカー」の訪問先の数または「最後にアンカー」の訪問先の数が、使用可能なルートの数より多い場合に発生します。

OrderCount

ルートに割り当てられる訪問先の数。

TotalCost

ルートの合計運用コストです。これは、次のフィールドの合計です。

  • FixedCost
  • RegularTimeCost
  • OvertimeCost
  • DistanceCost

RegularTimeCost

無給の休憩を除外した規定労働時間のコスト。

OvertimeCost

無給の休憩を除外した規定外労働のコスト。

DistanceCost

TotalDistance フィールドと CostPerUnitDistance フィールドの値を掛けて得られる距離のコスト要素。解析前に距離属性が指定されていない場合、このフィールドには 0 の値を設定します。

TotalTime

合計ルート所要時間。これには、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。TotalTime の値は次のフィールド値の合計です。

  • StartDepotServiceTime
  • EndDepotServiceTime
  • TotalOrderServiceTime
  • TotalBreakServiceTime
  • TotalRenewalServiceTime
  • TotalWaitTime
  • TotalTravelTime

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

TotalOrderServiceTime

ルート上のすべての訪問先で費やされる合計サービス時間。

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

TotalBreakServiceTime

ルート上のすべての休憩で費やされる合計サービス時間。

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

TotalTravelTime

ルートの合計移動時間。

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

TotalDistance

ルートの合計移動距離。

このフィールドの値の単位は、[距離フィールドの単位] パラメーター (Python の場合は distance_units) で指定します。

解析前に距離属性が指定されていない場合、このフィールドには 0 の値を設定します。

StartTime

ルートの開始時刻。ルートは、開始拠点のタイム ウィンドウが始まる前に出発することがあります。この場合、開始拠点では待ち時間が発生します。

複数のタイム ゾーンにまたがる交通量データを使用するとき、この時間値のタイム ゾーンは開始拠点が配置されているネットワーク エレメントから取得されます。

EndTime

ルートの終了時刻。ルートは、終了拠点でのサービス完了時に終了します。

複数のタイム ゾーンにまたがる交通量データを使用するとき、この時間値のタイム ゾーンは終了拠点が配置されているネットワーク エレメントから取得されます。

TotalWaitTime

ルート上のすべての訪問先、拠点、および休憩での合計待ち時間。

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

TotalViolationTime

ルート上のすべての訪問先および休憩での合計超過時間。

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

RenewalCount

リニューアルを持つルートの場合、これは、車両をリニューアル (つまり、車両の荷積みまたは荷降ろし) する目的による拠点でのストップ数に相当します。

TotalRenewalServiceTime

リニューアルを持つルートの場合、ルート上のすべてのリニューアル拠点で費やされたサービス時間の合計を示します。

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

ルート案内フィーチャクラス

ルート案内は、運転手が各自に割り当てられたルートに従うことに役立つ、ターンごとの指示を表すライン フィーチャクラスです。この出力フィーチャクラスのデフォルト名は Directions ですが、解析を実行する前に [出力ルート案内名] パラメーター (Python では output_directions_name) を変更して、別の名前を指定できます。また、[配車ルート (VRP) の解析 (Solve Vehicle Routing Problem)] ツールは、常にルート案内フィーチャクラスを作成します。ただし、[ルート案内の生成] パラメーター (Python では populate_directions) を使用して、解析中にフィーチャクラスにフィーチャを取り込むかどうかを選択できます。デフォルトでは、フィーチャは取り込まれません。ルート案内が必要でなければ、解析時間と、サーバーからクライアントに転送されるデータ量を、大幅に減らすことができます。

ArcGIS は、基本となるネットワーク データセットがルート案内フィーチャクラスに使用するものと同じ座標系を割り当てます。これは、[出力データの座標系] ジオプロセシング環境の値を指定することで、制御できます。

ルート案内フィーチャクラスの各フィールド名とその説明を以下に示します。

フィールド名説明

ObjectID

システムで管理される ID フィールド。

Shape

ラインの形状を示すジオメトリ フィールド。

RouteName

運転動作が適用されるルートの名前。

ArriveTime

指定された運転動作を開始する時間。ルートが複数日にまたがる場合、日付と時刻が表示されます。

Type

このフィールドは、ルート案内のテキストをカスタマイズする上級ユーザー向けです。 ほとんどのユーザーは、このフィールドを無視し、代わりに Text フィールドを参照することで要件を満たすことができます。

Type は、次の 2 つの列挙のうちのいずれかの定数を参照します。esriDirectionsManueverType または esriDirectionsStringType (Type 値が参照する列挙について詳しくは、SubItemType フィールドの説明をご参照ください)。

SubItemType

このフィールドは、ルート案内のテキストをカスタマイズする上級ユーザー向けです。 ほとんどのユーザーは、このフィールドを無視し、代わりに Text フィールドを参照することで要件を満たすことができます。

SubItemType は、Type と組み合わせて機能し、それによって Text フィールドに表示されるルート案内が作成されます。SubItemType フィールドは、Type フィールドが esriDirectionsManueverType 列挙または esriDirectionsStringType 列挙のどちらの定数値を参照するかを指定します。

  • SubItemType 値が 1 の場合、Type 値は esriDirectionsManeuverType を参照します。
  • SubItemType 値が 2 の場合、Type 値は esriDirectionsStringType を参照します。

Text

テキストによるルート案内の説明です。

ElapsedTime

現在のルート案内が開始してから次のルート案内が開始するまで、または最後のルート案内が終了するまでの経過時間。

一部のルート案内には、サービス時間、超過時間などの追加レコードが含まれます。この場合、経過時間はレコードごとに複製されます。経過時間全体を合計するには、Type 値が 1 のレコードを選択し、それらのレコードを合計します。

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

DriveDistance

現在のルート案内が発生した場所から次のルート案内が発生する場所まで、または最後のルート案内が終了する場所までの距離。

次のルート案内が開始する場所と同じ場所で発生するルート案内の場合、値は 0 です。

ストップ テーブル

ストップ テーブルは、拠点、訪問先、および休憩地点で止まるストップについての情報を提供します。この情報には、それらのストップに立ち寄るルート、到着時間と出発時間、およびストップの順序が含まれます。

この出力テーブルのデフォルト名は Stops ですが、解析を実行する前に [出力ストップ名] パラメーター (Python では output_stops_name) を変更して、別の名前を指定できます。

ストップ テーブルの各フィールド名とその説明を以下に示します。

フィールド名説明

ObjectID

システムで管理される ID フィールド。

Name

ストップの名前。これは、入力フィーチャ セットおよびレコード セットに含まれる、拠点、訪問先、または休憩地点の名前への外部キーです。入力フィーチャ セットまたはレコード セットは、StopType フィールドで指定されます。

PickupQuantities

ストップから引き取られる積荷の量または人数。複数の計測方法でストップに配達する場合は、各数量をスペースで区切ります。

このフィールドの単位は、保存されません。各単位は、入力ルートの Quantities フィールドおよび入力訪問先の PickupQuantities フィールドと DeliveryQuantities フィールドに入力した方法に従って解釈する必要があります (これらのフィールドは、すべて同じ単位および計測方法の数を使用して入力されている必要があります)。

DeliveryQuantities

ストップに配達される積荷の量または人数。複数の計測方法でストップに配達する場合は、各数量をスペースで区切ります。

このフィールドの単位は、保存されません。各単位は、入力ルートの Quantities フィールドおよび入力訪問先の PickupQuantities フィールドと DeliveryQuantities フィールドに入力した方法に従って解釈する必要があります (これらのフィールドは、すべて同じ単位および計測方法の数を使用して入力されている必要があります)。

StopType

ストップが、拠点、配達先、休憩地点のいずれを表すかを示します。

このフィールドには、以下のように解釈できるコード値が保存されます。

  • 訪問先 (0)
  • 拠点 (1)
  • 休憩地点 (2)

RouteName

ストップに立ち寄るルートの名前。

Sequence

割り当てられたルートがストップに立ち寄る、相対的な順序。

RouteName フィールドと Sequence フィールドによって並べ替えて、ルートごとのストップの順序付けられたリストが作成されます。

FromPreviousTravelTime

ルートの前のストップから現在のストップまでに経過した移動時間。

このフィールドの値の単位は、[時間フィールドの単位] パラメーター (Python の場合は time_units) で指定します。

FromPreviousDistance

前のストップから現在のストップまでのルート沿いの距離。

このフィールドの値の単位は、[距離フィールドの単位] パラメーター (Python の場合は distance_units) で指定します。

ArriveCurbApproach

車両がストップに到着するときに、アプローチを車両のどちら側にするかを示します。

DepartCurbApproach

車両がストップから出発するときに、アプローチを車両のどちら側にするかを示します。

ArriveTime

ルートがストップに到着する時間。

ネットワーク データセットにタイム ゾーンが構成されている場合、時間の値は、ストップが配置されているタイム ゾーンと一致します。構成されていない場合、タイム ゾーンは解析の実行に使用されるコンピューター上に構成されたタイム ゾーンと一致します。

DepartTime

ルートがストップを出発する時間。

ネットワーク データセットにタイム ゾーンが構成されている場合、時間の値は、ストップが配置されているタイム ゾーンと一致します。構成されていない場合、タイム ゾーンは解析の実行に使用されるコンピューター上に構成されたタイム ゾーンと一致します。

ArriveTimeUTC

ルートがストップに到着する時間。この値は、UTC (協定世界時) で指定します。

タイム ゾーンがネットワーク データセット上に構成されていない場合、このフィールドは NULL になります。

DepartTimeUTC

ルートがストップを出発する時間。この値は、UTC (協定世界時) で指定します。

タイム ゾーンがネットワーク データセット上に構成されていない場合、このフィールドは NULL になります。

WaitTime

ストップでの待ち時間または待ち合わせ時間。たとえば、ルートが訪問先でタイム ウィンドウが開くまで待機する必要がある場合は、待ち時間が発生します。

ViolationTime

ストップのタイム ウィンドウの終了からルート車両の到着までの経過時間。

ストップの視覚化

ストップ テーブルは、フィーチャクラスではありません。つまり、単純にテーブルをマップに追加して、ストップが発生する場所を表示することはできません。ストップをマップ上に表示するには、代わりに別の手順が必要です。(これの実現方法について、以下で説明します。) ルートのストップをマップ上に表示する必要がある場合、この設計は不必要に難しく見えるかもしれませんが、このツールの目的が配車ルート (VRP) Web サービスの作成であることに、留意してください。つまり、サーバー処理とデータ転送を最小化するように、出力は可能な限り簡潔に設計されています。とはいえ、情報が簡潔すぎることはなく、出力は、ストップをポイント フィーチャとして視覚化することに不可欠な情報を提供できます。

たとえば、ストップが発生する訪問先の場所を表示するには、ストップ テーブルを、入力として使用された元の訪問先フィーチャ セットにリンクします。ストップ テーブルの StopType フィールドと Name フィールド、および訪問先フィーチャ セットの Name フィールドを介して、これらのデータセットを選択し、結合できます。ストップが発生する拠点の場所を表示する場合も、同様の方法を使用することができます。

ヒント:

[配車ルート (VRP) の解析 (Solve Vehicle Routing Problem)] によって、訪問先フィーチャ セットや拠点フィーチャ セットなどの複数の入力フィーチャ セットが作成されます。ツールが解析を実行する際に、これらのインメモリ フィーチャ セットは ArcMap から削除されます。ただし、それらを再び追加できます。これを行うには、次の手順に従います。

  1. [ジオプロセシング] メニューから [結果] ウィンドウを開きます。
  2. [結果] ウィンドウで、目的のフィーチャ セットを含む処理の結果に移動します。
  3. 該当する[配車ルート (VRP) の解析 (Solve Vehicle Routing Problem)] の結果を展開します。
  4. [入力] を展開します。
  5. 表示するフィーチャ セットを右クリックし、[マップへ追加] を選択します。フィーチャ セットが、マップと [コンテンツ] ウィンドウに表示されます。
  6. 必要に応じて、[コンテンツ] ウィンドウの [ソース別にリスト] ボタンをクリックし、データが保存されている場所を表示します。

訪問先や拠点とは異なり、休憩地点は入力フィーチャ セットに関連付けられていません。これらを視覚化するには、別の方法を使用する必要があります。解析でルート案内を生成し、フィーチャを表すラインを選択し、[フィーチャの頂点 → ポイント (Feature Vertices To Points)] ツールを使用してそれらをポイントに変換できます。

未割り当てストップ テーブル

未割り当てストップ テーブルには、どのルートも立ち寄ることのできない訪問先がリストされます。問題を修正できるように、ストップが立ち寄れない理由についても記述されます。

この出力テーブルのデフォルト名は Stops ですが、解析を実行する前に [出力未割り当てストップ名] パラメーター (output_unassigned_stops_name) を変更して、別の名前を指定できます。

ストップ テーブルの各フィールド名とその説明を以下に示します。

フィールド名説明

ObjectID

システムで管理される ID フィールド。

StopType

ストップが、拠点、配達先、休憩地点のいずれを表すかを示します。このフィールドには、以下のように解釈できるコード値が保存されます。

  • 訪問先 (0)
  • 拠点 (1)
  • 休憩地点 (2)

Name

ストップの名前。

これは、入力フィーチャ セットおよびレコード セットに含まれる、拠点、訪問先、または休憩地点の名前への外部キーです。入力フィーチャ セットまたはレコード セットは、StopType フィールドで指定されます。

ViolatedConstraints

このフィールドは制約違反のサマリーを含み、解析の実行後に設定されます。制約違反が発生する場合は、以下に示す 1 つまたは複数の違反の組み合わせがフィールドに割り当てられる可能性があります。

詳細:

テキスト説明を表すコード値は、以下のリストの括弧内に示しています。 これらのコード値は、公比が 2 の等比数列で表されます。 これを利用して、さまざまな違反の組み合わせをコード化できます。 たとえば、Capacities が超過しました (2) とハード ルート ゾーン (128) の組み合わせは、2 + 128 で 130 となります。

  • MaxOrderCount が超過しました (1) - 訪問先を割り当てるとルートの MaxOrderCount フィールド値によって指定された、ルートに割り当て可能な訪問先の最大数を超過するので、あらかじめ割り当てられている訪問先をルートに割り当てることができなくなります。
  • Capacities が超過しました (2) - 訪問先を割り当てるとルートの Capacities フィールド値によって指定された合計ルート積載制限を超過するので、あらかじめ割り当てられている訪問先をルートに割り当てることができなくなります。
  • MaxTotalTime が超過しました (4) - 開始拠点から終了拠点までの移動時間、両方の拠点でのサービス時間と待ち時間、および休憩時間の合計が、ルートの MaxTotalTime フィールド値によって指定されたルートの合計時間を超過しています。
  • MaxTotalTravelTime が超過しました (8) - 開始拠点から終了拠点までの移動時間がルートの MaxTotalTravelTime フィールド値によって指定されたルートの合計移動時間を超過しています。
  • MaxTotalDistance が超過しました (16) - 開始拠点から終了拠点までの移動距離がルートの MaxTotalDistance フィールド値によって指定されたルートの合計移動距離を超過しています。
  • ハード タイム ウィンドウ (32) - ルートと関連付けられた開始拠点、終了拠点、または休憩にはハード タイム ウィンドウ違反が存在します。
  • 特別指定の不一致 (64) - 訪問先で必要とされる特別指定が対象ルートで見つかりません。
  • ハード ルート ゾーン (128) - あらかじめルートに割り当てられた訪問先がハード ルート ゾーンの範囲内にありません。
  • Order pair MaxTransitTime が超過しました (256) - ルートにあらかじめ割り当てられている訪問先ペアが存在します。このため訪問先を訪問先ペアで割り当てると、訪問先ペアの MaxTransitTime フィールド値によって指定された、訪問先ペアの最大移動時間を超過します。
  • 訪問先ペア違反 (512) - 訪問先は訪問先ペアに属しており、あらかじめ割り当てられたルートに割り当てることができません。
  • 到達できません (1024) - あらかじめ割り当てられた訪問先は、このルートでは到達できないネットワーク エレメントに配置されています。
  • 必要な休憩を挿入できません(2048) - あらかじめ割り当てられた訪問先が存在する場合、ルートの休憩のシーケンス値は NULL になり、休憩を挿入すると、必ず他の違反が発生します。
  • 必要なリニューアルを挿入できません (4096) - ルートが容量を超え、ルート リニューアルを訪問する必要があります。ただし、あらかじめ割り当てられた訪問先が存在する場合、関連するルート リニューアルのシーケンス値は NULL になり、ルート リニューアルを挿入すると、必ず他の違反が発生します。
  • MaxTravelTimeBetweenBreaks が超過しました (8192) - 解析では、休憩の MaxTravelTimeBetweenBreaks フィールドに指定された時間内に休憩を挿入できませんでした。これは、最大移動時間内に到達できないようなシーケンスがあらかじめ休憩に割り当てられている場合によく発生します。

  • MaxCumulWorkTime の休憩が超過しました (16384) - 解析では、休憩の MaxCumulWorkTime フィールドに指定された時間内に休憩を挿入できませんでした。これは、最大労働時間内に到達できないようなシーケンスがあらかじめ休憩に割り当てられている場合によく発生します。
  • InboundArriveTime または OutboundDepartTime の訪問先違反(32768) - インバウンド到着時刻またはアウトバウンド出発時刻の制限内に訪問先にサービスを提供できませんでした。この違反は、すべてのルートの LatestStartTime フィールドの値が InboundArriveTime の値よりも前であるか、どのルートも訪問先の OutboundDepartTime 値の前に拠点に到達できない場合に発生します。
  • 最初/最後にアンカーできません (65536) - 訪問先に「最初にアンカー」または「最後にアンカー」の割り当てルールがありますが、解析ではこの制約を適用できませんでした。この違反は、「最初にアンカー」の訪問先の数または「最後にアンカー」の訪問先の数が、使用可能なルートの数より多い場合に発生します。

  • ViolatedConstraint_1
  • ViolatedConstraint_2
  • ViolatedConstraint_3
  • ViolatedConstraint_4

各フィールドに制約違反が 1 つ表示されます。違反の説明が ViolationConstraints に表示されます。

  • MaxOrderCount が超過しました (0) - 訪問先を割り当てるとルートの MaxOrderCount フィールド値によって指定された、ルートに割り当て可能な訪問先の最大数を超過するので、あらかじめ割り当てられている訪問先をルートに割り当てることができなくなります。
  • Capacities が超過しました (1) - 訪問先を割り当てるとルートの Capacities フィールド値によって指定された合計ルート積載制限を超過するので、あらかじめ割り当てられている訪問先をルートに割り当てることができなくなります。
  • MaxTotalTime が超過しました (2) - 開始拠点から終了拠点までの移動時間、両方の拠点でのサービス時間と待ち時間、および休憩時間の合計が、ルートの MaxTotalTime フィールド値によって指定されたルートの合計時間を超過しています。
  • MaxTotalTravelTime が超過しました (3) - 開始拠点から終了拠点までの移動時間がルートの MaxTotalTravelTime フィールド値によって指定されたルートの合計移動時間を超過しています。
  • MaxTotalDistance が超過しました (4) - 開始拠点から終了拠点までの移動距離がルートの MaxTotalDistance フィールド値によって指定されたルートの合計移動距離を超過しています。
  • ハード タイム ウィンドウ (5) - ルートと関連付けられた開始拠点、終了拠点、または休憩にはハード タイム ウィンドウ違反が存在します。
  • 特別指定の不一致 (6) - 訪問先で必要とされる特別指定が対象ルートで見つかりません。
  • ハード ルート ゾーン (7) - あらかじめルートに割り当てられた訪問先がハード ルート ゾーンの範囲内にありません。
  • Order pair MaxTransitTime が超過しました (8) - ルートにあらかじめ割り当てられている訪問先ペアが存在します。このため訪問先を訪問先ペアで割り当てると、訪問先ペアの MaxTransitTime フィールド値によって指定された、訪問先ペアの最大移動時間を超過します。
  • 訪問先ペア違反 (9) - 訪問先は訪問先ペアに属しており、あらかじめ割り当てられたルートに割り当てることができません。
  • 到達できません (10) - あらかじめ割り当てられた訪問先は、このルートでは到達できないネットワーク エレメントに配置されています。
  • 必要な休憩を挿入できません (11) - あらかじめ割り当てられた訪問先が存在する場合、ルートの休憩のシーケンス値は NULL になり、休憩を挿入すると、必ず他の違反が発生します。
  • 必要なリニューアルを挿入できません (12) - ルートが容量を超え、ルート リニューアルを訪問する必要があります。ただし、あらかじめ割り当てられた訪問先が存在する場合、関連するルート リニューアルのシーケンス値は NULL になり、ルート リニューアルを挿入すると、必ず他の違反が発生します。
  • MaxTravelTimeBetweenBreaks が超過しました (13) - 解析では、休憩の MaxTravelTimeBetweenBreaks フィールドに指定された時間内に休憩を挿入できませんでした。これは、最大移動時間内に到達できないようなシーケンスがあらかじめ休憩に割り当てられている場合によく発生します。

  • MaxCumulWorkTime の休憩が超過しました (14) - 解析では、休憩の MaxCumulWorkTime フィールドに指定された時間内に休憩を挿入できませんでした。これは、最大労働時間内に到達できないようなシーケンスがあらかじめ休憩に割り当てられている場合によく発生します。
  • InboundArriveTime または OutboundDepartTime の訪問先違反 (15) - インバウンド到着時刻またはアウトバウンド出発時刻の制限内に訪問先にサービスを提供できませんでした。この違反は、すべてのルートの LatestStartTime フィールドの値が InboundArriveTime の値よりも前であるか、どのルートも訪問先の OutboundDepartTime 値の前に拠点に到達できない場合に発生します。
  • 最初/最後にアンカーできません (16) - 訪問先に「最初にアンカー」または「最後にアンカー」の割り当てルールがありますが、解析ではこの制約を適用できませんでした。この違反は、「最初にアンカー」の訪問先の数または「最後にアンカー」の訪問先の数が、使用可能なルートの数より多い場合に発生します。

Status

このフィールドは、以下に示す値のドメインによって制約されます (それぞれのコード値は括弧内に示されています)。

  • OK (0) - ネットワーク ロケーションは正常に評価されました。
  • Not located (1) - 地点がネットワーク上で正常に特定されませんでした。
  • Network element not located (2) - その地点のネットワーク ロケーション フィールドによって特定されるネットワーク エレメントが見つかりません。これは、その地点があるはずのネットワーク エレメントが削除され、ネットワーク ロケーションが再計算されなかった場合に発生する可能性があります。
  • Element not traversable (3) - 地点があるネットワーク エレメントは通過不能です。この状態は、規制属性によってネットワーク エレメントが規制されている場合に発生する可能性があります。
  • Invalid field values (4) - 1 つまたは複数の地点のフィールド値が、解析レイヤーのコード値ドメインまたは範囲ドメインから外れています。たとえば、正の数値が必要な場合に負の数値が存在しています。
  • Not reached (5) - 解析によってその地点に到着できません。他の入力から切り離された別個のネットワーク領域にその地点が存在するか、バリアまたは制限によってその地点との往来が禁止されています。
  • Time window violation (6) - 指定されたタイム ウィンドウ内にその地点に到着できませんでした。このステータスは、タイム ウィンドウをサポートする解析タイプにのみ適用されます。
  • Not located on closest (7) - 規制またはバリアがあるため、その地点に最も近いネットワーク ロケーションを通過できません。これにより、代わりに最も近い通過可能なネットワーク フィーチャ上にその地点が配置されています。