配車ルート解析
さまざまな組織が保有車両を使用して訪問先にサービスを提供しています。たとえば、大型の家具店では何台かのトラックを利用して顧客の自宅まで家具を配達しています。ある専門の企業では、レストランから使用済みの油を引き取るために、施設からトラックを一定の経路で走らせています。保健所では、各健康診査官の毎日の検査訪問をスケジュールしています。
このような例に共通する問題として配車ルート(VRP)があります。各組織は、どの訪問先(住宅、レストラン、または検査現場)に各ルート(トラックまたは検査官)でサービスを提供するのか、訪問先をどのような順序で訪れるのかを決定する必要があります。この主な目的は、訪問先にサービスを提供し、保有車両の全体の運用コストを最小にすることにあります。このため、Network Analyst のルート解析では多くのストップを訪問する単一車両にとっての最適ルートを検索し、VRP 解析ではさまざまな訪問先にサービスを提供する保有車両にとっての最適ルートを検索します。さらに、VRP 解析の場合は、多数のオプション(車両の積載制限と注文数量の一致を図る、運転手に休憩をとらせる、複数の訪問先を同じルートに関係付けるなど)を利用できるので、より具体的な問題を解決することができます。
配車ルート解析は、他のネットワーク解析と同じワークフローに従います。
配車ルート解析レイヤ
配車ルート解析レイヤには、特定の配車ルートに対する入力、パラメータ、および結果が格納されます。
配車ルート解析レイヤの作成
配車ルート解析レイヤを作成するには、[Network Analyst] ツールバーで、[Network Analyst] → [新規配車ルート(VRP)] の順にクリックします。
配車ルート解析レイヤを作成すると、Network Analyst ウィンドウに、13 個のネットワーク解析クラス(訪問先、拠点、ルート、拠点立ち寄り状況、休憩、ルート ゾーン、ルート シード ポイント、ルート リニューアル、特別指定、訪問先ペア、ポイント バリア、ライン バリア、ポリゴン バリア)が表示されます。
配車ルート解析レイヤは、コンテンツ ウィンドウにもコンポジット レイヤとして表示されます。これには [配車ルート(VRP)] という名前が付けられます(マップ ドキュメントに同じ名前の配車ルートがすでに存在する場合は [配車ルート 1]、それがすでに存在する場合は [配車ルート 2] などのように連番で名前が付けられます)。9 種類のフィーチャ レイヤ(訪問先、拠点立ち寄り状況、拠点、ルート シード ポイント、ルート、ルート ゾーン、ポイント バリア、ライン バリア、ポリゴン バリア)があります。この 9 種類のフィーチャ レイヤは、それぞれがデフォルトのシンボルを持ちます。このシンボルは、[レイヤ プロパティ] ダイアログ ボックスで変更できます。
休憩、特別指定、訪問先ペア、ルート リニューアルはテーブルなので、コンテンツ ウィンドウ内に表示されません。
配車ルート解析クラス
配車ルート解析レイヤは、13 のネットワーク解析クラスから構成されています。この 13 のネットワーク解析クラスはフィーチャ レイヤまたはテーブルとして解析レイヤ内に格納されています。ネットワーク解析クラスは、配車ルート解析の実行時に使用されるネットワーク解析オブジェクトを含んでいます。各種ネットワーク解析クラス間の関係については、次のドキュメントをご参照ください。
Relationships between network analysis classes in the vehicle routing problem次のセクションでは、各クラスの概要とそのプロパティの説明を示します。
訪問先フィーチャ レイヤ
このフィーチャ レイヤには、特定の配車ルート解析レイヤの一部である訪問先が格納されます。訪問先には、顧客への配達(たとえば、家具の配達)、顧客からの引き取り(レストランからの油の引き取りなど)、またはその他の業務(たとえば、検査訪問)などがあります。
訪問先から引き取るアイテムまたは訪問先に配達するアイテムがある場合、そのアイテムに 1 つ以上の容量を設定することができます。容量は、重量、体積、ユニット数など、任意の計測値または計測値の組み合わせに基づくことが可能です。検査訪問などの一部の訪問先については、配達や引き取りと関係がない場合があります。
訪問先での作業を完了するのに必要な時間であるサービス時間を、訪問先に設定することができます。たとえば、配送トラックにおいて、1 個の家具を車両からおろして住居内に運ぶのに 20 分のサービス時間を要するとします。サービス時間はすべての訪問先で同じになることもあれば、訪問先ごとに異なることもあります。
1 つまたは 2 つのタイム ウィンドウを訪問先に持たせて、車両が訪問先を訪れるのを許可されている時間帯を示すことができます。たとえば、卸売食料品の配達トラックがレストランへの到着を許されるのは午前 8:00 ~ 10:00 のタイム ウィンドウと午後 2:00 ~ 4:00 のタイム ウィンドウです。これ以外のタイム ウィンドウに到着すると、レストランの営業に支障をきたしてしまいます。
特別指定を訪問先に関連付けることができます。つまり、訪問先では、特定のスキルを身に付けた技術者(たとえば、電気技術者)または特定の機能を備えた車両(パワーリフト)を必要とする場合があります。同じ特別指定を持つルートだけが、その訪問先に割り当てられます。
訪問先プロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
Shape |
ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 |
Name |
ネットワーク解析オブジェクトの名前。 名前は一意でなければなりません。 このフィールドは主キーとして機能し、外部キーとして訪問先ペア テーブル内の訪問先を参照するために使用されます。訪問先の名前は大文字と小文字を区別しません。また、訪問先が解析対象から除外される場合でも、訪問先の名前は空白のままにしないでください。 |
Description |
訪問先に関する説明的な情報。訪問先に関するあらゆるテキスト情報を保持することができ、一意でなくてもかまいません。[Name] フィールドに顧客 ID 番号を格納し、[Description] フィールドに顧客の実際の名前または住所を格納すると便利なことがあります。 |
ServiceTime |
このプロパティは、ルートがネットワーク ロケーションを訪れるときにそこで費やす時間を指定します。つまり、これには、ネットワーク ロケーションのインピーダンス値が格納されます。このフィールド値が 0 または NULL である場合、ネットワーク ロケーションにおけるサービス時間は不要です。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
TimeWindowStart1 |
ネットワーク ロケーションの第 1 のタイム ウィンドウの開始時間。このフィールドは NULL 値を含むことができます。NULL 値は開始時間がないことを示します (このプロパティ リストの下に示す注意をご参照ください)。 |
TimeWindowEnd1 |
ネットワーク ロケーションの第 1 のタイム ウィンドウの終了時間。このフィールドは NULL 値を含むことができます。NULL 値は終了時間がないことを示します (このプロパティ リストの下に示す注意をご参照ください)。 |
TimeWindowStart2 |
ネットワーク ロケーションの第 2 のタイム ウィンドウの開始時間。このフィールドは NULL 値を含むことができます。NULL 値は第 2 のタイム ウィンドウがないことを示します。 [TimeWindowStart1] および [TimeWindowEnd1] フィールドで第 1 のタイム ウィンドウを NULL に指定した場合は、第 2 のタイム ウィンドウも NULL にする必要があります。 タイム ウィンドウが両方とも NULL 以外の値である場合は、第 2 のタイム ウィンドウは第 1 のタイム ウィンドウより時間的に後でなければならず、第 1 のタイム ウィンドウと重なることは許されません (このプロパティ リストの下に示す注意をご参照ください)。 |
TimeWindowEnd2 |
ネットワーク ロケーションの第 2 のタイム ウィンドウの終了時間。このフィールドは、NULL 値を含むことができます。 TimeWindowStart2 と TimeWindowEnd2 の両方が NULL である場合、第 2 のタイム ウィンドウは設定されません。 TimeWindowStart2 が NULL ではなく、TimeWindowEnd2 が NULL である場合、第 2 のタイム ウィンドウの開始時間は設定されますが、終了時間は設定されません。これは有効です。 (このプロパティ リストの下に示す注意をご参照ください)。 |
MaxViolationTime1 |
到着時刻がタイム ウィンドウの範囲を超えている場合、タイム ウィンドウが超過されたと見なされます。このフィールドでは、訪問先の第 1 のタイム ウィンドウについて最大許容超過時間を指定します。このフィールドは値としてゼロを含むことはできますが、負の値を含むことはできません。値がゼロの場合、訪問先の第 1 のタイム ウィンドウにおいてタイム ウィンドウ違反は許されません。つまり、第 1 のタイム ウィンドウは条件が厳しいということです。一方、NULL 値の場合、許容超過時間は無制限です。ゼロ以外の値は、最大遅延時間を指定します。たとえば、第 1 のタイム ウィンドウの終了時刻から最大で 30 分遅れて到着することが許されます。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 解析によってタイム ウィンドウ違反を追跡し、重み付けすることが可能です。このため、次の 3 つの手法のいずれかを使用するように VRP 解析機能に指示することができます。
解析レイヤの [タイム ウィンドウ違反] 設定に重要度を割り当てることで、この 3 つの手法の中から実質的に 1 つを選択できます。ただし、どんな場合も、[MaxViolationTime1] を超えるとエラーが返されます。 |
MaxViolationTime2 |
訪問先の第 2 のタイム ウィンドウの最大許容超過時間。このフィールドは、[MaxViolationTime1] フィールドと同様です。 |
DeliveryQuantities |
訪問先に配達される荷物の量(たとえば、重量、体積、数量)。 訪問先で重量が 2,000 ポンドの商品を必要としている場合、解析レイヤの [レイヤ プロパティ] ダイアログ ボックスの [積載制限の総数] パラメータを 1 に設定し、[DeliveryQuantities] を 2000 に設定する必要があります。 解析レイヤの [積載制限の総数] プロパティで複数の種類が設定されている場合、[DeliveryQuantity] の値はスペースで区切って指定します。 たとえば、重量と体積が分かっている場合は、解析レイヤの [レイヤ プロパティ] ダイアログ ボックスの [積載制限の総数] を 2 に設定します。訪問先で重量が 2,000 ポンドの商品を必要としていて、それが 100 立方フィートを占める場合は、[DeliveryQuantities] を 2000 100 に設定します。 空の文字列または NULL 値は、すべての数量がゼロであることを示します。積載制限の総数に対して文字列内の値の個数が不足している場合、明示されていない残りの値はゼロと見なされます。配送数量を負の値とすることはできません。 |
PickupQuantities |
訪問先で引き取られる荷物の量(たとえば、重量、体積、数量)。数量を負の値とすることはできません。このフィールドは、[DeliveryQuantities] フィールドと同様です。
注意: 交換訪問の場合、訪問先は配送数量と引き取り数量の両方を持つことができます。 |
Revenue |
訪問先が解析に含まれる場合に生成される収入。このフィールドは NULL 値(収入がゼロであることを示す)を含むことができますが、負の値を含むことはできません。 収入は、目的関数の値を最適化する際に算入されますが、ソリューションの運用コストには組み込まれません。つまり、ルート クラスの [TotalCost] プロパティの出力に Revenue が取り込まれることはありません。ただし、収入によって、訪問先へのサービス提供の重要度が相対的に重み付けされます。 |
SpecialtyNames |
スペース区切りの文字列であり、訪問先が必要とする特別指定の名前が含まれます。NULL 値は、訪問先が特別指定を必要としていないことを示しています。 このフィールドは、特別指定テーブルの [Name] フィールドに対する外部キーです。特別指定オブジェクトはあらかじめ存在している場合に限り、[SpecialtyNames] ドロップダウン リストに表示されます。たとえば、芝の手入れを行う企業は、散布するのにライセンスが必要な農薬を使用して訪問先にサービスを提供することが必要な場合があります。この企業は、「ライセンス」という名前の特別指定オブジェクトを作成し、このプロパティを [ライセンス] に設定することが可能です。 |
AssignmentRule |
訪問先をルートに割り当てるためのルールを指定します。このフィールドは、以下に示す値のドメインによって制約されます(それぞれのコード値は括弧内に示されています)。
このフィールドは、NULL 値を含むことができません。 |
ネットワーク ロケーション フィールド
|
これらの 4 つのプロパティの組み合わせによって、オブジェクトが配置されているネットワーク上のポイントが示されます。 |
CurbApproach |
CurbApproach プロパティは、車両がネットワーク ロケーションに到着する方向およびネットワーク ロケーションから出発する方向を指定します。選択肢には次の 4 つがあります(それぞれのコード値は括弧内に示されています)。
|
-
タイム ウィンドウは、訪問先への車両の到着が許される時間帯を示すだけです。サービス時間が完了しなければならない時間帯を示すものではありません。サービス時間を考慮に入れ、タイム ウィンドウが終了する前に退去するには、[TimeWindowEnd1] フィールドから [ServiceTime] フィールドを引き算します。
-
タイム ウィンドウ フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。[TimeWindowStart1] のようなタイム ウィンドウ フィールドが時刻のみを示す値(たとえば、午前 8:00 時)である場合、日付は、解析レイヤの [デフォルトの日付] プロパティで指定された日付と見なされます。日時を示す値(たとえば、2010 年 11 月 7 日、午前 8:00 時)を使用すると、複数日にわたってタイム ウィンドウを指定することができます。
-
交通量データ を使用している場合、ネットワーク ロケーションの時刻フィールドは、常に、ネットワーク ロケーションが配置されているエッジと同じタイム ゾーンを参照します。
入力/出力フィールド |
説明 |
---|---|
RouteName |
訪問先が割り当てられるルートの名前。 このフィールドを入力フィールドとして使用し、訪問先を特定のルートにあらかじめ割り当てておきます。このフィールドは NULL 値を含むことができます。NULL 値の場合、訪問先はどのルートにもあらかじめ割り当てられず、解析機能が訪問先にとって最良のルート割り当てを決定します。このフィールドを NULL に設定した場合は、[Sequence] フィールドも NULL に設定する必要があります。 このフィールドは、[ルート] クラスの [Name] フィールドに対する外部キーです。ルート オブジェクトはあらかじめ存在している場合に限り、[RouteName] ドロップダウン リストに表示されます。 解析の後、訪問先のルートが解析されると、[RouteName] フィールドには訪問先が割り当てられるルートの名前が入ります。 |
Sequence |
このフィールドは、訪問先に割り当てられたルートでの訪問先の順序を示します。 入力フィールドとしてこのフィールドを使用して、ルート上での訪問先の相対的な順序を指定します。このフィールドは NULL 値を含むことができます。NULL 値は、訪問先をルート上のどこにでも配置できることを示します。NULL 値にする場合は、[RouteName] の値も NULL 値でなければなりません。 順序を示す入力値は、正の値であり、各ルートに対して一意です(リニューアル拠点立ち寄り状況、訪問先、および休憩の間で共有される)。ただし、1 から開始する必要も連続している必要もありません。 解析の後、[Sequence] フィールドには、割り当てられたルート上での訪問先の順序の値が入ります。ルートに対して出力される順序の値は、拠点立ち寄り状況、訪問先、および休憩の間で共有され、1(開始拠点)から始まり、連続的な値となります。ルートは常に拠点から始まるので、ルート解析対象の訪問先に対して出力される最小限の順序の値は 2 となります。 |
Status |
このフィールドは、以下に示す値のドメインによって制約されます(それぞれのコード値は括弧内に示されています)。
解析が終了すると、以下のステータス値のいずれかを使用してステータスを変更できます。
タイム ウィンドウが使用され、ルートが速くまたは遅く到着する場合、値は [タイム ウィンドウ違反](6)に変わります。 |
訪問先の [AssignmentRule] フィールドが「除外」である場合、解析の間、[Status]、[RouteName]、[Sequence] フィールドの入力値は変更されません。
出力フィールド |
説明 |
---|---|
ViolatedConstraints |
このフィールドは制約違反のサマリを含み、解析の実行後に設定されます。訪問先をルートに割り当てることで制約違反が発生する場合は、以下に示す 1 つまたは複数の違反の組み合わせがフィールドに割り当てられる可能性があります。 詳細: 説明テキストを表すコード値は、下のリストに括弧で囲まれて示されています。コード値は、最後の値の 2 乗で増える幾何数列の一部であることに注意してください。これにより、さまざまな違反の組み合わせをコード化することができます。たとえば、[Capacities が超過しました](2)と [ハード ルート ゾーン](128)の組み合わせは、130(2+128)になります。
注意: ルート解析されない訪問先の [ViolatedConstraints] の値は、すべての違反を説明することもあれば、そうでないこともあります。訪問先を検討対象から直ちに除外する必要があるくらい違反が深刻である場合、解析機能はその処理を行い、その訪問先について他のどのような違反も検出しないようにします。違反が発生しても、それによってソリューションの生成が自動的に停止されない場合は、[ViolatedConstraints] に違反が報告され、解析では訪問先を引き続き検討対象とします。そうした違反がさらに発生した場合は、[ViolatedConstraints] フィールドに追加され、この追加処理は、(a)該当する訪問先に対する解析プロセスが違反によって異常終了するまで、または(b)問題の全体的なソリューションを解析で検出するまで継続されます。 |
FromPrevTravelTime |
前の訪問先から次の訪問先までの移動時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
FromPrevDistance |
前の訪問先から次の訪問先までの移動距離。 このフィールド値の単位は、解析レイヤの [距離フィールドの単位] プロパティで指定します。解析パラメータ内に [距離属性] プロパティが指定されていない場合、このフィールドは NULL となります。 |
CumulTravelTime |
ルートが訪問先に到着するまでの累積移動時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
CumulDistance |
ルートが訪問先に到着するまでの累積移動距離。 このフィールド値の単位は、解析レイヤの [距離フィールドの単位] プロパティで指定します。解析パラメータ内に [距離属性] プロパティが指定されていない場合、このフィールドは NULL となります。 |
CumulTime |
訪問先までのルートの累積所要時間で、訪問先で費やした時間を含みます。累積所要時間には、移動時間に加えて、訪問先でのサービス時間および待ち時間も含まれます。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
ArriveCurbApproach |
これは、車両がネットワーク ロケーションに到達するときに、車両のどちら側になるかを示します。ネットワーク ロケーションの CurbApproach 値が [Right side of vehicle(車両の右側)] に設定されている場合、解析後の ArriveCurbApproach は [Right side of vehicle(車両の右側)] です。ただし、CurbApproach 値が [Either side of vehicle(車両の両側)] または [No U-Turn(U ターンなし)] に設定されている場合、ArriveCurbApproach は、右側か左側のどちらが全体的に見て最短パスになるかに応じて、右側または左側になります。 |
DepartCurbApproach |
これは、車両がネットワーク ロケーションから出発するときに、車両のどちら側になるかを示します。ネットワーク ロケーションの CurbApproach 値が [Right side of vehicle(車両の右側)] に設定されている場合、解析後の DepartCurbApproach は [Right side of vehicle(車両の右側)] です。ただし、CurbApproach 値が [Either side of vehicle(車両の両側)] または [No U-Turn(U ターンなし)] に設定されている場合、DepartCurbApproach は、右側か左側のどちらが全体的に見て最短パスになるかに応じて、右側または左側になります。 |
ArriveTime |
訪問先に到着した時刻を示す日時の値。 ルートは、訪問先にそのタイム ウィンドウが始まる前に到着することがあります。この場合、訪問先では待ち時間が発生します。ソフト タイム ウィンドウが設定されている訪問先については、いずれかのタイム ウィンドウの終了後に訪問先にルートが到着することがあります。この場合、訪問先では超過時間が発生します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは訪問先が配置されているネットワーク エレメントから取得されます。 |
DepartTime |
訪問先からの開始時刻を示す日時の値。ルートは、サービスが完了すると訪問先を出発します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは訪問先が配置されているネットワーク エレメントから取得されます。 |
WaitTime |
訪問先での待ち時間または待ち合わせ時間。たとえば、ルートが訪問先にてタイム ウィンドウが開くまで待機する必要がある場合は、待ち時間の値を取得します。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
ViolationTime |
訪問先のタイム ウィンドウの終了からルート車両の到着までの経過時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
CumulWaitTime |
ルートの開始から訪問先までの累積待ち時間で、訪問先での待ち時間を含みます。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
CumulViolationTime |
ルートの開始から訪問先までの累積超過時間で、訪問先での超過時間を含みます。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
拠点クラス
このネットワーク解析クラスには、特定の配車ルート解析レイヤの一部である拠点が格納されます。拠点とは、車両が就業日の初めに出発し、就業日の終わりに戻ってくる場所です。拠点は、車両に荷物が積まれ(配達の場合)、車両から荷が降ろされる(引き取りの場合)場所です。拠点は、場合によっては、リニューアル ロケーションとしての役割を果たすこともできます。これにより、車両は荷を降ろしたり再度積み込んだりして、配達と引き取りを引き続き行うことができます。拠点には、ハード タイム ウィンドウによって指定されるように、開始時刻と終了時刻があります。車両はこのタイム ウィンドウ外の時間に拠点に到着することは許されません。
拠点プロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
Shape |
ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 |
Name |
ネットワーク解析オブジェクトの名前。 このフィールドは主キーです。ルート フィーチャ レイヤ、ルート リニューアル テーブル、拠点立ち寄り状況フィーチャ レイヤでは、外部キーとして使用して拠点を参照します。拠点の名前は大文字と小文字を区別しません。また、空白以外の一意の値にする必要があります。 |
説明 |
ネットワーク解析オブジェクトに関する説明的な情報。あらゆるテキスト情報を保持することができ、一意でなくてもかまいません。 拠点が存在する領域や、拠点の住所および電話番号をメモしておくと便利な場合があります。このような情報は [Name] フィールドではなく、このフィールドに入力できます。 |
TimeWindowStart1 |
ネットワーク ロケーションの第 1 のタイム ウィンドウの開始時間。このフィールドは NULL 値を含むことができます。NULL 値は開始時間がないことを示します (このプロパティ リストの下に示す注意をご参照ください)。 |
TimeWindowEnd1 |
ネットワーク ロケーションの第 1 のタイム ウィンドウの終了時間。このフィールドは NULL 値を含むことができます。NULL 値は終了時間がないことを示します (このプロパティ リストの下に示す注意をご参照ください)。 |
TimeWindowStart2 |
ネットワーク ロケーションの第 2 のタイム ウィンドウの開始時間。このフィールドは NULL 値を含むことができます。NULL 値は第 2 のタイム ウィンドウがないことを示します。 [TimeWindowStart1] および [TimeWindowEnd1] フィールドで第 1 のタイム ウィンドウを NULL に指定した場合は、第 2 のタイム ウィンドウも NULL にする必要があります。 タイム ウィンドウが両方とも NULL 以外の値である場合は、第 2 のタイム ウィンドウは第 1 のタイム ウィンドウより時間的に後でなければならず、第 1 のタイム ウィンドウと重なることは許されません (このプロパティ リストの下に示す注意をご参照ください)。 |
TimeWindowEnd2 |
ネットワーク ロケーションの第 2 のタイム ウィンドウの終了時間。このフィールドは、NULL 値を含むことができます。 TimeWindowStart2 と TimeWindowEnd2 の両方が NULL である場合、第 2 のタイム ウィンドウは設定されません。 TimeWindowStart2 が NULL ではなく、TimeWindowEnd2 が NULL である場合、第 2 のタイム ウィンドウの開始時間は設定されますが、終了時間は設定されません。これは有効です。 (このプロパティ リストの下に示す注意をご参照ください)。 |
ネットワーク ロケーション フィールド
| これらの 4 つのプロパティの組み合わせによって、オブジェクトが配置されているネットワーク上のポイントが示されます。 |
CurbApproach |
CurbApproach プロパティは、車両が拠点に到着する方向および拠点から出発する方向を指定します。これは車両が特定の方向から拠点に到着し、拠点から特定の方向に出発する必要がある場合、または U ターンを避ける必要がある場合に役立ちます。CurbApproach の値として次の 4 つ値のいずれかを選択することによって、これらの要件に対応できます。
|
-
タイム ウィンドウ フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。[TimeWindowStart1] のようなタイム ウィンドウ フィールドが時刻のみを示す値(たとえば、午前 8:00 時)である場合、日付は、解析レイヤの [デフォルトの日付] プロパティで指定された日付と見なされます。日時を示す値(たとえば、2010 年 11 月 7 日、午前 8:00 時)を使用すると、複数日にわたってタイム ウィンドウを指定することができます。
-
交通量データ を使用している場合、ネットワーク ロケーションの時刻フィールドは、常に、ネットワーク ロケーションが配置されているエッジと同じタイム ゾーンを参照します。
入力/出力フィールド |
説明 |
---|---|
Status |
このフィールドは、以下に示す値のドメインによって制約されます(それぞれのコード値は括弧内に示されています)。
解析が終了すると、以下のステータス値のいずれかを使用してステータスを変更できます。
タイム ウィンドウが使用され、ルートが早く、または遅く到着する場合、値は [タイム ウィンドウ違反](6)に変わります。 |
ルート クラス
このネットワーク解析クラスには、特定の配車ルート解析レイヤの一部であるルートが格納されます。ルートは、車両および運転手の特性を指定すると共に、拠点と訪問先の間の通行を表します。ArcGIS Network Analyst では、車両、ルート、および運転手は同義語であり、この 3 つすべてを「ルート」という用語で表現します。
VRP 解析では、単一のルート ソリューションにおいて、交替勤務で同じ車両を使用すること、または、就業日内に運転手を変更することを考慮に入れていません。
ルートでは、開始拠点または終了拠点で荷物の積み降ろしに時間を要する場合があります。ルートの拠点で費やされる時間は固定されており、開始拠点および終了拠点のサービス時間として指定されます。
ルートは、決まった時刻に始めるように指定することも、開始時刻に幅を持たせること(つまり、何時から何時までの間という形で指定すること)も可能です。開始拠点の開始時刻範囲とタイム ウィンドウは、ルートの実際の開始時刻を決定する際に考慮されます。
個々のルートの運用コストは、時間ベースのコスト、距離ベースのコスト、および/または作業した時間または運転した距離に関係のない固定コストによって構成されます。追加の車両をレンタルして作業量の多い日に対処する必要がある場合は、車両の使用に関連付けられた固定コストが存在します。同様に、運転手には(規定外労働時間や昼休みを含めた、または除外した)労働時間数に対応する賃金が支払われます。このようなコストを使用して時間ベースのコストを明示することができます。燃料コストを使用して距離ベースのコストを明示することができます。
特定のルートで運用される車両には、車両の運送可能な量を制限する積載制限もあります。
運転手の労働時間(運転者が作業または運転できる時間数または合計運転距離)は、地域の法規または労働組合協定で定められているため、規制の対象となります。
ルートには作業休憩を含めることができます。こうした休憩について運転手に賃金が支払われる場合もあればそうでない場合もあります。
車両は、特定の機能(パワー リフトや特殊なシールド)を備える場合があります。あるいは、技術者はさまざまなスキルを身に付けている場合があります。このような特別指定が定義された訪問先は、適切なルートに割り当てる必要があります。
ルートがあらかじめ定義された地理的な領域に入るよう制限されている場合は、ルートをゾーンと関連付けることができます。
ルートは、ライン フィーチャです。これらのフィーチャは、他の配車ルート解析レイヤの既存のルート、他のライン フィーチャ、またはテーブルからインポートすることができます。それらは [アイテムの追加] コマンドを使用して作成することもできます。
ルート プロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
Name |
ネットワーク解析オブジェクトの名前。 このフィールドは主キーです。ルート フィーチャ レイヤ、休憩テーブル、ルート ゾーン フィーチャ レイヤ、ルート シード ポイント フィーチャ レイヤ、ルート リニューアル テーブル、拠点立ち寄り状況 フィーチャ レイヤでは、外部キーとして使用します。ルートの名前は大文字と小文字を区別しません。また、ルートが解析の対象から除外される場合でも、ルートの名前は空白のままにしないでください。名前は一意でなければなりません。 |
説明 |
ネットワーク解析オブジェクトに関する説明的な情報。あらゆるテキスト情報を保持することができ、一意でなくてもかまいません。 |
StartDepotName |
ルートの開始拠点の名前。このフィールドは、拠点クラスの [Name] フィールドに対する外部キーです。拠点オブジェクトはあらかじめ存在している場合に限り、[StartDepotName] ドロップダウン リストに表示されます。 StartDepotName が Null の場合、ルートは指定されている最初の訪問先から始まります。開始拠点を省略するのは、車両の出発点が不明か、解析に関係ない場合に有効です。ただし、StartDepotName が Null の場合は、EndDepotName を NULL にすることはできません。 ルートが配達を行っていて、StartDepotName が Null の場合、車両はルートの開始前に仮想拠点で荷物を積み込むものと想定されます。リニューアル拠点を持たないルートの場合、その配達訪問先([訪問先] クラスの [DeliveryQuantities] がゼロ以外の値)の荷物は、開始拠点または仮想拠点で積み込まれます。リニューアル拠点を持つルートの場合、最初のリニューアル拠点の手前にある配達訪問先の荷物のみが開始拠点または仮想拠点で積み込まれます。 |
EndDepotName |
ルートの終了拠点の名前。このフィールドは、拠点クラスの [Name] フィールドに対する外部キーです。拠点オブジェクトはあらかじめ存在している場合に限り、[EndDepotName] ドロップダウン リストに表示されます。 EndDepotName が Null の場合、ルートは指定されている最後の訪問先で終了します。終了拠点を省略するのは、車両の終了点が不明か、解析に関係ない場合に有効です。ただし、EndDepotName が Null の場合は、StartDepotName を NULL にすることはできません。 ルートが配達を行っていて、EndDepotName が Null の場合、車両はルートの終了後に仮想拠点で荷物を降ろすものと想定されます。リニューアル拠点を持たないルートの場合、その引き取り訪問先([訪問先] クラスの [PickupQuantities] がゼロ以外の値)の荷物は、終了拠点または仮想拠点で降ろされます。リニューアル拠点を持つルートの場合、最後のリニューアル拠点の後に訪れた引き取り訪問先の荷物のみが終了拠点または仮想拠点で降ろされます。 |
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] は追加されません。ルートがルート リニューアルに移動する場合、[ArriveDepartDelay] が再び移動時間に追加されます。休憩の場合、車両は減速して停止し、後で加速する必要がありますが、VRP 解析では [ArriveDepartDelay] 値を加算できません。これは、ルートが訪問先を離れ、休憩のために停止し、さらに次の訪問先に向かった場合に、到着と出発の遅延は 2 度ではなく、1 度しか追加されないことを意味します。 1 つの高層ビル内に 5 つの一致する訪問先があり、それらが 3 つの異なるルートでサービスを提供されているとします。この場合は、到着と出発の遅延が 3 回発生します。つまり、3 人の運転手が駐車場所を見つけ、同じ建物に入ることが必要になります。しかし、これらの訪問先に 1 つのルートだけでサービスを提供できれば、駐車して建物に入る運転手は 1 人だけになり、到着と出発の遅延の発生も 1 回だけになります。VRP 解析ではコストの最小化が図られるため、到着と出発の遅延を抑えるために、単一ルートのオプションが選択されます(特別指定、タイム ウィンドウ、積載制限などの制約によって、複数のルートが必要になる場合があります)。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
Capacities |
車両で運送可能な荷物の量(たとえば、体積、重量、数量)。車両が最大 40,000 ポンドを積載できる場合、解析レイヤの [レイヤ プロパティ] ダイアログ ボックスの [積載制限の総数] を 1 に設定し、[Capacities] を 40000 に設定します。同様に、車両が 1,000 立方フィートの荷物を運送可能である場合、[積載制限の総数] を 1 に設定し、[Capacities] を 1000 に設定します。 注意: VRP 解析では、簡単なブール テストを実行するだけで、積載制限を超過したかを確認できます。ルートの積載制限値が運送する合計数量以上である場合、車両に積荷が収まると見なされます。ただし、積荷および車両の実際の形状によっては、この判断は正しくない可能性があります。たとえば、VRP 解析では、1,000 立方フィートの球体を、幅が 8 フィートで容積が 1,000 立方フィートのトラックに収容することができます。しかし、実際には、球体の直径は 12.6 フィートであり、8 フィート幅のトラックに球体を収容することはできません。 解析レイヤの [積載制限の総数] パラメータで複数の種類が設定されている場合、[Capacities] の値はスペースで区切って指定します。たとえば、車両の最大重量と体積が分かっていて、解析レイヤの [レイヤ プロパティ] ダイアログ ボックスの [積載制限の総数] に 2 を設定した場合を例にとります。車両が重さ 40,000 ポンド、体積 2,000 立方フィートの荷物を輸送可能である場合は、[Capacities] を 40000 2000 に設定します。 空の文字列または NULL 値は、すべての数量がゼロであることを示します。積載制限を負の値とすることはできません。 積載制限の総数に対して [Capacities] 文字列内の値の個数が不足している場合、明示されていない残りの値はゼロと見なされます。 |
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 値は最大許容移動時間に制約がないことを示します。 このフィールドに値が与えられているのに解析レイヤの [距離属性] プロパティが指定されていない場合は、エラーが返されます。 |
SpecialtyNames |
スペース区切りの文字列であり、ルートがサポートする特別指定の名前が含められます。NULL 値は、ルートが特別指定をサポートしていないことを示します。このフィールドは、特別指定テーブルの [Name] フィールドに対する外部キーです。特別指定オブジェクトはあらかじめ存在している場合に限り、[SpecialtyNames] ドロップダウン リストに表示されます。 |
AssignmentRule |
問題の解決時にルートを使用できるかを指定します。このフィールドは、値のドメインによって制約されます。設定可能な値は次のとおりです。
|
出力フィールド |
説明 |
---|---|
Shape |
ルートのライン形状。解析レイヤの [出力形状のタイプ] プロパティを [なし] に設定した場合、形状は表示されません。[出力形状のタイプ] プロパティを [直線] に設定すると、連続的な立ち寄り先の各ペアを接続する直線が表示されます。[正確な形状(メジャー付き)] および [正確な形状] のいずれを選択しても、ネットワーク上の対応するルートをトレースするラインが表示されます。ただし、[正確な形状(メジャー付き)] では、時間よって直線的に参照されたラインが表示される点が異なります。 |
ViolatedConstraints |
このフィールドは制約違反のサマリを含み、解析の実行後に設定されます。ルートを使用することで制約違反が発生する場合は、以下に示す 1 つまたは複数の違反の組み合わせがフィールドに割り当てられる可能性があります。 詳細: 説明テキストを表すコード値は、下のリストに括弧で囲まれて示されています。コード値は、最後の値の 2 乗で増える幾何数列の一部であることに注意してください。これにより、さまざまな違反の組み合わせをコード化することができます。たとえば、[Capacities が超過しました](2)と [ハード ルート ゾーン](128)の組み合わせは、130(2+128)になります。
|
OrderCount |
ルートに割り当てられる訪問先の数。 |
TotalCost |
ルートの合計運用コストです。これは、次のフィールドの合計です。
|
RegularTimeCost |
無給の休憩を除外した規定労働時間のコスト。 |
OvertimeCost |
無給の休憩を除外した規定外労働のコスト。 |
DistanceCost |
[TotalDistance] と [CostPerUnitDistance] フィールド値を掛け算して得られる距離のコスト要素。解析レイヤに [距離属性] プロパティが指定されていない場合、このフィールド値は Null となります。 |
TotalTime |
合計ルート所要時間。これには、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。[TotalTime] の値は次のフィールドの合計です。
このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
TotalOrderServiceTime |
ルート上のすべての訪問先で費やされる合計サービス時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
TotalBreakServiceTime |
ルート上のすべての休憩で費やされる合計サービス時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
TotalTravelTime |
ルートの合計移動時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
TotalDistance |
ルートの合計移動距離。 このフィールド値の単位は、解析レイヤの [距離フィールドの単位] プロパティで指定します。解析パラメータ内に [距離属性] プロパティが指定されていない場合、このフィールドは NULL となります。 |
StartTime |
ルートの開始時刻。ルートは、開始拠点のタイム ウィンドウが始まる前に出発することがあります。この場合、開始拠点では待ち時間が発生します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは開始拠点が配置されているネットワーク エレメントから取得されます。 |
EndTime |
ルートの終了に到着する時刻。ルートは、終了拠点でのサービス完了時に終了します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは終了拠点が配置されているネットワーク エレメントから取得されます。 |
TotalWaitTime |
ルート上のすべての訪問先、拠点、および休憩での合計待ち時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
TotalViolationTime |
ルート上のすべての訪問先および休憩での合計超過時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
RenewalCount |
リニューアルを持つルートの場合、このフィールドはリニューアルのために拠点に立ち寄った回数に相当します。 |
TotalRenewalServiceTime |
リニューアルを持つルートの場合、ルート上のすべてのリニューアル拠点で費やされたサービス時間の合計を示します。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
拠点立ち寄り状況フィーチャ レイヤ
ルートが拠点で開始、積み替え(荷降ろしまたは再積み込み)、または終了したときに、拠点立ち寄り状況が作成されます。拠点立ち寄り状況オブジェクトは、ルートが拠点を訪問した理由と、そこで行われたことに関する情報を提供します。拠点での積み込みまたは荷降ろしの量は、拠点立ち寄り状況のプロパティに記録されます。配車ルート解析の解釈に役立つ追加情報も含められます。
これは出力専用のネットワーク解析クラスです。拠点立ち寄り状況フィーチャは解析操作の間に限って作成されるため、解析プロセスの実行前には解析クラスは常に空です。
拠点立ち寄り状況プロパティ
出力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
Shape |
ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 |
DepotName |
訪れる拠点の名前。このフィールドは、拠点ネットワーク解析クラスの [Name] フィールドに対する外部キーです。 ルートが仮想拠点を使用する場合、つまりルートが拠点ではなく訪問先で開始または終了する場合、[DepotName] は NULL になります。 |
RouteName |
この立ち寄りを含むルートの名前。このフィールドは、ルート フィーチャ レイヤの [Name] フィールドに対する外部キーです。 |
Sequence |
ルートでの立ち寄り拠点の順序を示します。ルートに対して出力される順序の値は、拠点立ち寄り状況、訪問先、および休憩の間で共有され、1(開始拠点)から始まり、連続的な値となります。 |
VisitType |
この拠点に立ち寄った理由を示します。このフィールドは、値のドメインによって制約されます。
|
ServiceTime |
拠点でのサービス時間(積み込みや荷降ろしなど)。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
FromPrevTravelTime |
前の立ち寄り地点からルートの拠点までの移動時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
FromPrevDistance |
前の立ち寄り地点から拠点までのルートの移動距離。 このフィールド値の単位は、解析レイヤの [距離フィールドの単位] プロパティで指定します。解析パラメータ内に [距離属性] プロパティが指定されていない場合、このフィールドは NULL となります。 |
CumulTravelTime |
ルートがこの拠点に到着するまでの累積移動時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
CumulDistance |
ルートがこの拠点に到着するまでの累積移動距離。 このフィールド値の単位は、解析レイヤの [距離フィールドの単位] プロパティで指定します。解析パラメータ内に [距離属性] プロパティが指定されていない場合、このフィールドは NULL となります。 |
CumulTime |
ルートの累積所要時間で、拠点で費やした時間を含みます。累積所要時間には、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
ArriveTime |
拠点への到着時刻。ルートは拠点のタイム ウィンドウが始まる前に拠点に到着することがあります。この場合、拠点では待ち時間が発生します。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは拠点が配置されているネットワーク エレメントと同じになります。 |
DepartTime |
拠点からの開始時刻。 複数のタイム ゾーンにまたがる交通量データを使用するとき、この時刻値のタイムゾーンは拠点が配置されているネットワーク エレメントと同じになります。 |
WaitTime |
拠点での待ち時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
CumulWaitTime |
ルートの開始から拠点までの累積待ち時間で、拠点での待ち時間を含みます。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
CumulViolationTime |
ルートの開始から拠点までの累積超過時間で、拠点での超過時間を含みます。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
TotalLoadedQuantities |
拠点で積み込まれる荷物の量(たとえば、体積、重量、数量)。解析レイヤの [積載制限の総数] プロパティで複数の種類が設定されている場合、値はスペースで区切って指定します。たとえば、配達の場合、[TotalLoadedQuantities] フィールドは、車両が拠点に戻るまでに配達する商品の実際の数量を示します。この値が、与えられたルートの [Capacities] フィールド値以下である場合、ルートはトラック 1 台分の積荷を配達します。 |
TotalUnloadedQuantities |
拠点で降ろされる荷物の量(たとえば、体積、重量、数量)。解析レイヤの [積載制限の総数] プロパティで複数の種類が設定されている場合、値はスペースで区切って指定します。たとえば、リニューアルを持つルートまたは引き取りの場合、[TotalUnloadedQuantities] フィールドは、車両が引き取って拠点に持ち込む商品の実際の数量を示します。この値が、与えられたルートの [Capacities] フィールド値以下である場合、ルートはトラック 1 台分の積荷を引き取ります。 |
拠点はハード タイム ウィンドウを持つため、拠点立ち寄り状況フィーチャ レイヤには [ViolationTime] 出力フィールドはありません。
休憩クラス
これは、配車ルート解析で、ルートの休憩時間または休憩が格納される非空間ネットワーク解析クラスです。休憩は、厳密に 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 |
休憩のタイム ウィンドウの開始時間。 このフィールドが Null で、[TimeWindowEnd] が有効な時刻値を持つ場合、休憩は [TimeWindowEnd] 値より前ならいつでも開始できます。 このフィールドが値を持つ場合、[MaxTravelTimeBetweenBreaks] と [MaxCumulWorkTime] は Null でなければなりません。さらに、解析レイヤの他のすべての休憩についても、[MaxTravelTimeBetweenBreaks] と [MaxCumulWorkTime] は Null でなければなりません。 ルートにタイム ウィンドウが重なった複数の休憩があると、解析時にエラーになります。 休憩のタイム ウィンドウ フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。[TimeWindowStart] のようなタイム ウィンドウ フィールドが時刻のみを示す値(たとえば、午後 12:00)である場合、日付は、解析レイヤの [デフォルトの日付] プロパティで指定された日付と見なされます。日時を示す値(たとえば、2010 年 11 月 7 日、午後 12:00)を使用すると、複数日にわたってタイム ウィンドウを指定することができます。これは、午前 0 時前後のどこかで休憩を取る必要がある場合に特に有用です。 複数のタイム ゾーンにまたがる交通量データを持つネットワーク データセットを使用する場合、[TimeWindowStart] および [TimeWindowEnd] のタイムゾーンは開始拠点が配置されているエッジまたはジャンクションのタイム ゾーンと同じと見なされます。 |
TimeWindowEnd |
休憩のタイム ウィンドウの終了時間。 このフィールドが Null で、[TimeWindowStart] が有効な時刻値を持つ場合、休憩は [TimeWindowStart] 値より後ならいつでも開始できます。 このフィールドが値を持つ場合、[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 |
休憩が終了する時間。 複数のタイム ゾーンにまたがる交通量データを使用する場合、この時間は関連するルートの開始拠点が属するタイム ゾーンで報告されます。 |
WaitTime |
休憩開始時間までの待ち時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
ViolationTime |
休憩での超過時間。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
CumulWaitTime |
ルートの開始から休憩までの累積待ち時間で、休憩開始時間までの待ち時間を含む。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
CumulViolationTime |
ルートの開始から休憩までの累積超過時間で、休憩での超過時間を含む。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 |
ルート ゾーン クラス
ルート ゾーンは、特定のルートの担当区域を指定します。ルート ゾーンはポリゴン フィーチャです。ルートゾーンを使用して、領域内にある訪問先または領域の近くにある訪問先にのみサービスを提供するようにルートを制限します。どんなときにルート ゾーンが役に立つかを以下の例で示します。
- 従業員または車両の一部が特定の地域で作業を行うために必要な許可証を持っていません。この場合は、要件を満たす地域の訪問先のみを訪れるようにハード ルート ゾーンを作成することができます。
- 車両のいずれかが頻繁に故障する場合は、対応時間を可能な限り短くするために、その車両の担当を修理工場の近くの訪問先にのみ限定するのが望ましいでしょう。車両を近隣での運用にとどめるために、ソフト ルート ゾーンまたはハード ルート ゾーンを作成できます。
解析でルート ゾーンを使用する場合、ルート シード ポイントは使用できなくなります。
ルート ゾーン プロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
Shape |
ネットワーク解析オブジェクトの地理的な位置を示すジオメトリ フィールド。 |
RouteName |
このゾーンが適用されるルートの名前。ルート ゾーンは、関連付けられたルートを最大で 1 つ持っています。このフィールドは、NULL 値を含むことができません。ルート フィーチャ レイヤの [Name] フィールドに対する外部キーとなります。ルート オブジェクトはあらかじめ存在している場合に限り、[RouteName] ドロップダウン リストに表示されます。 |
IsHardZone |
ハード ルート ゾーンかソフト ルート ゾーンかをブール値で示します。[True] 値はルート ゾーンがハード ルート ゾーンであることを示します。つまり、ルート ゾーン ポリゴンの外にある訪問先をルートに割り当てることはできません。デフォルト値は [True] です。[False] 値を指定した場合、ルート ゾーン ポリゴンの外にある訪問先をルートに割り当てることはできますが、訪問先へのサービス提供のコストはルート ゾーンからのユークリッド距離に基づく関数によって重み付けされます。基本的に、ソフト ゾーンから訪問先までの直線距離が長くなるに従い、訪問先をルートに割り当てる機会が低くなることを意味しています。 |
- ルート ゾーンと訪問先との間の距離を測定する際はユークリッド距離が使用されるので、ネットワーク ベースの距離属性は必要ありません。
- ハード ルート ゾーンと関連付けられたルートがルート ゾーン内の訪問先に対してしかサービスを提供できない場合でも、他のルートで同じゾーン内に入り訪問先にサービスを提供することができます。ルート ゾーンで制限されるのはルートであり、訪問先は制限されないからです(領域内のすべての訪問先を 1 つのルートに排他的に割り当てたい場合は、ルート ゾーンは使用しません。その場合は、領域内のすべての訪問先を選択し、訪問先の [RouteName] フィールドを適切なルートに変更し、[AssignmentRule] フィールドを [ルートを保持] に設定します)。
ルート シード ポイント クラス
このネットワーク解析クラスには、特定の配車ルート解析レイヤのルート シード ポイントが格納されます。ルート シード ポイントを使用し、ポイントの近くにルートが集約されるように指定します。通常、訪問先がルートのシード ポイントに近づくほど、訪問先がそのルートに割り当てられる可能性が高くなります(特別指定や積載制限などの他の基準が満たされている限りは)。訪問先を集約すると、ルートがカバーする領域が狭くなり、他のルートと交差することは少なくなりますが、ソリューションの全体のコストは増大する可能性があります。シード ポイントを使用して、運転手が慣れている配送地域を配置することができます。また、組織で管理しやすいように、ルートを区画化することもできます。
ルート シード ポイントで作業するときに考慮すべきいくつかのルールとオプションを次に示します。
- ルート シード ポイントはルートにあらかじめ割り当てておくことも、VRP 解析によって算出することもできます。
- 解析でルート シード ポイントを使用する場合、ルート ゾーンは使用できなくなります。
- ルート シード ポイントを使用する場合、各ルートにはルート シード ポイントを 1 つ割り当てる必要があります。
- ルート シード ポイントの種類を組み合わせることはできません。ネットワーク解析クラスのシード ポイントは、すべて動的なシード ポイントとするか、すべて静的なシード ポイントとする必要があります。
ルート シード ポイントはポイント フィーチャですが、ネットワーク ロケーションではありません。そのため、ネットワーク ロケーション フィールドを持ちません。
ルート シード ポイント クラス
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
RouteName |
このシード ポイントが適用されるルートの名前。ルート シード ポイントは、1 つのルートに 0 または 1 つ存在します。このフィールドは、NULL 値を含むことができません。[ルート] クラスの [Name] フィールドに対する外部キーとなります。ルート オブジェクトはあらかじめ存在している場合に限り、[RouteName] ドロップダウン リストに表示されます。 |
SeedPointType |
シード ポイントの種類。このフィールドは、値のドメインによって制約されます。設定可能な値は、[静的] と [動的] です。このフィールドのデフォルト値は [静的] です。 静的シード ポイントの場合、ルート シード ポイントの場所を指定すると、シード ポイント ロケーションの周囲にルートが集約されます。動的シード ポイントの場合、最初に、マップ上の任意の場所にシード ポイントを追加すると、解析プロセス中に訪問先の集約化が行われ、次にシード ポイントがルートの訪問先の重心に再配置されます。 |
入力/出力フィールド |
説明 |
---|---|
Shape |
入力フィールドとして、ルート シード ポイントのロケーションを示します。静的シード ポイントの場合、その入力ポイントの位置は、解析プロセスを通してそのままです。 一方、動的シード ポイントの場合、入力ポイントの位置は無視され、解析機能により解析プロセス中に [Shape] フィールドが変更され、新しい位置に配置されます。 |
ルート シード ポイントと訪問先との間の距離を測定する際はユークリッド距離が使用されるので、レイヤ プロパティにおいてネットワーク ベースの [距離属性] は必要ありません。
ルート リニューアル クラス
ルート リニューアル クラスでは、配車ルート解析内のルートが荷物を配達するか引き取るときに、再積み込みおよび荷降ろしのために立ち寄ることができる中間の拠点を指定します。
特に、ルート リニューアル解析オブジェクトは、ルート オブジェクトを拠点オブジェクトにリンクします。このリレーションシップは、関連付けられた拠点でルートがリニューアル(再積み込みまたは荷降ろし)できることを示します。
業務によっては車両が満載の積荷の配達または引き取りと配達を行うために 1 回または複数回往復します。ルート リニューアルを使用してモデリング可能なシナリオとして、「開始拠点で配達する荷物を車両に満載し、訪問先に供給し、拠点に戻って配達用の荷物を再び積み込み、訪問先への供給を継続する」というものがあります。たとえば、プロパンガスの配達の場合は、車両はタンクがほとんどまたは完全に空になるまで複数回配達を行い、燃料補給ポイントに立ち寄り、さらに配達を継続することができます。
ルート シード ポイントで作業するときに考慮すべきいくつかのルールとオプションを次に示します。
- 再積み込み/荷降ろしのポイントである、リニューアル ロケーションは、開始拠点または終了拠点とは異なる可能性があります。
- 各ルートは、あらかじめ決定されたリニューアル ロケーションを 1 つまたは複数持つことができます。
- リニューアル ロケーションは、1 つのルートで複数回使用することができます。
- 1 つのルートにおいて使用できるリニューアル ロケーションがいくつか存在する場合は、一番近い有効なリニューアル ロケーションが解析によって選択されます。
ルート リニューアル プロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
DepotName |
このリニューアルが行われる拠点の名前。このフィールドは、NULL 値を含むことができません。拠点フィーチャ レイヤの [Name] フィールドに対する外部キーとなります。拠点オブジェクトはあらかじめ存在している場合に限り、[DepotName] ドロップダウン リストに表示されます。 |
RouteName |
このリニューアルが適用されるルートの名前。このフィールドは、NULL 値を含むことができません。ルート フィーチャ レイヤの [Name] フィールドに対する外部キーとなります。ルート オブジェクトはあらかじめ存在している場合に限り、[RouteName] ドロップダウン リストに表示されます。 |
ServiceTime |
リニューアルのサービス時間。このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。サービス時間の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 注意: リニューアル拠点で車両に荷積みするのにかかる時間は、車両のサイズと、車両にどれくらい荷物が積まれているかに左右される場合があります。ただし、ルート リニューアルのサービス時間は固定値であり、実際の積荷を考慮に入れません。したがって、リニューアル サービス時間には、満載の積荷の場合のサービス時間、平均的な積荷の場合の時間、または別の時間評価による値を指定してください。 |
入力/出力フィールド |
説明 |
---|---|
Sequences |
入力フィールドとして、リニューアル拠点への立ち寄りの順序の値をスペース区切りの文字列で指定します。このフィールドは、NULL 値を含むことができ、リニューアル拠点への立ち寄りをあらかじめ指定しておくために使用します。 出力フィールドとして、解析機能が変更した順序を格納する場合があります。解析実行後、このフィールドには、関連するルート用に設定されたリニューアル拠点への立ち寄りの順序を示す値が入ります。1 つのルートがその拠点で複数回のリニューアル拠点に立ち寄る場合は、順序の値はスペースで区切られます。ルートに対して出力される順序の値は、拠点立ち寄り状況、訪問先、および休憩の間で共有され、1(開始拠点)から始まり、連続的な値となります。したがって、ルートが拠点を出発し、2 つの訪問先に立ち寄り、リニューアル拠点に立ち寄り、さらに業務を継続する場合、リニューアルの順序の値は 4 となります。 |
特別指定クラス
この表は、訪問先で要求することができ、ルートでサポートすることが可能な特別指定を示しています。ルートは、訪問先が必要としている特殊な条件をすべてサポートしている場合に限り、その訪問先にサービスを提供できます。
訪問先では、特定のスキルを身に付けた技術者または特定の機能を備えた車両を必要とする場合があります。まず、そうしたスキルや機能などを特別指定クラスに追加して、モデル化します。次に、ルートがサポートしている特別指定をその [SpecialtyNames] プロパティに追加します。最後に、訪問先が必要としている特別指定をその [SpecialtyNames] プロパティに追加します。VRP 解析を行うと、ある特別指定を必要とする訪問先と、それを提供できるルートがマッチングされます。
特別指定プロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
Name |
ネットワーク解析オブジェクトの名前。 このフィールドは主キーです。訪問先フィーチャ レイヤおよびルート フィーチャ レイヤでは、外部キーとして使用して特別指定を参照します。 特別指定の名前は一意でなければならず、空であってはなりません。名前にスペースを含めることもできません。したがって、たとえば「senior technician」の特別指定は「SeniorTechnician」と入力します。 名前にスペースを含めることができないのは、複数の特別指定に関連付けられた訪問先とルートは、「SeniorTechnician Lift」のように特別指定の名前をスペースで区切って列挙するからです。 |
説明 |
ネットワーク解析オブジェクトに関する説明的な情報。あらゆるテキスト情報を保持することができ、一意でなくてもかまいません。 |
訪問先ペア クラス
このネットワーク解析クラスは、配達と引き取りの訪問先をペアにし、同じルートでサービスされるようにするために使用されるレコードのテーブルです。
訪問先に対する引き取りと配達をペアにすることが必要な場合があります。たとえば、宅配業者の場合、ドキュメントの配達には 2 つのストップが関係します。まず発送元でドキュメントを引き取り、次に発送先にドキュメントを届けます。このような関連するストップは、適切な順序で同じルートに割り当てます。訪問先の片方だけをルートに割り当てることは、禁止されています。訪問先の両方を同じルートに割り当てるか、どちらも割り当てないようにします。
荷物を車両に載せておく時間が制限されている場合があります。たとえば、病院から試験所までの血液サンプルの輸送は、2 時間以内に行う必要があります。
場合によっては 2 つの訪問先ペアを必要とする場合があります。たとえば、高齢者を自宅から、かかりつけの病院まで連れて行き、その後、家につれて戻りたい場合があるとします。自宅から病院までの乗車は、1 つの訪問先ペアであり、病院への到着時刻が要求されます。一方、病院から自宅に帰る乗車はもう 1 つの訪問先ペアであり、病院に迎えに行く時刻が要求されます。
訪問先ペア プロパティ
入力フィールド |
説明 |
---|---|
ObjectID |
システムで管理される ID フィールド。 |
FirstOrderName |
ペアの第 1 の訪問先の名前。このフィールドは、訪問先フィーチャ レイヤの [Name] フィールドに対する外部キーです。訪問先オブジェクトはあらかじめ存在している場合に限り、[FirstOrderName] ドロップダウン リストに表示されます。 |
SecondOrderName |
ペアの第 2 の訪問先の名前。このフィールドは、訪問先フィーチャ レイヤの [Name] フィールドに対する外部キーです。訪問先オブジェクトはあらかじめ存在している場合に限り、[SecondOrderName] ドロップダウン リストに表示されます。 ペアの第 1 の訪問先は引き取り訪問先でなければなりません。つまり、その [DeliveryQuantities] フィールドは Null となります。ペアの第 2 の訪問先は配達訪問先でなければなりません。つまり、その [PickupQuantities] フィールドは Null となります。第 1 の訪問先で引き取られる数量は、第 2 の訪問先に配達される数量と対応する必要があります。特殊な場合として、積荷制限が使用されていないシナリオについては、両方の訪問先の数量がゼロになることがあります。 注意: 訪問先の数量は拠点で荷積みまたは荷降ろしされません。 |
MaxTransitTime |
ペアの最大移動時間です。移動時間とは、第 1 の訪問先の出発時刻から第 2 の訪問先の到着時刻までの時間の長さです。この制約により、2 つの訪問先の間で車両に積まれている時間(乗車時間)が制限されます。人または生鮮食料品を車両で輸送する場合、その乗車時間は、荷物または非生鮮食料品を車両で輸送する場合より短くなるのが普通です。このフィールドは NULL 値を含むことができます。NULL 値は乗車時間に制約がないことを示します。 このフィールド値の単位は、解析レイヤの [時間フィールドの単位] プロパティで指定します。 解析では、超過移動時間(訪問先ペア間の直接移動時間に基づく)を追跡し、重み付けすることができます。このため、次の 3 つの手法のいずれかを使用するように VRP 解析機能に指示することができます。(1)保有車両の移動コストの増大を無視して、全体の超過移動時間を最小にする、(2)全体の超過時間と移動コストのバランスをとるソリューションを検索する、(3)全体の超過移動時間を無視して、保有車両の移動コストを最小にする。解析レイヤの [超過移動時間] 設定に重要度を割り当てることで、この 3 つの手法の中から 1 つを効果的に選択できます。重要度にかかわりなく、[MaxTransitTime] が超過すると必ずエラーが返されます。 |
ポイント、ライン、およびポリゴン バリア
バリアは、ネットワークの構成要素を一時的に規制したり、それにインピーダンスを追加したり、そのインピーダンスをスケーリングしたりするのに使用します。新しいネットワーク解析レイヤが作成されるとき、バリア クラスは空です。バリアは、それにオブジェクトを追加するときにのみ設定されます(バリアを追加することは必須ではありません)。
バリアは、すべてのネットワーク解析レイヤで使用可能です。したがって、バリアについては、別のトピックで説明されています。
配車ルート解析のパラメータ
解析パラメータの設定は、解析レイヤの [レイヤ プロパティ] ダイアログ ボックスで行います。このダイアログ ボックスには、いくつかの方法でアクセスできます。
ネットワーク解析レイヤの [レイヤ プロパティ] ダイアログ ボックスを開く方法の詳細
解析の設定タブ
ここでは、解析レイヤで設定できるパラメータについて説明します。これらのパラメータは、解析レイヤの [レイヤ プロパティ] ダイアログ ボックスの [解析の設定] タブで設定できます。
デフォルトの日付
日付が指定されない時間フィールド値で使用する日付。訪問先の [TimeWindowStart1] のようなタイム フィールドが時刻のみを示す値である場合、その日付は [デフォルトの日付] プロパティで指定された日付と見なされます。たとえば、訪問先の [TimeWindowStart1] 値が午前 9:00 で [デフォルトの日付] が 2011 年 3 月 6 日の場合、このフィールドの時刻値全体は 2011 年 3 月 6 日、午前 9:00 になります。[デフォルトの日付] の設定を変更すると、日付が指定されていないすべての時間フィールド値に対して、この新しいデフォルトの日付が自動的に適用されます。時間フィールド値として時刻と特定の日付がすでに指定されている場合、デフォルトの日付は無効になります。
ネットワーク データセットに履歴交通量データが含まれている場合、ここで指定する日付によって解析の結果が変わる可能性があります。たとえば、ルートが交通量の少ない日曜日の午前 8:00 に開始される場合と、混雑時の月曜日の午前 8:00 に開始される場合では、月曜日のルートの方が時間がかかります。また、最適なパスは交通状況によって異なります。
変動日([曜日])または暦日([特定の日付])のどちらかを入力できます。暦日の場合は、日、月、および年を指定します。変動日の場合は、[今日] またはいずれかの曜日([日] から [土])を選択できます。変動日を指定できることにより、日付を変更することなく再利用できる解析レイヤを設定できます。
変動日は、交通量データとともに使用する場合に特に便利です。たとえば、[曜日] 設定と [今日] 設定を選択した場合、解析はコンピュータのオペレーティング システムによって決定される現在の日付の履歴交通量データに基づいて結果を生成します。また、次の日の 5 月 5 日に戻るとして同じ解析レイヤを再び解析すると、ソリューションは 5 月 5 日の曜日の履歴交通量データに基づいて生成されます。同様に、[曜日] プロパティを [月] に設定した場合、ソリューションは次の月曜日の履歴交通量データに基づいて生成されます。ただし、今日が月曜日である場合、ソリューションは今日の履歴交通量データを使用します。
積載制限の総数
積載容量の制約を示すディメンション数であり、車両の関連する制限を説明するのに必要です。訪問先への配達の場合、各車両が一度に輸送できる重量および体積は物理的および法律的な規制に基づいて制限されます。この場合、訪問先の重量および体積を追跡すれば、この 2 つの積載制限を使用することで、車両への過積載を防ぐことができます。このシナリオでの積載制限の総数は 2(重量と体積)です。問題に応じて、積載制限のさまざまなタイプまたは量を追跡することが必要な場合もあります。積載制限フィールド([訪問先] クラスでは [DeliveryQuantities] と [PickupQuantities]、[ルート] クラスでは [Capacities])には、積載制限を表す数値がスペース区切りの文字列として入力されます。このフィールドで保持できる値の個数は、[積載制限の総数] に指定された値の個数に対応します。同じ配車ルート解析レイヤでは、すべての積載制限フィールド値で各積載制限ディメンションの表示順序は同じになります。積載制限自体は名前を持ちません。したがって、積載制限ディメンションの順番を誤って入れ替えてしまうのを避けるために、すべての積載制限フィールドについては、スペース区切りの積載制限リストを常に同じ順序で入力する必要があります。
時間フィールドの単位
解析レイヤのサブレイヤおよびテーブル(ネットワーク解析のクラス)の時間的なフィールドで使用される時間の単位。時間コスト属性の単位と同じである必要はありません。
距離フィールドの単位
解析レイヤのサブレイヤおよびテーブル(ネットワーク解析のクラス)の距離的なフィールドで使用される距離の単位。オプションである距離コスト属性の単位と同じである必要はありません。
ジャンクションでの U ターン
ArcGIS Network Analyst では、U ターンをすべての場所で許可、どの場所でも許可しない、袋小路(行き止まり)のみで許可、または交差点と袋小路のみで許可するように設定できます。U ターンを許可するということは、ルートがジャンクションで方向転換し、同じ道路を引き返すことができるということを意味します。
出力形状のタイプ
解析によって出力されるルート フィーチャは、次の 4 つの方法のいずれかで表すことができます。
- [正確な形状] を選択した場合は、結果として得られたルートの実際の形状が出力されます。
- [正確な形状(メジャー付き)] を選択した場合は、結果として得られたルートの実際の形状が出力され、リニア リファレンスのためのルートの計測値が出力に含まれます。計測値は、最初のストップから増加し、累積インピーダンスを記録します。
- [直線] を選択した場合、ストップ間の直線が表示されます。
- 出力形状として [なし] を選択した場合、形状は表示されません。
これらのオプションの場合はすべて、ソリューションでの時間ベースのコストと距離ベースのコストは同じです。また、ルート フィーチャ レイヤの属性も同じになります。唯一の違いは、ルート出力の形状、またはリニア リファレンスが自動的に設定されるかどうかです。
階層を使用
ネットワーク データセットが階層属性を持つ場合、解析に階層を使用できます。階層を使用すると、解析は下位ランクのエッジよりも上位ランクのエッジを優先します。階層解析は、より高速で、運転者が遠回りであっても一般道路の代わりに高速道路を利用する状況をシミュレートするのに使用できます。一方、階層を使用しない場合、ネットワーク データセットの正確なルートが検索されます。
規制
解析の実行中に適用される必要のある規制属性を選択できます。一方通行に従う必要のある車両(たとえば、緊急車両以外の車両)を対象とするソリューションの検索には、一方通行(Oneway)などの規制が使用されます。ネットワーク データセットに重量規制や高さ規制などの追加の規制属性が含まれる場合は、それらの規制も使用できます。
規制属性は動的属性と共に使用できます。たとえば、車高がトンネルより高い場合は、エッジを規制することが可能です。
ルート案内
[ルート案内] プロパティでは、距離の表示単位と、オプションとして時間を設定できます。さらに、ルートの生成後にルート案内を自動的に表示するように設定できます(ルート案内を自動的に表示しない場合は、[ルート案内ウィンドウ] ボタン をクリックすると、ルート案内が表示されます)。
高度な設定タブ
[レイヤ プロパティ] ダイアログ ボックスの [高度な設定] タブには、配車ルート解析レイヤの以下のプロパティが表示されます。ルートのタイム ウィンドウ違反および訪問先ペアの超過移動時間を処理する場合、ここで行う設定が解析の優先順位に影響します。[低]、[中]、または [高] の値を割り当てることができます。重要度が高くなるほど、解析機能は、関連付けられたタイム ウィンドウ違反または超過移動時間を一層削減または排除しようと試みます。
タイム ウィンドウ違反
タイム ウィンドウ違反:このプロパティを使用すると、違反を招くことなく、タイム ウィンドウの条件を満たす重要度を評価することができます。タイム ウィンドウ違反は、タイム ウィンドウが閉じてから訪問先、拠点、または休憩にルートが到着した場合に発生します。この超過時間は、タイム ウィンドウの終了からルートの到着時間までの時間です。
VRP ソリューションは、選択された [タイム ウィンドウ違反] プロパティの値に従って変化します。以下に各値の意味と、各値を設定した場合に VRP ソリューションがどのように変化するかを説明します。
高 - 全体の移動時間の増大を無視して、タイム ウィンドウ違反を最小にするソリューションを検索します。全体のソリューション コストを最小にするよりも訪問先に時間どおりに到着することが重要である場合は [高] を選択します。訪問先で顧客と打ち合わせをする予定があり、遅刻して先方に迷惑をかけたくないという場合に使用します(別のオプションとして、超過がまったく許されないハード タイム ウィンドウを使用することもできます)。
配車ルートの他の制約が指定されている場合、タイム ウィンドウの期間内に立ち寄ることができない訪問先が出てくると考えられます。この場合は、[高] 設定でも違反が発生することがあります。
中 - デフォルトの設定です。タイム ウィンドウの条件を満たすことと、全体のソリューション コストを削減することのバランスを取ります。
低 - タイム ウィンドウを無視して、全体の移動時間を最小にするソリューションを検索します。タイム ウィンドウの条件を満たすことが全体のソリューション コストを削減することより重要でない場合は [低] を選択します。未処理のサービス依頼が増えている場合は、この設定を使用すると便利です。保有車両の到着が遅れて顧客に迷惑をかけることになっても、1 日にサービスを提供する訪問先の数を増やして手持ちの注文をさばくために、[低] を選択することができます。
次の 2 つの図は両方とも同じ一連の訪問先と拠点です。ただし、[タイム ウィンドウ違反] の設定値が異なるのでルートは同じではありません。左側の図は、[タイム ウィンドウ違反] の重要度を [低] に設定した場合に得られるルートを示しています。ルートは短いものの、タイム ウィンドウ違反が発生しています。[高] に設定すると、ルートはすべてのタイム ウィンドウの条件を満たします。ただし、タイム ウィンドウを持つ訪問先にサービスを最初に提供するので距離が長くなります。
超過移動時間
このプロパティを使用すると、超過移動時間の短縮の重要度を評価することができます。超過移動時間とは、訪問先ペア間を直接移動するのに必要な時間に対する超過時間です。この超過時間は、訪問先ペアへの立ち寄りの途中で、休憩を取ったり他の訪問先や拠点に移動することで発生します。
VRP ソリューションは、選択された [超過移動時間] の値に従って変化します。以下に各値の意味と、各値を設定した場合に VRP ソリューションがどのように変化するかを説明します。
- 高 - 全体の移動コストの増大を無視して、訪問先ペア間で超過移動時間が短いソリューションを検索します。訪問先ペア間で人を輸送し、乗車時間を短くしたい場合、この設定を使用すると便利です。これはタクシー サービスの特徴を示します。
- 中 - デフォルトの設定です。超過移動時間を短縮することと、全体のソリューション コストを削減することのバランスを取ります。
- 低 - 超過移動時間を無視して、全体のソリューション コストを最小にするソリューションを検索します。この設定は一般に宅配サービスで使用されます。宅配業者は人ではなく荷物を輸送するので、乗車時間について心配する必要はありません。宅配業者は [低] を使用することで、訪問先ペアに適切な順序でサービスを提供し、全体のソリューション コストを最小にすることができます。
次の 2 つの図は、両方とも同じ一連の訪問先と拠点です。ただし、[超過移動時間] の設定が異なるのでルートは同じではありません。左側の図は、[超過移動時間] の重要度を [低] に設定した場合に得られるルートを示しています。全体のルートは短いですが、第 1 の訪問先から、訪問先とペアになっている訪問先(空港)までの移動時間は長くなっています。重要度を [高] に設定すると、ルートは第 1 の訪問先と空港との間の時間を短縮し、空港から右側の訪問先への乗車時間と同じ長さに維持しています。ただし、ルートの全体のコストは増大します。
[ネットワーク ロケーション] タブ
[ネットワーク ロケーション] タブのパラメータは、ネットワーク ロケーションを検索し、そのプロパティの値を設定するのに使用されます。
配車ルート解析の実行および結果解釈
配車ルート解析レイヤの作成、必要なネットワーク解析オブジェクトの取り込み、および適切な解析プロパティの設定を行った後で配車ルート解析レイヤのソリューションを取得するには、[Network Analyst] ツールバーの [解析の実行] ボタン をクリックします。
解析の実行後に [出力形状のタイプ] プロパティを [正確な形状] に設定した場合は、ルートごとに開始拠点、訪問先、リニューアル拠点、および終了拠点を接続するネットワークに沿ってラインが描かれます。
Network Analyst ウィンドウではまた、[訪問先] クラスを更新し、すべての訪問先を、それらが割り当てられるルートごとにグループ化します。[拠点立ち寄り状況] クラスが更新され、ルートごとに起点、終点、およびリニューアル拠点を表示します。
解析時に、配車ルート解析では、[AssignmentRule] フィールドが [除外] に設定されたルートおよび [AssignmentRule] フィールドが [除外] に設定された訪問先を無視します。
配車ルート解析では次に、[時間属性] をインピーダンスとして、[距離属性](指定されている場合)を累積属性として使用し、訪問先ロケーションと拠点ロケーションのそれぞれの間で、内部で管理される起点/終点(OD)コスト マトリックスを算出します。
配車ルート解析では、拠点、休憩、およびルート リニューアルといったネットワーク解析オブジェクトのいずれかがルートにあらかじめ割り当てられている場合、それらのオブジェクトで構成される初期ソリューションを作成します。この事前割り当てを使用して有効な初期ソリューションを検索できない場合(つまり、規制に違反している場合)、解析プロセスはエラーになります。
ルート解析されない訪問先がある限り、配車ルート解析では、ルート解析されない最も経済的な訪問先を、互換性のある最適なルートに挿入しようとします。順序の再設定によりソリューションが向上する場合、解析機能はルートに割り当てられた訪問先の順序の再設定を試みます。ただし、[AssignmentRule] フィールドが [ルートと関連する順序を保持] に設定されている訪問先は対象外です。
可能な訪問先のすべてが正常にルート解析されると、配車ルート解析では、ネットワーク解析オブジェクトの適切な出力フィールドに結果を出力します。ルート解析できない訪問先がある場合、訪問先フィーチャ レイヤの [ViolatedConstraints] フィールドに制約違反が出力されます。ソリューションでルートが使用されていない場合、その出力フィールドは NULL に設定されます。
配車ルート解析の結果解釈
配車ルート解析レイヤの解析が正常に実行された後、各ルートのルート解析ソリューションを統合するには、休憩テーブル、拠点立ち寄り状況フィーチャ レイヤ、訪問先フィーチャ レイヤ、およびルート フィーチャの入力および出力フィールドを参照します。各ルートについて、[RouteName] で検索を行い、[休憩]、[拠点立ち寄り状況]、および [訪問先] の順序値を確認すれば、ルートの道程が明らかになります。ルート案内を作成して同様の道程をコンパイルすることもできます。ルート フィーチャ レイヤは、算出された各ルートのサマリを提供します。