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

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

▶ 日本電気株式会社の特許一覧

特許7396024情報処理装置、情報処理方法及びプログラム
<>
  • 特許-情報処理装置、情報処理方法及びプログラム 図1
  • 特許-情報処理装置、情報処理方法及びプログラム 図2
  • 特許-情報処理装置、情報処理方法及びプログラム 図3
  • 特許-情報処理装置、情報処理方法及びプログラム 図4
  • 特許-情報処理装置、情報処理方法及びプログラム 図5
  • 特許-情報処理装置、情報処理方法及びプログラム 図6
  • 特許-情報処理装置、情報処理方法及びプログラム 図7
  • 特許-情報処理装置、情報処理方法及びプログラム 図8
  • 特許-情報処理装置、情報処理方法及びプログラム 図9
  • 特許-情報処理装置、情報処理方法及びプログラム 図10
  • 特許-情報処理装置、情報処理方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
   G06N 99/00 20190101AFI20231205BHJP
   G06N 10/00 20220101ALI20231205BHJP
   G06F 17/10 20060101ALI20231205BHJP
【FI】
G06N99/00 180
G06N10/00
G06F17/10 Z
【請求項の数】 10
(21)【出願番号】P 2019230591
(22)【出願日】2019-12-20
(65)【公開番号】P2021099621
(43)【公開日】2021-07-01
【審査請求日】2022-11-07
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成30年度、国立研究開発法人新エネルギー・産業技術総合開発機構「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発/次世代コンピューティング技術の開発」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】南部 芳弘
【審査官】武田 広太郎
(56)【参考文献】
【文献】米国特許出願公開第2015/0032994(US,A1)
【文献】佐々木 守 ほか,巡回セールスマン問題を解くHopfieldネットワークの初期値依存性について,電子情報通信学会論文誌 (J82-A) 第7号,日本,社団法人電子情報通信学会,1999年,980~989
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
G06N 10/00
G06F 17/10
(57)【特許請求の範囲】
【請求項1】
アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出する算出手段と、
前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行する演算手段と
を有する情報処理装置。
【請求項2】
符号関数により、前記固有ベクトルの各成分の符号に対応した+1又は-1の成分を有する二値ベクトルを生成する生成手段と、
前記二値ベクトルに基づいて、前記問題の解の探索における初期状態を決定する決定手段と
をさらに有する請求項1に記載の情報処理装置。
【請求項3】
前記決定手段は、前記二値ベクトルに基づいて、前記複数の二値変数の初期値を決定する
請求項2に記載の情報処理装置。
【請求項4】
前記算出手段は、前記結合係数行列の最大固有値に対応する前記固有ベクトルを算出する
請求項1~3のいずれか一項に記載の情報処理装置。
【請求項5】
前記算出手段は、前記結合係数行列の複数の前記固有ベクトルを算出し、
前記演算手段は、複数の前記固有ベクトルそれぞれに基づいて決定された複数の前記初期状態についてのアニーリングアルゴリズムをそれぞれ実行し、実行されたアニーリングアルゴリズムの複数の解のうち、エネルギーが最小となる解を、最適解として決定する
請求項1~3のいずれか一項に記載の情報処理装置。
【請求項6】
前記算出手段は、前記結合係数行列の複数の固有値のうちの値の大きな予め定められた数の固有値にそれぞれ対応する複数の前記固有ベクトルを算出する
請求項5に記載の情報処理装置。
【請求項7】
前記算出手段は、前記結合係数行列の全ての固有値にそれぞれ対応する複数の前記固有ベクトルを算出する
請求項5に記載の情報処理装置。
【請求項8】
前記演算手段は、複数の前記初期状態それぞれについてのアニーリングアルゴリズムを並列して実行する
請求項5~7のいずれか一項に記載の情報処理装置。
【請求項9】
アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出し、
前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行する
情報処理方法。
【請求項10】
アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出するステップと、
前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
例えば量子アニーリング又はシミュレーテッドアニーリング等の、イジングモデルの基底状態を探索する問題を求解するためのアニーリングアルゴリズム(焼き鈍し法)が知られている。例えば、特許文献1は、イジングモデルの基底状態を探索することにより最適化問題の解を求める演算処理を実行する情報処理装置を開示する。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2017/037859号
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1にかかる技術では、イジングモデルにおけるスピン配列の初期状態を乱数でランダムに設定してシミュレーティッドアニーリングアルゴリズムを実行する。初期状態をランダムに設定すると、基底状態からはるかに遠い状態が初期状態として設定される可能性が高くなる。したがって、問題の求解の精度が悪くなるおそれがある。したがって、アニーリングアルゴリズムを実行する場合に問題の求解の精度を向上させる方法が望まれる。
【0005】
本開示の目的は、このような課題を解決するためになされたものであり、アニーリングアルゴリズムを実行する場合に問題の求解の精度を向上させることが可能な情報処理装置、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本開示にかかる情報処理装置は、アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出する算出手段と、前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行する演算手段とを有する。
【0007】
また、本開示にかかる情報処理方法は、アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出し、前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行する。
【0008】
本開示にかかるプログラムは、アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出するステップと、前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行するステップとをコンピュータに実行させる。
【発明の効果】
【0009】
本開示によれば、アニーリングアルゴリズムを実行する場合に問題の求解の精度を向上させることが可能な情報処理装置、情報処理方法及びプログラムを提供できる。
【図面の簡単な説明】
【0010】
図1】本開示の実施の形態にかかる情報処理装置の概要を示す図である。
図2】実施の形態1にかかる情報処理装置の構成を示す図である。
図3】本実施の形態にかかる連続緩和問題を説明するための図である。
図4】実施の形態にかかる情報処理装置によって実行される情報処理方法を示すフローチャートである。
図5】本実施の形態にかかるプリプロセスによって初期条件を設定したシミュレーテッドアニーリングアルゴリズムの実行結果と比較例にかかるシミュレーテッドアニーリングアルゴリズムの実行結果とを比較する図である。
図6】本実施の形態にかかるプリプロセスによって初期条件を設定したシミュレーテッドアニーリングアルゴリズムの実行結果と比較例にかかるシミュレーテッドアニーリングアルゴリズムの実行結果とを比較する図である。
図7】本実施の形態にかかるプリプロセスによって初期条件を設定したシミュレーテッドアニーリングアルゴリズムの実行結果と比較例にかかるシミュレーテッドアニーリングアルゴリズムの実行結果とを比較する図である。
図8】本実施の形態にかかるプリプロセスによって初期条件を設定したシミュレーテッドアニーリングアルゴリズムの実行結果と比較例にかかるシミュレーテッドアニーリングアルゴリズムの実行結果とを比較する図である。
図9】本実施の形態にかかるプリプロセスによって初期条件を設定したシミュレーテッドアニーリングアルゴリズムの実行結果と比較例にかかるシミュレーテッドアニーリングアルゴリズムの実行結果とを比較する図である。
図10】本実施の形態にかかるプリプロセスによって初期条件を設定したシミュレーテッドアニーリングアルゴリズムの実行結果と比較例にかかるシミュレーテッドアニーリングアルゴリズムの実行結果とを比較する図である。
図11】実施の形態2にかかる情報処理装置によって実行される情報処理方法を示すフローチャートである。
【発明を実施するための形態】
【0011】
(本開示にかかる実施の形態の概要)
本開示の実施形態の説明に先立って、本開示にかかる実施の形態の概要について説明する。図1は、本開示の実施の形態にかかる情報処理装置1の概要を示す図である。情報処理装置1は、例えばコンピュータとしての機能を有する。
【0012】
情報処理装置1は、算出手段として機能する算出部2と、演算手段として機能する演算部4とを有する。算出部2は、アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられる結合係数行列の、少なくとも1つの固有ベクトルを算出する。ここで、結合係数行列は、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む。二値変数及び結合係数行列の詳細については後述する。演算部4は、固有ベクトルに基づいて決定された初期状態(初期値)からアニーリングアルゴリズムを実行する。
【0013】
本開示にかかる情報処理装置1は、上記のように、結合係数行列の固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行する。これによって、ランダムに初期状態を設定した場合と比較して、問題の求解の精度が良好となる。なお、情報処理装置1によって実行される情報処理方法を用いても、乱数によってランダムに初期状態を設定した場合と比較して、問題の求解の精度が良好となる。また、情報処理方法を実行可能なプログラムを用いても、乱数によってランダムに初期状態を設定した場合と比較して、問題の求解の精度が良好となる。
【0014】
(実施の形態1)
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0015】
図2は、実施の形態1にかかる情報処理装置100の構成を示す図である。情報処理装置100は、図1に示した情報処理装置1に対応する。情報処理装置100は、主要なハードウェア構成として、制御部102と、記憶部104と、通信部106と、インタフェース部108(IF;Interface)とを有する。制御部102、記憶部104、通信部106及びインタフェース部108は、データバスなどを介して相互に接続されている。
【0016】
制御部102は、例えばCPU(Central Processing Unit)等のプロセッサである。制御部102は、制御処理及び演算処理等を実行する機能を有する。記憶部104は、例えばメモリ又はハードディスク等の記憶デバイスである。記憶部104は、例えばROM(Read Only Memory)又はRAM(Random Access Memory)等である。記憶部104は、制御部102によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。また、記憶部104は、処理データ等を一時的に記憶するための機能を有する。記憶部104は、データベースを含み得る。
【0017】
通信部106は、他の装置と有線又は無線のネットワークを介して通信を行うために必要な処理を行う。通信部106は、通信ポート、ルータ、ファイアウォール等を含み得る。インタフェース部108は、例えばユーザインタフェース(UI;User Interface)である。インタフェース部108は、キーボード、タッチパネル又はマウス等の入力装置と、ディスプレイ又はスピーカ等の出力装置とを有する。インタフェース部108は、ユーザによるデータの入力の操作を受け付け、ユーザに対して情報を出力する。
【0018】
また、情報処理装置100は、取得部112、固有ベクトル算出部114、二値ベクトル生成部116、初期状態決定部118、演算部120、及び演算結果出力部122を有する。なお、以下、取得部112、固有ベクトル算出部114、二値ベクトル生成部116、初期状態決定部118、演算部120、及び演算結果出力部122を、「構成要素」と称することがある。
【0019】
取得部112は、取得手段としての機能を有する。固有ベクトル算出部114は、固有ベクトル算出手段(算出手段)としての機能を有する。二値ベクトル生成部116は、二値ベクトル生成手段(生成手段)としての機能を有する。初期状態決定部118は、初期状態決定手段(決定手段)としての機能を有する。演算部120は、演算手段としての機能を有する。演算結果出力部122は、演算結果出力手段(出力手段)としての機能を有する。また、固有ベクトル算出部114及び演算部120は、それぞれ、図1に示した算出部2及び演算部4に対応する。なお、これらの構成要素の処理については、図4を用いて後述する。
【0020】
なお、各構成要素は、例えば、制御部102の制御によって、プログラムを実行させることによって実現できる。より具体的には、各構成要素は、記憶部104に格納されたプログラムを、制御部102が実行することによって実現され得る。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてそのプログラムをインストールすることで、各構成要素を実現するようにしてもよい。また、各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。また、各構成要素は、例えばFPGA(field-programmable gate array)又はマイコン(Micro Computer)等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。
【0021】
<原理>
ここで、本実施の形態にかかる情報処理装置100によって処理される組み合わせ最適化問題の求解の精度を向上させる原理について説明する。組み合わせ最適化問題は、以下の式1で示されるエネルギーHを最小化するσを求めることと等価である。言い換えると、組み合わせ最適化問題は、エネルギーHが式1で与えられるイジングモデルの、最低エネルギー状態(基底状態)を求める問題に等しい。
(式1)
【数1】
【0022】
ここで、式1の最右辺のσは、以下の式2で定義されるベクトルである。また、σ(及びσ)は、σの成分である。
(式2)
【数2】
【0023】
ここで、σは、イジングモデルにおけるノード(格子点)iのスピンの状態(イジングスピン)を示す二値パラメータ(二値変数;状態パラメータ)である。式2に示すように、σは、-1又は+1のいずれかの値をとる。また、Nは、ノード数である。ここで、σは、-1又は+1のいずれかの値をとるので、ベクトルσは、N次元超立方体(但しN=2ならば正方形、N=3ならば立方体)の頂点の集合の要素で表される。
【0024】
式1のHは、イジングモデルにおけるエネルギー(最小化すべきコスト関数)を示す。また、式2のΣは、イジングモデルにおける二値変数のベクトル(二値変数ベクトル)σ={σ,σ,・・・,σ,・・・,σ}の定義域を示し、超立方体の頂点の集合になる。言い換えると、ベクトルσは、各ノードiの二値変数(状態パラメータ)の組み合わせを示す。
【0025】
なお、式1の右辺第2項から右辺第3項への変形については、以下の式3及び式4と対応させることで、一般性を失うことなく、エネルギーHは、右辺第3項の形式(H=-ΣJijσσ)で表され得る。
(式3)
【数3】
(式4)
【数4】
【0026】
ここで、式1のJijは、σとσとの間の結合の強さ(相互作用)を示す結合係数(結合定数)である。Jijは、例えば、ノードiとノードjとの間の距離、又は、ノードiとノードjとの間の重みを示す。また、式1の最右辺のJは、結合係数Jijを含む結合係数行列である。つまり、結合係数行列Jは、結合係数Jijを成分とする行列(N×N行列)である。また、Jii=0、Jij=Jjiとする。したがって、結合係数行列Jは、対角項=0の実対称行列である。また、結合係数行列Jは、アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられる。つまり、解くべき組み合わせ最適化問題が決定すれば、結合係数行列Jは一意に定まる。
【0027】
本実施の形態にかかる情報処理装置100は、シミュレーテッドアニーリングアルゴリズム等のアニーリングアルゴリズムによって、式2で示す制約条件において、式1で示されるエネルギーHを最小化するσを求める。ここで、一般的に、Hを最小化するσを解析的に解くことはできない。そのため、情報処理装置100は、解を確率的にサンプリングすることによって探索する。例えば、モンテカルロ法に基づくシミュレーテッドアニーリングアルゴリズムを実行する。
【0028】
次に、上記の式1及び式2を、それぞれ式5及び式6で示すように、エネルギーHを最小化するxを求める問題に置き換える。
(式5)
【数5】
【0029】
ここで、式5の最右辺のxは、以下の式6で定義される有界な定義域Xに制約された実数ベクトルである。また、x(及びx)は、xの成分である。ここで、xは、上述したσの制約条件が緩和されたベクトルに対応する。したがって、xは、σに対応する。
(式6)
【数6】
【0030】
式6のXは、実数ベクトルx={x,x,・・・,x,・・・,x}の定義域を示し、超立方体の内点の集合になる。つまり、式5及び式6で示される問題では、σをxに置き換えることで、定義域が緩和されている。つまり、σは-1又は+1の二値の値のみをとり得るのに対し、xは、-1又は+1の二値以外の値をとり得る。なお、H=-xJx(式5)は、Xに極値を持たない。したがって、式5~式6で示される緩和問題の最小値を与える大局的最適解は、元の組み合わせ最適化問題(式1~式2)の大局的最適解に一致し、超立方体の頂点上にあることとなる。なお、式5~式6は、式1~式2の定義域を離散的な整数変数から連続的な実数変数に置き換えた連続緩和問題と呼ばれる。ここで、式5~式6は、式1~式2と同様に、一般的には、解析的に解くことができない。
【0031】
ここで、この連続緩和問題において、式2に関する超立方体に内接する超球面上でHを最小とする点(最小点)を初期値とすることを考える。そこで、xを、超立方体に内接する超球面上の点|x|=Nに制約する。そして、上述したように、結合係数行列Jは、対角項=0の実対称(半正定値)行列である。このとき、この超球面上でHの最小値を与えるxは、以下の式7で示される、二次形式xJxに関するレイリー(Rayleigh)商
(式7)
【数7】
の最大値を与えるベクトルxと等しい。
【0032】
そして、式7の最大値を与えるベクトルx(つまり超球面上における最小点)は、行列Jの最大固有値に対応する固有ベクトルとして得られる。したがって、実対称行列であるJの最大固有値λmaxに対する固有ベクトル
(式8)
【数8】
を用いて、
(式9)
【数9】
であることを、解析的に示すことができる。なお、以降の説明で、式8を、「」と示すことがある。
【0033】
また、H=-xJx(式5)がXに極値を持たないことを考慮すると、xの最近傍にある超立方体の頂点
(式10)
【数10】
は、元の組み合わせ最適化問題(式1~式2)の、連続緩和問題(式5~式6)による近似解を与え得ることが推測される。
【0034】
したがって、結合係数行列Jの固有ベクトルを算出し、式10によって求めたベクトルσ(近似解)を、アニーリングアルゴリズムの解の探索における初期値(初期状態)とすることで、効率的に精度よく解を求めることができると推測される。すなわち、初期状態をランダムに設定した場合と比較して、基底状態に近い初期状態を設定することができるので、問題の求解の精度を向上させることができると推測される。なお、上記の初期値(初期状態)と設定されるベクトルσ(以後、「σ」と記載することがある)を算出する処理を、アニーリングアルゴリズムの前の処理という意味で、「プリプロセス」と称する。
【0035】
図3は、本実施の形態にかかる連続緩和問題を説明するための図である。図3では、説明のため、N=2とし、x平面で表される2次元空間を考える。このとき、式2から、ベクトルσ(つまり{σ,σ})は、2次元超立方体である正方形Sqの頂点(1,1),(1,-1),(-1,1),(-1,-1)のいずれかで表され得る。一方、式6から、正方形Sqに内接する円であるCrの内部又は円周上の点は、ベクトルx(つまり{x,x})の定義域Xに含まれる。
【0036】
ここで、上述したように、球面上の最小点は、行列Jの最大固有値に対応する固有ベクトルとして得られる。したがって、内接円Cr上の最小点は、行列Jの最大固有値に対応する固有ベクトルとして得られる。例えば、行列Jの最大固有値に対応する固有ベクトルが、(a,-b)と表されるとする。但し、0≦a,b≦1とする。このとき、式10から、ベクトルσは、(+1,-1)と表される。このことは、点(a,-b)に最も近い正方形Sqの頂点が、(+1,-1)であることと同義である。この場合、アニーリングアルゴリズムの二値変数の初期値(初期状態)は、σ=(+1,-1)と設定される。
【0037】
<情報処理方法>
図4は、実施の形態1にかかる情報処理装置100によって実行される情報処理方法を示すフローチャートである。なお、S104~S108の処理が、上述したプリプロセスに対応する。
【0038】
まず、取得部112は、結合係数行列Jを取得する(ステップS102)。具体的には、取得部112は、解くべき問題(組み合わせ最適化問題)に対応する結合係数行列J(式1に示す)を、例えばユーザがインタフェース部108を操作して入力することで、取得してもよい。あるいは、例えば、取得部112は、解くべき問題が与えられた場合に、その解くべき問題に対応する結合係数行列Jを算出してもよい。
【0039】
固有ベクトル算出部114は、S102の処理で取得された結合係数行列Jの固有ベクトルを算出する(ステップS104)。具体的には、固有ベクトル算出部114は、例えば、アーノルディ(Arnoldi)法又はQR法等によって、結合係数行列Jの固有ベクトルを算出してもよい。また、実施の形態1においては、固有ベクトル算出部114は、結合係数行列Jの最大固有値に対応する固有ベクトルを算出してもよい。
【0040】
二値ベクトル生成部116は、S104の処理で算出された固有ベクトルに対応する二値ベクトルを算出する(ステップS106)。具体的には、二値ベクトル生成部116は、式10で示すように、符号関数sgnにより、固有ベクトルの各成分の符号に対応した+1又は-1の成分を有する二値ベクトルσを生成する。
【0041】
初期状態決定部118は、S106の処理で生成された二値ベクトルから、問題の解の探索における初期状態を決定する(ステップS108)。具体的には、初期状態決定部118は、上述したように、生成された二値ベクトルσを、ベクトルσの初期値σとする。つまり、初期状態決定部118は、生成された二値ベクトルの各成分を、二値変数σの初期値として設定する。
【0042】
上述したように、プリプロセスによって得られた二値ベクトルσは、元の組み合わせ最適化問題(式1~式2)の近似解となっている可能性が高い。したがって、そのときのエネルギーHは、プリプロセスを行わない場合と比較して、大局的最適解における値に接近している可能性が高い。そのため、初期状態決定部118は、二値変数σの初期値(二値ベクトルσ)に対応するエネルギーHに応じて、適切な逆温度βの初期値βを決定する。例えば、初期状態決定部118は、プリプロセスを用いない場合のエネルギーHの過渡値が二値ベクトルσにおけるエネルギーHの値と一致するようなβの過渡値を、βと決定してもよい。これにより、逆温度βのとき、初期条件として用いるプリプロセスを行って得られた二値ベクトルσにおけるエネルギーHの値と、プリプロセスを用いない場合のエネルギーHの過渡値とが、一致し得る。このような適切な初期値βを用いない場合、初期条件として用いたσがランダム状態に熱緩和してしまうので、適切な初期値βの選択は必要である。
【0043】
演算部120は、S108で決定された初期状態から、アニーリングアルゴリズムを実行する(ステップS110)。具体的には、演算部120は、例えばモンテカルロ法を用いて、シミュレーテッドアニーリングアルゴリズムを実行する。なお、シミュレーテッドアニーリングアルゴリズムの手法については、一般的な手法を採用可能であるので、詳細の説明は省略する(他の実施の形態でも同様)。
【0044】
これにより、演算部120は、最低エネルギー状態(基底状態)における二値変数σの組み合わせ(つまりベクトルσ)を確率的に探索する。言い換えると、演算部120は、基底状態におけるイジングモデルのスピン配置を推定する。この推定結果は真の基底状態のスピン配置ではないこともありうるが、推定した配置のエネルギーHの値が低いほど、基底状態に近い二値変数σの組み合わせ(つまりベクトルσ)を算出したこととなる。したがって、演算部120のアニーリングアルゴリズムの推定結果におけるエネルギーの値が低いほど、問題の求解の精度が高いといえる。
【0045】
演算結果出力部122は、S110の処理によって実行されたアニーリングアルゴリズムの演算結果を出力する(ステップS112)。具体的には、演算結果出力部122は、例えばインタフェース部108を制御して、ユーザが視認できるように、演算結果を表示する。例えば、演算結果出力部122は、推定結果におけるエネルギー、及び、二値変数σの組み合わせ等を表示してもよい。
【0046】
<実験結果>
図5図10は、本実施の形態にかかるプリプロセスによって初期条件を設定したシミュレーテッドアニーリングアルゴリズムの実行結果と比較例にかかるシミュレーテッドアニーリングアルゴリズムの実行結果とを比較する図である。つまり、図5図10は、実施の形態1にかかるプリプロセスによって算出された結合係数行列Jの固有ベクトルから初期状態を設定した場合と、乱数によってランダムに初期状態を設定した場合とで、アニーリングアルゴリズムの実行結果を比較する図である。図5図8において、縦軸はエネルギーHを示し、横軸は逆温度β(時間経過に対応)を表す。また、丸形のドット列は、乱数によってランダムに初期状態を設定した場合の、シミュレーテッドアニーリングアルゴリズムの実行結果(比較例にかかる結果)を示す。また、三角形のドット列は、プリプロセスによって算出された結合係数行列Jの固有ベクトルから初期状態を設定した場合の、シミュレーテッドアニーリングアルゴリズムの実行結果(本実施の形態にかかる結果)を示す。
【0047】
なお、図5図8にかかる実験では、逆温度βを、0~0.48の間で、一定量0.006ごとに、線形に変化させた。したがって、サンプル数は、最大80点である。また、各温度において、N回のスピン更新を試みた。また、結合係数Jijの各成分がランダムに+1又は-1の値をとる、N個のノードの全結合マップ問題に対応するランダムN×N行列Kを、ベンチマーク問題として用いた。
【0048】
図5は、N=1000のランダム行列K1000を結合係数行列Jとしたときの実験結果を示す。図6は、N=2000のランダム行列K2000を結合係数行列Jとしたときの実験結果を示す。図7は、N=4000のランダム行列K4000を結合係数行列Jとしたときの実験結果を示す。図8は、N=8000のランダム行列K8000を結合係数行列Jとしたときの実験結果を示す。なお、乱数によってランダムに初期状態を設定した場合に得られた最低エネルギーをEとする。また、プリプロセスによって算出された結合係数行列Jの固有ベクトルから初期状態を決定した場合に得られた最低エネルギーをEとする。また、乱数によってランダムに初期状態を設定した場合のアニーリングアルゴリズムの実行時間をTとする。また、プリプロセスによって算出された結合係数行列Jの固有ベクトルから初期状態を設定した場合のアニーリングアルゴリズムの実行時間をTとする。なお、逆温度βの初期値βは、Nの大きさにほとんど依存せず、概ね0.06であった。
【0049】
図9は、図5図8に示した実験結果にかかる、エネルギー改善率Δを示す図である。エネルギー改善率Δ[%]は、以下の式11で定義される。
(式11)
【数11】
【0050】
図9から、ノード数Nが増加するにつれて、エネルギー改善率Δが上昇していることがわかる。したがって、本実施の形態にかかるプリプロセスは、ノード数(格子点の数)が増加するにつれてその効果を発揮する。なお、図5図8に示すように、Nが増加するにつれて、プリプロセスに要する時間が増加している。しかしながら、図5図8において、T>Tである。また、行列の固有ベクトルを算出するアルゴリズムは多く存在し、計算時間の削減についても多く研究されている。したがって、プリプロセスに要する計算オーバーヘッドについては、それほど大きくない。
【0051】
図10は、ランダム行列K2000を結合係数行列Jとして200インスタンスのシミュレーテッドアニーリングアルゴリズムの実験を行ったときの、最低エネルギー到達値の度数分布を示すヒストグラムである。縦軸は推定解のエネルギー値を示し、横軸はそのエネルギー値をとるインスタンスの数を示す。Hs0は、乱数によってランダムに初期状態を設定した場合のヒストグラムである。Hs1は、プリプロセスによって算出された結合係数行列Jの固有ベクトルから初期状態を設定した場合のヒストグラムである。
【0052】
図10から分かるように、プリプロセスを用いた場合のヒストグラムHs1は、プリプロセスを用いなかった場合のヒストグラムHs0よりも、低エネルギーに分布している。また、ヒストグラムHs1は、ヒストグラムHs0よりも、分布の幅(バラつき)が小さくなっている。したがって、プリプロセスを用いることによって、求解の精度が向上することが、本実験で検証されていることが分かる。
【0053】
なお、実施の形態1では、結合係数行列Jの最大固有値に対応する固有ベクトルを算出している。これにより、最大固有値以外の固有値に対応する固有ベクトルから初期状態を決定する場合と比較して、求解の精度が高くなる可能性が高くなる。
【0054】
(実施の形態2)
次に、実施の形態2について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。実施の形態2は、結合係数行列Jの複数の固有ベクトルそれぞれについて初期状態が決定される点で、実施の形態1と異なる。なお、情報処理装置100の構成については、実施の形態1と実質的に同様であるので、説明を省略する。
【0055】
図11は、実施の形態2にかかる情報処理装置100によって実行される情報処理方法を示すフローチャートである。なお、S204~S208の処理が、上述したプリプロセスに相当する。まず、S102と同様にして、取得部112は、結合係数行列Jを取得する(ステップS202)。
【0056】
固有ベクトル算出部114は、S202の処理で取得された結合係数行列Jの、複数の固有ベクトルを算出する(ステップS204)。なお、固有ベクトルの算出方法については、S104の処理の方法と実質的に同様である。具体的には、固有ベクトル算出部114は、結合係数行列Jの複数の固有値のうちの値の大きな予め定められた数の固有値にそれぞれ対応する複数の固有ベクトルを算出してもよい。また、固有ベクトル算出部114は、結合係数行列Jの全ての固有値にそれぞれ対応する複数の固有ベクトルを算出してもよい。
【0057】
二値ベクトル生成部116は、S204の処理で算出された複数の固有ベクトルにそれぞれ対応する複数の二値ベクトルを算出する(ステップS206)。具体的には、S106の処理と同様にして、二値ベクトル生成部116は、式10で示すように、符号関数sgnにより、複数の固有ベクトルそれぞれについて、各成分の符号に対応した+1又は-1の成分を有する二値ベクトルσを生成する。
【0058】
初期状態決定部118は、S206の処理で生成された複数の二値ベクトルそれぞれから、問題の解の探索における複数の初期状態を決定する(ステップS208)。具体的には、S108の処理と同様にして、初期状態決定部118は、生成された複数の二値ベクトルσそれぞれについて、ベクトルσの初期値σとする。つまり、初期状態決定部118は、生成された複数の二値ベクトルそれぞれについて、各成分を二値変数σの初期値として決定する。さらに、S108の処理と同様に、初期状態決定部118は、複数の二値ベクトルそれぞれについて、二値変数σの初期値(二値ベクトルσ)に対応するエネルギーHに応じて、適切な逆温度βの初期値βを決定する。
【0059】
演算部120は、S208で決定された複数の初期状態それぞれについて、アニーリングアルゴリズムを実行する(ステップS210)。具体的には、演算部120は、複数の初期状態それぞれについての複数回のシミュレーテッドアニーリングアルゴリズムを実行する。言い換えると、M個(Mは2以上の整数)の固有ベクトルが算出された場合(つまりM個の初期状態が決定された場合)、演算部120は、M回のシミュレーテッドアニーリングアルゴリズムを実行する。これにより、演算部120は、複数回実行されたアニーリングアルゴリズムそれぞれについて、最低エネルギー状態(基底状態)における二値変数σの組み合わせ(つまりベクトルσ)を算出する。なお、情報処理装置100が複数の制御部102等によって並列処理を実行可能である場合、演算部120は、M回のシミュレーテッドアニーリングアルゴリズムを、並行して実行してもよい。
【0060】
そして、演算部120は、実行されたアニーリングアルゴリズムの複数の解(演算結果)のうち、基底状態におけるエネルギーが最小となる解を、最適解として決定する(ステップS211)。つまり、演算部120は、M回実行されたシミュレーテッドアニーリングアルゴリズムについてのM個の解のうち、エネルギーが最小となる解を、最適解として決定する。
【0061】
演算結果出力部122は、アニーリングアルゴリズムの演算結果を出力する(ステップS212)。実施の形態2においては、演算結果出力部122は、S211の処理で推定された最適解に関する、エネルギー、及び、二値変数σの組み合わせ等を表示してもよい。
【0062】
上述したように、実施の形態2にかかる情報処理装置100は、結合係数行列Jの複数の固有ベクトルを算出し、複数の固有ベクトルそれぞれに基づいて決定された複数の初期状態についてのアニーリングアルゴリズムをそれぞれ実行する。そして、実施の形態2にかかる情報処理装置100は、実行されたアニーリングアルゴリズムの複数の推定解のうち、エネルギーが最小となる解を、最適推定解として決定する。これにより、実施の形態1にかかる方法よりも、さらに求解の精度を向上させることが可能となる。
【0063】
上述したように、実施の形態1においては、最大固有値に対応する固有ベクトルに設定された初期状態を用いてアニーリングアルゴリズムを実行する。これにより、上述した実験結果で示されるように、プリプロセスを行わない場合と比較して、求解の精度を向上させることができる。一方、初期状態を結合係数行列Jの複数の固有値のうちの最大固有値に対応する固有ベクトルに設定したときに、必ず、求解の精度が最も高くなるわけではない。結合係数行列Jによっては、初期状態を最大固有値以外の固有値に対応する固有ベクトルに設定したときに、求解の精度が最も高くなることもあり得る。したがって、実施の形態2のように、結合係数行列Jの複数の固有ベクトルそれぞれに基づいて決定された複数の初期状態についての複数の解のうちエネルギーが最小となる解を最適解として決定することで、求解の精度をさらに向上させることができる。
【0064】
また、結合係数行列Jの複数の固有値のうち値の大きな固有値に対応する複数の固有ベクトルに応じて決定された初期状態で実行されたアニーリングアルゴリズムの解では、エネルギーが低くなる可能性が高い。したがって、結合係数行列Jの複数の固有値のうちの値の大きな予め定められた数の固有値にそれぞれ対応する複数の固有ベクトルを算出することで、求解の精度をさらに向上させることができる。さらに、結合係数行列Jの全ての固有値にそれぞれ対応する複数の固有ベクトルを算出することで、エネルギーが最小となる初期状態が必ず決定されることとなる。したがって、求解の精度をさらに向上させることができる。
【0065】
なお、複数の固有ベクトルに応じて複数の初期状態を設定して、複数回のアニーリングアルゴリズムを実行すると、1つの問題に要する処理時間が長くなる可能性がある。この場合、複数の初期状態それぞれについての複数回のアニーリングアルゴリズムを並列して実行することで、計算コストは増大するが、処理時間の増大を抑制しつつ、求解の精度を高くすることができる。
【0066】
(変形例)
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートにおいて、各処理(ステップ)の順序は、適宜、変更可能である。また、複数ある処理(ステップ)のうちの1つ以上は、省略されてもよい。
【0067】
また、上述した実施の形態では、プリプロセスは、シミュレーテッドアニーリングアルゴリズムに対して適用されるとした。つまり、本実施の形態にかかるプリプロセスは、通常の電子式コンピュータ(古典コンピュータ)で実行されるアニーリングアルゴリズムに対して適用されるとした。しかしながら、本実施の形態にかかるプリプロセスは、量子アニーリングに対しても適用可能である。つまり、本実施の形態にかかるプリプロセスは、量子コンピュータで実行されるアニーリングプロセスに対しても適用され得る。
【0068】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0069】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出する算出手段と、
前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行する演算手段と
を有する情報処理装置。
(付記2)
符号関数により、前記固有ベクトルの各成分の符号に対応した+1又は-1の成分を有する二値ベクトルを生成する生成手段と、
前記二値ベクトルに基づいて、前記問題の解の探索における初期状態を決定する決定手段と
をさらに有する付記1に記載の情報処理装置。
(付記3)
前記決定手段は、前記二値ベクトルに基づいて、前記複数の二値変数の初期値を決定する
付記2に記載の情報処理装置。
(付記4)
前記算出手段は、前記結合係数行列の最大固有値に対応する前記固有ベクトルを算出する
付記1~3のいずれか一項に記載の情報処理装置。
(付記5)
前記算出手段は、前記結合係数行列の複数の前記固有ベクトルを算出し、
前記演算手段は、複数の前記固有ベクトルそれぞれに基づいて決定された複数の前記初期状態についてのアニーリングアルゴリズムをそれぞれ実行し、実行されたアニーリングアルゴリズムの複数の解のうち、エネルギーが最小となる解を、最適解として決定する
付記1~3のいずれか一項に記載の情報処理装置。
(付記6)
前記算出手段は、前記結合係数行列の複数の固有値のうちの値の大きな予め定められた数の固有値にそれぞれ対応する複数の前記固有ベクトルを算出する
付記5に記載の情報処理装置。
(付記7)
前記算出手段は、前記結合係数行列の全ての固有値にそれぞれ対応する複数の前記固有ベクトルを算出する
付記5に記載の情報処理装置。
(付記8)
前記演算手段は、複数の前記初期状態それぞれについてのアニーリングアルゴリズムを並列して実行する
付記5~7のいずれか一項に記載の情報処理装置。
(付記9)
アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出し、
前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行する
情報処理方法。
(付記10)
符号関数により、前記固有ベクトルの各成分の符号に対応した+1又は-1の成分を有する二値ベクトルを生成し、
前記二値ベクトルに基づいて、前記問題の解の探索における初期状態を決定する
付記9に記載の情報処理方法。
(付記11)
前記二値ベクトルに基づいて、前記複数の二値変数の初期値を決定する
付記10に記載の情報処理方法。
(付記12)
前記結合係数行列の最大固有値に対応する前記固有ベクトルを算出する
付記9~11のいずれか一項に記載の情報処理方法。
(付記13)
前記結合係数行列の複数の前記固有ベクトルを算出し、
複数の前記固有ベクトルそれぞれに基づいて決定された複数の前記初期状態についてのアニーリングアルゴリズムをそれぞれ実行し、実行されたアニーリングアルゴリズムの複数の解のうち、エネルギーが最小となる解を、最適解として決定する
付記9~11のいずれか一項に記載の情報処理方法。
(付記14)
前記結合係数行列の複数の固有値のうちの値の大きな予め定められた数の固有値にそれぞれ対応する複数の前記固有ベクトルを算出する
付記13に記載の情報処理方法。
(付記15)
前記結合係数行列の全ての固有値にそれぞれ対応する複数の前記固有ベクトルを算出する
付記13に記載の情報処理方法。
(付記16)
複数の前記初期状態それぞれについてのアニーリングアルゴリズムを並列して実行する
付記13~15のいずれか一項に記載の情報処理方法。
(付記17)
アニーリングアルゴリズムによる求解の対象である問題に応じて予め与えられ、イジングモデルにおける複数のノードの状態をそれぞれ示す複数の二値変数のそれぞれの間の結合の強さを示す結合係数を含む結合係数行列の、少なくとも1つの固有ベクトルを算出するステップと、
前記固有ベクトルに基づいて決定された初期状態からアニーリングアルゴリズムを実行するステップと
をコンピュータに実行させるプログラム。
【符号の説明】
【0070】
1 情報処理装置
2 算出部
4 演算部
100 情報処理装置
112 取得部
114 固有ベクトル算出部
116 二値ベクトル生成部
118 初期状態決定部
120 演算部
122 演算結果出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11