動的サービス時間 (Dynamic Service Time)
ロジスティクスにおいて、ドロップオフ場所(倉庫や配送センターなど)で注文を処理するのにかかる時間は、固定数ではないことがよくあります。それは、配送される商品のサイズ、重量、また は種類によって異なる場合があります。動的サービス時間 は、単一の静的な値を使用するのではなく、これらの変動要因に基づいて最適化エンジンが注文のサービス時間を計算できるようにする機能です。
これにより、各停留所に割り当てられた時間は実際の必要な作業を反映するため、より現実的で正確な運用計画が作成されます。
固定サービス時間の実装については、複合ゾーン ドキュメントで説明されています。
目的 (Purpose)
動的サービス時間の主な目的は、単純な固定時間の見積もり(例:「すべての配達に5分かかる」)を超えて、より微妙なモデルを作成することです。注文の特定の需要に基づいてサービス時間を計算することで、次のことができます。
- 計画精度の向上: ルートとスケジュールは、各停留所で必要な実際の時間を考慮するため、より信頼性が高くなります。
- 車両使用率の最適化: オプティマイザーは、車両が1日に現実的に処理できる注文数についてより良い決定を下すことができます。
- 複雑な運用をモデル化: 倉庫やデポで、製品の種類や数量によって取り扱い要件が異なるシナリオをモデル化できます。
仕組み: 計算 (How It Works: The Calculation)
動的サービス時間は、固定基本時間と、注文の需要から導出された変動コンポーネントを組み合わせて計算されます。式は次のとおりです。
Total Service Time = Fixed Time + (Demand Type 1 * Coefficient 1) + (Demand Type 2 * Coefficient 2) + ...
たとえば、サービス時間は、事務処理のための固定時間と、配送の総量 (cbcm) と重量に基づく変動時間の組み合わせであると定義できます。
API での実装 (Implementation in API)
この機能は、Operations Location または Operations Location Group で calculation_params を構成することにより、Integration API を通じて実装されます。
この機能は、ステートフルな Integration API を通じてのみ利用可能であり、 事前に構成された OperationsLocation データに依存しているため、Stateless API ではサポートされていません。
calculation_params オブジェクト内でサービス時間ルールを定義します。主なパラメータは次のとおりです。
service_time.fixed: その場所でのすべての注文に適用される基本サービス時間(秒単位)。coefficients:product_kindをさまざまな需要タイプの係数にマップするオブジェクト。
例 (Example)
次の calculation_params を使用して OperationsLocation を構成するとします。
"calculation_params": {
"service_time": { "fixed": 300 },
"coefficients": {
"AMBIENT": {
"cbcm": 0.000018,
"weight": 0.01
}
}
}
ここで、ドロップオフにこの Operations Location を使用する予約が作成されます。予約には次のプロパティがあります。
product_kind:"AMBIENT"demand:{ "cbcm": 500000, "weight": 100 }
この予約が処理されると、オプティマイザーは次のようにドロップオフノードのサービス時間を計算します。
Total Service Time = fixed + (cbcm * coefficient) + (weight * coefficient)
Total Service Time = 300 + (500000 * 0.000018) + (100 * 0.01)
Total Service Time = 300 + 9 + 1 = 310 seconds
その後、ソルバーはルート計画でドロップオフノードにこの計算された310秒のサービス時間を使用し、より正確で実行可能なスケジュールにつながります。