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
には、以下を表す transitions
の順序付きリストが含まれます。
特定の車両の visits
間の移動。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
}
}
}