Network Analyst のライセンスで利用可能。
さまざまな組織が保有車両を使用して訪問先にサービスを提供しています。たとえば、大型の家具店では何台かのトラックを利用して顧客の自宅まで家具を配達しています。油を再利用する専門の会社では、レストランから使用済みの油を引き取るために、施設からトラックを一定の経路で走らせています。保健所では、各健康診査官の毎日の検査訪問をスケジュールしています。
このような例に共通する問題として配車ルート (VRP) があります。各組織は、どの訪問先 (住宅、レストラン、または検査現場) に各ルート (トラックまたは検査官) でサービスを提供するのか、訪問先をどのような順序で訪れるのかを決定する必要があります。この主な目的は、訪問先に最善のサービスを提供し、保有車両の全体の運用コストを最小にすることにあります。このため、ArcGIS Network Analyst エクステンションのルート解析では多くのストップを訪問する単一車両にとっての最適ルートを検索し、VRP 解析ではさまざまな訪問先にサービスを提供する車両にとっての最適ルートを検索します。さらに、VRP 解析の場合は、多数のオプション (車両の積載制限と注文数量の一致を図る、運転手に休憩をとらせる、複数の訪問先を同じルートに関係付けるなど) を利用できるため、より具体的な問題を解決することができます。
配車ルート解析は、他のネットワーク解析と同じワークフローに従います。
配車ルート解析レイヤー
配車ルート解析レイヤーには、特定の配車ルートに対する入力、パラメーター、および結果が格納されます。レイヤーが作成されると、[コンテンツ] ウィンドウにコンポジット レイヤーとして表示されます。これには「配車ルート (VRP)」という名前が付けられます。マップ ドキュメントに同じ名前の配車ルートがすでに存在する場合は「配車ルート (VRP) 1」、それがすでに存在する場合は「配車ルート (VRP) 2」などのように連番で名前が付けられます。配車ルート解析レイヤーは 13 個のネットワーク解析クラスで構成されています。そのうち 9 つはフィーチャ レイヤー (訪問先、拠点、ルート、休憩、ルート ゾーン、拠点立ち寄り状況、ポイント バリア、ライン バリア、ポリゴン バリア) で、4 つはテーブル (ルート特別指定、訪問先特別指定、訪問先ペア、ルート リニューアル) です。ネットワーク解析クラスは、配車ルート解析の実行時に使用されるネットワーク解析オブジェクトを含んでいます。各種ネットワーク解析クラス間の関係については、次のドキュメントをご参照ください。
配車ルート解析におけるネットワーク解析クラス間のリレーションシップArcGIS Pro 2.6 以降の VRP ワークフローをサポートするために、いくつかのスキーマの変更が加えられました。詳細については、「VRP スキーマの変更」をご参照ください。
メモ:
ArcGIS.com かポータルで VRP レイヤーのネットワーク データセットを参照する場合、解析に失敗した場合は、違反した制限フィールドだけが更新されます。その他すべてのフィールド (入力、出力ともに) は変更されません。
訪問先
このフィーチャ レイヤーには、特定の配車ルート解析レイヤーの一部である訪問先が格納されます。「訪問先」というオブジェクトによって想定される現実の業務として、顧客への配達、顧客からの集荷、その他があります。たとえば、家具の配達、レストランからの油の引き取り、訪問販売などがあります。
訪問先から引き取るアイテムまたは訪問先に配達するアイテムがある場合は、重量、体積、ユニット数など、希望の計測値または計測値の組み合わせに基づいて、そのアイテムに 1 つ以上の容量を設定することができます。検査訪問などの一部の訪問先については、配達や引き取りと関係がない場合があります。
訪問先での作業を完了するのに必要な時間であるサービス時間を、訪問先に設定することができます。たとえば、配送トラックにおいて、1 個の家具を車両からおろして住居内に運ぶのに 20 分のサービス時間を要するとします。サービス時間はすべての訪問先で同じになることもあれば、訪問先ごとに異なることもあります。
1 つまたは 2 つのタイム ウィンドウを訪問先に持たせて、車両が訪問先を訪れるのを許可されている時間帯を示すことができます。たとえば、卸売食料品の配達トラックがレストランへの到着を許されるのは午前 8:00 ~ 10:00 のタイム ウィンドウと午後 2:00 ~ 4:00 のタイム ウィンドウです。これ以外のタイム ウィンドウに到着すると、レストランの営業に支障をきたしてしまいます。
VRP 解析は、1 年以上にわたる問題を解決することを考慮していません。そのため、サービス時間とタイム ウィンドウはすべて 1 年以内である必要があります。
特別指定を訪問先に関連付けることができます。つまり、訪問先では、特定のスキルを身に付けた技術者 (たとえば、電気技術者) または特定の機能を備えた車両 (パワーリフト) を必要とする場合があります。同じ特別指定を持つルートだけが、その訪問先に割り当てられます。
訪問先: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
Shape | ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 |
Name | ネットワーク解析オブジェクトの名前。 名前は一意でなければなりません。 このフィールドは主キーとして機能し、外部キーとして訪問先ペアと訪問先特別指定テーブル内の訪問先を参照するために使用されます。訪問先の名前は大文字と小文字を区別しません。また、訪問先が解析対象から除外される場合でも、訪問先の名前は空白のままにしないでください。 |
Description | 訪問先に関する説明的な情報。訪問先に関するあらゆるテキスト情報を保持することができ、一意でなくてもかまいません。[Name] フィールドに顧客 ID 番号を格納し、[Description] フィールドに顧客の実際の名前または住所を格納すると便利なことがあります。 |
ServiceTime | このプロパティは、ルートがネットワーク ロケーションを訪れたときの滞在時間を指定します。つまり、ネットワーク ロケーションのインピーダンス値を格納します。0 または NULL 値は、ネットワーク ロケーションでサービス時間が必要ないことを表します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
TimeWindowStart | ネットワーク ロケーションの第 1 のタイム ウィンドウの開始時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、開始時刻は設定されません。 (詳細については、この表の後の注意をご参照ください。) |
TimeWindowEnd | ネットワーク ロケーションの第 1 のタイム ウィンドウの終了時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、終了時刻は設定されません。 (詳細については、この表の後の注意をご参照ください。) |
TimeWindowStart2 | ネットワーク ロケーションの第 2 のタイム ウィンドウの開始時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、第 2 のタイム ウィンドウは設定されません。 TimeWindowStart および TimeWindowEnd フィールドで第 1 のタイム ウィンドウを NULL に指定した場合は、第 2 のタイム ウィンドウも NULL にする必要があります。 両方のタイム ウィンドウに NULL 以外の値を指定する場合、これらのタイム ウィンドウを重なるように指定することはできません。また、第 2 のタイム ウィンドウは第 1 のタイム ウィンドウよりも後になるように設定する必要があります。 (詳細については、この表の後の注意をご参照ください。) |
TimeWindowEnd2 | ネットワーク ロケーションの第 2 のタイム ウィンドウの終了時刻。このフィールドは、NULL 値を含むことができます。 TimeWindowStart2 と TimeWindowEnd2 の両方が NULL の場合、第 2 のタイム ウィンドウは設定されません。 TimeWindowStart2 が NULL 以外で TimeWindowEnd2 が NULL の場合、第 2 のタイム ウィンドウの開始時間は設定されますが、終了時間は設定されません。これは有効な設定です。 (詳細については、この表の後の注意をご参照ください。) |
MaxViolationTime | 到着時刻がタイム ウィンドウの終了よりも後になった場合は、タイム ウィンドウが超過されたと見なされます。このフィールドでは、訪問先の第 1 のタイム ウィンドウについて最大許容超過時間を指定します。このフィールドは値としてゼロを含むことはできますが、負の値を含むことはできません。値がゼロの場合、訪問先の第 1 のタイム ウィンドウにおいてタイム ウィンドウ違反は許されません。つまり、第 1 のタイム ウィンドウは条件が厳しいということです。一方、NULL 値の場合、許容超過時間は無制限です。ゼロ以外の値は、最大遅延時間を指定します。たとえば、第 1 のタイム ウィンドウの終了時刻から最大で 30 分遅れて到着することが許されます。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 解析によってタイム ウィンドウ違反を追跡し、重み付けすることが可能です。このため、次の 3 つの手法のいずれかを使用するように VRP 解析機能に指示することができます。
解析レイヤーの [タイム ウィンドウ違反] 設定に重要度を割り当てることで、この 3 つの手法の中から実質的に 1 つを選択できます。ただし、いずれの場合も、MaxViolationTime の値セットを超えるとエラーが返されます。 |
MaxViolationTime2 | 訪問先の第 2 のタイム ウィンドウの最大許容超過時間。このフィールドは、MaxViolationTime フィールドと同様です。 |
InboundArriveTime | 訪問先に配達されるアイテムが開始拠点で準備される時間を定義します。 このインバウンド到着時間がルートの最新の開始時間値より前の場合のみ、訪問先をルートに割り当てることができます。このため、アイテムを積み込む準備ができるまで、拠点を出発することはできません。 このフィールドは、インバウンド到着後の積み替えに関わるシナリオのモデリングに役立ちます。たとえば、訪問先のジョブで、現在拠点にない特別なマテリアルが必要であるとします。このマテリアルは、別のロケーションから発送され、午前 11 時に拠点に到着する予定です。マテリアルの到着前に出発するルートが訪問先に割り当てられないようにするために、訪問先のインバウンド到着時間を午前 11 時に設定します。特別なマテリアルが午前 11 時に到着し、車両に積み込まれ、車両が拠点から出発して割り当てられた訪問先に移動します。 備考:
|
OutboundDepartTime | 訪問先で積み込むアイテムが終了拠点に到着しなくてはならない時間を定義します。 指定したアウトバウンド出発時間より前にルートが訪問先に移動でき、終了拠点に到着できる場合のみ、訪問先をルートに割り当てることができます。 このフィールドは、アウトバウンド出発時刻の積み替えに関わるシナリオのモデリングに役立ちます。たとえば、発送会社が配達トラックを使って訪問先からパッケージを積み込み、拠点に運び、それを最終目的地へのルートの途中で、別の施設に送るとします。毎日、午後 3 時に、セミトレーラーが拠点に立ち寄り、優先度の高いパッケージを積み込み、それを中央処理ステーションに直接輸送します。発送会社は、優先度の高いパッケージの輸送が次の日の午後 3 時まで遅れないように、配達トラックで訪問先から優先度の高いパッケージを積み込み、それを締め切りの午後 3 時より前に拠点に輸送しようと努めます。このために、アウトバウンド出発時間を午後 3 時に設定します。 備考:
|
| 配達される荷物のサイズ。重量、体積、数量など、任意の計測単位で容量を指定できます。複数の配送数量がある場合、必要に応じて DeliveryQuantity_1 フィールドから DeliveryQuantity_9 フィールドを使用して指定します。 |
| 引き取る荷物のサイズ。重量、体積、数量など、任意の計測単位で容量を指定できます。複数の引き取り数量がある場合、必要に応じて PickupQuantity_1 フィールドから PickupQuantity_9 フィールドを使用して指定します。 |
Revenue | 訪問先が解析に含まれる場合に生成される収入。このフィールドは NULL 値 (収入がゼロであることを示す) を含むことができますが、負の値を含むことはできません。 収入は、目的関数の値を最適化する際に算入されますが、ソリューションの運用コストには組み込まれません。つまり、ルート クラスの TotalCost フィールドの出力に収入が取り込まれることはありません。ただし、収入によって、訪問先へのサービス提供の重要度が相対的に重み付けされます。 |
AssignmentRule | 訪問先をルートに割り当てるためのルールを指定します。このフィールドは、以下に示す値のドメインによって制約されます (それぞれのコード値は括弧内に示されています)。
このフィールドは、NULL 値を含むことができません。 |
ネットワーク ロケーション フィールド
| これらのプロパティを組み合わせて、オブジェクトが配置されているネットワーク上のポイントを表します。 |
CurbApproach | CurbApproach プロパティには、車両がネットワーク ロケーションに到着する方向およびネットワーク ロケーションから出発する方向を指定します。このプロパティには 4 つの値を設定できます (それぞれのコード値は括弧内に示されています)。
|
メモ:
タイム ウィンドウは、訪問先への車両の到着が許される時間帯を示すだけです。サービス時間が完了しなければならない時間帯を示すものではありません。サービス時間を考慮に入れ、タイム ウィンドウが終了する前に退去するには、TimeWindowEnd フィールドから ServiceTime を引き算します。
タイム ウィンドウ フィールドのタイム ゾーンは、[配車ルート (VRP) 解析レイヤーの作成 (Make Vehicle Routing Problem Analysis Layer)] ジオプロセシング ツールの time_zone_for_time_fields パラメーターを使用して指定できます。
タイム ウィンドウ フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。TimeWindowStart などのタイム フィールドの値に時刻だけ (たとえば、午前 8:00) を指定した場合、日付は解析レイヤーの [デフォルトの日付] プロパティで指定された日付と見なされます。日時の値 (たとえば、7/11/2010 8:00 a.m.) を使用すると、複数日にわたるタイム ウィンドウを設定することができます。
タイム ウィンドウ フィールドに日付と時刻が示されている場合は、デフォルトの日付が無視されます。この場合にエラーが発生しないようにするには、拠点、ルート、訪問先、および休憩のタイム ウィンドウをすべて書式設定して日付と時刻を示します。
交通量データを使用する場合、ネットワーク ロケーションの時刻フィールドは常に、ネットワーク ロケーションが配置されるエッジと同じタイム ゾーンを参照します。
訪問先: 入力/出力フィールド
入力/出力フィールド | 説明 |
---|---|
RouteName | 訪問先が割り当てられるルートの名前。 このフィールドを入力フィールドとして使用し、訪問先を特定のルートにあらかじめ割り当てておきます。このフィールドは NULL 値を含むことができます。NULL 値の場合、訪問先はどのルートにもあらかじめ割り当てられず、解析機能が訪問先にとって最良のルート割り当てを決定します。このフィールドを NULL に設定した場合は、[Sequence] フィールドも NULL に設定する必要があります。 このフィールドは、[ルート] クラスの [Name] フィールドに対する外部キーです。ルート オブジェクトはあらかじめ存在している場合に限り、[RouteName] リストに表示されます。 解析の後、訪問先のルートが解析されると、RouteName フィールドには訪問先が割り当てられるルートの名前が入ります。 |
Sequence | このフィールドは、訪問先に割り当てられたルートでの訪問先の順序を示します。 入力フィールドとしてこのフィールドを使用して、ルート上での訪問先の相対的な順序を指定します。このフィールドは NULL 値を含むことができます。NULL 値は、訪問先をルート上のどこにでも配置できることを示します。NULL 値にする場合は、RouteName の値も NULL 値でなければなりません。 順序を示す入力値は、負でない値であり、各ルートに対して一意です (拠点立ち寄り状況、訪問先、および休憩の間で共有される)。ただし、0 から開始する必要も連続している必要もありません。 解析の後、[Sequence] フィールドには、割り当てられたルート上での訪問先の順序の値が入ります。ルートに対して出力される順序の値は、拠点立ち寄り状況、訪問先、および休憩の間で共有され、1 (開始拠点) から始まり、連続的な値となります。ルートは常に拠点から始まるので、ルート解析対象の訪問先に対して出力される最小限の順序の値は 2 となります。 |
Status | このフィールドは、以下に示す値のドメインによって制約されます (それぞれのコード値は括弧内に示されています)。
解析後、次のいずれかの状態値を使用して状態を変更できます。
タイム ウィンドウが使用され、ルートが早く、または遅く到着する場合、値は [タイム ウィンドウ違反] (6) に変わります。 |
メモ:
訪問先の [AssignmentRule] フィールドの値が「除外」の場合は、解析処理中に [Status]、[RouteName]、[Sequence] フィールドの入力値が変更されません。
訪問先: 出力フィールド
出力フィールド | 説明 |
---|---|
| このフィールドは制約違反のサマリーを含み、解析の実行後に設定されます。各フィールドには、違反が 1 つ含まれます。訪問先に複数の違反が含まれる場合、次の ViolatedConstraint_# フィールドが使用されます。
メモ:ルート解析されない訪問先の制約違反フィールドの値は、すべての違反を説明することもあれば、そうでないこともあります。訪問先を検討対象から直ちに除外する必要があるくらい違反が深刻である場合、解析機能はその処理を行い、その訪問先について他のどのような違反も検出しないようにします。違反が発生しても、それによってソリューションの生成が自動的に停止されない場合は、制約違反フィールドに違反が報告され、解析では訪問先を引き続き検討対象とします。そうした違反がさらに発生した場合は、制約違反フィールドに追加され、この追加処理は、該当する訪問先に対する解析プロセスが違反によって異常終了するか、問題の全体的なソリューションを解析で検出するまで継続されます。 |
FromPrevTravelTime | 前の訪問先から次の訪問先までの移動時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
FromPrevDistance | 前の訪問先から次の訪問先までの移動距離。 このフィールドの値の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。解析パラメーターで [距離属性] プロパティが指定されていない場合、このフィールドは NULL です。 |
CumulTravelTime | ルートが訪問先に到着するまでの累積移動時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulDistance | ルートが訪問先に到着するまでの累積移動距離。 このフィールドの値の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。解析パラメーターで [距離属性] プロパティが指定されていない場合、このフィールドは NULL です。 |
CumulTime | 訪問先までのルートの累積所要時間で、訪問先で費やした時間を含みます。累積所要時間には、移動時間に加えて、訪問先でのサービス時間および待ち時間も含まれます。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
ArriveCurbApproach | 車両がネットワーク ロケーションに到着するときに、アプローチを車両のどちら側に制限するかを表します。ネットワーク ロケーションの CurbApproach の値が [車両の右側] に設定されている場合、解析後の ArriveCurbApproach は [車両の右側] になります。一方、CurbApproach の値が [車両の両側] または [U ターンを許可しない] に設定されている場合、ArriveCurbApproach はパス全体が最短となるように右側または左側のどちらかに決定されます。 |
DepartCurbApproach | 車両がネットワーク ロケーションに出発するときに、アプローチを車両のどちら側に制限するかを表します。ネットワーク ロケーションの CurbApproach の値が [車両の右側] に設定されている場合、解析後の DepartCurbApproach は [車両の右側] になります。一方、CurbApproach の値が [車両の両側] または [U ターンを許可しない] に設定されている場合、DepartCurbApproach はパス全体が最短となるように右側または左側のどちらかに決定されます。 |
ArriveTime | 訪問先に到着した時刻を示す日時の値。 ルートは、訪問先にそのタイム ウィンドウが始まる前に到着することがあります。この場合、訪問先では待ち時間が発生します。ソフト タイム ウィンドウが設定されている訪問先については、いずれかのタイム ウィンドウの終了後に訪問先にルートが到着することがあります。この場合、訪問先では超過時間が発生します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時間値のタイム ゾーンは訪問先が配置されているネットワーク エレメントから取得されます。 |
DepartTime | 訪問先からの開始時刻を示す日時の値。ルートは、サービスが完了すると訪問先を出発します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時間値のタイム ゾーンは訪問先が配置されているネットワーク エレメントから取得されます。 |
ArriveTimeUTC | 訪問先に到着した時刻を UTC (世界協定時) で示す日時の値。 |
DepartTimeUTC | 訪問先からの開始時刻を UTC (世界協定時) で示す日時の値。ルートは、サービスが完了すると訪問先を出発します。 |
WaitTime | 訪問先での待ち時間または待ち合わせ時間。たとえば、ルートが訪問先にてタイム ウィンドウが開くまで待機する必要がある場合は、待ち時間の値を取得します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
ViolationTime | 訪問先のタイム ウィンドウの終了からルート車両の到着までの経過時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulWaitTime | ルートの開始から訪問先までの累積待ち時間で、訪問先での待ち時間を含みます。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulViolationTime | ルートの開始から訪問先までの累積超過時間で、訪問先での超過時間を含みます。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
拠点
このネットワーク解析クラスには、特定の配車ルート解析レイヤーの一部である拠点が格納されます。拠点とは、車両が就業日の初めに出発し、就業日の終わりに戻ってくる場所です。拠点は、車両に荷物が積まれ (配達の場合)、車両から荷が降ろされる (引き取りの場合) 場所です。拠点は、場合によっては、リニューアル ロケーションとしての役割を果たすこともできます。これにより、車両は荷を降ろしたり再度積み込んだりして、配達と引き取りを引き続き行うことができます。拠点には、絶対的なタイム ウィンドウで指定される開始時刻と終了時刻があります。車両はこのタイム ウィンドウ外の時間に拠点に到着することは許されません。
拠点: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
Shape | ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 |
Name | ネットワーク解析オブジェクトの名前。 このフィールドは主キーです。ルート フィーチャ レイヤー、ルート リニューアル テーブル、拠点立ち寄り状況フィーチャ レイヤーでは、外部キーとして使用して拠点を参照します。拠点の名前は大文字と小文字を区別しません。また、空白以外の一意の値にする必要があります。 |
Description | ネットワーク解析オブジェクトに関する情報。あらゆるテキスト情報を保持することができ、一意でなくてもかまいません。 拠点が存在する領域や、拠点の住所および電話番号をメモしておくと便利な場合があります。このような情報は [Name] フィールドではなく、このフィールドに入力できます。 |
TimeWindowStart | ネットワーク ロケーションの第 1 のタイム ウィンドウの開始時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、開始時刻は設定されません。 (詳細については、この表の後の注意をご参照ください。) |
TimeWindowEnd | ネットワーク ロケーションの第 1 のタイム ウィンドウの終了時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、終了時刻は設定されません。 (詳細については、この表の後の注意をご参照ください。) |
TimeWindowStart2 | ネットワーク ロケーションの第 2 のタイム ウィンドウの開始時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、第 2 のタイム ウィンドウは設定されません。 TimeWindowStart および TimeWindowEnd フィールドで第 1 のタイム ウィンドウを NULL に指定した場合は、第 2 のタイム ウィンドウも NULL にする必要があります。 両方のタイム ウィンドウに NULL 以外の値を指定する場合、これらのタイム ウィンドウを重なるように指定することはできません。また、第 2 のタイム ウィンドウは第 1 のタイム ウィンドウよりも後になるように設定する必要があります。 (詳細については、この表の後の注意をご参照ください。) |
TimeWindowEnd2 | ネットワーク ロケーションの第 2 のタイム ウィンドウの終了時刻。このフィールドは、NULL 値を含むことができます。 TimeWindowStart2 と TimeWindowEnd2 の両方が NULL の場合、第 2 のタイム ウィンドウは設定されません。 TimeWindowStart2 が NULL 以外で TimeWindowEnd2 が NULL の場合、第 2 のタイム ウィンドウの開始時間は設定されますが、終了時間は設定されません。これは有効な設定です。 (詳細については、この表の後の注意をご参照ください。) |
ネットワーク ロケーション フィールド
| これらのプロパティを組み合わせて、オブジェクトが配置されているネットワーク上のポイントを表します。 |
CurbApproach | CurbApproach プロパティは、車両が拠点に到着する方向および拠点から出発する方向を指定します。これは車両が特定の方向から拠点に到着し、拠点から特定の方向に出発する必要がある場合、または U ターンを避ける必要がある場合に役立ちます。CurbApproach の値として次の 4 つ値のいずれかを選択することによって、これらの要件に対応できます。
|
メモ:
タイム ウィンドウ フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。TimeWindowStart などのタイム フィールドの値に時刻だけ (たとえば、午前 8:00) を指定した場合、日付は解析レイヤーの [デフォルトの日付] プロパティで指定された日付と見なされます。日時の値 (たとえば、7/11/2010 8:00 a.m.) を使用すると、複数日にわたるタイム ウィンドウを設定することができます。
タイム ウィンドウ フィールドのタイム ゾーンは、[配車ルート (VRP) 解析レイヤーの作成 (Make Vehicle Routing Problem Analysis Layer)] ジオプロセシング ツールの time_zone_for_time_fields パラメーターを使用して指定できます。
タイム ウィンドウ フィールドに日付と時刻が示されている場合は、デフォルトの日付が無視されます。この場合にエラーが発生しないようにするには、拠点、ルート、訪問先、および休憩のタイム ウィンドウをすべて書式設定して日付と時刻を示します。
交通量データを使用する場合、ネットワーク ロケーションの時刻フィールドは常に、ネットワーク ロケーションが配置されるエッジと同じタイム ゾーンを参照します。
拠点: 入力/出力フィールド
入力/出力フィールド | 説明 |
---|---|
Status | このフィールドは、以下に示す値のドメインによって制約されます (それぞれのコード値は括弧内に示されています)。
解析後、次のいずれかの状態値を使用して状態を変更できます。
タイム ウィンドウが使用され、ルーティングされた車両が早く、または遅く到着する場合、値は [タイム ウィンドウ違反] (6) に変わります。 |
ルート
このネットワーク解析クラスには、特定の配車ルート解析レイヤーの一部であるルートが格納されます。ルートは、車両および運転手の特性を指定し、拠点と訪問先の間の通行を表します。Network Analyst では、「車両」、「ルート」、および「運転手」は同義語であり、この 3 つすべてを「ルート」という用語で表現します。
メモ:
VRP 解析では、単一のルート ソリューションにおいて、交替勤務で同じ車両を使用すること、または、就業日内に運転手を変更することを考慮に入れていません。
ルートでは、開始拠点または終了拠点で荷物の積み降ろしに時間を要する場合があります。ルートの拠点で費やされる時間は固定されており、開始拠点および終了拠点のサービス時間として指定されます。
ルートは、決まった時刻に始めるように指定することも、開始時刻に幅を持たせること (つまり、何時から何時までの間という形で指定すること) も可能です。開始拠点の開始時刻範囲とタイム ウィンドウは、ルートの実際の開始時刻を決定する際に考慮されます。
個々のルートの運用コストは、時間ベースのコスト、距離ベースのコスト、および/または作業した時間または運転した距離に関係のない固定コストによって構成されます。追加の車両をレンタルして作業量の多い日に対処する必要がある場合は、車両の使用に関連付けられた固定コストが存在します。同様に、運転手には (規定外労働時間や昼休みを含めた、または除外した) 労働時間数に対応する賃金が支払われます。このようなコストを使用して時間ベースのコストを明示することができます。燃料コストを使用して距離ベースのコストを明示することができます。
特定のルートで運用される車両には、車両の運送可能な量を制限する積載制限もあります。
運転手の労働時間 (運転者が作業または運転できる時間数または合計運転距離) は、地域の法規または労働組合協定で定められているため、規制の対象となります。
ルートには作業休憩を含めることができます。こうした休憩について運転手に賃金が支払われる場合もあればそうでない場合もあります。
車両は、特定の機能 (パワー リフトや特殊なシールド) を備える場合があります。あるいは、技術者はさまざまなスキルを身に付けている場合があります。このような特別指定が定義された訪問先は、適切なルートに割り当てる必要があります。
ルートがあらかじめ定義された地理的な領域に入るよう制限されている場合は、ルートをゾーンと関連付けることができます。
ルートは、ライン フィーチャです。これらのフィーチャは、他の配車ルート解析レイヤーの既存のルート、他のライン フィーチャ、またはテーブルからインポートすることができます。
ルート: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
Name | ネットワーク解析オブジェクトの名前。 このフィールドは主キーです。訪問先フィーチャ レイヤー、休憩フィーチャ レイヤー、ルート ゾーン フィーチャ レイヤー、拠点立ち寄り状況フィーチャ レイヤー、ルート リニューアル テーブル、ルート特別指定テーブルでは、外部キーとして使用して特別指定を参照します。ルートの名前は大文字と小文字を区別しません。また、ルートが解析の対象から除外される場合でも、ルートの名前は空白のままにしないでください。名前は一意でなければなりません。 |
Description | ネットワーク解析オブジェクトに関する情報。あらゆるテキスト情報を保持することができ、一意でなくてもかまいません。 |
StartDepotName | ルートの開始拠点の名前。このフィールドは、拠点クラスの [Name] フィールドに対する外部キーです。拠点オブジェクトはあらかじめ存在している場合に限り、StartDepotName ドロップダウン リストに表示されます。 StartDepotName の値が NULL の場合、ルートは指定されている最初の訪問先から始まります。開始拠点を省略するのは、車両の出発点が不明か、解析に関係ない場合に有効です。ただし、StartDepotName が NULL の場合は、EndDepotName を NULL にすることはできません。 訪問先/拠点が複数のタイム ゾーンにある場合、仮想の開始拠点は使用できません。 ルートが配達を行っていて、StartDepotName が NULL の場合、荷物はルートの開始前に仮想拠点で車両に積み込まれるものと想定されます。リニューアル拠点を持たないルートの場合、その配達訪問先 ([訪問先] クラスの DeliveryQuantity_# フィールドがゼロ以外の値) の荷物は、開始拠点または仮想拠点で積み込まれます。リニューアル拠点を持つルートの場合、最初のリニューアル拠点の手前にある配達訪問先の荷物のみが開始拠点または仮想拠点で積み込まれます。 |
EndDepotName | ルートの終了拠点の名前。このフィールドは、拠点クラスの [Name] フィールドに対する外部キーです。拠点オブジェクトはあらかじめ存在している場合に限り、[EndDepotName] ドロップダウン リストに表示されます。 |
StartDepotServiceTime | 開始拠点でのサービス時間。このフィールドを使用して、車両に荷物を積み込むのに要する時間をモデリングします。このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 メモ:開始拠点と終了拠点でのサービス時間は固定値で (StartDepotServiceTime および EndDepotServiceTime フィールドの値で指定)、ルートの実際の積み込み時間は考慮されません。たとえば、開始拠点で車両への積み込みにかかる時間は、訪問先のサイズによって異なります。したがって、拠点のサービス時間に満載の積荷または平均的な積荷に応じた値を指定するか、独自に見積もりを行います。 |
EndDepotServiceTime | 終了拠点でのサービス時間。このフィールドを使用して、車両から荷物を降ろすのに要する時間をモデリングします。このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 メモ:開始拠点と終了拠点でのサービス時間は固定値で (StartDepotServiceTime および EndDepotServiceTime フィールドの値で指定)、ルートの実際の積み込み時間は考慮されません。たとえば、開始拠点で車両への積み込みにかかる時間は、訪問先のサイズによって異なります。したがって、拠点のサービス時間に満載の積荷または平均的な積荷に応じた値を指定するか、独自に見積もりを行います。 |
EarliestStartTime | ルートにおいて許容される最も早い開始時刻。解析では、このフィールドを開始拠点のタイム ウィンドウと組み合わせて使用し、ルートの実現可能な開始時刻を決定します。 このフィールドは NULL 値を含むことはできません。デフォルト値は午前 8:00 で、時刻のみを示す値となります。このデフォルト値は解析レイヤーの [デフォルトの日付] プロパティで指定された日の午前 8:00 と解釈されます。 タイム ウィンドウ フィールドに日付と時刻が示されている場合は、デフォルトの日付が無視されます。この場合にエラーが発生しないようにするには、拠点、ルート、訪問先、および休憩のタイム ウィンドウをすべて書式設定して日付と時刻を示します。 複数のタイム ゾーンにまたがる交通量データを持つネットワーク データセットを使用する場合、EarliestStartTime のタイムゾーンは開始拠点が配置されているエッジまたはジャンクションのタイム ゾーンと同じになります。 |
LatestStartTime | ルートにおいて許容される最も遅い開始時刻。このフィールドは NULL 値を含むことはできません。デフォルト値は 10:00 で、時刻のみを示す値となります。このデフォルト値は解析レイヤーの [デフォルトの日付] プロパティで指定された日の 10:00 と解釈されます。 タイム ウィンドウ フィールドに日付と時刻が示されている場合は、デフォルトの日付が無視されます。この場合にエラーが発生しないようにするには、拠点、ルート、訪問先、および休憩のタイム ウィンドウをすべて書式設定して日付と時刻を示します。 複数のタイム ゾーンにまたがる交通量データを持つネットワーク データセットを使用する場合、LatestStartTime のタイムゾーンは開始拠点が配置されているエッジまたはジャンクションのタイム ゾーンと同じになります。 |
ArriveDepartDelay | このフィールドには、車両を通常の移動速度まで加速し、停止するまで減速し、ネットワークに出入りする (たとえば、駐車場に出入りする) のに必要な移動時間が格納されます。[ArriveDepartDelay] 値を含めることにより、VRP 解析で、物理的に一致する訪問先にサービスを提供するために多くのルートを送り出すことがなくなります。 このプロパティのコストは、一致しない訪問先、拠点、およびルート リニューアルへの訪問の間に発生します。たとえば、ルートが拠点から出発し、最初の訪問先を訪問したときに、到着と出発の遅延の合計が移動時間に追加されます。最初の訪問先から 2 番目の訪問先まで移動するときにも同じことが起こります。2 番目と 3 番目の訪問先が一致している場合、車両は移動する必要がないため、この間については [ArriveDepartDelay] 値は追加されません。ルートがルート リニューアルに移動する場合、この値が再び移動時間に追加されます。休憩の場合、車両は減速して停止し、後で加速する必要がありますが、VRP 解析では [ArriveDepartDelay] 値を加算できません。これは、ルートが訪問先を離れ、休憩のために停止し、さらに次の訪問先に向かった場合に、到着と出発の遅延は 2 度ではなく、1 度しか追加されないことを意味します。 1 つの高層ビル内に 5 つの一致する訪問先があり、それらが 3 つの異なるルートでサービスを提供されているとします。この場合は、到着と出発の遅延が 3 回発生します。つまり、3 人の運転手が駐車場所を見つけ、同じ建物に入ることが必要になります。しかし、これらの訪問先に 1 つのルートだけでサービスを提供できれば、駐車して建物に入る運転手は 1 人だけになり、到着と出発の遅延の発生も 1 回だけになります。VRP 解析ではコストの最小化が図られるため、到着と出発の遅延を抑えるために、単一ルートのオプションが選択されます (特別指定、タイム ウィンドウ、積載制限などの制約によって、複数のルートが必要になる場合があります)。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
| 車両で運送可能な荷物の量 (たとえば、体積、重量、数量)。複数の容量がある場合、必要に応じて Capacity_1 フィールドから Capacity_9 フィールドを使用して指定します。 |
FixedCost | ルートがソリューションで使用される (つまり、訪問先がソリューションに割り当てられている) 場合に限り適用される金銭上の固定コスト。このフィールドは NULL 値を含むことができます。NULL 値は固定コストがゼロであることを示します。このコストは、ルートの合計運用コストの一部です。 |
CostPerUnitTime | 合計ルート所要時間 (移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待機時間も含む) に対して作業の単位時間ごとに適用される金銭上のコスト。このフィールドは NULL 値を含むことができず、デフォルト値は 1.0 となります。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CostPerUnitDistance | ルート長 (合計移動距離) に対して (移動距離の単位ごとに) 適用される金銭上のコスト。このフィールドは NULL 値を含むことができます。NULL 値はコストがゼロであることを示します。 距離の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。 このフィールドに値が与えられているのに解析レイヤーの [距離属性] プロパティが指定されていない場合は、エラーが返されます。 |
OvertimeStartTime | 規定労働時間の長さで、この時間を超過すると規定外労働時間の計算が開始されます。このフィールドは NULL 値を含むことができます。NULL 値は規定外労働時間が適用されないことを示します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 たとえば、合計ルート所要時間が 8 時間を超えたときに運転手に規定外労働時間賃金を支払う必要がある場合、解析レイヤーの [時間フィールドの単位] プロパティを [時間] に設定して、[OvertimeStartTime] を 8 に指定する必要があります。 |
CostPerUnitOvertime | 規定外労働時間の単位時間ごとに適用される金銭上のコスト。このフィールドは NULL 値を含むことができます。NULL 値は CostPerUnitOvertime の値が CostPerUnitTime の値と同じであることを示します。 |
MaxOrderCount | ルートに組み込むことができる訪問先の最大数。このフィールドは NULL 値を含むことができません。デフォルト値は 30 となります。 |
MaxTotalTime | ルートの最大許容所要時間。ルートの所要時間には、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。このフィールドは NULL 値を含むことができます。NULL 値はルートの所要時間に制約がないことを示します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
MaxTotalTravelTime | ルートの最大許容移動時間。移動時間に含まれるのはネットワークの走行に費やされた時間だけで、サービス時間または待ち時間は含まれません。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 このフィールドは NULL 値を含むことができます。NULL 値は最大許容移動時間に制約がないことを示します。このフィールドは [MaxTotalTime] フィールドより小さくする必要があります。 |
MaxTotalDistance | ルートへの最大許容移動距離。 合計距離の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。 このフィールドは NULL 値を含むことができます。NULL 値は最大許容移動距離に制約がないことを示します。 このフィールドに値が与えられているのに解析レイヤーの [距離属性] プロパティが指定されていない場合は、エラーが返されます。 |
AssignmentRule | 問題の解決時にルートを使用できるかどうかを指定します。このフィールドは、値のドメインによって制約されます。設定可能な値は次のとおりです。
|
ルート: 出力フィールド
出力フィールド | 説明 |
---|---|
Shape | ルートのライン形状。解析レイヤーの [出力形状のタイプ] プロパティを [なし] に設定した場合、形状は表示されません。[出力形状のタイプ] プロパティを [直線] に設定すると、連続的な立ち寄り先の各ペアを接続する直線が表示されます。[正確な形状 (メジャー付き)] および [正確な形状] のいずれを選択しても、ネットワーク上の対応するルートをトレースするラインが表示されます。ただし、[正確な形状 (メジャー付き)] では、時間よって直線的に参照されたラインが表示される点が異なります。 |
| このフィールドは制約違反のサマリーを含み、解析の実行後に設定されます。ルートによって制約違反が発生する場合、以下に示す違反をフィールドに割り当てることができます (1 フィールドにつき 1 違反)。
|
OrderCount | ルートに割り当てられる訪問先の数。 |
TotalCost | ルートの合計運用コストです。これは、次のフィールドの合計です。
|
RegularTimeCost | 無給の休憩を除外した規定労働時間のコスト。 |
OvertimeCost | 無給の休憩を除外した規定外労働のコスト。 |
DistanceCost | [TotalDistance] と [CostPerUnitDistance] フィールド値を掛け算して得られる距離のコスト要素。解析レイヤーに [距離属性] プロパティが指定されていない場合、このフィールド値は NULL となります。 |
TotalTime | 合計ルート所要時間。これには、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。[TotalTime] の値は次のフィールドの合計です。
このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
TotalOrderServiceTime | ルート上のすべての訪問先で費やされる合計サービス時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
TotalBreakServiceTime | ルート上のすべての休憩で費やされる合計サービス時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
TotalTravelTime | ルートの合計移動時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
TotalDistance | ルートの合計移動距離。 このフィールドの値の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。解析パラメーターで [距離属性] プロパティが指定されていない場合、このフィールドは NULL です。 |
StartTime | ルートの開始時刻。ルートは、開始拠点のタイム ウィンドウが始まる前に出発することがあります。この場合、開始拠点では待ち時間が発生します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは開始拠点が配置されているネットワーク エレメントから取得されます。 |
EndTime | ルートの終了時刻。ルートは、終了拠点でのサービス完了時に終了します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは終了拠点が配置されているネットワーク エレメントから取得されます。 |
StartTimeUTC | ルートの開始時刻 (UTC (世界協定時))。 |
EndTimeUTC | UTC (協定世界時) でのルートの終了時刻。 |
TotalWaitTime | ルート上のすべての訪問先、拠点、および休憩での合計待ち時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
TotalViolationTime | ルート上のすべての訪問先および休憩での合計超過時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
RenewalCount | リニューアルを持つルートの場合、このフィールドはリニューアルのために拠点に立ち寄った回数に相当します。 |
TotalRenewalServiceTime | リニューアルを持つルートの場合、ルート上のすべてのリニューアル拠点で費やされたサービス時間の合計を示します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
休憩
これは、配車ルート解析で、ルートの休憩時間または休憩が格納されるネットワーク解析クラスです。休憩は、厳密に 1 つのルートに関連付けられ、訪問先にサービスを提供した後、訪問先へのルート途中、または訪問先にサービスを提供する前に取ることができます。休憩には開始時間と継続時間があり、運転手に賃金が支払われる場合もあればそうでない場合もあります。休憩の開始を決める 3 つのオプションがあり、タイム ウィンドウ、最大移動時間、または最大労働時間のいずれかを入力することができます。
タイム ウィンドウの休憩 - タイム ウィンドウの休憩を設定するには、2 つの時刻値を入力して、休憩が始まる時間の範囲を区切ります。[TimeWindowStart] フィールドと [TimeWindowEnd] フィールドに区切りの時刻が入ります。休憩の継続時間、またはサービス時間は、このタイム ウィンドウに依存しないため、タイム ウィンドウの終了時刻を超えてもかまいません。たとえば、1 時間の休憩のタイム ウィンドウが午前 10:00 ~ 10:15 である場合、休憩は午前 10:00 以降、午前 10:15 以前に開始しなければなりません。午前 10:10 に開始した場合は午前 11:10 に終了します。訪問先/拠点が複数のタイム ゾーンにある場合、タイムウィンドウの休憩は使用できません。この状況で休憩が必要な場合は、最大作業時間の休憩設定を使用します。
休憩までの最大移動時間 - この種類の休憩では、休憩が必要になるまでに、運転手が運転できる時間を指定します (制限されるのは移動時間のみであり、それ以外の待ち時間やサービス時間などは制限されません)。たとえば、最初の休憩の [MaxTravelTimeBetweenBreaks] プロパティに 4 時間と入力すると、ルートの開始からの累積移動時間が 4 時間を超える前に、運転手に休憩が与えられます。それ以降の休憩については、前の休憩からの移動時間が累積されます。したがって、[MaxTravelTimeBetweenBreaks] 値が 2 時間で 2 回目の休憩がある場合、出発拠点からではなく、前の休憩からの累積移動時間が 2 時間を超える前に、2 回目の休憩を取ります。
ルートの最後の休憩までの最大移動時間は、前の休憩またはルートの開始からの累積移動時間だけでなく、最後の休憩から終了拠点までの移動時間も制限します。これは、休憩が 1 回のみでも同じです。VRP 解析がこのように設計されているのは、ルートがすべての休憩を取り、さらに長時間にわたって別の休憩を取らずに移動を続けることがないようにするためです。最後の例では、[MaxTravelTimeBetweenBreaks] が 2 時間に設定されていました。これがルートの最後の休憩なら、ルートは最後の休憩から 2 時間以内に終了拠点に到達しなければならず、到達しない場合はエラーが返されます。
休憩までの最大作業時間 - この休憩では、休憩が必要になるまでに、担当者が作業できる時間を指定します。最後の休憩の終了からの移動時間を累積できる休憩までの最大移動時間とは異なり、休憩までの最大作業時間では常にルートの開始からの作業時間を、開始拠点でのサービス時間も含めて累積します。
この休憩では累積された作業時間が制限されます。これには、移動時間とすべてのサービス時間が含まれますが、待ち時間は含まれません。
配車ルート解析レイヤーは、すべての休憩が同じ種類である場合に限って解析可能です。つまり、タイム ウィンドウ、休憩までの最大移動時間、休憩までの最大労働時間のいずれかの組み合わせが使用されている場合、解析プロセスは失敗します。
最大 5 つの休憩を 1 つのルートに指定できます。たとえば、解析のために休憩までの最大移動時間を使用しているとします。移動時間が 2 時間累積されたら、運転手は 15 分休むことができ、さらに 2 時間移動したら、1 時間の昼休みを取ることができるように、2 つの休憩を 1 つのルートに割り当てることができます。他のルートにも、0 ~ 5 個の休憩を割り当てることができます。
休憩は、その順序を指定する [Precedence] フィールドを持ちます。15 分の休憩を 1 時間の休憩の前に取りたい場合は、15 分の休憩の優先値を 1 に、1 時間の休憩の優先値を 2 に設定します。最大労働時間とタイム ウィンドウの休憩には、基本的に時系列的な順序がありますが、[Precedence] はすべての休憩に必要です。
最大移動時間または最大労働時間の休憩をすべて消化することなく、ルートが最終目的地に到達した場合、残された休憩は無視されます。ルートの最後でタイム ウィンドウの休憩が残っている場合、ルートは早く終了せずに、すべての休憩が取られるのを待って終了します。
休憩: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
TimeWindowStart | 休憩のタイム ウィンドウの開始時間。休憩にはハーフオープン タイム ウィンドウは無効です。 このフィールドが値を持つ場合、MaxTravelTimeBetweenBreaks と MaxCumulWorkTime は NULL でなければなりません。さらに、解析レイヤーの他のすべての休憩についても、MaxTravelTimeBetweenBreaks と MaxCumulWorkTime の値は NULL でなければなりません。 ルートにタイム ウィンドウが重なった複数の休憩があると、解析時にエラーになります。 休憩のタイム ウィンドウ フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。TimeWindowStart などのタイム フィールドの値に時刻だけ (たとえば、午後 12:00) を指定した場合、日付は解析レイヤーの [デフォルトの日付] プロパティで指定された日付と見なされます。日時を示す値 (たとえば、2012 年 11 月 7 日、午後 12:00) を使用すると、複数日にわたるタイム ウィンドウを指定することができます。これは、午前 0 時前後のどこかで休憩を取る必要がある場合に特に有用です。 タイム ウィンドウ フィールドに日付と時刻が示されている場合は、デフォルトの日付が無視されます。この場合にエラーが発生しないようにするには、拠点、ルート、訪問先、および休憩のタイム ウィンドウをすべて書式設定して日付と時刻を示します。 |
TimeWindowEnd | 休憩のタイム ウィンドウの終了時間。休憩にはハーフオープン タイム ウィンドウは無効です。 このフィールドが値を持つ場合、MaxTravelTimeBetweenBreaks と MaxCumulWorkTime は NULL でなければなりません。さらに、解析レイヤーの他のすべての休憩についても、MaxTravelTimeBetweenBreaks と MaxCumulWorkTime の値は NULL でなければなりません。 タイム ウィンドウ フィールドに日付と時刻が示されている場合は、デフォルトの日付が無視されます。この場合にエラーが発生しないようにするには、拠点、ルート、訪問先、および休憩のタイム ウィンドウをすべて書式設定して日付と時刻を示します。 詳細については、上述の TimeWindowStart の説明をご参照ください。 |
MaxTravelTimeBetweenBreaks | 休憩を取る前に累積できる移動時間の最大値。移動時間は前の休憩の終了時か、休憩がまだ取られていないときはルートの開始時から累積されます。 これがルートの最後の休憩なら、MaxTravelTimeBetweenBreaks は最後の休憩から終了拠点までに累積可能な最大移動時間を示すことにもなります。 このプロパティの目的は、休憩が必要になるまでに運転できる時間を制限することです。たとえば、解析レイヤーの [時間フィールドの単位] プロパティが分に設定され、[MaxTravelTimeBetweenBreaks] の値が 120 なら、運転手は 2 時間運転した後に休憩を取ります。さらに 2 時間運転した後に 2 回目の休憩を割り当てるには、2 回目の休憩の [MaxTravelTimeBetweenBreaks] プロパティを 120 にします。 このフィールドに値を設定した場合、解析を成功させるには、TimeWindowStart、TimeWindowEnd、MaxViolationTime、および MaxCumulWorkTime が Null でなければなりません。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
MaxCumulWorkTime | 休憩を取る前に累積できる作業時間の最大値。作業時間は常にルートの開始時から累積されます。 作業時間は、移動時間と、訪問先、拠点、休憩でのサービス時間の合計です。ただし、これには待ち時間は含まれません。待ち時間とは、ルート (または運転手) が訪問先または拠点でタイム ウィンドウの開始まで待機した時間のことです。 このプロパティの目的は、休憩が必要になるまでに作業できる時間を制限することです。たとえば、解析レイヤーの [時間フィールドの単位] プロパティが分に設定され、[MaxCumulWorkTime] の値が 120、[ServiceTime] の値が 15 なら、運転手は 2 時間作業した後に 15 分間の休憩を取ります。 引き続き最後の例で、さらに 3 時間作業した後に 2 回目の休憩が必要とします。この休憩を指定するには、2 回目の休憩の MaxCumulWorkTime 値に 315 (5 時間と 15 分) を入力します。この数には、前の休憩の MaxCumulWorkTime と ServiceTime の値に加えて、2 回目の休憩が許可される前の 3 時間の追加作業時間が含まれます。最大作業時間の休憩を誤って取ることを避けるために、ルートの開始から作業時間を累積していること、および作業時間にはそれまでに訪問した拠点、訪問先、休憩でのサービス時間が含まれることを再確認してください。 このフィールドに値を設定した場合、解析を成功させるには、TimeWindowStart、TimeWindowEnd、MaxViolationTime、および MaxTravelTimeBetweenBreaks が Null でなければなりません。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
RouteName | 休憩が適用されるルートの名前。休憩は 1 つのルートだけに割り当てられますが、多くの休憩を同じルートに割り当てることができます。 このフィールドは、[ルート] クラスの Name フィールドに対する外部キーであり、NULL 値を持つことができません。 ルート オブジェクトはあらかじめ存在している場合に限り、[RouteName] ドロップダウン リストに表示されます。 |
Precedence | 優先順位値は、特定のルートの休憩を順序付けします。優先順位値が 1 の休憩は、2 の休憩よりも前に取られ、以降の休憩も優先順位値の順番に取られます。 タイム ウィンドウか、最大移動時間か、最大労働時間かにかかわりなく、すべての休暇が優先順位値を持たなければなりません。 |
ServiceTime | 休憩時間の長さ。このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がないことを示します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
MaxViolationTime | このフィールドでは、タイム ウィンドウによる休憩について最大許容超過時間を指定します。到着時刻がこの時間の範囲を超えている場合、タイム ウィンドウが超過されたとみなされます。 値がゼロの場合、タイム ウィンドウのどのような超過も許されません。つまり、タイム ウィンドウは条件が厳しい (ハード) ということです。ゼロ以外の値は最大遅延時間を指定します。たとえば、タイム ウィンドウの終了時刻から最大で 30 分遅れて休憩を開始することができますが、解析レイヤーの [タイム ウィンドウ違反] プロパティに従ってこの遅延時間にはペナルティが適用されます。 このプロパティは NULL 値にすることができます。TimeWindowStart と TimeWindowEnd が NULL 値の場合、最大許容超過時間に制限がないことを示します。MaxTravelTimeBetweenBreaks または MaxCumulWorkTime に値が設定されている場合、MaxViolationTime は Null でなければなりません。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
IsPaid | 休憩に賃金を支払うかをブール値で指定します。[True] 値を指定すると、休憩で費やされた時間はルートのコスト計算および規定外労働時間の判定で考慮されます。[False] 値を指定すると、休憩で費やされた時間はルートのコスト計算および規定外労働時間の判定で考慮されません。デフォルト値は [True] です。 |
休憩: 入力/出力フィールド
入力/出力フィールド | 説明 |
---|---|
Sequence | 入力フィールドとして、ルート上での休憩の順序を示します。このフィールドは、NULL 値を含むことができます。順序を示す入力値は、正の値であり、各ルートに対して一意です (リニューアル拠点立ち寄り状況、訪問先、および休憩の間で共有される)。ただし、1 から開始する必要も連続している必要もありません。 解析では、順序フィールドが変更されます。解析実行後、このフィールドにはルート上での休憩の順序の値が含まれます。ルートに対して出力される順序の値は、拠点立ち寄り状況、訪問先、および休憩の間で共有され、1 (開始拠点) から始まり、連続的な値となります。 |
休憩: 出力フィールド
出力フィールド | 説明 |
---|---|
RelativePosition | 休憩の相対位置です。休憩は、2 つのネットワーク ロケーション (訪問先または拠点) の間で取られます。値 0.0 は前のネットワーク ロケーションでサービスが終了した直後に休憩を取ることを示します。値 1.0 は次のネットワーク ロケーションでサービスを開始する直前に休憩を取ることを示します。この 2 つの値の中間にある値は、最初のネットワーク ロケーションから 2 番目のネットワーク ロケーションへの経路上で休憩を取ることを示します。たとえば、値 0.25 は、前のネットワーク ロケーションから次のネットワーク ロケーションへの道を 4 分の 1 進んだときに休憩を取ることを示します。 2 つのネットワーク ロケーションの間で何回休憩を取っても、相対位置は常に、他の休憩ではなくネットワーク ロケーションを基準にして報告されます。 |
FromPrevTravelTime | 前の訪問先、拠点、または休憩からこの休憩までの移動時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
FromPrevDistance | 前の訪問先、拠点、または休憩からこの休憩までの移動距離。 このフィールドの値の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。解析パラメーターで [距離属性] プロパティが指定されていない場合、このフィールドは NULL です。 |
CumulTravelTime | ルートが休憩地に到着するまでの累積移動時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulDistance | ルートが休憩地に到着するまでの累積移動距離。 このフィールドの値の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。解析パラメーターで [距離属性] プロパティが指定されていない場合、このフィールドは NULL です。 |
CumulTime | 休憩までのルートの累積所要時間で、休憩で費やした時間を含みます。累積所要時間には、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
ArriveTime | 実際の休憩開始時間です。ルートは、休憩のタイム ウィンドウが始まる前に休憩に到着することがあります。この場合、休憩開始時間までの待ち時間が発生します。ソフト タイム ウィンドウが設定されている休憩については、休憩時間帯の終了後に休憩が始まることもあります。この場合、休憩では超過時間が発生します。 複数のタイム ゾーンにまたがるネットワーク データセットを使用する場合、この時間は実際の休憩場所のタイム ゾーンで報告されます。 |
DepartTime | 休憩が終了する時間。 複数のタイム ゾーンにまたがるネットワーク データセットを使用する場合、この時間は実際の休憩場所のタイム ゾーンで報告されます。 |
ArriveTimeUTC | ストップに到着した時刻を UTC (世界協定時) で示す日時の値。 |
DepartTimeUTC | ストップからの開始時刻を UTC (世界協定時) で示す日時の値。 |
WaitTime | 休憩開始時間までの待ち時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
ViolationTime | 休憩での超過時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulWaitTime | ルートの開始から休憩までの累積待ち時間で、休憩開始時間までの待ち時間を含む。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulViolationTime | ルートの開始から休憩までの累積超過時間で、休憩での超過時間を含む。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
ルート ゾーン
ルート ゾーンは、特定のルートの担当区域を指定します。ルート ゾーンはポリゴン フィーチャです。ルート ゾーンを使用して、領域内にある訪問先または領域の近くにある訪問先にのみサービスを提供するようにルートを制限します。どのようなときにルート ゾーンが役に立つかを以下の例で示します。
- 従業員または車両の一部が特定の地域で作業を行うために必要な許可証を持っていません。この場合は、要件を満たす地域の訪問先のみを訪れるようにハード ルート ゾーンを作成することができます。
- ある車両が頻繁に故障するので、対応時間を可能な限り短くするために、その車両の担当訪問先を修理工場の近くにのみ限定したいと考えます。車両を近隣での運用にとどめるために、ソフト ルート ゾーンまたはハード ルート ゾーンを作成できます。
ルート ゾーン: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
Shape | ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 |
RouteName | このゾーンが適用されるルートの名前。ルート ゾーンは、関連付けられたルートを最大で 1 つ持っています。このフィールドは、NULL 値を含むことができません。ルート フィーチャ レイヤーの Name フィールドに対する外部キーとなります。 ルート オブジェクトはあらかじめ存在している場合に限り、[RouteName] リストに表示されます。 |
IsHardZone | ハード ルート ゾーンかソフト ルート ゾーンかをブール値で示します。[True] 値はルート ゾーンがハード ルート ゾーンであることを示します。つまり、ルート ゾーン ポリゴンの外にある訪問先をルートに割り当てることはできません。デフォルト値は [True] (1) です。[False] 値 (0) を指定した場合、ルート ゾーン ポリゴンの外にある訪問先をルートに割り当てることはできますが、訪問先へのサービス提供のコストはルート ゾーンからのユークリッド距離に基づく関数によって重み付けされます。基本的に、ソフト ゾーンから訪問先までの直線距離が長くなるに従い、訪問先をルートに割り当てる機会が低くなることを意味しています。 |
メモ:
- ルート ゾーンと訪問先との間の距離を測定する際はユークリッド距離が使用されるため、ネットワーク ベースの距離属性は必要ありません。
- ハード ルート ゾーンと関連付けられたルートがルート ゾーン内の訪問先に対してしかサービスを提供できない場合でも、他のルートで同じゾーン内に入り訪問先にサービスを提供することができます。ルート ゾーンで制限されるのはルートであり、訪問先は制限されないからです (領域内のすべての訪問先を 1 つのルートに排他的に割り当てたい場合は、ルート ゾーンは使用しません。その場合は、領域内のすべての訪問先を選択し、訪問先の [RouteName] フィールドを適切なルートに変更し、[AssignmentRule] フィールドを [ルートを保持] に設定します)。
拠点立ち寄り状況
ルートが拠点で開始、積み替え (荷降ろしまたは再積み込み)、または終了したときに、拠点立ち寄り状況が作成されます。拠点立ち寄り状況オブジェクトは、ルートが拠点を訪問した理由と、そこで行われたことに関する情報を提供します。拠点での積み込みまたは荷降ろしの量は、拠点立ち寄り状況のプロパティに記録されます。配車ルート解析の解釈に役立つ追加情報も含められます。
これは出力専用のネットワーク解析クラスです。拠点立ち寄り状況フィーチャは解析操作の間に限って作成されるため、解析プロセスの実行前には解析クラスは常に空です。
拠点立ち寄り状況: 入力/出力フィールド
出力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
Shape | ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 |
DepotName | 立ち寄る拠点の名前。このフィールドは、拠点ネットワーク解析クラスの [Name] フィールドに対する外部キーです。 ルートが仮想拠点を使用する場合、つまりルートが拠点ではなく訪問先で開始または終了する場合、[DepotName] は NULL になります。 |
RouteName | この立ち寄りを含むルートの名前。このフィールドは、ルート フィーチャ レイヤーの [Name] フィールドに対する外部キーです。 |
Sequence | ルートでの立ち寄り拠点の順序を示します。ルートに対して出力される順序の値は、拠点立ち寄り状況、訪問先、および休憩の間で共有され、1 (開始拠点) から始まり、連続的な値となります。 |
VisitType | この拠点に立ち寄った理由を示します。このフィールドは、値のドメインによって制約されます。
|
ServiceTime | 拠点でのサービス時間 (積み込みや荷降ろしなど)。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
FromPrevTravelTime | 前の立ち寄り地点からルートの拠点までの移動時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
FromPrevDistance | 前の立ち寄り地点から拠点までのルートの移動距離。 このフィールドの値の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。解析パラメーターで [距離属性] プロパティが指定されていない場合、このフィールドは NULL です。 |
CumulTravelTime | ルートがこの拠点に到着するまでの累積移動時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulDistance | ルートがこの拠点に到着するまでの累積移動距離。 このフィールドの値の単位は、解析レイヤーの [距離フィールドの単位] プロパティで指定します。解析パラメーターで [距離属性] プロパティが指定されていない場合、このフィールドは NULL です。 |
CumulTime | ルートの累積所要時間で、拠点で費やした時間を含みます。累積所要時間には、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
ArriveTime | 拠点への到着時刻。ルートは拠点のタイム ウィンドウが始まる前に拠点に到着することがあります。この場合、拠点では待ち時間が発生します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは拠点が配置されているネットワーク エレメントと同じになります。 |
DepartTime | 拠点からの開始時刻。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは拠点が配置されているネットワーク エレメントと同じになります。 |
ArriveTimeUTC | 拠点に到着した時刻を UTC (世界協定時) で示す日時の値。 |
DepartTimeUTC | 拠点からの開始時刻を UTC (世界協定時) で示す日時の値。 |
WaitTime | 拠点での待ち時間。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulWaitTime | ルートの開始から拠点までの累積待ち時間で、拠点での待ち時間を含みます。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
CumulViolationTime | ルートの開始から拠点までの累積超過時間で、拠点での超過時間を含みます。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 |
| 拠点で積み込まれる荷物の量 (たとえば、体積、重量、数量)。複数の容量がある場合、必要に応じて LoadedQuantity_1 フィールドから LoadedQuantity_9 フィールドを使用して指定します。 |
| 拠点で降ろされる荷物の量 (たとえば、体積、重量、数量)。複数の容量がある場合、必要に応じて UnloadedQuantity_1 フィールドから UnloadedQuantity_9 フィールドを使用して指定します。 |
メモ:
拠点はハード タイム ウィンドウを持つため、[拠点立ち寄り状況] フィーチャ レイヤーには ViolationTime 出力フィールドはありません。
特別指定
訪問先特別指定とルート特別指定は、訪問先が要求しており、かつルートが対応可能な特別指定をリストした 2 つのテーブルです。ルートは、訪問先が必要としている特殊な条件をすべてサポートしている場合に限り、その訪問先にサービスを提供できます。
訪問先では、特定のスキルを身に付けた技術者または特定の機能を備えた車両を必要とする場合があります。まず、そうしたスキルや機能などを訪問先特別指定テーブルに追加して、モデル化します。次に、ルートがサポートしている特別指定をルート特別指定に追加します。VRP 解析を行うと、ある特別指定を必要とする訪問先と、それを提供できるルートがマッチングされます。
訪問先特別指定: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
OrderName | ネットワーク解析オブジェクトの名前。 このフィールドは主キーです。[訪問先] フィーチャ レイヤーでは、外部キーとして使用して訪問先特別指定を参照します。 |
SpecialtyName | 特別指定に関する説明的な情報。 訪問先に必要な特別指定を示します。1 行につき 1 件の特別指定しか入力できません。特別指定を追加する必要があれば、新しい行を作成します。特別指定の名前にはスペースを含めることはできません。したがって、たとえば「senior technician」の特別指定は「SeniorTechnician」と入力します。 |
ルート特別指定: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
RouteName | ネットワーク解析オブジェクトの名前。 このフィールドは主キーです。[ルート] フィーチャ レイヤーでは、外部キーとして使用してルート特別指定を参照します。 |
SpecialtyName | 特別指定に関する説明的な情報。 ルートがサポートする特別指定を示します。1 行につき 1 件の特別指定しか入力できません。特別指定を追加する必要があれば、新しい行を作成します。特別指定の名前にはスペースを含めることはできません。したがって、たとえば「senior technician」の特別指定は「SeniorTechnician」と入力します。 |
訪問先ペア
このネットワーク解析クラスは、配達と引き取りの訪問先をペアにし、同じルートでサービスされるようにするために使用されるレコードのテーブルです。
訪問先に対する引き取りと配達をペアにすることが必要な場合があります。たとえば、宅配業者の場合、ドキュメントの配達には 2 つのストップが関係します。まず発送元でドキュメントを引き取り、次に配送先にドキュメントを届けます。このような関連するストップは、適切な順序で同じルートに割り当てます。訪問先の片方だけをルートに割り当てることは禁止されています。訪問先の両方を同じルートに割り当てるか、どちらも割り当てないようにします。
荷物を車両に載せておく時間が制限されている場合があります。たとえば、病院から試験所までの血液サンプルの輸送は、2 時間以内に行う必要があります。
場合によっては 2 つの訪問先ペアを必要とする場合があります。たとえば、高齢者を自宅から、かかりつけの病院まで連れて行き、その後、自宅につれて戻りたい場合があるとします。自宅から病院までの乗車は、1 つの訪問先ペアであり、病院への到着時刻が要求されます。一方、病院から自宅に帰る乗車はもう 1 つの訪問先ペアであり、病院に迎えに行く時刻が要求されます。
訪問先ペア: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
FirstOrderName | ペアの第 1 の訪問先の名前。このフィールドは、訪問先フィーチャ レイヤーの Name フィールドに対する外部キーです。 訪問先オブジェクトはあらかじめ存在している場合に限り、FirstOrderName リストに表示されます。 |
SecondOrderName | ペアの第 2 の訪問先の名前。このフィールドは、訪問先フィーチャ レイヤーの Name フィールドに対する外部キーです。 訪問先オブジェクトはあらかじめ存在している場合に限り、SecondOrderName リストに表示されます。 ペアの第 1 の訪問先は引き取り訪問先でなければなりません。つまり、その配送数量フィールドの値は NULL です。ペアの第 2 の訪問先は配達訪問先でなければなりません。つまり、その引き取り数量フィールドの値は NULL です。第 1 の訪問先で引き取られる数量は、第 2 の訪問先に配達される数量と対応する必要があります。特殊な場合として、積荷制限が使用されていないシナリオについては、両方の訪問先の数量がゼロになることがあります。 メモ:訪問先の数量は拠点で荷積みまたは荷降ろしされません。 |
MaxTransitTime | ペアの最大移動時間です。移動時間とは、第 1 の訪問先の出発時刻から第 2 の訪問先の到着時刻までの時間の長さです。この制約により、2 つの訪問先の間で車両に積まれている時間 (乗車時間) が制限されます。人または生鮮食料品を車両で輸送する場合、その乗車時間は、荷物または非生鮮食料品を車両で輸送する場合より短くなるのが普通です。このフィールドは NULL 値を含むことができます。NULL 値は乗車時間に制約がないことを示します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 解析では、超過移動時間 (訪問先ペア間の直接移動時間に基づく) をトラッキングし、重み付けすることができます。このため、次の 3 つの手法のいずれかを使用するように VRP 解析機能に指示することができます。保有車両の移動コストの増大を無視して、全体の超過移動時間を最小にする。全体の超過時間と移動コストのバランスをとるソリューションを検索する。全体の超過移動時間を無視して、保有車両の移動コストを最小にする。解析レイヤーの [超過移動時間] 設定に重要度を割り当てることで、この 3 つの手法の中から 1 つを効果的に選択できます。重要度にかかわりなく、[MaxTransitTime] 値が超過すると必ずエラーが返されます。 |
ルート リニューアル
ルート リニューアル クラスでは、配車ルート解析内のルートが荷物を配達するか引き取るときに、再積み込みおよび荷降ろしのために立ち寄ることができる中間の拠点を指定します。
特に、ルート リニューアル解析オブジェクトは、ルート オブジェクトを拠点オブジェクトにリンクします。このリレーションシップは、関連付けられた拠点でルートがリニューアル (再積み込みまたは荷降ろし) できることを示します。
業務によっては車両が満載の積荷の配達または引き取りと配達を行うために 1 回または複数回往復します。ルート リニューアルを使用してモデリング可能なシナリオとして、「開始拠点で配達する荷物を車両に満載し、訪問先に供給し、拠点に戻って配達用の荷物を再び積み込み、訪問先への供給を継続する」というものがあります。たとえば、プロパンガスの配達の場合は、車両はタンクがほとんどまたは完全に空になるまで複数回配達を行い、燃料補給ポイントに立ち寄り、さらに配達を継続することができます。
ルート リニューアルで作業するときに考慮すべきいくつかのルールとオプションを次に示します。
- 再積み込み/荷降ろしのポイントである、リニューアル ロケーションは、開始拠点または終了拠点とは異なる可能性があります。
- 各ルートは、あらかじめ決定されたリニューアル ロケーションを 1 つまたは複数持つことができます。
- リニューアル ロケーションは、1 つのルートで複数回使用することができます。
- 1 つのルートにおいて使用できるリニューアル ロケーションがいくつか存在する場合は、一番近い有効なリニューアル ロケーションが解析によって選択されます。
ルート リニューアル: 入力フィールド
入力フィールド | 説明 |
---|---|
ObjectID | システムで管理される ID フィールド。 |
DepotName | このリニューアルが行われる拠点の名前。このフィールドは、NULL 値を含むことができません。拠点フィーチャ レイヤーの Name フィールドに対する外部キーとなります。 拠点オブジェクトはあらかじめ存在している場合に限り、[DepotName] リストに表示されます。 |
RouteName | このリニューアルが適用されるルートの名前。このフィールドは、NULL 値を含むことができません。ルート フィーチャ レイヤーの Name フィールドに対する外部キーとなります。 ルート オブジェクトはあらかじめ存在している場合に限り、[RouteName] リストに表示されます。 |
ServiceTime | リニューアルのサービス時間。このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。 このフィールドの値の単位は、解析レイヤーの [時間フィールドの単位] プロパティで指定します。 メモ:リニューアル拠点で車両に荷積みするのにかかる時間は、車両のサイズと、車両にどれくらい荷物が積まれているかに左右される場合があります。ただし、ルート リニューアルのサービス時間は固定値であり、実際の積荷を考慮に入れません。したがって、リニューアル サービス時間には、満載の積荷の場合のサービス時間、平均的な積荷の場合の時間、または別の時間評価による値を指定してください。 |
ルート リニューアル: 入力/出力フィールド
入力/出力フィールド | 説明 |
---|---|
Sequences | 入力フィールドとして、リニューアル拠点への立ち寄りの順序の値をスペース区切りの文字列で指定します。このフィールドは、NULL 値を含むことができ、リニューアル拠点への立ち寄りをあらかじめ指定しておくために使用します。 出力フィールドとして、解析機能が変更した順序を格納する場合があります。解析実行後、このフィールドには、関連するルート用に設定されたリニューアル拠点への立ち寄りの順序を示す値が入ります。1 つのルートがその拠点で複数回のリニューアル拠点に立ち寄る場合は、順序の値はスペースで区切られます。ルートに対して出力される順序の値は、拠点立ち寄り状況、訪問先、および休憩の間で共有され、1 (開始拠点) から始まり、連続的な値となります。したがって、ルートが拠点を出発し、2 つの訪問先に立ち寄り、リニューアル拠点に立ち寄り、さらに業務を継続する場合、リニューアルの順序の値は 4 となります。 |
ポイント バリア、ライン バリア、ポリゴン バリア
バリアは一時的な制限として機能し、ネットワークの一部にインピーダンスを追加したり、インピーダンスの値を増減します。新しいネットワーク解析レイヤーが作成されるとき、バリア クラスは空です。バリア クラスはオブジェクトを追加するときにだけ設定されます。ただし、バリアの追加は必須ではありません。
バリアはすべてのネットワーク解析レイヤーで使用できます。したがって、これらについては別のトピックで説明します。
VRP 解析レイヤーのプロパティ
解析レイヤーで設定できるパラメーターを以下に示します。これらは [VRP] リボンにあり、[コンテンツ] ウィンドウで VRP レイヤーまたはそのサブレイヤーのいずれか 1 つが選択されている場合のみ使用できます。
実行
[解析] グループで入力フィーチャを読み込み、解析プロパティを設定した後に [実行] をクリックすると、配車ルート解析を実行します。
訪問先のインポート
[訪問先のインポート] ボタンをクリックすると、ポイント フィーチャ レイヤーなどの別のデータ ソースから [訪問先] フィーチャクラスにフィーチャを読み込みます。
拠点のインポート
[拠点のインポート] ボタンをクリックすると、ポイント フィーチャ レイヤーなどの別のデータ ソースから [拠点] フィーチャクラスにフィーチャを読み込みます。
ルートのインポート
ドロップダウン メニューで、ルートのインポートまたはルートの追加を行えます。
ルートのインポート
[ルートのインポート] ボタンをクリックすると、ライン フィーチャ レイヤーやスタンドアロン テーブルなどの別のデータ ソースから [ルート] フィーチャクラスにフィーチャを読み込みます。
ルートの追加
[ルートの追加] ボタンをクリックすると、[配車ルート (VRP) ルートの追加 (Add Vehicle Routing Problem Routes)] ジオプロセシング ツールを使用して複数のルートを一括で作成できます。
休憩のインポート
ドロップダウン メニューで、休憩のインポートまたは休憩の追加を行えます。
休憩のインポート
[休憩のインポート] をクリックすると、ポイント フィーチャ レイヤーやスタンドアロン テーブルなどの別のデータ ソースから [休憩] フィーチャクラスにフィーチャを読み込みます。
休憩の追加
[休憩の追加] をクリックすると、[配車ルート (VRP) 休憩の追加 (Add Vehicle Routing Problem Breaks)] ジオプロセシング ツールを使用して複数の休憩を一括で作成できます。
バリアのインポート
[ポイント バリアのインポート] 、[ライン バリアのインポート] 、または [ポリゴン バリアのインポート] をクリックすると、別のフィーチャ レイヤーなどの別のデータ ソースから、バリア フィーチャクラス (ポイント バリア、ライン バリア、またはポリゴン バリア) の 1 つにフィーチャを読み込みます。
ルート ゾーンのインポート
[ルート ゾーンのインポート] ボタンをクリックすると、ポリゴン フィーチャ レイヤーなどの別のデータ ソースから [ルート ゾーン] フィーチャクラスにフィーチャを読み込みます。
訪問先ペアのインポート
[訪問先ペアのインポート] ボタンをクリックすると、スタンドアロン テーブルなどの別のデータ ソースから [訪問先ペア] テーブルにフィーチャを読み込みます。
ルート リニューアルのインポート
[ルート リニューアルのインポート] ボタンをクリックすると、スタンドアロン テーブルなどの別のデータ ソースから [ルート リニューアル] テーブルにフィーチャを読み込みます。
訪問先特別指定のインポート
[訪問先特別指定のインポート] ボタンをクリックすると、スタンドアロン テーブルなどの別のデータ ソースから [訪問先特別指定] テーブルにフィーチャを読み込みます。
ルート特別指定のインポート
[ルート特別指定のインポート] ボタン をクリックすると、スタンドアロン テーブルなどの別のデータ ソースから [ルート特別指定] テーブルにフィーチャを読み込みます。
フィーチャ作成
[フィーチャ作成] ボタン をクリックして [フィーチャ作成] ウィンドウを開きます。利用可能なテンプレートを選択して現在のマップにフィーチャを作成します。
モード
[モード] ドロップダウン リストを使用すると、移動モードを選択できます。移動モードは、歩行者、車、トラック、その他の移動モードの移動をまとめてモデリングする設定のグループです。このドロップダウン リストで選択できる項目は、ネットワーク解析レイヤーが参照しているネットワーク データ ソースに対して構成されている移動モードによって異なります。
VRP は時間ベースのインピーダンスでのみ解析を実行するため、時間ベースのインピーダンスの移動モードのみを選択できます。
時間フィールドの単位
解析レイヤーのサブレイヤーおよびテーブルの時間的なフィールドで使用される時間の単位。ドロップダウン リストから次のオプションを選択できます。
- 秒
- 分
- 時
- 日
距離フィールドの単位
解析レイヤーのサブレイヤーおよびテーブルの距離的なフィールドで使用される距離の単位。ドロップダウン リストから次のオプションを選択できます。
- メートル
- キロメートル
- フィート
- マイル
- 海里
- センチメートル
- ミリメートル
- デシメートル
- ヤード
- インチ
デフォルトの日付タイプ
デフォルトの日付は、時間のみが指定されているときに、日付フィールドと時間フィールドで使用されます。[デフォルトの日付タイプ] ドロップダウン リストのオプションは次のとおりです。
[日付] - 暦日を指定します。
[曜日] - 曜日を指定します。
- 日曜日
- 月曜日
- 火曜日
- 水曜日
- 木曜日
- 金曜日
- 土曜日
[今日] - 今日の日付として想定される日付。
[基準タイム ゾーン]ドロップダウン リストでは、解析で使用するタイム ゾーンを選択できます。次のようなオプションがあります。
- ロケーションのローカル タイム
- UTC (世界協定時)
出力ジオメトリの線形形状タイプ
このコントロールを使用すると、出力をマップに表示する方法を選択できます。ドロップダウン リストから次のオプションを選択できます:
- [ラインなし] - 出力の線形形状は生成されません。
- [直線] - 簡略化されたジオメトリを直線として出力します。
- [ネットワーク沿い] - マップ上のネットワーク沿いに真のパスを生成します。
メモ:
[直線] オプションは、VRP レイヤーが VRP サービスか Portal を参照している場合は使用できません。タイム ウィンドウの重要度
解析を実行中に、[タイム ウィンドウの重要度] の設定を使用してタイム ウィンドウ違反を最小限に抑える重要度を構成できます。タイム ウィンドウの条件を満たす優先度が高ければ、解析を実行すると、タイム ウィンドウ違反は削減されるものの全体的な解析コストが高くなるソリューションが生成されます。以下のオプションから選択できます。
[高] - 全体のソリューション コストを最小にするよりも訪問先に時間どおりに到着することが重要である場合は、この設定を選択します。タイム ウィンドウの重要度を「高」に設定すると、コントロールはその選択に合わせて変更されます。 | |
[中] - タイム ウィンドウの条件を満たすことと、全体のソリューション コストを削減することのバランスを取ります。タイム ウィンドウの重要度を「中」に設定すると、コントロールはその選択に合わせて変更されます。 | |
[低] - タイム ウィンドウの条件を満たすことが全体のソリューション コストを削減することより重要でない場合は、この設定を選択します。タイム ウィンドウの重要度を「低」に設定すると、コントロールはその選択に合わせて変更されます。 |
移動時間の重要度
このパラメーターは、訪問先ペアを使用する場合のみ関連します。[移動時間の重要度] を使用すると、超過移動時間の短縮の重要度を評価することができます。超過移動時間とは、訪問先ペア間を直接移動するのに必要な時間に対する超過時間です。この超過時間は、訪問先ペアへの立ち寄りの途中で、休憩を取ったり他の訪問先や拠点に移動することで発生します。以下のオプションから選択できます。
[高] - 全体の移動コストの増大を無視して、訪問先ペア間で超過移動時間が短いソリューションを検索します。移動時間の重要度を「高」に設定すると、コントロールはその選択に合わせて変更されます。 | |
[中] - 超過移動時間を短縮することと、全体のソリューション コストを削減することのバランスを取ります。移動時間の重要度を「中」に設定すると、コントロールはその選択に合わせて変更されます。 | |
[低] - 全体のソリューション コストを最小限に抑えるソリューションを検索します。移動時間の重要度を「低」に設定すると、コントロールはその選択に合わせて変更されます。 |
空間クラスタリング
[空間クラスタリング] プロパティを切り替えることで、空間クラスタリングを使用することができます。
[クラスリングする] - 個々のルートに割り当てられた訪問先が空間的にクラスタリングされます。訪問先をクラスタリングすると、ルートを含む領域がより小さく保たれ、ルート ラインの交点数が減少する傾向がありますが、同時に、移動時間全体を増やすことができます。 | |
[クラスタリングしない] - 解析では、空間的にクラスタリングされた訪問先は優先されず、ルート ラインが交差する可能性があります。ルート ゾーンを指定した場合は、このオプションを選択します。 |
ルート案内
[ルート案内] タブのコントロールを使用すると、ルート案内を生成し、アクティブな解析レイヤーの移動方向を表示できます。
- [解析時の出力] - 現在のネットワーク解析レイヤーに対して、解析時にルート案内を生成する場合はオンにします。
- [ルート案内の表示] - [解析時の出力] オプションがオンの場合、[ルート案内の表示] オプションをクリックすると、[ルート案内] ウィンドウに解析内の各ルートのルート案内が表示されます。
メモ:
VRP 解析では、時間に中立的な OD コスト マトリックスを使用し、ルート割り当てと順序を決定します。この時間に中立的な OD の値は、[訪問先]、[拠点立ち寄り先]、[ルート] のフィールドの時間コストと距離コストを入力するために使用され、解析の最適化ロジックとの整合性を確保します。各ルートで訪問先の順序と拠点立ち寄り状況が確定すると、ルート解析を使用してルート案内を生成し、ルートの実際の開始時間を使用します。これによって、ルート案内フィールドには、交通量に応じてより正確な到着時間が反映されます。
ルート レイヤーとして共有 (Share As Route Layers)
[共有] グループの [ルート レイヤー] ボタン を使用して、解析の結果をルート レイヤーとして共有できます。このボタンをクリックすると、[ルート レイヤーとして共有 (Share as Route Layers)] ジオプロセシング ツールが開きます。ツールが正常に実行されると、解析の結果が、ポータルでルート レイヤー アイテムとして共有されます。