VehicleRoutingProblem input data types for schema version One

The input data types that can be specified when performing a vehicle routing problem (VRP) analysis using the VehicleRoutingProblemSchemaVersion.One schema version are described below.

Orders

VRP 解析のルートで訪問先となる場所を 1 つ以上指定します。 1 つの訪問先は、配達 (家具の配達など)、引き取り (空港のシャトル バスによる乗客の送迎など)、または何らかのサービスや調査など (伐採作業、建物調査など) を表すことができます。

The data type supports the following fields:

FieldDescriptionData type

Name

訪問先の名前。 名前は一意でなければなりません。 名前が NULL の場合は、解析時に名前が自動的に生成されます。

String

Description

訪問先に関する説明的な情報。 訪問先に関するあらゆるテキスト情報を保持することができ、一意でなくてもかまいません。 Name フィールドに顧客 ID 番号を格納し、Description フィールドに顧客の実際の名前または住所を格納すると便利なことがあります。

String

ServiceTime

このプロパティは、ルートがネットワーク ロケーションを訪れたときの滞在時間を指定します。つまり、ネットワーク ロケーションのインピーダンス値を格納します。 0 または NULL 値は、ネットワーク ロケーションでサービス時間が必要ないことを表します。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

TimeWindowStart1

ネットワーク ロケーションの第 1 のタイム ウィンドウの開始時刻。 このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、開始時刻は設定されません。

タイム ウィンドウは、訪問先への車両の到着が許される時間帯を示すだけです。サービス時間が完了しなければならない時間帯を示すものではありません。 サービス時間を考慮に入れ、タイム ウィンドウが終了する前に出発するには、TimeWindowEnd1 フィールドから ServiceTime を減算します。

タイム ウィンドウ フィールド (TimeWindowStart1TimeWindowEnd1TimeWindowStart2、および TimeWindowEnd2) には、時刻のみを示す値を指定することも、日付と時刻を示す値を指定することもできます。 TimeWindowStart1 などの時間フィールドに時刻のみを示す値 (たとえば、午前 8:00) を指定した場合、日付は解析に対して設定されたデフォルトの日付と見なされます。 日付と時刻の値 (たとえば、2010 年 7 月 11 日、午前 8:00) を指定すると、複数日にわたるタイム ウィンドウを設定することができます。

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. If you want to specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

TimeWindowEnd1

ネットワーク ロケーションの第 1 のタイム ウィンドウの終了時刻。 このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、終了時刻は設定されません。

Date

TimeWindowStart2

ネットワーク ロケーションの第 2 のタイム ウィンドウの開始時刻。 このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、第 2 のタイム ウィンドウは設定されません。

TimeWindowStart1 および TimeWindowEnd1 フィールドで第 1 のタイム ウィンドウを NULL に指定した場合は、第 2 のタイム ウィンドウも NULL にする必要があります。

両方のタイム ウィンドウに NULL 以外の値を指定する場合、これらのタイム ウィンドウを重なるように指定することはできません。 また、第 2 のタイム ウィンドウは第 1 のタイム ウィンドウよりも後になるように設定する必要があります。

Date

TimeWindowEnd2

ネットワーク ロケーションの第 2 のタイム ウィンドウの終了時刻。 このフィールドは、NULL 値を含むことができます。

TimeWindowStart2TimeWindowEnd2 がいずれも NULL の場合、第 2 のタイム ウィンドウは設定されません。

TimeWindowStart2 が NULL 以外で TimeWindowEnd2 が NULL の場合、第 2 のタイム ウィンドウの開始時間は設定されますが、終了時間は設定されません。 これは有効な設定です。

Date

MaxViolationTime1

到着時刻がタイム ウィンドウの終了よりも後になった場合は、タイム ウィンドウが超過されたと見なされます。 このフィールドでは、訪問先の第 1 のタイム ウィンドウについて最大許容超過時間を指定します。 このフィールドは値としてゼロを含むことはできますが、負の値を含むことはできません。 値がゼロの場合、訪問先の第 1 のタイム ウィンドウにおいてタイム ウィンドウ違反は許されません。つまり、第 1 のタイム ウィンドウは条件が厳しいということです。 一方、NULL 値の場合、許容超過時間は無制限です。 ゼロ以外の値は、最大遅延時間を指定します。たとえば、第 1 のタイム ウィンドウの終了時刻から最大で 30 分遅れて到着することが許されます。

The unit for this field value is specified by the timeUnits property of the analysis object.

解析によってタイム ウィンドウ違反を追跡し、重み付けすることが可能です。 したがって、次のいずれかを行うように VRP 解析機能に指示することができます。

  • 保有車両の移動コストの増大を無視して、全体の超過時間を最小にする。
  • 全体の超過時間と移動コストのバランスをとるソリューションを検索する。
  • 全体の超過時間を無視して、保有車両の移動コストを最小にする。

By assigning an importance level for the timeWindowFactor property of the analysis object, you are essentially choosing one of these options. In any case, however, the solver will return an error if the value set for MaxViolationTime1 is surpassed.

Double

MaxViolationTime2

訪問先の第 2 のタイム ウィンドウの最大許容超過時間。 このフィールドは、MaxViolationTime1 フィールドと同様です。

Double

InboundArriveTime

訪問先に配達されるアイテムが開始拠点で準備される時間を定義します。

このインバウンド到着時間がルートの最新の開始時間値より前の場合のみ、訪問先をルートに割り当てることができます。このため、アイテムを積み込む準備ができるまで、拠点を出発することはできません。

このフィールドは、インバウンド到着後の積み替えに関わるシナリオのモデリングに役立ちます。 たとえば、訪問先のジョブで、現在拠点にない特別なマテリアルが必要であるとします。 このマテリアルは、別のロケーションから発送され、午前 11 時に拠点に到着する予定です。マテリアルの到着前に出発するルートが訪問先に割り当てられないようにするために、訪問先のインバウンド到着時間を午前 11 時に設定します。 特別なマテリアルが午前 11 時に到着し、車両に積み込まれ、車両が拠点から出発して割り当てられた訪問先に移動します。

Notes:

  • サービス時間を含むルートの開始時間は、インバウンド到着時間の後に設定する必要があります。 訪問先のインバウンド到着時間の前にルートが開始する場合、訪問先をそのルートに割り当てることはできません。 ルートの開始拠点のサービス時間がインバウンド到着時間の後まで続く場合でも、その割り当ては無効になります。

  • この時間フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。 時刻のみを示す値 (たとえば、11:00 AM) が設定されている場合、日付は解析に対して設定されたデフォルトの日付と見なされます。 ただし、拠点、ルート、訪問先、または休憩の時間フィールドに時刻を含む日付が指定されている場合、デフォルトの日付は無視されます。 その場合、それらすべてのフィールドを日時 (たとえば、7/11/2015 11:00 AM) で指定します。

  • VRP 解析では、DeliveryQuantities フィールドの値に関係なく、InboundArriveTime を優先します。

  • アウトバウンド出発時間も指定されている場合、その時間値はインバウンド到着時間より後である必要があります。

Date

OutboundDepartTime

訪問先で積み込むアイテムが終了拠点に到着しなくてはならない時間を定義します。

指定したアウトバウンド出発時間より前にルートが訪問先に移動でき、終了拠点に到着できる場合のみ、訪問先をルートに割り当てることができます。

