リクエスト メッセージを作成する

ルートの最適化の概要で簡単に説明したように、基本的なリクエストは、必須エンティティとしてモデル配送車両で構成されます。

  • モデルは、ShipmentsVehicles の両方を含むリクエスト全体の設定と制約をキャプチャします。
  • 配送は、集荷と配送の VisitRequest を含むタスクまたは実際の配送を表します。配送にはローカルの設定と制約があります。
  • 車両は、車両、ドライバー、または従業員を表します。車両にはローカルの設定と制約もあります。

各エンティティのプロパティは、最適化の問題の一部を特定の粒度で記述します。モデル全体の制約はすべての出荷と車両に適用されますが、出荷または車両に指定された制約とプロパティは、単一の出荷または車両に固有のものです。

各メッセージ タイプの詳細については、ShipmentModelRESTgRPC)、ShipmentRESTgRPC)、VehicleRESTgRPC)メッセージのリファレンス ドキュメントをご覧ください。

OptimzeToursRequest 件の宿泊施設

トップレベルの OptimizeToursRequest メッセージ(RESTgRPC)でよく使用されるプロパティには、次のようなものがあります。

  • searchMode は、指定された制約を満たす最初の解を返すか、設定された期限内に最適な解を見つけるかを示します。
  • considerRoadTraffic は、ルート選択と ETA 推定にライブ ライブ トラフィックを使用するかどうかを決定します。
  • populateTransitionPolylines は、レスポンスでルート ポリラインが返されるかどうかを決定します。

モデル プロパティ

ShipmentModel メッセージ(RESTgRPC)でよく使用されるプロパティには、次のようなものがあります。

  • globalStartTime は、すべての車両と荷物において、ルートの最も早い開始時間を表します。この時間より前に最初の移行と出荷を開始することはできません。
  • globalEndTime は、すべての車両と配送のルートの最新の終了時間を表します。この時間より前に、割り当てられたすべての配送と移行を完了する必要があります。

配送プロパティ

Shipment メッセージ(RESTgRPC)でよく使用されるプロパティは次のとおりです。

  • pickups[]deliveries[] は、荷物の集荷または降車が可能な場所を表します。pickups[] プロパティと deliveries[] プロパティはどちらも VisitRequest メッセージ(RESTgRPC)を使用します。
  • loadDemands は、車両が出荷を完了するために必要な荷重を表します。車両の load_limitsRESTgRPC)プロパティは、車両が一度に対応できる負荷を表します。負荷の詳細については、負荷の需要と制限をご覧ください。
  • penalty_cost は、配送がスキップされた場合に発生する費用を表します。費用の詳細については、費用モデル パラメータをご覧ください。

車両プロパティ

Vehicle メッセージ(RESTgRPC)でよく使用されるプロパティは次のとおりです。

  • startLocation は、車両がルートの始点となる場所を表します。このプロパティは省略可能です。指定しない場合、車両のルートは最初に割り当てられた配送の場所から開始されます。
  • endLocation は、車両がルートの終点となる場所を表します。このプロパティは省略可能です。指定しない場合、車両のルートは最後に割り当てられた配送の場所で終了します。
  • startTimeWindows[] は、車両がルートを開始できるタイミングを表します。このプロパティは省略可能です。
  • endTimeWindows[] は、車両が経路を開始および終了できる時間を表します。どちらのプロパティもオプションです。
  • loadLimits は、出荷の負荷需要を満たすために使用可能な車両の容量を表します。負荷の需要と制限の詳細については、負荷の需要と制限をご覧ください。

JSON 形式の完全なリクエスト例は次のようになります。

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

OptimizeToursBatchOptimizeTours はどちらも、上記の例と同様にリクエスト メッセージを使用しますが、その使い方は異なります。ルートの最適化をリクエストする前に、2 つの方法の違いを理解することが重要です。

OptimizeTours と BatchOptimizeTours の比較