JP2024049148A - 情報処理方法、及び情報処理装置 - Google Patents

情報処理方法、及び情報処理装置 Download PDF

Info

Publication number
JP2024049148A
JP2024049148A JP2022155436A JP2022155436A JP2024049148A JP 2024049148 A JP2024049148 A JP 2024049148A JP 2022155436 A JP2022155436 A JP 2022155436A JP 2022155436 A JP2022155436 A JP 2022155436A JP 2024049148 A JP2024049148 A JP 2024049148A
Authority
JP
Japan
Prior art keywords
variable
information processing
interaction
matrix
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022155436A
Other languages
English (en)
Inventor
悠介 杉田
Yusuke Sugita
拓哉 奥山
Takuya Okuyama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022155436A priority Critical patent/JP2024049148A/ja
Publication of JP2024049148A publication Critical patent/JP2024049148A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】混合2値2次計画問題の最適解探索を高速に行う。【解決手段】混合2値2次計画問題の最適解探索を行う情報処理方法では、情報処理装置が、相互作用行列を複数のブロック行列に分割すると共に、複数の変数群を該複数のブロック行列に対応する独立な複数の変数ブロックに分割する。また情報処理装置が、複数の変数ブロックに応じて前記バイアスベクトルを複数のバイアスベクトルに分割する。また情報処理装置が、複数のブロック行列のうちの相互作用行列の対角に並ぶ複数の正方行列に基づいて、複数の変数ブロックのそれぞれに対応する複数の結合強度を算出する。また情報処理装置が、ブロック行列と結合強度とバイアスベクトルとに基づいて複数の変数ブロックの各変数を変数ブロック毎に順次更新して最適解探索を実行する。【選択図】図10

Description