このフィールドは、アウトバウンド出発時刻の積み替えに関わるシナリオのモデリングに役立ちます。 たとえば、発送会社が配達トラックを使って訪問先からパッケージを積み込み、拠点に運び、それを最終目的地へのルートの途中で、別の施設に送るとします。 毎日、午後 3 時に、セミトレーラーが拠点に立ち寄り、優先度の高いパッケージを積み込み、それを中央処理ステーションに直接輸送します。 発送会社は、優先度の高いパッケージの輸送が次の日の午後 3 時まで遅れないように、配達トラックで訪問先から優先度の高いパッケージを積み込み、それを締め切りの午後 3 時より前に拠点に輸送しようと努めます。 このために、アウトバウンド出発時間を午後 3 時に設定します。

Notes:

  • サービス時間を含むルートの終了時間は、アウトバウンド出発時間より前である必要があります。 ルートが拠点に到着しても、訪問先のアウトバウンド出発時間の前に、終了拠点のサービス時間が完了していない場合、訪問先をそのルートに割り当てることはできません。

  • この時間フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。 時刻のみを示す値 (たとえば、11:00 AM) が設定されている場合、日付は解析に対して設定されたデフォルトの日付と見なされます。 ただし、拠点、ルート、訪問先、または休憩の時間フィールドに日時が含まれている場合、デフォルトの日付は無視されます。 その場合、それらすべてのフィールドを日時 (たとえば、7/11/2015 11:00 AM) で指定します。

  • VRP 解析では、PickupQuantities フィールドの値に関係なく、OutboundDepartTime を優先します。

  • インバウンド到着時間も指定されている場合、その時間値はアウトバウンド出発時間より前である必要があります。

Date

DeliveryQuantities

配達される荷物のサイズ。 重量、体積、数量など、任意の計測単位で容量を指定できます。 重量と体積など、複数の計測方法でサイズを指定することもできます。

単位を指定しないで配達数量を入力します。 たとえば、ある訪問先に 300 ポンドの物品を配達する必要がある場合は、「300」と入力します。 値がポンド単位であることを認識しておく必要があります。

複数の計測方法を記録する場合、数値をスペースで区切ります。 たとえば、配達について重量と体積を記録する場合、重量が 2,000 ポンド、体積が 100 立法フィートであれば、「2000 100」と入力します。 この場合も、単位がポンドと立方フィートであることを覚えておく必要があります。 また、入力した値と対応する単位の順序も覚えておく必要があります。

ルートの Capacities と訪問先の DeliveryQuantities および PickupQuantities が同じ方法で指定されていることを確認します。つまり、これらの値には同じ単位を使用する必要があります。 複数のディメンションを使用する場合、ディメンションはすべてのパラメーターに対して同じ順序でリストする必要があります。 たとえば、DeliveryQuantities に、重量 (ポンド) と体積 (立方フィート) を順に指定した場合は、ルートの容量と訪問先の引き取り数量も同じ方法で (ポンド単位の重量、立方フィート単位の体積の順に) 指定する必要があります。 単位が混在したり順序が異なったりすると正しい結果が得られません。この場合、警告メッセージは表示されません。

空の文字列または NULL 値は、すべての計測方法でサイズがゼロであることと同じです。 積載制限 (または計測方法でのサイズ) の総数に対して文字列内の値の数が不足している場合、残りの値はゼロと見なされます。 配送数量を負の値とすることはできません。

String

PickupQuantities

引き取る荷物のサイズ。 重量、体積、数量など、任意の計測単位で容量を指定できます。 重量と体積など、複数の計測方法でサイズを指定することもできます。 ただし、負の値は指定できません。 このフィールドは、訪問先の DeliveryQuantities フィールドと同様です。

交換訪問の場合、訪問先は配送数量と引き取り数量の両方を持つことができます。

String

Revenue

訪問先が解析に含まれる場合に生成される収入。 このフィールドは NULL 値 (収入がゼロであることを示す) を含むことができますが、負の値を含むことはできません。

収入は、目的関数の値を最適化する際に算入されますが、ソリューションの運用コストには組み込まれません。つまり、ルートの TotalCost フィールドの出力に収入が取り込まれることはありません。 ただし、収入によって、訪問先へのサービス提供の重要度が相対的に重み付けされます。

Double

SpecialtyNames

スペース区切りの文字列であり、訪問先が必要とする特別指定の名前が含まれます。 NULL 値は、訪問先が特別指定を必要としていないことを示しています。

訪問先クラスおよびルート クラスに表示されるどの特別指定の綴りも、配車ルート (VRP) 解析でそれらを一緒にリンクできるようにするために、正確に一致している必要があります。

特別指定の説明とその機能を示す例として、芝の手入れと庭木の剪定を行う造園会社を考えます。この会社の一部の訪問先では、背の高い木を剪定するために高所作業車が必要です。 これらの訪問先の SpecialtyNames フィールドに「BucketTruck」と入力して、特別指定があることを示します。 SpecialtyNames 他の訪問先では NULL のままにします。 同様に、油圧ブームを装備したトラックで移動するルートの SpecialtyNames フィールドにも「BucketTruck」と入力します。 他のルートのフィールドは NULL のままにします。 VRP 解析を実行すると、特別指定のない訪問先は任意のルートに割り当てられますが、高所作業車が必要な訪問先は、特別指定が設定されたルートにだけ割り当てられます。

String

AssignmentRule

訪問先をルートに割り当てるためのルールを指定します。 このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (含まない) - 後続の解析から訪問先を除外します。
  • 1 (ルートと関連する順序を保持) - 解析処理において、解析機能は訪問先を、あらかじめ割り当てられたルートにあらかじめ割り当てられた相対的な順序で常に割り当てる必要があります。 この割り当てルールが守られなかった場合は、訪問先違反が発生します。 この設定では、相対的な順序は保持されますが、絶対的な順序は保持されません。 例として、A と B の 2 つの訪問先を考えます。 これらの訪問先の順序の値は、それぞれ 2 と 3 です。 各訪問先の AssignmentRule フィールドの値を「ルートと関連する順序を保持」に設定した場合、他の訪問先、休憩地点、および拠点立ち寄りを A と B の前、間、または後に配置できるため、解析後に A と B の実際の順序の値が変化することがあります。 ただし、B を A の前にすることはできません。
  • 2 (ルートを保持) - 解析処理において、解析機能はあらかじめ割り当てられたルートに訪問先を常に割り当てる必要があります。 順序を保持できてもできなくても、有効な順序を設定する必要があります。 訪問先を指定のルートに割り当てできない場合は、訪問先違反が発生します。
  • 3 (オーバーライド) - 解析処理において、解析機能は、訪問先に対するルートおよび順序の事前割り当てを保持しようとします。 ただし、目的関数の全体の値を最小化するのに役立つ場合は、新規のルートまたは順序を訪問先に対して割り当てることができます。 これがデフォルト値です。
  • 4 (最初にアンカー) - 解析の動作において、解析機能は、訪問先に対するルートおよび順序の事前割り当て (存在する場合) を無視します。 これは、目的関数の全体の値を最小化するために、ルートを訪問先に割り当て、ルートの最初の訪問先にします。
  • 5 (最後にアンカー) - 解析の動作において、解析機能は、訪問先に対するルートおよび順序の事前割り当て (存在する場合) を無視します。 これは、目的関数の全体の値を最小化するために、ルートを訪問先に割り当て、ルートの最後の訪問先にします。

このフィールドは、NULL 値を含むことができません。

Integer

RouteName

訪問先が割り当てられるルートの名前。

このフィールドを使用し、訪問先を特定のルートにあらかじめ割り当てておきます。 このフィールドは NULL 値を含むことができます。NULL 値の場合、訪問先はどのルートにもあらかじめ割り当てられず、解析機能が訪問先にとって最良のルート割り当てを決定します。 このフィールドを NULL に設定した場合は、Sequence フィールドも NULL に設定する必要があります。

