ピックアップおよびドロップオフ場所の最大数 (Maximum Pickup and Dropoff Locations)
多くのロジスティクス業務において、効率性とは単なる停留所の数ではなく、訪問した 異なる場所 に関するものです。ルートを効果的に最適化するために、停留所の総数だけでなく、車両が連続して訪問する 一意の ピックアップまたはドロッ プオフクラスターの数を制限したい場合があります。
ピックアップおよびドロップオフ場所の最大数 制約を使用すると、車両が連続してピックアップまたはドロップオフのために訪問できる異なる場所の数に制限を設定できます。
仕組み (How It Works)
この機能は、2つの車両レベルの制約を導入します。
max_pickup_locations: 許可される連続した異なるピックアップ場所の最大数。max_dropoff_locations: 許可される連続した異なるドロップオフ場所の最大数。
「場所」とは何ですか? (What is a "Location"?)
この制約の重要な側面は、「場所」の定義です。予約ノードの単純なカウント(すべての停留所が1つとしてカウントされる)とは異なり、この制約は空間的なグループ化(多くの場合 H3 インデックス または距離しきい値に基づく)を使用して、複数の停留所を単一の「場所」と見なすべきかどうかを判断します。
- 同じ場所: 車 両が互いに非常に近い複数のピックアップポイント(例:同じショッピングモール内の異なる店舗、または大規模複合施設の異なる入り口)を訪問する場合、それらは単一の 場所 にグループ化される場合があります。
- 異なる場所: 地理的に離れている停留所(例:2つの異なる町や郊外)は、別々の場所としてカウントされます。
これにより、ドライバーが「停留所制限」を使い果たすことなく単一のエリアで複数の停留所を行うことができる一方で、あまりにも多くの異なる地域に運転することを防ぐ、より柔軟な運用が可能になります。
シナリオ (Scenarios)
シナリオ 1: 小売モールのピックアップ
構成: max_pickup_locations: 1
ドライバーは、大規模なショッピングモールから注文をピックアップするように割り当てられています。
- ピックアップ A: ファッションストア(北棟)
- ピックアップ B: 電器店(南棟)
- ピックアップ C: 食料品店(地下)
これら は3つの異なる停留所ですが、地理的にクラスター化されています。オプティマイザーはこれを 1つのピックアップ場所 として扱います。ドライバーは3つのピックアップすべてを実行できます。ただし、ドライバーが4番目のピックアップのために5km離れた倉庫に運転するように求められた場合、それは 2番目の場所 としてカウントされ、制限が1に設定されている場合、割り当ては拒否されます。
シナリオ 2: ミルクラン配送
構成: max_dropoff_locations: 3
車両は中央デポから商品をピックアップし、配送に向かいます。車両には5つのパッケージがあります。
- ドロップオフ 1 & 2: 住宅ブロック A (同じ H3 インデックス) -> 場所 1 としてカウント
- ドロップオフ 3: オフィスタワー B (異なる H3 インデックス) -> 場所 2 としてカウント
- ドロップオフ 4 & 5: 工業団地 C (異なる H3 インデックス) -> 場所 3 としてカウント
使用された合計場所数: 3。このルートは有効です。6番目のパッケージが4番目の異なるエリアでのドロップオフを必要とする場合、制約によって阻止されます。
構成 (Configuration)
これらのパラメータは、API リクエストの vehicle オブジェクトで直接構成されます。
| パラメータ | タイプ | 説明 |
|---|---|---|
max_pickup_locations | integer | 最後のドロップオフ後の連続した異なるピックアップ場所の最大数。 |
max_dropoff_locations | integer | 最後のピックアップ後の連続した異なるドロップオフ場所の最大数。 |
JSON ペイロードの例 (Example JSON Payload)
この例では、車両は 2つの異なるピックアップ場所 に制限されています。
{
"vehicles": [
{
"agent_id": "vehicle_1",
"max_pickup_locations": 2,
"max_dropoff_locations": 5,
"capacity": { "units": 50 }
// ... その他のプロパティ
}
]
}
プレイグラウンド (Playground)
以下の max_pickup_locations 制約を試してください。
- 車両には
max_pickup_locations: 1があります。 - 2つのグループのピックアップがあります。ピックアップ 1 & 2 は近くにあります(クラスター A)。ピックアップ 3 は遠くにあります(クラスター B)。
- 車両はクラスター A の両方の注文をピックアップできますが、クラスター B の注文も同じ実行でピックアップすることはできません。これは2番目の場所を構成するためです。