本発明は、情報処理方法、及び情報処理装置に関する。
特許文献1には、2次のエネルギー関数をもつイジングモデルの相互作用関係を完全2部グラフ構造に変換して、シミュレーティッド・アニーリングに基づく基底状態探索を効率良く行う方法に関して記載されている。特許文献2には、イジングモデルの基底状態探索問題を含んだ混合2値2次計画問題に対して、相互作用関係を完全2部グラフ構造に変換して、シミュレーティッド・アニーリングに基づく基底状態探索を効率良く行う方法に関して記載されている。
国際公開第2019-216277号 国際公開第2021-220445号
物理現象や社会現象の多くは相互作用モデルで表現可能である。相互作用モデルは、モデルを構成する複数のノードと、ノード間の相互作用、さらに必要であればノード毎に作用する係数で定義される。物理学や社会科学の分野においては、イジングモデルを始めとする種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。
この相互作用モデルに関係づけられた指標を最小化または最大化するノード状態を求めることが社会課題の解決において重要である。例えば、ソーシャルネットワークのクリークを検知する問題や、金融分野のポートフォリオ最適化問題が挙げられる。これらは、オペレーションズ・リサーチの分野では、無制約2値2次計画問題やそれを含んだ混合2値2次計画問題(Mixed Binary Quadratic Optimization:MBQP)に大別される。
近年、混合2値2次計画問題は、並列処理計算機の発展を活用することで最適解探索を高速に行うことができる並列アルゴリズムが提案されてきている。
本発明は、上述の背景を鑑みてなされたもので、混合2値2次計画問題の最適解探索を高速に行いうるようにすることを目的とする。
本発明の一側面では、記憶部と協働して処理を実行する処理部を有する情報処理装置が、相互作用モデルの複数の変数群の各変数間の相互作用関係を表す相互作用行列に基づく2次項と該変数に対するバイアスを表すバイアスベクトルに基づく1次項とからなる目的関数を持つ混合2値2次計画問題の最適解探索を行う情報処理方法であって、前記処理部が、記相互作用行列を複数のブロック行列に分割すると共に、前記複数の変数群を該複数のブロック行列に対応する独立な複数の変数ブロックに分割し、前記複数の変数ブロックに応じて前記バイアスベクトルを複数のバイアスベクトルに分割し、前記複数のブロック行列のうちの前記相互作用行列の対角に並ぶ複数の正方行列に基づいて、前記複数の変数ブロックのそれぞれに対応する複数の結合強度を算出し、前記ブロック行列と前記結合強度と前記バイアスベクトルとに基づいて前記複数の変数ブロックの各変数を該変数ブロック毎に順次更新して前記最適解探索を実行する、ことを特徴とする。
本願の一側面によれば、混合2値2次計画問題の最適解探索を高速に行うことができる。
相互作用モデルのエネルギーランドスケープの概念図である。 相互作用モデルの変数間の相互作用関係を表すグラフ図である。 代替モデルの変数の定義域を示す図である。 変数を変化させた際の代替モデルのエネルギー値の変化を示す模式図である(変数群の間の結合が大きい場合)。 変数を変化させた際の代替モデルのエネルギー値の変化を示す模式図である(変数群の間の結合が小さい場合)。 相互作用モデルの変数ブロックの分割数が2の場合の代替モデルを示す図である。 相互作用モデルの変数ブロックの分割数が3の場合の代替モデルを示す図である。 情報処理装置の概略的な構成を示すブロック図である。 演算装置を構成する演算回路のブロック図である。 情報処理装置が備える主な機能を示す機能ブロック図である。 基底状態探索処理を説明するフローチャートである。 演算装置の詳細な構成例を示すブロック図である。 一つのユニットの回路構成例を示すブロック図である。
以下、図面を参照して本願の開示に係る実施形態を説明する。実施形態は、図面も含めて本願を説明するための例示である。実施形態では、説明の明確化のため、適宜、省略及び簡略化がされている。特に限定しない限り、実施形態の構成要素は単数でも複数でもよい。また、ある実施形態と他の実施形態を組み合わせた形態も、本願に係る実施形態に含まれる。
同一又は類似の構成要素には、同一の符号を付与し、既出に対する後出の実施形態での説明を省略する、又は差分を中心とした説明のみを行う場合がある。また、同一又は類似の構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。各構成要素の数は、特に断りがない限り単数でも複数でもよい。
実施形態において、プログラムを実行して行う処理について説明する場合がある。コンピュータは、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))により、主記憶装置のメモリや補助記憶装置のストレージ等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。プロセッサがプログラムを実行することで、処理を行う機能部が実現される。
同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であればよく、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読取り可能な非一時的な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源(ストレージ)を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施形態において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
[実施形態]
(相互作用モデルについて)
先ず混合2値2次計画問題の相互作用モデルについて説明する。混合2値2次計画問題の相互作用モデルは、モデルを構成する複数のノード、ノード間の相互作用関係、及びノード毎のバイアスにより定義される。ここでは、各ノードi(i=1~N)に対応する変数sは連続変数s∈[-1,1]又は離散変数s∈{-1,1}であるとする。相互作用モデルの相互作用関係とバイアスに基づき、エネルギー関数H(s)(一般にハミルトニアンと呼ばれる)が定義される。特に、相互作用関係が2つのノード間で定義される場合は、エネルギー関数は式(1)の2次項と1次項からなる2次式の目的関数となる。
Figure 2024049148000002
式(1)の第1項は相互作用関係を表現し、第2項はバイアスに基づくエネルギー関数を表現している。
一般に相互作用モデルは、無向グラフとして表現され、各相互作用項は無向グラフに含まれる変数の組で指定される。そのため、式(1)の{Jij}は添え字の入れ替えに対して値を変えない実対称行列となる。
上記相互作用モデルは、イジングモデルを内包した概念である。相互作用モデルにおいて全変数を離散変数s∈{-1,1}に限定した場合が、イジングモデルに帰着する。イジングモデルは、例えば、統計力学で磁性体を記述する格子モデルとして用いられており、+1/-1がスピンの上/下向きにそれぞれ対応する。
相互作用モデルの基底状態探索は、上記エネルギー関数を最小化する変数配列{s}を求める最適化問題である。本実施形態では、相互作用モデルの基底状態の探索をマルコフ連鎖モンテカルロ法(以降、MCMC(Markov Chain Monte Carlo methods)と呼ぶ)により行う。
(相互作用モデルのエネルギーランドスケープ)
図1は、相互作用モデルのエネルギーランドスケープの概念図である。グラフの横軸は変数配列、縦軸は系の全エネルギーである。確率的な遷移では、現在の状態s={s}から他の状態への確率的な遷移を繰り返す。確率的な遷移を生成する方法として熱浴法がある。特に、i番目の変数の値がs以下の値となる累積分布関数F(s)に対して逆関数F-1が求められる場合、一様乱数r∈[0,1]として、熱浴法による遷移先の状態sは、式(2)で与えられる。
Figure 2024049148000003
遷移先を生成する方法としては、現在の状態sの各変数sをi=1~Nまでひとつずつ更新する方法が一般的である。変数をひとつずつ変えていくことで、変数全体がとりうる状態について探索を行う。例えば、図1の場合、状態Aの-1を1に反転して状態Bとなり、更にひとつの1を-1に更新して状態Cとなる。
上記の状態遷移を制御するパラメタTを導入して、徐々に遷移を抑制しつつMCMCを実行するとき、エネルギーが最も低い状態(基底状態)に漸近的に収束する。これを利用して最小化問題の最適解を求める手法がシミュレーティッド・アニーリング(以下、SA(Simulated Annealing)と呼ぶ)である。現実の焼きなましと対応して、パラメタTを温度パラメタと呼ぶ。
相互作用モデルに対してMCMCやSAを適用する場合、式(2)などに基づき変数の値を確率的に更新する。ここで相互作用関係を持たない変数同士は、エネルギー関数式ひいては累積分布関数において独立となり、式(2)にもとづく状態遷移を同時に適用することが可能である。そのため、独立な変数を並列して更新することで、MCMCやSAの処理の高速化を図ることが可能である。
(相互作用モデル相互作用関係を表すグラフ図)
図2は、相互作用モデルの変数間の相互作用関係を表すグラフ図である。変数数N=6とした。図2における上方図は、相互作用モデルの変数間の相互作用関係を、全変数間に相互作用関係がある完全グラフ(全結合グラフ)で表している。組合せ最適化問題を相互作用モデルの基底状態探索問題として表現すると、変数間の相互作用関係はしばしば個々の変数がその他の多くの変数と結合するため、図2の上方図のように互いに独立でなく、各変数の確率的更新を同時に実行できないのでMCMCやSAの処理の高速化を図ることが困難である。
逆に言えば、全結合の相互作用関係を持つ相互作用モデルに対して、MCMCの要求する理論的背景を満たしつつ複数のスピンを同時に更新することができれば、MCMCやSAの処理の高速化を図ることが可能になる。
実際、特許文献1、2では、全結合の相互作用関係を持つ相互作用モデルの基底状態探索問題を、図2における下方図のような完全2部グラフ構造を持つ相互作用モデル(以下、代替モデルとよぶ)の基底状態探索問題に問題変換して、効率良く基底状態を求める方法が提案されている。第1変数群と第2変数群の値が一致している場合には、原問題の相互作用モデルとエネルギーが同じ値となるように変数群の間に結合を設定することで、代替モデルの基底状態から原問題の相互作用モデルの基底状態が得られる。
しかし、このような問題変換で導入される結合の大きさは基底状態探索の難しさに影響を及ぼす。変数群の間の結合が大きな場合、変数群の間で対応する変数ペアの値が同じ値で固定されてしまい、確率的な更新が実施されづらくなり、解空間の探索が十分に実施されなくなる。
このような背景を鑑みて、本実施形態では、代替モデルにおける変数において一定数が互いに独立となりつつ、上記結合の大きさを抑制する方法を説明する。また、そのような方法における代替モデルを用いて、原問題の相互作用モデルの基底状態探索問題を解く方法についても説明する。
先ず、相互作用モデルである式(1)に含まれる離散変数s∈{-1,1}に注目する。原相互作用モデルのエネルギー関数H(s)に対して、全ての変数sを連続変数s’∈[-1,1]に置き換えた相互作用モデルのエネルギー関数をH(s’)として、H(s)とH(s’)の基底状態をそれぞれsとs’とすると、式(3)が示せる。
Figure 2024049148000004
符号関数sign(x)は、x≧0ならば+1、x<0ならば-1を返す関数である。式(3)により、H(s’)の基底状態を探索することでH(s)の基底状態が求められる。そこで以下では、相互作用行列に含まれる離散変数は全て連続変数へと緩和して、全変数の定義域をs∈[-1,1]として扱う。
図3の上方図に示したような定義域をもつ補助変数ベクトルv∈[-1,1]から構成された項を式(1)に加えた、式(4)に示すようなモデルを考える。
Figure 2024049148000005
ここでIは、N次元の単位行列である。ここで結合強度wの大きさが、相互作用行列Jの最小固有値λmin(J)に対して、min{0,-λmin(J)/2}よりも大きければJ+2wIは正定値行列となるので、H(s,v)の基底状態においてv=0となる。
式(4)のs,vに対してs=(x+y)/2,v=(x-y)/2から定義されたN次元の変数ベクトルx={x,x,…,x},y={y,y,…,y}を導入する。このとき、各xi,yi(i=1,2,…,N)の定義域は図3の下方図のように表される。また、式(4)をx,yで表現し直すと式(5)のようになる。
Figure 2024049148000006
式(5)の相互作用関係を無向グラフとして表すと、図2の下方図のようになる。すなわち、式(5)で表現されたエネルギー関数において、変数群x,yの各x,yは互いに独立となる。よって、MCMCによる更新を独立に行うことができるので、並列処理により演算が高速化できる。また、その最適解はv=0、すなわちx=yの超平面上に存在する。
(代替モデルのエネルギー値の変化)
図4A及び図4Bは、変数を変化させた際の代替モデルのエネルギー値の変化を示す模式図である。ここでx,y以外の変数を固定して、それら2つの変数のみを動かすことを考える。図4A及び図4Bは、それらの2つの変数を動かした際のエネルギー変化の等高線で表したエネルギー曲面を示す。色が濃い領域ほど、エネルギー値の変化が小さいことを示している。図4Aに示すように変数群の間の結合が小さいほどエネルギー局面の勾配が平坦となり、図4Bに示すように変数群の間の結合が大きいほどエネルギー局面の勾配が急峻となる。
前述のようにxやyをMCMCに従って更新する場合、図4A及び図4Bの中で水平もしくは垂直な方向に状態を確率的に更新していくことになる。このとき、エネルギー曲面の勾配が大きいほど、解空間を動き回ることが難しくなる。すなわち、式(5)における結合強度wの値はなるべく小さくとることが最適解探索の性能向上の観点からは望ましい。
そこで、原問題の相互作用モデルの変数sを2つの集合s,sに分割する。このとき相互作用行列Jもブロック行列に分割することで、式(5)に示した変数変換は、式(6)のようになる。
Figure 2024049148000007
(相互作用モデルの変数ブロックの分割数と代替モデル)
図5は、相互作用モデルの変数ブロックの分割数が2の場合の代替モデルを示す図である。このように、原問題の相互作用モデルで変数群を変数ブロックに分割した後に変数変換を行った処理を模式的に表したのが図5となる。
ここで結合強度w,wは、式(6)の第1式第2項の相互作用行列が正定値となるように、式(6)に現れる複数の正方行列JAA及びJBBの固有値の数値評価に基づいて決定する。
例えば、wはmin{0,-λmin(JAA)/2}よりも大きく、wはmin{0,-λmin(JBB)/2}よりもそれぞれ大きくとれば、式(6)の第1式第2項の相互作用行列が正定値となり、充分である。すなわち、原問題の相互作用行列Jを分割したブロック行列のうち対角に現れる正方行列JAAに対応して変数群を分割した変数ブロックの変数の結合強度wは、正方行列JAAの固有値の最小値に二分の一を乗じて符号を反転した値と0とのうちの小さい方よりも大である。同様に、相互作用行列Jを分割したブロック行列のうち対角に現れる正方行列JBBに対応して変数群を分割した変数ブロックの変数の結合強度wは、正方行列JBBの固有値の最小値に二分の一を乗じて符号を反転した値と0とのうちの小さい方よりも大である。
コーシーの入れ子定理に基づくと、実対称行列である相互作用行列Jよりもそのブロック行列であるJAA,JBBの方が最小固有値の値は大きくなるため、w,wはwより小さな値に設定できることになる。すなわち、図4A及び図4Bで表したようなエネルギー曲面がより平坦となり、解探索がよりしやすいモデルとなっている。
さらにwとwを小さな値にとるには、JAA及びJBBの最小固有値の絶対値が所定値以下の小さい値となるように集合sとsの取り方を決めればよい。
そのための指針のひとつは、JAA及びJBBの非対角成分のノルムを最小化する、すなわち、JABの成分のノルムを最大化するように集合sとsの取り方を決めることである。この問題は、相互作用行列Jの各要素をその絶対値に置き換えた隣接行列J’を対象とする最大カット問題に対応する。この問題の近似解を得ることは、半正定値計画法やより計算コストの低い近似解法で可能なので、それらを用いて集合sとsの取り方を決めることもできる。
また、その他の指針として、JAA及びJBBの成分で0となるものの数を最大化する、すなわち、JABの成分で非ゼロとなるものの数を最大化することも考えられる。相互作用行列Jで成分が0の箇所に1、非ゼロの箇所に0を格納した隣接行列をJ´´として、この隣接行列J´´のカット数が最小となるように集合sとsのクラスタリングを行うことで、複数の変数群を複数の変数ブロックに分割することもできる。
以上の議論は原問題の相互作用モデルの変数ブロックの分割数を増やしても適用することが可能である。図6は、相互作用モデルの変数ブロックの分割数が3の場合の代替モデルを示す図である。さらには4以上の分割数をとることも可能である。
(熱浴法に基づく状態遷移)
次に式(6)のエネルギー関数に対して熱浴法に基づいて状態を遷移させる方法を説明する。温度のパラメタをTとして、式(6)の右辺の相互作用モデルの状態{x,y}は、ボルツマン分布に基づく受理確率p(x,y)で出現するものとする。
Figure 2024049148000008
式(7)におけるZは、分配関数とよばれるボルツマン分布の規格化因子である。一様乱数rを準備して式(7)に基づいて逆関数法を適用することで、x,yを確率的に更新することが可能である。
一例として、与えられたy,xのもとでxを更新する方法を示す。なお、与えられたy,xのもとでxを更新する場合は、式(8)~式(10)を参照する以下の説明において、x→x、x→x、w→w、y→y、y→y、h→hとすればよい。
また、与えられたx、yのもとでyを更新する場合には、式(8)~式(10)を参照する以下の説明において、y→x、x→y、x→y、y→x、y→xとすればよい。また、与えられたx、yのもとでyを更新する場合には、式(8)~式(10)を参照する以下の説明において、y→x、x→y、x→y、w→w、y→x、y→x、h→hとすればよい。
の従う確率密度関数(受理確率)は、式(6)の右辺と式(7)から、式(8)のように表せる。この受理確率は、熱浴法に基づくものであり、複数の変数群x,y間の条件付き確率式のもとで、一方の変数群xを変数ブロックx,xに分けてMCMCを実行することで更新するためものである。
Figure 2024049148000009
式(8)における“h”は、相互作用モデルの変数sを2つの変数ブロックs,sに分割した場合の変数ブロックsのバイアスベクトルである。“h”は、相互作用モデルの変数sを2つの変数ブロックs,sに分割した場合の変数ブロックsのバイアスベクトルである。バイアス係数ベクトルhは、相互作用モデルの変数sの分割と同様に、複数のバイアス係数ベクトルに分割される。
そこでxに含まれる変数x∈[-1,1]の従う累積分布関数は、式(8)の右辺をガウス分布の確率密度関数と見て適切にパラメタσ,μを定めることで、式(9)のように表せる。式(9)のerf(x)は、誤差関数である。
Figure 2024049148000010
式(9)に逆関数法を適用することで、xは、式(10)に従って状態を順次更新すれば、最適化探索の最適解が求まる。式(10)のerfinv(x)は、逆誤差関数である。
Figure 2024049148000011
すなわち、複数の変数ブロックの各変数が取る2値{-1,1}のうちの第1の値(例えば“-1”)における条件付き確率に基づく誤差関数の値と、第2の値(例えば“1”)における誤差関数の値と、の間の乱数rに基づくランダム値の逆誤差に基づいて、複数の変数ブロックの各変数を順次更新することができる。
(情報処理装置10の構成)
続いて、上記の基底状態探索を実施する、情報処理装置の実施形態例を示す。図7は、情報処理装置10の概略的な構成を示すブロック図である。
図7に示した情報処理装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、通信装置16、1つ以上の演算装置20、及びこれらの装置を通信可能に接続するシステムバス5を備える。情報処理装置10は、例えば、その一部又は全部がクラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されてもよい。また情報処理装置10は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されもよい。
プロセッサ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に読み込まれる。
入力装置14は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal Display)、グラフィックカード等)や音声出力装置(スピーカ)、印字装置等である。通信装置16は、他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。
演算装置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等)にプログラムを実行させることにより実現してもよい。
(演算装置20を構成する演算回路800の構成)
図8は、演算装置20を構成する演算回路800のブロック図である。図8は、演算装置20の動作原理を説明する図である。演算回路800は、式(10)に相当する機能を実現する。以下、図8とともに演算装置20の動作原理について説明する。
図8に示すように、演算回路800は、相互作用係数メモリ811、バイアス係数メモリ812、第1変数Aメモリブロック813A、第1変数Bメモリブロック813B、第2変数Aメモリブロック814A、第2変数Bメモリブロック814B、積和演算装置815、及び数学関数演算装置816を含む。
なお、演算回路800は、相互作用モデルの変数ブロックの分割数が2(Aブロック及びBブロック)の場合を例示している。一般的に、相互作用モデルの変数ブロックの分割数がn(nは2以上の自然数)での場合に各変数ブロックをAと表記すると、演算回路800は、第1変数Aメモリブロック813A(j=1,2,…,n)、第2変数Aメモリブロック814A(j=1,2,…,n)を有することになる。
相互作用係数メモリ811には、相互作用行列Jを表す情報が格納される。前述の通り、相互作用行列は実対称行列であるから、この対称性を用いて相互作用係数メモリ811の使用量を削減できる。
バイアス係数メモリ812には、バイアス係数ベクトルhを表す情報が格納される。
第1変数Aメモリブロック813A、及び第1変数Bメモリブロック813Bには、前述した代替モデルの第1変数群xの状態を示すN次元ベクトルの情報が格納される。第2変数Aメモリブロック814A、及び第2変数Bメモリブロック814Bには、前述した代替モデルの第2変数群yの状態を示すN次元ベクトルの情報が格納される。
演算回路800には、信号SW,SR,STが入力される。数学関数演算装置816は信号SPを出力する。
信号SWは、整数1、2を周期的に繰り返す信号であり、第1変数メモリ(第1変数Aメモリブロック813A、第1変数Bメモリブロック813B)、第2変数メモリ(第2変数Aメモリブロック814A、第2変数Bメモリブロック814B)を指定する。
信号SRは、各要素が互いに独立な乱数であるベクトルを表す信号である。確率的更新で用いる乱数を入力する。
信号STは、SAにおける温度パラメタTを入力する。
前述の通り、結合強度w,wは分割された相互作用行列の固有値情報に基づいて、十分大きな値となるように設定される。式(10)の数値評価は、演算装置20の外部、例えばプロセッサ11で行ってもよい。また、演算装置20内で計算も可能である。例えば、べき乗法等で最大固有値を計算する場合、これは行列・ベクトル積を繰り返し実行するものであり、積和演算装置815を活用できる。
積和演算装置815には、相互作用係数メモリ811、バイアス係数メモリ812、第1変数Aメモリブロック813A、第1変数Bメモリブロック813B、第2変数Aメモリブロック814A、及び第2変数Bメモリブロック814Bの各メモリが記憶する情報と、信号SWが入力される。積和演算装置815は、信号SWにより指定された第1変数群及び第2変数群の何れかについて、相互作用行列Jとベクトルの積和演算を実行し、出力する。
式(10)は、積和演算の出力や一様乱数rなどに対する数学関数の演算を含んでいる。数学関数演算装置816は、この数学関数の演算を実行する。数学関数演算装置816は、信号SWによる指定に応じて、第1変数群及び第2変数群の何れに対応した演算を実行する。
また、一様乱数rや温度パラメタTは、それぞれ信号SRと信号STから入力される。信号SPにはその出力値である、MCMCに従い更新された変数の値が出力される。
各変数群のXブロック(X=A,B)の各変数に対して、式(10)の演算は独立に実行可能である。つまり、複数の演算回路800を並列実行することでMCMCの高速化が実現する。
(情報処理装置10の構成)
図9は、情報処理装置10が備える主な機能を示す機能ブロック図である。図9に情報処理装置10が備える主な機能(ソフトウェア構成)を示している。図9に示すように、情報処理装置10は、記憶部900、モデル係数設定部911、結合強度計算部912、変数値初期化部913、温度パラメタ制御部914、エネルギー演算実行部915、及び変数値読出部916を備える。これらの機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、演算装置20が備えるハードウェアにより実現される。
尚、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(DataBase Management System)等の他の機能を備えていてもよい。
記憶部900は、MBQP形式問題データ901、及び演算装置制御プログラム902を、主記憶装置12又は補助記憶装置13に記憶する。MBQP形式問題データ901は、組合せ最適化問題を所定の記述形式で入力したデータである。MBQP形式問題データ901は、例えば、ユーザがユーザインタフェース(入力装置、出力装置、通信装置等)を介して設定する。
演算装置制御プログラム902は、エネルギー演算実行部915が演算装置20を制御する際に実行する、もしくはエネルギー演算実行部915が個々の演算装置20にロードして演算装置20に実行させるプログラムである。
モデル係数設定部911は、MBQP形式問題データ901に基づいて、相互作用係数メモリ811とバイアス係数メモリ812を設定する。
結合強度計算部912は、相互作用係数メモリ811に基づき、結合強度w,wの値を相互作用行列のブロック行列の固有値から設定する。
変数値初期化部913は、演算装置20の変数メモリに格納されている値を初期化する。例えば、-1~+1の一様乱数で設定する。
温度パラメタ制御部914は、SAにおける温度パラメタTを制御する。
エネルギー演算実行部915は、相互作用モデルに対してSAに従った基底状態探索(以下、エネルギー演算と称する)を行う。エネルギー演算は、相互作用演算ともいう。
変数値読出部916は、エネルギー演算実行部915によりSAが実行されると、変数メモリに格納されている値を読み出し、読み出した値を出力装置15や通信装置16に出力することで、基底状態探索を終了する。
(基底状態探索処理)
図10は、基底状態探索処理を説明するフローチャートである。図10は、相互作用モデルの基底状態探索に際し情報処理装置10が行う処理(以下、基底状態探索処理S1000と称する)を説明するフローチャートである。
以下、図10とともに基底状態探索処理S1000について説明する。尚、以下において、符号の前に付している「S」の文字は処理ステップの意味である。基底状態探索処理S1000は、例えば、入力装置14を介してユーザからの指示等を受け付けることにより開始される。
初めに、モデル係数設定部911が、相互作用係数メモリ811、バイアス係数メモリ812に値を設定する(S1011)。メモリの値は、ユーザインタフェース(例えば、入力装置14、出力装置15、通信装置16等により実現される)を介してユーザが設定又は編集することもできる。
続いて、結合強度計算部912が、相互作用係数メモリ811に格納された相互作用行列Jの情報に基づいて、このJをブロックに分割する。前述の通り、この分割の仕方は最大カット問題の求解やクラスタリングの処理などの数値計算で定められるので、演算装置20内やプロセッサ11で実行すればよい(S1012)。
続いて、結合強度計算部912が、相互作用係数メモリ811に格納された相互作用行列JとS1012で指定されたJの分割の仕方に基づいて結合強度w,wを設定し、相互作用係数メモリ811に格納する。前述の通り、この計算は演算装置20内またはプロセッサ11で実行してもよい(S1013)。
続いて、変数値初期化部913が、変数メモリに格納されている値を初期化する(S1014)。
続いて、エネルギー演算実行部915の結果に基づいて変数メモリの値を更新する(S1015)。
続いて、エネルギー演算実行部915は、SA終了条件が成立したか否か(例えば、既定の回数だけ温度パラメタTを変えながら状態更新を実行したか否か)を判定する(S1016)。エネルギー演算実行部915がSA終了条件が成立したと判定した場合(S1016:YES)、処理はS1017に進む。一方、エネルギー演算実行部915が停止条件が成立しないと判定した場合(S1016:NO)、処理はS1015に戻る。
続いて、変数値読出部916が、変数メモリに格納されている値を読み出して基底状態探索の結果として記憶し(S1017)、基底状態探索処理S1000は終了する。
(演算装置20の詳細構成)
図11は、演算装置20の詳細な構成例を示すブロック図である。図11は、演算装置20の詳細な構成例を示すブロック図であり、SRAMの技術を本実施形態の演算回路800に適用した場合の回路構成例を示すブロック図である。複数のユニット1101がアレイユニット1102を構成している。このような構成は半導体製造技術を応用して製造可能である。
図11の構成例を、一般化されている図7の情報処理装置10の構成も参照しつつ説明する。相互作用係数メモリ811、バイアス係数メモリ812に格納されるデータは、モデル係数設定部911から設定される。相互作用係数メモリ811には相互作用行列Jが、バイアス係数メモリ812にはバイアス係数ベクトルhが格納されるが、回路規模を縮小するために全てのユニット1101で共通に用いられる。図11ではそのための信号線は省略している。なお、原理的にはこれらのメモリを各ユニット1101が個々に備えてもよい。
相互作用ドライバ1103は、図5で説明したように、1つの変数群を選び、更新を許可する信号SWを各ユニット1101に入力する。これにより、各ユニット1101によって、特定の1つの変数群のみが更新される。
SRAMインタフェース1104は、SRAMの回路構成を応用して作成されたユニット1101の変数を格納する変数メモリに対して書き込みおよび読み出しを行う。演算回路800での処理終了後に読み出された変数の値は、変数値読出部916に送られる。変数値読出部916は、読み出した値を適宜記憶及び出力することで基底状態探索の結果を出力する。
コントローラ1105は、エネルギー演算実行部915の指示により、演算回路800の初期化や処理の終了報告を行う。
(ユニット1101の構成)
図12は、ユニット1101(図11)の回路構成例を示すブロック図である。ユニット1101は、何れかの変数群に含まれる変数1つを記憶する変数メモリ1201が含まれる。
以上、詳細に説明したように、本実施形態の情報処理装置10によれば、相互作用モデルのSAに基づく基底状態探索を、相互作用行列の構造に基づいた問題の構造に合わせて効率よく行うことができる。また、情報処理装置10(演算装置20を含む)は、シンプルな構成であるので、安価かつ容易に製造することができる。
以上、本発明の一実施形態について詳述したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
また以上に説明した情報処理装置10の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、情報処理装置10が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
また前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
5:システムバス、10:情報処理装置、11:プロセッサ、12:主記憶装置、13:補助記憶装置、14:入力装置、15:出力装置、16:通信装置、20:演算装置、811:相互作用係数メモリ、812:バイアス係数メモリ、813A:第1変数Aメモリブロック、813B:第1変数Bメモリブロック、814A:第2変数Aメモリブロック、814B:第2変数Bメモリブロック、815:積和演算装置、816:数学関数演算装置、900:記憶部、901:MBQP形式問題データ、902:演算装置制御プログラム、911:モデル係数設定部、912:結合強度計算部、913:変数値初期化部、914:温度パラメタ制御部、915:エネルギー演算実行部、916:変数値読出部、1101:ユニット、1102:ユニットアレイ、1103:変数群選択ドライバ、1104:SRAMインタフェース、1105:コントローラ。