解析の後、訪問先のルートが解析されると、RouteName フィールドには訪問先が割り当てられるルートの名前が入ります。

String

Sequence

このフィールドは、訪問先に割り当てられたルートでの訪問先の順序を示します。

このフィールドを使用して、ルート上での訪問先の相対的な順序を指定します。 このフィールドは NULL 値を含むことができます。NULL 値は、訪問先をルート上のどこにでも配置できることを示します。 NULL 値にする場合は、RouteName の値も NULL 値でなければなりません。

順序を示す入力値は、正の値であり、各ルートに対して一意です (リニューアル拠点立ち寄り状況、訪問先、および休憩の間で共有される)。ただし、1 から開始する必要も連続している必要もありません。

Integer

CurbApproach

車両が訪問先に到着する方向および訪問先から出発する方向を指定します。 このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (車両の両側) - 車両は訪問先に対してどちらの方向でも到着および出発できます。したがって、インシデントでの U ターンは許可されます。 この設定は、車両が訪問先で方向転換することが可能かつ現実的である場合に選択できます。 これは、道路の幅と交通量に基づいて決定されたり、訪問先に車両が進入して方向転換できる駐車場があるかどうかに応じて決定されたりします。
  • 1 (車両の右側) - 車両が訪問先に到着するとき、および訪問先から出発するときに、アプローチを車両の右側に制限します。 U ターンは許可されません。 これは、通常、バス停が右側にある状態で到着する必要があるバスなどの車両に使用されます。
  • 2 (車両の左側) - 車両が訪問先に到着するとき、および訪問先から出発するときに、アプローチを車両の左側に制限します。 U ターンは許可されません。 これは、通常、バス停が左側にある状態で到着する必要があるバスなどの車両に使用されます。
  • 3 (U ターンなし) - 車両が訪問先に到着するときはどちらの側でも到着できますが、方向転換せずに出発する必要があります。

CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。 はじめに、訪問先が車両の左側にあるとします。 これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。 右側通行か左側通行かに応じて異なるのは、訪問先に 2 つの方向のどちらから到着するか、つまり、車両の右側と左側のどちらで到着するかということです。 たとえば、訪問先に到着するときに、車両と訪問先の間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。

Short Integer

Bearing

ポイントが移動している方向。 単位は度で、北を基準に時計回りに測定されます。 このフィールドは BearingTol フィールドと組み合わせて使用されます。

通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。 歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。

このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。 方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。

方位と方位許容値の詳細

Double

BearingTol

方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。 Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。

単位は度で、デフォルト値は 30 です。 値は 0 より大きく 180 未満でなければなりません。 値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。

方位と方位許容値の詳細

Double

NavLatency

このフィールドは、Bearing フィールドと BearingTol フィールドの値が存在する場合にのみ、解析処理で使用されます。ただし、BearingBearingTol の値が存在する場合でも、NavLatency フィールド値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想コストを示します。

The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object.

Double

Network location fields

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge

これらのプロパティを組み合わせて、オブジェクトが配置されているネットワーク上のポイントを表します。

ネットワーク上での入力の特定の詳細

Depots

配車ルートの拠点を 1 つ以上指定します。 拠点とは、車両が就業日の初めに出発し、就業日の終わりに戻ってくる場所です。 拠点では、車両への荷積みが行われるか (配達の場合)、車両からの荷降ろしが行われます (引き取りの場合)。 拠点は、場合によっては、リニューアル ロケーションとしての役割を果たすこともできます。これにより、車両は荷を降ろしたり再度積み込んだりして、配達と引き取りを引き続き行うことができます。 拠点には、絶対的なタイム ウィンドウで指定される開始時刻と終了時刻があります。 車両はこのタイム ウィンドウ外の時間に拠点に到着することは許されません。

The data type supports the following fields:

FieldDescriptionData type

Name

拠点の名前。 ルートの StartDepotName フィールドと EndDepotName フィールドは、ここで指定した名前を参照します。 ルート リニューアルを使用する場合は、このレコード セットもこれを参照します。

拠点の名前は大文字と小文字を区別しませんが、空白以外の一意の値にする必要があります。

String

Description

拠点の場所に関する説明的な情報。 あらゆるテキスト情報を保持することができ、一意でなくてもかまいません。

たとえば、拠点が存在する領域や、拠点の住所および電話番号をメモしておきたい場合、このような情報は Name フィールドではなく、このフィールドに入力できます。

String

TimeWindowStart1

ネットワーク ロケーションの第 1 のタイム ウィンドウの開始時刻。 このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、開始時刻は設定されません。

タイム ウィンドウ フィールド (TimeWindowStart1TimeWindowEnd1TimeWindowStart2、および TimeWindowEnd2) は、時刻のみを示す値を指定することも、日付と時刻を示す値を指定することもできます。 TimeWindowStart1 などの時間フィールドに時刻のみを示す値 (たとえば、午前 8:00) を指定した場合、日付は解析に対して設定されたデフォルトの日付と見なされます。 日付と時刻の値 (たとえば、2010 年 7 月 11 日、午前 8:00) を指定すると、複数日にわたるタイム ウィンドウを設定することができます。

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. If you want to specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

TimeWindowEnd1

ネットワーク ロケーションの第 1 のタイム ウィンドウの終了時刻。 このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、終了時刻は設定されません。

Date

TimeWindowStart2

ネットワーク ロケーションの第 2 のタイム ウィンドウの開始時刻。 このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、第 2 のタイム ウィンドウは設定されません。

TimeWindowStart1 および TimeWindowEnd1 フィールドで第 1 のタイム ウィンドウを NULL に指定した場合は、第 2 のタイム ウィンドウも NULL にする必要があります。

両方のタイム ウィンドウに NULL 以外の値を指定する場合、これらのタイム ウィンドウを重なるように指定することはできません。 また、第 2 のタイム ウィンドウは第 1 のタイム ウィンドウよりも後になるように設定する必要があります。

Date

TimeWindowEnd2

ネットワーク ロケーションの第 2 のタイム ウィンドウの終了時刻。 このフィールドは、NULL 値を含むことができます。

TimeWindowStart2TimeWindowEnd2 がいずれも NULL の場合、第 2 のタイム ウィンドウは設定されません。

TimeWindowStart2 が NULL 以外で TimeWindowEnd2 が NULL の場合、第 2 のタイム ウィンドウの開始時間は設定されますが、終了時間は設定されません。 これは有効な設定です。

Date

CurbApproach

車両が拠点に到着する方向および拠点から出発する方向を指定します。 フィールドには、次に示すいずれかの整数値を指定します (括弧内の名前ではなく、数値コードを使用してください)。

  • 0 (車両の両側) - 車両は拠点に対してどちらの方向でも到着および出発できます。したがって、インシデントでの U ターンは許可されます。 この設定は、車両が拠点で方向転換することが可能かつ現実的である場合に選択できます。 これは、道路の幅と交通量に基づいて決定されたり、拠点に車両が進入して方向転換できる駐車場があるかどうかに応じて決定されたりします。
  • 1 (車両の右側) - 車両が拠点に到着するとき、および拠点から出発するときに、アプローチを車両の右側に制限します。 U ターンは許可されません。 これは、通常、バス停が右側にある状態で到着する必要があるバスなどの車両に使用されます。
  • 2 (車両の左側) - 車両が拠点に到着するとき、および拠点から出発するときに、アプローチを車両の左側に制限します。 U ターンは許可されません。 これは、通常、バス停が左側にある状態で到着する必要があるバスなどの車両に使用されます。
  • 3 (U ターンなし) - 車両が拠点に到着するときはどちらの側でも到着できますが、方向転換せずに出発する必要があります。

CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。 はじめに、拠点が車両の左側にあるとします。 これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。 右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから拠点に到着するかです。つまり、結局のところ車両の右側または左側になります。 たとえば、拠点に到着するときに、車両と拠点の間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。

Integer

Bearing

ポイントが移動している方向。 単位は度で、北を基準に時計回りに測定されます。 このフィールドは BearingTol フィールドと組み合わせて使用されます。

通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。 歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。

このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。 方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。

方位と方位許容値の詳細

Double

BearingTol

方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。 Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。

単位は度で、デフォルト値は 30 です。 値は 0 より大きく 180 未満でなければなりません。 値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。

方位と方位許容値の詳細

Double

NavLatency

このフィールドは、Bearing フィールドと BearingTol フィールドの値が存在する場合にのみ、解析処理で使用されます。ただし、BearingBearingTol の値が存在する場合でも、NavLatency フィールド値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想コストを示します。

The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object.

Double

Network location fields

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge

これらのプロパティを組み合わせて、オブジェクトが配置されているネットワーク上のポイントを表します。

ネットワーク上での入力の特定の詳細

Routes

車両や運転手の特性を示す 1 つ以上のルートを指定します。 ルートには、開始拠点と終了拠点のサービス時間、固定または可変の開始時間、時間ベースの運用コスト、距離ベースの運用コスト、複数の容量、運転手の就業日に関するさまざまな制約などを含めることができます。

注意:

Unlike other data types, such as Orders and Depots, this data type is a table and does not include any location information.

The data type supports the following fields:

FieldDescriptionData type

Name

ルートの名前。 名前は一意でなければなりません。

フィールドが NULL 値の場合は、解析時に一意の名前が生成されます。このため、ほとんどの場合、値の入力は必須ではありません。 ただし、ルートに事前に割り当てられている休憩、ルート リニューアル、ルート ゾーン、または訪問先が解析に含まれる場合、名前の入力は必須です。これは、このような場合にルート名が外部キーとして使用されるためです。 ルート名の大文字と小文字は区別されません。

String

Description

The descriptive information about the route. This can contain any textual information and does not need to be unique.

String

StartDepotName

ルートの開始拠点の名前。 このフィールドは、拠点の Name フィールドに対する外部キーです。

StartDepotName の値が NULL の場合、ルートは指定されている最初の訪問先から始まります。 開始拠点を省略するのは、車両の出発点が不明か、解析に関係ない場合に有効です。 ただし、StartDepotName が NULL の場合に、EndDepotName も NULL にすることはできません。

訪問先/拠点が複数のタイム ゾーンにある場合、仮想の開始拠点は使用できません。

ルートが配達を行っていて、StartDepotName が NULL の場合、荷物はルートの開始前に仮想拠点で車両に積み込まれるものと想定されます。 リニューアル拠点を持たないルートの場合、その配達訪問先 (訪問先の DeliveryQuantities がゼロ以外の値) の荷物は、開始拠点または仮想拠点で積み込まれます。 リニューアル拠点を持つルートの場合、最初のリニューアル拠点の手前にある配達訪問先の荷物のみが開始拠点または仮想拠点で積み込まれます。

String

EndDepotName

ルートの終了拠点の名前。 このフィールドは、拠点の Name フィールドに対する外部キーです。

String

StartDepotServiceTime

開始拠点でのサービス時間。 このフィールドを使用して、車両に荷物を積み込むのに要する時間をモデリングします。 このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。

The unit for this field value is specified by the timeUnits property of the analysis object.

開始拠点と終了拠点でのサービス時間は固定値であるため (StartDepotServiceTime および EndDepotServiceTime フィールドの値で指定)、ルートの実際の積み込み時間は考慮されません。 たとえば、開始拠点で車両への積み込みにかかる時間は、訪問先のサイズによって異なります。 拠点のサービス時間に満載の積荷または平均的な積荷に応じた値を割り当てるか、独自に見積もりを行います。

Double

EndDepotServiceTime

終了拠点でのサービス時間。 このフィールドを使用して、車両から荷物を降ろすのに要する時間をモデリングします。 このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。

The unit for this field value is specified by the timeUnits property of the analysis object.

開始拠点と終了拠点でのサービス時間は固定値であるため (StartDepotServiceTime フィールドと EndDepotServiceTime フィールドの値で指定)、ルートの実際の積み込み時間は考慮されません。 たとえば、開始拠点で車両への積み込みにかかる時間は、訪問先のサイズによって異なります。 拠点のサービス時間に満載の積荷または平均的な積荷に応じた値を割り当てるか、独自に見積もりを行います。

Double

EarliestStartTime

ルートにおいて許容される最も早い開始時刻。 解析では、このフィールドを開始拠点のタイム ウィンドウと組み合わせて使用し、ルートの実現可能な開始時刻を決定します。

このフィールドは NULL 値を含むことができません。時刻のみを示す値のデフォルト値は午前 8 時となります。 デフォルト値は、解析に対して設定されたデフォルトの日付の午前 8 時と見なされます。

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. If you want to specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

LatestStartTime

ルートにおいて許容される最も遅い開始時刻。

このフィールドは NULL 値を含むことができません。時刻のみを示す値のデフォルト値は午前 10 時となります。 デフォルト値は、解析に対して設定されたデフォルトの日付の午前 10 時と見なされます。

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. If you want to specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

ArriveDepartDelay

このフィールドには、車両を通常の移動速度まで加速し、停止するまで減速し、ネットワークに出入りする (たとえば、駐車場に出入りする) のに必要な移動時間が格納されます。 ArriveDepartDelay 値を含めることにより、VRP 解析で、物理的に一致する訪問先にサービスを提供するために多くのルートを送り出すことがなくなります。

このプロパティのコストは、一致しない訪問先、拠点、およびルート リニューアルへの訪問の間に発生します。 たとえば、ルートが拠点から出発し、最初の訪問先を訪問したときに、到着と出発の遅延の合計が移動時間に追加されます。 最初の訪問先から 2 番目の訪問先まで移動するときにも同じことが起こります。 2 番目と 3 番目の訪問先が一致している場合、車両は移動する必要がないため、これらの間に ArriveDepartDelay 値は追加されません。 ルートがルート リニューアルに移動する場合、この値が再び移動時間に追加されます。

休憩の場合、車両は減速して停止し、後で加速する必要がありますが、VRP 解析では ArriveDepartDelay 値を加算できません。 これは、ルートが訪問先を離れ、休憩のために停止し、さらに次の訪問先に向かった場合に、到着と出発の遅延は 2 度ではなく、1 度しか追加されないことを意味します。

たとえば、1 つの高層ビル内に 5 つの一致する訪問先があり、それらが 3 つの異なるルートでサービスを提供されているとします。 この場合は、到着と出発の遅延が 3 回発生します。つまり、3 人の運転手がそれぞれ駐車場所を見つけ、同じ建物に入ることが必要になります。 しかし、これらの訪問先に 1 つのルートでサービスを提供できれば、駐車して建物に入る運転手は 1 人だけになり、到着と出発の遅延の発生も 1 回だけになります。 VRP 解析ではコストの最小化が図られるため、到着と出発の遅延を抑えるために、単一ルートのオプションが特定されます (特別指定、タイム ウィンドウ、積載制限などの制約によって、複数のルートが必要になる場合があります)。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

Capacities

車両の最大容量。 重量、体積、数量など、任意の計測単位で容量を指定できます。 重量と体積など、複数の計測方法でサイズを指定することもできます。

単位を指定しないで容量を入力します。 たとえば、車両の最大積載量が 40,000 ポンドである場合は、「40000」と入力します。 値がポンド単位であることを覚えておく必要があります。

