メインコンテンツまでスキップ

顧客マスター (Customer master)

SWAT モデルは、Location Master の同期、保存、管理、および受信予約への自動ハイドレーションをサポートしています。Location Master の目的は、座標、時間枠、およびその他の Location master 関連情報を保存するための消費アプリケーションの負担を軽減することです。アップロード時に、予約に booking.pickup_operations_location または booking.pickup_operations_location の値が設定されている場合、対応する場所からの情報が予約に自動的に追加されます。これには以下が含まれます。

  • 緯度と経度
  • 名前
  • 時間枠
  • サービス時間
  • 追加の制約(存在する場合(例:車両タイプ))

Location master は、次の3つのエンティティで表されます。

  • Operations Location
  • Operations Location Time windows
  • Operations Location Groups

Location master は処理パイプラインに統合されており、アップロード時に予約/注文の location master オブジェクトを参照できます。

計算パラメータ (Calculation Parameters)

OperationsLocation apiOperationsLocationGroup api の両方のモデルは、calculation_params オブジェクトをサポートしています。このオブジェクトを使用すると、予約がその場所またはそのグループの場所を参照したときに自動的に適用される特定の最適化パラメータを定義できます。

これらのパラメータは、次のような現実世界の制約と運用の詳細をモデル化するために使用されます。

  • 施設(例:倉庫、安全な化合物)への入退室に必要な時間。
  • 場所のサービス容量(例:一度に何台の車両を積み込むことができるか)。
  • 商品の種類と数量に基づく動的サービス時間。

複合ゾーンおよび累積制限との関係 (Relationship with Compound Zones and Cumulative Limitations)

calculation_params オブジェクトは、場所レベルで複合ゾーンと累積制限の概念を実装する便利な方法を提供します。

  • enter_time & exit_time: これらのフィールドは、複合ゾーン を直接作成します。車両のルートにこれらのパラメータが設定された場所が含まれている場合、指定された時間は、場所への進入および退出のペナルティとして追加されます。これは、倉庫のドッキング時間やセキュリティゲートのクリアランスをモデル化するのに理想的です。

  • cumulative_limitations: このフィールドは、1時間あたりに派遣できる 車両の最大数 など、場所のサービス容量をモデル化します。ピックアップポイントとして使用される場合、その特定の場所の累積制限制約を直接実装します。

  • service_time & coefficients: これらのフィールドにより、洗練されたサービス時間計算が可能になります。booking.product_kind とその demand に基づいて、注文ごとの fixed サービス時間を設定し、動的コンポーネントを追加できます。

    予約がこれらのパラメータを持つオペレーション場所で処理されると、合計サービス時間は次のように計算されます。

    Total Service Time = service_time.fixed + (booking.demand.cbcm * coefficients[product_kind].cbcm) + (booking.demand.weight * coefficients[product_kind].weight) + ...

    coefficients オブジェクトには、booking.product_kind と一致するキーが含まれています。各 product_kind キーには、キーが需要タイプ(例:cbcmweight)と一致し、値がその需要の乗数である別のオブジェクトが含まれています。

    たとえば、次のような calculation_params オブジェクトがあるとします。

    "calculation_params": {
    "service_time": { "fixed": 300 },
    "coefficients": { "AMBIENT": { "cbcm": 0.000018, "weight": 0.01 } }
    }

    そして、product_kind: "AMBIENT"demand: { "cbcm": 500000, "weight": 100 } を持つ予約の場合、サービス時間は次のようになります。 300 + (500000 * 0.000018) + (100 * 0.01) = 300 + 9 + 1 = 310 seconds.

継承とグループ化ロジック (Inheritance and Grouping Logic)

パラメータは、OperationsLocationGroup(エリア)レベルと個々の OperationsLocation レベルの両方で設定できます。

  • calculation_params が個々の OperationsLocation に設定されていない場合、それらは所属する OperationsLocationGroup から継承されます。
  • 両方のレベルで設定されている場合、個々の OperationsLocation の設定が優先されます。
警告

enter_time または exit_timeOperationsLocationGroup レベルで設定されている場合、そのグループに属するすべての場所は 単一の複合ゾーン として扱われます。つまり、進入および退出時間のペナルティは、個々の場所ごとではなく、車両ルート内の場所のグループ全体に対して1回だけ適用されます。

各場所に個別に入退室時間を適用する必要がある場合は、各 OperationsLocation オブジェクトでこれらのパラメータを個別に定義する必要があります。

また、enter_time または exit_time の少なくとも1つの値が設定されている場合、両方が null であってはならないことに注意してください。それ以外の場合は、両方が null である必要があります。

cumulative_limitationsservice_time の場合、値が場所レベルで明示的に定義されていない場合、単にグループから継承されます。

calculation_params を活用することで、運用場所の豊富で正確なモデルを構築できます。これにより、予約の作成プロセスが簡素化され、最適化エンジンが現実世界の制約を確実に尊重するようになります。