(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022182286
(43)【公開日】2022-12-08
(54)【発明の名称】経路導出システムおよび経路導出方法
(51)【国際特許分類】
G01C 21/34 20060101AFI20221201BHJP
G06N 10/00 20220101ALI20221201BHJP
G06N 99/00 20190101ALI20221201BHJP
G06Q 10/04 20120101ALI20221201BHJP
G06Q 10/08 20120101ALI20221201BHJP
【FI】
G01C21/34
G06N10/00
G06N99/00 180
G06Q10/04 310
G06Q10/08 300
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021089759
(22)【出願日】2021-05-28
(71)【出願人】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】土井 健
(72)【発明者】
【氏名】大野 真一朗
【テーマコード(参考)】
2F129
5L049
【Fターム(参考)】
2F129AA06
2F129DD62
2F129DD66
2F129DD70
2F129EE21
2F129EE53
2F129EE54
2F129EE81
2F129EE82
2F129EE88
2F129EE90
2F129FF20
2F129FF32
2F129FF49
2F129FF60
2F129FF65
2F129FF66
2F129FF70
5L049AA04
5L049AA16
(57)【要約】
【課題】量子コンピュータを活用して、複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の望ましい移動経路を導出する。
【解決手段】経路導出システム10は、古典コンピュータ部18とイジングマシン16を備える。古典コンピュータ部18は、複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の暫定的な移動経路を導出する。古典コンピュータ部18は、複数の移動体の暫定的な移動経路のそれぞれを、各移動体の移動コストが最小になるよう最適化するための求解処理をイジングマシン16に実行させる。古典コンピュータ部18は、イジングマシン16による求解処理の結果に基づく複数の移動体の移動経路を示すデータを出力する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
古典コンピュータ部と、
イジングモデルの解を求める量子コンピュータ部と、
を備え、
前記古典コンピュータ部は、
複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の移動経路を導出する暫定経路導出部と、
1つの移動体の移動経路に含まれる訪問地間の移動コストに基づいて前記1つの移動体の移動経路に含まれる全ての訪問地を辿る場合の移動コストを求めるイジングモデルを生成し、前記複数の移動体の移動経路に対応する複数のイジングモデルを生成するモデル生成部と、
前記複数のイジングモデルを前記量子コンピュータ部に入力して、移動コストを最小にする前記複数のイジングモデルの解を前記量子コンピュータ部から取得し、前記複数のイジングモデルの解に基づいて、前記複数の移動体の移動経路を導出する解導出部と、
前記解導出部により導出された前記複数の移動体の移動経路を示すデータを出力する出力部と、を含む経路導出システム。
【請求項2】
古典コンピュータ部と、
イジングモデルの解を求める量子コンピュータ部と、
を備え、
前記古典コンピュータ部は、
M個(Mは2以上の整数)の移動体が手分けして複数の訪問地を辿る場合の各移動体の移動経路を導出する暫定経路導出部と、
N個(Nは2以上かつM未満の整数)の移動体の移動経路に含まれる複数の訪問地をグループ化することにより、複数の訪問地を含む複数のグループを設定するクラスタリング部と、
1つのグループに含まれる訪問地間の移動コストに基づいて前記1つのグループに含まれる複数の訪問地に前記N個の移動体が手分けして訪問する場合の移動コストを求めるイジングモデルを生成し、複数のグループに対応する複数のイジングモデルを生成するモデル生成部と、
前記複数のイジングモデルを前記量子コンピュータ部に入力して、移動コストを最小にする前記複数のイジングモデルの解を前記量子コンピュータ部から取得し、前記複数のイジングモデルの解に基づいて、前記M個の移動体の移動経路を導出する解導出部と、
前記解導出部により導出された前記M個の移動体の移動経路を示すデータを出力する出力部と、を含む経路導出システム。
【請求項3】
前記クラスタリング部は、階層型クラスタリングにより、前記N個の移動体の移動経路に含まれる複数の訪問地をグループ化する、
請求項2に記載の経路導出システム。
【請求項4】
前記クラスタリング部は、前記N個の移動体の移動経路に含まれる複数の訪問地をグループ化することを制約とするイジングモデルであって、各グループに含まれる移動経路間の移動コストについて全グループでの移動コストの総和を求めるイジングモデルを生成し、生成したイジングモデルを前記量子コンピュータ部に入力して、前記移動コストの総和を最小にするイジングモデルの解を前記量子コンピュータ部から取得し、その解に基づいて、複数の訪問地を含む複数のグループを設定する、
請求項2に記載の経路導出システム。
【請求項5】
前記出力部は、前記暫定経路導出部により導出された或る移動体の移動経路における移動コストが、前記解導出部により導出された前記或る移動体の移動経路における移動コストより小さい場合、前記解導出部により導出された前記或る移動体の移動経路に代えて、前記暫定経路導出部により導出された前記或る移動体の移動経路を示すデータを出力する、
請求項1から4のいずれかに記載の経路導出システム。
【請求項6】
前記モデル生成部により生成されるイジングモデルは、前記移動体が訪問地を辿る場合の制約を定め、かつ、その制約に反する場合に移動コストを増加させる制約項を含み、
前記出力部は、前記解導出部により導出された或る移動体の移動経路が前記制約項の制約に反する場合、前記解導出部により導出された前記或る移動体の移動経路に代えて、前記暫定経路導出部により導出された前記或る移動体の移動経路を示すデータを出力する、
請求項1から5のいずれかに記載の経路導出システム。
【請求項7】
古典コンピュータ部と量子コンピュータ部とを備える経路導出システムにおいて実行される方法であって、
前記古典コンピュータ部が、
複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の暫定的な移動経路を導出するステップと、
前記複数の移動体の暫定的な移動経路のそれぞれを、各移動体の移動コストが最小になるよう最適化するための求解処理を前記量子コンピュータ部に実行させるステップと、
前記量子コンピュータ部による求解処理の結果に基づく前記複数の移動体の移動経路を示すデータを出力するステップと、を実行する経路導出方法。
【請求項8】
古典コンピュータ部と量子コンピュータ部とを備える経路導出システムにおいて実行される方法であって、
前記古典コンピュータ部が、
M個(Mは2以上の整数)の移動体が手分けして複数の訪問地を辿る場合の各移動体の暫定的な移動経路を導出するステップと、
N個(Nは2以上かつM未満の整数)の移動体の暫定的な移動経路に含まれる複数の訪問地をグループ化することにより、複数の訪問地を含む複数のグループを設定するステップと、
グループごとに、前記N個の移動体が手分けして当該グループに含まれる複数の訪問地を辿る場合の移動コストが最小になるよう前記N個の移動体の移動経路を最適化するための求解処理を前記量子コンピュータ部に実行させるステップと、
前記量子コンピュータ部によるグループごとの求解処理の結果に基づく前記M個の移動体の移動経路を示すデータを出力するステップと、を実行する経路導出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理技術に関し、特に経路導出システムおよび経路導出方法に関する。
【背景技術】
【0002】
実世界における、様々な要素の膨大な組合せを考慮しながら適切な解を見つけ出す組み合わせ最適化問題として、例えば、巡回セールスマン問題が挙げられる。巡回セールスマン問題とは、ある都市を出発したセールスマンが他の複数の都市を一回ずつ訪問して出発した都市に戻る場合に、移動距離が最小となるように巡回する都市の順番を決めるという問題である。以下の特許文献1では、時間帯により変化する各地点間の交通状況を踏まえて、出発地点から到着地点までの経路を提示するシステムが提案されている。
【0003】
組み合わせ最適化問題は、その求解において非常に長い時間がかかる場合があるという特徴がある。近年、組み合わせ最適化問題の求解の高速化を実現するためのコンピュータとして量子コンピュータが注目されている(例えば特許文献2参照。)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-56730号公報
【特許文献2】特開2020-149403号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の最適な移動経路を求める問題は、組み合わせ最適化問題に分類される。既述したように、組み合わせ最適化問題は、その求解において非常に長い時間がかかる場合があり、また、現在の量子コンピュータは、量子ビット数が少なく、組み合わせ対象の要素数が多い最適化問題の求解は困難である。
【0006】
本開示は、本発明者の上記課題認識に基づきなされたものであり、1つの目的は、量子コンピュータを活用して、複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の望ましい移動経路を導出する技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本開示のある態様の経路導出システムは、古典コンピュータ部と、イジングモデルの解を求める量子コンピュータ部と、を備える。古典コンピュータ部は、複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の移動経路を導出する暫定経路導出部と、1つの移動体の移動経路に含まれる訪問地間の移動コストに基づいて1つの移動体の移動経路に含まれる全ての訪問地を辿る場合の移動コストを求めるイジングモデルを生成し、複数の移動体の移動経路に対応する複数のイジングモデルを生成するモデル生成部と、複数のイジングモデルを量子コンピュータ部に入力して、移動コストを最小にする複数のイジングモデルの解を量子コンピュータ部から取得し、複数のイジングモデルの解に基づいて、複数の移動体の移動経路を導出する解導出部と、解導出部により導出された複数の移動体の移動経路を示すデータを出力する出力部とを含む。
【0008】
本開示の別の態様もまた、経路導出システムである。この経路導出システムは、古典コンピュータ部と、イジングモデルの解を求める量子コンピュータ部と、を備える。古典コンピュータ部は、M個(Mは2以上の整数)の移動体が手分けして複数の訪問地を辿る場合の各移動体の移動経路を導出する暫定経路導出部と、N個(Nは2以上かつM未満の整数)の移動体の移動経路に含まれる複数の訪問地をグループ化することにより、複数の訪問地を含む複数のグループを設定するクラスタリング部と、1つのグループに含まれる訪問地間の移動コストに基づいて1つのグループに含まれる複数の訪問地にN個の移動体が手分けして訪問する場合の移動コストを求めるイジングモデルを生成し、複数のグループに対応する複数のイジングモデルを生成するモデル生成部と、複数のイジングモデルを量子コンピュータ部に入力して、移動コストを最小にする複数のイジングモデルの解を量子コンピュータ部から取得し、複数のイジングモデルの解に基づいて、M個の移動体の移動経路を導出する解導出部と、解導出部により導出されたM個の移動体の移動経路を示すデータを出力する出力部とを含む。
【0009】
本開示のさらに別の態様は、経路導出方法である。この方法は、古典コンピュータ部と量子コンピュータ部とを備える経路導出システムにおいて実行される方法であって、古典コンピュータ部が、複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の暫定的な移動経路を導出するステップと、複数の移動体の暫定的な移動経路のそれぞれを、各移動体の移動コストが最小になるよう最適化するための求解処理を量子コンピュータ部に実行させるステップと、量子コンピュータ部による求解処理の結果に基づく複数の移動体の移動経路を示すデータを出力するステップとを実行する。
【0010】
本開示のさらに別の態様もまた、経路導出方法である。この方法は、古典コンピュータ部と量子コンピュータ部とを備える経路導出システムにおいて実行される方法であって、古典コンピュータ部が、M個(Mは2以上の整数)の移動体が手分けして複数の訪問地を辿る場合の各移動体の暫定的な移動経路を導出するステップと、N個(Nは2以上かつM未満の整数)の移動体の暫定的な移動経路に含まれる複数の訪問地をグループ化することにより、複数の訪問地を含む複数のグループを設定するステップと、グループごとに、N個の移動体が手分けして当該グループに含まれる複数の訪問地を辿る場合の移動コストが最小になるようN個の移動体の移動経路を最適化するための求解処理を量子コンピュータ部に実行させるステップと、量子コンピュータ部によるグループごとの求解処理の結果に基づくM個の移動体の移動経路を示すデータを出力するステップとを実行する。
【0011】
なお、以上の構成要素の任意の組合せ、本開示の表現を、装置、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で変換したものもまた、本開示の態様として有効である。
【発明の効果】
【0012】
本開示によれば、量子コンピュータを活用して、複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の望ましい移動経路を導出することができる。
【図面の簡単な説明】
【0013】
【
図4】第1実施例のハイブリッド手法を示す図である。
【
図5】第1実施例の経路導出システムの構成を示す図である。
【
図6】第1実施例の受付用古典コンピュータと演算用古典コンピュータの機能ブロックを示すブロック図である。
【
図8】各ノードでの荷量需要量の例を示す図である。
【
図9】配送車1台に積込可能な最大荷量の例を示す図である。
【
図10】配送車1台が走行可能な最大時間の例を示す図である。
【
図11】配送車1台が訪問可能な最大ノード数の例を示す図である。
【
図12】暫定経路導出部により導出される暫定経路の例を示す図である。
【
図14】4店舗TSPでの変数の構造を示す図である。
【
図15】TSPにおける2種類の制約を示す図である。
【
図17】第2実施例のハイブリッド手法を示す図である。
【
図18】第2実施例の受付用古典コンピュータと演算用古典コンピュータの機能ブロックを示すブロック図である。
【
図19】各ノードの座標データの例を示す図である。
【
図21】
図21(a)は、クラスタリング処理の第1ステップの例を示す図であり、
図21(b)は、クラスタリング処理の第2ステップの例を示す図である。
【
図22】4店舗を2車両で訪問するCVRPを示す図である。
【
図23】4店舗2車両CVRPでの変数の構造を示す図である。
【
図24】CVRPにおける4種類の制約を示す図である。
【
図25】第3実施例のハイブリッド手法を示す図である。
【
図26】10要素を分割する際の変数の構造を示す図である。
【
図27】イジングモデルを用いたクラスタリングにおける2種類の制約を示す図である。
【発明を実施するための形態】
【0014】
本開示における装置または方法の主体は、コンピュータを備えている。このコンピュータがコンピュータプログラムを実行することによって、本開示における装置または方法の主体の機能が実現される。コンピュータは、コンピュータプログラムにしたがって動作するプロセッサを主なハードウェア構成として備える。プロセッサは、コンピュータプログラムを実行することによって機能を実現することができれば、その種類は問わない。プロセッサは、半導体集積回路(IC、LSI等)を含む1つまたは複数の電子回路で構成される。コンピュータプログラムは、コンピュータが読み取り可能なROM、光ディスク、ハードディスクドライブなどの非一時的な記録媒体に記録される。コンピュータプログラムは、記録媒体に予め格納されていてもよいし、インターネット等を含む広域通信網を介して記録媒体に供給されてもよい。
【0015】
<従来技術>
運送事業や物流事業を行う企業では、複数の移動体(実施例ではトラック等の配送車とする)が手分けして複数の訪問地(実施例では店舗とする)を辿り、複数の訪問地に物品を届け、または、複数の訪問地から物品を集荷する。このような企業では、複数の配送車の移動経路、すなわち、どの店舗にどの順番で訪問するかを適切に決定する必要がある。
【0016】
図1は、複数の配送車の移動経路を決定する従来手法である古典手法1を示す。古典手法1は、現実的な時間で移動経路の解が求まり、よく使われている。古典手法1では、プロセス1として、量子コンピュータ用の量子アルゴリズムとは異なる古典コンピュータ用のアルゴリズム(以下「古典アルゴリズム」とも呼ぶ。)を用いて、複数の配送車それぞれの暫定的な移動経路(以下「暫定経路」とも呼ぶ。)を作成する。
【0017】
暫定経路作成のための古典アルゴリズムとして、例えば、最近傍法(nearest neighbor algorithm、以下「NN法」とも呼ぶ。)が用いられる。
図2は、暫定経路の作成の概略を示す。暫定経路の作成では、例えばNN法を用いて、配送車の積載上限量の制約と便指定時間の制約を満たしつつ複数の店舗50を辿るように複数の配送車の経路を作成する。暫定経路生成の過程では、以下の制約1と制約2を満たすように経路を積み上げる。
制約1:Σ(経路荷量) ≦ 積載上限量
制約2:Σ(移動時間+滞店時間) ≦ 便指定時間
【0018】
例えば
図2では、(6)において1台の配送車の荷量の上限に達するので、その配送車はセンタ(配送車の拠点であり、配送センタと言え、デポとも言える。)に帰庫させる。そして、別の配送車で(7)から経路を作成する。
【0019】
図1に戻り、古典手法1では、プロセス2として、古典的な局所探索法を用いて、複数の配送車の複数の暫定経路間、および、1台の配送車の暫定経路内での最適化を行う。「Exchange」は、複数の経路間で配送時間増加の要因となる2つの店舗を交換する操作である。なお、異なる2店舗間の経路二本に着目し、別の2本の経路に置き換える操作がCross操作である。
【0020】
「2-Opt」は、1つの経路内の2つのパスの交差を解除する操作である。「LK(Lin-Kernighan)」は、1つの経路内の3つ以上のパスの交差を同時に解除する操作である。「Or-Opt」は、1つの経路内で非効率なパスを打ち切り、効率的なパスになるよう再接続する操作である。
【0021】
図3は、複数の配送車の移動経路を決定する従来手法である古典手法2を示す。古典手法2は、古典手法1のステップ2にて改善された複数の配送車それぞれの経路に対して、メタヒューリスティクスの適用(プロセス3)と、近傍操作適用(プロセス4)を繰り返し実行することで、最適化を試行する。古典手法1と比較して、古典手法2は、複数の配送車の移動時間の合計が短縮される(すなわちより好適な解が求まる)可能性が高いが、求解に非常に大きな時間がかかってしまう。また、求解にどれだけ時間をかければよいかも自明ではない。
【0022】
複数の配送車が手分けして複数の店舗を辿る場合の各配送車の最適な移動経路を求める問題は、組み合わせ最適化問題に分類され、古典手法ではその求解において非常に長い時間がかかる場合がある。近年、組み合わせ最適化問題の求解の高速化を実現するためのコンピュータとして量子コンピュータが注目されている。そこで、複数の配送車の最適な移動経路を求める問題全体を素朴に容量制約有りの配送計画問題(Capacitated Vehicle Routing Problem、以下「CVRP」と呼ぶ。)として量子コンピュータにより求解することも考えられる。しかし、その場合、最低でも店舗数の2乗の行列(300店舗であれば300×300の行列)を用意する必要があり、現実的にこの規模の問題を解ける量子コンピュータは存在しない。
【0023】
そこで、以下の第1実施例~第3実施例では、古典コンピュータによる経路導出処理と、量子コンピュータによる最適化処理とを組み合わせて、複数の移動体が手分けして複数の訪問地を辿る場合の各移動体の望ましい移動経路を導出するハイブリッド手法を提案する。各実施例のハイブリッド手法によると、量子コンピュータによる計算の規模を現実的に求解可能なレベルにまで低減し、また、組み合わせ最適化問題に対する量子コンピュータの優位性を活かすことができる。
【0024】
<第1実施例>
図4は、複数の配送車の移動経路を決定する第1実施例のハイブリッド手法を示す。第1実施例のハイブリッド手法は、
図1に示した古典手法1のプロセス1とプロセス2(一部)を実行後、各配送車の経路に対して量子アニーリングによる最適化処理を適用する。具体的には、プロセス3として、プロセス2において導出された個々の配送車の暫定経路ごとに、個々の配送車の最適な経路を巡回セールスマン問題(Traveling Salesman Problem、以下「TSP」とも呼ぶ。)として量子コンピュータにより求解する。
【0025】
図5は、第1実施例の経路導出システムの構成を示す。経路導出システム10は、受付用古典コンピュータ12、演算用古典コンピュータ14、イジングマシン16を備える情報処理システムである。受付用古典コンピュータ12と演算用古典コンピュータ14は、古典コンピュータ部18と総称される。古典コンピュータ部18は、0または1のどちらかの状態を表すビットを情報の基本単位とするコンピュータであり、典型的にはノイマン型コンピュータである。
【0026】
受付用古典コンピュータ12は、ユーザ端末20から送信された経路導出要求を受け付ける。また、受付用古典コンピュータ12は、経路導出処理のうち古典アルゴリズムによる処理(
図4のステップ1、2)を演算用古典コンピュータ14へ振り分け、量子アルゴリズムによる処理(
図4のステップ3)をイジングマシン16へ振り分ける。演算用古典コンピュータ14は、古典アルゴリズムによる経路導出処理(
図4のステップ1、2)を実行する
【0027】
量子ビットを情報の基本単位とするアニーリング型の量子コンピュータはイジングマシン16の1方式として分類することもでき、イジングマシンは、QUBO(Quadratic Unconstrainted Binary Optimization)ソルバーまたはアニーリングマシンとも呼ばれる。イジングマシン16は、FPGA(Field-Programmable Gate Array)やGPU(Graphics Processing Unit)等を利用して、量子アニーニング方式のマシンと同様に、組み合わせ最適化を高速に計算する。
【0028】
イジングマシン16を利用して組み合わせ最適化問題を解くには、その問題をQUBO形式またはイジング形式の数理モデル(コスト関数とも言える)によって表現する必要がある。QUBOは、二次制約なしバイナリ最適化といわれ、目的関数を、変数の二次の項までで記述することができる。例えば、x
ix
jx
kのような三次以上の項を含まない。また、QUBOは、式1のような明示的な制約を含まない問題に対する最適化を意味する。そのため、制約が必要な場合、大きなペナルティがかかる制約項(罰則項とも呼ばれる)を目的関数に含めることで対応することが多い。
【数1】
【0029】
QUBO形式のコスト関数と、イジング形式のコスト関数は等価であり、以下総称して「イジングモデル」と呼ぶ。イジングマシン16は、イジングモデルの解を求める量子コンピュータ部とも言える。
【0030】
図6は、第1実施例の受付用古典コンピュータ12と演算用古典コンピュータ14の機能ブロックを示すブロック図である。本明細書のブロック図で示す各ブロックは、ハードウェア的には、コンピュータのプロセッサ、CPU、メモリをはじめとする素子や電子回路、機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【0031】
受付用古典コンピュータ12は、要求受付部30、モデル生成部34、解導出部36、経路出力部38を備える。演算用古典コンピュータ14は、暫定経路導出部32を備える。
図6において受付用古典コンピュータ12が備える機能ブロックの一部は、演算用古典コンピュータ14が備えてもよい。また、
図6において受付用古典コンピュータ12と演算用古典コンピュータ14が備える複数の機能ブロックは、1台の古典コンピュータが備えてもよく、すなわち、第1実施例の受付用古典コンピュータ12と演算用古典コンピュータ14の機能は、1台の古典コンピュータに実装されてもよい。
【0032】
図6には不図示だが、受付用古典コンピュータ12と演算用古典コンピュータ14のそれぞれは、制御部、記憶部、通信部を備えてもよい。制御部は、CPU等を含むプロセッサがコンピュータプログラムを実行することにより実現されてもよく、
図6に示す各機能ブロックは制御部に含まれてもよい。記憶部は、制御部により参照または更新されるデータを記憶してもよい。通信部は、所定の通信プロトコルにしたがって外部装置と通信してもよい。制御部は、通信部を介して、外部装置とデータを送受信してもよい。
【0033】
要求受付部30は、ユーザ端末20から送信された、複数の配送車の移動経路を導出するよう要求するデータである経路導出要求を受け付ける。
【0034】
暫定経路導出部32は、
図4のプロセス1とプロセス2を実行する。具体的には、暫定経路導出部32は、公知の古典アルゴリズム(例えばNN法)に基づいて、複数の配送車が手分けして複数の店舗を辿る場合の各配送車の暫定的な移動経路(暫定経路)を導出する。
【0035】
また、暫定経路導出部32は、公知の古典アルゴリズムに基づいて、複数の配送車の暫定経路間での近傍操作(例えばExchange操作)を適用する。変形例として、暫定経路導出部32は、公知の古典アルゴリズムに基づいて、個々の配送車の暫定経路内での近傍操作(例えばLK操作)を適用してもよい。
【0036】
モデル生成部34は、1つの配送車の暫定経路に含まれる店舗間の移動コストに基づいて、その1つの配送車の暫定経路に含まれる全ての店舗を辿る場合の移動コストを求めるイジングモデルを生成する。モデル生成部34は、この生成処理を配送車ごとに繰り返して、複数の移動体の暫定経路に対応する複数のイジングモデルを生成する。後述するように、第1実施例のモデル生成部34が生成する複数のイジングモデルは、TSPを定式化したものである。
【0037】
解導出部36は、複数の配送車の暫定経路のそれぞれを、各配送車の移動コストが最小になるよう最適化するための求解処理を量子コンピュータ部に実行させる。第1実施例では、解導出部36は、モデル生成部34により生成された複数のイジングモデルをイジングマシン16に入力して、移動コストを最小にする複数のイジングモデルの解をイジングマシン16から取得する。解導出部36は、イジングマシン16から取得した複数のイジングモデルの解に基づいて、複数の配送車の移動経路を導出する。
【0038】
経路出力部38は、量子コンピュータ部による求解処理の結果に基づく複数の配送車の移動経路を示すデータを出力する。第1実施例では、経路出力部38は、解導出部36により導出された複数の配送車の移動経路を示すデータをユーザ端末20へ送信する。
【0039】
以上の構成による第1実施例の経路導出システム10の動作を説明する。
ユーザ端末20は、経路導出要求を受付用古典コンピュータ12へ送信する。受付用古典コンピュータ12の要求受付部30は、ユーザ端末20から送信された経路導出要求を受け付け、複数の配送車それぞれの暫定経路を導出するよう要求するデータを演算用古典コンピュータ14へ送信する。
【0040】
演算用古典コンピュータ14の暫定経路導出部32は、公知の古典アルゴリズムに基づいて、複数の配送車それぞれの暫定経路を導出する。例えば、暫定経路導出部32は、NN法に基づいて、積載上限量の制約と便指定時間の制約を満たしつつ各配送車の暫定経路を導出する。
【0041】
暫定経路導出部32は、複数の配送車の暫定経路を導出するためのパラメータとして、(1)ノード間の距離行列、(2)各ノードでの荷量需要量、(3)配送車1台に積込可能な最大荷量、(4)配送車1台が走行可能な最大時間、(5)配送車1台が訪問可能な最大ノード数を使用する。
図7は、(1)ノード間の距離行列の例を示す。ノード間の距離行列は、複数の配送車が手分けして巡回する複数の店舗について、センタと各店舗間の距離と、ある店舗と別の店舗間の距離を含む。距離は、移動コストとも言え、第1実施例では時間(単位は秒)で表している。
【0042】
図8は、(2)各ノードでの荷量需要量の例を示す。
図9は、(3)配送車1台に積込可能な最大荷量の例を示す。(2)と(3)の単位は、バット数、トレイ数、コンテナ数、ばんじゅう数であってもよい。
図10は、(4)配送車1台が走行可能な最大時間の例(単位は秒)を示す。
図11は、(5)配送車1台が訪問可能な最大ノード数の例(単位は店舗)を示す。(3)~(5)のパラメータは、経路導出対象の複数の配送車のそれぞれについて予め定められる。
【0043】
(1)~(5)のパラメータのうち少なくとも一部は、経路導出要求とともにユーザ端末20から受付用古典コンピュータ12に入力され、受付用古典コンピュータ12から演算用古典コンピュータ14へ入力されてもよい。また、(1)~(5)のパラメータのうち少なくとも一部は、受付用古典コンピュータ12と演算用古典コンピュータ14の少なくとも一方に予め記憶されてもよい。いずれの場合にも、受付用古典コンピュータ12と演算用古典コンピュータ14とがともに、(1)~(5)のパラメータを参照可能なよう構成される。
【0044】
図12は、暫定経路導出部32により導出される暫定経路の例を示す。暫定経路導出部32は、各配送車の暫定経路として、センタを出発してからセンタに戻るまでに訪問する複数の店舗と、各店舗の訪問順を導出する。
図12の例では、配送車1の暫定経路は、センタを出発して、店舗D、店舗A、店舗Eにこの順番で訪問し、センタに戻ることを定めている。さらに暫定経路導出部32は、各配送車の暫定経路に基づく移動時間を導出する。例えば、暫定経路導出部32は、暫定経路上の各ノード間の距離と、予め定められた配送車の平均速度とに基づいて、各配送車の移動時間を計算してもよい。
【0045】
演算用古典コンピュータ14の暫定経路導出部32は、複数の配送車の暫定経路を示すデータ(例えば
図12のデータ)を受付用古典コンピュータ12へ送信する。受付用古典コンピュータ12のモデル生成部34は、複数の配送車の暫定経路をもとに、複数の配送車の移動コストを表現した複数のイジングモデル(既述したようにQUBO形式のコスト関数とも言える)を生成する。
【0046】
以下、1つの配送車の暫定経路に含まれる店舗を当該配送車が巡回する場合の移動コストを表現したイジングモデルを生成する方法を説明する。
【0047】
まず、店舗数の2乗の個数の変数を用意する。ここでは、
図13のような4店舗TSPを考える。この場合、4の2乗で16個の変数が必要になる。QUBO形式では各変数が0または1になる。これらの変数を
図14のように4×4行列形式で並べる。
図14は、4店舗TSPでの変数の構造を示す。具体的には、
図14では、「どの店舗を訪問するか」を行に対応させ、「何番目に訪問するか」を列に対応させている。例えば、1行~4行はそれぞれ
図13の店舗A~店舗Dに対応する。
図14の各変数は「店舗iをj番目に訪問する」ことをi行j列の要素で示している。
【0048】
TSPにおけるコスト関数は、ある順序で店舗を回った場合の移動時間の合計である。式2は移動時間の合計を表す。
【数2】
【0049】
式2において、Lは経路全体の長さ(移動時間の合計)である。d
uvは店舗uと店舗vの間の移動時間(0~1に正規化した値)であり、例えば
図7に示したデータから得られる。Nは暫定経路に含まれる店舗数である。xは、
図14で示すような訪問順と訪問店舗を示すスピンの変数(値は0または1)である。iは訪問順を示しているため、x
uix
v(i+1)は実際に巡回する経路を示す。なお、式2では、x
v(N+1)の項が存在し、店舗数Nを超える変数が生じるが、便宜上利用するだけで、x
v(N+1)=x
v0である。
【0050】
1台の配送車が複数の店舗を巡回するTSPでは2種類の制約が存在する。
図15に示すように、制約1「ある店舗への訪問は一度だけ」と制約2「訪問毎に1店舗に訪問」である。制約2は、複数の店舗に同時に訪問しないこととも言える。制約1は式3で示され、制約2は式4で示される。
【数3】
【数4】
【0051】
制約1は、式3の値が0になることで満たされ、制約2は、式4の値が0になることで満たされる。また、式3の値と式4の値はいずれも0以上であることが保証されるため、各式の値が最小であれば制約が満たされる。つまり、式3と式4を最小化の目的関数に追加すればよい。ただし、制約1と制約2はいずれも必ず満たされなければならない制約であるため、強いペナルティをかけてこれらの制約が満たされるよう工夫する必要がある。
【0052】
第1実施例では、L、C
1、C
2とペナルティ係数Pを用いて、式5のように目的関数を定義する。
【数5】
Fは移動コストと言える。制約1を定めたC1と制約2を定めたC2は、各制約に反する場合に移動コストを増加させる制約項として目的関数に導入する。
【0053】
第1実施例では、ペナルティ係数P=1.1とした。TSPの性質上、経路が確実に定まる値をPに設定する必要がある。制約違反が発生すると、C1、C2の少なくとも1つの値が1以上になる。Lに含まれる要素よりも制約違反を正した方が式5の最適化における寄与が大きくならなければならない。そのため、Lの値の改善で起こり得る最低限の値、つまり、各パスの最大値よりもペナルティ係数Pを大きくすればよい。第1実施例では、店舗間の距離は[0,1]で正規化され、最大値は1.0である。そのため、最低限の制約を満たす保証として、ペナルティ係数P=1.1とした。
【0054】
受付用古典コンピュータ12のモデル生成部34は、配送車毎(言い換えれば各配送車の暫定経路毎)に、式2~5に対応するイジングモデルを生成することにより、複数の配送車の暫定経路に対応する複数のイジングモデルを生成する。例えば、モデル生成部34は、TSPをQUBO形式で定式化した後に、PyQUBO等の公知のライブラリを使用して、QUBO形式の数式をイジングモデルに変換してもよい。
【0055】
受付用古典コンピュータ12の解導出部36は、複数の配送車の暫定経路に対応する複数のイジングモデルをイジングマシン16に入力して、複数のイジングモデルのそれぞれについて移動コストFを最小にする解をイジングマシン16から取得する。1つのイジングモデルの解は、
図14に示すように、当該イジングモデルに対応する暫定経路に含まれる複数の店舗について、どの店舗を何番目に訪問するかを示すデータである。
【0056】
解導出部36は、イジングマシン16から取得した複数のイジングモデルの解に基づいて、複数の配送車の移動経路(以下「量子解経路」とも呼ぶ。)を導出する。また、解導出部36は、各配送車の移動経路に基づく移動時間を導出する。例えば、解導出部36は、量子解経路上の各ノード間の距離と、予め定められた配送車の平均速度とに基づいて、各配送車の移動時間を計算してもよい。解導出部36は、複数の配送車の量子解経路と、量子解経路に基づく移動時間とを含む最終経路情報を生成する。
【0057】
図16は、最終経路情報の例を示す。
図12に示す暫定経路と、
図16に示す量子解経路とを比較すると、配送車1と配送車4の移動経路が変更され、また、それらの移動時間が短縮されている。
【0058】
受付用古典コンピュータ12の経路出力部38は、解導出部36により生成された最終経路情報をユーザ端末20へ送信する。ユーザ端末20側では、経路導出システム10から提供された最終経路情報に基づいて、複数の配送車のそれぞれに移動経路を割り当て、すなわち、各配送車にどの店舗にどの順序で訪問すべきかを指示する。
【0059】
古典手法と第1実施例のハイブリッド手法との最適化精度の比較は後述するが、第1実施例の経路導出システム10によると、古典コンピュータを用いた配送経路最適化と同等以上の最適化を量子コンピュータ(イジングマシン16)を使用して実現することができる。また将来、量子コンピュータの量子ビットが増加した場合、量子コンピュータによる配送経路最適化のための求解時間を一層短縮することができる。
【0060】
以上、本開示を第1実施例をもとに説明した。第1実施例に記載の内容は例示であり、第1実施例の構成要素や処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本開示の範囲にあることは当業者に理解されるところである。
【0061】
第1実施例に関する変形例を説明する。受付用古典コンピュータ12の経路出力部38は、暫定経路導出部32により導出された或る配送車の暫定経路における移動コスト(例えば移動時間)が、解導出部36により導出された当該配送車の量子解経路における移動コスト(例えば移動時間)より小さい場合、当該配送車の量子解経路に代えて、当該配送車の暫定経路を示すデータを出力してもよい。
【0062】
具体的には、受付用古典コンピュータ12は、解導出部36により導出された複数の配送車それぞれの量子解経路を検証する検証部をさらに備えてもよい。検証部は、暫定経路導出部32により導出された或る配送車(ここでは「対象配送車」と呼ぶ。)の暫定経路を辿る場合の移動時間(第1移動時間)と、解導出部36により導出された対象配送車の量子解経路を辿る場合の移動時間(第2移動時間)とを比較してもよい。検証部は、対象配送車の第1移動時間が第2移動時間より小さい場合、そのことを経路出力部38に通知してもよい。
【0063】
経路出力部38は、第1移動時間が第2移動時間より小さいことが通知された対象配送車については、最終経路情報に含める対象配送車の移動経路として、対象配送車の量子解経路に代えて、対象配送車の暫定経路を設定してもよい。検証部および経路出力部38は、上記処理を配送車毎に繰り返し実行してもよい。
【0064】
この変形例によると、或る配送車の移動経路について古典アルゴリズムに基づく暫定経路の移動コストが量子解経路の移動コストより小さい場合、暫定経路をユーザに提供することにより、ユーザにとって望ましい移動経路を提示することができる。
【0065】
第1実施例に関する別の変形例を説明する。受付用古典コンピュータ12の経路出力部38は、解導出部36により導出された或る配送車の量子解経路が制約項の制約に反する場合、解導出部36により導出された当該配送車の量子解経路に代えて、暫定経路導出部32により導出された当該配送車の暫定経路を示すデータを出力してもよい。
【0066】
具体的には、受付用古典コンピュータ12は、解導出部36により導出された複数の配送車それぞれの量子解経路を検証する検証部をさらに備えてもよい。検証部は、解導出部36がイジングマシン16から取得した、或る配送車(ここでは「対象配送車」と呼ぶ。)の暫定経路に対応するイジングモデルの解(移動コストFを最小にする解)を、当該イジングモデルの制約項(例えば上記の式3および式4)に入力してもよい。少なくとも1つの制約項の値が0とは異なる値(0より大きい値)になる場合、検証部は、対象配送車の量子解経路が制約項の制約に反することを経路出力部38に通知してもよい。
【0067】
経路出力部38は、制約項の制約に反することが通知された対象配送車については、最終経路情報に含める対象配送車の移動経路として、対象配送車の量子解経路に代えて、対象配送車の暫定経路を設定してもよい。検証部および経路出力部38は、上記処理を配送車毎に繰り返し実行してもよい。
【0068】
イジングモデルはコスト関数であるため、制約項が0にならない場合でも、移動コストFが最小になる解、またはそれに近しい解が求まる可能性がある。一方、上記の式3の制約1と式4の制約2は必ず満たされなければならない強制約である。例えば、同じ店舗に複数回訪問することは許されず、また、1回の訪問で複数の店舗に訪問することは許されない。この変形例によると、或る配送車の量子解経路が制約に反する場合、暫定経路をユーザに提供することにより、ユーザにとって望ましい移動経路を提示することができる。
【0069】
<第2実施例>
本開示の第2実施例について、第1実施例と相違する点を中心に説明し、共通する点の説明を省略する。第2実施例の特徴は、第1実施例の特徴および変形例の特徴と任意の組合せが可能であることはもちろんである。第2実施例の構成要素のうち第1実施例の構成要素と同一または対応する構成要素には適宜、同一の符号を付して説明する。
【0070】
図17は、複数の配送車の移動経路を決定する第2実施例のハイブリッド手法を示す。第2実施例のハイブリッド手法は、
図1に示した古典手法1のプロセス1とプロセス2を実行後、プロセス3として、複数の配送車に対応する複数の経路を古典アルゴリズムに基づくクラスタリング処理(「古典クラスタリング」とも呼ぶ。)によってグループ化する。そしてプロセス4として、各グループに対して量子アニーリングによる最適化処理を適用する。具体的には、プロセス4では、グループ毎に複数の配送車の移動経路をCVRPとして求解する。
【0071】
第2実施例の経路導出システム10の構成は、
図5に示した第1実施例の経路導出システム10の構成と同じである。
【0072】
図18は、第2実施例の受付用古典コンピュータ12と演算用古典コンピュータ14の機能ブロックを示すブロック図である。受付用古典コンピュータ12は、要求受付部30、モデル生成部34、解導出部36、経路出力部38、クラスタリング部40を備える。演算用古典コンピュータ14は、暫定経路導出部32を備える。
【0073】
暫定経路導出部32は、
図17のプロセス1とプロセス2を実行する。具体的には、暫定経路導出部32は、M台の配送車が手分けして複数の店舗を辿る場合の各配送車の暫定的な移動経路(暫定経路)を導出する。Mは、2以上の整数であり、暫定経路を導出すべき配送車の台数である。
【0074】
また、暫定経路導出部32は、公知の古典アルゴリズムに基づいて、複数の配送車の暫定経路間での近傍操作(例えばExchange操作)を適用する。また、暫定経路導出部32は、公知の古典アルゴリズムに基づいて、個々の配送車の暫定経路内での近傍操作(例えばLK操作)を適用する。変形例として、第1実施例と同様に、個々の配送車の暫定経路内での近傍操作は非適用としてもよい。
【0075】
クラスタリング部40は、N台(Nは2以上かつM未満の整数)の配送車の暫定経路をグループ化し、言い換えれば、N台の配送車の暫定経路に含まれる複数の店舗をグループ化する。これにより、クラスタリング部40は、複数の店舗を含む複数のグループ(クラスタとも言える)を設定する。Nは、グループ毎に定められた2以上かつM未満の整数であり、1つのグループにまとめられる配送車の台数である。Nは、1つのグループにまとめられる暫定経路の数とも言える。
【0076】
例えば、店舗の総数を300とし、配送車の総数M=30とすると、1台の配送車の暫定経路に含まれる店舗数の平均は10となる。仮に全てのグループについてN=3とすると、1つのグループに含まれる店舗数の平均は30となる。第2実施例では、グループ毎に、1つのグループに含まれる複数の店舗(例えば30店舗)をN台(例えば3台)の配送車で手分けして巡回する場合の各配送車の最適な移動経路をCVRPとして求める。
【0077】
第2実施例のクラスタリング部40は、階層型クラスタリング(言い換えれば凝集型クラスタリング)により、N個の移動体の移動経路に含まれる複数の店舗をグループ化する。これにより、店舗の総数等に応じて適切な個数のグループを設定しやすくなる。変形例として、クラスタリング部40は、階層型クラスタリングとは異なるクラスタリングアルゴリズムに基づいて、N個の移動体の移動経路に含まれる複数の店舗をグループ化してもよい。異なるクラスタリングアルゴリズムは、例えば、非階層型クラスタリングのアルゴリズム(例えばk-means法)であってもよく、密度準拠クラスタリングのアルゴリズム(例えばDBSCAN(Density-based Spatial Clustering of Applications with Noise))であってもよい。
【0078】
モデル生成部34は、1つのグループに含まれる店舗間の移動コストに基づいて1つのグループに含まれる複数の店舗にN個の移動体が手分けして訪問する場合の移動コストを求めるイジングモデルを生成することをグループ毎に繰り返す。これにより、モデル生成部34は、複数のグループに対応する複数のイジングモデルを生成する。後述するように、第2実施例のモデル生成部34が生成する複数のイジングモデルは、CVRPを定式化したものである。
【0079】
解導出部36は、グループごとに、N個の移動体が手分けして当該グループに含まれる複数の店舗を辿る場合の移動コストが最小になるようN個の移動体の移動経路を最適化するための求解処理を量子コンピュータ部に実行させる。第2実施例では、解導出部36は、モデル生成部34により生成された複数のグループに対応する複数のイジングモデルをイジングマシン16に入力して、移動コストを最小にする複数のイジングモデルの解をイジングマシン16から取得する。解導出部36は、イジングマシン16から取得した複数のイジングモデルの解に基づいて、M個の配送車の移動経路を導出する。
【0080】
経路出力部38は、量子コンピュータ部によるグループごとの求解処理の結果に基づくM個の移動体の移動経路を示すデータを出力する。第2実施例では、経路出力部38は、解導出部36により導出されたM個の配送車の移動経路を示すデータをユーザ端末20へ送信する。
【0081】
以上の構成による第2実施例の経路導出システム10の動作を説明する。
ユーザ端末20は、経路導出要求を受付用古典コンピュータ12へ送信する。受付用古典コンピュータ12の要求受付部30は、ユーザ端末20から送信された経路導出要求を受け付け、M台の配送車それぞれの暫定経路を導出するよう要求するデータを演算用古典コンピュータ14へ送信する。
【0082】
演算用古典コンピュータ14の暫定経路導出部32は、公知の古典アルゴリズム(NN法等)に基づいて、M台の配送車それぞれの暫定経路を導出する。演算用古典コンピュータ14の暫定経路導出部32は、M台の配送車の暫定経路を示すデータ(例えば
図12のデータ)を受付用古典コンピュータ12へ送信する。ここまでの動作は、第1実施例の経路導出システム10の動作と同様である。
【0083】
受付用古典コンピュータ12のクラスタリング部40は、階層型クラスタリングにより、N台の配送車の暫定経路に含まれる複数の店舗をグループ化する。クラスタリング部40は、クラスタリング処理のためのパラメータとして、(1)各ノードの座標データと、(2)グループ定義データを使用する。
【0084】
図19は、(1)各ノードの座標データの例を示す。各ノードの座標データは、配送車が巡回すべきノード(センタや店舗等)の地理上の位置を示すデータであり、第2実施例では、各ノードの緯度および経度を示すデータである。
【0085】
図20は、(2)グループ定義データの例を示す。グループ定義データは、予め定められた、クラスタリング部40により設定されるグループ数と、各グループでまとめられる要素数(具体的には経路の代表値としての重心の個数)とを含む。
【0086】
これらのパラメータのうち少なくとも一部は、経路導出要求とともにユーザ端末20から受付用古典コンピュータ12に入力されてもよい。また、これらのパラメータのうち少なくとも一部は、受付用古典コンピュータ12と演算用古典コンピュータ14の少なくとも一方に予め記憶されてもよい。いずれの場合にも、受付用古典コンピュータ12と演算用古典コンピュータ14とがともに、これらのパラメータを参照可能なよう構成される。
【0087】
図21(a)は、クラスタリング処理の第1ステップの例を示す。クラスタリング部40は、暫定経路導出部32により複数の配送車に割り当てられた複数の暫定経路(図では5つの暫定経路)について、各暫定経路の代表値として、各暫定経路に含まれる複数の店舗50の重心52を求める。クラスタリング部40は、1つの暫定経路に含まれる複数の店舗50の緯度の平均値と経度の平均値を求め、緯度の平均値と経度の平均値を当該暫定経路の重心52の座標とする処理を暫定経路毎に繰り返すことにより、複数の暫定経路それぞれの重心52を求めてもよい。
【0088】
図21(b)は、クラスタリング処理の第2ステップの例を示す。クラスタリング部40は、複数の暫定経路における複数の重心52の座標値に基づく階層型クラスタリングにより、複数の重心52(複数の暫定経路)をグループ化する。クラスタリング部40は、各グループにまとめられる重心数が、グループ定義データが定める重心数になるようクラスタリング処理を進める。また、クラスタリング部40は、設定されたグループ数が、グループ定義データが定めるグループ数に達した場合、クラスタリング処理を終了する。
図21(b)では、3つのグループ54が設定された例を示している。
【0089】
受付用古典コンピュータ12のモデル生成部34は、クラスタリング部40により設定されたグループ毎に、グループに含まれる複数の店舗をN台の配送車が手分けして訪問する場合のN台の配送車の移動コストを表現したイジングモデルを生成する。これにより、モデル生成部34は、複数のグループに対応する複数のイジングモデルを生成する。上記Nは、グループ定義データが定める重心数に対応する台数であり、各グループにまとめられた暫定経路数、配送車数とも言える。
【0090】
以下、1つのグループに含まれる複数の店舗をG台の配送車(ここでは「車両」とも呼ぶ。)が手分けして巡回する場合の移動コストを表現したイジングモデルを生成する方法を説明する。
【0091】
まず、((店舗数+1)×((車両数×2)+店舗数))個の変数を用意する。ここで
図22のような「3店舗+1センタ」を2車両で訪問するCVRPを考える。この場合、(3+1)×((2×2)+3)=28個の変数が必要になる。QUBO形式では各変数の値は0または1になる。これらの変数を
図23に示すように7×4行列形式で並べる。
図23は、4店舗(厳密には3店舗+1センタ)2車両CVRPでの変数の構造を示す。具体的には、
図23では、「何番目に訪問するか」を行に対応させ、「どの店舗を訪問するか」を列に対応させている。
図23の各変数は「i番目に店舗jを訪問する」ことをi行j列の要素で示している。なお、厳密には訪問の順番は、それぞれの車両に応じての順番となる。
【0092】
CVRPにおけるコスト関数は、G台の車両が手分けして或る順序で店舗を巡回した場合の移動時間の合計である。移動時間の合計を表すコスト関数を式6に示す。
【数6】
【0093】
式6において、Lは経路全体の長さ(移動時間の合計)である。Gは、指定された車両数である。M
gは各車両におけるセンタを除いた訪問店舗数である(予め指定された値)。d
uvは店舗uと店舗vの間の移動時間(0~1に正規化した値)である。Nはグループに含まれる店舗数である。xは、
図23で示すような、車両、訪問順、訪問店舗を示すスピンの変数(値は0または1)である。gは車両、iは訪問順を示しているため、x
giux
g(i+1)vは車両が実際に巡回する経路を示す。
【0094】
第2実施例では、古典アルゴリズムにより暫定経路が導出され、暫定経路のクラスタリングが行われた後、CVRPを解くことにより量子解経路が導出される。CVRPにおける車両数と各経路における訪問店舗数は、クラスタリング前のものに準拠する。例えば、クラスタリングにより、同じグループに10店舗訪問の暫定経路1と11店舗訪問の暫定経路2が割り当てられた場合、M1=10、M2=11、G=2となり、合計21店舗+1センタを2車両で訪問するCVRPを解くことになる。
【0095】
第2実施例のCVRPには4種類の制約が存在する。
図24に示すように、制約1「センタから開始」、制約2「センタで終了」、制約3「ある店舗への訪問は一度だけ」、制約4「訪問毎に1店舗に訪問」である。制約1は式7で示され、制約2は式8で示され、制約3は式9で示され、制約4は式10で示される。
【数7】
【数8】
【数9】
【数10】
【0096】
制約1は、式7の値が0になることで満たされ、制約2は、式8の値が0になることで満たされる。制約3は、式9の値が0になることで満たされ、制約4は、式10の値が0になることで満たされる。また、式7~式10の値はいずれも0以上であることが保証されるため、各式の値が最小であれば制約が満たされる。つまり、式7~式10を最小化の目的関数に追加すればよい。ただし、制約1~制約4はいずれも必ず満たされなければならない制約であるため、強いペナルティをかけてこれらの制約が満たされるよう工夫する必要がある。
【0097】
第2実施例では、L、C
1、C
2、C
3、C
4とペナルティ係数P
1、P
2を用いて、式11のように目的関数を定義する。
【数11】
FはG台の車両の移動コストの合計である。制約1~制約4を定めたC
1~C
4は、各制約に反する場合に移動コストを増加させる制約項として目的関数に導入する。
【0098】
第2実施例では、P1=2.2、P2=1.1とした。第1実施例のTSPの場合と同様に、CVRPの性質上、経路が確実に定まる値をP1とP2に設定する必要がある。制約違反が発生すると、C1、C2、C3、C4の少なくとも1つの値が1になる。Lに含まれる要素よりも制約違反を正した方が式11の最適化における寄与が大きくならなければならない。そのため、Lの値の改善で起こり得る最低限の値、つまり、各パスの最大値よりもペナルティ係数を大きくすればよい。第2実施例では、店舗間の距離は[0,1]で正規化され、最大値は1である。そこで、最低限の制約を満たす保証として、P1=2.2、P2=1.1とした。
【0099】
また、(C1、C2)の組と、(C3、C4)の組とでは制約の性質が異なる。前者は、1つの変数に対する制約であり、後者は、行もしくは列に対する複数個の変数に対する制約である。そのため、前者に対するペナルティ係数P1の値と、後者に対するペナルティ係数P2の値を異ならせている。なお、P1=2.2の値そのものは、本発明者の経験上、好適な値を選定した。
【0100】
受付用古典コンピュータ12のモデル生成部34は、クラスタリング部40により設定されたグループ毎に式7~式11に対応するイジングモデルを生成することにより、複数のグループに対応する複数のイジングモデルを生成する。例えば、モデル生成部34は、CVRPをQUBO形式で定式化した後に、PyQUBO等の公知のライブラリを使用して、QUBO形式の数式をイジングモデルに変換してもよい。
【0101】
受付用古典コンピュータ12の解導出部36は、複数のグループに対応する複数のイジングモデルをイジングマシン16に入力して、複数のイジングモデルのそれぞれについて移動コストFを最小にする解をイジングマシン16から取得する。1つのイジングモデルの解は、
図23に示すように、当該イジングモデルに対応するグループに含まれる複数の店舗について、どの車両がどの店舗を何番目に訪問するかを示すデータである。
【0102】
解導出部36は、グループ毎に、イジングマシン16から取得したイジングモデルの解に基づいて、グループに含まれるN台の配送車の移動経路(量子解経路)を導出する。この処理をグループ毎に繰り返すことにより、配送車全体(M台の配送車)の移動経路を導出する。また、解導出部36は、各配送車の移動経路に基づく移動時間を導出する。解導出部36は、複数の配送車の量子解経路と、量子解経路に基づく移動時間とを含む最終経路情報(例えば
図16)を生成する。受付用古典コンピュータ12の経路出力部38は、解導出部36により生成された最終経路情報をユーザ端末20へ送信する。
【0103】
古典手法と第2実施例のハイブリッド手法との最適化精度の比較については後述するが、第2実施例の経路導出システム10によると、古典コンピュータを用いた配送経路最適化と同等以上の最適化を量子コンピュータ(イジングマシン16)を使用して実現することができる。また、第2実施例の経路導出システム10によると、古典アルゴリズムにより導出された複数の配送車(N台の配送車)の暫定経路をグループ化することにより、CVRPの計算規模(変数の数)を低減し、現実の量子コンピュータによる求解を実現できる。また、暫定経路のグループ化により各配送車が巡回し得る店舗の候補が増えるため、移動経路の一層の改善を図りやすくなる。
【0104】
以上、本開示を第2実施例をもとに説明した。第2実施例に記載の内容は例示であり、第2実施例の構成要素や処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本開示の範囲にあることは当業者に理解されるところである。
【0105】
第1実施例に関する変形例で説明した検証部および経路出力部38の構成は、第2実施例にも適用可能である。第2実施例の変形例における検証部は、各グループに対応する各イジングモデルの解を各イジングモデルの制約項(式7~式10)に入力して、各イジングモデルの解に制約違反が発生しているか否かを検証してもよい。
【0106】
<第3実施例>
本開示の第3実施例について、第2実施例と相違する点を中心に説明し、共通する点の説明を省略する。第3実施例の特徴は、第2実施例の特徴および変形例の特徴と任意の組合せが可能であることはもちろんである。第3実施例の構成要素のうち第2実施例の構成要素と同一または対応する構成要素には適宜、同一の符号を付して説明する。
【0107】
図25は、複数の配送車の移動経路を決定する第3実施例のハイブリッド手法を示す。第3実施例のハイブリッド手法は、
図1に示した古典手法1のプロセス1とプロセス2を実行後、プロセス3として複数の配送車に対応する複数の経路を量子アニーリングによってグループ化し、プロセス4として各グループに対して量子アニーリングによる最適化処理を適用する。すなわち、第3実施例のハイブリッド手法は、複数の暫定経路のグループ化を量子コンピュータ(イジングマシン16)が行う点で、第2実施例のハイブリッド手法と異なる。
【0108】
第2実施例の経路導出システム10の構成は、第2実施例と同様に、
図5に示した第1実施例の経路導出システム10の構成と同じである。また、第3実施例の受付用古典コンピュータ12と演算用古典コンピュータ14の機能ブロックは、
図18に示した第2実施例の受付用古典コンピュータ12と演算用古典コンピュータ14の機能ブロックと同じである。
【0109】
以下、第2実施例と異なる特徴として、受付用古典コンピュータ12のクラスタリング部40の処理を説明する。クラスタリング部40の処理以外は、第2実施例と同じであるため説明を省略する。
【0110】
クラスタリング部40は、N台の配送車(暫定経路が導出されたM台の配送車の一部)の暫定経路に含まれる複数の店舗をグループ化することを制約とするイジングモデルであって、各グループに含まれる移動経路間の移動コストについて全グループでの移動コストの総和を求めるイジングモデル(以下「クラスタリング用イジングモデル」とも呼ぶ。)を生成する。クラスタリング部40は、生成したイジングモデルをイジングマシン16に入力して、移動コストの総和を最小にするイジングモデルの解をイジングマシン16から取得する。クラスタリング部40は、イジングモデルの解に基づいて、複数の店舗を含む複数のグループを設定する。
【0111】
以下、クラスタリング用イジングモデルを生成する方法を説明する。
まず、(分割したい全要素数)×(グループ数)の数の変数を用意する。要素は、配送車の暫定経路の重心とする。ここでは、10要素を(4,4,2)の要素数で3つのグループに分割する問題を考える。この場合、10×3=30個の変数が必要になる。QUBO形式では各変数の値は0または1になる。これらの変数を
図26に示すように10×3行列形式で並べる。
図26は、10要素を分割する際の変数の構造を示す。具体的には、
図26では、「各要素」を行に対応させ、「所属するグループ」を列に対応させている。
図23の各変数は「要素iがグループjに所属する」ことをi行j列の要素で示している。
図26の例では、要素2,4,5,10がグループ1に属することを示している。
【0112】
イジングモデルを用いたクラスタリングにおけるコスト関数は、グループ内の要素間の距離(言い換えれば要素の組ごとの距離)の総和を、複数のグループに亘って合計するものである。なお、要素間の距離は、各暫定経路の重心の座標値をもとに導出されてよい。クラスタリングにおけるコスト関数を式12に示す。
【数12】
【0113】
式12において、Lは経路全体の長さである。Gはグループ定義データ(例えば
図20)で指定されたグループ数である。d
ijは要素
iと要素
jの間の距離(0~1に正規化した値)である。Nは要素数である。xは、
図26で示すような、要素が所属するグループを示すスピンの変数(値は0または1)である。gはグループを示し、iとjは各要素を示すため、x
igx
jgは同じグループ内に存在するパス(要素間の経路)を示す。また、グループ内の距離を厳密に求めるには、式12は重複パスを含むためLを2分の1にする必要があるが、最適化の阻害要因にはならないため、Lをそのまま用いる。
【0114】
イジングモデルを用いたクラスタリングにおいては2種類の制約が存在する。
図27に示すように、制約1「グループに所属する要素数はD
g個のみ」、制約2「1つの要素は1つのグループのみに属する」である。制約1は式13で示され、制約2は式14で示される。
【数13】
【数14】
【0115】
式13のDgはグループ定義情報で予め指定された値である。制約1は式13が0になることで満たされ、制約2は式14が0になることで満たされる。また、式13と式14の値はいずれも0以上であることが保証されるため、各式の値が最小であれば制約が満たされる。つまり、式13と式14を最小化の目的関数に追加すればよい。ただし、制約1と制約2はいずれも必ず満たされなければならない制約であるため、強いペナルティをかけてこれらの制約が満たされるよう工夫する必要がある。
【0116】
第3実施例のクラスタリング処理では、L、C
1、C
2とペナルティ係数Pを用いて、式15のように目的関数を定義する。
【数15】
Fは移動コストの合計である。制約1と制約2を定めたC
1とC
2は、各制約に反する場合に移動コストを増加させる制約項として目的関数に導入される。
【0117】
式15の目的関数では、P=5.5とした。Pには、各要素が属するグループが確実に定まる値を設定する必要がある。制約違反が発生すると、C1、C2の少なくとも一方の値が1になる。Lに含まれる要素よりも制約違反を正した方が式15の最適化における寄与が大きくならなければならない。そのため、Lの値の改善で起こり得る最低限の値、つまり、各パスの最大値よりもペナルティ係数を大きくすればよい。既述したように、要素間の距離は[0,1]で正規化され、最大値は1.0である。そこで、最低限の制約を満たす保証として、P=5.5とした。なお、P=5.5の値そのものは、本発明者の経験上、好適な値を選定した。
【0118】
なお、クラスタリング部40は、式12~15に示したようなクラスタリング用のQUBO形式の数式を作成後、PyQUBO等の公知のライブラリを使用して、QUBO形式の数式をクラスタリング用イジングモデルに変換してもよい。
【0119】
クラスタリング部40は、クラスタリング用イジングモデル(式15に対応)をイジングマシン16に入力して、移動コストFを最小にするクラスタリング用イジングモデルの解をイジングマシン16から取得する。クラスタリング用イジングモデルの解は、
図26に示したように、どの要素(暫定経路の重心)がどのグループに属するかを示すデータである。
【0120】
クラスタリング部40は、クラスタリング用イジングモデルの解に基づいて、複数のグループに関する情報をモデル生成部34に渡す。複数のグループに関する情報は、グループ毎に、当該グループに属する複数の要素の情報を含む。1つの要素の情報は、当該要素に対応する暫定経路の情報と、その暫定経路が割り当てられた配送車の情報と、その暫定経路に含まれる複数の店舗の情報を含んでもよい。
【0121】
第3実施例の経路導出システム10も第2実施例の経路導出システム10と同様の効果を奏する。また、第3実施例の経路導出システム10は、各グループに所属する要素数をクラスタリング用イジングモデルの制約として規定するため、各グループに所属する要素数の制御が容易になり、また、CVRPの計算規模を現実の量子コンピュータによる求解が可能な規模に低減する確実性を高めることができる。
【0122】
以上、本開示を第3実施例をもとに説明した。第3実施例に記載の内容は例示であり、第3実施例の構成要素や処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本開示の範囲にあることは当業者に理解されるところである。
【0123】
第1実施例に関する変形例で説明した検証部および経路出力部38の構成は、第3実施例にも適用可能である。第3実施例に関する変形例における検証部は、各グループに対応する各イジングモデルの解を各イジングモデルの制約項(式7~式10)に入力して、各イジングモデルの解に制約違反が生じていないかを検証してもよい。
【0124】
また、第3実施例に関する別の変形例として、受付用古典コンピュータ12のクラスタリング部40は、イジングマシン16から取得したクラスタリング用イジングモデルの解が制約項の制約を満たすか否かを検証してもよい。クラスタリング用イジングモデルの解が制約項の制約に反する場合、具体的には、少なくとも1つの制約項の値が0とは異なる値(0より大きい値)になる場合、クラスタリング部40は、第2実施例と同様に、古典アルゴリズム(例えば階層型クラスタリング)により複数の店舗を含む複数のグループを設定してもよい。
【0125】
イジングモデルはコスト関数であるため、制約項が0にならない場合でも、移動コストFが最小になる解、またはそれに近しい解が求まる可能性がある。一方、上記の式13の制約1と式14の制約2は必ず満たされなければならない強制約である。この変形例によると、量子コンピュータによるクラスタリングの解が制約に反する場合、古典アルゴリズムによるクラスタリングを行うことで、望ましいグループ分けを実現できる。
【0126】
上記の第1実施例~第3実施例の経路導出システム10による経路最適化の実験結果を説明する。
図28は、経路最適化の精度を示す。同図は、複数の配送車が300店舗を手分けして巡回することを前提として各配送車の移動経路を導出した場合の各配送車の移動時間の総和を示している。同図で比較する複数の手法は、
図1に示した古典手法1、
図3に示した古典手法2、第1実施例のハイブリッド手法1、第2実施例のハイブリッド手法2、第3実施例のハイブリッド手法3を含む。結果Aは、各配送車の移動経路(暫定経路および量子解経路)が最大12店舗を含む場合の移動時間の合計を示し、結果Bは、各配送車の移動経路(暫定経路および量子解経路)が最大20店舗を含む場合の移動時間の合計を示している。
【0127】
図28に示すように、第1実施例のハイブリッド手法1、第2実施例のハイブリッド手法2、第3実施例のハイブリッド手法3のいずれも、古典手法1および古典手法2と同等以上の最適化精度を実現できる。また、1つの配送車の移動経路に含まれる店舗数が少ないほど、暫定経路のクラスタリングを行う第2実施例のハイブリッド手法2、第3実施例のハイブリッド手法3の精度が向上することが明らかになった。また、1つの配送車の移動経路に含まれる店舗数が比較的多ければ、暫定経路のクラスタリングを行わない第1実施例のハイブリッド手法1でも高精度の解を得られることが明らかになった。
【0128】
上記の各実施例では、受付用古典コンピュータ12、演算用古典コンピュータ14、イジングマシン16を別筐体のコンピュータとしたが、変形例として、受付用古典コンピュータ12、演算用古典コンピュータ14、イジングマシン16の機能は、1台のコンピュータに実装されてもよい。この1台のコンピュータは、受付用古典コンピュータ12と演算用古典コンピュータ14の機能を含む古典コンピュータ部と、イジングマシン16の機能を含む量子コンピュータ部とを備えてもよい。
【0129】
上記の各実施例の経路導出システム10は、量子コンピュータとしてイジングマシン16を備えた。変形例として、経路導出システム10は、イジングマシン16に代えて、量子ゲート型の量子コンピュータを備えてもよく、量子アニーリング型の量子コンピュータを備えてもよい。
【0130】
上述した実施例および変形例の任意の組み合わせもまた本開示の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【0131】
10 経路導出システム、 12 受付用古典コンピュータ、 14 演算用古典コンピュータ、 16 イジングマシン、 18 古典コンピュータ部、 32 暫定経路導出部、 34 モデル生成部、 36 解導出部、 38 経路出力部、 40 クラスタリング部。