複数の計測方法を記録する場合、数値をスペースで区切ります。 たとえば、重量と体積の両方を記録する場合、車両の最大積載重量が 40,000 ポンド、最大積載体積が 2,000 立法フィートであれば、Capacities 値として「40000 2000」と入力します。 この場合も、単位を覚えておく必要があります。 また、入力した値と対応する単位の順序も覚えておく必要があります。この場合は、ポンド、立方フィートの順です。

単位と単位の順序を覚えておくことは、次の 2 つの理由から重要です。1 つ目は、後で情報を再解釈できるようにするため、2 つ目は、訪問先の DeliveryQuantities フィールドと PickupQuantities フィールドの値を正しく入力できるようにするためです。 ルートが過積載にならないようにするために、配車ルート (VRP) 解析では、CapacitiesDeliveryQuantities、および PickupQuantities が同時に参照されるということに注意する必要があります。 単位をフィールドに入力することはできず、VRP ツールは単位変換を実行できません。 値が正しく解釈されるようにするために、同じ単位および同じ単位の順序を使用して 3 つのフィールドに値を入力する必要があります。 3 つのフィールドのいずれかの単位または順序が異なると、正しい結果が得られません。この場合、警告メッセージは表示されません。 事前に標準の単位と単位の順序を設定しておくこと、また、これら 3 つのフィールドの値を入力する度に単位と単位の順序を参照することをお勧めします。

空の文字列または NULL 値は、すべての数量がゼロであることを示します。 積載制限を負の値とすることはできません。

訪問先の DeliveryQuantities フィールドまたは PickupQuantities フィールドに対して Capacities フィールド内の値の数が不足している場合、残りの値はゼロと見なされます。

VRP 解析では、簡単なブール テストを実行するだけで、積載制限を超過したかを確認できます。 ルートの積載制限値が運送する合計数量以上である場合、車両に積荷が収まると見なされます。 ただし、積荷および車両の実際の形状によっては、この判断は正しくない可能性があります。 たとえば、VRP 解析では、1,000 立方フィートの球体を、幅が 8 フィートで容積が 1,000 立方フィートのトラックに収容することができます。 しかし、実際には、球体の直径は 12.6 フィートであり、8 フィート幅のトラックに球体を収容することはできません。

String

FixedCost

ルートがソリューションで使用される (つまり、訪問先がソリューションに割り当てられている) 場合に限り適用される金銭上の固定コスト。 このフィールドは NULL 値を含むことができます。NULL 値は固定コストがゼロであることを示します。 このコストは、ルートの合計運用コストの一部です。

Double

CostPerUnitTime

合計ルート所要時間 (移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待機時間も含む) に対して作業の単位時間ごとに適用される金銭上のコスト。 このフィールドは NULL 値を含むことができず、デフォルト値は 1.0 となります。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

CostPerUnitDistance

ルート長 (合計移動距離) に対して (移動距離の単位ごとに) 適用される金銭上のコスト。 このフィールドは NULL 値を含むことができます。NULL 値はコストがゼロであることを示します。

The unit for this field value is specified by the distanceUnits property of the analysis object.

Double

OvertimeStartTime

規定労働時間の長さで、この時間を超過すると規定外労働時間の計算が開始されます。 このフィールドは NULL 値を含むことができます。NULL 値は規定外労働時間が適用されないことを示します。

The unit for this field value is specified by the timeUnits property of the analysis object.

たとえば、合計ルート所要時間が 8 時間を上回るときに、運転手に規定外労働賃金を支払う必要がある場合は、OvertimeStartTime に「480」(8 時間 × 60 分) と指定し、時間単位を [分] に設定します。

Double

CostPerUnitOvertime

規定外労働時間の単位時間ごとに適用される金銭上のコスト。 このフィールドには NULL 値を入力することができます。NULL 値は、CostPerUnitOvertime の値が CostPerUnitTime の値と同じであることを示します。

Double

MaxOrderCount

ルートに組み込むことができる訪問先の最大数。 このフィールドは NULL 値を含むことができません。デフォルト値は 30 となります。

Integer

MaxTotalTime

ルートの最大許容所要時間。 ルートの所要時間には、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。 このフィールドは NULL 値を含むことができます。NULL 値はルートの所要時間に制約がないことを示します。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

MaxTotalTravelTime

ルートの最大許容移動時間。 移動時間に含まれるのはネットワークの走行に費やされた時間だけで、サービス時間または待ち時間は含まれません。

このフィールドは NULL 値を含むことができます。NULL 値は最大許容移動時間に制約がないことを示します。 このフィールドの値を MaxTotalTime フィールドの値よりも大きくしてはなりません。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

MaxTotalDistance

ルートへの最大許容移動距離。

The unit for this field value is specified by the distanceUnits property of the analysis object.

このフィールドは NULL 値を含むことができます。NULL 値は最大許容移動距離に制約がないことを示します。

Double

SpecialtyNames

スペース区切りの文字列であり、ルートがサポートする特別指定の名前が含められます。 NULL 値は、ルートが特別指定をサポートしていないことを示します。

このフィールドは、訪問先の SpecialtyNames フィールドに対する外部キーです。

特別指定の説明とその機能を示す例として、芝の手入れと庭木の剪定を行う造園会社を考えます。この会社の一部の訪問先では、背の高い木を剪定するために高所作業車が必要です。 これらの訪問先の SpecialtyNames フィールドに「BucketTruck」と入力して、特別指定があることを示します。 SpecialtyNames 他の訪問先では NULL のままにします。 同様に、油圧ブームを装備したトラックで移動するルートの SpecialtyNames フィールドにも「BucketTruck」と入力します。 他のルートのフィールドは NULL のままにします。 VRP 解析を実行すると、特別指定のない訪問先は任意のルートに割り当てられますが、高所作業車が必要な訪問先は、特別指定が設定されたルートにだけ割り当てられます。

String

AssignmentRule

問題の解決時にルートを使用できるかどうかを指定します。 このフィールドは、次に示す値のドメインによって制約されます (括弧内の名前ではなく、数値コードを使用してください)。

  • 1 (含む) - ルートは解析処理に含まれます。 これがデフォルト値です。
  • 2 (含まない) - ルートは解析処理に含まれません。

Integer

Breaks

特定の配車ルート解析のルートについての休憩時間や休憩を指定します。 休憩は、厳密に 1 つのルートに関連付けられ、訪問先にサービスを提供した後、訪問先へのルート途中、または訪問先にサービスを提供する前に取ることができます。 休憩には開始時間と継続時間があり、休憩中の賃金が運転手に支払われる場合もあれば、そうでない場合もあります。 休憩の開始の設定には、タイム ウィンドウ、最大移動時間、または最大労働時間という 3 つのオプションがあります。

Unlike other data types, such as Orders or Depots, this data type is a table and does not include any location information.

The data type supports the following fields:

FieldDescriptionData type

RouteName

休憩を追加するルートの名前。 休憩は 1 つのルートだけに割り当てられますが、多くの休憩を同じルートに割り当てることができます。

このフィールドは、ルートの Name フィールドに対する外部キーであるため、NULL 値を指定することができません。

String

Precedence

優先順位値は、特定のルートの休憩を順序付けします。 優先順位値が 1 の休憩は、2 の休憩よりも前に取られ、以降の休憩も優先順位値の順番に取られます。

タイム ウィンドウか、最大移動時間か、最大労働時間かにかかわりなく、すべての休暇が優先順位値を持たなければなりません。

Integer

ServiceTime

休憩期間の長さ。 このフィールドは、NULL 値を含むことができません。 デフォルト値は 60 です。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

TimeWindowStart

