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

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

▶ 株式会社日立製作所の特許一覧

特許7398401最適化方法、情報処理装置及びそれを用いたシステム
<>
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図1
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図2
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図3
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図4
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図5
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図6
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図7
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図8
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図9
  • 特許-最適化方法、情報処理装置及びそれを用いたシステム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-06
(45)【発行日】2023-12-14
(54)【発明の名称】最適化方法、情報処理装置及びそれを用いたシステム
(51)【国際特許分類】
   G06F 17/10 20060101AFI20231207BHJP
【FI】
G06F17/10 Z
【請求項の数】 15
(21)【出願番号】P 2021051414
(22)【出願日】2021-03-25
(65)【公開番号】P2022149323
(43)【公開日】2022-10-06
【審査請求日】2023-02-08
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】杉田 悠介
(72)【発明者】
【氏名】奥山 拓哉
(72)【発明者】
【氏名】山岡 雅直
【審査官】漆原 孝治
(56)【参考文献】
【文献】国際公開第2020/202312(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/10
(57)【特許請求の範囲】
【請求項1】
情報処理装置を利用して、
連続変数と離散変数をN個(Nは自然数)含んだ3次以上のエネルギー関数を持つ相互作用モデルを対象に、
前記相互作用モデルに対する基底状態探索を、各々N個の連続変数を有したD個(Dは3以上の自然数)の変数群から構成された代理の相互作用モデルでの基底状態探索により実行し、
前記基底状態探索は、シミュレーティッド・アニーリングに基づき実行し、
前記代理の相互作用モデルの相互作用関係は完全D部グラフ構造をもち、
前記代理の相互作用モデルの各変数群のi番目の変数ペア間に結合が設定され、
前記代理の相互作用モデルにおいて状態遷移を行う際に、前記D個の変数群のうち1つの変数群の全変数を一斉更新するように前記情報処理装置を動作させる、
最適化方法。
【請求項2】
前記情報処理装置は、
N個の連続変数の値を格納するN個の変数メモリからなるメモリ群をD個と、
値を更新する際に前記変数群の1つを選んで前記メモリ群と更新方法を選択する選択信号SWを供給する供給線と、を備え、
前記選択信号SWが選択した更新方法に従い、選択した前記メモリ群の値を更新する、
請求項1記載の最適化方法。
【請求項3】
前記情報処理装置は、
前記代理の相互作用モデルの相互作用関係を規定する相互作用係数Jと前記各変数群のi番目の変数ペア間の結合強度λを格納する相互作用係数メモリを備え、
前記相互作用係数J、結合強度λ、前記変数メモリ、温度信号ST、及び乱数信号SRから前記メモリ群の値の次状態を計算する
請求項2記載の最適化方法。
【請求項4】
前記結合強度λは、前記エネルギー関数に対して前記各変数群のi番目の変数ペアが異なる値である場合のペナルティの大きさに影響する、
請求項3記載の最適化方法。
【請求項5】
前記相互作用係数Jは対称テンソルであり、
前記結合強度λはJに基づく数値評価から決定する、
請求項4記載の最適化方法。
【請求項6】
前記シミュレーティッド・アニーリングのアルゴリズムにおいて、前記次状態への状態遷移の受理確率Pを熱浴法に基づき求める、
請求項3記載の最適化方法。
【請求項7】
N個×D群(Nは自然数、Dは3以上の自然数)の変数の値を夫々格納するD×N個の変数メモリと、
前記D群の変数群の1つとその更新方法を選択する選択信号SWを供給する供給線と、
前記変数群の間に働くD次の相互作用を示す相互作用係数Jを格納する相互作用係数メモリと、
前記選択信号SWが第d変数群(d=1~D)を選択した場合、前記D×N個の変数メモリから読み出した、第d変数群のi番目の変数の値と、第d変数群以外の変数群の複数のi番目の変数の値及び前記相互作用係数Jを入力とし、第d変数群のi番目の変数の値の次状態を計算する演算装置を有する、
情報処理装置。
【請求項8】
前記演算装置は、前記変数メモリに対応して配置され、前記変数メモリは連続値を格納する、
請求項7記載の情報処理装置。
【請求項9】
前記演算装置は、前記変数の値および前記相互作用係数Jに対して積和演算を実行する積和演算装置を含む、
請求項8記載の情報処理装置。
【請求項10】
前記演算装置は、前記変数の値の次状態を演算する数学関数演算装置を含む、
請求項9記載の情報処理装置。
【請求項11】
前記数学関数演算装置は、前記積和演算装置の出力値、温度信号ST,及び乱数信号SRを入力値として、前記第d変数群のi番目の変数の次状態を出力値とする、
請求項10記載の情報処理装置。
【請求項12】
相互作用モデルに対するシミュレーティッド・アニーリングに基づいて基底状態探索を行う、
請求項11記載の情報処理装置。
【請求項13】
前記相互作用係数メモリは、第1群~第D群の各変数群のi番目の変数(i=1~N)が基底状態において同じ値となるように、前記第1群~第D群のi番目の変数のすべての間に設定した結合強度λを格納する、
請求項12記載の情報処理装置。
【請求項14】
連続変数と離散変数をN個含んだ3次以上のエネルギー関数を持つ相互作用モデルの基底状態を探索するための、請求項13記載の情報処理装置を用いた情報処理システムであって、前記演算装置を制御する制御装置を備え、
前記制御装置は、相互作用係数設定部と、結合強度計算部と、変数値初期化部と、温度パラメタ制御部と、相互作用演算実行部と、変数読出部とを備え、
前記相互作用係数設定部は、相互作用係数メモリに前記相互作用係数Jを格納し、
前記結合強度計算部は、前記相互作用係数Jに基づいて前記結合強度λを設定して、前記相互作用係数メモリに格納し、
変数値初期化部は、前記離散変数の定義域を連続値として再定義し、前記変数メモリに格納されている値を初期化し、
前記温度パラメタ制御部は、前記温度信号STを制御し、
相互作用演算実行部は、前記演算装置を制御して、前記基底状態探索を実行させ、
前記変数読出部は、前記基底状態探索の結果となる前記変数メモリに格納されている値を読み出し、連続値に再定義した変数の定義を離散値に戻す、
情報処理システム。
【請求項15】
前記変数読出部は、連続値に再定義した変数の符号に基づいて、連続値の値を離散値に戻す、
請求項14記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化方法及び情報処理装置に関する。
【背景技術】
【0002】
特許文献1には、2次のエネルギー関数をもつイジングモデルの相互作用関係を完全2部グラフ構造に変換して、シミュレーティッド・アニーリングに基づく基底状態探索を効率良く行う方法に関して記載されている。
【0003】
非特許文献1は、混合整数非線形計画問題に関する応用事例や解法のサーベイ論文であり、工学や産業等の実問題が記載されている。
【0004】
非特許文献2は、バイナリ変数に対する高次の相互作用を、補助変数を導入することで2次の相互作用に書き直す方法に関して記載されている。
【先行技術文献】
【特許文献】
【0005】
【文献】WO2019/216277 A1
【非特許文献】
【0006】
【文献】S. Burer and A. N. Letchford:“Non-convex mixed-integer nonlinear programming: A survey”,Surveys in Operations Research and Management Science 17, 87-106 (2012).
【文献】E. Boros and A. Gruber,“On quadratization of pseudo-Boolean functions”,International Symposium on Artificial Intelligence and Mathematics (2012).
【発明の概要】
【発明が解決しようとする課題】
【0007】
物理現象や社会現象の多くは相互作用モデルによって表現することができる。相互作用モデルは、モデルを構成する複数のノード、ノード間の相互作用関係、及びノード毎のバイアスにより定義される。物理学や社会科学の分野においては種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。
【0008】
相互作用モデルの代表例としてイジングモデル(Ising Model)がある。イジングモデルは、各ノードが+1/-1などの2値をとり、ノード間の相互作用とノード毎のバイアスに基づき多項式で表されるエネルギー関数を持つ。イジングモデルの基底状態を探索する方法として、マルコフ連鎖モンテカルロ法によるものがある。マルコフ連鎖モンテカルロ法では、状態間を確率的に遷移させて状態サンプリングを行うことにより所望の統計量を推定する。
【0009】
現実の組合せ最適化問題をイジングモデルの基底状態探索問題に変換すると、しばしば処理の難しい2つの状況に直面する。1つがノードに対応した変数が連続値をとる場合である。この場合、連続変数を離散化してイジングモデルに表現し直すために、変数数が増大する。2つ目が高次の相互作用(3次以上の多項式として表される相互作用関係)が現れる場合である。2次相互作用のイジングモデルに対しては各変数に対する確率的な処理を並列化して効率を上げる方法が提案されているが、高次の相互作用を2次の相互作用へ還元することで変数数が増大する。また、相互作用係数が増大して基底状態探索が難しくなる。
【0010】
本発明は、このような背景を鑑みてなされたもので、連続変数や高次の相互作用関係を持つ相互作用モデルに対して、基底状態探索を効率良く行うことが可能な、最適化方法及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の好ましい一側面は、情報処理装置を利用して、連続変数と離散変数をN個(Nは自然数)含んだ3次以上のエネルギー関数を持つ相互作用モデルを対象に、前記相互作用モデルに対する基底状態探索を、各々N個の連続変数を有したD個(Dは3以上の自然数)の変数群から構成された代理の相互作用モデルでの基底状態探索により実行し、前記基底状態探索は、シミュレーティッド・アニーリングに基づき実行し、前記代理の相互作用モデルの相互作用関係は完全D部グラフ構造をもち、前記代理の相互作用モデルの各変数群のi番目の変数ペア間に結合が設定され、前記代理の相互作用モデルにおいて状態遷移を行う際に、前記D個の変数群のうち1つの変数群の全変数を一斉更新するように前記情報処理装置を動作させる、最適化方法である。
【0012】
本発明の好ましい他の一側面は、N個×D群(Nは自然数、Dは3以上の自然数)の変数の値を夫々格納するD×N個の変数メモリと、前記D群の変数群の1つとその更新方法を選択する選択信号SWを供給する供給線と、前記変数群の間に働くD次の相互作用を示す相互作用係数Jを格納する相互作用係数メモリと、前記選択信号SWが第d変数群(d=1~D)を選択した場合、前記D×N個の変数メモリから読み出した、第d変数群のi番目の変数の値と、第d変数群以外の変数群の複数のi番目の変数の値及び前記相互作用係数Jを入力とし、第d変数群のi番目の変数の値の次状態を計算する演算装置を有する、情報処理装置である。
【0013】
本発明の好ましい他の一側面は、連続変数と離散変数をN個含んだ3次以上のエネルギー関数を持つ相互作用モデルの基底状態を探索するための、上記の情報処理装置を用いた情報処理システムであって、前記演算装置を制御する制御装置を備え、前記制御装置は、相互作用係数設定部と、結合強度計算部と、変数値初期化部と、温度パラメタ制御部と、相互作用演算実行部と、変数読出部とを備え、前記相互作用係数設定部は、相互作用係数メモリに前記相互作用係数Jを格納し、前記結合強度計算部は、前記相互作用係数Jに基づいて前記結合強度λを設定して、前記相互作用係数メモリに格納し、変数値初期化部は、前記離散変数の定義域を連続値として再定義し、前記変数メモリに格納されている値を初期化し、前記温度パラメタ制御部は、前記温度信号STを制御し、相互作用演算実行部は、前記演算装置を制御して、前記基底状態探索を実行させ、前記変数読出部は、前記基底状態探索の結果となる前記変数メモリに格納されている値を読み出し、連続値に再定義した変数の定義を離散値に戻す、情報処理システムである。
【0014】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
【発明の効果】
【0015】
本発明によれば、連続変数や高次の相互作用関係を持つ相互作用モデルに対して、基底状態探索を効率良く行うことができる。上記以外の課題、構成、及び効果は、以下の発明を実施するための形態の説明により明らかにされる。
【図面の簡単な説明】
【0016】
図1】相互作用モデルのエネルギーランドスケープの概念図である。
図2】相互作用モデルの変数間の相互作用関係を完全グラフとして表したグラフ図である。
図3】3次のエネルギー関数を持つ相互作用モデルにおける変数の相互作用関係を完全3部グラフ構造として表したグラフ図である。
図4】結合λをもつペナルティ項がエネルギーランドスケープに及ぼす影響を表した概念図である。
図5】情報処理装置の概略的な構成を示すブロック図である。
図6】演算回路のブロック図である。
図7】情報処理装置が備える主な機能を示す機能ブロック図である。
図8】基底状態探索処理を説明するフローチャートである。
図9】演算装置の詳細な構成例を示すブロック図である。
図10】一つのユニットの回路構成例を示すブロック図である。
【発明を実施するための形態】
【0017】
以下、実施の形態を図面に基づいて詳細に説明する。尚、以下の説明において、同一の又は類似する構成に共通の符号を付して重複した説明を省略することがある。また同一あるいは同様の機能を有する要素が複数ある場合に同一の符号に異なる添字を付して説明することがある。また複数の要素を区別する必要がない場合は添字を省略して説明することがある。
【0018】
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【0019】
本明細書で引用した刊行物、特許および特許出願は、そのまま本明細書の説明の一部を構成する。
【0020】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【0021】
以下で説明される実施例の一例は、情報処理装置を利用して、相互作用モデルの基底状態探索を行う最適化方法である。この方法では、D次(D≧3)の相互作用をもつ相互作用モデルに対する基底状態探索を、変数間の接続が完全D部グラフ構造となる相互作用関係を持つ相互作用モデルに対する基底状態探索で代替し、相互作用モデルのエネルギー関数を記憶する記憶部と、前記エネルギー関数と前記変数の情報に基づき前記相互作用モデルの基底状態を探索する実行部と、を備える。
【0022】
なお、本発明の発明者らは、本出願に先立ち高次の相互作用を持つイジングモデルの基底状態探索に係る国際出願PCT JP2020/029336や、混合2値2次最適化問題に係る国際出願PCT JP 2020/018203等を提案している。
【0023】
まず相互作用モデルについて説明する。相互作用モデルは、モデルを構成する複数のノード、ノード間の相互作用関係、及びノード毎のバイアスにより定義される。ここでは、各ノードi(i=1~N)に対応する変数sは連続変数s∈[-1,1]又は離散変数s∈{-1,1}であるとする。相互作用モデルの相互作用関係とバイアスに基づき、エネルギー関数H(s)(一般にハミルトニアンと呼ばれる)が定義される。例えば、相互作用関係が2つのノードi,j間のみに限定された場合は、エネルギー関数は次の2次式となる。
【0024】
【数1】
…(式1)
【0025】
式1の第1項が相互作用関係、第2項がバイアスに基づくエネルギー関数を表現している。相互作用関係として、2つ以上のノード間にまたがるものも考えられる。例えば、3つのノードi,j,k間にまたがる相互作用関係は、次の3次式のエネルギー関数となる。
【0026】
【数2】
…(式2)
【0027】
一般に相互作用モデルは無向グラフとして表現され、各相互作用項はそこに含まれる変数の組で指定される。そのため、式1のJijや式2のJijkは添え字の入れ替えに対して値を変えない対称テンソルとなる。
【0028】
上記相互作用モデルは、イジングモデルを内包した概念である。相互作用モデルにおいて全変数を離散値s∈{-1,1}に限定した場合、イジングモデルに帰着する。イジングモデルは、例えば、統計力学で磁性体を記述する格子モデルとして用いられており、+1/-1がスピンの上/下向きに対応する。
【0029】
相互作用モデルの基底状態探索は上記エネルギー関数を最小化する変数配列{s}を求める最適化問題である。本実施形態では、相互作用モデルの基底状態の探索をマルコフ連鎖モンテカルロ法(以降、MCMC(Markov Chain Monte Carlo methods)と呼ぶ)により行う。
【0030】
図1は相互作用モデルのエネルギーランドスケープの概念図である。グラフの横軸は変数配列、縦軸は系の全エネルギーである。確率的な遷移では、現在の状態s={s}から他の状態への確率的な遷移を繰り返す。確率的な遷移を生成する方法として熱浴法やメトロポリス法(Metropolis method)がある。特に、i番目の変数の値がs以下の値となる累積分布関数F(s)に対して逆関数F-1が求められる場合、一様乱数r∈[0,1]として、熱浴法による遷移先の状態sは次の式で与えられる。
【0031】
【数3】
…(式3)
【0032】
遷移先を生成する方法としては、現在の状態sの各変数sをi=1~Nまでひとつずつ更新する方法が一般的である。変数をひとつずつ順番に変えていくことで、変数全体がとりうる状態について探索を行う。例えば、図1の場合、状態Aから離散変数を1から-1に反転して状態Bとなり、更に他の連続変数の値を1から-0.8に更新して状態Cとなる。状態Aから状態Bまでは状態空間を表す変数は1と-1しかとらないので、エネルギーが不連続的に変化する。
【0033】
上記の状態遷移を制御するパラメタTを導入して、徐々に遷移を抑制しつつMCMCを実行するとき、エネルギーが最も低い状態に漸近的に収束する。これを利用して最小化問題の最適解を求める手法がシミュレーティッド・アニーリング(以下、SA(Simulated Annealing)と呼ぶ)である。現実の焼きなましと対応して、パラメタTを温度パラメタと呼ぶ。
【0034】
相互作用モデルに対してMCMCやSAを適用する場合、式3などに基づき変数の値を確率的に更新する。ここで相互作用関係を持たない変数同士は、エネルギー関数式ひいては累積分布関数において独立となり、式3にもとづく状態遷移を同時に適用することが可能である。そのため、独立な変数を並列して更新することで、MCMCやSAの処理の高速化を図ることが可能である。
【0035】
図2は、相互作用モデルの変数間の相互作用関係を表したグラフ図である。変数数N=6とした。丸のノードと四角のノードがそれぞれ離散変数と連続変数に対応する。点線は3つのノードからなる3次の相互作用を表現する。全変数間に相互作用関係があるため、完全グラフ(全結合グラフ)である。ここで、例として、3次の相互作用の値は点線で結ばれる3つの変数の組から決定される。同様にD次の相互作用はD個の変数から決定される。
【0036】
非特許文献1にあるように、現実の工学や産業上の最適化問題の多くは、連続変数と離散変数の両方を有し、非線形な目的関数を持つ混合整数非線形計画問題として定式化される。また、これらを相互作用モデルとして表現すると、変数間の相互作用関係は図2に示すような密結合となる(個々の変数がその他の多くの変数と結合する)ため、独立でなく、各変数の確率的更新を同時に実行できない。このため、MCMCやSAの処理の高速化を図ることが困難である。
【0037】
逆に言えば、密な相互作用関係を持つ相互作用モデルに対して、MCMCの要求する理論的背景を満たしつつ複数のスピンを同時に更新することができれば、MCMCやSAの処理の高速化を図ることが可能になる。実際、特許文献1では、2次のエネルギー関数を持つイジングモデル(離散変数のみの相互作用モデル)の相互作用関係を完全2部グラフ構造に変換して効率良く基底状態を求める方法が提案されている。
【0038】
しかし、一般に連続変数を離散化することで相互作用モデルをイジングモデルに変換すると、変数数が増大して解くことが難しくなる。さらに、特許文献1のように2次の相互作用を持つイジングモデルを対象とした手法を適用するには、高次の相互作用を2次の相互作用に還元する必要があり、非特許文献2に記載されているように多くの補助変数が必要となる。また、相互作用係数が増大してSAによる基底状態探索も困難となる。
【0039】
このような背景を鑑みて、本実施形態では、D次(D≧3)のエネルギー関数を持つ相互作用モデルに対して、イジングモデルに変換することなく、基底状態探索をSAに基づき効率良く実施する方法を説明する。
【0040】
まず、相互作用モデルが有する離散変数s∈{-1,1}に注目する。離散変数についてs =1であるから、エネルギー関数は離散変数sについて1次以下の式となる。そこで、相互作用モデルH(s)に対して、全ての変数sを連続変数x∈[-1,1]に置き換えた相互作用モデルをH(x)として、H(s)とH(x)の基底状態をそれぞれsとxとすると以下のことが示せる。
【0041】
【数4】
…(式4)
【0042】
符号関数sign(x)は、x≧0ならば+1、x<0ならば-1を返す関数である。式4により、H(x)の基底状態を探索することでH(s)の基底状態が求められる。
【0043】
次に、バイアス項と最高次数以下の相互作用項について考える。これらは、値を1に固定したスピンを用いることで、より高次の相互作用関係にまとめることができる。例えば、s’=s’=1として、
【0044】
【数5】
…(式5)
などである。
【0045】
以上を踏まえて、以下では相互作用モデルの相互作用の最高次数をD=3として、D=3次の相互作用項のみを持つ相互作用モデルH(x)を考えることにする。式で表すと次の通りである。
【0046】
【数6】
…(式6)
【0047】
ただし、D≧4でも同様な手続きが実施可能であり、修正が必要な箇所は後に説明する。式6に対応して、補助変数y,z∈[-1,1]を含む次の相互作用モデルを考える。
【0048】
【数7】
…(式7)
【0049】
図3は式7の相互作用モデルを表したグラフ図である。図3より、式7の相互作用関係は完全3部グラフ構造であることがわかる。同図の左から順に第1変数群x、第2変数群y、第3変数群zと呼ぶ。第1変数群のx、第2変数群のy、第3変数群のzには大きさJijkの相互作用が働く。式7の右辺第2項は第1~3変数群のi番目(i=1~N)のペア間に、結合λの2次相互作用として働く。図3で、相互作用Jijkを細線で、結合λを太線で示している。図では都合上終端しているが、第3変数群zは第1変数群xと結合される。式7の第2項はx,y,zが異なる値である場合に働くペナルティ項とみなせる。
【0050】
図4は、結合λをもつペナルティ項がエネルギーランドスケープに及ぼす影響を模式的に表した概念図である。実線で示す部分でx,y,zが同じ値をとり、破線で示す部分でx,y,zが同じ値をとらない。よって、破線で示す部分でペナルティ項の影響が表れる。λ=0の場合、式7はペナルティ項が0になり、x,y,zの値が異なるものを基底状態にとることができる。λ>0を充分に大きい値とすると、x=y=zの範囲で、第1項を最小化するものが式7の基底状態となる。すなわち、式7の基底状態x=y=zは式6の基底状態xと一致する。
【0051】
実際、λがある値より大きい場合には式6と式7の基底状態が一致することが示せる。u∈[-1,1]として、i行j列目の要素Mij(u)が次の値となる行列M(u)を定義する。
【0052】
【数8】
…(式8)
【0053】
ここでuを変えた場合に行列M(u)の固有値がとりうる最大値λmaxよりもλが大きければ式6と式7の基底状態が一致する。また、λmaxについて、いくつかの評価式を示すことができる。
【0054】
【数9】
…(式9)
【0055】
ここで行列Jはi行j列目の要素をJijkとする行列、||・||はベクトルのL2ノルムである。式9の右辺(等号の右側)第1式はレイリー商に基づく行列の最大固有値の定義式である。第2、3式が最大固有値の評価式となる。右辺第2式は制約条件付きの凸最適化問題として解くことができる。また、右辺第3式は行列Σ の最大固有値を求めればよいのでべき乗法などで計算できる。
【0056】
そこで、適当なλを設定して式7の基底状態探索を行うことで式6の基底状態探索が実行できる。重要な点は、式7は図3に示した完全3部グラフ構造の相互作用関係を持つことである。すなわち、変数群の内部の異なる変数の間には相互作用関係が無く、互いに独立である。従って、MCMCやSAを実行する際に各変数群x,y,zは一斉に更新することが可能であり、並列処理により効率を向上できる。そこで、本実施形態では式7の基底状態をSAに基づき探索することで、オリジナルの相互作用モデルの基底状態を探索する。なお、λが大きすぎるとペナルティ項の影響が過大となるので、λには適切な上限を設けることが好ましい。λの上限は、解きたい問題の目的や用途に応じて定めることができる。結合λにより各変数群のi番目の変数が基底状態において同じ値となることが望ましい。
【0057】
以上の議論はD≧4以上にも適用可能である。例えば、D=4の場合には式6と式7に対応する式はそれぞれ以下となる。
【0058】
【数10】
…(式10)
【0059】
【数11】
…(式11)
【0060】
特に、式11でλが次の行列M(u,u’)の最大固有値λmaxよりも大きい場合には式10と式11の基底状態が一致することを示せる。
【0061】
【数12】
…(式12)
【0062】
ここで、u,u’∈[-1,1]である。より高次の場合も同様で、結合λを十分大きくとれば、オリジナルの相互作用問題の基底状態探索問題を完全D部グラフ構造の相互作用関係と結合λをもつ相互作用モデルの基底状態探索に帰着することができる。
【0063】
次に式7に対して熱浴法に基づいて状態を遷移させる方法を説明する。温度パラメタTとして、式7の相互作用モデルの状態{x,y,z}はボルツマン分布に基づく確率p(x,y,z)で出現するものとする。
【0064】
【数13】
…(式13)
【0065】
Zは分配関数とよばれるボルツマン分布の規格化因子である。このとき、y,zが与えられたときに、xの条件付き累積分布関数F(x|σ,y)は次式で表せる。
【0066】
【数14】
…(式14)
【0067】
ここでerf(x)は誤差関数である。そこで、一様乱数r∈[0,1]として式3から遷移先を求めることができる。
【0068】
【数15】
…(式15)
【0069】
同様に、z,x(x,y)が与えられた場合のy(z)の遷移先は、式15で変数を置換することで表現される。
【0070】
続いて、式15に基づく基底状態探索を実施する、情報処理装置の実施形態例を示す。図5に示した情報処理装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、通信装置16、1つ以上の演算装置20、及びこれらの装置を通信可能に接続するシステムバス5を備える。情報処理装置10は、例えば、その一部又は全部がクラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されるものであってもよい。また情報処理装置10は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されるものであってもよい。
【0071】
プロセッサ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に読み込まれる。
【0072】
入力装置14は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal Display)、グラフィックカード等)や音声出力装置(スピーカ)、印字装置等である。通信装置16は、他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。
【0073】
演算装置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等)にプログラムを実行させることにより実現してもよい。
【0074】
図6は、演算装置20の動作原理を説明する図であり、演算装置20を構成する回路(以下、演算回路600と称する)のブロック図である。演算回路600は式15に相当する機能を実現する。以下、同図とともに演算装置20の動作原理について説明する。尚、以下の説明において、演算回路600が取り扱う相互作用モデルのエネルギー関数の次数をD、変数数をNで表す。
【0075】
同図に示すように、演算回路600は、相互作用係数メモリ611、第d変数メモリ612.d(d=1~D)、積和演算装置613、数学関数演算装置614を含む。
【0076】
相互作用係数メモリ611には、相互作用テンソルJを表す情報が格納される。前述の通り、相互作用テンソルは対称テンソルであるから、この対称性を用いてメモリ611の使用量を削減できる。また、結合λを表す情報も格納される。
【0077】
第d変数メモリ612.d(d=1~D)には、前述した完全D部グラフ構造の第d変数群の状態を示すN次元ベクトルの情報が格納される。例えば、D=3の場合、第1変数群、第2変数群、第3変数群には、それぞれ図3におけるx,y,zが対応する。
【0078】
演算回路600には、信号SW,SR,STが入力される。数学関数演算装置614は信号SPを出力する。
【0079】
信号SWは、整数1~Dを周期的に繰り返す信号であり、式15における変数と変数メモリの対応を指定する。
【0080】
信号SRは、各要素が互いに独立な乱数であるN次元ベクトルを表す信号である。式15におけるrを入力する。
【0081】
信号STは、式15における温度パラメタTを入力する。
【0082】
前述の通り、結合λは相互作用テンソルJに基づき十分大きな値として設定される。式9に基づく数値評価は、演算装置20の外部、たとえばプロセッサ11で行ってもよい。また、演算装置20内で計算も可能である。例えば、べき乗法等で最大固有値を計算する場合、これは行列・ベクトル積を繰り返し実行するものであり、積和演算装置613を活用できる。
【0083】
積和演算装置613には、相互作用係数メモリ611と第d変数メモリ612.d(d=1~D)の内容、および、信号SWが入力される。式15は相互作用テンソルJとベクトルの積和演算をそれぞれ含んでおり、信号SWにより指定された変数の対応関係の下で、演算を実行し、出力する。例えば式15では変数xの次状態を計算するため、それ以外の変数yとzを用いる。
【0084】
式15は積和演算の出力や一様乱数rなどのスカラーに対する誤差関数や逆誤差関数の演算を含んでおり、この部分を数学関数演算装置614が実行する。どの式に対応した演算を実行するかは信号SWが指定する。また、一様乱数rや温度パラメタTはそれぞれ信号SRと信号STから入力される。信号SPにはその出力値である、MCMCに従い更新された変数の次状態の値が出力される。
【0085】
式15が添え字i(i=1~N)に対して独立であることから、演算回路600の演算も添え字iについて独立に実行可能である。つまり、複数の演算回路600を並列実行することでMCMCの高速化が実現する。
【0086】
図7に情報処理装置10が備える主な機能(ソフトウェア構成)を示している。この情報処理装置10は、プログラムをデータとして記憶装置に格納し、これを順番に読み込んで実行するいわゆるノイマン型コンピュータである。同図に示すように、情報処理装置10は、記憶部700、相互作用係数設定部711、結合強度計算部712、変数値初期化部713、温度パラメタ制御部714、相互作用演算実行部715、及び変数値読出部716を備える。これらの機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、演算装置20が備えるハードウェアにより実現される。尚、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(DataBase Management System)等の他の機能を備えていてもよい。
【0087】
上記機能のうち記憶部700は、相互作用モデル形式問題データ701、及び演算装置制御プログラム702を、主記憶装置12又は補助記憶装置13に記憶する。相互作用モデル形式問題データ701は、組合せ最適化問題を所定の記述形式で入力したデータである。相互作用モデル形式問題データ701は、例えば、ユーザがユーザインタフェース(入力装置、出力装置、通信装置等)を介して設定する。演算装置制御プログラム702は、相互作用演算実行部715が演算装置20を制御する際に実行する、もしくは相互作用演算実行部715が個々の演算装置20にロードして演算装置20に実行させるプログラムである。
【0088】
相互作用係数設定部711は、相互作用モデル形式問題データ701に基づき、相互作用テンソルJを相互作用係数メモリ611に設定する。
【0089】
結合強度計算部712は、相互作用係数メモリ611に基づき、式15における結合λの値を、式9に基づき計算する。
【0090】
変数値初期化部713は、演算装置20の変数メモリ612.d(d=1~D)に格納されている値を初期化する。例えば、-1~+1の一様乱数で設定する。
【0091】
温度パラメタ制御部714は、式15における温度パラメタTを制御する。
【0092】
相互作用演算実行部715は、式15に従って相互作用モデルに対してSAに従った基底状態探索(以下、相互作用演算と称する)を行う。
【0093】
変数値読出部716は、相互作用演算実行部715によりSAが実行されると、変数メモリ612.d(d=1~D)に格納されている値を読み出し、読み出した値を出力装置15や通信装置16に出力することで、基底状態探索を終了する。
【0094】
図8は、相互作用モデルの基底状態探索に際し情報処理装置10が行う処理(以下、基底状態探索処理S800と称する)を説明するフローチャートである。以下、同図とともに基底状態探索処理S800について説明する。尚、以下において、符号の前に付している「S」の文字は処理ステップの意味である。基底状態探索処理S800は、例えば、入力装置14を介してユーザからの指示等を受け付けることにより開始される。
【0095】
初めに、相互作用係数設定部711が、相互作用係数メモリ611に値Jを設定する(S811)。メモリの値は、ユーザインタフェース(例えば、入力装置14、出力装置15、通信装置16等により実現される)を介してユーザが設定又は編集することもできる。
【0096】
続いて、結合強度計算部712が、相互作用係数メモリ611に格納された相互作用テンソルJに基づいて結合λを設定し、相互作用係数メモリ611に格納する。前述の通り、この計算は演算装置20内またはプロセッサ11で実行してもよい(S812)。
【0097】
相互作用モデルの変数が、連続値と離散値を含んでいる場合、離散値を一時的に連続値として扱う。変数値初期化部713は、離散値を持つ変数の定義域を連続値として再定義する(S813)。
【0098】
続いて、変数値初期化部713が、変数メモリ612.d(d=1~D)に格納されている値を初期化する(S814)。
【0099】
続いて、相互作用演算実行部715が、式15に基づき相互作用演算を実行することにより変数メモリ612.d(d=1~D)の値を更新する(S815)。
【0100】
続いて、相互作用演算実行部715は、SA終了条件が成立したか否か(例えば、既定の回数だけ温度パラメタTを変えつつ状態更新を実行したか否か)を判定する(S816)。相互作用演算実行部615がSA終了条件が成立したと判定した場合(S816:YES)、処理はS817に進む。一方、相互作用演算実行部715が停止条件が成立しないと判定した場合(S816:NO)、処理はS815に戻る。
【0101】
続いて、変数値読出部716が、変数メモリ612.d(d=1~D)に格納されている値を読み出し、S813で定義を連続値に変換した変数の定義を離散値に戻す。このとき、連続値から離散値の変換は、式4に従って行う。変更後の変数を基底状態探索の結果として記憶し(S817)、基底状態探索処理S800は終了する。
【0102】
図9は、演算装置20の詳細な構成例を示すブロック図であり、SRAMの技術を本実施例の演算回路600に適用した場合の回路構成例を示すブロック図である。複数のユニット901がユニットアレイ902を構成している。このような構成(ハードウェア)は半導体製造技術を応用して製造可能である。
【0103】
図10は、ノードに対応する1つのユニット901の回路構成例である。1つのユニット901には、1つの変数を記憶する変数メモリ1001と、後述する変数メモリ1001の値を更新するための構成が含まれる。すなわち、ユニット901はD×N個準備され、変数群ごとに並列動作が可能となる。図には図3と対応したD=3の場合の変数を記載した。
【0104】
図9の構成例を、一般化されている図6の構成も参照しつつ説明する。相互作用係数メモリ611に格納されるデータは、相互作用係数設定部711から設定される。相互作用係数メモリ611には、相互作用テンソルJと結合λが格納されるが、回路規模を縮小するために全てのユニット901で共通に用いられる。よって、相互作用係数メモリ611は、全てのユニット901に係数Jと結合λを供給するが、図9ではそのための信号線は省略している。なお、原理的には相互作用係数メモリ611を、各ユニット901が個々に備えてもよい。
【0105】
相互作用ドライバ903は、図3で説明したように、第d変数群から1つの群を選び、更新を許可する信号SWを各ユニット901に入力する。これにより、特定の1つの群のみが一斉に更新される。
【0106】
SRAMインタフェース904は、SRAMの回路構成を応用して作成されたユニット901の変数を格納する変数メモリ1001に対して書き込みおよび読み出しを行う。演算回路600での処理終了後に読み出された変数の値は、変数値読出部716に送られる。変数値読出部716は、読み出した値を適宜記憶及び出力することで基底状態探索の結果を出力する。
【0107】
コントローラ905は、相互作用演算実行部715の指示により、演算回路600の初期化や処理の終了報告を行う。
【0108】
図10は、1つのユニット901の回路構成例を示す図である。1つのユニットには、D個の変数群に含まれるN個の変数のいずれか1つを記憶する変数メモリ1001が含まれる。
【0109】
積和演算装置613には、変数メモリが属している以外の変数群の値が入力される。これらの変数ベクトルは、他のユニット901の変数メモリ1001からSRAMインタフェース904が読み出して生成する。また、相互作用係数メモリ611に格納されている相互作用係数Jの値が入力される。
【0110】
数学関数演算装置614には、積和演算装置613の出力、信号ST、及び信号SRが入力される。そして、式15、に基づいて変数の次状態を出力し、変数メモリ1001に格納する。
【0111】
以上、詳細に説明したように、本実施形態の情報処理装置10によれば、相互作用モデルのSAに基づく基底状態探索を効率よく行うことができる。尚、情報処理装置10(演算装置20を含む)は、シンプルな構成であるので安価かつ容易に製造することができる。
【0112】
実施例の情報処理装置は、D次(D≧3)のエネルギー関数を持つ相互作用モデルに対する基底状態探索を、変数間の接続が完全D部グラフ構造となる相互作用関係を持つ相互作用モデルでの基底状態探索により代替し、相互作用モデルのエネルギー関数を記憶し、エネルギー関数と変数の情報に基づきシミュレーティッド・アニーリングに従って変数を更新し、基底状態を探索する。これにより、離散変数や連続変数を有し、高次のエネルギー関数を持つ相互作用モデルの基底状態探索を効率よく実施することができる。
【0113】
以上、一実施形態について詳述したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0114】
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0115】
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【0116】
また以上に説明した情報処理装置10の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、情報処理装置10が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
【0117】
また前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【0118】
本発明は、最適化方法及び情報処理装置に利用することが可能である。
【符号の説明】
【0119】
5 システムバス、 10 情報処理装置、11 プロセッサ、12 主記憶装置、13 補助記憶装置、14 入力装置、15 出力装置、16 通信装置、12 主記憶装置、20 演算装置、611 相互作用係数メモリ、612.d(d=1~D) 第d変数メモリ、613 積和演算装置、614 数学関数演算装置、700 記憶部、701 相互作用モデル形式問題データ、702 演算装置制御プログラム、711 相互作用係数設定部、712 結合強度計算部、713 変数値初期化部、714 温度パラメタ制御部、715 相互作用演算実行部、716 変数値読出部、901 ユニット、902 ユニットアレイ、903 相互作用ドライバ、904 SRAMインタフェース、905 コントローラ、1001 変数メモリ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10