Claims (14)

  1. 記憶部と協働して処理を実行する処理部を有する情報処理装置が、相互作用モデルの複数の変数群の各変数間の相互作用関係を表す相互作用行列に基づく2次項と該各変数に対するバイアスを表すバイアスベクトルに基づく1次項とからなる目的関数を持つ混合2値2次計画問題の最適解探索を行う情報処理方法であって、
    前記処理部が、
    前記相互作用行列を複数のブロック行列に分割すると共に、前記複数の変数群を該複数のブロック行列に対応する独立な複数の変数ブロックに分割し、
    前記複数の変数ブロックに応じて前記バイアスベクトルを複数のバイアスベクトルに分割し、
    前記複数のブロック行列のうちの前記相互作用行列の対角に並ぶ複数の正方行列に基づいて、前記複数の変数ブロックのそれぞれに対応する複数の結合強度を算出し、
    前記ブロック行列と前記結合強度と前記バイアスベクトルとに基づいて前記複数の変数ブロックの各変数を該変数ブロック毎に順次更新して前記最適解探索を実行する、
    ことを特徴とする情報処理方法。
  2. 請求項1に記載の情報処理方法であって、
    前記処理部が、
    前記最適解探索において、熱浴法に基づいて前記複数の変数ブロックの各変数の状態遷移の受理確率を求め、MCMC(Markov Chain Monte Carlo methods)を実行することで、前記相互作用モデルの基底状態を探索する、ことを特徴とする情報処理方法。
  3. 請求項2に記載の情報処理方法であって、
    前記受理確率は、前記複数の変数群間の条件付き確率である、ことを特徴とする情報処理方法。
  4. 請求項3に記載の情報処理方法であって、
    前記複数の変数ブロックの各変数が取る2値のうちの第1の値における前記条件付き確率に基づく誤差関数の値と、前記2値のうちの第2の値における前記誤差関数の値と、の間のランダム値の逆誤差に基づいて、前記複数の変数ブロックの各変数を順次更新する、ことを特徴とする情報処理方法。
  5. 請求項1に記載の情報処理方法であって、
    前記相互作用行列は、実対称行列であり、
    前記処理部が、
    前記結合強度を、前記正方行列の固有値の数値評価に基づいて決定する、ことを特徴とする情報処理方法。
  6. 請求項5に記載の情報処理方法であって、
    前記結合強度は、前記固有値の最小値に二分の一を乗じて符号を反転した値と0とのうちの小さい方よりも大である、ことを特徴とする情報処理方法。
  7. 請求項1に記載の情報処理方法であって、
    前記処理部が、
    前記相互作用行列の各要素をその絶対値に置き換えた隣接行列を対象とする最大カット問題を解くことで、前記複数の変数群を前記複数の変数ブロックに分割する、ことを特徴とする情報処理方法。
  8. 請求項1に記載の情報処理方法であって、
    前記処理部が、
    前記相互作用行列の各成分の有無に対応して0又は1を各成分に配置した隣接行列に対して、そのカット数が最小となるようにクラスタリングすることで、前記複数の変数群を前記複数の変数ブロックに分割する、ことを特徴とする情報処理方法。
  9. 相互作用モデルの複数の変数群の各変数間の相互作用関係を表す相互作用行列に基づく2次項と該各変数に対するバイアスを表すバイアスベクトルに基づく1次項とからなる目的関数を持つ混合2値2次計画問題の最適解探索を行う情報処理装置であって、
    記憶部と協働して処理を実行する処理部を有し、
    前記処理部は、
    前記相互作用行列を複数のブロック行列に分割すると共に、前記複数の変数群を該複数のブロック行列に対応する独立な複数の変数ブロックに分割し、
    前記複数の変数ブロックに応じて前記バイアスベクトルを複数のバイアスベクトルに分割し、
    前記複数のブロック行列のうちの前記相互作用行列の対角に並ぶ複数の正方行列に基づいて、前記複数の変数ブロックのそれぞれに対応する複数の結合強度を算出し、
    前記ブロック行列と前記結合強度と前記バイアスベクトルとに基づいて前記複数の変数ブロックの各変数を該変数ブロック毎に順次更新して前記最適解探索を実行する、
    ことを特徴とする情報処理装置。
  10. 請求項9に記載の情報処理装置であって、
    前記処理部は、
    前記最適解探索において、熱浴法に基づいて前記複数の変数ブロックの各変数の状態遷移の受理確率を求め、MCMC(Markov Chain Monte Carlo methods)を実行することで、前記相互作用モデルの基底状態を探索する、ことを特徴とする情報処理装置。
  11. 請求項10に記載の情報処理装置であって、
    前記受理確率は、前記複数の変数群間の条件付き確率である、ことを特徴とする情報処理装置。
  12. 請求項11に記載の情報処理装置であって、
    前記複数の変数ブロックの各変数が取る2値のうちの第1の値における前記条件付き確率に基づく誤差関数の値と、前記2値のうちの第2の値における前記誤差関数の値と、の間のランダム値の逆誤差に基づいて、前記複数の変数ブロックの各変数を順次更新する、ことを特徴とする情報処理装置。
  13. 請求項9に記載の情報処理装置であって、
    前記相互作用行列は、実対称行列であり、
    前記処理部は、
    前記結合強度を、前記正方行列の固有値の数値評価に基づいて決定する、ことを特徴とする情報処理装置。
  14. 請求項13に記載の情報処理装置であって、
    前記結合強度は、前記固有値の最小値に二分の一を乗じて符号を反転した値よりも大である、ことを特徴とする情報処理装置。