休憩のタイム ウィンドウの開始時間。 開始時間と終了時間の両方を指定する必要があります。

このフィールドが値を持つ場合、MaxTravelTimeBetweenBreaks フィールドと MaxCumulWorkTime フィールドの値は NULL でなければなりません。また、解析対象の他のすべての休憩でも、MaxTravelTimeBetweenBreaksMaxCumulWorkTime の値を NULL にする必要があります。

ルートにタイム ウィンドウが重なった複数の休憩があると、解析時にエラーになります。

休憩のタイム ウィンドウ フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。 TimeWindowStart などの時間フィールドが時刻のみを示す値 (たとえば、午後 12:00) である場合、日付は [default_date] パラメーターに指定された日付と見なされます。 日時を示す値 (たとえば、2012 年 11 月 7 日、午後 12:00) を使用すると、複数日にわたってタイム ウィンドウを指定することができます。 これは、午前 0 時前後のどこかで休憩を取る必要がある場合に有用です。

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. If you want to specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

TimeWindowEnd

休憩のタイム ウィンドウの終了時間。 開始時間と終了時間の両方を指定する必要があります。

このフィールドが値を持つ場合、MaxTravelTimeBetweenBreaks フィールドと MaxCumulWorkTime フィールドの値は NULL でなければなりません。また、解析対象の他のすべての休憩でも、MaxTravelTimeBetweenBreaksMaxCumulWorkTime の値を NULL にする必要があります。

The value for this attribute can be specified using a datetime Python object, such as datetime.datetime(2019, 5, 11, 8, 30, 0), which represents Saturday May 11 2019 8:30:00 AM. If you want to specify a time-only value, datetime.time(8, 30, 0) represents 8:30 AM on the default date that is set using the defaultDate property.

The time zone for the value is specified by the timeZoneForTimeFields property of the analysis object.

Date

MaxViolationTime

このフィールドでは、タイム ウィンドウによる休憩について最大許容超過時間を指定します。 到着時刻がこの時間の範囲を超えている場合、タイム ウィンドウが超過されたと見なされます。

値がゼロの場合、タイム ウィンドウのどのような超過も許されません。つまり、タイム ウィンドウは条件が厳しい (ハード) ということです。 ゼロ以外の値は最大遅延時間の指定を意味します。 たとえば、タイム ウィンドウの終了時刻から最大で 30 分遅れて休憩を開始することができますが、この遅延時間には、[タイム ウィンドウ違反の重要度] パラメーターに従ってペナルティが適用されます。

このプロパティには NULL を指定できます。 TimeWindowStartTimeWindowEnd が NULL 値の場合、許容超過時間は無制限になります。 MaxTravelTimeBetweenBreaks または MaxCumulWorkTime に値が設定されている場合、MaxViolationTime は NULL でなければなりません。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

MaxTravelTimeBetweenBreaks

休憩を取る前に累積できる移動時間の最大値。 移動時間は前の休憩の終了時か、休憩がまだ取られていないときはルートの開始時から累積されます。

これがルートの最後の休憩である場合、MaxTravelTimeBetweenBreaks は最後の休憩から終了拠点までに累積可能な最大移動時間を示すことにもなります。

このフィールドの目的は、休憩が必要になるまでに運転できる時間を制限することです。 たとえば、解析の時間単位が分に設定され、MaxTravelTimeBetweenBreaks の値が 120 の場合、運転手は 2 時間運転した後に休憩を取ります。 さらに 2 時間運転した後に 2 回目の休憩を割り当てるには、2 回目の休憩の MaxTravelTimeBetweenBreaks プロパティを 120 にします。

このフィールドに値を設定した場合、解析を成功させるには、TimeWindowStartTimeWindowEndMaxViolationTime、および MaxCumulWorkTime が NULL でなければなりません。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

MaxCumulWorkTime

休憩を取る前に累積できる作業時間の最大値。 作業時間は常にルートの開始時から累積されます。

作業時間は、移動時間と、訪問先、拠点、休憩でのサービス時間の合計です。 ただし、これには待ち時間は含まれません。待ち時間とは、ルート (または運転手) が訪問先または拠点でタイム ウィンドウの開始まで待機した時間のことです。

このフィールドは、休憩が必要になるまでに作業できる時間を制限します。 たとえば、解析の時間単位が [分] に設定され、MaxCumulWorkTime の値が 120、ServiceTime の値が 15 になっている場合、運転手は 2 時間作業した後に 15 分間の休憩を取ります。

引き続き最後の例で、さらに 3 時間作業した後に 2 回目の休憩が必要とします。 この休憩を指定するには、2 回目の休憩の MaxCumulWorkTime 値として「315」(5 時間と 15 分) と入力します。 この数には、前の休憩の MaxCumulWorkTimeServiceTime の値に加えて、2 回目の休憩が許可される前の 3 時間の追加作業時間が含まれます。 最大作業時間の休憩を誤って取ることを避けるために、ルートの開始から作業時間を累積していること、および作業時間にはそれまでに訪問した拠点、訪問先、休憩でのサービス時間が含まれることを再確認してください。

このフィールドに値を設定した場合、解析を成功させるには、TimeWindowStartTimeWindowEndMaxViolationTime、および MaxTravelTimeBetweenBreaks が NULL でなければなりません。

The unit for this field value is specified by the timeUnits property of the analysis object.

Double

IsPaid

休憩に賃金を支払うかをブール値で指定します。 このフィールド値に 1 を指定すると、休憩で費やされた時間はルートのコスト計算および規定外労働時間の判定で考慮されます。 そうでない場合は、値 0 を指定します。 デフォルト値は 1 です。

Integer

Sequence

ルートでの休憩の順序を示します。 このフィールドは NULL 値を含むことができます。これにより、解析が休憩の順序を割り当てることができるようになります。 順序の値は正の値で、かつ各ルートに対して一意として指定します (リニューアル拠点立ち寄り状況、訪問先、および休憩の間で共有される)。ただし、1 から開始する必要も連続している必要もありません。

Integer

OrderPairs

同じルートで引き取りと配達のサービスを提供できるように、引き取りと配達の訪問先をペアにします。 訪問先のペアを指定すると、解析は訪問先の片方だけをルートに割り当てられなくなります。訪問先の両方を同じルートに割り当てるか、どちらも割り当てないようにします。

訪問先に対する引き取りと配達をペアにすることが必要な場合があります。 たとえば、宅配会社が、ルートで訪問先から優先度の高い荷物を引き取り、拠点や選別ステーションに戻ることなくそれを別の訪問先に配達し、さらに配達時間を最小化する必要がある場合などです。 これらの関連する訪問先を、訪問先のペアを使用して適切に順序付けし、同じルートに割り当てることができます。 荷物を車両に載せておける時間の制限を割り当てることもできます。たとえば荷物が、病院から試験所まで 2 時間以内に輸送する必要のある血液サンプルの場合です。

場合によっては 2 つの訪問先ペアを必要とすることがあります。 たとえば、高齢者を自宅から、かかりつけの病院まで連れて行き、その後、家につれて戻りたい場合があるとします。 自宅から病院までの乗車は、1 つの訪問先ペアであり、病院への到着時刻が要求されます。一方、病院から自宅に帰る乗車はもう 1 つの訪問先ペアであり、病院に迎えに行く時刻が要求されます。

The data type supports the following fields:

FieldDescriptionData type

FirstOrderName

ペアの第 1 の訪問先の名前。 このフィールドは、訪問先の Name フィールドに対する外部キーです。

String

SecondOrderName

ペアの第 2 の訪問先の名前。 このフィールドは、訪問先の Name フィールドに対する外部キーです。

