CVRPTW vs. PDP スケジューリングモード (CVRPTW vs. PDP Scheduling Modes)
Stateless Optimization API は、prebook_cvrptw と prebook (PDP) という2つの異なるスケジューリングモードを提供することにより、車両ルーティング問題 (VRP) の2つの主要なクラスを解決するように設計されています。各モードは特定の運用ワークフローに合わせて調整されており、正しいモードを選択することは、効率的で正確な最適化結果を達成するために重要です。
これらのモードは、リクエストの engine_settings.calculation_parameters.scheduling_mode フィールドで構成されます。
PDP (ピックアップおよびドロップオフモード)
prebook モードは、時間枠付きピックアップおよび配達問題 (PDPTW) をモデル化します。これは最も柔軟で汎用的なモードです。
ワークフロー (Workflow)
PDP モデルでは、車両のルートは、ピックアップとドロップオフの混合シーケンスで構成できます。車両は空で開始し、複数の場所から商品をピックアップし、いくつかの配達を行い、さらに商品をピックアップし、というようにすることができます。これは、車両の積載量がルート全体で動的に変化する、宅配便サービス、オンデマンド輸送、または小口トラック輸送 (LTL) などの複雑なロジスティクスシナリオを正確にモデル化します。
需要モデリング (Demand Modeling)
車両にかかる変化する負荷を正しくモデル化するために、需要は次のように扱われます。
- ピックアップノード: 正の
demand値を持ち、アイテムが車両に積み込まれ、その負荷が増加することを表します。 - ドロップオフノード: 負の
demand値を持ち、アイテムが降ろされ、車両の負荷が減少することを表します。
利点と制限 (Benefits and Limitations)
- 利点:
- 高い柔軟性: ピックアップとドロップオフが交互に行われる複雑なマルチトリップルートをモデル化できます。
- 汎用性: ロジスティクスから旅客輸送まで、幅広いユースケースに適しています。
- 制限:
- 計算負荷が高い: 柔軟性が高いということは、ソルバーが探索する問題空間がはるかに大きくなることを意味し、特にノード数が多い問題では計算時間が長くなる可能性があります。
CVRPTW モード
prebook_cvrptw モードは、古典的な 時間枠付き容量制約車両ルーティング問題 (CVRPTW) 向けに高度に最適化されたモデルです。
ワークフロー (Workflow)
このモードは、より単純で一般的な配送モデル向けに設計されています。車両は 単一の中心的な場所(デポや配送センターなど)で開始し、その日のすべての商品をピックアップしてから、ドロップオフのみで構成されるルートを実行します。また、その逆をモデル化することもできます。空で開始し、単一の目的地に戻る前に複数のピックアップを行う車両です。
各車両は、最適化実行ごとに1回のトリップに制限されています。
prebook_cvrptw モードが正しく機能するには、各車両に、デポノード(point ノード)をルートの開始点として明示的に設定する partial_route が定義されている 必要があります。これがないと、ソルバーはデポ開始を想定せず、無効または予期しないルートを生成する可能性があります。
"vehicles": [
{
"agent_id": "vehicle-1",
"partial_route": ["node-depot"],
...
}
]