JP2022155436A 2022-09-28 2022-09-28 情報処理方法、及び情報処理装置 Pending JP2024049148A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022155436A JP2024049148A (ja) 2022-09-28 2022-09-28 情報処理方法、及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022155436A JP2024049148A (ja) 2022-09-28 2022-09-28 情報処理方法、及び情報処理装置

Publications (1)

Publication Number Publication Date
JP2024049148A true JP2024049148A (ja) 2024-04-09

Family

ID=90609727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022155436A Pending JP2024049148A (ja) 2022-09-28 2022-09-28 情報処理方法、及び情報処理装置

Country Status (1)

Country Link
JP (1) JP2024049148A (ja)

Similar Documents

Publication Publication Date Title
JP7186797B2 (ja) 量子計算のための方法及びシステム
JP6874219B2 (ja) 情報処理装置、演算装置、及び情報処理方法
JP7007520B2 (ja) 情報処理装置、演算装置、及び情報処理方法
JP6925546B1 (ja) 演算システム、情報処理装置、および最適解探索処理方法
US11244026B2 (en) Optimization problem arithmetic method and optimization problem arithmetic device
JP6895415B2 (ja) 計算装置、計算プログラム、記録媒体及び計算方法
Matsuo et al. Enhancing VQE Convergence for Optimization Problems with Problem-Specific Parameterized Quantum Circuits
KR20230132369A (ko) 양자 회로에서의 리소스 감소
JP2024049148A (ja) 情報処理方法、及び情報処理装置
US11886780B2 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
US20220343202A1 (en) Arithmetic circuit, arithmetic device, information processing apparatus, and method for searching for ground state of ising model
Wang et al. Bar‐system representation for topology optimization using genetic algorithms
JP7398401B2 (ja) 最適化方法、情報処理装置及びそれを用いたシステム
JP7357795B2 (ja) 情報処理方法および情報処理システム
JP7470019B2 (ja) 情報処理システム
JP2023009904A (ja) プログラム、推論方法および情報処理装置
US20240232290A1 (en) Optimization method and information processing apparatus
JP7444804B2 (ja) 制御方法およびサンプリング装置
JP7425210B2 (ja) 情報処理システムおよび最適解探索処理方法
US20230153376A1 (en) Optimization method, information processing device, and information processing system
JP2022158010A (ja) 情報処理システム、情報処理方法、及び情報処理プログラム
US20230267170A1 (en) Information processing system, information processing method, and non-transitory computer-readable recording medium for information processing program
Bai Implementing a Multi-Agent Approach to a Graph-Based Topology Optimization
JP2024044506A (ja) 演算プログラム、演算方法、および情報処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20240809