ペアの第 1 の訪問先は引き取り訪問先でなければなりません。つまり、その DeliveryQuantities フィールドの値は NULL です。 ペアの第 2 の訪問先は配達訪問先でなければなりません。つまり、その PickupQuantities フィールドの値は NULL です。 第 1 の訪問先で引き取られる数量は、第 2 の訪問先に配達される数量と対応する必要があります。 特殊な場合として、積荷制限が使用されていないシナリオについては、両方の訪問先の数量がゼロになることがあります。

訪問先の数量は拠点で荷積みまたは荷降ろしされません。

String

MaxTransitTime

ペアの最大移動時間です。 移動時間とは、第 1 の訪問先の出発時刻から第 2 の訪問先の到着時刻までの時間の長さです。 この制約により、2 つの訪問先の間で車両に積まれている時間 (乗車時間) が制限されます。 人または生鮮食料品を車両で輸送する場合、その乗車時間は、荷物または非生鮮食料品を車両で輸送する場合より短くなるのが普通です。 このフィールドは NULL 値を含むことができます。NULL 値は乗車時間に制約がないことを示します。

The unit for this field value is specified by the timeUnits property of the analysis object.

解析では、超過移動時間 (訪問先ペア間の直接移動時間に基づく) をトラッキングし、重み付けすることができます。 このため、次の 3 つの手法のいずれかを使用するように VRP 解析機能に指示することができます。

  • 保有車両の移動コストの増大を無視して、全体の超過移動時間を最小にする。
  • 全体の超過時間と移動コストのバランスをとるソリューションを検索する。
  • 全体の超過移動時間を無視して、保有車両の移動コストを最小にする。

By assigning an importance level using the excessTransitFactor property of the analysis object, you are, in effect, choosing one of these three options. Regardless of the importance level, the solver will always return an error if the MaxTransitTime value is surpassed.

Double

RouteRenewals

配達するか引き取る積荷の、再積み込みまたは荷降ろしを行うためにルートが訪問できる、中間拠点を指定します。 特に、ルート リニューアルは、ルートを拠点にリンクします。 このリレーションシップは、関連付けられた拠点でルートがリニューアル (途上での再積み込みまたは荷降ろし) できることを示します。

ルート リニューアルを使用してモデリング可能なシナリオとして、「開始拠点で配達する荷物を車両に満載し、訪問先に供給し、拠点に戻って配達用の荷物を再び積み込み、訪問先への供給を継続する」というものがあります。 たとえば、プロパンガスの配達の場合は、車両はタンクがほとんどまたは完全に空になるまで複数回配達を行い、燃料補給ポイントに立ち寄り、さらに配達を継続することができます。

考慮するべきルールとオプションをいくつか示します。

  • 再積み込み/荷降ろしのポイントである、リニューアル ロケーションは、開始拠点または終了拠点とは異なる可能性があります。
  • 各ルートは、あらかじめ決定されたリニューアル ロケーションを 1 つまたは複数持つことができます。
  • リニューアル ロケーションは、1 つのルートで複数回使用することができます。
  • 1 つのルートにおいて使用できるリニューアル ロケーションがいくつか存在する場合は、一番近い有効なリニューアル ロケーションが解析によって識別されます。

The data type supports the following fields:

FieldDescriptionData type

RouteName

このリニューアルが適用されるルートの名前。 このフィールドには NULL 値を指定することができません。このフィールドは、ルートの Name フィールドに対する外部キーになります。

String

DepotName

このリニューアルが行われる拠点の名前。 このフィールドには NULL 値を指定することができません。このフィールドは、拠点の Name フィールドに対する外部キーになります。

String

ServiceTime

リニューアルのサービス時間。 このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。

The unit for this field value is specified by the timeUnits property of the analysis object.

リニューアル拠点で車両に荷積みするのにかかる時間は、車両のサイズと、車両にどれくらい荷物が積まれているかに左右される場合があります。 ただし、ルート リニューアルのサービス時間は固定値であり、実際の積荷を考慮に入れません。 したがって、リニューアル サービス時間には、満載の積荷の場合のサービス時間、平均的な積荷の場合の時間、または別の時間評価による値を指定してください。

Double

Sequences

Specifies a space-separated string of sequence values of visits to the renewal depot. This field can contain a null value and is used to preassign visits to the renewal depot.

String

RouteZones

指定されたルートの担当区域を描画します。 ルート ゾーンはポリゴン フィーチャです。ルート ゾーンを使用して、特定の領域内にある訪問先または領域の近くにある訪問先にのみサービスを提供するようにルートを制限します。 どのようなときにルート ゾーンが役に立つかを以下の例で示します。

  • 従業員または車両の一部が特定の地域で作業を行うために必要な許可証を持っていません。 この場合は、要件を満たす地域の訪問先のみを訪れるようにハード ルート ゾーンを作成することができます。
  • ある車両が頻繁に故障するので、対応時間を可能な限り短くするために、その車両の担当訪問先を修理工場の近くにのみ限定したいと考えます。 車両を近隣での運用にとどめるために、ソフト ルート ゾーンまたはハード ルート ゾーンを作成できます。

The data type supports the following fields:

FieldDescriptionData type

RouteName

このゾーンが適用されるルートの名前。 ルート ゾーンは、関連付けられたルートを最大で 1 つ持っています。 このフィールドには NULL 値を指定することができません。このフィールドは、ルートの Name フィールドに対する外部キーになります。

String

IsHardZone

A Boolean value indicating a hard or soft route zone. A field value of 1 indicates that the route zone is hard; that is, an order that falls outside the route zone polygon can't be assigned to the route. The default value is 1. A field value of 0 indicates that such orders can still be assigned, but the cost of servicing the order is weighted by a function that is based on the Euclidean distance from the route zone. Basically, this means that as the straight-line distance from the soft zone to the order increases, the likelihood of the order being assigned to the route decreases.

Short Integer

PointBarriers

一時的な規制として機能する 1 つ以上のポイント、または対象の道路を通行するために必要とされる追加の時間や距離を表す 1 つ以上のポイントを指定する場合に、このパラメーターを使用します。 たとえば、ポイント バリアを使用して、道路沿いの倒木や、踏切で生じる遅延時間を表すことができます。

The data type supports the following fields:

FieldDescriptionData type

Name

バリアの名前。

String

BarrierType

ポイント バリアの通過を完全に禁止するか、通過時に時間または距離を追加するかを指定します。 この属性の値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (通過不可): バリアを通過できません。 バリアは通過不可として機能するので、通過不可ポイント バリアとも呼ばれます。

  • 2 (追加コスト) - バリアを通過するたびに、Additional_TimeAdditional_Distance、または AdditionalCost フィールドで指定した値だけ、移動時間または移動距離が加算されます。 このバリア タイプは、追加コスト ポイント バリアとも呼ばれます。

Short

Additional_Time

バリアを通過するときに追加される移動時間。 このフィールドは、追加コスト バリアにのみ適用され、[計測単位] パラメーター値が時間ベースである場合に限られます。

This field value must be greater than or equal to zero, and the values are interpreted to be in the units specified by the timeUnits property.

Double

Additional_Distance

バリアを通過するときに追加される距離。 このフィールドは、追加コスト バリアにのみ適用され、[計測単位] パラメーター値が距離ベースである場合に限られます。

This field value must be greater than or equal to zero, and the values are interpreted to be in the units specified by the distanceUnits property.

Double

AdditionalCost

バリアを通過するときに追加されるコスト。 このフィールドは、追加コスト バリアにのみ適用され、[計測単位] パラメーター値が時間ベースでも距離ベースでもない場合に限られます。

