(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022167229
(43)【公開日】2022-11-04
(54)【発明の名称】閉路生成装置、閉路生成方法、及びプログラム
(51)【国際特許分類】
G06N 10/00 20220101AFI20221027BHJP
G06N 99/00 20190101ALI20221027BHJP
【FI】
G06N10/00
G06N99/00 180
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021072895
(22)【出願日】2021-04-22
(71)【出願人】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】橋本 慎司
(72)【発明者】
【氏名】中川 匡人
(72)【発明者】
【氏名】坂本 靖侑
(57)【要約】
【課題】 巡回セールスマン問題において、求解時間を短縮する、閉路生成装置、閉路生成方法、及びプログラムを提供する。
【解決手段】 閉路生成装置50は、巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する、抽出部52と、抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、求解部54とを有する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する、抽出手段と、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、求解手段と、
を有する閉路生成装置。
【請求項2】
請求項1に記載の閉路生成装置であって、
前記抽出手段は、前記求解ができない場合、前記順位を変更し、変更した前記順位に基づいて新たにエッジを抽出する、
前記求解手段は、新たに前記抽出されたエッジをスピンとしたイジングモデルに基づいて、前記量子アニーリングマシンに求解させる
閉路生成装置。
【請求項3】
請求項1又は2に記載の閉路生成装置であって、
複数の閉路が求められた場合、複数の前記閉路を用いて、コストの合計が最小となる一つの閉路を生成する、経路生成手段
を有する閉路生成装置。
【請求項4】
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出し、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、
閉路生成方法。
【請求項5】
請求項4に記載の閉路生成方法であって、
前記抽出において、前記求解ができない場合、前記順位を変更し、変更した前記順位に基づいて新たにエッジを抽出し、
前記求解において、新たに前記抽出されたエッジをスピンとしたイジングモデルに基づいて、前記量子アニーリングマシンに求解させる
閉路生成方法。
【請求項6】
請求項4又は5に記載の閉路生成方法であって、
複数の閉路が求められた場合、複数の前記閉路を用いて、コストの合計が最小となる一つの閉路を生成する、
閉路生成方法。
【請求項7】
コンピュータに、
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出させ、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、
命令を含むプログラム。
【請求項8】
請求項7に記載のプログラムであって、
前記抽出において、前記求解ができない場合、前記順位を変更し、変更した前記順位に基づいて新たにエッジを抽出させ、
前記求解において、新たに前記抽出されたエッジをスピンとしたイジングモデルに基づいて、前記量子アニーリングマシンに求解させる
命令を含むプログラム。
【請求項9】
請求項7又は8に記載のプログラムであって、
前記プログラムが、前記コンピュータに、
複数の閉路が求められた場合、複数の前記閉路を用いて、コストの合計が最小となる一つの閉路を生成させる、
命令を含むプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、閉路を生成する閉路生成装置、閉路生成方法、及びプログラムに関する。
【背景技術】
【0002】
組み合わせ最適化問題の一つである巡回セールスマン問題(以降、TSPと記載することがある)を、量子アニーリングを用いて解く場合、良く知られているような、都市数と到達順を変数(スピン)と定義する方法では、都市数n(=1以上の整数)に対してn2個の変数(スピン)が必要になるため求解に時間がかかる。
【0003】
関連する技術として特許文献1に開示の技術が提案されている。特許文献1に開示の技術では、まず、ハミルトン閉路問題において与えられたグラフの地点(ノード)ごとに、ノードに連結されたエッジ(二地点間の経路)のグループを生成する。次に、エッジのグループごとに、エッジのグループに含まれるエッジが経路として選択されたか否かを示す二値変数を生成する。次に、二値変数をスピンとする、イジングモデルを生成する。次に、イジングマシンが計算したイジングモデルの解に基づき、ハミルトン閉路問題の解を求めている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の技術を用いた場合でも、一つの閉路が求まるまで繰り返し求解をするため、巡回セールスマン問題において与えられたグラフによっては求解に時間がかかる。
【0006】
一つの側面として、巡回セールスマン問題において、求解時間を短縮する、閉路生成装置、閉路生成方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、一つの側面における閉路生成装置は、
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する、抽出部と、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、求解部と、
を有することを特徴とする。
【0008】
また、上記目的を達成するため、一側面における閉路生成方法は、
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する、抽出ステップと、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、求解ステップと、
を有することを特徴とする。
【0009】
さらに、上記目的を達成するため、一側面におけるプログラムは、
コンピュータに、
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する、抽出ステップと、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、求解ステップと、
を実行させることを特徴とする。
【発明の効果】
【0010】
一つの側面として、巡回セールスマン問題において、閉路を生成する求解時間を短縮できる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、量子アニーリングマシンを有するシステムの一例を示す図である。
【
図2】
図2は、巡回セールスマン問題を説明するための図である。
【
図3】
図3は、閉路生成装置の一例を説明するための図である。
【
図4】
図4は、不要経路の除外を説明するための図である。
【
図6】
図6は、複数の閉路を説明するための図である。
【
図7】
図7は、複数の閉路を一つの閉路にする方法を説明するための図である。
【
図8】
図8は、補助処理を説明するための図である。
【
図9】
図9は、閉路生成装置の動作の一例を説明するための図である。
【
図10】
図10は、閉路生成装置を実現するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0012】
はじめに、実施形態の理解を容易にするために、量子アニーリングマシンについて概要を説明する。
【0013】
量子アニーリングとは、組み合わせ最適化問題を解くための近似解法である。具体的には、量子アニーリングは、量子効果を制御して、目的関数の最小値を探す問題を解く手法である。
【0014】
量子アニーリングマシンは、例えば、組み合わせ最適化問題などを解くために特化されたハードウェアである。
図1は、量子アニーリングマシンを有するシステムの一例を示す図である。
【0015】
システム1は、例えば、量子アニーリングマシン10、情報処理装置20、端末装置30、ネットワーク40などを用いて構成される。
【0016】
量子アニーリングマシン10は、量子処理部11(QPU:Quantum processing Unit)、制御部12、読取部13などを有するハードウェアである。
【0017】
量子処理部11は、複数の量子ビットが相互接続された回路である。量子処理部11の回路(又は機器)は、例えば、所定数の量子ビットを接続して構成された複数のユニット・セルと、異なるユニット・セル間の量子ビットを接続するためのカプラとを用いて構築された超電導量子回路などが考えられる。
【0018】
制御部12は、量子処理部11を制御する回路(又は機器)である。量子処理部11が超電導量子回路である場合、制御部12は、情報処理装置20から送信された制御信号に基づいて、量子処理部11に印加する局所磁場の制御をする。局所磁場は、例えば、マイクロ波を用いて制御する。
【0019】
読取部13は、量子処理部11の量子ビットの状態(スピン)を読み取る回路(又は機器)である。読取部13は、量子アニーリングが終了するたびに量子ビットの状態を読み取り、量子ビットの状態を表す状態情報を情報処理装置20に送信する。
【0020】
情報処理装置20は、ネットワーク40を介して端末装置30と接続されている。また、情報処理装置20は、量子アニーリングマシン10と接続されている。
【0021】
具体的には、情報処理装置20は、局所磁場を制御するための制御信号を、制御部12へ送信する。情報処理装置20は、量子ビットの状態を表す状態情報を、読取部13から受信する。
【0022】
なお、
図1では、利用者が端末装置30を用いて、ネットワーク40を介し、情報処理装置20を操作する構成が示されているが、利用者が情報処理装置20を直接操作してもよい。
【0023】
情報処理装置20は、例えば、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)などのプログラマブルなデバイス、又はGPU(Graphics Processing Unit)、又はそれらのうちのいずれか一つ以上を搭載した回路、又はサーバコンピュータなどである。
【0024】
端末装置30は、ネットワーク40を介して情報処理装置20と接続されている。端末装置30は、例えば、CPU、又はFPGAなどのプログラマブルなデバイス、又はGPU、又はそれらのうちのいずれか一つ以上を搭載した回路、又はパーソナルコンピュータ、又はモバイル端末などの情報処理装置である。
【0025】
ネットワーク40は、例えば、インターネット、LAN(Local Area Network)、専用回線、電話回線、企業内ネットワーク、移動体通信網、ブルートゥース(登録商標)、WiFi(Wireless Fidelity)などの通信回線を用いて構築された一般的なネットワークである。
【0026】
次に、量子アニーリングマシンにより組み合わせ最適化問題を解く方法について説明する。量子アニーリングマシンにより組み合わせ最適化問題を解くには、まず、対象とする組み合わせ最適化問題をイジングモデル、又はQUBO(Quadratic Unconstrained Binary Optimization)などで表現する。
【0027】
イジングモデルは、例えば、数1に示したハミルトニアンH(σ)などで表すことができる。ハミルトニアンH(σ)とは系全体のエネルギーを表す。
【0028】
【0029】
Jijは、隣接する量子ビット間の結合強度を表す。結合強度は、例えば、隣接する量子ビットを結合している結合器に外部から磁束を印可することにより制御される。
【0030】
hiは、量子ビットに外部から印可される局所磁場を表す。局所磁場の印可は、例えば、外部からマイクロ波を注入することにより実現する。
【0031】
次に、組み合わせ最適化問題を量子アニーリングマシンに投入する。具体的には、イジングモデル、又はQUBOを、量子処理部11に構成されている量子ビットトポロジーにマイナー埋め込みをする。マイナー埋め込みは、イジングスピン(変数)を量子ビットへマッピングする処理である。
【0032】
次に、量子アニーリングマシンは量子アニーリングを開始する。具体的には、量子アニーリングマシンの制御部12が、量子処理部11に局所磁場を印加した後、局所磁場を時間をかけて弱めていく。その結果、最終的に、ハミルトニアンが最小の状態に収束する。
【0033】
次に、量子アニーリングマシンの読取部13は、量子処理部11の量子ビットの状態を読み取る。
【0034】
ただし、ハミルトニアンが最小の状態に収束しないこともあるので、上述したアニーリングを複数回繰り返して解を取得することが好適である。なお、ハミルトニアンが最小の状態に収束しない理由は、量子処理部11の回路がノイズの影響を受け易く安定しないためである。
【0035】
次に、TSP(巡回セールスマン問題)を量子アニーリングマシンで解く方法について説明する。TSPは、セールスマンがすべての都市を一回だけ訪れ、出発点(出発した都市)に戻る場合に、移動距離が最小になる経路を求める問題である。
【0036】
図2を用いて(1)(2)に示すようにスピン(変数:イジングスピン)を定義した場合について説明する。
図2は、巡回セールスマン問題を説明するための図である。
図2の例では、五つの都市(都市1から都市5:五つのノード)を巡回する場合に、二つの都市間の経路(エッジ)に移動コストを与えて、五つの都市をすべて巡回した移動距離が最小になる経路を求める。
【0037】
(1)ある都市をどの順番に訪れるかという問題において、スピン(変数)を都市それぞれと定義する。その場合、ある都市にある順番で訪れたときを1、それ以外を0とするので、都市数がn個である場合、スピン数はn
2個となる。したがって、
図2の例では、都市数が5個であるので、スピン数は25個となる。
【0038】
このように(1)の例では、スピン数は都市数の二乗個必要になるので、訪れる都市数が多くなるとスピン数が指数関数的に増加する。そのため、近似解を求解する時間がかかる。そこで、(2)に示すようなスピンの定義をする方法が提案されている。
【0039】
(2)すべての都市を一回だけ訪れるようにするには、どのような経路を選択すれば最適かという組み合わせ問題として、スピン(変数)を二つの都市間の経路それぞれと定義する。その場合、都市数がn個である場合にはスピン数は
nC
2個となる。したがって、
図2の例では、都市数が5個であるので、スピン数は10個となる。
【0040】
このように(2)の例では、経路をスピンとして定義してスピン数を削減しているため、(1)の求解時間より、(2)の求解時間を短縮することができる。
【0041】
(実施形態)
次に、(2)の求解時間より、更に、求解時間を短縮する実施形態について説明をする。具体的には、求解時間を短縮するために、あらかじめ不要な経路を除外してから、量子アニーリングマシン10に量子アニーリングを実行させる。
【0042】
実施形態について図面を参照して説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
【0043】
[装置構成]
求解時間を短縮するための閉路生成装置について説明する。閉路生成装置50は、情報処理装置20又は端末装置30に構築する。又は、閉路生成装置50の機能を、情報処理装置20と端末装置30に分散させてもよい。
【0044】
閉路生成装置50は、
図3に示すように、取得部51と、抽出部52と、イジングモデル生成部53と、求解部54と、経路生成部55とを有する。
図3は、閉路生成装置の一例を説明するための図である。
【0045】
取得部51は、TSPにより与えられたグラフを表すグラフ情報を取得する。グラフ情報(グラフ)は、都市(地点)を表すノード情報(ノード)と、二つのノード間の経路を表すエッジ情報(エッジ)と、経路それぞれに付与されたコスト情報(コスト)とが関連付けられた情報である。
【0046】
コスト情報は、二つのノード間の移動コストを表す情報である。移動コストは、例えば、距離などである。ただし、移動コストは距離に限定されない。
【0047】
抽出部52は、TSPにおいて与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する。
【0048】
具体的には、まず、抽出部52は、取得部51からグラフを取得する。次に、抽出部52は、取得したグラフに含まれるノードを選択する。次に、抽出部52は、選択したノードと、選択したノード以外のノードで表されたエッジを抽出する。
【0049】
次に、抽出部52は、抽出したエッジのうち、エッジに関連付けられたコストがあらかじめ設定された順位以下のエッジを抽出する。すなわち、抽出部52は、コストの値が小さいエッジを、所定数抽出する。
【0050】
抽出部52は、上述した処理を、グラフに含まれるすべてのノードについて実行して、ノードごとに、所定数のエッジを抽出する。
【0051】
なお、順位は、実験、シミュレーションにより決定する。順位は、例えば、下位25[%]のコスト値を取得することなどが考えられる。
【0052】
ただし、順位は25[%]に限定されるものではない。また、順位は、適時変更してもよい。順位の変更については後述する。
【0053】
具体的に、
図4を用いて、抽出処理(不要経路を除外する処理)について説明する。
図4は、不要経路の除外を説明するための図である。
【0054】
図4の例は、都市1から都市nそれぞれについて、a個の都市(ノード)が抽出されたことを示している。すなわち、都市1から都市nそれぞれについて、a個の経路(エッジ)が抽出されている。例えば、都市1の場合、都市1と都市2、都市1と都市4、・・・都市1と都市10で表される経路(エッジ)が、コストが小さい順にa個抽出されたことを示している。
【0055】
イジングモデル生成部53は、抽出したエッジをスピン(変数)としたイジングモデル又はQUBOを生成する。具体的には、イジングモデル生成部53は、数2に示すようなイジングモデルを生成する。なお、イジングモデルは手動で生成してもよい。
【0056】
【0057】
求解部54は、生成したイジングモデルに基づいて、量子アニーリングマシン10に求解させる。
【0058】
具体的には、まず、求解部54は、イジングモデル生成部53から数2に示したイジングモデルを取得する。次に、求解部54は、取得したイジングモデルに基づいて、量子アニーリングマシン10の量子処理部11を制御するための制御情報を生成する。その後、求解部54は、制御情報を含む制御信号を、制御部12に送信する。
【0059】
量子処理部11が超電導量子回路である場合、制御部12は、受信した制御信号に基づいて、量子処理部11に印加する局所磁場を制御する。
【0060】
詳細には、求解部54は、まず、数2に示したイジングモデルに基づいて、量子アニーリングマシン10の量子処理部11に構成されている量子ビットトポロジーに対してマイナー埋め込みをするための指示を、量子アニーリングマシン10の制御部12にする。
【0061】
求解部54は、量子アニーリングマシン10に指示するため、数2のハミルトニアンの式を展開し、展開後得られた各項のうち、一次項又は同じスピンから成る二次項の係数をスピンに係るバイアス、別々のスピンから成る二次項の係数をスピン間の相互作用とする。このとき、ハミルトニアンがQUBOであればイジングモデルへの変換を行い、量子アニーリングマシンに対してパラメータを設定する。なお、QUBOからイジングモデルへの変換が可能であることは証明されている。
【0062】
次に、求解部54は、制御部12に対して、量子処理部11に局所磁場を印加させる指示をし、その後、局所磁場を時間かけて弱めていくように指示をする。その結果、最終的に、数2のハミルトニアンHは最小の状態に収束する。
【0063】
経路生成部55は、量子ビットの状態を表す状態情報を用いて閉路を生成する。具体的には、まず、経路生成部55は、量子アニーリングマシンの読取部13から状態情報を取得する。次に、経路生成部55は、状態情報に基づいて、閉路を表す閉路情報を生成する。
【0064】
例えば、経路生成部55は、
図5に示すような閉路を生成する。
図5は、閉路を説明するための図である。
図5の例は、17個の都市(ノード)を最短距離で巡回する閉路を表している。
【0065】
閉路情報は、閉路に含まれる都市間の接続状態を表す情報である。
図5の例では、閉路情報は、都市1と都市2の経路、都市2と都市3の経路、・・・、都市17と都市1の経路が接続されていることを表す情報である。
【0066】
以上のように、実施形態においては、あらかじめコストの小さいエッジを抽出し、抽出したエッジをスピンとして定義し、量子アニーリングマシン10を用いて量子アニーリングを実行させるので、求解時間を短縮することができる。
【0067】
言い換えれば、不要と推定されたエッジを除外して、スピンの数を削減するので、求解時間を短縮することができる。
【0068】
ところが、上述した実施形態においては、次の(A)(B)に示すような事象が発生する。
【0069】
(A)あらかじめ設定された順位により抽出したエッジをスピンとした場合に、量子アニーリングマシン10で求解できないことがある。
【0070】
そこで、抽出部52は、求解できない場合、あらかじめ設定された順位を変更する。具体的には、まず、抽出部52は、求解部54から求解できなかったことを表すエラー情報を取得する。次に、抽出部52は、抽出するエッジの数が多くなるように、順位を変更する。例えば、ノードがn個である場合、最低でも、1/n*100[%]は増加させる。
【0071】
次に、抽出部52は、順位を変更した後、ノードごとに、再度エッジを抽出する。次に、イジングモデル生成部53は、新たに抽出したエッジをスピンとして、新たにイジングモデルを生成する。その後、求解部54は、生成した新たなイジングモデルに基づいて、量子アニーリングマシン10に求解させる。
【0072】
(B)数2に示したハミルトニアンHには、閉路が一つになるようなエッジの組み合わせを求める制約式が含まれていないため、複数の閉路が求解されることがある。例えば、
図6に示すように複数の閉路が生成されることがある。
図6は、複数の閉路を説明するための図である。
【0073】
そこで、経路生成部55は、複数の閉路が求められた場合、複数の閉路を用いて、コストの合計が最小となる一つの閉路を生成する。具体的には、経路生成部55は、複数の閉路のうち最も多くノードを含む閉路(大閉路)に、大閉路以外の小閉路を順次接続させる。例えば、経路生成部55は、
図6に示した複数の閉路を、
図5に示した一つの閉路にする。
【0074】
まず、経路生成部55は、小閉路を選択し、選択した小閉路のノードごとに、大閉路のノードそれぞれとの距離を求める。次に、経路生成部55は、求めた距離に基づいてノード同士を接続する。
【0075】
図7は、複数の閉路を一つの閉路にする方法を説明するための図である。
図7Aの例では、まず、経路生成部55は、都市10、11、12を有する小閉路を選択する。次に、経路生成部55は、選択した小閉路と、都市5から都市9及び都市13から都市17を有する大閉路とを一つの閉路にする。
【0076】
例えば、経路生成部55は、小閉路の都市10、11、12それぞれについて、大閉路の都市5から都市9及び都市13から都市17との距離を求める。その結果、経路生成部55は、都市10と都市9の距離、及び、都市12と都市13の距離が、他に求めた距離より短いので、
図7Bに示すように、都市10と都市9、都市12と都市13を接続して、新たに大閉路を生成する。
【0077】
次に、経路生成部55は、都市1、2、3、4を有する小閉路を選択し、選択した小閉路と、都市5から都市17を有する大閉路とを一つの閉路にする。
【0078】
例えば、経路生成部55は、小閉路の都市1、2、3、4それぞれについて、大閉路の都市5から都市17との距離を求める。その結果、経路生成部55は、都市1と都市17の距離、及び、都市4と都市5の距離が、他に求めた距離より短いので、
図7Cに示すように、都市1と都市17、都市4と都市5を接続して、新たに大閉路を生成する。
【0079】
ただし、都市3と都市5の距離は、都市1と都市17の距離より短いが、都市5は既に選ばれているので、都市3と都市5は選択されない。
【0080】
なお、すでに数2に示したハミルトニアンHの制約により、経路生成部55でコストが最小となるような閉路を求めており、各閉路内では順序を入れ替える必要はない。よって、小閉路を大閉路に接続させる際に追加となるコストが最小となる組み合わせを求める問題に帰着させることで、上述した複数の閉路を一つの閉路にする処理にかかる計算量は少なく、短時間で求めることができる。
【0081】
ところが、上述した方法により大閉路を生成した場合、最短経路でないことがある。そこで、さらに精度を上げるために、経路生成部55は2―opt法を用いた補助処理を実行する。補助処理は、二つの経路を順次選択し、選択した二つの経路(エッジ)の接続をつなぎ直し、大閉路が短くなるなら、つなぎ直した閉路を採用する。
【0082】
また、補助処理の終了は、つなぎ直しても、大閉路が短くならない場合に補助処理を終了する。
【0083】
図8は、補助処理を説明するための図である。例えば、
図8Aに示すように、都市16と都市14の経路(矢印)と、都市13と都市15の経路(矢印)が選択された場合、
図8Bに示すように、都市16と都市14の経路を都市16と都市15の経路に入れ替える。また、都市13と都市15の経路を都市13と都市14の経路に入れ替える。
【0084】
この入れ替えの結果、大閉路が短くなるなら、入れ替えた大閉路を採用する。このように上述した入れ替え処理を繰り返し、大閉路が短くならない場合(改善がなくなった場合)に補助処理を停止する。その結果、
図8Cに示すような大閉路が得られる。
【0085】
このように、補助処理を実行することにより、上述した複数の閉路を一つの閉路(大閉路)にした場合でも、大閉路をより良い近似解となる経路を求めることができる。
【0086】
[装置動作]
次に、実施形態における閉路生成装置の動作について
図9を用いて説明する。
図9は、閉路生成装置の動作の一例を説明するための図である。以下の説明においては、適宜図面を参酌する。また、実施形態では、閉路生成装置を動作させることによって、閉路生成方法が実施される。よって、実施形態における閉路生成方法の説明は、以下の閉路生成装置の動作説明に代える。
【0087】
取得部51は、まず、TSPにより与えられたグラフを表すグラフ情報を取得する(ステップA1)。
【0088】
次に、抽出部52は、TSPにおいて与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する(ステップA2)。
【0089】
次に、イジングモデル生成部53は、抽出したエッジをスピン(変数)としたイジングモデル又はQUBOを生成する(ステップA3)。具体的には、イジングモデル生成部53は、数2に示すようなイジングモデルを生成する。なお、イジングモデルは手動で生成してもよい。
【0090】
次に、求解部54は、生成したイジングモデルに基づいて、量子アニーリングマシン10に求解させる(ステップA4)。量子アニーリングマシン10が求解できた場合(ステップA5:Yes)、経路生成部55は、量子ビットの状態を表す状態情報を用いて閉路を生成する(ステップA6)。
【0091】
また、量子アニーリングマシン10が求解できない場合(ステップA5:No)、抽出部52は、順位が最大であるかを判定する(ステップA7)。順位が最大である場合(ステップA7:Yes)、抽出部52は、量子アニーリングマシン10が求解できないものとして処理を終了する。順位が最大とは、例えば、ノードがn個である場合に、1/n*100[%]の増加ができない状態などである。
【0092】
順位が最大でない場合(ステップA7:No)、抽出部52は、あらかじめ設定された順位を変更する(ステップA8)。具体的には、ステップA8において、抽出部52は、求解部54から求解できなかったことを表すエラー情報を取得する。次に、ステップA8において、抽出部52は、抽出するエッジの数が多くなるように、順位を変更する。例えば、ノードがn個である場合、最低でも、1/n*100[%]は増加させる。
【0093】
次に、ステップA8において、抽出部52が順位を変更した後、ステップA2の処理に移行して、再度エッジを抽出する。そして、ステップA3において、イジングモデル生成部53は、新たに抽出したエッジをスピンとして、新たにイジングモデルを生成する。その後、ステップA4において、求解部54は、生成した新たなイジングモデルに基づいて、量子アニーリングマシン10に求解させる。
【0094】
経路生成部55は、複数の閉路が生成された場合(ステップA9:Yes)、複数の閉路のうち最も多くノードを含む閉路(大閉路)に、大閉路以外の小閉路を順次接続させる(ステップA10)。閉路が一つの場合(ステップA9:No)には処理を終了する。なお、閉路が一つの場合でも補助処理をしてもよい。
【0095】
具体的には、ステップA10において、経路生成部55は、小閉路を選択し、選択した小閉路のノードごとに、大閉路のノードそれぞれとの距離を求める。次に、ステップA10において、経路生成部55は、求めた距離に基づいてノード同士を接続する。
【0096】
経路生成部55は、補助処理を実行する(ステップA11)。補助処理は、例えば、2―opt法などの処理である。二つの経路を順次選択し、選択した二つの経路(エッジ)の接続をつなぎ直し、大閉路が短くなるなら、つなぎ直した閉路を採用する。
【0097】
また、補助処理の終了は、つなぎ直しても、大閉路が短くならない場合に補助処理を終了する。
【0098】
[本実施形態の効果]
以上のように実施形態によれば、巡回セールスマン問題において、あらかじめ不要な経路を除外してから、量子アニーリングマシン10に量子アニーリングを実行させるので、閉路を生成する求解時間を短縮できる。
【0099】
複数の閉路が生成された場合でも、複数の閉路を一つの閉路にして、更に、補助処理を実行するので、近似解となる経路を生成することができる。
【0100】
[プログラム]
実施形態におけるプログラムは、コンピュータに、
図9に示すステップA1からA11を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、実施形態における閉路生成装置と閉路生成方法とを実現することができる。この場合、コンピュータのプロセッサは、取得部51、抽出部52、イジングモデル生成部53、求解部54、経路生成部55として機能し、処理を行なう。
【0101】
また、実施形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、取得部51、抽出部52、イジングモデル生成部53、求解部54、経路生成部55のいずれかとして機能してもよい。
【0102】
[物理構成]
ここで、実施形態におけるプログラムを実行することによって、閉路生成装置を実現するコンピュータについて
図10を用いて説明する。
図10は、実施形態における閉路生成装置を実現するコンピュータ(例えば、情報処理装置20、端末装置30など)の一例を示すブロック図である。
【0103】
図10に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU、又はFPGAを備えていてもよい。
【0104】
CPU111は、記憶装置113に格納された、本実施形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体120は、不揮発性記録媒体である。
【0105】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0106】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0107】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0108】
なお、実施形態における閉路生成装置は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、閉路生成装置は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0109】
[付記]
以上の実施形態に関し、更に以下の付記を開示する。上述した実施形態の一部又は全部は、以下に記載する(付記1)から(付記9)により表現することができるが、以下の記載に限定されるものではない。
【0110】
(付記1)
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する、抽出部と、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、求解部と、
を有する閉路生成装置。
【0111】
(付記2)
付記1に記載の閉路生成装置であって、
前記抽出部は、前記求解ができない場合、前記順位を変更し、変更した前記順位に基づいて新たにエッジを抽出する、
前記求解部は、新たに前記抽出されたエッジをスピンとしたイジングモデルに基づいて、前記量子アニーリングマシンに求解させる
閉路生成装置。
【0112】
(付記3)
付記1又は2に記載の閉路生成装置であって、
複数の閉路が求められた場合、複数の前記閉路を用いて、コストの合計が最小となる一つの閉路を生成する、経路生成部
を有する閉路生成装置。
【0113】
(付記4)
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する、抽出ステップと、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、求解ステップと、
を有する閉路生成方法。
【0114】
(付記5)
付記4に記載の閉路生成方法であって、
前記抽出ステップは、前記求解ができない場合、前記順位を変更し、変更した前記順位に基づいて新たにエッジを抽出する、
前記求解ステップは、新たに前記抽出されたエッジをスピンとしたイジングモデルに基づいて、前記量子アニーリングマシンに求解させる
閉路生成方法。
【0115】
(付記6)
付記4又は5に記載の閉路生成方法であって、
複数の閉路が求められた場合、複数の前記閉路を用いて、コストの合計が最小となる一つの閉路を生成する、経路生成ステップ
を有する閉路生成方法。
【0116】
(付記7)
コンピュータに、
巡回セールスマン問題において与えられたグラフに含まれるノードを順次選択し、選択したノードごとに、選択したノードとそれ以外のノードで表されたエッジに関連付けられたコストを参照し、あらかじめ設定された順位以下のコストに対応するエッジを抽出する、抽出ステップと、
抽出したエッジをスピンに設定したイジングモデルに基づいて、量子アニーリングマシンに求解させる、求解ステップと、
を実行させる命令を含むプログラム。
【0117】
(付記8)
付記7に記載のプログラムであって、
前記抽出ステップは、前記求解ができない場合、前記順位を変更し、変更した前記順位に基づいて新たにエッジを抽出する、
前記求解ステップは、新たに前記抽出されたエッジをスピンとしたイジングモデルに基づいて、前記量子アニーリングマシンに求解させる
命令を含むプログラム。
【0118】
(付記9)
付記7又は8に記載のプログラムであって、
前記プログラムが、前記コンピュータに、
複数の閉路が求められた場合、複数の前記閉路を用いて、コストの合計が最小となる一つの閉路を生成させる、
命令を含むプログラム。
【0119】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0120】
以上のように本発明によれば、巡回セールスマン問題において、閉路を生成する求解時間を短縮できる。本発明は、巡回セールスマン問題を量子アニーリングにより求解する分野において有用である。
【符号の説明】
【0121】
1 システム
10 量子アニーリングマシン
11 量子処理部
12 制御部
13 読取部
20 情報処理装置
30 端末装置
40 ネットワーク
50 閉路生成装置
51 取得部
52 抽出部
53 イジングモデル生成部
54 求解部
55 経路生成部
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス