ルート最適化の概要で簡単に説明したように、基本的なリクエストは、必須エンティティとして モデル、配送、車両で構成されます。
- Model は、
Shipments
とVehicles
の両方を含む、リクエスト全体の設定と制約をキャプチャします。 - 配送は、集荷と配達の
VisitRequest
を含むタスクまたは実際の配送を表します。配送にはローカルの設定と制約があります。 - 車両は、車両、運転手、または人員を表します。車両にはローカルの設定と制約もあります。
各エンティティのプロパティは、特定の粒度レベルで最適化問題の一部を記述します。モデル全体の制約はすべての配送と車両に適用されますが、配送または車両で指定された制約とプロパティは、単一の配送または車両に固有のものです。
各メッセージ タイプの詳細なドキュメントについては、ShipmentModel
(REST、gRPC)、Shipment
(REST、gRPC)、Vehicle
(REST、gRPC)メッセージのリファレンス ドキュメントをご覧ください。
OptimizeToursRequest
件の宿泊施設
トップレベルの OptimizeToursRequest
メッセージ(REST、gRPC)でよく使用されるプロパティには、次のものがあります。
searchMode
は、指定された制約を満たす最初の解を返すか、設定された期限内に可能な限り最適な解を見つけるかどうかを指定します。considerRoadTraffic
は、ルーティングと到着予定時刻の推定にライブ トラフィックを使用するかどうかを決定します。populateTransitionPolylines
は、ルート ポリラインとルート トークンがレスポンスで返されるかどうかを決定します。
モデル プロパティ
ShipmentModel
メッセージ(REST、gRPC)でよく使用されるプロパティには次のようなものがあります。
globalStartTime
は、すべての車両と荷物において、ルートの最も早い開始時刻を表します。この時間より前に、車両の最初の移行と配送を開始することはできません。globalEndTime
は、すべての車両と配送のルートの最も遅い終了時間を表します。割り当てられたすべての配送と移行は、この時間までに完了する必要があります。
配送プロパティ
Shipment
メッセージ(REST、gRPC)でよく使用されるプロパティには次のようなものがあります。
pickups[]
とdeliveries[]
は、荷物の集荷または配送場所を表します。pickups[]
プロパティとdeliveries[]
プロパティの両方でVisitRequest
メッセージ(REST、gRPC)が使用されます。loadDemands
は、車両が配送を完了するために必要な積載量を表します。車両の対応するload_limits
(REST、gRPC)プロパティは、車両が一度に収容できる負荷量を表します。負荷の詳細については、負荷の需要と上限をご覧ください。penalty_cost
は、配送がスキップされた場合に発生する費用を表します。費用の詳細については、コストモデル パラメータをご覧ください。
車両プロパティ
Vehicle
メッセージ(REST、gRPC)の一般的なプロパティには次のものがあります。
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"
}
}
OptimizeTours
と BatchOptimizeTours
はどちらも上記の例のようにリクエスト メッセージを消費しますが、方法が異なります。ルート最適化リクエストを行う前に、次の 2 つの方法の違いを理解しておくことが重要です。