This field value must be greater than or equal to zero, and the values are interpreted to be in unknown units.

Double

FullEdge

解析時に、通行不可ポイント バリアをエッジ要素に適用する方法を指定します。 このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (False) - エッジ上をバリアまでは移動できますが、バリアを通過することはできません。 これがデフォルト値です。
  • 1 (True) - バリアが配置されているエッジ全体が通行不可となります。

Short

CurbApproach

バリアによって影響を受ける移動方向を指定します。 このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (車両の両側) - エッジ上での両方向への移動がバリアの対象となります。
  • 1 (車両の右側) - バリアが移動車両の右側にある場合のみ影響を与えます。 同じエッジ上で、バリアが移動車両の左側にある場合は影響を与えません。
  • 2 (車両の左側) - バリアが移動車両の左側にある場合のみ影響を与えます。 同じエッジ上で、バリアが移動車両の右側にある場合は影響を与えません。

ジャンクションは特定のポイントなので、右側/左側がありません。したがって、ジャンクション上にバリアを配置した場合は、アプローチ制限にかかわらずすべての車両に影響を与えます。

CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応しています。 はじめに、施設が車両の左側にあるとします。 これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。 右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから施設に到着するかです。つまり、結局のところ車両の右側または左側になります。 たとえば、施設に到着するときに、車両と施設の間に交通レーンがない場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。

Short

Bearing

ポイントが移動している方向。 単位は度で、北を基準に時計回りに測定されます。 このフィールドは BearingTol フィールドと組み合わせて使用されます。

通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。 歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。

このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。 方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。

方位と方位許容値の詳細

Double

BearingTol

方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。 Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。

単位は度で、デフォルト値は 30 です。 値は 0 より大きく 180 未満でなければなりません。 値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。

方位と方位許容値の詳細

Double

NavLatency

このフィールドは、Bearing フィールドと BearingTol フィールドの値が存在する場合にのみ、解析処理で使用されます。ただし、BearingBearingTol の値が存在する場合でも、NavLatency フィールド値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想コストを示します。

The time units of NavLatency are the same as the units specified by the timeUnits property of the analysis object.

Double

Network location fields

  • SourceID
  • SourceOID
  • PosAlong
  • SideOfEdge

これらのプロパティを組み合わせて、オブジェクトが配置されているネットワーク上のポイントを表します。

ネットワーク上での入力の特定の詳細

LineBarriers

道路と交差しているラインの場所を移動できないようにする 1 つ以上のラインを指定する場合に、このパラメーターを使用します。 たとえば、複数の道路区間にわたって通行禁止となるパレードやデモを表すときに通過不可ライン バリアを使用します。 また、ライン バリアを使用すれば、道路網の特定の区間を迂回して利用できる経路をすばやく見つけることができます。

The data type supports the following fields:

FieldDescriptionData type

Name

バリアの名前。

String

BarrierType

バリアの通過を完全に禁止するか、バリアを通過する際のコスト (時間または距離など) を係数に基づいて計算するかを指定します。 このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (通行不可) - バリアが交通ネットワークと交差している場所の通過を禁止します。 このバリアは、ライン バリアと呼ばれます。

  • 1 (コスト係数指定) - 対象の道路の通過にかかるコスト (たとえば、移動時間または移動距離) に、ScaledTimeFactor フィールドまたは ScaledDistanceFactor フィールドで指定した係数が乗算されます。 道路の一部だけがバリアの対象になっている場合は、移動の時間または距離が比率に応じて乗算されます。 たとえば、係数 0.25 を割り当てると、対象の道路での移動速度が通常の 4 倍速くなります。 係数 3.0 を指定すると、対象道路での移動時間が通常の 3 倍長くなります。 このバリア タイプは、コスト係数ライン バリアとも呼ばれます。 このバリア タイプを使用して、建設中の車線の通行止めに起因する減速をモデル化できます。

Short

ScaledTimeFactor

これは、バリアが交差している道路の移動時間に乗算する係数です。 フィールド値は 0 より大きい必要があります。

このフィールドは、コスト係数指定バリアにのみ適用され、[計測単位] パラメーターが時間ベースである場合に限られます。

Double

ScaledDistanceFactor

これは、バリアが交差している道路の距離に乗算する係数です。 フィールド値は 0 より大きい必要があります。

このフィールドは、コスト係数指定バリアにのみ適用され、[計測単位] パラメーターが距離ベースである場合に限られます。

Double

ScaledCostFactor

これは、バリアと交差する道路のコストに乗算する係数です。 フィールド値は 0 より大きい必要があります。

このフィールドは、コスト係数指定バリアにのみ適用され、[計測単位] パラメーターが時間ベースでも距離ベースでもない場合に限られます。

Double

Locations

このフィールドの情報は、ラインまたはポリゴンで覆われるネットワークのエッジ、および覆われる各エッジ エレメントの部分を定義します。このフィールドに含まれる情報を直接読んだり編集したりすることはできませんが、Network Analyst は解析を実行する際にその情報を解釈します。

ネットワーク上での入力の特定の詳細

Blob

PolygonBarriers

通過を完全に禁止するポリゴン、またはそのポリゴンと交差する道路を移動するときに時間または距離が係数に基づいて乗算されるポリゴンを指定する場合に、このパラメーターを使用します。

The data type supports the following fields:

FieldDescriptionData type

Name

バリアの名前。

String

BarrierType

バリアの通過を完全に禁止するか、バリアを通過する際のコスト (時間または距離など) を係数に基づいて計算するかを指定します。 このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (通過不可): バリアのどの部分も通過できません。 バリアと交差する道路は通過不可になるので、バリアは通過不可ポリゴン バリアとも呼ばれます。 たとえば、複数の道路を含む領域が浸水し、それらの道路を通過できない状況を表す場合などに、このタイプのバリアを使用します。

  • 1 (コスト係数指定) - 対象の道路の通過にかかるコスト (たとえば、移動時間または移動距離) に、ScaledTimeFactor フィールドまたは ScaledDistanceFactor フィールドで指定した係数が乗算されます。 道路の一部だけがバリアの対象になっている場合は、移動の時間または距離が比率に応じて乗算されます。 たとえば、係数 0.25 を割り当てると、対象の道路での移動速度が通常の 4 倍速くなります。 係数 3.0 を指定すると、対象道路での移動時間が通常の 3 倍長くなります。 このバリア タイプは、コスト係数ポリゴン バリアとも呼ばれます。 暴風のため特定領域の移動速度が低下する場合などに使用できます。

Short

ScaledTimeFactor

これは、バリアが交差している道路の移動時間に乗算する係数です。 フィールド値は 0 より大きい必要があります。

このフィールドは、コスト係数指定バリアにのみ適用され、[計測単位] パラメーターが時間ベースである場合に限られます。

Double

ScaledDistanceFactor

これは、バリアが交差している道路の距離に乗算する係数です。 フィールド値は 0 より大きい必要があります。

このフィールドは、コスト係数指定バリアにのみ適用され、[計測単位] パラメーターが距離ベースである場合に限られます。

Double

ScaledCostFactor

これは、バリアと交差する道路のコストに乗算する係数です。 フィールド値は 0 より大きい必要があります。

このフィールドは、コスト係数指定バリアにのみ適用され、[計測単位] パラメーターが時間ベースでも距離ベースでもない場合に限られます。

Double

Locations

このフィールドの情報は、ラインまたはポリゴンで覆われるネットワークのエッジ、および覆われる各エッジ エレメントの部分を定義します。このフィールドに含まれる情報を直接読んだり編集したりすることはできませんが、Network Analyst は解析を実行する際にその情報を解釈します。

ネットワーク上での入力の特定の詳細

Blob