Route Optimization API は、対応するルートの車両のルートを返します。 リクエストできます。配送は車両に割り当てられるか、 渡します。
OptimizeToursResponse
メッセージ(REST、gRPC)には、2 つの主要なトップレベルと
プロパティ:
routes[]
は、各車両に配送が割り当てられているルートです。各Route
には、個々のルートのプロパティを反映する指標が含まれます。metrics
は、すべてのレスポンス全体の集計指標です。 ルート計画を作成できますトップレベル指標には、 すべてのルートにわたって集計された値を含む、ルートごとの指標。
最適化の結果によっては、一部のプロパティに値が入力されない場合があります。
skippedShipments[]
は、どの車両でも実施されていない配送を一覧表示します。 指定された制約内で実行できない場合や、配送の費用がペナルティ費用を超える場合は、配送をスキップできます。たとえば、配送の引き取りまたは配達の範囲が非常に狭いtimeWindow
車両では、不可能な、または費用対効果に優れた方法ではない可能性があります。 必要な時間枠内に訪問を実施する。validationErrors[]
には、リクエストのsolvingMode
がVALIDATE_ONLY
に設定されている場合に、リクエストを無効にするか解決できないエラーを指定します。通常のDEFAULT_SOLVE
モードでは、検証エラーは レスポンスの本文ではなくエラー メッセージに表示されます。VALIDATE_ONLY
解決モードでは複数のエラーを一度に報告できます。これは、リクエストをすばやくデバッグする場合に便利です。
ルートのプロパティ
各 routes[]
エントリは ShipmentRoute
メッセージ(REST、gRPC)です。各 ShipmentRoute
は、リクエストの特定の車両のルート割り当てを表します。対応する重要な ShipmentRoute
プロパティ
Vehicle
に含まれるもの:
vehicleIndex
は、対応するリクエスト メッセージのVehicle
のゼロベースのインデックスです。REST レスポンスでは、値がゼロの場合、このプロパティは省略されます。vehicleStartTime
は、車両がルートを開始する時刻です。vehicleEndTime
は、車両がルートを完了する予定時刻です。
レスポンスでは、routes
は次のようになります。
{
"routes": [
{
"vehicleStartTime": "2024-02-13T00:00:00Z",
"vehicleEndTime": "2024-02-13T00:38:42Z",
"visits": [
...
],
"transitions": [
...
],
"metrics": {
...
},
...
}
],
...
}
各 ShipmentRoute
には、車両が実行する visits
の順序付きリストが含まれます。
できます。各 Visit
(REST、gRPC)は VisitRequest
を表します。
(REST、gRPC)を返す。重要な Visit
プロパティは次のとおりです。
shipmentIndex
は、この訪問が属する配送のゼロベースのインデックスです。 対応するリクエストにすることができます。isPickup
は、訪問が受け取りの場合は true、訪問が 提供します。値が false の場合、REST レスポンスではこのプロパティが省略されます。visitRequestIndex
は、取得元のVisitRequest
のゼロベースのインデックスです。 対応するリクエストのShipment.pickups
またはShipment.deliveries
Visit
が表すもの。リクエストされた場合、REST のレスポンスではこのプロパティが省略されます。 ゼロです。startTime
は訪問の開始予定時刻です。loadDemands
は、読み込みタイプを完了するために必要となる読み込み量をマッピングします。Visit
。配送訪問の負荷量は負の値で、負荷を表します 取り外すためのセンサーです。
Visit
の例を次に示します。
{
"routes": [
{
...
"visits": [
{
"isPickup": true,
"startTime": "2024-02-13T00:00:00Z",
"detour": "0s"
},
...
],
},
...
],
...
}
各 ShipmentRoute
には、特定の車両の visits
間の移動を表す transitions
の順序付きリストが含まれています。Transition
に関する重要なメッセージ
(REST、gRPC)プロパティには次のようなものがあります。
startTime
は車両が走行を開始する時刻です。 説明します。travelDuration
は車両の走行時間です。 移行を完了します。travelDistanceMeters
は、遷移を完了するために車両が移動する必要がある距離(メートル単位)です。trafficInfoUnavailable
は、 説明します。waitDuration
は、車両が待機しているアイドル時間を表します。 次のVisit
を開始します。これは、次の原因で発生する可能性があります:start_time
Visit
をフォローしています。totalDuration
は、移動時間を含む移行期間の合計時間です。 待機時間、休憩時間、遅延時間ですvehicleLoads
は、車両が輸送する車両の輸送量に対応する読み込みタイプをマッピングします。 おすすめします。
Transition
の例を次に示します。
{
"routes": [
{
...
"transitions": [
...
{
"travelDuration": "1171s",
"travelDistanceMeters": 9004,
"waitDuration": "0s",
"totalDuration": "1171s",
"startTime": "2024-02-13T00:00:00Z"
},
...
],
...
}
],
...
}
vists
と transitions
の関係については、次をご覧ください。
受け取りと配達の中止注文の最適化、および
ShipmentRoute
リファレンス ドキュメント(REST、gRPC)
指標のプロパティ
Metrics
メッセージ(REST、gRPC)はソリューション全体を要約します。
重要な Metrics
プロパティは次のとおりです。
totalCost
は、ルートの完了にかかる合計費用です。詳細 コストモデル パラメータで費用について確認できます。usedVehicleCount
は、ソリューションで使用されている車両の総数です。 オプティマイザーがルートの使用を決定した場合、車両は空のルートを持つことがあります。 不要ですskippedMandatoryShipmentCount
は、スキップされた配送の数です。 "mandatory"です。必須配送では、配送がスキップされた場合に発生するpenaltyCost
は指定されません。指定された制約で実行できない場合は、必須の配送をスキップできます。費用の詳細については、費用モデル パラメータをご覧ください。
追加の指標は AggregatedMetrics
メッセージ(REST、
gRPC)。AggregatedMetrics
メッセージ タイプは、次の内容に使用されます。
Metrics.aggregatedRouteMetrics
プロパティと ShipmentRoute.metrics
プロパティ Metrics.aggregatedRouteMetrics
には、すべての期間にわたって集計された指標が含まれています。
OptimizeToursResponse
の ShipmentRoute
。各ShipmentRoute.metrics
プロパティには、その特定の ShipmentRoute
の指標が含まれます。
重要な AggregatedMetrics
プロパティは次のとおりです。
performedShipmentCount
は車両による出荷の数です。 自動的に可視化されます。travelDuration
は、車両がルートを完了する際に移動に費やす合計時間です。waitDuration
は、完了までの車両の待機時間の合計です 制御します。delayDuration
は、車両の遅延時間の合計です。これは通常 0 になります。TransitionAttributes
breakDuration
は、休憩中に車両が費やした合計時間です。 追跡したりできるようになりますvisitDuration
は、車両がルートを完了する際に訪問に費やす合計時間です。これは実質的に、すべてのVisit
に対応するVisitRequest
のVisitRequest.duration
値 割り当てられていることを確認します。totalDuration
は、車両が完了するまでに要する合計時間です。 routes:travelDistanceMeters
は車両の総走行距離です。 追跡したりできるようになりますmaxLoads
は、読み込みタイプを Pod で実行される最大読み込み量にマッピングします。 ルート上のあらゆる地点で 走行できるようになりました
Metrics
メッセージの例を次に示します。
{
"routes": [
...
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2024-02-13T00:00:00Z",
"latestVehicleEndTime": "2024-02-13T00:38:42Z",
"totalCost": 18.603,
"costs": {
"model.vehicles.cost_per_kilometer": 18.603
}
}
}
サンプルコードの全文
リクエストを作成するのリクエストの完全なレスポンスの例を次に示します。
{
"routes": [
{
"vehicleStartTime": "2024-02-13T00:00:00Z",
"vehicleEndTime": "2024-02-13T00:38:42Z",
"visits": [
{
"isPickup": true,
"startTime": "2024-02-13T00:00:00Z",
"detour": "0s"
},
{
"startTime": "2024-02-13T00:19:31Z",
"detour": "0s"
}
],
"transitions": [
{
"travelDuration": "0s",
"waitDuration": "0s",
"totalDuration": "0s",
"startTime": "2024-02-13T00:00:00Z"
},
{
"travelDuration": "1171s",
"travelDistanceMeters": 9004,
"waitDuration": "0s",
"totalDuration": "1171s",
"startTime": "2024-02-13T00:00:00Z"
},
{
"travelDuration": "1151s",
"travelDistanceMeters": 9599,
"waitDuration": "0s",
"totalDuration": "1151s",
"startTime": "2024-02-13T00:19:31Z"
}
],
"metrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"routeCosts": {
"model.vehicles.cost_per_kilometer": 18.603
},
"routeTotalCost": 18.603
}
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2024-02-13T00:00:00Z",
"latestVehicleEndTime": "2024-02-13T00:38:42Z",
"totalCost": 18.603,
"costs": {
"model.vehicles.cost_per_kilometer": 18.603
}
}
}