(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023073842
(43)【公開日】2023-05-26
(54)【発明の名称】最適化方法、情報処理装置、及び、情報処理システム
(51)【国際特許分類】
G06N 99/00 20190101AFI20230519BHJP
【FI】
G06N99/00 180
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021186554
(22)【出願日】2021-11-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】杉田 悠介
(72)【発明者】
【氏名】奥山 拓哉
(57)【要約】
【課題】
制約付きの2値2次モデルの基底状態探索を効率よく実施することができる最適化方法、情報処理装置、及び、情報処理システムを提供することを目的とする。
【解決手段】
情報処理装置は、制約付きの2値2次モデルに対する基底状態探索を、変数間の相互作用関係が完全2部グラフ構造となる2値2次モデルでの基底状態探索により代替して実行する。ここで、この情報処理装置は、完全2部グラフで2つに分割された頂点集合に対応する変数群を制約充足した状態更新が可能なグループに分け、エネルギー関数と変数の情報に基づき各変数群のグループを並列に更新して、基底状態を探索する処理を実行することができる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
基底状態探索を実行する情報処理装置を利用した最適化方法であって、
制約条件を有する2値2次モデルを、相互作用関係を有し、且つ、第1の変数群及び第2の変数群のi番目の変数ペア間に基底状態において同じような値にする結合が設定された完全2部グラフに変換し、
それぞれの変数群において、前記制約条件を充足する状態更新が可能なグループに変数を分けて、各グループの状態更新を並列的に実行する、
ことを特徴とする最適化方法。
【請求項2】
請求項1に記載の最適化方法であって、
前記情報処理装置は、
前記の第1の変数群の0/1変数の値を格納する第1変数メモリと、
前記の第2の変数群の0/1変数の値を格納する第2変数メモリと、
値を更新する際に変数群の1つを選択する選択信号SWを供給する信号SW供給線と、
を備え、
前記選択信号SWが選択したメモリの変数の状態を、変数に課された制約条件を満たすような更新方法に従って更新する、
ことを特徴とする最適化方法。
【請求項3】
請求項2に記載の最適化方法であって、
前記情報処理装置は、
シミュレーティッド・アニーリングに基づく動作を行って基底状態を探索し、
前記情報処理装置は、
前記2値2次モデルの相互作用関係を規定する相互作用行列J、及び、前記結合に関する値である結合強度λを格納する相互作用係数メモリと、
変数のバイアスに関するベクトルhを格納するバイアス係数メモリと、
温度パラメタTに関する温度信号STを供給する信号ST供給線と、
0~1の一様乱数を与える乱数信号SRを供給する信号SR供給線と、
を備え、
前記相互作用行列J、前記結合強度λ、前記ベクトルh、前記温度信号ST、及び、前記乱数信号SRに基づいて次状態を計算する、
ことを特徴とする最適化方法。
【請求項4】
請求項3に記載の最適化方法であって、
前記相互作用行列Jは、
実対称行列であり、
前記結合強度λは、
前記相互作用行列Jと前記制約条件に基づいた数値計算により決定可能である、
ことを特徴とする最適化方法。
【請求項5】
請求項3に記載の最適化方法であって、
熱浴法、または、メトロポリス法に基づく状態更新を行う、
ことを特徴とする最適化方法。
【請求項6】
基底状態を探索する情報処理装置であって、
制約条件を有する完全2部グラフの変数群の変数を更新する演算装置を備え、
前記演算装置は、
第1の変数群及び第2の変数群の間に働く相互作用を示す相互作用係数をまとめた相互作用行列J、及び、第1の変数群及び第2の変数群のi番目の変数ペア間に基底状態において同じような値にする結合λを格納する相互作用係数メモリと、
変数に働くバイアスを示すバイアス係数hを格納するバイアス係数メモリと、
第1の変数群の変数を格納する第1変数メモリと、
第2の変数群の変数を格納する第2変数メモリと、
前記の第1の変数群、または、前記の第2の変数群を選択する選択信号SWを供給する信号SW供給線と、
を備え、
前記演算装置は、
前記選択信号SWが第d変数群(d=1,2)を選択した場合、対応する変数群を格納するメモリから読み出した変数の値、前記変数に対応する、前記相互作用行列Jにおける相互作用係数の値、結合λの値、バイアス係数hの値、を入力とし、制約条件でまとめた変数のグループごとに次状態を計算する、
ことを特徴とする情報処理装置。
【請求項7】
請求項6に記載の情報処理装置であって、
前記演算装置は、
変数の更新処理を実行するユニットを備え、
前記ユニットは、
制約条件ごとに複数設けられ、
前記の複数のユニットそれぞれには、
前記の第1変数メモリまたは前記の第2変数メモリが配置され、
前記の第1変数メモリ及び前記の第2変数メモリは、
制約条件でまとめた変数のグループを格納する、
ことを特徴とする情報処理装置。
【請求項8】
請求項6に記載の情報処理装置であって、
前記演算装置は、
前記の次状態の計算を積和演算に基づいて実行する積和演算装置を備える、
ことを特徴とする情報処理装置。
【請求項9】
請求項6に記載の情報処理装置であって、
前記演算装置は、
確率的な更新を実行することで、更新先の次状態を演算する比較演算装置を備える、
ことを特徴とする情報処理装置。
【請求項10】
請求項9に記載の情報処理装置であって、
前記演算装置は、
温度パラメタTに関する温度信号STを供給する信号ST供給線と、
0~1の一様乱数を与える乱数信号SRを供給する信号SR供給線と、
を備え、
前記比較演算装置は、
前記計算による出力値、前記温度信号ST,及び、前記乱数信号SRを入力値として、シミュレーティッド・アニーリングに基づく演算を行い、変数グループの次状態を出力値とする、
ことを特徴とする情報処理装置。
【請求項11】
基底状態を探索する情報処理システムであって、
ユーザによる情報の入力に用いるユーザ端末と、
制約条件を有する完全2部グラフの変数群の変数の更新を実行し、前記ユーザ端末とは異なるクラウド上に配置される演算装置と、
を備え、
前記演算装置は、
第1の変数群及び第2の変数群の間に働く相互作用を示す相互作用係数をまとめた相互作用行列J、及び、第1の変数群及び第2の変数群のi番目の変数ペア間に基底状態において同じような値にする結合λを格納する相互作用係数メモリと、
変数に働くバイアスを示すバイアス係数hを格納するバイアス係数メモリと、
第1の変数群の変数を格納する第1変数メモリと、
第2の変数群の変数を格納する第2変数メモリと、
前記の第1の変数群、または、前記の第2の変数群を選択する選択信号SWを供給する信号SW供給線と、
を備え、
前記演算装置は、
前記選択信号SWが第d変数群(d=1,2)を選択した場合、対応する変数群を格納するメモリから読み出した変数の値、前記変数に対応する、前記相互作用行列Jにおける相互作用係数の値、結合λの値、バイアス係数hの値、を入力とし、制約条件でまとめた変数のグループごとに次状態を計算する、
ことを特徴とする情報処理システム。
【請求項12】
請求項11に記載の情報処理システムであって、
前記演算装置は、
変数の更新処理を実行するユニットを備え、
前記ユニットは、
制約条件ごとに複数設けられ、
前記の複数のユニットそれぞれには、
前記の第1変数メモリまたは前記の第2変数メモリが配置され、
前記の第1変数メモリ及び前記の第2変数メモリは、
制約条件でまとめた変数のグループを格納する、
ことを特徴とする情報処理システム。
【請求項13】
請求項11に記載の情報処理システムであって、
前記演算装置は、
確率的な更新を実行することで、更新先の次状態を演算する比較演算装置を備える、
ことを特徴とする情報処理システム。
【請求項14】
請求項13に記載の情報処理システムであって、
前記演算装置は、
温度パラメタTに関する温度信号STを供給する信号ST供給線と、
0~1の一様乱数を与える乱数信号SRを供給する信号SR供給線と、
を備え、
前記比較演算装置は、
前記計算による出力値、前記温度信号ST,及び、前記乱数信号SRを入力値として、シミュレーティッド・アニーリングに基づく演算を行い、変数グループの次状態を出力値とする、
ことを特徴とする情報処理システム。
【請求項15】
請求項11に記載の情報処理システムであって、
解くべき問題に関するデータを、前記ユーザ端末を介してユーザが設定可能である、
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化方法、情報処理装置、及び、情報処理システムに関する。
【背景技術】
【0002】
特許文献1には、2次のエネルギー関数をもつイジングモデルの相互作用関係を完全2部グラフ構造に変換して、シミュレーティッド・アニーリングに基づく制約無しの2値2次最適化を効率良く行う方法に関して記載されている。
【0003】
非特許文献1には、種々の組合せ最適化問題を2値2次最適化問題に変換するための方法について記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2019/216277号公報
【非特許文献】
【0005】
【非特許文献1】F. Glover,G. Kochenberger, and Y. Du,“A Tutorial on Formulating and Using QUBO Models”,preprint (arXiv:1811.11538).
【発明の概要】
【発明が解決しようとする課題】
【0006】
物理現象や社会現象の多くは相互作用モデルによって表現することができる。相互作用モデルは、モデルを構成する複数のノード、ノード間の相互作用関係、及びノード毎のバイアスにより定義される。物理学や社会科学の分野においては種々のモデルが提案されているが、その多くが相互作用モデルの一形態として解釈することができる。
【0007】
相互作用モデルの代表例としてイジングモデル(Ising model)あるいはそれと等価な2値2次モデル(Binary quadratic model、以下BQMと呼ぶ)がある。BQMは、各ノードが0/1などの2値をとり、ノード間の相互作用とノード毎のバイアスに基づき2次式で表現されるエネルギー関数を持つ。BQMの最低エネルギー状態(基底状態と呼ばれる)探索は制約無しの2値2次最適化問題と等価である。この基底状態を探索する方法として、マルコフ連鎖モンテカルロ法によるものがある。マルコフ連鎖モンテカルロ法では、確率的に状態を更新しつつ、状態サンプリングを行うことにより所望の統計量を推定する計算方法である。
【0008】
現実の組合せ最適化問題の多くは、解の良し悪しを表す評価関数だけでなく、解が満たすべき制約条件を持つ。組合せ最適化問題を2値2次最適化問題に変換した場合、このような制約条件はノード間に課される制約条件となる。制約条件を満たしつつ解を探索するためには、例えば、マルコフ連鎖モンテカルロ法に従って制約条件を満たす状態間で状態更新を実行すればよい。しかし、このような状態更新を逐次的に処理すると時間がかかるため、大規模な最適化問題を実用的な時間内に解くことは困難である。
【0009】
本発明は、このような背景を鑑みてなされたもので、制約付きの2値2次最適化を効率良く行うことが可能な最適化方法、情報処理装置、及び、情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するための本発明の第1の態様として、下記の最適化方法が提供される。すなわち、最適化方法は、基底状態探索を実行する情報処理装置を利用した方法である。この最適化方法は、制約条件を有する2値2次モデルを、相互作用関係を有し、且つ、第1の変数群及び第2の変数群のi番目の変数ペア間に基底状態において同じような値にする結合が設定された完全2部グラフに変換する。この最適化方法は、それぞれの変数群において、制約条件を充足する状態更新が可能なグループに変数を分けて、各グループの状態更新を並列的に実行する。
【0011】
また、本発明の第2の態様として、下記の情報処理装置が提供される。すなわち、情報処理装置は、基底状態を探索する装置である。情報処理装置は、制約条件を有する完全2部グラフの変数群の変数を更新する演算装置を備える。演算装置は、相互作用係数メモリと、バイアス係数メモリと、第1変数メモリと、第2変数メモリと、信号SW供給線と、を備える。相互作用係数メモリは、第1の変数群及び第2の変数群の間に働く相互作用を示す相互作用係数をまとめた相互作用行列J、及び、第1の変数群及び第2の変数群のi番目の変数ペア間に基底状態において同じような値にする結合λを格納する。バイアス係数メモリは、変数に働くバイアスを示すバイアス係数hを格納する。第1変数メモリは、第1の変数群の変数を格納する。第2変数メモリは、第2の変数群の変数を格納する。信号SW供給線は、第1の変数群、または、第2の変数群を選択する選択信号SWを供給する。そして、演算装置は、選択信号SWが第d変数群(d=1,2)を選択した場合、対応する変数群を格納するメモリから読み出した変数の値、変数に対応する、相互作用行列Jにおける相互作用係数の値、結合λの値、バイアス係数hの値、を入力とし、制約条件でまとめた変数のグループごとに次状態を計算する。
【0012】
また、本発明の第3の態様として、下記の情報処理システムが提供される。すなわち、情報処理システムは、基底状態を探索するシステムである。情報処理システムは、ユーザ端末と、演算装置と、を備える。ユーザ端末は、ユーザによる情報の入力に用いる。演算装置は、制約条件を有する完全2部グラフの変数群の変数の更新を実行し、ユーザ端末とは異なるクラウド上に配置される。この演算装置は、相互作用係数メモリと、バイアス係数メモリと、第1変数メモリと、第2変数メモリと、信号SW供給線と、を備える。相互作用係数メモリは、第1の変数群及び第2の変数群の間に働く相互作用を示す相互作用係数をまとめた相互作用行列J、及び、第1の変数群及び第2の変数群のi番目の変数ペア間に基底状態において同じような値にする結合λを格納する。バイアス係数メモリは、変数に働くバイアスを示すバイアス係数hを格納する。第1変数メモリは、第1の変数群の変数を格納する。第2変数メモリは、第2の変数群の変数を格納する。信号SW供給線は、第1の変数群、または、第2の変数群を選択する選択信号SWを供給する。そして、演算装置は、選択信号SWが第d変数群(d=1,2)を選択した場合、対応する変数群を格納するメモリから読み出した変数の値、変数に対応する、相互作用行列Jにおける相互作用係数の値、結合λの値、バイアス係数hの値、を入力とし、制約条件でまとめた変数のグループごとに次状態を計算する。
【発明の効果】
【0013】
本発明によれば、制約付きの2値2次最適化問題を効率良く解くことができる。上記以外の課題、構成、及び効果は、以下の発明を実施するための形態の説明により明らかにされる。
【図面の簡単な説明】
【0014】
【
図1】BQMのエネルギーランドスケープの概念図である。
【
図2】BQMの変数間の相互作用関係を完全グラフとして表したグラフ図の一例であり、実線が変数間の相互作用関係を、破線が制約条件を満たすような状態更新が可能なグループを示す。
【
図3】BQMにおける変数の相互作用関係を完全2部グラフ構造として表したグラフ図の一例である。
【
図4】k-hоt制約を充足した状態更新が可能なグループの一例を示す図である。
【
図5】マトリクス型の制約を充足した状態更新が可能なグループの一例を示す図である。
【
図6】情報処理装置の構成の一例であって、該情報処理装置の概略的な構成を示すブロック図である。
【
図8】情報処理装置の構成の一例であって、該情報処理装置が備える主な機能を示す機能ブロック図である。
【
図9】基底状態探索処理の一例を説明するフローチャートである。
【
図10】演算装置の詳細な構成例を示すブロック図である。
【
図11】一つのユニットの回路構成例を示すブロック図である。
【発明を実施するための形態】
【0015】
以下、実施の形態を図面に基づいて詳細に説明する。尚、以下の説明において、同一の又は類似する構成に共通の符号を付して重複した説明を省略することがある。また同一あるいは同様の機能を有する要素が複数ある場合に同一の符号に異なる添字を付して説明することがある。また複数の要素を区別する必要がない場合は添字を省略して説明することがある。
【0016】
まずBQMについて説明する。BQMは、モデルを構成する複数のノード、ノード間の相互作用関係、及びノード毎のバイアスにより定義される。各ノードi(i=1~N)に対応する変数xiはx-i∈{0,1}であるとする。BQMの相互作用関係とバイアスに基づき、エネルギー関数H(x)(ハミルトニアンとも呼ばれる)が定義される。このエネルギー関数H(x)の一例を、下記に示す。
【0017】
【0018】
ここでJはN行N列の実対称行列、hはN次元のベクトルである。式1の右辺第1項が相互作用関係、右辺第2項がバイアスに基づくエネルギー関数を表現している。一般にBQMは無向グラフとして表現可能であり、相互作用項で変数ペア間に働く相互作用がグラフのエッジとして表現される。そのため、式1のJijは添え字の入れ替えに対して値を変えない。また、x2
i=xiなのでJijの対角要素はバイアス項で代替することで0にとれる。
【0019】
2値2次最適化問題は上記エネルギー関数を最小化する変数配列{xi}を求める最適化問題である。本実施形態では、相互作用モデルの基底状態の探索をマルコフ連鎖モンテカルロ法(Markov Chain Monte Carlo methods、以下MCMCと呼ぶ)により行う。
【0020】
図1はBQMのエネルギーランドスケープの概念図である。グラフの横軸は変数配列、縦軸は系の全エネルギーである。MCMCでは、現在の状態x={x
i}から他の状態への確率的な状態更新を繰り返す。このような確率的な状態更新を行う方法として、熱浴法(Heat bath method)やメトロポリス法(Metropolis method)がある。
【0021】
熱浴法では、更新候補nのエネルギーをEn、状態更新を制御するパラメタTとして、更新候補nへの状態更新を次の確率rで実行する。下記に、熱浴法で用いる式の一例を示す。
【0022】
【0023】
メトロポリス法では、更新候補の状態と現在の状態のエネルギー差をΔEとして、更新候補への状態更新を次の確率rで実行する。下記に、メトロポリス法で用いる式の一例を示す。
【0024】
【0025】
現在の状態x=(x
1,…,x
N)を更新する際、各変数x
iをi=1~Nまでひとつずつ更新する方法が一般的である。変数をひとつずつ変えていくことで、変数全体がとりうる状態について探索を行う。例えば、
図1の場合、状態Aのひとつの1を0に反転して状態Bあるいは状態Cに更新される。
【0026】
ここで、例えば、式2のTを徐々に大きな値から小さな値にすることで、状態更新を抑制しつつMCMCが実行され、エネルギーが最も低い状態に漸近的に収束する。これを利用して最小化問題の最適解を求める手法がシミュレーティッド・アニーリング(Simulated Annealing、以下SAと呼ぶ)である。現実の焼きなましと対応して、パラメタTは温度パラメタと呼ばれる。
【0027】
BQMに対してMCMCやSAを適用する場合、式2や式3のエネルギー関数に基づく確率に従って、変数の値が確率的に更新される。ここで相互作用関係や制約関係を持たない変数同士は、エネルギー関数において独立となり、式2や式3に基づく状態更新を同時に適用することが可能である。そのため、独立な変数を並列して更新することで、MCMCやSAの処理の高速化を図ることが可能である。
【0028】
しかし、非特許文献1にあるように、組合せ最適化問題の多くは、2値2次最適化問題に帰着できるものの、解が満たすべき制約条件も持つ。制約条件の影響で、例えば
図1の中では、Aのエネルギーが最も低いものの、満たすべき制約条件を考慮するとCが最適解となる(ここで、
図1において、黒点が制約条件を充足する状態、白点は制約条件を満たさない状態であるとする)。
【0029】
図2はそのような変数間に制約関係を持つBQMの一例を示した図(グラフ)である。
図2の例では、破線で示す制約関係を有する2つの変数群が示されている。また、一般の組合せ最適化問題では、変数間の相互作用関係は、一般には
図2に示すような密結合となる(
図2において実線で示すように、個々の変数がその他の多くの変数と結合する)。通常、このように制約関係や相互作用関係のために変数同士は独立ではなく、各変数の確率的更新を同時に実行できないのでMCMCやSAの処理の高速化を図ることが困難である。
【0030】
制約条件を扱う手段として、非特許文献1にあるように、BQMにおける制約関係はペナルティ関数法やラグランジュ関数を用いた方法(拡張ラグランジュ法等)も考えられる。これらの方法では、目的関数に制約条件に対応したペナルティ関数やラグランジュ関数を加えることで、制約条件を満たすような基底状態を構成する。しかし、これらの方法ではペナルティ関数等の影響を係数の大きさにより決めるが、大きくしすぎると元の目的関数の影響が小さくなって良質な解が見つかりづらくなり、小さくしすぎると制約関係が満たされなくなるため、係数の慎重な調整が必要であった。さらに、調整のために繰り返しSAを実行する必要があるため、実効的な処理時間が増大することも問題である。
【0031】
もし相互作用関係や制約関係を考慮した上で、MCMCの要求する理論的背景を満たしつつ複数のスピンを同時に更新することができれば、MCMCやSAの処理の高速化を図ることが可能になる。実際、特許文献1では、制約条件を持たないBQM(と等価なイジングモデル)に対して、相互作用関係を完全2部グラフ構造に変換して効率良く基底状態を求める方法が提案されている。
【0032】
このような背景を鑑みて、本実施形態では、制約付きの2値2次最適化問題に対して、ペナルティ関数やラグランジュ関数を用いずに、制約関係を満たしつつ状態更新を並列実行するSAにより効率良く最適解探索を実施する方法について説明する。
【0033】
本実施形態が対象とする制約付きの2値2次最適化問題は、以下の線形等式制約を満たす範囲で式1のBQMを最小化する問題とする。
【0034】
【数4】
ここで、式4において、AはM×N行列、bはM次元のベクトルである。式4に対応して、次の問題を定義する。
【0035】
【0036】
図3は式5のH(x,y)を表したグラフ図であり、式5の相互作用関係は完全2部グラフ構造である。すなわち、
図3は2値2次モデルが完全2部グラフに変換された構造である。ここで、破線で示された変数群x、yのグループは、
図2のグループと対応している。そして、2つの変数群をそれぞれ第1変数群x、第2変数群yと呼ぶ。第1変数群のx
iと第2変数群のy
jの間には大きさJ
ijの相互作用が働く。
【0037】
式5の右辺第3項は第1、2変数群のi番目(i=1~N)のペアの値を揃えるような相互作用として働く。結合λ>0を充分に大きい値とすると、式5の最適解はx=yの範囲に存在するようになるので、原問題である式4の最適解と一致する。実際、式4と式5の最適解が一致するための結合λの十分条件が示せる。そのひとつが、任意のμ>0に対して、下記の式6が成り立つことである。
【0038】
【数6】
ここで、式6において、λ
min(W)は実対称行列Wの最小固有値を示す。
【0039】
ここで、適当な結合λを設定して式5の解探索を行うことで式4の解探索が実行できる。式5は
図3に示した完全2部グラフ構造の相互作用関係を持つので、変数群の内部の異なる変数の間には相互作用関係が無い。従って、変数群x(y)の中で制約条件を充足する更新が可能なグループに分割して更新すれば、変数群x(y)について制約関係を満たしつつ一斉に更新することが可能である。すなわち、並列処理によりSAの処理効率を向上できる。そこで、本実施形態では、式5をSAに基づき解くことで、原問題である式4を解く。
【0040】
図4や
図5に表現した制約関係を充足する更新は、制約条件に依存する。そこで本実施形態では、組合せ最適化問題にしばしば現れるk-hоt制約とマトリクス型の制約に対して、そのような更新方法の例を示す。
【0041】
k-hоt制約は変数グループの中でk個の変数が1を、他の変数が0をとることを課す制約である。変数グループに含まれる変数数をm個としたとき、この制約条件は、式7で表現される。
【0042】
【0043】
この制約を満たす状態候補は
mC
k個存在する。例えば、
図4はk=1、m=6の場合の状態候補を表現したものである。一例として、このようなk-hоt制約に対して制約条件を充足した状態更新を行うには、各状態候補に対してエネルギーを計算し、式2の確率に基づいて状態候補を選択すればよい。
【0044】
マトリクス型の制約は変数xijの添え字i、jのそれぞれに対して1―hоt制約を課すものである。この制約条件は、式8で表現される。
【0045】
【0046】
図5は、一例として、i、j=1~6の場合を示している。この制約を満たしつつ状態更新を行うには、例えば
図5に示したグループ(2つの行のペア)に分割し(すなわち、
図5に示すように、マトリクス型の制約を充足した状態更新が可能なペアを構築し)、1の要素を持つ列を入れ替える更新が考えられる。ここで、この更新を実施するか否かが、一例として、式3に基づいて確率的に決定されればよい。
【0047】
ここではk-hоt制約とマトリクス型の制約に対して、制約充足した更新が可能な変数グループとその更新方法の例を示したものの、MCMCの要求を満たすものであれば他の更新方法を採用することも可能である。また、他の制約条件に関しても、同様に変数グループに分割することで同様な手順が適用可能である。
【0048】
続いて、上述した制約関係を満たしつつ状態更新を並列実行する情報処理装置の実施形態例を示す。
図6に示した情報処理装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、通信装置16、1つ以上の演算装置20、及びこれらの装置を通信可能に接続するシステムバス5を備える。情報処理装置10は、例えば、その一部又は全部がクラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されるものであってもよい。一例として、更新処理を実行する部分や、更新処理におけるデータの記憶に利用する部分がクラウド上に配置され、ユーザ端末側の入力装置などを介して入力される情報に基づいて、処理が実行されてもよい。また、情報処理装置10は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されるものであってもよい。
【0049】
プロセッサ11は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)を用いて構成されている。主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read Only Memory)、SRAM(Static Random Access Memory)、NVRAM(Non Volatile RAM)、マスクROM(Mask Read Only Memory)、PROM(Programmable ROM)等、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)等である。補助記憶装置13は、ハードディスクドライブ(Hard Disk Drive)、フラッシュメモリ(Flash Memory)、SSD(Solid State Drive)、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc))等である。補助記憶装置13に格納されているプログラムやデータは、随時、主記憶装置12に読み込まれる。
【0050】
入力装置14は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal Display))等や音声出力装置(スピーカ)、印字装置等である。また、表示に関して、例えば、グラフィックカードが設けられてもよい。通信装置16は、他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。
【0051】
演算装置20は、基底状態探索を実行する装置である。演算装置20は、例えば、GPU(Graphics Processing Unit)のように、情報処理装置10に装着する拡張カードの形態を取るものであってもよい。演算装置20は、例えば、CMOS(Complementary Metal Oxide Semiconductor)回路、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等のハードウェアによって構成される。演算装置20は、制御装置、記憶装置、システムバス5に接続するためのインタフェース等を含み、システムバス5を介してプロセッサ11との間でコマンドや情報の送受を行う。演算装置20は、例えば、通信線を介して他の演算装置20と通信可能に接続され、他の演算装置20と協調して動作するものであってもよい。演算装置20により実現される機能を、例えば、プロセッサ(CPU、GPU等)にプログラムを実行させることにより実現してもよい。
【0052】
図7は、演算装置20の動作原理を説明する図であり、演算装置20を構成する回路(以下、演算回路700と称する)のブロック図である。演算回路700は式5に基づくエネルギー関数の計算と式2や式3に基づく確率的状態更新処理を実現する。以下、同図とともに演算装置20の動作原理について説明する。
【0053】
同図に示すように、演算回路700は、相互作用係数メモリ711、バイアス係数メモリ712、第d変数メモリ713.d(d=1,2)、積和演算装置714、比較演算装置715を含む。
【0054】
相互作用係数メモリ711には、相互作用行列Jと結合λを表す情報が格納される。前述の通り、相互作用行列は実対称行列であるから、この対称性を用いてメモリ711の使用量を削減できる。
【0055】
バイアス係数メモリ712には、バイアス項を定義するベクトルhの情報が格納される。
【0056】
第d変数メモリ713.d(d=1,2)には、前述した完全2部グラフ構造の第d変数群の状態を示すN次元ベクトルの情報が格納される。
【0057】
演算回路700には、信号SW,SR,STが入力される。数学関数演算装置(
図7において、比較演算装置715)は信号SPを出力する。
【0058】
信号SWは、整数1、2を周期的に繰り返す信号であり、更新する変数メモリ713.d(d=1,2)を指定する。信号SWは、演算装置20の信号SW供給線を介して供給される。
【0059】
信号STは、式2や式3における温度パラメタTを入力する。信号STは、演算装置20の信号ST供給線を介して供給される。
【0060】
信号SRは、0~1の一様乱数を与える信号である。式2や式3における更新の判定に用いる。信号SRは、演算装置20の信号SR供給線を介して供給される。
【0061】
前述の通り、結合λは相互作用行列J、制約条件を規定する行列A、ベクトルbに基づき十分大きな値として設定される。式6に基づく数値評価は、演算装置20の外部、たとえばプロセッサ11で行ってもよい。また、演算装置20内で計算も可能である。例えば、べき乗法等で最大固有値を計算する場合、この計算は行列・ベクトル積を繰り返し実行するものであり、積和演算装置714を活用できる。
【0062】
積和演算装置714には、相互作用係数メモリ711、バイアス係数メモリ712、第d変数メモリ713.d(d=1,2)からのデータ、及び、信号SWが入力される。第d変数群の状態更新を実施する際のエネルギーを、式5の積和演算を行うことで計算して出力する。
【0063】
式2や式3ではエネルギーの値に基づいた確率的処理が必要であり、この部分を比較演算装置715が実行する。更新する変数群は信号SWが指定する。また、式2や式3に含まれる温度パラメタTは信号STから入力される。信号SRから入力される一様乱数の値に基づいて式2における次状態の選択あるいは式3における次状態の受諾・棄却を決定する。信号SPにはその出力値である変数の値が出力される。
【0064】
図3に示したような制約条件を充足した状態更新が実行可能なグループごとに、演算回路700の演算を独立に実行することができる。つまり、複数の演算回路700を並列実行することでMCMC及びSAの高速化が実現する。
【0065】
図8は情報処理装置10が備える主な機能(ソフトウェア構成)を示している。同図に示すように、情報処理装置10は、記憶部800、相互作用係数設定部(同図において、モデル係数設定部811)、結合強度計算部812、変数値初期化部813、温度パラメタ制御部814、相互作用演算実行部(同図において、エネルギー演算実行部815)、及び変数値読出部816を備える。これらの機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、演算装置20が備えるハードウェアにより実現される。尚、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(DataBase Management System)等の他の機能を備えていてもよい。
【0066】
上記機能のうち記憶部800は、BQM形式問題データ801、及び演算装置制御プログラム802を、主記憶装置12又は補助記憶装置13に記憶する。BQM形式問題データ801は、組合せ最適化問題を所定の記述形式で入力したデータである。すなわち、解くべき問題である式4の相互作用行列J、バイアス係数のベクトルh、制約条件を規定する行列Aとベクトルbのデータに関連する。BQM形式問題データ801は、例えば、ユーザがユーザインタフェース(入力装置、出力装置、通信装置等)を介して設定する。演算装置制御プログラム802は、エネルギー演算実行部815が演算装置20を制御する際に実行する、もしくはエネルギー演算実行部815を個々の演算装置20にロードさせ、演算装置20に処理を実行させるプログラムである。
【0067】
モデル係数設定部811は、BQM形式問題データ801に基づき、相互作用行列Jを相互作用係数メモリ711に、ベクトルhをバイアス係数メモリ712に設定する。
【0068】
結合強度計算部812は、式5における結合λの値を式6に基づきBQM形式問題データ801から計算し、相互作用係数メモリ711に設定する。
【0069】
変数値初期化部813は、演算装置20の変数メモリ713.d(d=1,2)に格納されている値を、制約条件を充足する適当な値にとって初期化する。
【0070】
温度パラメタ制御部814は、式2や式3における温度パラメタTを制御する。
【0071】
相互作用演算実行部(エネルギー演算実行部815)は、式2や式3に従ってエネルギー関数の値を用いてSAによる基底状態探索を行う。
【0072】
変数値読出部816は、エネルギー演算実行部815によりSAが実行されると、変数メモリ713.d(d=1,2)に格納されている値を読み出し、読み出した値を出力装置15や通信装置16に出力することで、基底状態探索を終了する。
【0073】
図9は、BQMの基底状態探索に際し情報処理装置10が行う処理(以下、基底状態探索処理S900と称する)を説明するフローチャートである。以下、同図とともに基底状態探索処理S900について説明する。尚、以下の記述で符号の前に付している「S」の文字は処理ステップの意味である。基底状態探索処理S900は、例えば、入力装置14を介してユーザからの指示等を受け付けることにより開始される。
【0074】
初めに、モデル係数設定部811が、記憶部800のBQM形式問題データ801から相互作用係数メモリ711とバイアス係数メモリ712に値を設定する(S911)。なお、ユーザが、ユーザインタフェース(例えば、入力装置14、出力装置15、通信装置16等により実現される)を介して、メモリの値を設定又は編集することもできる。
【0075】
続いて、結合強度計算部812が、記憶部800のBQM形式問題データ801に格納された相互作用行列J、制約条件を規定する行列Aとベクトルbの値に基づいて式6から結合λを設定し、相互作用係数メモリ711に格納する。前述の通り、この計算は演算装置20内またはプロセッサ11で実行してもよい(S912)。
【0076】
続いて、変数値初期化部813が、変数メモリ713.d(d=1,2)に格納されている値を初期化する(S913)。
【0077】
続いて、エネルギー演算実行部815が、式2や式3に従ってエネルギー関数の値に基づくSAを実行することにより変数メモリ713.d(d=1,2)の値を更新する(S914)。
【0078】
続いて、エネルギー演算実行部815(相互作用演算実行部)は、SA終了条件が成立したか否か(例えば、既定の回数だけ温度パラメタTを変えつつ状態更新を実行したか否か)を判定する(S915)。相互作用演算実行部815がSA終了条件が成立したと判定した場合(S915:YES)、処理はS916に進む。一方、相互作用演算実行部815が停止条件が成立しないと判定した場合(S915:NO)、処理はS914に戻る。
【0079】
続いて、変数値読出部817が、変数メモリ713.d(d=1,2)に格納されている値を読み出して基底状態探索の結果として記憶し(S916)、基底状態探索処理S900は終了する。
【0080】
図10は、演算装置20の詳細な構成例を示すブロック図であり、SRAMの技術を本実施例の演算回路700に適用した場合の回路構成例を示すブロック図である。この構成例では、複数のユニット1001がアレイユニット1002を構成している。このような構成は半導体製造技術を応用して製造可能である。
【0081】
図11は、1つのユニット1001の回路構成例である。1つのユニット1001には、1つの変数グループを記憶する変数メモリ1101と、後述する変数メモリ1101の値を更新するための構成が含まれる。すなわち、ユニット1001は
図3の破線で示したグループの個数だけ準備され、
図3の例の場合、ユニット1001が制約条件ごとに4つ準備される。
【0082】
図10の構成例を、一般化されている
図7の構成も参照しつつ説明する。相互作用係数メモリ711やバイアス係数メモリ712に格納されるデータは、モデル係数設定部811や結合強度計算部812から設定される。相互作用係数メモリ711には相互作用行列Jや結合λの値が、バイアス係数メモリ712にはベクトルhの値が格納されるが、回路規模を縮小するために全てのユニット1001で共通に用いられる。よって、相互作用係数メモリ711とバイアス係数メモリ712は、全てのユニット1001に係数J,h,λを供給するが(すなわち、全てのユニット1001に、相互作用行列Jのうちで処理に用いる相互作用係数の値、処理に用いるバイアスの値、処理に用いる結合λの値を供給するが)、
図10ではそのための信号線は省略している。なお、
図10は一例であり、原理的には相互作用係数メモリ711とバイアス係数メモリ712を、各ユニット1001が各々備えてもよい。
【0083】
変数群選択ドライバ1003は、
図3で説明したように、第1,2変数群から1つの群を選び、更新を許可する信号SWを各ユニット1001に入力する。これにより、特定の1つの変数群のみが更新される。
【0084】
SRAMインタフェース1004は、後述する構成であり、SRAMの回路構成を応用して作成されたユニット1001の変数を格納する変数メモリ1101に対して書き込み及び読み出しを行う。演算回路700での処理終了後に読み出された変数の値は、変数値読出部816に送られる。変数値読出部816は、読み出した値を適宜記憶及び出力することで基底状態探索の結果を出力する。
【0085】
コントローラ1005は、エネルギー演算実行部815の指示により、演算回路700の初期化や処理の終了報告を行う。
【0086】
図11は、1つのユニット1001の回路構成例を示す図である。1つのユニットには、2つの変数群をさらに分割した変数グループのいずれか1つを記憶する変数メモリ1101が含まれる。ここで、変数グループは、
図4や
図5のように制約を充足しつつ更新がすることが可能な変数のまとまりである。この例(
図3の例)では、1つのユニット1001の1つの変数メモリ1101は、第1変数メモリとして、第1変数群のうちで共通する制約条件を有する1つの変数グループ、または、第2変数メモリとして、第2変数群のうちで共通する制約条件を有する1つの変数グループを格納する。
【0087】
積和演算装置714には、現在の変数の値が入力される。これらの変数は、他のユニット1001の変数メモリ1101からSRAMインタフェース1004が読み出して生成する。また、相互作用係数メモリ711とバイアス係数メモリ712に格納されている値が入力される。
【0088】
比較演算装置715には、積和演算装置714の出力、信号ST、及び信号SRが入力される。そして、式2や式3に基づいて変数グループの次状態を出力し、変数メモリ1101に格納する。
【0089】
以上、詳細に説明したように、本実施形態の情報処理装置10によれば、制約条件を充足する状態更新が可能なグループに変数を分けて、各グループの更新を並列化することで、制約付きのBQMの基底状態探索を効率よく行うことができる。また、上記の説明の通り、SAに基づく基底状態探索を効率よく実行することができる。尚、情報処理装置10(演算装置20を含む)は、シンプルな構成であるので安価かつ容易に製造することができる。情報処理装置10は様々な分野で用いることができ、その一例として、経済性や省エネルギー性などの観点で設定される目的関数の最適解を求めることで、経済性や省エネルギー性などに貢献することも可能である。
【0090】
以上、一実施形態について詳述したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0091】
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0092】
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0093】
また以上に説明した情報処理装置10の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、情報処理装置10が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
【0094】
また前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【0095】
上記で説明したように、情報処理装置10において演算機能を有する部分がクラウド上に配置されてもよく、入力装置などのユーザインタフェース機能を有するユーザ端末と、クラウド上に配置される演算装置20と、を備える情報処理システムが提供されてもよい。この情報処理システムにおいて、演算装置20は、適宜のインタフェースを介して、ユーザ端末などの外部と通信可能に構成される。そして、ユーザは、ユーザ端末を介して、BQM形式問題データ801(すなわち、相互作用係数やバイアスなどに関する値、制約条件など)を設定又は編集することができる。また、演算装置20の処理において用いるデータや処理結果は、演算装置20が記憶してもよいし、演算装置20の外部で記憶されてもよい。
【産業上の利用可能性】
【0096】
最適化方法、情報処理装置、及び、情報処理システムに利用することが可能である。
【符号の説明】
【0097】
5 システムバス、 10 情報処理装置、11 プロセッサ、12 主記憶装置、13 補助記憶装置、14 入力装置、15 出力装置、16 通信装置、12 主記憶装置、20 演算装置、711 相互作用係数メモリ、712 バイアス係数メモリ、713.d(d=1,D) 第d変数メモリ、714 積和演算装置、715 比較演算装置、800 記憶部、801 BQM形式問題データ、802 演算装置制御プログラム、811 モデル係数設定部、812 結合強度計算部、813 変数値初期化部、814 温度パラメタ制御部、815 エネルギー演算実行部、816 変数値読出部、1001 ユニット、1002 ユニットアレイ、1003 変数選択ドライバ、1004 SRAMインタフェース、1005 コントローラ、1101 変数メモリ