IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-40116アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法
<>
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図1
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図2
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図3
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図4
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図5A
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図5B
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図6
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図7
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図8
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図9
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図10
  • 特開-アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024040116
(43)【公開日】2024-03-25
(54)【発明の名称】アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20240315BHJP
【FI】
G06Q50/10
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023131595
(22)【出願日】2023-08-10
(31)【優先権主張番号】17/931246
(32)【優先日】2022-09-12
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.WCDMA
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】ウシジマ-ムウェシグワ・ハヤト
(72)【発明者】
【氏名】シャチ・ポーヤ
(72)【発明者】
【氏名】ゴーシュ・インドラディープ
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC12
(57)【要約】
【課題】アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法を提供する。
【解決手段】ある実施形態では、車両ルーティング問題に関連するパラメータのセットが受領される。最適化問題に関連する決定変数のセットおよび制約条件のセットが受領される。最適化問題が構築される。最適化問題が部分問題のセットに分割される。部分問題のセットのそれぞれは、倉庫のセットのうちの倉庫のサブセットに対応する。前記部分問題のセットのそれぞれについて中間解が決定され、前記部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定する。前記部分問題のセットのそれぞれに関連付けられた中間解が組み合わされて、受領された制約条件のセットに基づいて前記最適化問題の最終解を決定する。決定された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットを示す。最終解はディスプレイ・デバイス上にレンダリングされる。
【選択図】図1
【特許請求の範囲】
【請求項1】
プロセッサによって実行される方法であって:
車両ルーティング問題に関連するパラメータのセットを受領する段階であって、
前記車両ルーティング問題は、車両のセットを使用してアイテムのセットの送達のために、デポと倉庫のセットとの間の最適なルートのセットを決定することを目標とする最適化問題であり、
前記最適なルートのセットに関連する総コストは、前記デポと前記倉庫のセットとの間の可能なルートのセットに関連する最小コストに対応する、段階と;
前記最適化問題に関連する決定変数のセットを受領する段階と;
受領された前記パラメータのセットおよび受領された前記決定変数のセットに基づいて、前記最適化問題に関連する制約条件のセットを受領する段階と;
受領された前記制約条件のセットに基づいて前記最適化問題を構築する段階と;
前記構築された最適化問題を部分問題のセットに分割する段階であって、前記部分問題のセットのそれぞれは、前記倉庫のセットのうちの倉庫のサブセットに対応する、段階と;
アニーラー・ベースのソルバーを使用して、前記部分問題のセットのそれぞれについて中間解を決定して、前記部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定する段階と;
前記部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された前記制約条件のセットに基づいて前記最適化問題の最終解を決定する段階であって、決定された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットを示す、段階と;
前記最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングする段階とを含む、
方法。
【請求項2】
受領された前記パラメータのセットは、車両の数、車両タイプに関連付けられた準備時間、第1の位置と第2の位置との間の移動時間、一つまたは複数のアイテムの積み込みおよび/または荷下ろしのためのある位置における需要、逐次反復動作時間、ある位置についての荷下ろし期限、ある位置において積み込みを開始する最も早い時間、ある位置における最大積み込み時間、ある動作時間について車両タイプに関連付けられたコスト、車両タイプが所定量の一つまたは複数のアイテムを収容できるかどうかを示すバイナリ値、またはルートのコストのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
受領された前記決定変数のセットは:所定の動作時間を有する車両タイプがルートに割り当てられるかどうかを示すバイナリ変数、ルートにおいて第1の位置から第2の位置まで移動するのにかかる時間、2つの位置の間にかかる合計時間、ルートにおけるある位置で訪問される倉庫、ルートにおけるある位置における一つまたは複数のアイテムの積み込みまたは荷下ろしの量、ルートにおけるある倉庫に関連付けられた位置において積み込みまたは荷下ろしアクションが実行されるかどうかを示すバイナリ変数、ルートにおけるある位置における倉庫について最終積み込み候補が完了であるかどうかを示すバイナリ変数、一つまたは複数のアイテムの積み込みまたは荷下ろしの総量、ルートにおけるある倉庫における一つまたは複数のアイテムの積み込みまたは荷下ろしの量、またはルートにおける倉庫における積み込みが最大積み込み時間制約条件を満たす時間内に行われるかどうかを示すバイナリ変数のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項4】
受領された前記制約条件のセットは、車両タイプ制約条件、アクション・タイプ制約条件、距離検証制約条件、総時間制約条件、タスクおよび量マッチング検証制約条件、ルート終了および滞留検証制約条件、無効化ルート施行制約条件、需要制約条件、動作時間制約条件、期限制約条件、最大ロード時間制約条件、容量計算制約条件、および車両容量制約条件のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項5】
前記最適化問題は、前記可能なルートのセットにおける各ルートについて、動作時間について車両タイプへのルートの割り当てに関連する総コストを最小化するように構成された第1の目的関数を含む、請求項1に記載の方法。
【請求項6】
前記最適化問題は、前記最適なルートのセットに含まれる各ルートに関連する総コストの総和を最小化するように構成された第2の目的関数を含む、請求項1に記載の方法。
【請求項7】
前記部分問題のセットのうちの前記対応する部分問題に関連付けられた決定された前記中間解に対するヒューリスティック技法の適用に基づいて、前記部分問題のセットのそれぞれについて改善された中間解を決定する段階をさらに含み、
前記最終解の決定が、前記部分問題のセットのそれぞれについての決定された前記改善された中間解の組み合わせにさらに基づく、
請求項1に記載の方法。
【請求項8】
前記部分問題のセットのある部分問題に関連付けられた前記ルートのセットからルートの第1のサブセットを選択する段階と;
ルートの選択された第1のサブセットに基づいてヒューリスティック・ベースの問題を構築する段階と;
前記アニーラー・ベースのソルバーを使用して、構築された前記ヒューリスティック・ベースの問題に基づいてルートの第2のサブセットを示す解を決定する段階と;
決定された前記解を前記部分問題に関連付けられた前記中間解と比較する段階と;
前記比較に基づいて、前記決定された解を前記改善された中間解として選択する段階とをさらに含み、
前記部分問題に関連付けられた前記ルートのセットは、前記ルートの第2のサブセットに基づいて更新される、
請求項7に記載の方法。
【請求項9】
前記決定された最終解に対するヒューリスティック技法の適用に基づいて、前記最適化問題の改善された最終解を決定する段階をさらに含み、
前記改善された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットに対応する、
請求項1に記載の方法。
【請求項10】
前記部分問題のセットのそれぞれに関連付けられた前記ルートのセットに関連付けられた前記ルートのセットからルートの第3のサブセットを選択する段階と;
ルートの選択された第3のサブセットに基づいてヒューリスティック・ベースの問題を構築する段階と;
前記アニーラー・ベースのソルバーを使用して、構築された前記ヒューリスティック・ベースの問題に基づいてルートの第4のサブセットを示す解を決定する段階と;
決定された前記解を前記最終解と比較する段階と;
前記比較に基づいて、前記決定された解を前記改善された最終解として選択する段階とをさらに含み、
前記最適なルートのセットは、前記ルートの第4のサブセットに基づいて更新される、
請求項9に記載の方法。
【請求項11】
前記最終解の決定が、前記倉庫のセットを含む前記ルートのセット、前記制約条件のセットの満足、および前記最適なルートのセットに関連する総コストの最小化のうちの少なくとも1つにさらに基づく、請求項1に記載の方法。
【請求項12】
前記部分問題のセットのうちの第1の部分問題に関連付けられた位置のセットから位置の第1のサブセットを選択する段階と;
前記アニーラー・ベースのソルバーを使用して前記第1の部分問題を解くために第1の動作セットの実行を制御する段階であって、前記第1の動作セットが:
位置の選択された第1のサブセットについて、前記第1の部分問題に関連付けられた第1の部分的な解を決定し;
前記第1の部分的な解を、前記第1の部分問題に関連付けられた初期解に追加し;
前記位置のセットから位置の第2のサブセットを、位置の前記選択された第1のサブセットとして再選択することを含む、
段階と;
第1の所定数の反復にわたる前記第1の動作セットの逐次反復的実行に基づいて、前記初期解から前記第1の部分問題に関連付けられた前記中間解を得る段階とをさらに含む、
請求項1に記載の方法。
【請求項13】
前記第1の部分問題に関連付けられた前記初期解に基づいてルートの第1のサブセットを選択する段階と;
前記アニーラー・ベースのソルバーを使用して前記第1の部分問題を解くために第2の動作セットの実行を制御する段階であって、前記第2の動作セットが:
ルートの選択された第1のサブセットについて、前記第1の部分問題に関連付けられた第2の部分的な解を決定し;
前記第2の部分的な解を、前記第1の部分問題に関連付けられた前記初期解に追加し;
ルートの前記選択された第1のサブセットとして、前記初期解に基づいてルートの第2のサブセットを再選択することを含む、
段階と;
第2の所定数の反復にわたる前記第2の動作セットの逐次反復的実行にさらに基づいて、前記初期解から前記第1の部分問題に関連付けられた前記中間解を得る段階とをさらに含む、
請求項12に記載の方法。
【請求項14】
実行されることに応答して、電子デバイスに動作を実行させる命令を記憶するように構成された一つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記動作が:
車両ルーティング問題に関連するパラメータのセットを受領する段階であって、
前記車両ルーティング問題は、車両のセットを使用してアイテムのセットの送達のために、デポと倉庫のセットとの間の最適なルートのセットを決定することを目標とする最適化問題であり、
前記最適なルートのセットに関連する総コストは、前記デポと前記倉庫のセットとの間の可能なルートのセットに関連する最小コストに対応する、段階と;
前記最適化問題に関連する決定変数のセットを受領する段階と;
受領された前記パラメータのセットおよび受領された前記決定変数のセットに基づいて、前記最適化問題に関連する制約条件のセットを受領する段階と;
受領された前記制約条件のセットに基づいて前記最適化問題を構築する段階と;
前記構築された最適化問題を部分問題のセットに分割する段階であって、前記部分問題のセットのそれぞれは、前記倉庫のセットのうちの倉庫のサブセットに対応する、段階と;
アニーラー・ベースのソルバーを使用して、前記部分問題のセットのそれぞれについて中間解を決定して、前記部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定する段階と;
前記部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された前記制約条件のセットに基づいて前記最適化問題の最終解を決定する段階であって、決定された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットを示す、段階と;
前記最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングする段階とを含む、
一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項15】
受領された前記パラメータのセットは、車両の数、車両タイプに関連付けられた準備時間、第1の位置と第2の位置との間の移動時間、一つまたは複数のアイテムの積み込みおよび/または荷下ろしのためのある位置における需要、逐次反復動作時間、ある位置についての荷下ろし期限、ある位置において積み込みを開始する最も早い時間、ある位置における最大積み込み時間、ある動作時間について車両タイプに関連付けられたコスト、車両タイプが所定量の一つまたは複数のアイテムを収容できるかどうかを示すバイナリ値、またはルートのコストのうちの少なくとも1つを含む、請求項14に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項16】
受領された前記決定変数のセットは:所定の動作時間を有する車両タイプがルートに割り当てられるかどうかを示すバイナリ変数、ルートにおいて第1の位置から第2の位置まで移動するのにかかる時間、2つの位置の間にかかる合計時間、ルートにおけるある位置で訪問される倉庫、ルートにおけるある位置における一つまたは複数のアイテムの積み込みまたは荷下ろしの量、ルートにおけるある倉庫に関連付けられた位置において積み込みまたは荷下ろしアクションが実行されるかどうかを示すバイナリ変数、ルートにおけるある位置における倉庫について最終積み込み候補が完了であるかどうかを示すバイナリ変数、一つまたは複数のアイテムの積み込みまたは荷下ろしの総量、ルートにおけるある倉庫における一つまたは複数のアイテムの積み込みまたは荷下ろしの量、またはルートにおける倉庫における積み込みが最大積み込み時間制約条件を満たす時間内に行われるかどうかを示すバイナリ変数のうちの少なくとも1つを含む、請求項14に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項17】
受領された前記制約条件のセットは、車両タイプ制約条件、アクション・タイプ制約条件、距離検証制約条件、総時間制約条件、タスクおよび量マッチング検証制約条件、ルート終了および滞留検証制約条件、無効化ルート施行制約条件、需要制約条件、動作時間制約条件、期限制約条件、最大ロード時間制約条件、容量計算制約条件、および車両容量制約条件のうちの少なくとも1つを含む、請求項14に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記動作は:
前記部分問題のセットのうちの前記対応する部分問題に関連付けられた決定された前記中間解に対するヒューリスティック技法の適用に基づいて、前記部分問題のセットのそれぞれについて改善された中間解を決定する段階をさらに含み、
前記最終解の決定が、前記部分問題のセットのそれぞれについての決定された前記改善された中間解の組み合わせにさらに基づく、
請求項14に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記動作は:
前記部分問題のセットのある部分問題に関連付けられた前記ルートのセットからルートの第1のサブセットを選択する段階と;
ルートの選択された第1のサブセットに基づいてヒューリスティック・ベースの問題を構築する段階と;
前記アニーラー・ベースのソルバーを使用して、構築された前記ヒューリスティック・ベースの問題に基づいてルートの第2のサブセットを示す解を決定する段階と;
決定された前記解を前記部分問題に関連付けられた前記中間解と比較する段階と;
前記比較に基づいて、前記決定された解を前記改善された中間解として選択する段階とをさらに含み、
前記部分問題に関連付けられた前記ルートのセットは、前記ルートの第2のサブセットに基づいて更新される、
請求項18に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項20】
命令を記憶しているメモリと;
前記メモリに結合され、前記命令を実行してプロセスを実行するプロセッサと
を有する電子デバイスであって、前記プロセスは:
車両ルーティング問題に関連するパラメータのセットを受領する段階であって、
前記車両ルーティング問題は、車両のセットを使用してアイテムのセットの送達のために、デポと倉庫のセットとの間の最適なルートのセットを決定することを目標とする最適化問題であり、
前記最適なルートのセットに関連する総コストは、前記デポと前記倉庫のセットとの間の可能なルートのセットに関連する最小コストに対応する、段階と;
前記最適化問題に関連する決定変数のセットを受領する段階と;
受領された前記パラメータのセットおよび受領された前記決定変数のセットに基づいて、前記最適化問題に関連する制約条件のセットを受領する段階と;
受領された前記制約条件のセットに基づいて前記最適化問題を構築する段階と;
前記構築された最適化問題を部分問題のセットに分割する段階であって、前記部分問題のセットのそれぞれは、前記倉庫のセットのうちの倉庫のサブセットに対応する、段階と;
アニーラー・ベースのソルバーを使用して、前記部分問題のセットのそれぞれについて中間解を決定して、前記部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定する段階と;
前記部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された前記制約条件のセットに基づいて前記最適化問題の最終解を決定する段階であって、決定された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットを示す、段階と;
前記最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングする段階とを含む、
電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示で論じられる実施形態は、量子アニーリング・マシン(以下、アニーラー・ベースのソルバーとも呼ばれる)を使用した車両ルーティング問題(vehicle routing problem、VRP)の解決に関する。
【背景技術】
【0002】
オペレーショナル・リサーチの分野における進歩は、生産ライン、原料輸送、製品流通、サプライチェーン関連プロセスなどのさまざまな産業プロセスの最適化をもたらした。産業プロセスの複雑化が増すとともに、そのようなプロセスの最適化は非自明なタスクとなっている。たとえば、各産業プロセスは、プロセスの最適化中に一緒に満たされなければならない可能性があるいくつかの制約条件を有する可能性がある。産業プロセスの最適化問題の一例は、車両ルーティング問題である。車両ルーティング問題の目標は、デポと倉庫のセットとの間でアイテムを分配するために車両のセットのための最適なルートを決定することである。産業プロセスの最適化のための伝統的な方法は、かなりの時間およびコンピューティング資源を必要とする場合がある。さらに、伝統的な方法によって決定された結果は、最適でない解である可能性があり、これは、産業プロセスのために実施されると、収益の損失、時間の浪費、および追加的な労力の工数の必要性をもたらす可能性がある。よって、産業プロセスの最適化のための効率的な技法が必要とされている。
【0003】
本開示において特許請求される主題は、何らかの欠点を解決する実施形態、または上述したような環境においてのみ動作する実施形態に限定されない。むしろ、この背景は、本開示で説明されるいくつかの実施形態が実施されうる1つの例示的な技術領域を示すために提供されるにすぎない。
【発明の概要】
【課題を解決するための手段】
【0004】
ある実施形態のある側面によれば、方法は、車両ルーティング問題に関連するパラメータのセットを受信することを含みうる動作のセットを含みうる。車両ルーティング問題は、車両のセットを使用してアイテムのセットの送達のために、デポと倉庫のセットとの間の最適なルートのセットを決定することが目標であってもよい最適化問題であってもよい。さらに、最適なルートのセットに関連する総コストは、デポと倉庫のセットとの間の可能なルートのセットに関連する最小コストに対応しうる。動作のセットは、最適化問題に関連する決定変数のセットを受領することをさらに含みうる。動作のセットは、受領されたパラメータのセットおよび受領された決定変数のセットに基づいて、最適化問題に関連する制約条件のセットを受領することをさらに含みうる。動作のセットは、受領された制約条件のセットに基づいて最適化問題を構築することをさらに含みうる。動作のセットは、構築された最適化問題を部分問題のセットに分割することをさらに含みうる。部分問題のセットのそれぞれは、倉庫のセットのうちの倉庫のサブセットに対応しうる。動作のセットは、アニーラー・ベースのソルバーを使用して、部分問題のセットのそれぞれについて中間解を決定して、部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定することをさらに含みうる。動作のセットは、部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された制約条件のセットに基づいて最適化問題の最終解を決定することをさらに含みうる。決定された最終解は、車両のセットに割り当てられる最適なルートのセットを示すことができる。動作のセットは、最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングすることをさらに含みうる。
【0005】
実施形態の目的および利点は、少なくとも、特許請求の範囲において特に指摘される要素、特徴、および組み合わせによって実現および達成される。
【0006】
前述の一般的な説明および以下の詳細な説明の両方は、例として与えられ、説明的であり、特許請求される本発明を制約するものではない。
【図面の簡単な説明】
【0007】
例示的な実施形態は、添付の図面の使用を通じて追加的な具体性および詳細をもって記載および説明される。
【0008】
図1】アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法に関連する例示的な環境を表す図である。
【0009】
図2】アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための例示的な電子デバイスを示すブロック図である。
【0010】
図3】アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための例示的な方法のフローチャートを示す図である。
【0011】
図4】アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための例示的なシナリオを示す図である。
【0012】
図5A】アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための実行パイプラインを示す図の前半である。
図5B】アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための実行パイプラインを示す図の後半である。
【0013】
図6】改善された中間解から最終解を決定するための例示的な方法のフローチャートを示す図である。
【0014】
図7】部分問題のセットのそれぞれについて改善された中間解を決定するための例示的な方法のフローチャートを示す図である。
【0015】
図8】最適化問題の改善された最終解を決定するための例示的な方法のフローチャートを示す図である。
【0016】
図9】改善された最終解を決定するための例示的な方法のフローチャートを示す図である。
【0017】
図10】AおよびBは、合わせて、車両ルーティング問題に関連付けられた最適なルートのセットの決定の例示的なシナリオを示す図である。
【0018】
図11】車両ルーティング問題に関連する最適なルートのセットの決定を示すブロック図である。
【0019】
これらはみな、本開示に記載された少なくとも1つの実施形態に従う。
【発明を実施するための形態】
【0020】
本開示で説明されるいくつかの実施形態は、車両ルーティング問題に関連付けられた最適なルートのセットを決定するための方法およびシステムに関する。ここで、車両ルーティング問題は最適化問題であってもよく、その目標は、車両のセットを使用してアイテムのセットを配送するために、デポと倉庫のセットとの間の最適なルートのセットを決定することであってもよい。さらに、最適なルートのセットに関連する総コストは、デポと倉庫のセットとの間の可能なルートのセットに関連付けられた最小コストに対応しうる。本開示では、車両ルーティング問題に関連付けられたパラメータのセットが受領されうる。さらに、最適化問題に関連付けられた決定変数のセットが受領されうる。その後、受領されたパラメータのセットおよび受領された決定変数のセットに基づく最適化問題に関連付けられた制約条件のセットが受領されうる。さらに、最適化問題は、受領された制約条件のセットに基づいて構築されてもよい。構築された最適化問題は、部分問題のセットに分割されてもよい。部分問題のセットのそれぞれは、倉庫のセットのうちの倉庫のサブセットに対応しうる。さらに、アニーラー・ベースのソルバーを使用して、部分問題のセットのそれぞれについて中間解が決定されて、部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定してもよい。その後、部分問題のセットのそれぞれに関連付けられた中間解は組み合わされて、受領された制約条件のセットに基づいて最適化問題の最終解を決定することができる。ここで、決定された最終解は、車両のセットに割り当てられる最適なルートのセットを示してもよい。たとえば、最適なルートのセットは、VRPの制約条件のセットの満足を条件として、総コスト(たとえば、それらのルートをカバーするために必要とされる総時間、それらのルートに関連する総距離など)が最小である諸ルートに対応しうる。最後に、最適化問題の決定された最終解は、ディスプレイ・デバイス上にレンダリングされてもよい。
【0021】
本開示の一つまたは複数の実施形態によれば、コンピューティング・システムが車両ルーティング問題(VRP)に関連するルートのセットを決定することができうるようにコンピューティング・システムを構成することによって、オペレーショナル・リサーチの技術分野が改善されうる。コンピューティング・システムは、車両ルーティング問題に関連するパラメータのセットと、最適化問題に関連する決定変数のセットとを受領しうる。その後、コンピューティング・システムは、受領されたパラメータのセットおよび受領された決定変数のセットに基づいて、最適化問題に関連付けられた制約条件のセットを受領しうる。次に、コンピューティング・システムは、受領された制約条件のセットに基づいて最適化問題を構築することができる。さらに、コンピューティング・システムは、構築された最適化問題を部分問題のセットに分割してもよい。部分問題のセットのそれぞれは、倉庫のセットのうちの倉庫のサブセットに対応しうる。その後、コンピューティング・システムは、アニーラー・ベースのソルバーを使用して、部分問題のセットのそれぞれについて中間解を決定して、部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定することができる。さらに、コンピューティング・システムは、受領された制約条件のセットに基づいて、最適化問題の最終的な解を決定するために、部分問題のセットのそれぞれに関連付けられた中間解を組み合わせることができる。ここで、決定された最終解は、車両のセットに割り当てられる最適なルートのセットを示してもよい。たとえば、最適なルートのセットは、VRPの制約条件のセットの満足を条件として総コスト(たとえば、それらのルートをカバーするために必要とされる総時間、それらのルートに関連付けられた総距離など)が最小であるルートに対応しうる。最後に、コンピューティング・システムは、最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングすることができる。
【0022】
貨物輸送は、任意のサプライチェーンの重要な部分でありうる。車両ルーティング問題(VRP)は、デポと複数の倉庫との間の原材料、コンポーネント、および完成品の輸送を伴う産業など、さまざまな産業における多くの重要な用途に関する困難な最適化問題でありうる。車両ルーティング問題の目標は、デポと倉庫のセットとの間でアイテムを分配するために車両のセットのための最適なルートを決定することでありうる。多くの現実世界のVRPインスタンスは、そのような問題の解決を非自明にしうる複数の複雑な制約条件を含みうる。そのような最適化問題を解くために、量子コンピュータまたは量子インスパイアード(quantum-inspired)・ソルバーなどの特殊目的のハードウェアが有用でありうる。しかしながら、現在のVRPインスタンスは、最先端または近々のハードウェアに基づいて解くには大きすぎて複雑すぎる場合がある。伝統的な方法は、産業プロセスを最適化するためにかなりの時間および計算資源を必要とする場合がある。さらに、伝統的な方法によって決定された結果は、最適でない解である可能性があり、これは、産業プロセスのために実施されると、収益の損失、時間の浪費、および追加の労力の工数の必要性をもたらす可能性がある。
【0023】
一方、開示される電子デバイスは、VRP最適化問題の部分問題への分解、部分問題に対する解の決定、およびVRP最適化問題に対する最終的な解を決定するための部分問題の個々の解の組み合わせに基づいて、複数のアニーラー・ベースのソルバーを使用して複雑なVRP最適化問題を解くことができる。部分問題の個々の解の組み合わせは、最終解が制約条件を満たし、最適解でありうることを保証するために、VRP最適化問題の制約条件に従うことができる。ここで、決定された最終解は、車両のセットに割り当てられる最適なルートのセットを示してもよい。最適化問題は、異なるアニーラー・ベースのソルバーに割り当てられうる部分問題に分割されうるので、VRP最適化問題は、問題の並列化により、より少ない時間量で解かれうる。また、個々の部分問題は、全体的なVRP最適化問題よりもはるかに複雑でない可能性があるので、そのような部分問題のそれぞれを解くために、複数の安価なアニーラー・ベースのソルバー(デジタル・アニーラーなど)が使用されうる。さらに、VRP最適化問題の最終解が最適でありうるので、そのような解の実装は、車両のセットを使用してデポと倉庫のセットとの間でアイテムを分配する、基本的な産業プロセスに関連する効率および収益を増加させるのに役立ちうる。
【0024】
以下、本発明の実施の形態は、付属の図面を参照して説明される。
【0025】
図1は、本開示で説明される少なくとも1つの実施形態による、アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法に関連する例示的な環境を表す図である。図1を参照すると、環境100が示されている。環境100は、電子デバイス102、サーバー104、データベース106、通信ネットワーク108、および車両ルーティング環境110を含むことができる。電子デバイス102、サーバー104、およびデータベース106をホストするデバイスは、通信ネットワーク108を介して互いに通信上結合されてもよい。電子デバイス102は、アニーラー・ベースのソルバー102Aを含みうる。図1では、電子デバイス102に関連付けられうるか、またはそれを操作しうるユーザー112がさらに示されている。車両ルーティング環境110は、デポ114、倉庫のセット116A~116H、ならびに車両118Aおよび118Bのセットを含むことができる。オペレーター120が、デポ114に関連付けられてもよい。ドライバー122が、車両118Bに関連付けられてもよい。図1に示される倉庫116A~116Hのセット、車両118Aおよび118Bのセットは、単に例として提示されており、本開示の範囲から逸脱することなく、より多くの車両または倉庫を含むことができる。
【0026】
電子デバイス102は、パラメータのセット、決定変数のセット、および制約条件のセットに基づいてアニーラー・ベースのソルバー102Aを使用して、車両ルーティング問題(VRP)などの最適化問題を解くように構成されうる適切な論理、回路、およびインターフェースを含みうる。電子デバイス102は、車両118Aおよび118Bのセットを使用したアイテムのセットの配送のために、デポ114と倉庫116A~116Hのセットとの間の最適なルートのセットを決定するようにさらに構成されてもよい。電子デバイス102の例は、コンピューティング・デバイス、ハードウェアベースのアニーラー・デバイス、デジタルアニーラーデバイス、量子ベースまたは量子インスパイアードのアニーラー・デバイス、スマートフォン、セルラーフォン、モバイルフォン、ゲームデバイス、メインフレームマシン、サーバー、コンピュータワークステーション、および/または消費者電子(CE)デバイスを含みうるが、これらに限定されない。
【0027】
アニーラー・ベースのソルバー102Aは、特殊目的のハードウェア、たとえば、最適化問題を解くのに有用でありうる量子ハードウェアまたは量子インスパイアード・ハードウェアでありうる。本開示の一つまたは複数の実施形態では、アニーラー・ベースのソルバー102Aは、一般化量子コンピューティング・デバイスとして実装されうる。そのような実装では、一般化量子コンピューティング・デバイスは、アプリケーション層において特化した最適化解法ソフトウェア・アプリケーション(たとえば、二次制約なし二値最適化(Quadratic Unconstrained Binary Optimization、QUBO)またはソルバーの使用)を使用してもよく、それにより、最適化問題(VRPなど)に対する解を離散的な解空間から探すために、シミュレーテッド・アニーリングまたは量子アニーリングなどの探索アルゴリズムまたはメタヒューリスティック・アルゴリズムを実装する。
【0028】
一般化量子コンピューティング・デバイスは、トランジスタベースのデジタル回路に基づくデジタルデバイスなどのデジタル・ビット・ベースのコンピューティング・デバイスとは異なりうる。一般化量子コンピューティング・デバイスは、量子ビット(以下、「キュービット」と呼ぶ)を使用して、組み合わせ最適化問題を解くための量子アニーリング計算など、種々の情報処理アプリケーションのための計算を実行する一つまたは複数の量子ゲートを含むことができる。一般に、キュービットは、「0」、「1」、または「0」と「1」の両方の重ね合わせを表すことができる。ほとんどの場合、一般化された量子コンピューティング・デバイスは、適切に機能するために注意深く制御された極低温環境を必要とする場合がある。一般化された量子コンピューティング・デバイスは、量子力学系において見出されるある種の特性(たとえば、量子ゆらぎ、その固有状態の量子重ね合わせ、量子トンネリング、および量子もつれ)を使用する。これらの特性は、一般化量子コンピューティング・デバイスが、従来のコンピューティング・デバイスによって計算処理が困難なある種の数学的問題(たとえば、QUBO関数)を解くための計算を実行するのを助けうる。一般化量子コンピューティング・デバイスの例は、シリコンベースの核スピン量子コンピュータ、トラップイオン量子コンピュータ、空洞量子電気力学(QED)コンピュータ、核スピンに基づく量子コンピュータ、量子ドット内の電子スピンに基づく量子コンピュータ、超伝導ループおよびジョセフソン接合を使用する超伝導量子コンピュータ、および核磁気共鳴量子コンピュータが挙げられるが、これらに限定されない。
【0029】
いくつかの他の実施形態では、アニーラー・ベースのソルバー102Aは、シミュレーテッド・アニーリングまたは量子アニーリングなどの探索アルゴリズムまたはメタヒューリスティック・アルゴリズムを実装するように特に設計され、ハードウェア/ソフトウェアが最適化されうる量子アニーリング・コンピュータであってもよい。一般化量子コンピューティング・デバイスと同様に、量子アニーリング・コンピュータもキュービットを使用してもよく、適正に機能するために注意深く制御された極低温環境を必要とする場合がある。
【0030】
いくつかの他の実施形態では、アニーラー・ベースのソルバー102Aは、ユーザーエンドの組み合わせ最適化問題を解くためのデジタル量子コンピューティング・プロセッサに対応することができ、これは、QUBO定式化の形で提出されうる。より具体的には、アニーラー・ベースのソルバー102Aは、半導体ベースのアーキテクチャーに基づきうるデジタル・アニーラーであってもよい。デジタル・アニーラーは、デジタル回路上の量子アニーリング・コンピュータの機能性をモデル化するように設計されてもよい。デジタル・アニーラーは室温で動作してもよく、機能するのに極低温環境を必要としなくてもよい。また、デジタル・アニーラーは、コンピューティング・デバイスまたはデータセンターなどのコンピューティング・インフラストラクチャーのラック内にスライドするのに十分小さくてもよい回路基板上に適合することを許容しうる特定の形状因子を有してもよい。
【0031】
いくつかの他の実施形態では、アニーラー・ベースのソルバー102Aは、シミュレーテッド・アニーリングまたは量子アニーリングなど、一つまたは複数の探索アルゴリズムおよび/またはメタヒューリスティック・アルゴリズムに関連するソフトウェア命令を実行するためのプロセッサを含みうる。プロセッサの実装の例は、限定はしないが、縮小命令セットコンピューティング(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複雑命令セットコンピューティング(CISC)プロセッサ、グラフィカル処理ユニット(GPU)、コプロセッサ、および/またはそれらの組み合わせを含みうる。
【0032】
サーバー104は、制約条件のセットに基づいて最適化問題を構築するように構成されうる適切な論理、回路、およびインターフェース、および/またはコードを含みうる。サーバー104は、構築された最適化問題を部分問題のセットに分割し、部分問題のセットのそれぞれについて中間解を決定して、部分問題のセットのうちの対応する部分問題に関連付けられたルートのセットを決定するようにさらに構成されうる。サーバー104は、制約条件のセットに基づいて最適化問題の最終解を決定するために、部分問題のセットのそれぞれに関連付けられた中間解を組み合わせるようにさらに構成されうる。サーバー104は、クラウドサーバーとして実装されてもよく、ウェブアプリケーション、クラウドアプリケーション、HTTP要求、リポジトリ動作、ファイル転送などを通じて動作を実行してもよい。サーバー104の他の例示的実装は、データベースサーバー、ファイルサーバー、ウェブサーバー、メディアサーバー、アプリケーションサーバー、メインフレームサーバー、またはクラウドコンピューティングサーバーを含みうるが、これらに限定されない。
【0033】
少なくとも1つの実施形態において、サーバー104は、当業者に周知でありうるいくつかの技術を使用することによって、複数の分散されたクラウドベースの資源として実装されうる。当業者は、本開示の範囲が、2つの別個のエンティティとしてのサーバー104および電子デバイス102の実装に限定されない場合があることを理解するであろう。ある種の実施形態では、サーバー104の機能は、本開示の範囲から逸脱することなく、その全体において、または少なくとも部分的に、電子デバイス102に組み込まれることができる。
【0034】
データベース106は、パラメータのセット、倉庫116A~116Hのセットに関する情報、車両118Aおよび118Bのセットに関する情報、決定変数のセット、および制約条件のセットを記憶するように構成されうる適切なロジック、インターフェース、および/またはコードを含みうる。データベース106は、リレーショナルデータベースもしくは非リレーショナルデータベースからのデータ、または従来のストレージもしくはビッグデータ・ストレージ内のコンマ区切り値(csv)ファイルのセットから導出されうる。データベース106は、サーバーまたは電子デバイス102などのデバイス上に記憶またはキャッシュされうる。データベース106を記憶するデバイスは、電子デバイス102から、パラメータのセット、倉庫116A~116Hのセット、車両118Aおよび118Bのセット、決定変数のセット、および/または制約条件のセットについてのクエリーを受領するように構成されうる。応答して、データベース106のデバイスは、受領されたクエリーに基づいて、問い合わせられたパラメータのセット、倉庫116A~116Hのセットに関する情報、車両118Aおよび118Bのセットに関する情報、決定変数のセット、および/または制約条件のセットを取り出し、電子デバイス102に提供するように構成されうる。いくつかの実施形態では、データベース106は、同じ場所または異なる位置に記憶された複数のサーバー上でホストされうる。データベース106の動作は、プロセッサ、マイクロプロセッサ(たとえば、一つまたは複数の動作を実行するか、またはその実行を制御する)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含むハードウェアを使用して実行されうる。いくつかの他の例では、データベース106は、ソフトウェアを使用して実装されうる。
【0035】
通信ネットワーク108は、電子デバイス102、サーバー104、データベース106をホストするデバイス、ならびに倉庫116A~116Hのセットおよび車両118Aおよび118Bのセットに関連するデバイスが互いに通信することができる通信媒体を含むことができる。通信ネットワーク108は、有線接続または無線接続のうちの1つであってもよい。通信ネットワーク108の例は、限定はしないが、インターネット、クラウドネットワーク、セルラーもしくはワイヤレスモバイルネットワーク(ロングタームエボリューションおよび5Gニューラジオなど)、ワイヤレスフィデリティ(Wi-Fi)ネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、またはメトロポリタンエリアネットワーク(MAN)を含みうる。環境100内のさまざまなデバイスは、さまざまな有線および無線通信プロトコルに従って通信ネットワーク108に接続するように構成されうる。そのような有線および無線通信プロトコルの例は、伝送制御プロトコルおよびインターネットプロトコル(TCP/IP)、ユーザーデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、Zig Bee、EDGE、IEEE802.11、ライトフィデリティ(Li-Fi)、802.16、IEEE802.11s、IEEE802.11g、マルチホップ通信、無線アクセスポイント(AP)、デバイスツーデバイス通信、セルラー通信プロトコル、およびブルートゥース(登録商標)(BT)通信プロトコルのうちの少なくとも1つを含んでいてもよいが、これらに限定されない。
【0036】
車両118Aおよび118Bのセットのそれぞれは、たとえば、全米高速道路交通安全局(NHTSA)によって定義されるような、非自律型車両、半自律型車両、または完全自律型車両でありうる。車両118Aおよび118Bのセットの例は、二輪車、三輪車、四輪車、ハイブリッド車、または一つまたは複数の別個の再生可能または再生不可能な動力源を使用する自律駆動能力を有する車両を含むことができるが、これらに限定されない。再生可能なまたは再生不可能な動力源を使用する車両は、化石燃料ベースの車両、電気推進ベースの車両、水素燃料ベースの車両、太陽光発電車両、および/または他の形の代替エネルギー源によって動力供給される車両を含むことができる。車両118Aおよび118Bのセットは、乗員(たとえば、ドライバー122)がそれを通じて出発地点から目的地点まで移動することができるシステムであってもよい。二輪車の例は、電動二輪車、内燃機関(ICE)ベースの二輪車、またはハイブリッド二輪車を含みうるが、これらに限定されない。同様に、四輪車の例は、電気自動車、内燃機関(ICE)ベースの自動車、燃料電池ベースの自動車、太陽電池発電自動車、またはハイブリッド自動車を含みうる。車両118Aおよび118Bのセットはまた、倉庫116A~116Hのセットとデポ114との間で品物を輸送するためのトラック、ローリーなどの大型道路車両を含んでいてもよい。本発明は、他のタイプの二輪車(たとえばスクーター)または四輪車にも適用可能でありうる。他のタイプの車両の説明は、簡潔にするために本開示から省略されている。
【0037】
車両ルーティング問題(VRP)問題は、セット配送トラックへのルートの割り当ての問題でありうることが理解されうる。ほとんどのVRPの変形は、配送の総コストの最小化を扱う。異なるVRP変形は、異なる制約を有しうる。共通の制約条件は、トラックのある種の容量、顧客の需要、または配達が行われうる固定された時間窓を含みうるが、それらに限定されない。電子デバイス102は、本明細書で説明されるように、VRPを解決しうる。
【0038】
電子デバイス102は、車両ルーティング問題に関連付けられたパラメータのセットを受領しうる。本明細書では、車両ルーティング問題は、車両のセット(車両118Aおよび118Bのセットなど)を使用してアイテムのセットを配送するために、デポ(デポ114など)と倉庫のセット(倉庫116A~116Hのセットなど)との間の最適なルートのセットを決定することを目標とする最適化問題であってもよい。最適なルートのセットに関連付けられた総コストは、デポ114と倉庫116A~116Hのセットとの間の可能なルートのセットに関連付けられた最小コストに対応してもよい。巡回セールスマン問題では、車両ルーティング問題は、巡回セールスマン問題と同様であってもよく、既知の距離を有する所与の都市のセットについて、セールスマンが出発都市から所与の都市のセットの各都市に一回だけ移動し、最終的には出発都市に戻ることができるように、一つまたは複数の最短ルートが決定されうる。一つまたは複数の最短ルートの決定は、セールスマンが時間および旅費を節約することを可能にしうる。巡回セールスマン問題と同様に、車両ルーティング問題は、最適化問題を解いて、車両118Aおよび118Bのセットが最小コストで、規定の時間内にアイテムのセットを倉庫116A~116Hのセットに輸送することができるように、最適なルートのセットを決定することができる。最適化問題は、可能な解のセット(すなわち、可能なルートのセット)から最良の解(すなわち、最適なルートのセット)を決定するのに役立ちうることが理解されよう。よって、車両ルーティング問題の最良の解決策は、各倉庫が1回訪問されることができ、各車両が最後には出発点の倉庫(すなわち、デポ114)に戻ることができるように、可能な限り最短のルートでありうる最適なルートのセットでありうる。このようにして、車両118Aおよび118Bのセットの移動費用および時間を節約することができる。倉庫116A~116Hのセットとデポ114との間の最適なルートのセットは、パラメータのセットに基づいて決定されうる。パラメータのセットの例は、車両の数、車両タイプに関連付けられた準備時間、または第1の位置と第2の位置との間の移動時間を含みうるが、これらに限定されない。パラメータのセットの詳細は、たとえば、図3においてさらに提供される。
【0039】
電子デバイス102は、最適化問題に関連する決定変数のセットを受領しうる。決定変数のセットは、最適化問題の解法の間に最適化問題の解空間に関連するある種の側面を示すようその値が更新されうる変数に対応しうる。決定変数のセットは、バイナリ値または非バイナリ値を有しうる。バイナリ値を有しうる決定変数は、決定変数が真であるときに「1」であり、決定変数が偽であるときに「0」でありうる。決定変数のセットの例は、事前定義された動作時間〔オペレーション時間〕を有する車両タイプがルートに割り当てられるかどうかを示すバイナリ変数、またはルート内の第1の位置から第2の位置まで移動するのにかかる時間を含みうる。決定変数のセットの詳細は、たとえば、図3においてさらに提供される。
【0040】
電子デバイス102は、受領されたパラメータのセットおよび受領された決定変数のセットに基づいて、最適化問題に関連付けられた制約条件のセットを受領しうる。制約条件のセットは、最適化問題の限界を課しうる一つまたは複数の制限でありうる。たとえば、ある実施形態では、各ルートについて、1つの車両タイプのみおよび1つの車両動作のみが割り当てられてもよい。一例として、第1のルートについては、車両118Aは荷下ろし動作〔荷下ろしオペレーション〕を割り当てられてもよい。ここで、車両118Aは、車両118Aが訪問する諸倉庫において、アイテムのセットから一つまたは複数のアイテムを荷降ろししてもよい。制約条件のセットは、前記一つまたは複数のアイテムが、車両のセット(たとえば、車両118Aおよび118Bのセット)によって、デポ114から各倉庫へ、または各倉庫からデポ114へのみ配送されることができ、倉庫間では決して配送されえないことを保証しうる。制約条件のセットはさらに、すべての移動がデポ114から始まってもよく、倉庫のみを巡回してデポ114に戻ることができることを保証することができる。1回のトリップ(trip)では、車両118Aおよび118Bのセットは、指定された回数まで同じ倉庫を訪問することができる。複数のトリップにおいて同じ倉庫に行くことも可能でありうる。各トリップにおいては、一度だけ訪問されうる倉庫において、アイテムの積み込みおよび荷下ろしを一度に実行することが可能でありうる。各トリップにおいて、車両118Aおよび118Bのセットは、対応する車両が2回訪れる倉庫においては、1回目には荷降ろしのみを行い、2回目には積み込みのみを行うことができる。配送されるアイテムの種類は複数あってもよい。異なる荷重容量をもつ異なる車両タイプが存在しうる。場合によっては、車両の数は無制限であってもよい。車両タイプごとに、積み込みされる他のアイテムに対するあるアイテムの最大積み込み容量を含むテーブルが入力として与えられてもよい。いくつかの車両タイプは、特定の諸倉庫のみを訪問しうる。さらに、指定された数の製品が、デポ114から各倉庫に配送されることが要求されてもよく、倉庫からデポ114に配送されることが要求されうる製品の指定された数があってもよい。各倉庫における荷下ろしは、最終荷下ろし時間までに完了されうる。すべての車両は、積み込みの開始時間後に積み込みのために倉庫に行くことができる。各倉庫において、最後の車両による最終的な積み込みは、最後のトリップのロード待ち時間(last-trip load wait time)の後に行われてもよい。各車両タイプは、動作時間と関連付けられていてもよい。配送計画の総コストは、各トリップのコストの合計であってもよい。制約条件のセットの詳細は、たとえば、図3においてさらに提供される。
【0041】
ある実施形態では、制約条件のセットは、電子デバイス102に関連付けられたユーザー112からのユーザー入力として受領されうる。たとえば、電子デバイス102は、制約条件のセットを受領するためにユーザーインターフェースをユーザー112に提示しうる。ユーザーインターフェースは、ユーザー112が、ユーザー入力としての制約条件のセットのエントリーに基づいて、VRPの最適化問題に関連付けられた制約条件を定義することを可能にしうる。別の実施形態では、制約条件のセットは固定されていてもよく、たとえばデータベース106から自動的に取り出されてもよい。
【0042】
電子デバイス102は、制約条件の受領されたセットに基づいて最適化問題を構築しうる。最適化問題は、制約条件のセットの関数であってもよく、最適化問題の目標は、車両ルーティング問題のための最適なルートのセットを決定することであってもよい。制約条件のセットにおける一つまたは複数の制約条件の変形は、新しい車両ルーティング問題の構築につながりうる。よって、受領された制約条件のセットに依存して、電子デバイス102は、車両ルーティング問題を構築することができる。
【0043】
電子デバイス102は、構築された最適化問題を部分問題のセットに分割してもよく、部分問題のセットのそれぞれは、倉庫のセット(たとえば、倉庫116A~116Hのセット)のうちの倉庫のサブセットに対応しうる。車両ルーティング問題は、多数の倉庫、制約条件、決定変数、およびパラメータに起因して、計算的に非常に複雑でありうることが理解されうる。よって、複雑なハードウェアが、VRP最適化問題を解くために必要とされうる。また、VRP最適化問題の複雑さに起因して、満足のいく結果を提供しうる解を得るために大きな計算時間がかかることがある。VRPに関連する前述の問題を軽減するために、開示される電子デバイス102は、VRP最適化問題を部分問題のセットに分割することができる。ここで、各部分問題は倉庫のサブセットに対応してもよい。たとえば、倉庫のセットが100個の倉庫を含む場合、VRP最適化問題は10個の部分問題に分割されてもよく、各部分問題は10個の倉庫を含んでいてもよい。VRP最適化問題の部分問題のセットへの分割は、VRP最適化問題の解の決定に関わる複雑さを低減しうる。各部分問題の複雑さは、もとのVRP最適化問題よりも低い可能性があり、よって、部分問題のセットの各部分問題を解くことは、複雑なハードウェアを必要としない可能性があり、はるかに少ない計算時間しか必要としない可能性もある。
【0044】
電子デバイス102は、アニーラー・ベースのソルバー102Aを使用して、部分問題のセットのうちの対応する部分問題に関連付けられたルートのセットを決定するために、部分問題のセットのそれぞれについての中間解を決定しうる。論じられたように、VRP最適化問題は、複雑さを低減するために部分問題のセットに分割されうる。各部分問題は、アニーラー・ベースのソルバー102Aを使用して解かれて、対応する部分問題についての中間解を決定することができる。対応する部分問題についての中間解は、車両118Aおよび118Bのセットがそれによってアイテムのセットを最小コストで倉庫の対応するサブセットに輸送しうるルートのセットを含んでいてもよい。部分問題のセットの各部分問題は、アニーラー・ベースのソルバー102Aなどの単一のアニーラー・ベースのソルバーを使用して直列に、またはアニーラー・ベースのソルバー102Aなどの複数のアニーラー・ベースのソルバーを使用して並列に解くことができる。各部分問題を直列的に解くためには、部分問題のセットは、待ち行列内に配列されてもよく、逐次的な順序でアニーラー・ベースのソルバー102Aに提供されてもよい。部分問題のセットを並列に解くためには、部分問題のセットは、複数のアニーラー・ベースのソルバーに一度に供給されうる。並列に解くことは、より多くのアニーラー・ベースのソルバーを必要としうるが、部分問題のセットを解くためにかかる計算時間は、大幅に低減されうる。部分問題のセットのそれぞれに関連付けられた中間解は、VRP最適化問題の部分的な解であってもよく、完全な解でなくてもよいことに留意されたい。
【0045】
電子デバイス102はさらに、部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された制約条件のセットに基づいて最適化問題の最終解を決定することができる。ここで、決定された最終解は、車両のセット(たとえば、車両118Aおよび118Bのセット)に割り当てられる最適なルートのセットを示すことができる。最終解は、部分問題のセットのそれぞれに関連付けられた中間解の組み合わせに基づいて取得されうるので、最終解は、VRP最適化問題の完全な解と見なされうる。最終解は、車両118Aおよび118Bのセットが、最小コストで倉庫116A~116Hのセットおよびデポ114へ、またはそれらからアイテムのセットを輸送することができるように、最適なルートのセットを示すことができる。よって、最適なルートのセットは、車両118Aおよび118Bのセットが取ることができる最短の可能なルートを含むことができる。たとえば、部分問題のセットが第1の部分問題、第2の部分問題、および第3の部分問題を含む場合、最終解を得るために、各部分問題の中間解が組み合わされてもよい。
【0046】
電子デバイス102は、最適化問題の決定された最終解をディスプレイ・デバイス(図2のディスプレイ・デバイス208Aなど)上にレンダリングすることができる。決定された最終解は、電子デバイス102、デポ114、および車両118Bにそれぞれ関連付けられたユーザー112、および/またはオペレーター120、および/またはドライバー122が最適なルートのセットを見ることができるように、ディスプレイ・デバイス上に提示されてもよい。次いで、オペレーター120またはユーザー112は、車両118Bのドライバー122に、デポ114と倉庫116A~116Hのセットとの間でアイテムのセットを輸送するために、最適なルートのセットを取るように指示することができる。ある実施形態では、最終解は、最適なルートのセットをとるようにドライバー122を案内しうる。たとえば、ディスプレイ・デバイスは、最適なルートのセットに従うようにドライバー122を案内するための地図などのガイダンスを提供しうる。
【0047】
電子デバイス102は、最適化問題を部分問題のセットに分割し、分割された部分問題のセットの並列の部分的な解を決定することにより、より短い時間で最適なルートのセットを決定することができる。また、アニーラー・ベースのソルバー(たとえば、デジタルアニーラー)などの安価なソルバーを使用して、そのような各部分問題を解くことができる。このようにして得られた最終解は最適でありうる。その解が最適でありうるので、そのような解の実装は、車両118Aおよび118Bのセットを使用して、デポ114と倉庫116A~116Hのセットとの間でアイテムのセットを配送する基本的な産業プロセスに関連する効率および収益を増加させるのに役立ちうる。
【0048】
本開示の範囲から逸脱することなく、図1に対して修正、追加、または省略を行うことができる。たとえば、環境100は、本開示において図示され説明されるものよりも多いまたは少ない要素を含んでいてもよい。たとえば、いくつかの実施形態において、環境100は、電子デバイス102を含むが、データベース106を含まなくてもよい。さらに、いくつかの実施形態では、データベース106およびサーバー104のそれぞれの機能は、本開示の範囲から逸脱することなく、電子デバイス102に組み込まれてもよい。
【0049】
図2は、本開示で説明される少なくとも1つの実施形態による、アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための例示的な電子デバイスを示すブロック図である。図2は、図1の要素に関連して説明される。図2を参照すると、電子デバイス102を含むシステム202のブロック図 200が示されている。電子デバイス102は、プロセッサ204、メモリ206、アニーラー・ベースのソルバー102A、入出力(I/O)デバイス208(ディスプレイ・デバイス208Aを含む)、およびネットワーク・インターフェース210を含みうる。
【0050】
プロセッサ204は、メモリ206に記憶された命令のセットを実行するように構成されうる適切な論理、回路、およびインターフェースを含みうる。プロセッサ204は、電子デバイス102によって実行されるべき種々の動作に関連付けられたプログラム命令を実行するように構成されうる。たとえば、動作のうちのいくつかは、パラメータのセット、決定変数のセット、および制約条件のセットを受領することを含みうる。プロセッサ204は、最適化問題を構築し、構築された最適化問題を部分問題のセットに分割するように構成されうる。プロセッサ204は、部分問題のセットのうちの対応する部分問題に関連付けられたルートのセットを決定するために、部分問題のセットのそれぞれについて中間解を決定するようにさらに構成されうる。プロセッサ204は、受領された制約条件のセットに基づいて最適化問題の最終解を決定するために、部分問題のセットのそれぞれに関連付けられた中間解を組み合わせるようにさらに構成されうる。プロセッサ204は、当技術分野で知られているいくつかのプロセッサ技術に基づいて実装されうる。プロセッサ技術の例は、中央処理装置(CPU)、X86ベースのプロセッサ、縮小命令セットコンピューティング(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複雑命令セットコンピューティング(CISC)プロセッサ、グラフィカル処理ユニット(GPU)、コプロセッサ、またはこれらの組み合わせを含みうるが、これらに限定されない。
【0051】
図2では単一のプロセッサとして示されているが、プロセッサ204は、本開示で説明するように、電子デバイス102の任意の数の動作を個別にまたは集合的に、実行するか、またはその実行を指揮するように構成された任意の数のプロセッサを含みうる。加えて、プロセッサのうちの一つまたは複数は、異なるサーバー等の一つまたは複数の異なる電子デバイス上に存在してもよい。いくつかの実施形態では、プロセッサ204は、プログラム命令を解釈および/または実行し、および/またはメモリ206に記憶されたデータを処理するように構成されうる。プログラム命令がメモリ206にロードされた後、プロセッサ204はプログラム命令を実行することができる。
【0052】
メモリ206は、プロセッサ204によって実行されるべき前記一つまたは複数の命令を記憶するように構成されうる適切な論理、回路、およびインターフェースを含みうる。メモリ206に記憶された前記一つまたは複数の命令は、プロセッサ204(および電子デバイス102)の種々の動作を実行するためにプロセッサ204によって実行されうる。メモリ206は、パラメータのセット、決定変数のセット、制約条件のセット、倉庫116A~116Hのセットおよび車両118Aおよび118Bのセットに関する情報を記憶するように構成されうる。メモリ206は、構築された最適化VRP、部分問題、および部分問題のセットの部分的な解(すなわち、中間解)に関連付けられた情報を記憶するようにさらに構成されうる。メモリ206の実装の例は、限定はしないが、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、CPUキャッシュ、および/またはセキュアデジタル(SD)カードを含みうる。
【0053】
I/Oデバイス208は、ユーザー112から入力を受領し、受領された入力に基づいて出力を提供するように構成されうる適切なロジック、回路、およびインターフェースを含んでいてもよい。たとえば、I/Oデバイス208は、ユーザー112からのユーザー入力として、パラメータのセット、決定変数のセット、および制約条件のセットを受領することができる。さらに、I/Oデバイス208は、VRP最適化問題の最終解に対応する最適なルートのセットをユーザー112のための出力としてレンダリングすることができる。さまざまな入力デバイスおよび出力デバイスを含みうるI/Oデバイス208は、プロセッサ204と通信するように構成されうる。I/Oデバイス208の例は、限定はしないが、タッチスクリーン、キーボード、マウス、ジョイスティック、マイクロフォン、ディスプレイ・デバイス(たとえば、ディスプレイ・デバイス208A)、およびスピーカーを含みうる。
【0054】
ディスプレイ・デバイス208Aは、VRP最適化問題の最終解を表示するように構成されうる適切な論理、回路、およびインターフェースを含みうる。ディスプレイ・デバイス208Aは、ユーザーがディスプレイ・デバイス208Aを介してユーザー入力を提供することを可能にしうるタッチスクリーンでありうる。タッチスクリーンは、抵抗式タッチスクリーン、容量式タッチスクリーン、または熱式タッチスクリーンのうちの少なくとも1つであってもよい。ディスプレイ・デバイス208Aは、限定はしないが、液晶ディスプレイ(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、もしくは有機LED(OLED)ディスプレイ技術、または他のディスプレイ・デバイスのうちの少なくとも1つなどだがそれに限定されない、いくつかの既知の技術を通して実現されうる。ある実施形態によれば、ディスプレイ・デバイス208Aは、ヘッドマウントデバイス(HMD)、スマートグラスデバイス、シースルーディスプレイ、投影型ディスプレイ、エレクトロクロミックディスプレイ、または透明ディスプレイの表示画面を指すことができる。
【0055】
ネットワーク・インターフェース210は、通信ネットワーク108を介して、プロセッサ204と、サーバー104と、データベース106をホストするデバイス(および/または環境100内の任意の他のデバイス)との間の通信を容易にするように構成されうる適切な論理、回路、およびインターフェースを含みうる。ネットワーク・インターフェース210は、通信ネットワーク108との電子デバイス102の有線または無線通信をサポートするために、さまざまな既知の技術の使用によって実装されうる。ネットワーク・インターフェース210は、限定はしないが、アンテナ、無線周波数(RF)トランシーバ、一つまたは複数の増幅器、チューナ、一つまたは複数の発振器、デジタル信号プロセッサ、コーダ‐デコーダ(コーデック)チップセット、加入者識別情報モジュール(SIM)カード、またはローカル・バッファ回路を含みうる。ネットワーク・インターフェース210は、ワイヤレス通信を介して、インターネット、イントラネットなどのネットワーク、またはセルラー電話ネットワーク、ワイヤレスローカルエリアネットワーク(LAN)、およびメトロポリタンエリアネットワーク(MAN)などのワイヤレスネットワークと通信するように構成されうる。無線通信は、グローバル移動通信システム(GSM)、向上データGSM環境(EDGE)、広帯域符号分割多元接続(W-CDMA)、ロングタームエボリューション(LTE)、第5世代(5G)ニューラジオ(NR)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetoothワイヤレスフィデリティ(Wi-Fi)(IEEE802.11a、IEEE802.11b、IEEE802.11g、またはIEEE802.11nなど)、ボイスオーバインターネットプロトコル(VoIP)、ライトフィデリティ(Li-Fi)、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(Wi-MAX)、電子メール用プロトコル、インスタントメッセージング、およびショートメッセージサービス(SMS)などの複数の通信規格、プロトコルおよび技術のうちの一つまたは複数を使用するように構成されてもよい。
【0056】
本開示の範囲から逸脱することなく、例示的な電子デバイス102に対して、修正、追加、または省略が行われうる。たとえば、いくつかの実施形態では、例示的な電子デバイス102は、簡潔にするために明示的に図示または説明されていないことがありうる任意の数の他の構成要素を含んでいてもよい。
【0057】
図3は、本開示のある実施形態による、アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための例示的な方法のフローチャートを示す図である。図3は、図1および図2からの要素に関連して説明される。図3を参照すると、フローチャート300が示されている。フローチャート300に示される方法は、302において開始することができ、図1の例示的な電子デバイス102または図2のプロセッサ204など、任意の適切なシステム、装置、またはデバイスによって実行することができる。離散的なブロックで示されているが、フローチャート300のブロックのうちの一つまたは複数に関連するステップおよび動作は、具体的な実装に応じて、追加のブロックに分割されるか、より少ないブロックに組み合わされるか、または削除されうる。
【0058】
ブロック302において、車両ルーティング問題(VRP)に関連付けられたパラメータのセットが受領されうる。ここで、車両ルーティング問題は、車両118Aおよび118Bのセットを使用してアイテムのセットを配送するために、デポ114と倉庫116A~116Hのセットとの間の最適なルートのセットを決定することを目標としうる最適化問題であってもよい。さらに、最適なルートのセットに関連する総コストは、デポ114と倉庫116A~116Hのセットとの間の可能なルートのセットに関連する最小コストに対応する。ある実施形態では、プロセッサ204は、車両ルーティング問題に関連付けられたパラメータのセットを受領するように構成されうる。上述したように、車両ルーティング問題は、巡回セールスマン問題と同様でありうる。車両ルーティング問題は、車両118Aおよび118Bのセットが、最小コストで規定時間内にデポ114と倉庫116A~116Hのセットとの間でアイテムのセットを輸送することができるように、最適なルートのセットを決定するための最適化問題に対応することができる。最適化問題は、可能な解のセットから最良の解を決定するのに役立ちうることが理解されうる。車両ルーティング問題についての最良の解は、最適なルートのセットでありうる。本明細書では、最適なルートのセットは、各倉庫が1回訪問されることができ、各車両が最後に出発点の倉庫(すなわち、デポ114)に戻ることができるように、可能な最短ルートでありうる。このようにして、車両118Aおよび118Bのセットによって必要とされる移動費用および時間が節約されうる。倉庫116A~116Hのセットとデポ114との間の最適なルートのセットは、パラメータのセットに基づいて決定されうる。パラメータのセットの詳細は、たとえば、図5Aにおいてさらに提供される。
【0059】
ブロック304において、最適化問題に関連付けられた決定変数のセットが受領されうる。ある実施形態では、プロセッサ204は、最適化問題に関連付けられた決定変数のセットを受領するように構成されうる。決定変数のセットは、最適化問題の解空間に関連するある側面を示すよう、最適化問題の解法の間にその値が更新されうる変数に対応しうる。決定変数のセットは、バイナリ値または非バイナリ値を有しうる。決定変数はバイナリ値を、決定変数が真であるときに「1」と見なし、決定変数が偽であるときに「0」と見なすことができる。決定変数のセットの例は、所定の動作時間を有する車両タイプがルートに割り当てられうるかどうかを示すバイナリ変数、ルート内の第1の位置から第2の位置まで移動するのにかかる時間などを含みうる。決定変数のセットの詳細は、たとえば、図5Aにさらに提供される。
【0060】
ブロック306において、最適化問題に関連付けられた制約条件のセットが、受領されたパラメータのセットおよび受領された決定変数のセットに基づいて受領されうる。ある実施形態では、プロセッサ204は、受領されたパラメータのセットおよび受領された決定変数のセットに基づいて、最適化問題に関連付けられた制約条件のセットを受領するように構成されうる。制約条件のセットは、最適化問題に限界を課しうる一つまたは複数の制限でありうる。たとえば、ある実施形態では、各ルートについて、1つの車両タイプのみおよび1つのアクション・タイプのみが割り当てられてもよい。ある実施形態では、制約条件のセットは、電子デバイス102に関連付けられたユーザー112からのユーザー入力として受領されうる。別の実施形態では、制約条件のセットは固定されてもよく、たとえばデータベース106から自動的に検索されてもよい。制約条件のセットの詳細は、たとえば、図5Aにさらに提供される。
【0061】
ブロック308において、最適化問題は、受領された制約条件のセットに基づいて構築されうる。ある実施形態では、プロセッサ204は、受け取った制約条件のセットに基づいて最適化問題を構築するように構成されうる。上述したように、最適化問題は、制約条件のセットの関数であってもよく、最適化問題の目標は、車両ルーティング問題のための最適なルートのセットを決定することである。制約条件のセットにおける変形は、新しい車両ルーティング問題の構築につながりうる。よって、受領された制約条件のセットに応じて、最適化問題が構築されうる。最適化問題の構築に関する詳細は、たとえば、図5Aに提供される。
【0062】
ブロック310において、構築された最適化問題は、部分問題のセットに分割されうる。部分問題のセットのそれぞれは、倉庫116A~116Hのセットのうちの倉庫のサブセットに対応しうる。ある実施形態では、プロセッサ204は、構築された最適化問題を部分問題のセットに分割するように構成されうる。上述したように、車両ルーティング問題は、多数の倉庫、制約条件、決定変数、およびパラメータに起因して、計算的に非常に複雑でありうる。よって、複雑なハードウェアが、VRP最適化問題を解くために必要とされうる。さらに、車両ルーティング問題の複雑さに起因して、満足のいく結果を提供するVRP最適化問題の解を得るために、長い計算時間が必要とされうる。VRPに関連する前述の問題を軽減するために、VRP最適化問題は部分問題のセットに分割されてもよい。ここで、各部分問題は倉庫のサブセットに対応してもよい。たとえば、倉庫のセットが100個の倉庫を含む場合、VRP最適化問題は10個の部分問題に分割されてもよく、各部分問題は10個の倉庫を含んでいてもよい。VRP最適化問題を部分問題のセットに分割することは、VRPの複雑さを扱うのに役立ちうる。各部分問題の複雑さは、もとのVRP最適化問題よりも低い可能性があり、よって、部分問題のセットの各部分問題を解くことは、複雑なハードウェアを必要としない可能性がある。
【0063】
ブロック312において、アニーラー・ベースのソルバー102Aを使用して、部分問題のセットのそれぞれについての中間解が決定されて、部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定することができる。ある実施形態では、プロセッサ204は、アニーラー・ベースのソルバー102Aを使用して、部分問題のセットのそれぞれについて中間解を決定して、部分問題のセットの対応する部分問題に関連付けられたルートのセットをさらに決定するように構成されうる。説明したように、VRP最適化問題は、複雑さを低減するために部分問題のセットに分割されうる。さらに、各部分問題は、アニーラー・ベースのソルバー102Aを使用して解かれて、対応する部分問題の中間解を決定することができる。対応する部分問題についての中間解は、車両118Aおよび118Bのセットが最小コストでアイテムのセットを倉庫の対応するサブセットに輸送しうるルートのセットを含んでいてもよい。部分問題のセットの各部分問題は、単一のアニーラー・ベースのソルバー(たとえば、アニーラー・ベースのソルバー102A)を使用して直列的に、または複数のアニーラー・ベースのソルバー(アニーラー・ベースのソルバー102Aなど)を使用して並列に解くことができる。各部分問題を直列的に解くためには、部分問題のセットは、待ち行列に配列されてもよく、逐次的な順序でアニーラー・ベースのソルバー102Aに提供されてもよい。部分問題のセットを並列に解くためには、部分問題のセットは、複数のアニーラー・ベースのソルバーに一度に供給されうる。並列に解くことは、より多くのアニーラー・ベースのソルバーを必要としうるが、部分問題のセットを解くためにかかる計算時間は、大幅に低減されうる。部分問題のセットのそれぞれに関連付けられた中間解は、VRP最適化問題の部分的な解であってもよく、完全な解でなくてもよいことに留意されたい。
【0064】
ブロック314において、部分問題のセットのそれぞれに関連付けられた中間解が組み合わされて、受領された制約条件のセットに基づいて最適化問題の最終解を決定することができる。ある実施形態では、プロセッサ204は、部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された制約条件のセットに基づいて最適化問題の最終解を決定するように構成されてもよい。ここで、決定された最終解は、車両118Aおよび118Bのセットに割り当てられる最適なルートのセットを示すことができる。最終解は、部分問題のセットのそれぞれに関連付けられた中間解の組み合わせによって取得されうるので、最終解は、VRP最適化問題の完全な解と見なされうる。最終解は、車両118Aおよび118Bのセットが、最小コストで倉庫116A~116Hのセットおよびデポ114へ、またはそれらからアイテムのセットを輸送することができるように、最適なルートのセットを示すことができる。よって、最適なルートのセットは、車両118Aおよび118Bのセットが取ることができる最短の可能なルートを含むことができる。たとえば、部分問題のセットが第1の部分問題、第2の部分問題、および第3の部分問題を含む場合、最終解を得るために、各部分問題の中間解が組み合わされてもよい。
【0065】
ブロック316において、最適化問題の決定された最終解は、ディスプレイ・デバイス208A上にレンダリングされうる。ある実施形態では、プロセッサ204は、最適化問題の決定された最終解をディスプレイ・デバイス208A上にレンダリングするように構成されうる。決定された最終解は、電子デバイス102、デポ114、および車両118Bにそれぞれ関連付けられたユーザー112、および/またはオペレーター120、および/またはドライバー122が最適なルートのセットを見ることができるように、ディスプレイ・デバイス208A上に提示されてもよい。次いで、オペレーター120またはユーザー112は、車両118Bのドライバー122に、デポ114と倉庫116A~116Hのセットとの間でアイテムのセットを輸送するために、最適なルートのセットを取るように指示することができる。ある実施形態では、最終解は、最適なルートのセットに従うようにドライバー122を案内することができる。
【0066】
フローチャート300は、302、304、306、308、310、312、314、および316などの離散的な動作として示されている。しかしながら、ある種の実施形態では、そのような離散的な動作は、開示された実施形態の本質から逸脱することなく、具体的な実装に応じて、追加的な動作にさらに分割されるか、より少ない動作に組み合わされるか、または削除されうる。
【0067】
図4は、本開示において説明される少なくとも1つの実施形態による、アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための例示的なシナリオを示す図である。図4は、図1図2、および図3からの要素に関連して説明される。図4を参照すると、例示的なシナリオ400が示されている。例示的なシナリオ400は、パラメータ402のセット、決定変数404のセット、制約条件406のセット、最適化問題408、部分問題410A~410Kのセット、中間解412A~412K、中間解組み合わせ414のための動作、および最終解416を含むことができる。K個の部分問題および中間解は例示目的のためのものであり、本開示の範囲を限定するように解釈されるべきではない。部分問題および中間解のセットは、本開示の範囲から逸脱することなく、それぞれ、2つのみまたはK個よりも多い数の部分問題および中間解を含みうる。
【0068】
プロセッサ204は、車両ルーティング問題に関連付けられたパラメータのセット402を受領するように構成されうる。ここで、車両ルーティング問題は、最適化問題408であってもよく、その目標は、車両118Aおよび118Bのセットを使用してアイテムのセットを配送するために、デポ114と倉庫116A~116Hのセットとの間の最適なルートのセットを決定することであってもよい。さらに、最適なルートのセットに関連付けられた総コストは、デポ114と倉庫116A~116Hのセットとの間の可能なルートのセットに関連付けられた最小コストに対応しうる。可能なルートのセットは、ドライバー122がアイテムのセットを配送するためにとりうる全ての可能なルートを含みうる。可能なルートのセットのすべてのルートが最適であるとは限らないことに留意されたい。ルートのいくつかに関連付けられた移動コストは、他のルートに関連付けられた移動コストよりも大きい可能性がある。最適化問題408は、車両ルーティング問題を解いて、可能なルートのセットから最適なルートのセットを決定することができ、それにより、アイテムのセットを倉庫116A~116Hのセットに輸送するための車両118Aおよび118Bのセットに関連する移動コストが最小コストになりうる。倉庫116A~116Hのセットとデポ114との間の最適なルートのセットは、パラメータ402のセットに基づいて決定されうる。パラメータのセット402の詳細は、たとえば、図5Aにおいてさらに提供される。
【0069】
プロセッサ204は、最適化問題408に関連付けられた決定変数404のセットを受領するように構成されうる。決定変数404のセットは、最適化問題の解空間に関連するある側面を示すよう、最適化問題の解法の間にその値が更新されうる変数に対応しうる。決定変数のセットは、バイナリ値または非バイナリ値を有しうる。決定変数は、バイナリ値を、決定変数が真であるときに「1」と見なし、決定変数が偽であるときに「0」と見なすことができる。決定変数404のセットの例は、所定の動作時間を有する車両タイプがルートに割り当てられるかどうかを示すバイナリ変数、ルート内の第1の位置から第2の位置まで移動するのにかかる時間などを含みうる。決定変数404のセットの詳細は、たとえば、図5Aにおいてさらに提供される。
【0070】
プロセッサ204は、受領されたパラメータ402のセットおよび受領された決定変数404のセットに基づいて、最適化問題408に関連付けられた制約条件406のセットを受領するように構成されうる。制約条件406のセットは、最適化問題408を拘束しうる一つまたは複数の制限でありうる。たとえば、ある実施形態では、各ルートについて、1つの車両タイプのみおよび1つの車両動作のみが割り当てられてもよい。ある実施形態では、制約条件406のセットは、電子デバイス102に関連付けられたユーザー112からのユーザー入力として受領されうる。別の実施形態では、制約条件406のセットは固定されていてもよく、たとえばデータベース106から自動的に取り出されてもよい。制約条件406のセットの詳細は、たとえば、図5Aにおいてさらに提供される。
【0071】
プロセッサ204は、制約条件406の受領されたセットに基づいて最適化問題408を構築するように構成されうる。上述したように、最適化問題408は、制約条件406のセットの関数であってもよく、最適化問題408の目標は、車両ルーティング問題のための最適なルートのセットを決定することでありうる制約条件406のセットの変形は、新しい車両ルーティング問題の構築をもたらすことができる。よって、受領された制約条件406のセットに応じて、最適化問題408を構築することができる。
【0072】
プロセッサ204は、構築された最適化問題408を部分問題410A~410Kのセットに分割するように構成されうる。部分問題410A~410Kのセットのそれぞれは、倉庫のセット(たとえば、倉庫116A~116Hのセット)のうちの倉庫のサブセットに対応しうる。上述したように、車両ルーティング問題は、多数の倉庫、制約条件、決定変数、およびパラメータに起因して、計算的に非常に複雑でありうる。よって、車両ルーティング問題を解くために、複雑で高価なハードウェアが必要とされる場合がある。さらに、車両ルーティング問題の複雑さに起因して、満足のいく解を得るために必要とされる計算時間および計算資源はかなりなものでありうる。VRP最適化問題408に関連する前述の問題を軽減するために、VRP最適化問題408は、部分問題410A~410Kのセットに分割されてもよい。ここで、各部分問題は倉庫のサブセットに対応してもよい。図4を参照すると、最適化問題408は、部分問題410A~410Kのセットに分割されうる。ここで、部分問題410A~410Kのセットは、第1の部分問題410A、第2の部分問題410B、…、および第Kの部分問題410Kなど、K個の部分問題を含みうる。各部分問題(第1の部分問題410Aなど)の複雑さは、全体としての最適化問題408の複雑さよりも低い可能性があり、よって、個々の部分問題を解くために複雑なハードウェアが必要とされない可能性がある。また、個々の部分問題は、複数のソルバーによって並列に解くことができ、それにより、最適化問題408を解くのに必要な計算時間をさらに短縮することができる。
【0073】
プロセッサ204は、アニーラー・ベースのソルバー102Aを使用して、部分問題410A~410Kのセットのそれぞれについての中間解を決定して、部分問題410A~410Kのセットの対応する部分問題に関連付けられたルートのセットを決定するように構成されうる。各部分問題についての中間解は、車両118Aおよび118Bのセットが最小コストでアイテムのセットを部分問題に対応する倉庫のサブセットに輸送することができるルートのセットを含むことができる。たとえば、第1の部分問題410Aを解いて中間解1 412Aを得ることができ、第2の部分問題410Bを解いて中間解2 412Bを得ることができ、…第Kの部分問題410Kを解いて中間解K 412Kを得ることができる。部分問題のセットの各部分問題は、単一のアニーラー・ベースのソルバー(たとえば、アニーラー・ベースのソルバー102A)を使用して直列的に、または複数のアニーラー・ベースのソルバー(アニーラー・ベースのソルバー102Aなど)を使用して並列に解くことができる。各部分問題を直列的に解くためには、部分問題のセットは、待ち行列に配列されてもよく、逐次的な順序でアニーラー・ベースのソルバー102Aに提供されてもよい。たとえば、アニーラー・ベースのソルバー102Aは、まず、第1の部分問題410Aを解いて、中間解1 412Aを得ることができる。次に、アニーラー・ベースのソルバー102Aは、第2の部分問題410Bを解いて中間解412Bを得ることができる、などとなって、最後には、K番目の部分問題410Kを解くことができる。部分問題のセットを並列に解くためには、部分問題のセットは、複数のアニーラー・ベースのソルバーに一度に供給されうる。たとえば、K個のアニーラー・ベースのソルバーを使用して、K個の部分問題410A~410Kのセットを解くことができる。第1のアニーラー・ベースのソルバーは、第1の部分問題410Aを解くことができ、第2のアニーラー・ベースのソルバーは、第2の部分問題410Bを解くことができ、などとなる。部分問題のセットを並列に解くことは、よって、より多くのアニーラー・ベースのソルバーを必要としうるが、部分問題410A~410Kのセットを解くためにかかる時間は、低減されうる。中間解412A~412Kのそれぞれは、最適化問題408の部分的な解と呼ばれることもある。
【0074】
中間解の組み合わせ414のための動作において、プロセッサ204は、部分問題410A~410Kのセットのそれぞれに関連付けられた中間解(個々の中間解412A~412Kなど)を組み合わせて、受領された制約条件406のセットに基づいて最適化問題408の最終解416を決定することができる。ここで、決定された最終解416は、車両のセット(たとえば、車両118Aおよび118Bのセット)に割り当てられる最適なルートのセットを示すことができる。最終解416は、部分問題410A~410Kのセットのそれぞれに関連付けられた中間解の組み合わせに基づいて取得されうるので、最終解416は、VRP最適化問題408の完全な解と見なされうる。最終解416は、車両118Aおよび118Bのセットが、最小コストで倉庫116A~116Hのセットとデポ114との間でアイテムのセットを輸送することができるような、VRPの最適なルートのセットを示すことができる。よって、最適なルートのセットは、車両118Aおよび118Bのセットが取ることができる最短の可能なルートを含むことができる。たとえば、中間解1 412A、中間解2 412A、…、および中間解K 412Kは、最終解416を決定するために組み合わされうる。
【0075】
プロセッサ204は、最適化問題408の決定された最終解416をディスプレイ・デバイス208A上にレンダリングするように構成されうる。決定された最終解416は、電子デバイス102、デポ114、および車両118Bにそれぞれ関連付けられたユーザー112、および/またはオペレーター120、および/またはドライバー122が最適なルートのセットを見ることができるように、ディスプレイ・デバイス208A上に提示されうる。次いで、オペレーター120またはユーザー112は、車両118Bのドライバー122に、デポ114と倉庫116A~116Hのセットとの間でアイテムのセットを輸送するために、最適なルートのセットを取るように指示することができる。ある実施形態では、最終解416は、最適なルートのセットをとるようにドライバー122を案内することができる。
【0076】
図5Aおよび図5Bは、本開示のある実施形態による、アニーラー・ベースのソルバーを使用する車両ルーティング問題(VRP)の解法のための実行パイプラインを示す図である。図5Aおよび図5Bは、図1図2図3、および図4からの要素に関連して説明される。図5Aおよび図5Bを参照すると、実行パイプライン500が示されている。例示的な実行パイプライン500は、電子デバイス102など、図1の一つまたは複数の構成要素によって実行されうる動作のセットを含むことができる。動作は、パラメータ受領動作502、決定変数受領動作504、制約条件受領動作506、最適化問題構築動作508、部分問題決定動作510、中間解決定動作512、および最終解決定動作514を含むことができる。動作のセットは、本明細書で説明されるように、アニーラー・ベースのソルバー(アニーラー・ベースのソルバー102Aなど)を使用して車両ルーティング問題(VRP)を解決するために電子デバイス102によって実行されうる。
【0077】
502では、パラメータ受領動作が実行されうる。パラメータ受領動作において、プロセッサ204は、車両ルーティング問題に関連付けられたパラメータのセット(たとえば、パラメータ502A)を受領するように構成されうる。ここで、車両ルーティング問題は、最適化問題(最適化問題508Aなど)であってもよく、その目標は、車両118Aおよび118Bのセットを使用してアイテムのセットを配送するために、デポ114と倉庫116A~116Hのセットとの間の最適なルートのセットを決定することであってもよい。最適なルートのセットに関連付けられた総コストは、デポ114と倉庫116A~116Hのセットとの間の可能なルートのセットに関連付けられた最小コストに対応しうる。説明したように、可能なルートのセットは、ドライバー122がアイテムのセットを配送するために取ることができるすべての可能なルートを含むことができる。ある実施形態では、可能なルートのセットのすべてのルートが最適であるとは限らない場合がある。ルートのいくつかに関連付けられた移動コストは、他のルートに関連付けられた移動コストよりも大きい可能性がある。車両ルーティング問題は、最適化問題(最適化問題508Aなど)を解いて、デポ114と倉庫116A~116Hのセットとの間のアイテムのセットの輸送のための車両118Aおよび118Bのセットに関連付けられた移動コストが最小コストでありうるように、可能なルートのセットから最適なルートのセットを決定することができる。倉庫116A~116Hのセットおよびデポ114をカバーする最適なルートのセットは、パラメータのセット(たとえば、パラメータ502A)に基づいて決定されてもよい。
【0078】
パラメータ(たとえば、パラメータ502A)の受領されたセットの例は、車両の数、車両タイプに関連付けられた準備時間、第1の位置と第2の位置との間の移動時間、一つまたは複数のアイテムの積み込みおよび/または荷下ろしのための位置における需要、逐次反復動作時間、位置についての荷下ろし期限、位置において積み込みを開始する最も早い時間、位置における最大積み込み時間、動作時間について車両タイプに関連付けられたコスト、車両タイプが所定量の一つまたは複数のアイテムを収容しうるかどうかを示すバイナリ値、またはルートのコストを含みうるが、これらに限定されない。
【0079】
車両数は、VRP最適化問題における車両の総数であってもよい。車両の数は「m」で表されてもよい。VRP最適化問題における車両の総数のうちのすべての車両が、アイテムのセットの配送に参加しうるわけではないことに留意されたい。いくつかの車両は、単にデポ114に留まることもある。車両のセットは、一つまたは複数の車両タイプのものでありうることに留意されたい。一例では、車両のセットは下記のうちの一つまたは複数を含みうる:自転車または二輪車、乗用車、タンク車、バン、貨物トラックなど。別の例では、車両タイプは、その車両タイプの車両によって配達されうる、前記アイテムのセットからのあるアイテムのタイプに対応しうる。ある実施形態では、アイテムのセットは、第1のアイテムタイプのアイテム、第2のアイテムタイプのアイテム、…、および第nのアイテムタイプのアイテムなど、さまざまなタイプのアイテムを含みうる。車両タイプAは、第1のアイテムタイプのアイテムを配送することができ、第2の車両タイプBは、第2のアイテムタイプのアイテムを配送することができ、…、第Nの車両タイプNは、第Nのアイテムタイプのアイテムを配送することができる。
【0080】
車両タイプに関連付けられた準備時間は、その車両タイプの車両がデポ114と倉庫116A~116Hのセットとの間のアイテムのセットの輸送のために使用されうる前に、その車両タイプによってかかる時間に対応しうる。車両タイプ「u」についての準備時間は、「bu」と表すことができる。準備時間の例は、その車両タイプの車両の給油し、該車両の手入れをするためにかかる時間(たとえば、ブレーキ液の交換にかかる時間等)を含みうる。
【0081】
第1の位置と第2の位置との間の移動時間は、車両のセット(たとえば、車両118Aおよび118Bのセット)が第1の位置から第2の位置まで移動するのにかかる時間であってもよい。第1の位置および第2の位置は、地理的位置または地理的座標に関して表されてもよい。ある実施形態では、第1の位置は、倉庫116A~116Hのセットのうちの1つの倉庫に対応してもよく、第2の位置は、倉庫116A~116Hのセットのうちの別の倉庫に対応してもよい。たとえば、第1の位置は倉庫116Aの地理的位置または座標であってもよく、第2の位置は倉庫116Hの地理的位置または座標であってもよい。別の実施形態では、第1の位置は、デポ114の位置であってもよく、第2の位置は、倉庫116A~116Hのセットのうちのいずれかの倉庫の位置であってもよい。倉庫「u」と倉庫「v」との間の距離は、「du,v」として表されうる。
【0082】
一つまたは複数のアイテムの積み込みおよび/または荷降ろしのための位置における需要は、その位置における積み込みおよび/または荷降ろしに必要な時間量を提供しうる。異なる位置が異なる需要を有しうることが理解されうる。たとえば、倉庫116Aは、1トンの鋼棒の供給を必要としてもよく、倉庫116Eは、500キログラムの鋼棒および500キログラムのセメントの供給を必要としうる。ここで、車両118Aおよび118Bのセットは、倉庫116Aにおいて1トンの鋼棒を荷降ろししてもよく、倉庫116Eにおいて500キログラムの鋼棒および500キログラムのセメントを荷降ろししてもよい。積み込み/荷下ろしタイプ「α」についての倉庫「w」における需要は、「Dw,α」として表されうる。ここで、αは、倉庫「w」で実行されるアクションのタイプを表すことができる。アクションのタイプは、一つまたは複数のアイテムが倉庫「w」において車両に積み込まれうる積み込みタイプ、または一つまたは複数のアイテムが倉庫「w」において車両に荷下ろしされうる荷下ろしタイプでありうる。
【0083】
最適なルートのセットからの任意のルートは、いくつかの逐次反復動作を含みうることに留意されたい。車両の1回の逐次反復動作は、ルート内の1つの倉庫から次の倉庫への、またはデポ114からルート内の次の倉庫への車両のトリップを含むことができる。たとえば、第1の逐次反復動作において、車両118Aは倉庫116Aから倉庫116Bへ移動してもよく、第2の逐次反復動作において、車両118Aは倉庫116Bから倉庫116Cへ移動してもよい。逐次反復動作時間は、1つの逐次反復動作を実行するのにかかる時間であってもよく、i番目の動作時間は「Oi」として表されてもよく、ここで、iは、0、1、2などの任意の整数をとりうる。
【0084】
位置についての位置についての荷下ろし期限は、その位置についての荷下ろし需要が満たされるべき時間期限でありうる。荷下ろし期限は、位置ごとに異なってもよく、その位置の始業時間、その位置の終業時間などの要因に依存してもよい。たとえば、倉庫116Aについての荷下ろし期限は「8:00PM」であってもよい。ここで、車両118Aは、たとえば、原材料を「8:00PM」までに荷下ろししてもよい。よって、原材料が倉庫116Aにおいて「8:00PM」までに荷下ろしされうるように、最適なルートのセットが選択されうる。倉庫「w」についての荷下ろし期限は、「Ew」として表されうる。
【0085】
その位置で積み込みを開始する最も早い時間は、それより後ならその位置における車両が積み込みを開始しうる時間を示しうる。積み込みを開始する最も早い時間は、位置ごとに異なっていてもよく、その位置の始業時間、その位置の終業時間などの要因に依存しうる。たとえば、デポ114は、「7:00AM」からセメントの積み込みを開始してもよい。よって、車両118Aおよび118Bのセットは、「7:00PM」以降に積み込みのためにデポ114に到着することができる。「7:00AM」の前には、デポ114は、いかなる積み込み要求も受け入れることができない。倉庫「w」で開始しうる最も早い時間の積み込みは、「Sw」として表されうる。
【0086】
ある位置における最大積み込み時間は、それ以内にその位置において積み込みが実行されうる時間制限でありうる。最大積み込み時間は、位置ごとに異なっていてもよく、その位置の始業時間、その位置の終業時間等の要因に依存しうる。たとえば、デポ114における最大積み込み時間は「10:00PM」であってもよい。よって、車両118Aおよび118Bのセットは、「10:00PM」の前にデポ114において積み込みされてもよい。倉庫「w」での最大積み込み時間は「Mw」として表されうる。
【0087】
動作時間について車両タイプに関連付けられたコストは、動作時間について車両タイプを動作させるために被るコストを提供しうる。たとえば、動作時間について車両タイプに関連付けられたコストは、動作時間について車両タイプによって消費される燃料の量に関連したコスト、動作時間についてその車両タイプをレンタルすることに関連したコスト、動作時間についてその車両タイプの故障に起因して関連したコストなどの合計であってもよい。各動作時間においてカバーされる時間は異なりうるので、各動作時間についてその車両タイプに関連付けられたコストは変動しうる。動作時間「o」について車両タイプ「u」に関連付けられたコストは、車両タイプ「u」および動作時間「o」の関数であってもよく、「cost(u,o)」として表されてもよい。
【0088】
車両タイプが所定量の一つまたは複数のアイテムを収容することができるかどうかを示すバイナリ値は、「0」または「1」としての値をとりうる。バイナリ値(すなわち、車両タイプが所定量の一つまたは複数のアイテムを収容することができるかどうかを示すバイナリ値)は、車両タイプの容量に依存してもよく、車両タイプが所定量の一つまたは複数のアイテムを収容することができる場合には「1」であってもよく、そうでない場合には「0」であってもよい。車両タイプuがアイテム「a」および「b」の「i」および「j」の量をそれぞれ収容することができるかどうかを示すバイナリ値は、「Fu.i.j」として表すことができる。ここで、車両タイプuがアイテム「a」および「b」の「i」および「j」の量をそれぞれ収容することができる場合、「Fu.i.j」は「1」に設定されてもよく、そうでない場合、「Fu.i.j」は「0」に設定されてもよい。
【0089】
ルートのコストは、車両118Aおよび118Bのセットが、デポ114と倉庫116A~116Hのセットとの間でアイテムのセットを輸送するためにそのルートを取りうるときに被りうる総コストであってもよい。ルートのコストは、そのルートに沿ってたどられる総距離、そのルートにおける交通状況、車両タイプ、そのルートのために車両をレンタルするコスト、そのルートのためにドライバー(たとえば、車両118Bのドライバー122)を雇用するコストなどのパラメータに依存しうる。ルート「r」のコストは、「rcost(r)」と表されうる。
【0090】
パラメータ(たとえば、パラメータ502A)のセットに加えて、インデックスのセットが、最適化問題508Aのために事前定義されうる。インデックスのセットの例は、動作時間のセット、車両タイプのセット、車両の数、倉庫のセット、およびアクション(たとえば、積み込みアクションおよび荷下ろしアクション)のセットを含みうる。
【0091】
504では、決定変数受領動作が実行されうる。決定変数受領動作では、プロセッサ204は、最適化問題(たとえば、最適化問題508A)に関連付けられた決定変数(たとえば、決定変数504A)のセットを受領するように構成されうる。決定変数504Aは、最適化問題508Aの解空間に関連するある側面を示すよう、最適化問題508Aの解法の間にその値が更新されうる変数に対応しうる。決定変数504Aは、バイナリ値または非バイナリ値を有しうる。決定変数はバイナリ値を、決定変数が真であるときに「1」と見なし、決定変数が偽であるときに「0」と見なすことができる。
【0092】
決定変数(たとえば、決定変数504A)の受領されたセットの例は、下記を含むがそれに限定されない:事前定義された動作時間を有する車両タイプがルートに割り当てられうるかどうかを示すバイナリ変数、ルート内の第1の位置から第2の位置まで移動するのにかかる時間、2つの位置の間でかかる総時間、ルート内のある位置で訪問された倉庫、ルート内のある位置における一つまたは複数のアイテムの積み込みまたは荷降ろしの量、ルート内の倉庫に関連付けられた位置において積み込みまたは荷降ろしアクションが実行されうるかどうかを示すバイナリ変数、ルート内のある位置における倉庫について最終積み込み候補が完了でありうるかどうかを示すバイナリ変数、一つまたは複数のアイテムの積み込みまたは荷降ろしの総量、ルート内のある倉庫における一つまたは複数のアイテムの積み込みまたは荷降ろしの量、またはルート内の諸倉庫における積み込みが最大積み込み時間制約条件を満たす時間内に行われうるかどうかを示すバイナリ変数。
【0093】
バイナリ変数(すなわち、所定の動作時間を有する車両タイプがルートに割り当てられるかどうかを示すバイナリ変数)は、所定の動作時間を有する車両タイプがルートに割り当てられる場合に「1」に設定されてもよく、そうでない場合に「0」に設定されてもよい。動作時間「o」を有する車両タイプ「u」がルート「r」に割り当てられるかどうかを示すバイナリ変数は、「xu,o,r」として表されうる。ここで、動作時間「o」をもつ車両タイプ「u」がルート「r」に割り当てられる場合、「xu,o,r」は「1」とみなされてもよく、動作時間「o」をもつ車両タイプ「u」がルート「r」に割り当てられない場合、「xu,o,r」は「0」とみなされてもよい。
【0094】
ルートにおいて第1の位置から第2の位置まで移動するのにかかる時間は、第1の位置から第2の位置まで移動するのにかかる平均時間を提供してもよい。ルート内の第1の位置から第2の位置まで移動するのにかかる時間は、ルート上を移動する車両のタイプ、ルートの交通状況、天候状況、第1の位置と第2の位置とを接続する道路の状況などに依存しうる。第1の位置がステップ「p-1」において訪問され、第2の位置がステップ「p」において訪問される場合、ルート「r」についてステップ「p-1」から「p」まで移動するのにかかる時間は、「τr,p」と表されてもよく、これは、ルート「r」について「1」からの任意の正の10進数(decimal number)を含みうる。
【0095】
2つの位置の間にかかる総時間は、2つの位置を移動するのにかかる時間、積み込み/荷下ろし時間、および待ち時間の合計でありうる。ルート「r」についてステップ「p-1」から「p」までに移動するのにかかる総時間は、積み込み/荷下ろし時間および待ち時間を含むことができる。ここで、待ち時間は、他の車両が積み込み/荷下ろしされているなどのいくつかの理由によって車両が待機する必要がある継続時間であってもよい。いくつかの場合には、車両がある位置で積み込みを開始する最も早い時間の前にその位置を訪れた場合、車両はその位置で待つ必要があり、その位置での車両の待ち時間が長くなる可能性がある。第1の位置がステップ「p-1」において訪問され、第2の位置がステップ「p」において訪問される場合、ルート「r」についてステップ「p-1」からステップ「p」までに移動するのにかかる総時間は、「τT r,p」と表されてもよい。
【0096】
ルート「r」内のステップ「p」において訪問されうる倉庫は、「wr,p」として表されてもよく、整数が割り当てられてもよい。倉庫116A~116Hのセットの各倉庫およびデポ114には、特定の番号を割り当てられてもよい。たとえば、デポ114は「0」として割り当てられてもよく、倉庫116Aは「1」として割り当てられてもよく、倉庫116Bは「2」として割り当てられてもよく、以下同様である。ここで、倉庫116Aがルート「r」におけるステップ「p」で訪問される場合、「wr,p」は「1」でありうる。
【0097】
ルート内のある位置における一つまたは複数のアイテムの積み込みまたは荷下ろしの量は、固体でありうる一つまたは複数のアイテムについてはキログラムなどの単位で与えられてもよく、液体である一つまたは複数のアイテムについてはリットルなどの単位で与えられてもよい。ルート「r」上のその位置を訪問している間にステップ「p」で行われるアイテム「a」またはアイテム「b」の積み込みまたは荷下ろしの量は、次のように表されてもよい:
cr,w,p,α∈N
ここで、α∈{la,lb,ua,ub}である。ここで、「α」は、アクションのタイプを示しうる。アクションのタイプ「α」は、第1のアイテム「a」がロードされる必要があるときの「la」、第2のアイテム「b」がロードされる必要があるときの「lb」、第1のアイテム「a」が荷下ろしされる必要があるときの「ua」、および第2のアイテム「b」が荷下ろしされる必要があるときの「ub」でありうる。その位置において第1のアイテム「a」がロードされる必要があり、第2のアイテム「b」が荷下ろしされる必要がある場合、「cr,w,p,α」は、その位置においてロードされる第1のアイテム「a」の量および荷下ろしされる第2のアイテム「b」の量を提供しうる。
【0098】
ルート内の倉庫に関連付けられた位置で積み込みまたは荷下ろしアクションが実行されるかどうかを示すバイナリ変数は、ルート内の倉庫に関連付けられた位置で積み込みまたは荷下ろしアクションが実行されるときに「1」に設定されてもよい。倉庫wを訪問している間に、ルート「r」上でステップ「p」において、積み込みまたは荷下ろしアクション「α」が実行されるかどうかを示すバイナリ変数は、次のように表されてもよい:
ar,w,p,α∈{0,1}
「ar,w,p,α」は、倉庫「w」を訪問中に、ルート「r」上でステップ「p」において、積み込みまたは荷下ろしアクション「α」が実行される場合に「1」に設定されてもよく、倉庫「w」を訪問中に、ルート「r」上でステップ「p」において、積み込みまたは荷下ろしアクション「α」が実行されない場合に「0」に設定されてもよい。
【0099】
最終積み込み候補がルート内のその位置にある倉庫について完了であるかどうかを示すバイナリ変数は、その倉庫で積み込みされている車両が最終積み込み候補であるかどうかに対応しうる。倉庫「i」についての最終積み込み候補がルート「r」内のその位置でステップ「p」で完了されるかどうかを示すバイナリ変数は、次のように表されてもよい:
fr,p,i∈{0,1}
ここで「fr,p,i」は、倉庫「i」についての最終積み込み候補がルート「r」におけるその位置でのステップ「p」で完了されない場合は「0」であってもよく、倉庫「i」についての最終積み込み候補がルート「r」におけるその位置のステップ「p」で完了される場合は「1」であってもよい。
【0100】
一つまたは複数のアイテムの積み込みまたは荷下ろしの総量は、前記一つまたは複数のアイテムのうちの各アイテムの積み込みまたは荷下ろしの量の合計に基づいて決定されうる。アクション・タイプ「i」についての第1のアイテム「a」または第2のアイテム「b」の積み込みまたは荷下ろしの総量は、次のように表されてもよい(ここで、i∈{la,lb,ua,ub}):
cr,i∈N
たとえば、1000キログラムのアイテム「a」が積み込みされ、500キログラムのアイテム「b」が荷下ろしされる場合、「cr,i」は1500でありうる。
【0101】
ルート内の倉庫における一つまたは複数のアイテムの積み込みまたは荷下ろしの量は、ルート内のすべてのステップについての倉庫における前記一つまたは複数のアイテムの積み込みまたは荷下ろしの量の合計に基づいて見出されうる。ルート「r」内の倉庫「w」についてアクション・タイプ「α」によって与えられる一つまたは複数のアイテムの積み込みまたは荷下ろしの量は、次のように表されてもよい:
rw,α∈N
たとえば、倉庫「w」について、ステップ「2」で1000キログラムのアイテム「a」が積み込まれ、ステップ「100」で500キログラムのアイテム「a」が積み込まれた場合、ルート内の倉庫「w」におけるアイテム「a」の積み込みまたは荷降ろしの量は、1500と決定されうる。
【0102】
バイナリ変数(すなわち、ルートにおける諸倉庫での積み込みが、最大積み込み時間制約条件を満たす時間内に行われるかどうかを示すバイナリ変数)は、それらの倉庫での積み込みが最大積み込み時間の前に行われうるときに「1」でありうる。それらの倉庫での積み込みが、時間が最大積み込み時間制約条件を満たさないように行われる場合、前述のバイナリ変数は「0」の値を達成してもよい。時間が最大積み込み時間maxを満たすように、ルート「r」において諸倉庫についての積み込みが行われるかどうかを示すバイナリ変数は、次のように表されてもよい:
rw,max∈{0,1}
【0103】
506では、制約条件受領動作が実行されうる。制約条件受領動作では、プロセッサ204は、受領されたパラメータ(たとえば、パラメータ502A)のセットおよび受領された決定変数(たとえば、決定変数504A)のセットに基づいて、最適化問題508Aに関連する制約条件(たとえば、制約条件506A)のセットを受領するように構成されうる。制約条件(たとえば、制約条件506A)のセットは、最適化問題508Aを拘束しうる一つまたは複数の制限でありうる。制約条件のセットは、電子デバイス102に関連付けられたユーザー112からのユーザー入力として受領されうる。別の実施形態では、制約条件のセットは、あらかじめ定義されてもよく、たとえば、データベース106から自動的に取り出されてもよい。
【0104】
制約条件506Aの例は、下記のうちの少なくとも1つを含みうるが、それに限定されない:車両タイプ制約条件、アクション・タイプ制約条件、距離検証制約条件、総時間制約条件、タスクおよび量マッチング検証制約条件、ルート終了および滞留検証制約条件、無効化ルート施行制約条件、需要制約条件、動作時間制約条件、期限制約条件、最大ロード時間制約条件、容量計算制約条件、または車両容量制約条件。
【0105】
車両タイプ制約条件は、車両タイプに関する制約条件であってもよい。車両タイプ制約条件は、各ルートについて、ちょうど1つの車両タイプおよび1つの動作タイプが選択されうることを定義してもよい。よって、バイナリ変数(すなわち、すべてのルートおよび車両タイプについて、事前定義された動作時間を有する車両タイプがルートに割り当てられるかどうかを示すバイナリ変数)の和は、「1」であってもよく、これは、下記の式(1)によって表されうる:
【数1】
ここで、「xu,o,r」は、事前定義された動作時間「o」を有する車両タイプ「u」がルート「r」に割り当てられるかどうかを示すバイナリ変数を表すことができる。すなわち、車両タイプ「u」、たとえばタンク車がルート「r」のために割り当てられる場合、車両タイプ「v」、たとえば自動車は、同じルート「r」に割り当てられない可能性がある。これにより、特定のルートは、特定の車両タイプのみに割り当てられることができる。
【0106】
アクション・タイプ制約条件は、各ルートの各ステップについて1つのアクション・タイプのみが選択されうることを定義してもよく、これは、下記の式(2)によって表されうる:
【数2】
ここで、「ar,w,p,i」は、倉庫「w」を訪問している間に、ステップ「p」において、ルート「r」上でアクション・タイプ「i」が実行されるかどうかを示すバイナリ変数を表しうる。ここで、アクション・タイプ「i」は、荷下ろしアクションまたは積み込みアクションであってもよい。よって、ステップ「p」において、ルート「r」上で倉庫「w」を訪問している間に積み込み動作が実行される場合、ステップ「p」において、荷下ろしアクションは実行されなくてもよい。
【0107】
距離検証制約条件は、ステップ「p-1」において倉庫「u」が訪問され、ルート「r」のステップ「p」において倉庫「v」が訪問される場合、所要時間は距離行列内の値に対応しうることを述べてもよい。本明細書では、距離行列は、倉庫116A~116Hのセットの倉庫のさまざまなペア間の距離と、デポ114と倉庫116A~116Hのセットの任意の倉庫との間の距離とを含みうる表であってもよい。時間および距離は互いに正比例しうるので、時間および距離の指標は、VRP最適化問題508Aにおいて交換可能でありうることに留意されたい。よって、VRP最適化問題508Aは、ルート上の進む距離またはルート上を進むのにかかる時間の最小化に基づいて、最小コストの最適なルートのセットを得るように解くことができる。距離検証制約条件は、次のように式(3)によって表されうる:
【数3】
ここで、「ar,u,p-1,α1」は、倉庫「u」を訪問している間にステップ「p-1」においてルート「r」上でアクション・タイプ「α1」(たとえば、荷下ろしまたは積み込み)が実行されるかどうかを示すバイナリ変数を表してもよい。
「ar,v,p,α2」は、倉庫「v」を訪問している間にステップ「p」においてルート「r」上でアクション・タイプ「α2」(たとえば、荷下ろしまたは積み込み)が実行されるかどうかを示すバイナリ変数を表しうる。
「τr,p」は、ルート「r」についてステップ「p-1」から「p」までに移動するのにかかる時間を表すことができ、「du,v」は、倉庫「u」から倉庫「v」まで移動するための時間を表すことができる。
【0108】
総時間制約条件は、総時間に対する制約条件であってもよい。総時間制約条件は、総時間が積み込み/荷下ろし時間を含むことを述べる。動作時間「o」をもつ車両タイプ「u」がルート「r」に割り当てられる場合、ステップ「0」から次のステップ、たとえばルート「r」についてのステップ「p-1」までの移動にかかる総時間(積み込み/荷下ろし時間および待ち時間を含む)は、ステップ「0」から次のステップまでの移動にかかる時間と車両タイプ「u」に関連付けられた準備時間との合計以上であってもよい。これは、次の式(4)によって表されてもよい:
【数4】
ここで、「xu,o,r」は、動作時間「o」をもつ車両タイプ「u」がルート「r」に割り当てられるかどうかを示すバイナリ変数を表しうる。
「τT r,0」は、ルート「r」についてステップ「0」から次のステップ、たとえばステップ「p-1」までに移動するのにかかる総時間(積み込み/荷下ろし時間および待ち時間を含む)を表しうる。
「τr,0」は、ルート「r」上でステップ「0」から次のステップ、たとえばステップ「p-1」まで移動するのにかかる時間を表しうる。
「bu」は、車両タイプ「u」に関連付けられた準備時間を表しうる。
【0109】
ここで、ステップ「0」において、車両タイプ「u」は、デポ114にあってもよい。よって、車両タイプ「u」は、ステップ「0」において、デポ114から出発してもよい。倉庫「w」を訪問している間にルート「r」上でステップ「p」においてアクション・タイプ「α」(たとえば荷下ろしまたは積み込み)が実行される場合、ルート「r」についてステップ「p-1」からステップ「p」まで進むのにかかる総所要時間(積み込み/荷下ろし時間、待ち時間を含む)は、ルート「r」上でステップ「p-1」からステップ「p」まで進むのにかかる時間と車両タイプ「u」に関連付けられた準備時間との和以上でありうる。上述の制約条件は、次の式(5)によって表されてもよい:
【数5】
【0110】
倉庫「0」を訪問している間のステップ「p」におけるルート「r」が無効にされている(すなわち、ルート「r」上では倉庫「0」においてアクションが実行されない)場合、ルート「r」上でステップ「p-1」からステップ「p」まで進むのにかかる合計時間(積み込み/荷下ろし時間、および待ち時間を含む)は、ルート「r」上でステップ「p-1」からステップ「p」まで進むのにかかる時間以上でありうる。これは、次の式(6)によって表されてもよい:
【数6】
ここで、「ar,0,p,"d"」は、ルート「r」上の倉庫「w」を訪問している間のステップ「p」が無効にされるかどうかを示すバイナリ変数を表しうる。ここで、「p」は「0」とはされなくてもよい。ステップ「0」では、車両はデポ114にあってもよいからである。
【0111】
タスクおよび量マッチング検証制約条件は、ルート内のある位置について実行されるべきアクション・タイプ、およびルート内のその位置における一つまたは複数のアイテムの積み込みまたは荷下ろしの量に関する制約に対応しうる。一つまたは複数のアイテムが第1のアイテム「a」および第2のアイテム「b」を含む場合、倉庫「w」を訪問している間にステップ「p」においてルート「r」上で積み込み動作タイプ「l」が実行される場合、倉庫「w」を訪問している間のルート「r」上のステップ「p」における第1のアイテム「a」の積み込み量と第2のアイテム「b」の積み込み量との合計は、0より大きくてもよい。よって、第1のアイテム「a」および/または第2のアイテム「b」のうちの少なくとも1つは、ステップ「p」において積み込みされうる。前述の制約条件は、次の式(7)によって表されてもよい:
【数7】
ここで、「ar,w,p,"l"」は、ルート「r」上の倉庫「w」を訪問している間に、ステップ「p」において積み込みアクション・タイプ「l」が実行されうるかどうかを示すバイナリ変数を表しうる。
「cr,p,w,"la"」は、ルート「r」上の倉庫「w」を訪問している間の位置「p」における第1のアイテム「a」の積み込み量を表しうる。
「cr,p,w,"lb"」は、ルート「r」上の倉庫「w」を訪問している間の位置「p」における第2のアイテム「b」の積み込み量を表しうる。
【0112】
倉庫「w」を訪問している間に、ステップ「p」においてルート「r」上で荷下ろしアクション・タイプ「u」が実行される場合、倉庫「w」を訪問している間のルート「r」上のステップ「p」における第1のアイテム「a」の荷下ろし量と第2のアイテム「b」の荷下ろし量との和は、0より大きくてもよい。よって、第1のアイテム「a」および/または第2のアイテム「b」のうちの少なくとも1つは、ステップ「p」において荷下ろしされてもよい。前述の制約条件は、次の式(8)によって表されてもよい:
【数8】
ここで、「ar,w,p,"u"」は、ルート「r」上で倉庫「w」を訪問している間にステップ「p」において荷下ろしアクション・タイプ「u」が実行されうるかどうかを示すバイナリ変数を表しうる。
「cr,p,w,"ua"」は、ルート「r」上の倉庫「w」を訪問している間の位置「p」における第1のアイテム「a」の荷下ろしの量を表しうる。
「cr,p,w,"ub"」は、ルート「r」上の倉庫「w」を訪問している間の位置「p」における第2のアイテム「b」の荷下ろしの量であってもよい。
【0113】
倉庫「w」を訪問中にステップ「p」においてルート「r」上で積み込みアクション・タイプ「u」が実行されない場合、倉庫「w」を訪問中のルート「r」上のステップ「p」における第1のアイテム「a」の積み込み量と第2のアイテム「b」の積み込み量との和は0であってもよい。すなわち、下記の式(9)に示されるように、ステップ「p」において、第1アイテム「a」も第2アイテム「b」も積み込みされない。
【数9】
【0114】
倉庫wを訪問中にルート「r」上のステップ「p」で荷下ろしアクション・タイプ「u」が実行されない場合、下記の式(10)に示されるように、倉庫「w」を訪問中のルート「r」上のステップ「p」での第1のアイテム「a」の荷下ろし量と第2のアイテム「b」の荷下ろし量との和は0でありうる(すなわち、第1のアイテム「a」も第2のアイテム「b」もステップ「p」において荷下ろしされない)となる。
【数10】
【0115】
アクション・タイプ「α」が倉庫「u」を訪問している間にステップ「p」でルート「r」上で実行される場合、ルート「r」内のステップ「p」で訪問されうる倉庫は、次の式(11)によって表されるように、倉庫「u」へのものでありうる。
【数11】
ここで、「ar,u,p,α」は、アクション・タイプ「α」が倉庫「u」を訪問している間にルート「r」上でステップ「p」で実行されるかどうかを示すバイナリ変数を表しうる。
「wr,p」は、ルート「r」上のステップ「p」において訪問される倉庫を表しうる。
【0116】
ルート終了および滞留検証制約条件は、ルート終了制約条件および滞留検証制約条件を含むことができる。ルート終了制約条件は、下記の式(12)によって表されるように、ひとたび車両がデポ114に戻ると、車両はその後他の倉庫を訪問しなくてもよい(すなわち、車両はルート内の諸倉庫を訪問後に各ルートの終わりにデポ114に戻ってもよい)ことを述べてもよい。
【数12】
ここで、「ar,0,p,α」は、デポ114を訪問している間に、ステップ「p」においてルート「r」上でアクション・タイプ「α」が実行されるかどうかを示すバイナリ変数を表しうる。
「ar,0,p+1,α」は、デポ114を訪問している間に、ステップ「p+1」においてルート「r」上でアクション・タイプ「α」が実行されるかどうかを示すバイナリ変数を表しうる。よって、車両がステップ「p」でデポ114に戻った場合、車両は、ステップ「p+1」でもデポ114に留まってもよい。
【0117】
車両は、ステップ「p」およびステップ「p+1」等の2つの連続するステップの間、倉庫116A~116Hのセットのいずれの倉庫にも留まらなくてもよい。上述の制約条件は、次の式(13)によって表されてもよい:
【数13】
ここで、「ar,w,p,α」は、倉庫「w」を訪問している間に、ルート「r」上でステップ「p」においてアクション・タイプ「α」が実行されるかどうかを示すバイナリ変数を表しうる。
「ar,w,p+1,α」は、倉庫「w」を訪問している間に、ルート「r」上でステップ「p+1」においてアクション・タイプ「α」が実行されるかどうかを示すバイナリ変数を表しうる。よって、倉庫「w」を訪問している間、ルート「r」上でステップ「p」においてアクション・タイプ「α」が実行される場合、倉庫「w」を訪問している間、ルート「r」上でステップ「p+1」においてアクション・タイプ「α」実行されなくてもよい(すなわち、ステップ「p+1」において、車両は倉庫「w」に滞在しなくてもよい)。
【0118】
車両のセットの車両の数は知られていなくてもよいことに留意されたい。よって、多数の車両が車両のセットにおいて割り当てられてもよく、いくつかのルートはトリビアルなルートであってもよい。いくつかの車両タイプは、何もしない可能性があり、デポ114に留まる可能性がある。無効にされたルート施行制約条件は、上記の条件を施行しうる。ここで、あるルートについて、ある車両タイプ、たとえば車両タイプ「0」が、その車両がいずれの倉庫も訪れないように選択される場合、その車両は、デポ114に留まってもよく、そのルートについて無効にされうる。上記の条件は、次の式(14)で表されてもよい:
【数14】
ここで、「x0,t,r」は、動作時間「t」をもつ車両タイプ「0」がルート「r」に割り当てられるかどうかを示すバイナリ変数であり、
「ar,0,0,"d"」は、倉庫「0」、すなわちデポ114を訪れている間に、ステップ「p」においてルート「r」上でタイプ「0」の車両によって、無効にされたアクション・タイプ「d」が実行されるかどうかを示すバイナリ変数を表しうる。したがって、動作時間「t」を有する車両タイプ「0」がルート「r」に割り当てられ、倉庫「0」(すなわち、デポ114)を訪問している間にステップ「p」において、無効にされたアクション・タイプ「d」を実行する場合、車両タイプ「0」はルート「r」上のいかなる倉庫も訪問しない可能性がある。
【0119】
需要制約条件は、各倉庫における積み込みまたは荷下ろし需要が満たされることを保証することができる。したがって、倉庫「w」についてルート「r」上のステップ「p」における第1のアイテム「a」または第2のアイテム「b」の積み込みまたは荷下ろしの量の合計は、倉庫「w」における、積み込み/荷下ろしアクション・タイプαの需要に等しくてもよい。需要制約条件は、次の式(15)によって表されてもよい。
【数15】
ここで、「cr,w,p,α」は、アクション・タイプ「α」について、ルート「r」上でステップ「p」で行われた第1のアイテム「a」または第2のアイテム「b」の積み込みまたは荷下ろしの量を表してもよい。
「Dw,α」は、倉庫「w」における積み込み/荷下ろしアクション・タイプ「α」の需要を表しうる。
【0120】
動作時間制約条件は、各ルートについての総移動時間が特定のルートについての選択された動作時間未満であることを保証することができる。動作時間制約条件は、次の式(16)で表されてもよい:
【数16】
ここで、「xu,i,r」は、動作時間「i」をもつ車両タイプ「u」がルート「r」に割り当てられるかどうかを示すバイナリ変数であってもよい。
「τr,p T」は、ルート「r」についてステップ「p-1」から「p」まで進むのにかかる総時間(積み込み/荷下ろし時間、待ち時間を含む)を表してもよい。
「Oi」は、選択された動作時間を表しうる。このため、ルート「r」におけるすべてのステップについて、ルート「r」についてのステップ「p-1」からステップ「p」まで進むのにかかる総時間(積み込み/荷下ろし時間および待ち時間を含む)の合計は、前記選択された動作時間「Oi」未満となりうる。
【0121】
期限制約条件は、下記の式(17)によって表されるように、各荷下ろしアクションが対応する荷下ろし期限の前に行われることを保証することができる。
【数17】
ここで、「ar,w,p,u」は、倉庫「w」を訪問している間にステップ「p」においてルート「r」上で荷下ろしアクション・タイプ「u」が実行されるかどうかを示すバイナリ変数を表しうる。
「τr,p' T」は、ステップ「p'-1」からステップ「p'」まで進むのにかかる総時間を表しうる。
「Ew」は、倉庫「w」についての荷下ろし期限を表しうる。よって、ステップ「p」以下の(または以前の)の各ステップ「p'」についての「τr,p' T」の合計は、荷下ろし期限「Ew」未満でありうる。したがって、各位置についての荷下ろし期限が満たされうる。
【0122】
期限制約条件は、下記の式(18)によって表されるように、各積み込みアクションが、その位置において積み込みを開始するための対応する最も早い時間の後に生起しうることをさらに保証しうる。
【数18】
ここで、「ar,w,p,"l"」は、倉庫「w」を訪問している間にステップ「p」においてルート「r」上で積み込みアクション・タイプ「l」が実行されるかどうかを示すバイナリ変数を表しうる。
「τr,p' T」は、ルート「r」上でステップ「p'-1」からステップ「p'」まで進むのにかかる総時間を表しうる。
「Sw」は、倉庫「w」で積み込みを開始する最も早い時間を表しうる。よって、ステップ「p」以下(または以前)の各ステップ「p'」についての「τr,p' T」の合計は、「Sw」未満でありうる。したがって、各倉庫での積み込みは、対応する最も早い時間の後に行われうる。
【0123】
最大ロード時間制約条件は、下記の式(19)によって表されるように、ある倉庫についての最後の積み込みとして選択されるすべてのステップが、その特定の倉庫についての積み込みアクションを有しうることを確実にしうる:
【数19】
ここで、「fr,p,w」は、倉庫「w」についての最後の積み込み候補がルート「r」のステップ「p」で完了されるかどうかを示すバイナリ変数を表しうる。倉庫「w」についての最終積み込み候補がルート「r」のステップ「p」で完了される場合、倉庫「w」を訪問している間に、ステップ「p」でルート「r」上で積み込みアクション・タイプ「l」が実行されていた可能性がある。
【0124】
最大ロード時間制約条件は、以下の式(20)によって表されるように、最終積み込みが最大積み込み時間後に生起することをさらに保証することができる。
【数20】
ここで、「Mw」は、倉庫「w」における最大積み込み時間を表しうる。
【0125】
容量計算制約条件は、容量値の計算に対する制約条件を含みうる。ここで、ルート「r」における第1のアイテム「a」または第2のアイテムbの積み込みまたは荷下ろしの総量は、ルート「r」上の各倉庫を訪問している間に各ステップで行われた第1のアイテム「a」または第2のアイテムbの積み込みまたは荷下ろしの量の和以上であってもよい。上述の制約条件は、次の式(21)によって表されてもよい:
【数21】
ここで、cr,iは、第1のアイテム「a」または第2のアイテム「b」の積み込みまたは荷下ろしの総量を表しうる。
「cr,p,w,i」は、ルート「r」上の倉庫「w」を訪問するときにステップ「p」で行われた第1のアイテム「a」または第2のアイテム「b」の積み込みまたは荷下ろしの量を表しうる。
【0126】
車両容量制約条件は、各車両が正しい積み込み/荷降ろし容量を有しうることを確実にしうる。積み込みに関する車両容量制約条件は、次の式(22)によって表されてもよい:
【数22】
ここで、「xu,o,r」は、動作時間「o」をもつ車両タイプ「u」がルート「r」に割り当てられるかどうかを示すバイナリ変数を表しうる。
「Fu,cr,"la",cr,"lb"」は、車両タイプ「u」が、第1のアイテム「a」の「cr」量を積み込み、第2のアイテム「b」の「cr」量も積み込むことができるかどうかを示すバイナリ変数を表しうる。荷下ろしに関する車両容量制約条件は、次の式(23)によって表されてもよい:
【数23】
ここで、Fu,cr,"ua",cr,"ub"は、車両タイプ「u」が第1のアイテム「a」の「cr」量を荷下ろしし、第2のアイテム「b」の「cr」量も荷下ろしすることができるかどうかを示すバイナリ変数でありうる。
【0127】
508では、最適化問題構築動作が実行されうる。最適化問題構築動作では、プロセッサ204は、制約条件506Aに基づいて最適化問題508Aを構築するように構成されうる。上述したように、最適化問題508Aは、制約条件506Aの関数であってもよく、最適化問題508Aの目標は、車両ルーティング問題のための最適なルートのセットを決定することであってもよい。制約条件506Aの変化は、新しい車両ルーティング問題の構築をもたらしうる。よって、受領された制約条件506Aに応じて、最適化問題508Aが構築されうる。
【0128】
ある実施形態では、最適化問題508Aは、可能なルートのセット内の各ルートについて、動作時間についての車両タイプへのルートの割り当てに関連する総コストを最小化するように構成された第1の目的関数を含むことができる。第1の目的関数は、次の式(24)によって表されてもよい:
【数24】
ここで、「OF1」は、第1の目的関数を表しうる。
「cost(u,o)」は、動作時間「o」についての車両タイプ「u」の動作〔オペレーション〕のコストを表してもよく、
「xu,o,r」は、動作時間「o」をもつ車両タイプ「u」がルート「r」に割り当てられるかどうかを示すバイナリ変数を表してもよい。
【0129】
第1の目的関数の総コストは、ルート上でカバーされる距離の最小化に基づいて、またはルートを進むのにかかる時間に基づいて最小化されうることに留意されたい。なお、動作時間「o」についての車両タイプ「u」の動作のコストには、動作時間「o」について車両タイプ「u」をレンタルする費用、燃料コスト、サービス・コスト等を含みうる。一例では、トラックがレンタルされてもよい。ここで、トラックを1日または半日レンタルする費用は同じであってもよい。そのような場合、トラックを丸1日レンタルすることが最適でありうる。よって、第1の目的関数は、総コストを最小化するために、ルートを進むのにかかる時間(またはカバーされる距離)を最小化しようと試みてもよい。
【0130】
510では、部分問題決定動作が実行されうる。部分問題決定動作において、プロセッサ204は構築された最適化問題508Aを部分問題516のセットに分割するように構成されうる。部分問題516Aのセットのそれぞれは、倉庫116A~116Hのセットのうちの倉庫のサブセットに対応しうる。上述したように、車両ルーティング問題は、多数の倉庫、制約条件、決定変数、およびパラメータに起因して計算が複雑になる可能性がある。よって、複雑なハードウェアが、VRP最適化問題508Aを解くために必要とされうる。さらに、車両ルーティング問題の複雑さに起因して、VRPの満足いく解を得るための計算時間がかなりのものになる可能性がある。VRPに関連する前述の問題を軽減するために、VRPは、部分問題516のセットに分割されうる。ここで、部分問題516のセットのそれぞれは、倉庫のサブセットに対応しうる。図5Bを参照すると、最適化問題508Aは、部分問題516Aのセットに分割されうる。ここで、部分問題516のセットは、部分問題1 516A、部分問題2 516B、…、部分問題N 516NのようなN個の部分問題を含むことができる。各部分問題(部分問題1など)の複雑さは、最適化問題508A全体の複雑さよりも低いことがありうる。よって、部分問題516のセットの個々の部分問題は、比較的安価なソルバー(デジタルアニーラーベースのソルバーなど)を使用して解くことができる。
【0131】
512において、中間解決定動作が実行されうる。中間解決定動作において、プロセッサ204は、アニーラー・ベースのソルバー102Aを使用して、部分問題516のセットのそれぞれについて中間解を決定して、部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定するように構成されうる。説明したように、VRP問題は、複雑さを低減するために部分問題516のセットに分割されうる。次に、アニーラー・ベースのソルバー102Aを使用して各部分問題を解いて、対応する部分問題についての中間解を決定することができる。ここで、各部分問題は、倉庫116A~116Hのセットのうちからの倉庫のあるサブセットに関連付けられうる。各部分問題についての中間解は、車両118Aおよび118Bのセットが最小コストでアイテムのセットを倉庫の対応するサブセットに輸送することができるルートのセットを含むことができる。各中間解は、最適化問題508Aの部分的な解であってもよく、倉庫の対応するサブセットに関連付けられたルートのそのようなセットを含んでいてもよい。たとえば、部分問題1 516Aを解いて中間解1 518Aを得てもよく、部分問題2 516Bを解いて中間解2 518Bを得てもよく、…、部分問題N 516Nを解いて中間解N 518Nを得てもよい。部分問題516のセットの各部分問題は、単一のアニーラー・ベースのソルバー(アニーラー・ベースのソルバー102Aなど)を使用して逐次的に、または複数のアニーラー・ベースのソルバー(アニーラー・ベースのソルバー102Aなど)を使用して並列に解くことができる。各部分問題を逐次的に解くために、部分問題516のセットは、待ち行列に配置されてもよく、アニーラー・ベースのソルバー102Aに逐次的な順序で提供されてもよい。たとえば、アニーラー・ベースのソルバー102Aは、まず、部分問題1 516Aを解いて、中間解1 518Aを得ることができる。さらに、アニーラー・ベースのソルバー102Aは、部分問題2 516Bを解いて中間解2 518Bを得ることができ、最後には部分問題N 516Nが解かれる。部分問題516のセットを並列に解くために、部分問題516のセットは、複数のアニーラー・ベースのソルバーに一度に供給されうる。たとえば、N個のアニーラー・ベースのソルバーを使用することができる。第1のアニーラー・ベースのソルバーは、部分問題1 516Aを解くことができ、第2のアニーラー・ベースのソルバーは、部分問題2 516Bを解くことができ、以下同様である。部分問題516のセットを並列に解くことは、複数のアニーラー・ベースのソルバーを必要とする場合があるが、部分問題516のセットを解くのにかかる時間を短縮することができる。
【0132】
514において、中間解組み合わせ動作が実行されうる。中間解組み合わせ動作において、プロセッサ204は、部分問題516のセットのそれぞれに関連付けられた中間解を組み合わせて、受け取った制約条件(たとえば、制約条件506A)のセットに基づいて最適化問題508Aの最終解を決定するように構成されてもよい。ここで、決定された最終解は、車両のセットに割り当てられるべき最適なルート520のセットを示しうる。最終解は、部分問題516のセットのそれぞれに関連付けられた中間解518の組み合わせに基づいて取得されうるので、最終解は、VRP最適化問題の完全な解と見なされうる。そのような完全な解は、倉庫のセット全体(たとえば、倉庫116A~116Hのセット)に対応しうる。最終解は、車両118Aおよび118Bのセットが、最小コストで倉庫116A~116Hのセットとデポ114との間でアイテムのセットを輸送することができるように、最適なルートのセットを示すことができる。よって、最適なルート520のセットは、車両118Aおよび118Bのセットが取ることができる最短の可能なルートを含むことができる。図5Bを参照すると、中間解1 518A、中間解2 518B、…、および中間解N 518Nは、最終解を決定するために組み合わされうる。最適なルートのセット520は、最適なルート1 520A、最適なルート2 520B、…、および最適なルートM 520Mなどの最適なルートを含むことができる。
【0133】
ある実施形態では、最終解の決定は、倉庫のセットを含むルートのセット、制約条件のセットの満足、および最適なルートのセットに関連付けられた総コストの最小化のうちの少なくとも1つにさらに基づくことができる。図5Bを参照すると、ひとたび中間解518が決定されうると、すべての制約条件(たとえば、需要制約条件)が満たされることができ、総コストも最小化されうるように、各中間解に関連付けられたルートのセットからルートのサブセットが選択されうる。たとえば、中間解518に関連付けられたルートのセットが、「R1」、「R2」、…「Rk」を含み、これらが、倉庫のセットのうちのすべての倉庫をカバーしうる場合、最終解を生成するために、ルートのセットからルートのサブセットが選択されうる。言い換えれば、すべての制約条件(たとえば、需要制約条件)の満足および総コストの最小化を条件として最終解を生成するために、プロセッサ204は、i=1,…,kについてサブセットRi'⊂Riを選択しうる。制約条件のセットの満足は、ルートの選択されたサブセットが依然として需要を満足することを保証しうる。さらに、ルートのサブセットを選択するために総コストを最小化することができるので、そのようにして得られた最終解は、最適なルートのセットを含みうる最適解でありうる。
【0134】
最終解を決定するために、第1の需要制約条件および第2の需要制約条件がチェックされうる。ここで、第1の需要制約条件は、ルート「r」上で倉庫「w」についてアクション・タイプ「α」を有するアイテムの積み込み/荷下ろしの量の合計が、ルートの選択されたサブセットすべてについてすべての積み込み/荷下ろしアクション・タイプ「α」について倉庫「w」における需要よりも少ないことがありうることを保証しうる。第1の需要制約条件は、次の式(25)によって表されてもよい:
【数25】
すことができる。ここで、「SR,r」は、ルート「R」の完全な諸セットの部分的な解であるルート「r」が最終解の一部として選択されるかどうかを示すバイナリ変数を表してもよく、
「rw,α」は、ルート「r」上で倉庫「w」についてアクション・タイプ「α」を有するアイテムの積み込み/荷下ろしの量を表してもよく、
「Dw,α」は、積み込みまたは荷下ろしタイプのアクション「α」についての倉庫「w」における需要を表してもよい。
【0135】
第2の需要制約条件は、時間がルートのすべての選択されたサブセットについての最大積み込み時間を満たすように、ルート「r」において諸倉庫についての積み込みアクションが行われるかどうかを示すバイナリ変数の和が1以上でありうることを保証しうる。第2の需要制約条件は、次の式(26)によって表されてもよい:
【数26】
【0136】
ある実施形態では、最適化問題508Aは、最適なルート520のセットに含まれる各ルートに関連付けられた総コストの合計を最小化するように構成された第2の目的関数を含むことができる。最適なルートのセット520に含まれる各ルートに関連付けられた総コストの合計の最小化は、最適なルートのセット520に関連付けられた全体的なコストの最小化につながりうる。第2の目的関数は、次の式(27)によって表されてもよい:
【数27】
ここで、「OF2」は、前記第2の目的関数を表してもよく、
「SR,r」は、ルート「R」の完全な諸セットの部分的な解であるルート「r」が最終解の一部として選択されうるかどうかを示すバイナリ変数を表してもよく、
「rcost(r)」は、ルート「r」の総コストを表してもよい。ルート「r」が最終解の一部として選択される場合、「SR,r」は「1」であり、そうでない場合、「SR,r」は「0」でありうる。よって、第2の目的は、最適なルート520のセット(すなわち、最適なルート1 520A、最適なルート2 520B、最適なルート3 520C、…、および最適なルートM 520Mを含むセット)に含まれる各ルートに関連付けられた総コストの和を最小化することができる。
【0137】
図6は、本開示において説明される少なくとも1つの実施形態による、改善された中間解から最終解を決定するための例示的な方法のフローチャートを示す図である。図6は、図1図2図3図4図5A、および図5Bからの要素に関連して説明される。図6を参照すると、フローチャート600が示されている。フローチャート600に示される方法は、602において始まってもよく、図1の例示的な電子デバイス102または図2のプロセッサ204など、任意の適切なシステム、装置、またはデバイスによって実行されうる。別個のブロックで示されているが、フローチャート600のブロックのうちの一つまたは複数に関連するステップおよび動作は、特定の実装に応じて、追加のブロックに分割されたり、より少ないブロックに組み合わされたり、あるいは削除されたりしてもよい。
【0138】
ブロック602において、部分問題のセットのそれぞれについての改善された中間解が、部分問題のセットの対応する部分問題に関連付けられた決定された中間解に対するヒューリスティック技法の適用に基づいて決定されうる。ある実施形態では、プロセッサ204は、部分問題のセットのうちの対応する部分問題に関連付けられた決定された中間解に対するヒューリスティック技法の適用に基づいて、部分問題のセットのそれぞれについて改善された中間解を決定するように構成されうる。ヒューリスティック技法は、そのように決定された解が最適であることが保証されない可能性があるような最適化問題を解くための手法でありうることが理解されうる。しかしながら、ヒューリスティック技法は、最適解を得るために必要とされうるものよりも少ない計算資源を使用して、より短い時間で近似的な最適解を決定する助けとなりうる。ひとたび中間解518のような中間解が決定されると、中間解518を改善するためにヒューリスティック技法が適用されうる。そのようなヒューリスティック技法は、改善ヒューリスティック技法と呼ばれることがある。よって、改善ヒューリスティック技法は、中間解518を恋々する助けとなり得る。ある実施形態では、改善ヒューリスティック技法は、中間解518などの中間解を改善するために使用されうる巨大近傍局所探索(large-neighborhood local-search)技法に対応しうる。巨大近傍局所探索は、現在の解の、近傍における改善された解への繰り返される変換に基づいて、解を改善しうることが理解されうる。一例では、改善ヒューリスティック技法は、改善された中間解を決定するために、中間解518に対応するいくつかのルートを同時に選択することに基づいて中間解518を改善しうる、マルチルート改善ヒューリスティック技法を採用しうる。部分問題のセットのそれぞれについての改善された中間解の決定は、たとえば、図7においてさらに説明される。
【0139】
ブロック604において、最終解は、部分問題のセットのそれぞれについて、決定された改善された中間解の組み合わせに基づいてさらに決定されうる。ある実施形態では、プロセッサ204は、部分問題のセットのそれぞれについて、決定された改善された中間解の組み合わせにさらに基づいて最終解を決定するように構成されうる。たとえば、図5Bを参照すると、改善された中間解1、改善された中間解2、改善された中間解3、…、および改善された中間解Nが、中間解518に対する改善ヒューリスティック技法の適用に基づいて、それぞれ部分問題1 516A、部分問題2 516B、部分問題3 516C、…、および部分問題N 516Nについて決定されうる。改善された中間解1、改善された中間解2、改善された中間解3、…、および改善された中間解Nは、次いで、最終解を取得するために組み合わせられうる。このようにして得られた最終解は、より正確でありえ、最適なルートの対応するセットに関連するコストは、さらに低減されうる。
【0140】
フローチャート600は、602および604などの離散的な動作として示されている。しかしながら、ある種の実施形態では、開示された実施形態の本質から逸脱することなく、具体的な実装に依存して、そのような離散的な動作は、追加の動作にさらに分割されたり、より少ない動作に組み合わされたり、または削除されたりしてもよい。
【0141】
図7は、本開示において説明される少なくとも1つの実施形態による、部分問題のセットのそれぞれについての改善された中間解を決定するための例示的な方法のフローチャートを示す図である。図7は、図1図2図3図4図5A図5B、および図6からの要素に関連して説明される。図7を参照すると、フローチャート700が示されている。フローチャート700に示される方法は、702において始まってもよく、図1の例示的な電子デバイス102または図2のプロセッサ204など、任意の適切なシステム、装置、またはデバイスによって実行されうる。離散的なブロックで示されているが、フローチャート700のブロックのうちの一つまたは複数に関連するステップおよび動作は、具体的な実装に依存して、追加のブロックに分割されたり、より少ないブロックに組み合わされたり、または削除されたりしてもよい。
【0142】
ブロック702において、ルートの第1のサブセットが、部分問題のセットのうちのある部分問題に関連付けられたルートのセットから選択されうる。ある実施形態では、プロセッサ204は、部分問題のセットのうちのある部分問題に関連付けられたルートのセットからルートの第1のサブセットを選択するように構成されうる。図5Bを参照すると、たとえば、部分問題1 516Aに関連付けられた中間解1 518Aから取得されたルートのセットから、ルートのサブセットが、ルートの第1のサブセットとして選択されうる。ある実施形態では、倉庫116A~116Hのセットから倉庫のサブセットが選択されうる。たとえば、部分問題1 516Aに対応する倉庫のサブセットが選択されうる。
【0143】
ブロック704において、ヒューリスティック・ベースの問題が、ルートの選択された第1のサブセットに基づいて構築されうる。ある実施形態では、プロセッサ204は、ルートの選択された第1のサブセットに基づいてヒューリスティック・ベースの問題を構築するように構成されうる。ヒューリスティック・ベースの問題は、ルートの選択された第1のサブセットに関連する総コストを最小化するように構成されうる目的関数に基づいて構築されうる。ヒューリスティック・ベースの問題に対応する目的関数は、次の式(28)によって表されてもよい:
【数28】
ここで、「OFh」は、ヒューリスティック・ベースの問題に対応する目的関数を表してもよく、
cost(u,o)は、動作時間「o」についての車両タイプ「u」の動作〔オペレーション〕のコストを表してもよく、
「xu,o,r」は、動作時間「o」をもつ車両タイプ「u」がルート「r」に割り当てられるかどうかを示すバイナリ変数でありうる。ここで、ルート「r」はルートの第1のサブセットに含まれてもよい。
【0144】
ブロック706において、構築されたヒューリスティック・ベースの問題に基づいて、アニーラー・ベースのソルバー102Aを使用して、ルートの第2のサブセットを示す解が決定されうる。ある実施形態では、プロセッサ204が、アニーラー・ベースのソルバー102Aを使用して、構築されたヒューリスティック・ベースの問題に基づいて、ルートの第2のサブセットを示す解を決定するように構成されうる。本明細書では、ヒューリスティック・ベースの問題は、最近傍(nearest-neighbor、NN)アルゴリズム(貪欲アルゴリズムとしても知られる)などのヒューリスティック・アルゴリズムに基づいて解くことができる。たとえば、ルートの第1のサブセットにおいて、第1の位置がランダムに選択されうる。さらに、第1の位置に最も近い位置が見つけられてもよく、第2の位置として設定されてもよく。同様に、他の位置が解析されてもよく、他の近い位置が、決定されて、ルートの第2のサブセットを生成してもよい。
【0145】
ブロック708において、決定された解は、部分問題に関連付けられた中間解と比較されうる。ある実施形態において、プロセッサ204は、決定された解を部分問題に関連付けられた中間解と比較するように構成されてもよい。たとえば、ルートの第1のサブセットは、部分問題1 516Aに関連付けられた中間解1 518Aのルートのセットから選択されてもよく、ヒューリスティック・ベースの問題は、ルートの選択された第1のサブセットに基づいて構築されてもよい。ヒューリスティック・ベースの問題を解いて、ルートの第2のサブセットを示す解を決定することができる。ルートの選択された第1のサブセットおよびルートの第2のサブセットのそれぞれに関連付けられた総コストが決定され、比較されうる。ルートの選択された第1のサブセットに関連付けられた総コストがルートの第2のサブセットよりも大きい場合、ルートの第2のサブセットがより最適でありうる。
【0146】
ブロック710において、決定された解は、比較に基づいて改善された中間解として選択されうる。ここで、部分問題に関連付けられたルートのセットは、ルートの第2のサブセットに基づいて更新されうる。ある実施形態では、プロセッサ204は、比較に基づいて、決定された解を改善された中間解として選択するように構成されうる。ここで、ルートの選択された第1のサブセットに関連付けられた総コストがルートの第2のサブセットよりも大きい場合、ルートの第2のサブセットがより良い可能性がある。そのような場合、ルートの第2のサブセットは、改善された中間解を取得するために、中間解においてルートの第1のサブセットによって置き換えられうる。しかしながら、ルートの選択された第1のサブセットに関連付けられた総コストがルートの第2のサブセットよりも小さい場合、ルートの第2のサブセットはより良くない可能性がある。そのような場合、ルートの第2のサブセットは破棄されうる。ブロック702~710に関連する動作は、中間解を改善するために、ある回数、たとえば「N」回繰り返されうる。回数「N」は、100、1000などの事前定義された数と見なされうる。数「N」が大きいほど、改善された中間解は良好でありうる。
【0147】
フローチャート700は、702、704、706、708、および710などの離散的な動作として示されている。しかしながら、ある種の実施形態では、開示された実施形態の本質から逸脱することなく、具体的な実装に依存して、そのような離散的な動作は、追加の動作にさらに分割されたり、より少ない動作に組み合わされたり、または削除されたりしてもよい。
【0148】
図8は、本開示において説明される少なくとも1つの実施形態による、最適化問題の改善された最終解を決定するための例示的な方法のフローチャートを示す図である。図8は、図1図2図3図4図5A図5B図6、および図7からの要素に関連して説明される。図8を参照すると、フローチャート800が示されている。フローチャート800に示される方法は、802において始まってもよく、図1の例示的な電子デバイス102または図2のプロセッサ204など、任意の適切なシステム、装置、またはデバイスによって実行されうる。離散的なブロックで示されているが、フローチャート800のブロックのうちの一つまたは複数に関連するステップおよび動作は、具体的な実装に依存して、追加のブロックに分割されたり、より少ないブロックに組み合わされたり、または削除されたりしてもよい。
【0149】
ブロック802において、最適化問題の改善された最終解が、決定された最終解に対するヒューリスティック技法の適用に基づいて決定されうる。ある実施形態では、プロセッサ204が、決定された最終解に対するヒューリスティック技法の適用に基づいて最適化問題の改善された最終解を決定するように構成されうる。ヒューリスティック技法は、それにより決定された解が最適であることが保証されない可能性があるような仕方で最適化問題を解くための手法でありうることが理解されうる。しかしながら、ヒューリスティック技法は、最適解を得るために必要とされうるより少ない計算資源を使用して、より短い時間で近似的な最適解を決定する助けとなりうる。ひとたび最終解が決定されると、最終解をさらに改善するためにヒューリスティック技法が適用されうる。そのようなヒューリスティック技法は、改善ヒューリスティック技法と呼ばれることがある。改善ヒューリスティック技法は、最終解に対応する最適なルートのセットに含まれる各ルートに関連付けられた総コストの合計がさらに低減されうるように、最終解の洗練をもたらしうる。ある実施形態では、最終解を改善するために巨大近傍局所探索技法が用いられてもよい。巨大近傍局所探索技法は、最終解の、近傍内の改善された最終解への繰り返される変換に基づいて、最終解を改善しうることが理解されうる。一例では、改善ヒューリスティック技法は、改善された最終解を決定するために最終解のいくつかのルートを同時に取ることによって最終解を改善しうるマルチルート改善ヒューリスティック技法を用いてもよい。改善された最終解の決定は、たとえば、図9においてさらに説明される。
【0150】
ブロック804において、車両のセットに割り当てられるべき最適なルートのセットが、改善された最終解に基づいて決定されうる。ある実施形態では、プロセッサ204が、改善された最終解に基づいて、車両のセットに割り当てられる最適なルートのセットを決定するように構成されてもよい。たとえば、図5Bを参照すると、最終解に対する改善ヒューリスティック技法の適用に基づいて、最適解1、最適解2、最適解3、…、および最適解Mについて、それぞれ、改善された最適解1、改善された最適解2、改善された最適解3、…、および改善された最適解Mが決定されてもよい。改善された最終解は、改善された最適解1、改善された最適解2、改善された最適解3、…、および改善された最適解Mを含むことができる。改善された最終解は、最適なルート520のセットに対応しうる。そのようにして得られた改善された最終解は、より正確でありえ、改善された最終解に対応する最適なルートのセットに含まれる各ルートに関連付けられた総コストの合計は、低減されうる。
【0151】
フローチャート800は、802および804などの離散的な動作として示されている。しかしながら、ある種の実施形態では、開示された実施形態の本質から逸脱することなく、具体的な実装に依存して、そのような離散的な動作は、追加の動作にさらに分割されたり、より少ない動作に組み合わされたり、または削除されたりしてもよい。
【0152】
図9は、本開示において説明される少なくとも1つの実施形態による、改善された最終解を決定するための例示的な方法のフローチャートを示す図である。図9は、図1図2図3図4図5A図5B図6図7、および図8からの要素に関連して説明される。図9を参照すると、フローチャート900が示されている。フローチャート900に示される方法は、902において始まってもよく、図1の例示的な電子デバイス102または図2のプロセッサ204など、任意の適切なシステム、装置、またはデバイスによって実行されうる。離散的なブロックで示されているが、フローチャート900のブロックのうちの一つまたは複数に関連するステップおよび動作は、具体的な実装に依存して、追加のブロックに分割されたり、より少ないブロックに組み合わされたり、または削除されたりしてもよい。
【0153】
ブロック902において、ルートの第3のサブセットが、部分問題のセットのそれぞれに関連付けられたルートのセットから選択されうる。ある実施形態では、プロセッサ204は、部分問題のセットのそれぞれに関連付けられたルートのセットからルートの第3のサブセットを選択するように構成されうる。図5Bを参照すると、たとえば、ルートの第3のサブセットは、最終解に関連付けられた最適なルート520のセットから選択されうる。別の例では、ルートの第3のサブセットは、中間解518からの各中間解に対応するルートのセットから選択されうる。ある実施形態では、倉庫116A~116Hのセットから倉庫のサブセットが選択されうる。たとえば、最適なルート1 520Aに対応する倉庫のサブセットが選択されうる。
【0154】
ブロック904において、ルートの選択された第3のサブセットに基づいてヒューリスティック・ベースの問題が構築されうる。ある実施形態では、プロセッサ204は、ルートの選択された第3のサブセットに基づいてヒューリスティック・ベースの問題を構築するように構成されうる。構築されたヒューリスティック・ベースの問題は、最終解に対応するルートの選択された第3のサブセットに含まれる各ルートに関連付けられた総コストの合計を最小化するように構成されうる目的関数を含みうる。
【0155】
ブロック906において、アニーラー・ベースのソルバー102Aを使用して、構築されたヒューリスティック・ベースの問題に基づいて、ルートの第4のサブセットを示す解が決定されうる。ある実施形態では、プロセッサ204が、アニーラー・ベースのソルバー102Aを使用して、構築されたヒューリスティック・ベースの問題に基づいて、ルートの第4のサブセットを示す解を決定するように構成されうる。本明細書では、ヒューリスティック・ベースの問題は、最近傍(NN)アルゴリズム(貪欲アルゴリズムとしても知られる)などのヒューリスティック・アルゴリズムによって解かれてもよい。たとえば、ルートの第3のサブセットにおいて第1の位置がランダムに選択されうる。次に、第1の位置に最も近い位置が見つられてもよく、第2の位置として設定されてもよい。同様に、他の位置が解析されてもよく、他の近い位置が、ルートの第4のサブセットを作成するために決定されてもよい。
【0156】
ブロック908において、決定された解は、最終解と比較されうる。ある実施形態では、プロセッサ204は、決定された解を最終解と比較するように構成されうる。たとえば、(最適なルート1 520Aなどの)ルートの第3のセットサブセットは、最終解に関連付けられた最適なルート520のセットから選択されてもよく、ヒューリスティック・ベースの問題は、ルートの選択された第3のサブセットに基づいて構築されてもよい。ヒューリスティック・ベースの問題を解いて、ルートの第3のサブセットを示す解を決定することができる。ルートの選択された第3のサブセットおよびルートの第4のサブセットのそれぞれに関連付けられた総コストが決定され、比較されうる。ルートの選択された第3のサブセットに関連付けられた総コストがルートの第4のサブセットよりも大きい場合、ルートの第4のサブセットがより最適でありうる。
【0157】
ブロック910において、決定された解は、比較に基づいて改善された最終解として選択されうる。ここで、最適なルートのセットは、ルートの第4のサブセットに基づいて更新されうる。ある実施形態では、プロセッサ204は、比較に基づいて、決定された解を改善された最終解として選択するように構成されうる。ここで、ルートの選択された第2のサブセットに関連付けられた総コストがルートの第4のサブセットよりも大きい場合、ルートの第4のサブセットがより良い可能性がある。そのような場合、ルートの第4のサブセットは、改善された最終解を得るために、最終解においてルートの第3のサブセットによって置き換えられうる。しかしながら、ルートの選択された第3のサブセットに関連付けられた総コストがルートの第4のサブセットよりも小さい場合、ルートの第4のサブセットはより良好ではない可能性がある。そのような場合、ルートの第4のサブセットは破棄されうる。ブロック902~910に関連する動作は、最終解を改善するために、ある回数、たとえばN回繰り返されてもよい。回数「N」は、100、1000などの事前定義された数と見なされうる。数「N」が大きいほど、改善された最終解は良好でありうる。
【0158】
フローチャート900は、902、904、906、908、および910などの離散的な動作として示されている。しかしながら、ある種の実施形態では、開示された実施形態の本質から逸脱することなく、具体的な実装に依存して、そのような離散的な動作は、追加の動作にさらに分割されたり、より少ない動作に組み合わされたり、または削除されたりしてもよい。
【0159】
図10のAおよび図10のBは合わさって、本開示で説明される少なくとも1つの実施形態による、車両ルーティング問題に関連付けられた最適なルートのセットの決定の例示的なシナリオを示す。図10のAおよび図10のBは、図1図2図3図4図5A図5B図6図7図8、および図9からの要素に関連して説明される。図10のAおよび図10のBを参照すると、例示的なシナリオ1000Aおよび1000Bが示されている。シナリオ1000Aは、倉庫のセット1002、倉庫のサブセット1004、ルート1010の最終セットを含むことができる。シナリオ1000Aは、各サブセットについて解く動作(1006によって示される)、およびルートを組み合わせる動作(1008によって示される)などの動作をさらに含みうる。シナリオ1000Bは、倉庫のセット1012および最終解1022を含むことができる。シナリオ1000Bは、ルートを選ぶ動作(動作1014、1016、および1018など)、およびルートを組み合わせる動作(1020によって示される)などの動作をさらに含むことができる。
【0160】
図10のAを参照すると、倉庫116A~116Hのセットなどの倉庫のセット1002は、車両118Aおよび118Bのセットがデポ114と倉庫との間でアイテムを輸送するために訪問する必要がありうる倉庫を含みうる。倉庫のセット1002の各倉庫は、原材料などの一つまたは複数の第1のアイテム(倉庫に荷降ろしされうる)の需要を有しうるか、または一つまたは複数の第2のアイテム(倉庫から積み込みされうる)を供給することが可能でありうることが理解されうる。いずれの場合も、車両118Aおよび118Bのセットは、積み込みまたは荷下ろしアクション・タイプを実行するために、対応する倉庫を訪問する必要がありうる。よって、倉庫1002のセットは、アクション・タイプが実行される必要がありうる倉庫を含みうる。
【0161】
VRP内の倉庫の数は非常に多くてもよいことが理解されうる。よって、VRPは計算上複雑であることがあり、したがって、VRPを解くために複雑で高価なハードウェアが必要とされることがある。さらに、車両ルーティング問題の複雑さに起因して、満足いく解を得るためにかなりの量の計算時間が必要とされる場合がある。VRPに関連する前述の問題を軽減するために、VRP最適化問題は、倉庫のセット1002からの倉庫のサブセット1004の選択に基づいて、部分問題のセットに分割されうる。たとえば、倉庫のセットが1000個の倉庫を含む場合、VRPは10個の部分問題に分割されてもよく、各部分問題は100個の倉庫を含んでいてもよい。VRPを部分問題のセットに分割することは、VRPの複雑さを扱うのに役立つ。各部分問題の複雑さは、全体的な最適化問題よりも小さい可能性があり、よって、個々の部分問題は、安価なハードウェアを使用して、より少ない時間量で解くことができる。
【0162】
動作1006において、アニーラー・ベースのソルバー102Aを使用して、(倉庫のサブセット1004からの)倉庫の各サブセットに関連付けられた部分問題を解いて、対応する部分問題についての中間解を決定することができる。倉庫の対応するサブセットについての中間解は、車両118Aおよび118Bのセットが最小コストでアイテムのセットを倉庫の対応するサブセットに輸送することができるルートのセットを含むことができる。倉庫のサブセット1004のセットの倉庫の各サブセットは、単一のアニーラー・ベースのソルバー(たとえば、アニーラー・ベースのソルバー102A)を使用して逐次的に、または複数のアニーラー・ベースのソルバー(アニーラー・ベースのソルバー102Aなど)を使用して並列的に解かれうる。倉庫の各サブセットを逐次的に解くために、倉庫1004のサブセットのセットは、待ち行列に配置されてもよく、アニーラー・ベースのソルバー102Aに逐次的な順序で提供されてもよい。倉庫の諸サブセットのセットを並列に解くためには、倉庫のサブセット1004は、複数のアニーラー・ベースのソルバーに一度に供給されてもよい。部分問題のセットの並列解法は、よって、より多くのアニーラー・ベースのソルバーを必要としうるが、部分問題のセットの逐次的な解法よりも著しく少ない計算時間しか必要としない場合がある。倉庫のサブセットのそれぞれに関連付けられた中間解は、VRP最適化問題の部分的な解であってもよく、完全な解でなくてもよいことに留意されたい。
【0163】
動作1008において、部分問題のセットの各部分問題に関連付けられたルートのセットが組み合わされて、ルートの最適なセット1010を含む最終解を得ることができる。最終解は、部分問題のセットのそれぞれに関連付けられた中間解の組み合わせに基づいて取得されうるので、最終解は、VRP最適化問題の完全な解と見なされうる。最終解は、車両118Aおよび118Bのセットが、倉庫116A~116Hのセットとデポ114との間で最小コストでアイテムのセットを輸送することができるように、最適なルートのセット1010を示すことができる。よって、ルートの最適なセット1010は、車両118Aおよび118Bのセットが取ることができる最短の可能なルートを含むことができる。たとえば、部分問題のセットが、第1の部分問題、第2の部分問題、および第3の部分問題を含む場合、各部分問題の中間解は、最終解を得るために組み合わされうる。
【0164】
たとえば、図10のBを参照すると、倉庫1012のセットは、「N」個の倉庫を含むことができる。倉庫のセット1012は倉庫のサブセットに分割されてもよく、倉庫の各サブセットは倉庫のセット1012からの任意の3つの倉庫を含んでいてもよい。たとえば、倉庫のサブセットは、倉庫w1、倉庫w2、および倉庫w3を含んでいてもよい。倉庫のサブセットの各倉庫は、ある部分問題に対応しうる。部分問題のセットは、倉庫のセットに基づいて生成されてもよく、各部分問題は倉庫のサブセットを含んでいてもよい。部分問題のセットのそれぞれは、倉庫の対応するサブセットに関連付けられたルートのセットの選択に基づいて、対応する中間解を決定するために解かれてもよい。たとえば、動作1014、1016、および1018において、部分問題のセットについての対応する中間解は、倉庫の対応するサブセットに関連付けられたルートのセットの選択に基づいて決定されうる。動作1020において、部分問題のセットの各部分問題に関連付けられたルートのセットは、最終解1022を決定するために組み合わされうる。最終解1022は、車両のセットに割り当てられるべき最適なルートのセットを示すことができる。最終解1022は、部分問題のセットのそれぞれに関連付けられた中間解の組み合わせに基づいて取得されうるので、最終解1022は、VRP最適化問題の完全な解と見なされうる。最終解1022は、車両118Aおよび118Bのセットが、最小コストで倉庫116A~116Hのセットとデポ114との間でアイテムのセットを輸送することができるような、最適なルート520のセットに対応することができる。よって、最適なルート520のセットは、車両118Aおよび118Bのセットが取ることができる最短の可能なルートを含むことができる。最適なルート520のセットはまた、デポ114と倉庫のセット116A~116Hとの間を移動するのに必要な時間が最短であってもよい。
【0165】
図11は、本開示で説明される少なくとも1つの実施形態による、車両ルーティング問題に関連付けられた最適なルートのセットの決定を示すブロック図である。図11は、図1図2図3図4図5A図5B図6図7図8図9図10のA、および図10のBからの要素に関連して説明される。図11を参照すると、ブロック図 1100が示されている。ブロック図 1100は、電子デバイス102など、図1の一つまたは複数の構成要素によって実行されうる動作のセットを含みうる。動作は、1102、1104、1106、1108、1110、1112、1114、1116、1118、1120、1122、1124、1126、および1128を含んでいてもよい。動作のセットは、本明細書で説明されるように、アニーラー・ベースのソルバー(アニーラー・ベースのソルバー102Aなど)を使用して車両ルーティング問題(VRP)を解くために電子デバイス102によって実行されうる。
【0166】
ある実施形態では、プロセッサ204は、部分問題のセットのうちの第1の部分問題に関連付けられた位置のセットから位置の第1のサブセットを選択するように構成されうる。プロセッサ204は、アニーラー・ベースのソルバー102Aを使用して第1の部分問題を解くための動作の第1のセットの実行を制御するようにさらに構成されうる。ここで、動作の第1のセットは、位置の選択された第1のサブセットについての第1の部分問題に関連付けられた第1の部分的な解を決定することと、第1の部分的な解を第1の部分問題に関連付けられた初期解に加えることと、位置のセットから位置の第2のサブセットを、位置の選択された第1のサブセットとして再選択することとを含みうる。プロセッサ204は、本明細書において次に説明されるように、第1の所定の反復回数、動作の第1のセットを逐次反復的に実行することに基づいて、初期解から第1の部分問題に関連付けられた中間解を取得するようにさらに構成されうる。
【0167】
ブロック1102において、構築ステップが実行されうる。構築ステップでは、プロセッサ204は、受領された制約条件(制約条件506Aなど)のセットに基づいて最適化問題508Aを構築することができる。最適化問題508Aは、制約条件のセットの関数であってもよく、最適化問題508Aの目標は、車両ルーティング問題のための最適なルートのセットを決定することである。制約条件のセットにおける変動は、新しい車両ルーティング問題の構築につながりうる。よって、受領された制約条件のセットに基づいて、プロセッサ204は、車両ルーティング問題を構築することができる。
【0168】
構築ステップでは、プロセッサ204は、構築された最適化問題508Aを部分問題516のセットにさらに分割することができ、部分問題516のセットのそれぞれは、倉庫116A~116Hのセットの倉庫のサブセットに対応することができる。車両ルーティング問題は、多数の倉庫、制約条件、決定変数、およびパラメータに起因して、計算コストが高くなりうることが理解されうる。よって、VRPの解法は複雑なハードウェアを必要とする場合がある。さらに、車両ルーティング問題の複雑さのために、VRPの満足いく解を得るためにかなりの計算時間が必要とされる場合がある。VRPに関連する前述の問題を軽減するために、VRPは、部分問題516のセットに分割されうる。ここで、各部分問題は倉庫のサブセットに対応してもよい。
【0169】
ブロック1104において、都市のうちから、サイズ「r1」(すなわち、サブセットのカウント)の都市のサブセット「C」を選ぶ動作が実行されうる。説明したように、プロセッサ204は、最適化問題(最適化問題508Aなど)を部分問題のセット516に分割することができる。部分問題516のセットのそれぞれは、位置のセットに関連付けられうる。ここで、位置は、車両118Aおよび118Bのセットが訪れる必要がありうる倉庫、デポ、都市などを含みうる。プロセッサ204は、部分問題のセットのうちの第1の部分問題に関連付けられた位置のセットから位置の第1のサブセットを選択しうる。一例では、最適化問題508Aは、10000個の都市を含む車両ルーティング問題のための最適なルートのセットを決定する必要がありうる。ここで、プロセッサ204は、最適化問題を部分問題のセットに分割するように構成されてもよく、各部分問題は1000個の都市を含んでいてもよい。たとえば、第1の部分問題は、VRPに関連付けられた10000の都市のうちの1000の都市の第1のセットに関連付けられうる。プロセッサ204は、部分問題のセットのうちの第1の部分問題に関連付けられた位置のセットから、位置の第1のサブセットを選択しうる。たとえば、第1の部分問題に関連付けられた1000個の都市から、プロセッサ204は、100個の都市を位置の第1のサブセットとして選択するように構成されうる。本明細書では、位置の第1のサブセットは「C」によって表されてもよく、位置「C」の第1のサブセットのサイズ「r1」は100でありうる。第1の部分問題について初期解が決定されてもよく、初期解は、第1の部分問題が解かれうるまで連続的に更新されてもよい。
【0170】
1106において、位置の第1のサブセット「C」についての解「S」を生成する動作と、生成された解「S」を構築された最適化の初期解に加える動作とが実行されうる。ここで、プロセッサ204は、アニーラー・ベースのソルバー102Aを使用して第1の部分問題を解くための動作の第1のセットの実行を制御するように構成されうる。動作の第1のセットは、第1の部分問題を解くための諸ステップを含むことができる。動作の第1のセットは、アニーラー・ベースのソルバー102Aを使用することによって、位置の選択された第1のサブセットに関連付けられた最適化問題を解くことによって、位置の選択された第1のサブセットについての第1の部分問題に関連付けられた第1の部分的な解を決定することができる。ここで、第1の部分的な解は、最小コストで位置の第1のサブセットを訪問するためのルートの第1のセットを含みうる。ルートの第1のセットは、位置の第1のサブセットの各位置を少なくとも1回カバーしうる最短ルートでありうる。位置の第1のサブセットは、「r1」個の都市(たとえば、完全なVRP最適化問題に存在する10000個の都市のうちの100個の都市)のみを含みうるので、位置の選択された第1のサブセットに関連する最適化問題の計算複雑さが低減されることができ、よって、短い期間内に解かれうることに留意されたい。図11を参照すると、第1の部分的な解「S」は、サイズ「r1」の位置の第1のサブセット「C」について取得することができる。すなわち、第1の部分的な解「S」は、位置の第1のサブセット「C」の100個の都市に対応しうる。
【0171】
動作の第1のセットは、第1の部分的な解を第1の部分問題に関連付けられた初期解に加えることを含むことができる。初期解は、第1の部分問題に関連付けられたルートの初期セットであってもよく、第1の部分問題が解かれうるときに連続的に更新されてもよい。ひとたびサイズ「r1」の位置の第1のサブセットCに対応する第1の部分的な解「S」が得られうると、第1の部分的な解「S」は、初期解を更新するために初期解に加えられてもよい。すなわち、位置の第1のサブセット「C」の100個の都市に対応する第1の部分的な解「S」が初期解に加えられてもよい。
【0172】
動作の第1のセットは、位置の選択された第1のサブセットとして、位置のセットから位置の第2のサブセットを再選択することを含みうる。たとえば、位置の第2のサブセットは、位置のセット中に存在する1000個の都市のうちの次の100個の都市を含みうる。位置の第2のサブセットは、位置の第1のサブセットとして割り当てられてもよく、ブロック1102、ブロック1104、およびブロック1106に関する動作は、第1の部分問題が、第1の部分問題に対応する位置のセットからの位置のすべてのサブセットについて解かれうるまで、繰り返されてもよい。
【0173】
プロセッサ204は、第1の所定数の反復にわたる動作の第1のセットの逐次反復的な実行に基づいて、初期解から第1の部分問題に関連付けられた中間解を得ることができる。関連付けられた中間解は、第1の部分問題の解であってもよく、部分問題のセットのうちの第1の部分問題に関連付けられたルートのセットを含んでいてもよい。中間解は、ブロック1102、ブロック1104およびブロック1106に関する動作の実行によって得られる初期解であってもよい。第1の所定の反復回数は、ユーザーの経験、ユーザーがVRPを解くために有しうる時間期間などに基づいて、ユーザーによって選択されうる。第1の所定の反復回数は、第1の所定の反復回数にわたるブロック1102、ブロック1104、およびブロック1106に関連する動作の実行後に得られうる初期解に基づいて変更されうる。たとえば、第1の所定数の反復後に得られた初期解が最適でない場合、第1の所定の反復回数は、より良好な初期解を得るために、より大きな数に増加されうる。ひとたびブロック1102、ブロック1104、およびブロック1106に関する動作が第1の所定の反復回数にわたって実行されると、そのように決定された初期解は、第1の部分問題についての中間解に対応することができる。たとえば、第1の部分問題に対応する位置のセットが1000個の都市を含み、位置の第1のサブセットが100個の都市を含む場合、ブロック1102、ブロック1104、およびブロック1106に関する動作は、第1の部分問題が位置のセットに対応する位置のすべてのサブセットについて解かれうるように、10回繰り返されうる。10回目の反復後に取得された初期解は、そのような場合、中間解と呼ばれうる。
【0174】
ある実施形態では、プロセッサ204は、第1の部分問題に関連付けられた初期解に基づいてルートの第1のサブセットを選択し、アニーラー・ベースのソルバー102Aを使用して第1の部分問題を解くための動作の第2のセットの実行を制御するようにさらに構成されうる。ここで、動作の第2のセットは、ルートの選択された第1のサブセットについての第1の部分問題に関連付けられた第2の部分的な解を決定することを含みうる。動作の第2のセットは、第1の部分問題に関連付けられた初期解に第2の部分的な解を追加することをさらに含むことができる。動作の第2のセットは、ルートの選択された第1のサブセットとして、初期解に基づいてルートの第2のサブセットを再選択することをさらに含みうる。プロセッサ204は、本明細書において次に説明されるように、第2の所定の反復回数にわたる動作の第2のセットの逐次反復的な実行に基づいて、初期解から第1の部分問題に関連付けられた中間解を得るようにさらに構成されうる。
【0175】
ブロック1108において、第1の部分的な解「S」(または初期解)からサイズ「r2」のルートのサブセット「R」を選ぶ動作が実行されうる。プロセッサ204は、第1の部分問題に関連付けられた初期解に基づいてルートの第1のサブセットを選択することができる。たとえば、第1の部分問題は、VRPに関連付けられた10000の都市のうちの1000の都市に関連付けられてもよい。プロセッサ204は、第1の部分問題の1000個の都市のセットから位置の第1のサブセットとして100個の都市を選択することができる。本明細書では、位置の第1のサブセットは「C」によって表されてもよく、位置の第1のサブセット「C」のサイズ「r1」は100でありうる。動作の第1のセットは、位置の第1のサブセットに関連付けられたある種のルートを含みうる初期解を取得するために、位置の第1のサブセットに対して実行されうる。たとえば、初期解「S」は、50個のルートであってもよい。プロセッサ204は、位置の第1のサブセットに関連付けられた50個のルートから、10個のルートを含むルートの第1のサブセット「R」を選択しうる。よって、「r2」によって表される「R」個のルートのサイズは10でありうる。ある実施形態では、ルートの第1のサブセットはランダムに選択されうる。
【0176】
1110において、ルートの第1のサブセット「R」についての解「S'」を生成する動作と、解「S'」を第1の部分的な解「S」に加える動作とが実行されうる。ここで、プロセッサ204は、アニーラー・ベースのソルバー102Aを使用して第1の部分問題を解くために動作の第2のセットの実行を制御するように構成されうる。動作の第2のセットは、ルートの第1のサブセット「R」について第1の部分問題を解くステップを含むことができる。動作の第2のセットは、ルートの選択された第1のサブセットについての第1の部分問題に関連付けられた第2の部分的な解の決定を含みうる。第2の部分的な解は、最小コストでルートの第1のサブセット「R」を訪問するために必要とされるルートのセットでありうる。第2の部分的な解に対応するルートのセットは、ルートの第1のサブセット「R」の各位置をカバーしうる最短ルートでありうる。図11を参照すると、第2の部分的な解S'は、サイズ「r2」のルートの第1のサブセット「R」について取得されてもよい。
【0177】
動作の第2のセットは、第1の部分問題に関連付けられた初期解Sへの第2の部分的な解S'の追加をさらに含むことができる。たとえば、説明したように、初期解「S」は50個のルートを含むことができる。プロセッサ204は、位置の第1のサブセットに関連付けられた50個のルートから、10個のルートを含むルートの第1のサブセット「R」を選択しうる。よって、「r2」によって表される「R」個のルートのサイズは10でありうる。次いで、プロセッサ204は、動作の第2のセットを実行して、ルートの選択された第1のサブセット「R」についての第1の部分問題に関連付けられた第2の部分的な解「S'」を取得することができる。ここで、第1の部分問題は、第2の部分的な解「S'」を決定するために、ルートの第1のサブセット「R」に関連付けられた10個のルートについて解かれうる。第2の部分的な解「S'」は、(ブロック1106で決定された)第1の部分的な解「S」に追加されてもよく、これは最終的に初期解に追加されて、第1の部分問題に関連付けられた中間解を取得してもよい。
【0178】
動作の第1のセットは、ルートの選択された第1のサブセットとして、初期解に基づいてルートの第2のサブセットを再選択することを含みうる。たとえば、ルートの第2のサブセットは、第1の部分問題のルートのセットに関連付けられた50個のルートのうちの次の10個のルートを含みうる。ルートの第2のサブセットは、ルートの第1のサブセットとして割り当てられてもよく、ブロック1106、ブロック1108、およびブロック1110に関する動作は、第1の部分問題が、第1の部分問題に対応するルートのセットからのルートのすべてのサブセットについて解かれうるまで繰り返されてもよい。
【0179】
プロセッサ204は、初期解から、第2の所定数の反復にわたる動作の第2のセットの逐次反復的な実行にさらに基づいて、第1の部分問題に関連付けられる中間解を取得しうる。関連付けられた中間解は、第1の部分問題の解であってもよく、部分問題のセットのうちの第1の部分問題に関連付けられたルートのセットを含んでいてもよい。中間解は、ブロック1102、ブロック1104、およびブロック1106に関する動作を第1の所定の反復回数実行し、ブロック1106、ブロック1108、およびブロック1110に関する動作を第2の所定の反復回数実行することによって得られた初期解であってもよい。第2の所定の反復回数は、ユーザーの経験、ユーザーがVRPを解くために有しうる時間期間などに基づいて、ユーザーによって選択されうる。第2の所定の反復回数は、第2の所定の反復回数にわたるブロック1106、ブロック1108、およびブロック1110に関する動作の実行後に取得されうる初期解に基づいて変更されうる。たとえば、第2の所定数の反復の実行後にこのようにして得られた初期解が最適でない場合、第2の所定の反復回数は、より良好な初期解が得られるように、より大きな数に増加されてもよい。ブロック1106、ブロック1108、およびブロック1110に関する動作が第2の所定の反復回数にわたって実行された後、初期解は、第1の部分問題についての中間解に対応することができる。部分問題のセットの各部分問題についての中間解は、第1の部分問題についての中間解の決定と同様の仕方で決定されてもよい。
【0180】
1112において、改善ステップが実行されうる。ここで、ヒューリスティック技法を適用して、構築ステップ1102から得られる中間解を改善することができる。そのようなヒューリスティック技法は、改善ヒューリスティック技法と呼ばれてもよく、部分問題のセットの各部分問題に関する中間解を改善するために使用されうる。たとえば、10個の部分問題のセットについてそれぞれ1つずつ、10個の中間解が得られた場合、各部分問題に対応する中間解は、改善ヒューリスティック技法を使用することによって改善されうる。
【0181】
1114において、各中間解からサイズ「r13」のサブセット「R」を選ぶ動作が実行されうる。たとえば、第1の部分問題に対応する中間解から位置「R」のサブセットを選択することができる。位置のサブセットの選択は、ランダムに、またはユーザー入力に基づいて実行されうる。改善ヒューリスティックは、中間解を改善するために適用されうる。改善ヒューリスティック技法は、中間解を洗練する助けとなりうる。ある実施形態では、巨大近傍局所探索技法が、中間解518などの中間解を改善するために使用されうる。巨大近傍局所探索は、現在の解の、近傍における改善された解への繰り返される変換に基づいて解を改善しうることが理解されうる。一例では、改善ヒューリスティック技法は、中間解を決定するために、中間解のいくつかのルートを一度に取ることによって中間解を改善しうるマルチルート改善ヒューリスティック技法を採用しうる。
【0182】
ブロック1116において、ルート「R」についての解「S」を生成する動作と、生成された解「S」を改善解に追加する動作とが実行されうる。改善ヒューリスティックは、第1の部分問題に対応する中間解から、ルートのサブセット「R」についての解を決定することができる。決定された解「S」は、改善解にさらに追加されてもよく、プロセスは、そのようにして得られた改善解が最適でありうるまで継続されてもよい。
【0183】
ブロック1118において、解および改善解を組み合わせて中間解「intS」にする動作が実行されうる。たとえば、第1の部分問題に関する中間解が、改善ヒューリスティック技法を用いて改善されて改善解が得られた場合、第1の部分問題に対応する中間解は、改善解によって置き換えられてもよい。次に、部分問題のセットの各部分問題に対応する中間解(および/または改善解)を組み合わせて、最終解を決定することができる。最終解の決定の詳細は、たとえば、図5Bの514で提供されている。
【0184】
ブロック1120において、最終改善ステップが実行されうる。ここで、最適なルート520のセットを含む最終解が、改善ヒューリスティック技法を使用することによってさらに改善されうる。最終解の改善の詳細は、たとえば、図8および図9に提供されている。
【0185】
ブロック1122において、可変サイズ改善ステップが実行されうる。アニーラー・ベースのソルバー102Aなどのアニーラー・ベースのソルバーは、ハードウェアサイズが可変でありうることに留意されたい。言い換えれば、アニーラー・ベースのソルバーは、アニーラー・ベースのソルバーが決定変数などの固定数の変数のみを扱うことができるように制約されうる。アニーラー・ベースのソルバーによって扱われうる変数の数は、調整可能でありうる。よって、最終解の改善は、アニーラー・ベースのソルバーのハードウェアサイズによって制約されうる。よって、アニーラー・ベースのソルバー102Aのサイズに従って、変数の数が改善のために選択されうる。
【0186】
ブロック1124において、初期解「intiS」からサイズ「r4」のサブセット「R」を選ぶ動作が実行されうる。ここで、初期解は、部分問題のセットからの各部分問題に対応する中間解を組み合わせた後に得られる最終解に対応してもよい。さらに、サブセット「R」は、部分問題のセットのそれぞれに関連付けられたルートのセットに関連付けられたルートのセットから選択されうるルートの第3のサブセットであってもよい。「r4」によって表されうるサブセット「R」のサイズは、アニーラー・ベースのソルバーのハードウェアに依存しうる。アニーラー・ベースのソルバーのハードウェアサイズが大きいほど、サブセット「R」に含まれうるルートの数が多くなり、最終解の改善が速くなる可能性がある。
【0187】
ブロック1126において、サブセット「R」についての解「S」を生成する動作と、生成された解「S」を最終解に加える動作とが実行されうる。ここで、サブセット「R」に基づいて、ヒューリスティック・ベースの問題を構築することができ、解「S」を生成することができ、ここで、解「S」は、アニーラー・ベースのソルバー102Aを使用して決定されうるルートの第4のサブセットを示すことができる。ルートの第4のセットを含む解「S」が最終解に加えられてもよい。ブロック1122、1124、および1126に関連する動作は、最終解を改善するために多数回(たとえば、数百回)実行されうる。ヒューリスティック・ベースの問題およびルートの第4のサブセットの詳細は、たとえば、図9に提供されている。
【0188】
ステップ1128において、解および改善解を組み合わせて解「InitS」にする動作が実行されうる。ここで、(部分問題のセットの各部分問題に関連付けられた中間解を組み合わせた後に取得されうる)最終解は、解「InitS」を取得するために改善解と組み合わされてもよい。
【0189】
解「InitS」は、関連する総コストが最小コストになりうるようにアイテムのセットを輸送するために、車両のセットがデポ114と倉庫116A~116Hのセットとの間でとりうる最短ルートに対応しうる最適なルートのセット520を含みうる。また、最適なルート520のセットは最短経路に対応しうるので、車両のセットは、他の可能なルートと比較して、最適なルート520のセットをカバーするために最小量の時間を必要としうる。したがって、最適なルート520のセットの使用は、燃料消費、フリート管理、およびアイテムの輸送に関わる物流コストの観点から、車両のセットについての運用上の効率をもたらしうる。
【0190】
本開示のさまざまな実施形態は、実行されることに応答して、システム(例示的な電子デバイス102など)に動作を実行させる命令を記憶するように構成された一つまたは複数の非一時的コンピュータ可読記憶媒体を提供することができる。動作は、車両ルーティング問題に関連付けられたパラメータのセットを受領することを含みうる。ここで、車両ルーティング問題は最適化問題であってもよく、その目標は、車両のセットを使用してアイテムのセットを配送するために、デポと倉庫のセットとの間の最適なルートのセットを決定することであってもよく、最適なルートのセットに関連付けられた総コストは、デポと倉庫のセットとの間の可能なルートのセットに関連付けられた最小コストに対応してもよい。動作は、最適化問題に関連付けられた決定変数のセットを受領することをさらに含みうる。動作は、受領されたパラメータのセットおよび受領された決定変数のセットに基づいて、最適化問題に関連付けられた制約条件のセットを受領することをさらに含みうる。動作は、受領された制約条件のセットに基づいて最適化問題を構築することをさらに含みうる。動作は、構築された最適化問題を部分問題のセットに分割することをさらに含むことができ、部分問題のセットのそれぞれは、倉庫のセットの倉庫のサブセットに対応する。動作は、アニーラー・ベースのソルバーを使用して、部分問題のセットのそれぞれについて中間解を決定して、部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定することをさらに含みうる。動作は、受領された制約条件のセットに基づいて最適化問題の最終解を決定するために、部分問題のセットのそれぞれに関連付けられた中間解を組み合わせることをさらに含みうる。ここで、決定された最終解は、車両のセットに割り当てられる最適なルートのセットを示す。動作は、最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングすることをさらに含みうる。
【0191】
本開示で使用される場合、「モジュール」または「コンポーネント」という用語は、モジュールもしくはコンポーネントのアクションを実行するように構成された特定のハードウェア実装形態、および/またはコンピューティング・システムの汎用ハードウェア(たとえば、コンピュータ可読媒体、処理デバイスなど)に記憶および/または実行されうるソフトウェアオブジェクトもしくはソフトウェアルーチンを指しうる。いくつかの実施形態では、本開示で説明される異なるコンポーネント、モジュール、エンジン、およびサービスは、コンピューティング・システム上で実行するオブジェクトまたはプロセスとして(たとえば、別個のスレッドとして)実装されてもよい。本開示で説明されるシステムおよび方法のうちのいくつかは、概して、ソフトウェア(汎用ハードウェアに記憶および/または実行される)で実装されるものとして説明されるが、特定のハードウェア実装またはソフトウェアと特定のハードウェア実装との組み合わせも可能であり、考えられている。本稿では、「コンピューティングエンティティ」は、本開示で前に定義されたような任意のコンピューティング・システム、またはコンピューティング・システム上で動作する任意のモジュールもしくは小モジュールの組み合わせでありうる。
【0192】
本開示および特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体)で使用される用語は、一般に、「オープン」な用語として意図される(たとえば、「含む」という用語は、「…を含むが、それに限定されない」と解釈されるべきであり、「有する」という用語は、「少なくとも…を有する」と解釈されるべきであり、「含む」という用語は、「…を含むが、それに限定されない」と解釈されるべきであるなど)。
【0193】
加えて、導入される請求項記載の特定の数が意図される場合、そのような意図は、請求項において明示的に記載され、そのような記載がない場合、そのような意図は存在しない。たとえば、理解の助けとして、以下の添付の特許請求の範囲は、請求項記載を導入するために、導入句「少なくとも1つの」および「一つまたは複数の」の使用を含みうる。しかしながら、そのような句の使用は、たとえ同じ請求項が導入句「一つまたは複数の」または「少なくとも1つの」と、「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項記載の導入が、そのような導入された請求項記載を含む任意の特定の請求項を、そのような記載を1つだけ含む実施形態に限定することを含意すると解釈されるべきではなく(たとえば、「a」および/または「an」は、「少なくとも1つ」または「一つまたは複数」を意味すると解釈されるべきである)、同じことが、請求項記載を導入するために使用される定冠詞の使用にも当てはまる。
【0194】
加えて、導入される請求項記載の特定の数が明示的に記載されている場合であっても、当業者は、そのような記載が少なくとも記載された数を意味すると解釈されるべきであることを認識するであろう(たとえば、他の修飾語句のない「2つの記載」というだけの記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、B、およびCなどのうちの少なくとも1つ」または「A、B、およびCなどのうちの一つまたは複数」に類似する慣用表現が使用される場合、一般に、そのような構文は、Aのみ、Bのみ、Cのみ、AとB両方、AとC両方、BとC両方、またはAとBとC全部などを含むことが意図される。
【0195】
さらに、2つ以上の代替用語を提示する任意の選言的な語または句は、本稿、特許請求の範囲、または図面のいずれにおいても、それらの用語のうちの1つ、それらの用語のいずれか、または両方の用語を含む可能性を考えているものと理解されるべきである。たとえば、「AまたはB」は、「A」または「B」または「AおよびB」の可能性を含むと理解されるべきである。
【0196】
本開示に記載されるすべての例および条件付き言辞は、読者が本開示および本発明者によって当技術分野の推進に寄与される概念を理解するのを助けるための教育的目的を意図されており、そのような具体的に記載された例および条件に限定されないものとして解釈されるべきである。本開示の実施形態を詳細に説明してきたが、本開示の趣旨および範囲から逸脱することなく、それにさまざまな変更、置換、および改変を行うことができる。
【0197】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
プロセッサによって実行される方法であって:
車両ルーティング問題に関連するパラメータのセットを受領する段階であって、
前記車両ルーティング問題は、車両のセットを使用してアイテムのセットの送達のために、デポと倉庫のセットとの間の最適なルートのセットを決定することを目標とする最適化問題であり、
前記最適なルートのセットに関連する総コストは、前記デポと前記倉庫のセットとの間の可能なルートのセットに関連する最小コストに対応する、段階と;
前記最適化問題に関連する決定変数のセットを受領する段階と;
受領された前記パラメータのセットおよび受領された前記決定変数のセットに基づいて、前記最適化問題に関連する制約条件のセットを受領する段階と;
受領された前記制約条件のセットに基づいて前記最適化問題を構築する段階と;
前記構築された最適化問題を部分問題のセットに分割する段階であって、前記部分問題のセットのそれぞれは、前記倉庫のセットのうちの倉庫のサブセットに対応する、段階と;
アニーラー・ベースのソルバーを使用して、前記部分問題のセットのそれぞれについて中間解を決定して、前記部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定する段階と;
前記部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された前記制約条件のセットに基づいて前記最適化問題の最終解を決定する段階であって、決定された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットを示す、段階と;
前記最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングする段階とを含む、
方法。
(付記2)
受領された前記パラメータのセットは、車両の数、車両タイプに関連付けられた準備時間、第1の位置と第2の位置との間の移動時間、一つまたは複数のアイテムの積み込みおよび/または荷下ろしのためのある位置における需要、逐次反復動作時間、ある位置についての荷下ろし期限、ある位置において積み込みを開始する最も早い時間、ある位置における最大積み込み時間、ある動作時間について車両タイプに関連付けられたコスト、車両タイプが所定量の一つまたは複数のアイテムを収容できるかどうかを示すバイナリ値、またはルートのコストのうちの少なくとも1つを含む、付記1に記載の方法。
(付記3)
受領された前記決定変数のセットは:所定の動作時間を有する車両タイプがルートに割り当てられるかどうかを示すバイナリ変数、ルートにおいて第1の位置から第2の位置まで移動するのにかかる時間、2つの位置の間にかかる合計時間、ルートにおけるある位置で訪問される倉庫、ルートにおけるある位置における一つまたは複数のアイテムの積み込みまたは荷下ろしの量、ルートにおけるある倉庫に関連付けられた位置において積み込みまたは荷下ろしアクションが実行されるかどうかを示すバイナリ変数、ルートにおけるある位置における倉庫について最終積み込み候補が完了であるかどうかを示すバイナリ変数、一つまたは複数のアイテムの積み込みまたは荷下ろしの総量、ルートにおけるある倉庫における一つまたは複数のアイテムの積み込みまたは荷下ろしの量、またはルートにおける倉庫における積み込みが最大積み込み時間制約条件を満たす時間内に行われるかどうかを示すバイナリ変数のうちの少なくとも1つを含む、付記1に記載の方法。
(付記4)
受領された前記制約条件のセットは、車両タイプ制約条件、アクション・タイプ制約条件、距離検証制約条件、総時間制約条件、タスクおよび量マッチング検証制約条件、ルート終了および滞留検証制約条件、無効化ルート施行制約条件、需要制約条件、動作時間制約条件、期限制約条件、最大ロード時間制約条件、容量計算制約条件、および車両容量制約条件のうちの少なくとも1つを含む、付記1に記載の方法。
(付記5)
前記最適化問題は、前記可能なルートのセットにおける各ルートについて、動作時間について車両タイプへのルートの割り当てに関連する総コストを最小化するように構成された第1の目的関数を含む、付記1に記載の方法。
(付記6)
前記最適化問題は、前記最適なルートのセットに含まれる各ルートに関連する総コストの総和を最小化するように構成された第2の目的関数を含む、付記1に記載の方法。
(付記7)
前記部分問題のセットのうちの前記対応する部分問題に関連付けられた決定された前記中間解に対するヒューリスティック技法の適用に基づいて、前記部分問題のセットのそれぞれについて改善された中間解を決定する段階をさらに含み、
前記最終解の決定が、前記部分問題のセットのそれぞれについての決定された前記改善された中間解の組み合わせにさらに基づく、
付記1に記載の方法。
(付記8)
前記部分問題のセットのある部分問題に関連付けられた前記ルートのセットからルートの第1のサブセットを選択する段階と;
ルートの選択された第1のサブセットに基づいてヒューリスティック・ベースの問題を構築する段階と;
前記アニーラー・ベースのソルバーを使用して、構築された前記ヒューリスティック・ベースの問題に基づいてルートの第2のサブセットを示す解を決定する段階と;
決定された前記解を前記部分問題に関連付けられた前記中間解と比較する段階と;
前記比較に基づいて、前記決定された解を前記改善された中間解として選択する段階とをさらに含み、
前記部分問題に関連付けられた前記ルートのセットは、前記ルートの第2のサブセットに基づいて更新される、
付記7に記載の方法。
(付記9)
前記決定された最終解に対するヒューリスティック技法の適用に基づいて、前記最適化問題の改善された最終解を決定する段階をさらに含み、
前記改善された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットに対応する、
付記1に記載の方法。
(付記10)
前記部分問題のセットのそれぞれに関連付けられた前記ルートのセットに関連付けられた前記ルートのセットからルートの第3のサブセットを選択する段階と;
ルートの選択された第3のサブセットに基づいてヒューリスティック・ベースの問題を構築する段階と;
前記アニーラー・ベースのソルバーを使用して、構築された前記ヒューリスティック・ベースの問題に基づいてルートの第4のサブセットを示す解を決定する段階と;
決定された前記解を前記最終解と比較する段階と;
前記比較に基づいて、前記決定された解を前記改善された最終解として選択する段階とをさらに含み、
前記最適なルートのセットは、前記ルートの第4のサブセットに基づいて更新される、
付記9に記載の方法。
(付記11)
前記最終解の決定が、前記倉庫のセットを含む前記ルートのセット、前記制約条件のセットの満足、および前記最適なルートのセットに関連する総コストの最小化のうちの少なくとも1つにさらに基づく、付記1に記載の方法。
(付記12)
前記部分問題のセットのうちの第1の部分問題に関連付けられた位置のセットから位置の第1のサブセットを選択する段階と;
前記アニーラー・ベースのソルバーを使用して前記第1の部分問題を解くために第1の動作セットの実行を制御する段階であって、前記第1の動作セットが:
位置の選択された第1のサブセットについて、前記第1の部分問題に関連付けられた第1の部分的な解を決定し;
前記第1の部分的な解を、前記第1の部分問題に関連付けられた初期解に追加し;
前記位置のセットから位置の第2のサブセットを、位置の前記選択された第1のサブセットとして再選択することを含む、
段階と;
第1の所定数の反復にわたる前記第1の動作セットの逐次反復的実行に基づいて、前記初期解から前記第1の部分問題に関連付けられた前記中間解を得る段階とをさらに含む、
付記1に記載の方法。
(付記13)
前記第1の部分問題に関連付けられた前記初期解に基づいてルートの第1のサブセットを選択する段階と;
前記アニーラー・ベースのソルバーを使用して前記第1の部分問題を解くために第2の動作セットの実行を制御する段階であって、前記第2の動作セットが:
ルートの選択された第1のサブセットについて、前記第1の部分問題に関連付けられた第2の部分的な解を決定し;
前記第2の部分的な解を、前記第1の部分問題に関連付けられた前記初期解に追加し;
ルートの前記選択された第1のサブセットとして、前記初期解に基づいてルートの第2のサブセットを再選択することを含む、
段階と;
第2の所定数の反復にわたる前記第2の動作セットの逐次反復的実行にさらに基づいて、前記初期解から前記第1の部分問題に関連付けられた前記中間解を得る段階とをさらに含む、
付記12に記載の方法。
(付記14)
実行されることに応答して、電子デバイスに動作を実行させる命令を記憶するように構成された一つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記動作が:
車両ルーティング問題に関連するパラメータのセットを受領する段階であって、
前記車両ルーティング問題は、車両のセットを使用してアイテムのセットの送達のために、デポと倉庫のセットとの間の最適なルートのセットを決定することを目標とする最適化問題であり、
前記最適なルートのセットに関連する総コストは、前記デポと前記倉庫のセットとの間の可能なルートのセットに関連する最小コストに対応する、段階と;
前記最適化問題に関連する決定変数のセットを受領する段階と;
受領された前記パラメータのセットおよび受領された前記決定変数のセットに基づいて、前記最適化問題に関連する制約条件のセットを受領する段階と;
受領された前記制約条件のセットに基づいて前記最適化問題を構築する段階と;
前記構築された最適化問題を部分問題のセットに分割する段階であって、前記部分問題のセットのそれぞれは、前記倉庫のセットのうちの倉庫のサブセットに対応する、段階と;
アニーラー・ベースのソルバーを使用して、前記部分問題のセットのそれぞれについて中間解を決定して、前記部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定する段階と;
前記部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された前記制約条件のセットに基づいて前記最適化問題の最終解を決定する段階であって、決定された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットを示す、段階と;
前記最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングする段階とを含む、
一つまたは複数の非一時的なコンピュータ可読記憶媒体。
(付記15)
受領された前記パラメータのセットは、車両の数、車両タイプに関連付けられた準備時間、第1の位置と第2の位置との間の移動時間、一つまたは複数のアイテムの積み込みおよび/または荷下ろしのためのある位置における需要、逐次反復動作時間、ある位置についての荷下ろし期限、ある位置において積み込みを開始する最も早い時間、ある位置における最大積み込み時間、ある動作時間について車両タイプに関連付けられたコスト、車両タイプが所定量の一つまたは複数のアイテムを収容できるかどうかを示すバイナリ値、またはルートのコストのうちの少なくとも1つを含む、付記14に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
(付記16)
受領された前記決定変数のセットは:所定の動作時間を有する車両タイプがルートに割り当てられるかどうかを示すバイナリ変数、ルートにおいて第1の位置から第2の位置まで移動するのにかかる時間、2つの位置の間にかかる合計時間、ルートにおけるある位置で訪問される倉庫、ルートにおけるある位置における一つまたは複数のアイテムの積み込みまたは荷下ろしの量、ルートにおけるある倉庫に関連付けられた位置において積み込みまたは荷下ろしアクションが実行されるかどうかを示すバイナリ変数、ルートにおけるある位置における倉庫について最終積み込み候補が完了であるかどうかを示すバイナリ変数、一つまたは複数のアイテムの積み込みまたは荷下ろしの総量、ルートにおけるある倉庫における一つまたは複数のアイテムの積み込みまたは荷下ろしの量、またはルートにおける倉庫における積み込みが最大積み込み時間制約条件を満たす時間内に行われるかどうかを示すバイナリ変数のうちの少なくとも1つを含む、付記14に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
(付記17)
受領された前記制約条件のセットは、車両タイプ制約条件、アクション・タイプ制約条件、距離検証制約条件、総時間制約条件、タスクおよび量マッチング検証制約条件、ルート終了および滞留検証制約条件、無効化ルート施行制約条件、需要制約条件、動作時間制約条件、期限制約条件、最大ロード時間制約条件、容量計算制約条件、および車両容量制約条件のうちの少なくとも1つを含む、付記14に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
(付記18)
前記動作は:
前記部分問題のセットのうちの前記対応する部分問題に関連付けられた決定された前記中間解に対するヒューリスティック技法の適用に基づいて、前記部分問題のセットのそれぞれについて改善された中間解を決定する段階をさらに含み、
前記最終解の決定が、前記部分問題のセットのそれぞれについての決定された前記改善された中間解の組み合わせにさらに基づく、
付記14に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
(付記19)
前記動作は:
前記部分問題のセットのある部分問題に関連付けられた前記ルートのセットからルートの第1のサブセットを選択する段階と;
ルートの選択された第1のサブセットに基づいてヒューリスティック・ベースの問題を構築する段階と;
前記アニーラー・ベースのソルバーを使用して、構築された前記ヒューリスティック・ベースの問題に基づいてルートの第2のサブセットを示す解を決定する段階と;
決定された前記解を前記部分問題に関連付けられた前記中間解と比較する段階と;
前記比較に基づいて、前記決定された解を前記改善された中間解として選択する段階とをさらに含み、
前記部分問題に関連付けられた前記ルートのセットは、前記ルートの第2のサブセットに基づいて更新される、
付記18に記載の一つまたは複数の非一時的なコンピュータ可読記憶媒体。
(付記20)
命令を記憶しているメモリと;
前記メモリに結合され、前記命令を実行してプロセスを実行するプロセッサと
を有する電子デバイスであって、前記プロセスは:
車両ルーティング問題に関連するパラメータのセットを受領する段階であって、
前記車両ルーティング問題は、車両のセットを使用してアイテムのセットの送達のために、デポと倉庫のセットとの間の最適なルートのセットを決定することを目標とする最適化問題であり、
前記最適なルートのセットに関連する総コストは、前記デポと前記倉庫のセットとの間の可能なルートのセットに関連する最小コストに対応する、段階と;
前記最適化問題に関連する決定変数のセットを受領する段階と;
受領された前記パラメータのセットおよび受領された前記決定変数のセットに基づいて、前記最適化問題に関連する制約条件のセットを受領する段階と;
受領された前記制約条件のセットに基づいて前記最適化問題を構築する段階と;
前記構築された最適化問題を部分問題のセットに分割する段階であって、前記部分問題のセットのそれぞれは、前記倉庫のセットのうちの倉庫のサブセットに対応する、段階と;
アニーラー・ベースのソルバーを使用して、前記部分問題のセットのそれぞれについて中間解を決定して、前記部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定する段階と;
前記部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された前記制約条件のセットに基づいて前記最適化問題の最終解を決定する段階であって、決定された最終解は、前記車両のセットに割り当てられる前記最適なルートのセットを示す、段階と;
前記最適化問題の決定された最終解をディスプレイ・デバイス上にレンダリングする段階とを含む、
電子デバイス。
【符号の説明】
【0198】
102 電子デバイス
102A アニーラー・ベースのソルバー
104 サーバー
112 ユーザー
114 デポ
116 倉庫
118 車両
108 通信ネットワーク
106 データベース

202 システム
204 プロセッサ
206 メモリ
208 I/Oデバイス
208A 表示デバイス
210 ネットワーク・インターフェース

302 車両ルーティング問題に関連するパラメータのセットを受領。車両ルーティング問題は、車両のセットを使用してアイテムのセットを配送するために、デポと倉庫のセットとの間の最適ルートのセットを決定することを目標とする最適化問題。最適なルートのセットに関連する総コストは、デポと倉庫のセットとの間の可能なルートのセットに関連する最小コストに対応する
304 最適化問題に関連する決定変数のセットを受領
306 最適化問題に関連する制約条件のセットを、受領されたパラメータのセットおよび受領された決定変数のセットに基づいて受領
308 受領された制約条件のセットに基づいて最適化問題を構築
310 構築された最適化問題を、部分問題のセットに分割。部分問題のセットのそれぞれは、倉庫のセットのうちの倉庫のサブセットに対応
312 アニーラー・ベースのソルバーを使用して、部分問題のセットのそれぞれについての中間解を決定して、部分問題のセットの対応する部分問題に関連付けられたルートのセットを決定
314 部分問題のセットのそれぞれに関連付けられた中間解を組み合わせて、受領された制約条件のセットに基づいて最適化問題の最終解を決定。決定された最終解は、車両のセットに割り当てられる最適なルートのセットを示す
316 最適化問題の決定された最終解を、ディスプレイ・デバイス上にレンダリング

402 パラメータ
404 決定変数
406 制約条件
408 最適化問題
410 部分問題
412 中間解
414 中間解組み合わせ
416 最終解

502 パラメータ受領
504 決定変数受領
506 制約条件受領
508 最適化問題構築
502A パラメータ
504A 決定変数
506A 制約条件
508A 最適化問題

510 部分問題決定
512 中間解決定
514 最終解決定
516 部分問題のセット
516A 部分問題1
516B 部分問題2
516C 部分問題3
516N 部分問題N
518 中間解
520 最適なルートのセット
520A 最適なルート1
520B 最適なルート2
520C 最適なルート3
520M 最適なルートM

602 部分問題のセットのそれぞれについての改善された中間解を、部分問題のセットの対応する部分問題に関連付けられた決定された中間解に対するヒューリスティック技法の適用に基づいて決定
604 最終解を、部分問題のセットのそれぞれについて、決定された改善された中間解の組み合わせにさらに基づいて決定

702 部分問題のセットのうちのある部分問題に関連付けられたルートのセットから、ルートの第1のサブセットを選択
704 ルートの選択された第1のサブセットに基づいてヒューリスティック・ベースの問題を構築
706 構築されたヒューリスティック・ベースの問題に基づいて、アニーラー・ベースのソルバーを使用して、ルートの第2のサブセットを示す解を決定
708 決定された解を、部分問題に関連付けられた中間解と比較
710 決定された解を、比較に基づいて改善された中間解として選択。部分問題に関連付けられたルートのセットは、ルートの第2のサブセットに基づいて更新される

802 最適化問題の改善された最終解を、決定された最終解に対するヒューリスティック技法の適用に基づいて決定
804 車両のセットに割り当てられるべき最適なルートのセットを、改善された最終解に基づいて決定

902 部分問題のセットのそれぞれに関連付けられたルートのセットから、ルートの第3のサブセットを選択
904 ルートの選択された第3のサブセットに基づいてヒューリスティック・ベースの問題を構築
906 アニーラー・ベースのソルバーを使用して、構築されたヒューリスティック・ベースの問題に基づいて、ルートの第4のサブセットを示す解を決定
908 決定された解を、最終解と比較
910 決定された解を、比較に基づいて改善された最終解として選択。最適なルートのセットは、ルートの第4のサブセットに基づいて更新される

1002 倉庫のセット
1004 倉庫のサブセット
1006 各サブセットについて解く
1008 ルートを組み合わせ
1010 ルートの最適セット
1014、1016、1018 ルートを選ぶ
1020 ルートを組み合わせ
1022 最終解

1102 構築段階
1104 都市からサイズr1のサブセットCを選択
1106 Cについての解Sを生成し、解に追加
1108 Sからサイズr2のサブセットRを選択
1110 Rについての解S'を生成し、解に追加
1112 改善段階
1114 解からサイズr3のサブセットRを選択
1116 Rについての解Sを生成し、改善解に追加
1118 解と改善解を中間解intSに組み合わせる
1120 最終改善段階
1122 可変サイズ改善段階
1124 サイズr4のサブセットRをinitSから選択
1126 Rについての解Sを生成し、最終解に追加
1128 解と改善解をinitSに組み合わせる
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10
図11