Route Optimization は、車両の経路選択に関する目標と運用上の制約を構造化データの形式で受け取り、1 つ以上の車両の経路計画を提供する Google Maps Platform API です。
ルート最適化を使用する理由
Route Optimization API を使用すると、自動配車またはルート計画プロセスを確立または調整して、輸送ニーズの運用効率を向上させることができます。独自の運用上の目標や制約を表現するパラメータと、信頼できる Google マップのデータに基づいて構築されたアルゴリズムにより、このサービスでは、これらの制約を満たす最適なルート計画が生成されます。ユースケースの例をいくつか示します。
- ある物流会社が Route Optimization を使用して、すべての翌日配送の割り当てを最適化し、距離と時間の効率、費用の削減、納期遵守、ドライバーと最終顧客の満足度を最適化するルートを各荷物に提示します。
- オンデマンド フード デリバリーの会社は、リアルタイムの配車プロセスでルートの最適化を使用して、最適なアクティブ ドライバーを選択して、複数の新しい注文を受け取り、既存のルートに挿入します。
- 医療サービス プロバイダは、Route Optimization を使用して医療機関を予約にマッピングし、医療機関ごとに 1 日のルートの効率を向上させます。
- フィールド サービス プロバイダは Route Optimization を使用して、技術者のサービスの予約に最適なルートとシーケンスを見つけ、ルートの遅延など、状態の変化が発生したときに再最適化します。
ルートの最適化でできること
Route Optimization API を使用すると、さまざまな目標と制約を考慮して、車両フリートのルートとタスクの割り当てを最適化できます。
目標の例:
- 旅行の効率性: 距離や目的地までの所要時間などのパラメータに基づいて、旅行の効率性の要件を定義します。
- 定刻到着: 車両が時間どおりにタスクに到着するようにします。たとえば、受け取り、宅配、サービス アクションの特定の時間枠を定義します。
- 車両の使用コスト: コストを節約するために、タスクの実行に必要な車両の数を最小限に抑えます。
- ロード バランシング: 多数の車両や人員の間でタスクが公平に分散されるようにします。
制約の例:
- ドライバーの勤務時間: 勤務の開始時刻と終了時刻、休憩の時間。
- 車両の定員: 車両が一度に運べる荷物の最大量。
- 時間枠: 到着に必要な特定の時間枠(顧客の空き状況や店舗の営業時間など)。
依存関係と互換性: 次のいずれかの方法で作業の依存関係を定義します。
- 特定の種類の車両または人員が必要
- 他の作業を先に実行する必要がある
- ある時点において、車両に 1 つの荷物しか置いていない必要があります。
詳細と使用可能なすべてのパラメータについては、デベロッパー リファレンス ガイド(REST、gRPC)をご覧ください。
ルート最適化の仕組み
Route Optimization API は、さまざまな入力を使用してルートプランを返します。入力には、車両、タスクまたは出荷、目標、制約が含まれます。ルート計画には、車両へのタスクの割り当て、各車両のマルチストップ ルート、関連する指標が含まれます。
Route Optimization API は、次の 2 つの方法でこれを実現します。
- OptimizeTours: クライアントがサーバーからの応答を待機してから他のタスクを進める必要がある同期 API。
- BatchOptimizeTours: サーバーが終了して応答する前に、クライアントが他のタスクを進められるようにする非同期 API。
どちらのメソッドも、同じインターフェースとサポートされているパラメータを共有します。BatchOptimizeTours の詳細については、同期エンドポイントと非同期エンドポイントをご覧ください。
Route Optimization API は、入力の詳細を含む JSON リクエスト本文を含む HTTP POST リクエストを受け入れます。
OptimizeTours リクエスト
リクエストは、次の必須のエンティティで構成されています。
- モデル: グローバル レベルの設定と制約が構成されるグローバル エンティティ。「Shipments and Vehicles」も表示されます。
- 配送: タスクまたは実際の配送(受け取りタスクと配達の訪問を含むことができる)と、それに対応する属性(場所やその他の属性、制約、費用関数など)を定義するために使用されます。詳細については、Shipment のリファレンス ドキュメント(REST、gRPC)をご覧ください。
- Vehicle: 車両(またはドライバー、人員)とそれに対応する移動属性(出発地とその他の車両や移動の属性、制約、コスト関数など)を定義するために使用されます。詳細については、REST、gRPC をご覧ください。
簡単な例については、受け取りと配達の中止注文の最適化をご覧ください。
OptimizeTours のレスポンス
Route Optimization API は、車両のルートプランとタスクまたは配送を含む JSON レスポンスを返します。
- ルート: 各車両のルートとそれに割り当てられたタスク(または出荷)が含まれます。
- 指標: 生成されたルートプランに関する集計指標
簡単な例については、受け取りと配達の中止注文の最適化をご覧ください。
リクエストの作成とレスポンスの解釈の詳細については、レスポンスの解釈をご覧ください。
リソース
次の表は、Route Optimization API を介して利用可能なリソースと、それから返されるデータをまとめたものです。
データリソース | 返されるデータ | 戻り値の形式 |
batchOptimizeTours (REST、gRPC) |
処理が完了したことを示す長時間実行オペレーションのリソース名を返します。 | JSON または gRPC proto |
optimizeTours (REST、gRPC) |
訪問と指標の詳細を含む最適化されたルートを返します。 | JSON または gRPC proto |
ルート最適化の使用方法
1 | セットアップする | Google Cloud プロジェクトを設定するに進み、以下の設定手順を完了します。 |
2 | 基本的なリクエストを実行してレスポンスを受信する | 設定したら、リクエストの作成とレスポンスの解釈に沿って基本的なリクエストを送信し、レスポンスを取得します。 |
3 | より高度なシナリオを試して、独自のリクエストの作成を開始する | 受け取りと配達の中止注文の最適化から始まるサンプル シナリオを確認し、ユースケースに合ったリクエストの構築を開始します。 |
利用可能なクライアント ライブラリ
Route Optimization API で使用可能なクライアント ライブラリのリストについては、クライアント ライブラリをご覧ください。
次のステップ
- Route Optimization API の使用を開始する: 基本リクエストを実行するをご覧ください。
- 課金について: 使用量と請求額
- サンプルコードとライブラリを見る: クライアント ライブラリ、オープンソース