(57)【特許請求の範囲】
【請求項１】
混合整数二次計画問題の変数の状態を示す値を記憶する変数メモリと、
前記混合整数二次計画問題の最適解探索を行うために前記変数の状態を示す値の次状態を計算する状態遷移計算ブロックと、
前記状態遷移計算ブロックの非線形係数を記憶する非線形係数メモリと、
前記状態遷移計算ブロックの線形係数を記憶する線形係数メモリと、
前記状態遷移計算ブロックの重み信号を受信する重み入力線と、
前記状態遷移計算ブロックの温度信号を受信する温度入力線と、を備え、
前記変数メモリ、前記状態遷移計算ブロック、前記非線形係数メモリ、前記線形係数メモリ、前記重み入力線、及び前記温度入力線は専用のハードウェアで構成され、
前記状態遷移計算ブロックは、
前記重み信号と前記非線形係数と前記線形係数を用いて差分計算を実行する差分計算ブロックと、
前記重み信号と前記温度信号と前記差分計算ブロックの出力値を用いて、区間制約付きの確率分布からランダムに前記次状態の候補をサンプリングするサンプリングブロックと、
前記変数メモリから読み出した値を用いて、前記次状態の候補に基づいて変数の次状態を計算する次状態決定ブロックと、
を備える演算システム。
【請求項２】
前記変数メモリは、前記変数の状態を示す値ｘ１、…、ｘＮおよびｙ１、…、ｙＮとして連続値を記憶する、
請求項１記載の演算システム。
【請求項３】
前記非線形係数Ｊは、Ｎ×Ｎ行列であり、
前記線形係数ｈは、Ｎ次元ベクトルであり、
前記重み信号ＳＷは、対角行列Ｗの対角成分ｗ１、…、ｗＮを表すＮ要素のベクトルを表す信号である、
請求項２記載の演算システム。
【請求項４】
前記差分計算ブロックには、前記非線形係数Ｊ、前記線形係数ｈ、前記重み信号ＳＷ、および前記変数メモリに記憶されている値が入力され、（Ｊ＋ｄｉａｇ（ｗ１、・・・、ｗＮ））ｓ＋ｈを出力し、
ただし、ｓはＮ次元ベクトル（ｘ１、…、ｘＮ）および（ｙ１、…、ｙＮ）のいずれかである、
請求項３記載の演算システム。
【請求項５】
前記非線形係数Ｊは対称行列である、
請求項３記載の演算システム。
【請求項６】
前記非線形係数Ｊのｉ行ｉ列目の要素は０である、
請求項５記載の演算システム。
【請求項７】
前記サンプリングブロックには、前記差分計算ブロックの出力Ａ、前記重み信号ＳＷ、前記温度信号ＴＥ、制御信号ＥＮ、および、前記変数メモリに記憶されている値が入力され、
前記制御信号ＥＮが第１の値のとき−（２−｜ｙｉ｜）以上（２−｜ｙｉ｜）以下、前記制御信号ＥＮが第２の値のとき−（２−｜ｘｉ｜）以上（２−｜ｘｉ｜）以下を定義域とする正規分布からランダムに１または複数の値をサンプリングして出力し、
前記正規分布は、前記出力Ａ、前記重み信号ＳＷ、および前記温度信号ＴＥに基づいて形成される、
請求項４記載の演算システム。
【請求項８】
前記正規分布は、平均Ａi／ｗi、分散Ｔ／ｗiの正規分布であり、
ただし、Ａiは前記出力Ａのｉ番目の値、Ｔは前記温度信号ＴＥの値である、
請求項７記載の演算システム。
【請求項９】
前記次状態決定ブロックは、熱浴法および過剰緩和法の少なくとも一つに基づいて、変数の次状態を計算する、
請求項１記載の演算システム。
【請求項１０】
前記変数の状態を示す値ｘ１、…、ｘＮおよびｙ１、…、ｙＮの一つを記憶する多値メモリを備えるユニットを複数備え、
前記ユニットのそれぞれは、前記差分計算ブロックの一部の機能を実行する差分計算部と、前記サンプリングブロックの一部の機能を実行するサンプリング部と、前記次状態決定ブロックの一部の機能を実行する次状態決定部を備え、
前記変数の状態を示す値ｘｉまたはｙｉの一つを記憶する多値メモリを備えるユニットにおいては、
前記差分計算部は、前記非線形係数Ｊ、前記線形係数ｈ、対角行列Ｗのｉ番目の対角成分ｗｉ、および自ユニットの多値メモリが記憶する値がｘｉのときはＮ次元ベクトル（ｙ１、…、ｙＮ）を、自ユニットの多値メモリが記憶する値がｙｉのときはＮ次元ベクトル（ｘ１、…、ｘＮ）を入力とし、
Ａｉ＝ｈｉ＋ｗｉｓｉ＋Σｉｊｓｊ
（ただし、ｈｉは線形係数ｈのｉ番目の要素、ｓは自ユニットの多値メモリが記憶する値がｘｉのときはｙ、自ユニットの多値メモリが記憶する値がｙｉのときはｘを示す）を出力とする、
請求項４記載の演算システム。
【請求項１１】
前記サンプリング部は、前記差分計算部の出力Ａｉ、前記対角成分ｗｉ、前記温度信号ＴＥ、制御信号ＥＮ、および、前記変数メモリに記憶されている値が入力され、
前記制御信号ＥＮが第１の値のとき−（２−｜ｙｉ｜）以上（２−｜ｙｉ｜）以下、前記制御信号ＥＮが第２の値のとき−（２−｜ｘｉ｜）以上（２−｜ｘｉ｜）以下を定義域とする平均Ａi／ｗi、分散Ｔ／ｗiの正規分布からランダムに１または複数の値をサンプリングして出力する、
（ただし、Ｔは前記温度信号ＴＥの値である）
請求項１０記載の演算システム。
【請求項１２】
請求項２記載の演算システムと、前記演算システムを制御する計算機を備える情報処理装置であって、
前記情報処理装置は、記憶部と、変数値読出部とを備え、
前記記憶部は、前記混合整数二次計画問題の変数の定義域を記憶し、
前記変数値読出部は、前記変数メモリから値を読み出し、前記変数の定義域に基づいて、前記連続値の少なくとも一部を２値に変換する、
情報処理装置。
【請求項１３】
請求項１１記載の演算システムと、前記演算システムを制御する計算機を備える情報処理装置であって、
前記情報処理装置は、記憶部と、変数値読出部とを備え、
前記記憶部は、前記混合整数二次計画問題の変数の定義域を記憶し、
前記変数値読出部は、前記変数メモリから値を読み出し、前記変数の定義域に基づいて、前記連続値を２値に変換する、
情報処理装置。
【請求項１４】
請求項４記載の演算システムと、前記演算システムを制御する計算機を備える情報処理装置で実行する最適解探索処理方法であって、
前記計算機の記憶部に、二次計画形式問題データと、前記二次計画形式問題データの変数の定義域である定義域データを準備する第１のステップ、
前記計算機のモデル係数設定部が、前記非線形係数メモリに前記非線形係数Ｊを設定し、前記線形係数メモリに前記線形係数ｈの値を設定する第２のステップ、
前記計算機の重み設定部が前記重み信号ＳＷの値を決定する第３のステップ、
前記計算機の変数値初期化部が、前記変数メモリに格納されている各変数の値を初期化する第４のステップ、
前記計算機の相互作用演算実行部が、前記演算システムの前記状態遷移計算ブロックに前記変数の次状態の計算を実行させる第５のステップ、
前記計算機の変数読出部が、前記変数メモリから各変数の値を読み出し、前記定義域データに基づいて変換を行う第６のステップ、
を実行する最適解探索処理方法。
【請求項１５】
請求項１１記載の演算システムと、前記演算システムを制御する計算機を備える情報処理装置で実行する最適解探索処理方法であって、
前記計算機の記憶部に、二次計画形式問題データと、前記二次計画形式問題データの変数の定義域である定義域データを準備する第１のステップ、
前記計算機のモデル係数設定部が、前記非線形係数メモリに前記非線形係数Ｊを設定し、前記線形係数メモリに前記線形係数ｈの値を設定する第２のステップ、
前記計算機の重み設定部が前記重み信号ＳＷの値を決定する第３のステップ、
前記計算機の変数値初期化部が、前記変数メモリに格納されている各変数の値を初期化する第４のステップ、
前記計算機の相互作用演算実行部が、前記演算システムの前記状態遷移計算ブロックに前記変数の次状態の計算を実行させる第５のステップ、
前記計算機の変数読出部が、前記変数メモリから各変数の値を読み出し、前記定義域データに基づいて変換を行う第６のステップ、
を実行し、
前記二次計画形式問題データは、２値を取る変数と実数値を取る変数が混在している混合整数二次計画問題を表すデータであり、
前記定義域データは、各変数が２値を取るか実数値を取るかを示している、
最適解探索処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、演算装置、及び情報処理方法等に関し、最適解探索処理を実行する技術に関する。
【背景技術】
【０００２】
特許文献１には、「イジングモデルの１つのスピンを３以上の状態で表現する値を記憶する第１のメモリセルと、１つのスピンに相互作用を及ぼす他のスピンからの相互作用を示す相互作用係数を記憶する第２のメモリセルと、他のスピンの状態を表現する値と前記相互作用係数を定数または変数として持つ関数に基づいて、１つのスピンの次状態を決定する論理回路と、を有する単位ユニットを複数備える半導体装置」が開示される。【０００３】
特許文献２には、任意の結合を持つイジングモデルに対して、マルコフ連鎖モンテカルロ法の要求する理論的背景を満たしつつ、全スピンを同時に確率的更新して最適解探索を実現する方法について記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−５１３１４号公報
【特許文献２】ＷＯ２０１９／２１６２７７号公報
【非特許文献】
【０００５】
【非特許文献１】Okuyama, T., Sonobe, T., Kawarabayashi, K. I., & Yamaoka, M. (2019). Binary optimization by momentum annealing. Physical Review E, 100(1), 012111.
【非特許文献２】Botev, Z. I. (2017). The normal law under linear restrictions: simulation and estimation via minimax tilting. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 79(1), 125-148.
【非特許文献３】Neal, R. M. (1998). Suppressing random walks in Markov chain Monte Carlo using ordered overrelaxation. In Learning in graphical models (pp. 205-228). Springer, Dordrecht.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
物理現象や社会現象の多くは相互作用モデルで表現可能である。相互作用モデルは、モデルを構成する複数のノードと、ノード間の相互作用、さらに必要であればノード毎に作用する係数で定義される。物理学や社会科学の分野においては、イジングモデルを始めとする種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。【０００７】
この相互作用モデルに関係づけられた指標を最小化または最大化するノード状態を求めることが社会課題の解決において重要である。例えば、ソーシャルネットワークのクリークを検知する問題や、金融分野のポートフォリオ最適化問題が挙げられる。これらは、オペレーションズ・リサーチの分野では、無制約二値二次計画問題や混合二値二次計画問題に大別される。【０００８】
本発明は上述の背景に鑑みてなされたもので、イジングモデルの基底状態探索を含む、混合二値二次計画問題の最適解探索を高速に実行可能な技術の提供を目的とする。
【課題を解決するための手段】
【０００９】
本発明の好ましい一側面は、混合整数二次計画問題の変数の状態を示す値を記憶する変数メモリと、前記変数の状態を示す値の次状態を計算する状態遷移計算ブロックと、前記状態遷移計算ブロックの非線形係数を記憶する非線形係数メモリと、前記状態遷移計算ブロックの線形係数を記憶する線形係数メモリと、前記状態遷移計算ブロックの重み信号を受信する重み入力線と、前記状態遷移計算ブロックの温度信号を受信する温度入力線と、を備える演算システムである。前記状態遷移計算ブロックは、前記重み信号と前記非線形係数と前記線形係数を用いて差分計算を計算する差分計算ブロックと、前記重み信号と前記温度信号と前記差分計算ブロックの出力値を用いて、区間制約付きの確率分布からランダムにサンプリングするサンプリングブロックと、前記変数メモリから読み出した値を用いて、変数の次状態を計算する次状態決定ブロックと、を備える。【００１０】
さらに好ましい例では、前記変数メモリは、前記変数の状態を示す値ｘ１、…、ｘＮおよびｙ１、…、ｙＮとして連続値を記憶する。【００１１】
本発明の好ましい他の一側面は、上記の演算システムと、前記演算システムを制御する計算機を備える情報処理装置である。前記情報処理装置は、記憶部と、変数値読出部とを備え、前記記憶部は、前記混合整数二次計画問題の変数の定義域を記憶し、前記変数値読出部は、前記変数メモリから値を読み出し、前記変数の定義域に基づいて、前記連続値の少なくとも一部を２値に変換する。
【発明の効果】
【００１２】
本発明によれば、混合二値二次計画問題と呼ばれる最適化問題を高速に解くことができる。上記した以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】最適化問題の変数配列および目的関数値の関係を示す概念図である。
【図２】実施例の説明に供する図である。
【図３】実施例の説明に供する図である。
【図４】情報処理装置の概略的な構成を示すブロック図である。
【図５】演算システムのブロック図である。
【図６】情報処理装置が備える主な機能を示す機能ブロック図である。
【図７】最適解探索処理を説明するフローチャートである。
【図８】演算システムの詳細ブロック図である。
【図９】演算システムを構成するユニットのブロック図である。
【発明を実施するための形態】
【００１４】
以下、実施の形態を図面に基づいて詳細に説明する。尚、以下の説明において、同一の又は類似する構成に共通の符号を付して重複した説明を省略することがある。また同一あるいは同様の機能を有する要素が複数ある場合に同一の符号に異なる添字を付して説明することがある。また複数の要素を区別する必要がない場合は添字を省略して説明することがある。
【００１５】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
以下で説明される一実施例は、混合整数二次計画問題の変数の状態を示す値を記憶する変数メモリと、前記変数メモリに対応して状態遷移計算ブロックの非線形係数を記憶する非線形係数メモリと、前記変数メモリに対応して状態遷移計算ブロックの線形係数を記憶する線形係数メモリと、状態遷移計算ブロックの重み信号を受信する重み入力線と、状態遷移計算ブロックの温度信号を受信する温度入力線と、前記状態遷移計算ブロックの重み信号と前記状態遷移計算ブロックの非線形係数と前記状態遷移計算ブロックの線形係数を用いて差分計算を計算する差分計算ブロックと、前記状態遷移計算ブロックの重み信号と前記状態遷移計算ブロックの温度信号と前記差分計算ブロックの出力値を用いて、区間制約付きの確率分布からランダムにサンプリングするサンプリングブロックと、前記サンプリングブロックの出力値と前記変数メモリから読み出した値を用いて、変数の次状態を計算する次状態計算ブロックと、を備える演算システムである。
【００１６】
一般に、整数計画問題とは、整数変数を含む最適化問題をいう。また、整数値を取る変数と実数値を取る変数が混在している場合は、混合整数計画問題という。二次計画問題となる混合整数計画問題は，混合整数二次計画問題という。本明細書では、特に２値を取る変数と実数値を取る変数が混在している混合整数二次計画問題を、混合二値二次計画問題と呼ぶことにする。まず、混合二値二次計画問題の意義を説明する。
【００１７】
解きたい最適化問題によっては２値変数と連続変数が混合することがある。例えば、金融分野の問題において、金融商品の購入比率は０％、もしくは１０％〜１００％ということがある。購入しないならば当然０％で、購入するならば最低単位の１０％以上とする場合などである。このとき、購入するかしないかを示す２値変数ｘ∈｛−１，１｝と連続変数ｙ∈［−１，１］を用いて、購入比率ｒは、
ｒ＝{(１＋ｘ)／２} × {０.１＋０.９×(１＋ｙ))／２}
とすることで表現できる。
【００１８】
連続変数ｙを複数の２値変数で離散的に表現することも可能だが、連続変数を扱えるようにすることで変数の個数が１個で済む。よって、連続変数を計算機システムで扱えるようにすることで、最適化問題の変数の個数を減らせて、計算機資源で扱える問題規模を大きくすることができる。また、ある問題を解くとき、変数の個数が減るため計算時間を短くすることが期待できる。
【００１９】
一方、問題を連続変数のみで扱うことも可能だが、連続変数では、−１または＋１しか値として認めたくない変数に対しても０.３などの値も許してしまうことになる。この場合、「変数ｘは−１または＋１である」という制約をたとえばペナルティー関数(ｘ２−１)２として目的関数に足せば、変数ｘを連続変数として扱うことも可能であるが、これでは二次式にならなくなる。また、目的関数が複雑になって最適解を見つけづらいなどの課題がある。よって、二次計画問題を作る際に最初から所定の変数の定義域を２値あるいは離散値とし、計算機で取り扱えるようにする構成のメリットがある。本明細書では以降、最適化問題とのみ称する場合は、混合二値二次計画問題を表すものとする。
【００２０】
最適化問題（ここでは混合二値二次計画問題の意）の変数はｓ１、…、ｓＮのＮ個存在する。そして各変数の定義域Ｄｉは２値｛−１、＋１｝または連続値［−１、＋１]のいずれかである。どちらであるかは問題毎に決定される。そして、最適化問題の目的関数Ｈは次式１で表される。すなわち、目的関数Ｈが変数ｓの２次式で表される。
【００２１】
【数１】
0006925546.tif 000002
式１において、ｓ＝［ｓ１、…、ｓＮ］のＮ次元ベクトル、ＪはＮ×Ｎ対称行列、ｈはＮ次元ベクトルである。前述の通り、変数毎に定義域が異なるので、混合二値二次計画問題は次式２の通り表せる。
【００２２】
【数２】
0006925546.tif 000003
ここで、添字の集合Λｂ、Λｃを式３の通り定義する。
【００２３】
【数３】
0006925546.tif 000004
集合Ｓｍｉｘｅｄ＝｛ｓ | ｓｉ ∈ Ｄｉ｝を定義する。これらの表記を用いると、式２は次式４とも表現できる。
【００２４】
【数４】
0006925546.tif 000005
以降、すべてのｉ∈Λｂに対して行列Ｊのｉ行ｉ列目の要素は０とする。なぜならば、この変換は式２の最適解を変えないためである。
【００２５】
もしすべてのｉに対してＤｉ＝｛−１、＋１｝ならば、この最適化問題はイジングモデルの基底状態探索問題と呼ばれる組合せ最適化問題である。本実施形態では、イジングモデルの基底状態探索も含む最適化問題において、マルコフ連鎖モンテカルロ法（以降、ＭＣＭＣ（Markov Chain Monte Carlo methods）と称する）を活用したアルゴリズムで最適解もしくは近似解を探索する。
【００２６】
図１は変数配列に対する目的関数値のランドスケープを表す概念図である。グラフの横軸は変数配列ｓ、縦軸は目的関数Ｈ（ｓ）である。ＭＣＭＣは現在の状態ｓから、状態ｓの近傍のある状態ｓ’への確率的な遷移を繰り返す。状態ｓから状態ｓ’に遷移する確率を、遷移確率Ｐ（ｓ，ｓ’）と称する。遷移確率Ｐの例としてメトロポリス法（Metropolis method）や熱浴法（heat-bath algorithm）が挙げられる。
【００２７】
遷移確率は温度と呼ばれるパラメータを有し、これは状態間の遷移のし易さを表す。温度を大きな値から徐々に減少させつつＭＣＭＣを実行するとき、目的関数値が最も低い状態に漸近的に収束する。これを利用して最小化問題の最適解または近似解を求める手法が、シミュレーティッド・アニーリング（以下、ＳＡ（Simulated Annealing）と称する）や非特許文献１で提案されたモメンタム・アニーリング（以下、ＭＡ（Momentum Annealing）と称する）である。
【００２８】
式４に示す最小化問題を解くにあたり、代わりに次式５の最小化問題を解くことを考える。ただし集合Ｓｒｅｌａｘｅｄ＝｛ｓ | ｓi ∈ ［−１、＋１]｝である。
【００２９】
【数５】
0006925546.tif 000006
式５の最適解をｓ＊＝［ｓ１＊、…、ｓＮ＊］と表す。証明は割愛するが、次式６で求まるｓ＋＝［ｓ１＋、…、ｓＮ＋］は式４の最適解の一つとなる。本出願で示す実施例の目標は式２の最適解探索であるが、式５の最適解ｓ＊を求解後に式６の変換を得ても、所望の解ｓ＋を得られるということである。ただし、関数ｓｇｎは引数が０以上ならば＋１、それ以外ならば−１を返す関数である。
【００３０】
【数６】
0006925546.tif 000007
ここで、Ｎ次元ベクトルｖ＝［ｖ１、…、ｖＮ］を導入して、式７に示す関数Ｈ’を定義する。
【００３１】
【数７】
0006925546.tif 000008
ただし、関数Ｖ（ｖ）は式８に記す定義の通りである。
【００３２】
【数８】
0006925546.tif 000009
行列Ｗ＝ｄｉａｇ（ｗ１、…、ｗＮ）は任意の対角行列で、ｖiは［−１、＋１］を動く実数である。式５に示す最小化問題の代わりにＨ’(ｓ、ｖ) の最小化問題である式９を導入する。
【００３３】
【数９】
0006925546.tif 000010
【００３４】
２つのＮ次元ベクトルｘ＝s＋ｖ、ｙ＝s−ｖを定義する。本来解きたい最適化問題の目的関数はＨのみだが、ここにＶという関数を導入することで、ＭＣＭＣで並列更新可能な関数を新たに得られるようにしている。すると、関数Ｈ’は式１０と書き直せる。
【００３５】
【数１０】
0006925546.tif 000011
つまり、式５の最小化問題は式１１の最小化問題と言い換えられる。
【００３６】
【数１１】
0006925546.tif 000012
式１１の最適解をｘ＊、ｙ＊と表すと、s＊＝（ｘ＊＋ｙ＊）／２なる等式が成り立つ。これらの議論はＷが零行列でも成り立つ。
【００３７】
以上より、式２で表す混合二値二次計画問題の最適解は、式１１に示す制約付き二次計画問題の解から求められる。この解を求めるために、ＭＣＭＣを活用する。
【００３８】
図２は、式１１における関数Ｇの各変数どうしの関係を示したグラフィカルモデルである。関数Ｇの各変数どうしの関係は、完全２部グラフで表すことができる。関数Ｇ内で変数ｘｉに乗ぜられる変数は、ｙ１、…、ｙＮとｘｉのみである。ＭＣＭＣは変数値を確率的に更新するとき、その変数に係わる変数の値を用いる。つまり、変数ｘ１の値を更新するときｙ１、…、ｙＮおよびｘ１を求め、それ以外の変数（ここではｘ２、…、ｘＮ）を参照しない。これは他の変数、例えばｘ２の値の更新でも同様である。ゆえに、変数配列ｙの値が一定ならば、配列ｘのそれぞれの値を独立に同時に確率的更新してもＭＣＭＣの理論的要請は破らない。
【００３９】
同様に変数ｙｉに乗ぜられる変数も、ｘ１、…、ｘＮとｙｉのみである。ゆえに、変数配列ｘの値が一定の下で、配列ｙのそれぞれの値を独立に同時に確率的更新できる。
【００４０】
以上より、「ｘ１、…、ｘＮの同時更新」と「ｙ１、…、ｙＮの同時更新」を繰り返す手続きで構成されたＭＣＭＣを実行することで、並列化による高速化という利点を享受しながら関数Ｇを最小化する配列ｘ、ｙを探索できる。
【００４１】
本実施例の議論では、行列Ｊに制約を設けていないことに注意されたい。たとえば行列Ｊの全要素が非零である場合にも、上記の議論が成り立つため、並列更新が可能である。
【００４２】
図３は、全結合グラフの例である。一方で、原問題である式２の最小化問題に対して直接、ＭＣＭＣを適用する場合、変数配列ｓの係わり方が図３に示すように全結合グラフで表現されるため一度に一変数しか確率更新できず、逐次更新に限定される。
【００４３】
ここからは、各変数に対する確率的更新の手続きを述べる。更新対象の変数をｘｉとする。変数ｙ１、…、ｙＮの値が一定下では、温度Ｔのボルツマン分布における変数ｘｉの存在確率ｐ（ｘｉ）は式１２を満たす。
【００４４】
【数１２】
0006925546.tif 000013
ただし、変数Ａiは式１３で求める値である。
【００４５】
【数１３】
0006925546.tif 000014
【００４６】
変数ｘｉとｙｉは｜ｘｉ｜＋｜ｙｉ｜≦２であるため、ｘｉの動ける範囲は−（２−｜ｙｉ｜）以上（２−｜ｙｉ｜）以下である。よって、変数ｘｉは平均Ａi／ｗi、分散Ｔ／ｗiの正規分布で−（２−｜ｙｉ｜）以上（２−｜ｙｉ｜）以下を定義域とする切断正規分布を基に、ｘｉの次状態をサンプリングすれば良い。この方法ではｘｉの現在の状態には依らずに次状態を決めるということである。ｙｉについても同様である。本明細書では、ｘとｙの変数を区別しない場合ｓと表記することがある。
【００４７】
標準正規分布に従う乱数はBox-Muller法で生成可能である。ここでは定義域が限定されるため、非特許文献２で示されたアルゴリズムを用いればよい。
【００４８】
最適解探索は、温度０における平衡状態からのサンプリングと見なせる。そのため、良質な解探索の実現には、平衡状態への短時間での収束が好ましい。平衡状態への収束性を高めるため、ＭＣＭＣでは様々な技術が提案されており、これらを活用も可能である。たとえば、非特許文献３は過剰緩和法を提案している。これは次状態の候補として、温度Ｔのボルツマン分布から１つだけではなく、Ｋ個の状態をサンプリングする。そして、サンプリングしたＫ個の状態に加えて、現在の状態の計（Ｋ＋１）個の状態を並び替えてｘｃ０≦≦ｘｃr＝ｘｉ≦ｘｃＫと表す。つまり、現在の状態は（Ｋ＋１）個の値のうち、小さい方から（ｒ＋１）番目ということである。そしてｘｃＫ＋１−ｒを次状態に採用する。この方法では、次状態がｘｉの現在の状態に依存する。
【００４９】
以上を踏まえて、図４〜図６で本発明を実現する情報処理装置の構成を示す。
【００５０】
図４は、混合二値二次計画問題の最適解を探索する情報処理装置の一例である。同図に示すように、この情報処理装置１０は、プロセッサ１１、主記憶装置１２、補助記憶装置１３、入力装置１４、出力装置１５、通信装置１６、一つ以上の演算装置２０、及びこれらの装置を通信可能に接続するシステムバス５を備える。情報処理装置１０は、例えば、その一部又は全部がクラウドシステム（Cloud System）により提供されるクラウドサーバ（Cloud Server）のような仮想的な情報処理資源を用いて実現されるものであってもよい。また情報処理装置１０は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されるものであってもよい。
【００５１】
プロセッサ１１は、例えば、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）を用いて構成されている。主記憶装置１２は、プログラムやデータを記憶する装置であり、例えば、ＲＯＭ（Read Only Memory）、ＳＲＡＭ（Static Random Access Memory）、ＮＶＲＡＭ（Non Volatile RAM）、マスクＲＯＭ（Mask Read Only Memory）、ＰＲＯＭ（Programmable ROM）等）、ＲＡＭ（Random Access Memory）（ＤＲＡＭ（Dynamic Random Access Memory）等）等である。補助記憶装置１３は、ハードディスクドライブ（Hard Disk Drive）、フラッシュメモリ（Flash Memory）、ＳＳＤ（Solid State Drive）、光学式記憶装置（ＣＤ（Compact Disc）、ＤＶＤ(Digital Versatile Disc)等）等である。補助記憶装置１３に格納されているプログラムやデータは、随時、主記憶装置１２に読み込まれる。
【００５２】
入力装置１４は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置１５は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置（ＬＣＤ（Liquid Crystal Display）、グラフィックカード等）や音声出力装置（スピーカ）、印字装置等である。通信装置１６は、他の装置と通信する通信インタフェースであり、例えば、ＮＩＣ（Network Interface Card）、無線通信モジュール、ＵＳＢ（Universal Serial Interface）モジュール、シリアル通信モジュール等である。
【００５３】
演算装置２０は、混合二値二次計画問題の最適解探索に関する処理を実行する装置である。演算装置２０は、例えば、ＧＰＵ（Graphics  Processing  Unit）のように、情報処理装置１０に装着する拡張カードの形態を取るものであってもよい。演算装置２０は、例えば、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）回路、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアによって構成される。演算装置２０は、制御装置、記憶装置、システムバス５に接続するためのインタフェース等を含み、システムバス５を介してプロセッサ１１との間でコマンドや情報の送受を行う。演算装置２０は、例えば、通信線を介して他の演算装置２０と通信可能に接続され、他の演算装置２０と協調して動作するものであってもよい。演算装置２０により実現される機能を、例えば、プロセッサ（ＣＰＵ、ＧＰＵ等）にプログラムを実行させることにより実現してもよい。
【００５４】
図４に示される演算装置２０は、後に図５で説明される。演算装置２０は、一つもしくは複数を実装することができる。
【００５５】
図５は、演算装置２０の動作原理を説明する図であり、演算装置２０を構成するシステム（以下、演算システム５００と称する。）のブロック図である。演算システム５００は変数配列ｘ１、…、ｘＮまたは変数配列ｙ１、…、ｙＮを温度Ｔにおけるボルツマン分布（式１２）からサンプリングする機能を実現する。以下、同図とともに演算装置２０の動作原理について説明する。
【００５６】
同図に示すように、演算システム５００は、変数メモリ５１１、非線形係数メモリ５１２、線形係数メモリ５１３、差分計算ブロック５１４、サンプリングブロック５１５、及び次状態決定ブロック５１６を含む。
【００５７】
各演算システム５００の変数メモリ５１１には、前述した変数ｘ１、…、ｘＮ及びｙ１、…、ｙＮを示す情報が格納される（図２参照）。
【００５８】
非線形係数メモリ５１２には、行列Ｊを表す情報が格納される。行列Ｊは一般に対称行列であり、この対称性を用いて非線形係数メモリ５１２の使用量を削減することができる。線形係数メモリ５１３には、ベクトルｈを表す情報が格納される。
【００５９】
同図に示すように、演算システム５００には、制御信号ＥＮ、重み信号ＳＷ、及び温度信号ＴＥが入力される。
【００６０】
信号ＥＮは、Ｈ（high）とＬ（low）の値を周期的に繰り返す信号で、変数配列ｘとｙいずれを更新しているかを表す。たとえば、ＥＮがＨのときは変数配列ｘを更新、Ｌのときはｙを更新と定める。この信号ＥＮにより、変数ｘ１、…、ｘＮを同時に更新し、また変数ｙ１、…、ｙＮを同時に更新する。図５では簡略化のため信号ＥＮはサンプリングブロック５１５のみに入力しているが、変数メモリなど本信号を必要とする他の箇所に対しても同様に印加する。
【００６１】
信号ＳＷは、対角行列Ｗの対角成分を表すＮ要素のベクトルを表す信号である。
【００６２】
差分計算ブロック５１４には、非線形係数メモリ５１２に格納されている行列Ｊの値、線形係数メモリ５１３に格納されているベクトルｈ、信号ＳＷ、および変数メモリ５１１に格納されている変数ｓ（ｘまたはｙ）が入力される。差分計算ブロック５１４は、信号ＥＮがＨのとき（Ｊ＋ｄｉａｇ（ｗ１、・・・、ｗＮ））ｙ＋ｈ、ＥＮがＬのとき（Ｊ＋ｄｉａｇ（ｗ１、・・・、ｗＮ））ｘ＋ｈを出力する。この出力値は前述のＡｉに相当する。
【００６３】
サンプリングブロック５１５は、差分計算ブロック５１４の出力と信号ＳＷ、温度パラメータの値を保持する信号ＴＷ、信号ＥＮ、および他の変数の値を受けとる。そしてｉ番目の要素として、信号ＥＮがＨのとき−（２−｜ｙｉ｜）以上（２−｜ｙｉ｜）以下、ＥＮがＬのとき−（２−｜ｘｉ｜）以上（２−｜ｘｉ｜）以下を定義域とする、式１２で表される切断正規分布からランダムにサンプリングして出力する。
【００６４】
次状態決定ブロック５１６は、サンプリングブロック５１５から出力される一つないしは複数の値を基に、変数の次状態を決定する。もし、ＭＣＭＣの更新則として単なる熱浴法に定めたならば、次状態決定ブロック５１６はサンプリングブロック５１５の出力値を１つだけ受け取り、それをそのまま変数メモリ５１１に書き込めばよい。また、ＭＣＭＣの更新則として公知の過剰緩和法を用いるならば、次状態決定ブロック５１６はサンプリングブロック５１５から複数の値、そして変数メモリ５１１から更新対象の変数の現在値を受け取り、過剰緩和法に従って１つ選択して、変数メモリ５１１に書き込む。周知のように、過剰緩和法では，直前の状態との相関が負となるように次の状態を決める。
【００６５】
図６に情報処理装置１０が備える主な機能（ソフトウェア構成）を示している。同図に示すように、情報処理装置１０は、記憶部６００、モデル変換部６１１、モデル係数設定部６１２、重み設定部６１３、変数値初期化部６１４、温度設定部６１５、相互作用演算実行部６１６、及び変数値読出部６１７を備える。これらの機能は、プロセッサ１１が、主記憶装置１２に格納されているプログラムを読み出して実行することにより、もしくは、演算装置２０が備えるハードウェアにより実現される。尚、情報処理装置１０は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、ＤＢＭＳ（DataBase Management System）等の他の機能を備えていてもよい。
【００６６】
上記機能のうち記憶部６００は、問題データ６０１、二次計画形式問題データ６０２、定義域データ６０３、及び演算装置制御プログラム６０４を、主記憶装置１２又は補助記憶装置１３に記憶する。問題データ６０１は、例えば、最適化問題等を公知の所定の記述形式で記述したデータである。問題データ６０１は、例えば、ユーザがユーザインタフェース（入力装置、出力装置、通信装置等）を介して設定する。
【００６７】
二次計画形式問題データ６０２は、モデル変換部６１１が、問題データ６０１を式４が示す二次計画問題のフォーマットに合致する形式のデータに変換することにより生成されるデータである。この変換にあたり、与えられた各変数の定義域は、定義域データ６０３に書き込まれる。定義域データは、例えば各変数が２値を取るか実数値を取るかを示している。演算装置制御プログラム６０４は、相互作用演算実行部６１６が演算装置２０を制御する際に実行する、もしくは相互作用演算実行部６１６が個々の演算装置２０にロードして演算装置２０に実行させるプログラムである。
【００６８】
モデル変換部６１１は、問題データ６０１を二次計画問題のフォーマットである二次計画形式問題データ６０２に変換する。このために、式１から式１１を導出する機能を、ソフトウェアあるいはハードウェアとしてモデル変換部６１１に実装しておけばよい。モデル変換部６１１の機能は必ずしも情報処理装置１０に実装されていなくてもよく、情報処理装置１０が、他の情報処理装置等で生成された二次計画形式問題データ６０２を入力装置１４や通信装置１６を介して取り込むようにしてもよい。
【００６９】
モデル係数設定部６１２は、二次計画形式問題データ６０２に基づく、式４の行列Ｊを非線形係数メモリ５１２に、ベクトルｈを線形係数メモリ５１３に設定する。
【００７０】
変数値初期化部６１４は、演算装置２０の変数メモリ５１１に格納されている各変数の値を初期化する。変数値初期化部６１４は、例えば、各変数の値を−１以上＋１以下から一様に、ランダムサンプリングして決めればよい。この際に、変数に関する制約である｜ｘｉ｜＋｜ｙｉ｜≦２を満たすよう注意しなければならない。また、このときの各変数の値は連続値で扱われていることに留意されたい。
【００７１】
温度設定部６１５は、相互作用演算実行部６１６が最適解探索を行う際に用いる温度Ｔを設定する。
【００７２】
相互作用演算実行部６１６は、温度設定部６１５により設定された温度Ｔごとに、式１１で表す関数Ｇを最小化する変数配列ｘおよびｙを探索する演算（以下、相互作用演算と称する。）を演算装置２０に実行させる。相互作用演算に際し、相互作用演算実行部６１６は、例えば、温度Ｔを高いほうから低いほうに向けて変化させる。
【００７３】
変数値読出部６１７は、相互作用演算実行部６１６による最適解探索が終了すると、変数メモリ５１１に格納されている変数配列ｘおよびｙを読み出す。ここで読み出される値は、式１１の解である。上述の議論に従って、Ｎ次元ベクトルｓ＊＝（ｘ＋ｙ）／２を計算する。そして定義域データ６０３を読み出し、式６で得られるベクトルｓ＋を最終的な解として出力装置１５や通信装置１６に出力する。つまり、定義域データ６０３にてｉ番目の定義域が｛−１、＋１｝と判明すればｓｇｎ（ｓ＊ｉ）、ｉ番目の定義域が［−１、＋１］ならばｓｉ自体を出力するということである。このようにして、定義された値域に応じた解が求められる。
【００７４】
図７は、最適解探索に際し情報処理装置１０が行う処理（以下、最適解探索処理Ｓ７００と称する。）を説明するフローチャートである。以下、同図とともに最適解探索処理Ｓ７００について説明する。尚、以下において、符号の前に付している「Ｓ」の文字は処理ステップの意味である。最適解探索処理Ｓ７００は、例えば、入力装置１４を介してユーザからの指示等を受け付けることにより開始される。
【００７５】
同図に示すように、まずモデル変換部６１１が、問題データ６０１を二次計画形式問題データ６０２に変換する（Ｓ７１１）。二次計画形式問題データは、たとえば式１で表現される関数Ｈにおける行列Ｊ、ベクトルｈを任意の形式で表現する。記憶部６００が既に二次計画形式問題データ６０２を記憶している場合は当該処理Ｓ７１１を省略する。Ｓ７１１の処理と、Ｓ７１２以降の処理とは、夫々を異なる装置で実行するようにしてもよい。またＳ７１１の処理と、Ｓ７１２以降の処理とを異なるタイミングで実行するようにしてもよい（例えば、Ｓ７１１の処理を事前に行っておくことが考えられる。）。
【００７６】
続いて、モデル係数設定部６１２が、非線形係数メモリ５１２および線形係数メモリ５１３に行列Ｊとベクトルｈの値を設定する（Ｓ７１２）。メモリの値は、ユーザインタフェース（例えば、入力装置１４、出力装置１５、通信装置１６等により実現される。）を介してユーザが設定又は編集することもできる。
【００７７】
続いて、重み設定部６１３が信号ＳＷの値を決定する。前述の式８の説明通り、最適解を探索する上で信号ＳＷは任意の値を取ることが許される。そのため、信号値は常に０としても良い。この場合は計算の負荷を軽減することができる。また、特許文献２の式３〜式５に示すように行列Ｊの固有値から決定しても良い。あるいは、行列Ｊの行和から決定しても良い。信号ＳＷの値算出の計算は、演算装置２０内またはプロセッサ１１で実行してもよい。あるいはユーザが自分で設定してもよい（Ｓ７１３）。
【００７８】
続いて、変数値初期化部６１４が、変数メモリ５１１に格納されている各変数の値を初期化する（Ｓ７１４）。変数メモリ５１１に格納する値は連続値である。先に述べたように初期値はランダムでよい。以上で、式１１を表現するパラメータが設定されたことになる。
【００７９】
続いて、温度設定部６１５が、最適解探索にて使用する温度パラメータの系列Ｔｋ（k=1,2,3、…）を設定する（Ｓ７１５）。尚、上記の添字ｋは設定される温度Ｔの種類を表す。温度Ｔの設定方法については、たとえば特許文献１の方法を採用可能である。
【００８０】
続いて、相互作用演算実行部６１６が、図５に示す演算システム５００の演算により、変数配列の確率的な同時更新を実行する（Ｓ７１６）。
【００８１】
続いて、相互作用演算実行部６１６は、停止条件が成立したか否か（例えば、温度Ｔが予め設定された最低温度に達したか否か）を判定する（Ｓ７１７）。停止条件が成立したと相互作用演算実行部６１６が判定した場合（Ｓ７１７：ＹＥＳ）、処理はＳ７１８に進む。一方、停止条件が成立しないと相互作用演算実行部６１６が判定した場合（Ｓ７１７：ＮＯ）、処理はＳ７１６に戻る。
【００８２】
Ｓ７１８では、変数値読出部６１７が、変数メモリ５１１に格納されている変数の値と定義域データ６０３に格納されている二次計画形式問題データ６０２の各変数の定義域を読みだす。そして、式６に基づいた変換を通じたベクトルを算出して、式２もしくは式４の解として出力する。以上で最適解探索処理Ｓ７００は終了する。
【００８３】
以上、詳細に説明したように、本実施形態の情報処理装置１０によれば、混合二値二次計画問題の最適解探索を効率よく行うことができる。そのため、最適化問題を効率よく解くことができる。尚、情報処理装置１０（演算装置２０を含む）は、シンプルな構成であるので安価かつ容易に製造することができる。
【００８４】
演算システム５００は、既に述べた最適化問題を解く計算を実行する機能を備える限り、ソフトウェアで構成してもよいし、ハードウェアで構成してもよい。具体的には、アニーリング方式において電子回路(デジタル回路など)で実装するハードウェアだけでなく、超伝導回路などで実装する方式でもよい。また、アニーリング方式以外にてイジングモデルを実現するハードウェアでもよい。例えばレーザーネットワーク方式（光パラメトリック発振）、量子ニューラルネットワークなどが知られている。また、一部の考え方が異なるものの、イジングモデルで行う計算をアダマールゲート、回転ゲート、制御ＮＯＴゲートといったゲートで置き換えた量子ゲート方式も、本実施例の構成として採用することができる。
【００８５】
演算システム５００の具体的な実装例として、特許文献１で説明されているＣＭＯＳ（Complementary Metal-Oxide Semiconductor）集積回路や、ＦＰＧＡ(Field Programmable Gate Array)上の論理回路として実装する例を説明する。
【００８６】
特許文献１の技術では、ＳＲＡＭ(Static Random Access Memory)の技術を適用したユニットを複数配置し、各ユニットに変数を格納するメモリと変数を更新するための回路を配置する。
【００８７】
図８は、ＳＲＡＭの技術を本実施例の演算システム５００に適用した場合の回路構成例を示すブロック図である。複数のユニット８０１がアレイユニット８０２を構成している。このような構成は半導体製造技術を応用して製造可能である。
【００８８】
一つのユニット８０１には、一つの変数ｘ１、…、ｘＮ及びｙ１、…、ｙＮのいずれかを記憶する多値メモリ９０１と、多値メモリ９０１の値を更新するための構成が含まれる。すなわち、ユニット８０１は２Ｎ個準備される。
【００８９】
図８の構成例を、一般化されている図５の構成も参照しつつ説明する。非線形係数メモリ５１２と線形係数メモリ５１３に格納されるデータは、モデル係数設定部６１２から設定される。非線形係数メモリ５１２には、Ｎ×Ｎ行列Ｊが格納されるが、これは全てのユニット８０１で共通に用いられる。また、線形係数メモリ５１３にはＮ次元ベクトルｈが格納されるが、これは全てのユニット８０１で共通に用いられる。回路規模を縮小するために、これらのメモリは各ユニット８０１共通のものとした。よって、非線形係数メモリ５１２と線形係数メモリ５１３は、全てのユニット８０１に係数Ｊとｈを供給するが、図８ではそのための信号線は省略している。なお、原理的には非線形係数メモリ５１２と線形係数メモリ５１３を、各ユニット８０１が個々に備えてもよい。
【００９０】
重みメモリ８０３には対角行列Ｗの対角成分を表すＮ要素のベクトル（ｗ１、…、ｗＮ）が格納される。このデータは重み設定部６１３で設定されたものである。ｘｉ、ｙｉを記憶するｉ番目のユニットは、ｉ番目の成分ｗｉを使用するので、ユニット８０１毎に信号ＳＷの値を切り替える必要がある。図８ではユニット８０１に信号ＳＷを供給する信号線は省略している。
【００９１】
温度設定部６１５から供給される温度信号ＴＥは、全てのユニット８０１に供給される。温度信号の機能や構成は、従来技術を踏襲するものである。ユニット８０１に信号ＴＥを供給する信号線は省略している。
【００９２】
相互作用ドライバ８０４は、変数ｘの更新を許可する信号と、変数ｙの更新を許可する信号を交互に各ユニット８０１に入力する。これにより、変数ｘ１〜ｘＮが同時に更新され、変数ｙ１〜ｙＮが同時に更新される。
【００９３】
ＳＲＡＭインタフェース８０５は、ＳＲＡＭの回路構成を応用して作成されたユニット８０１の変数を格納するメモリに対して書き込みおよび読み出しを行う。演算システム５００での処理終了後に読み出された変数は、変数値読出部６１７に送られる。変数値読出部６１７は、定義域データ６０３に基づいて、読み出した変数を連続値あるいは２値として出力することにより、混合二値二次計画問題の解を得る。
【００９４】
コントローラ８０６は、相互作用演算実行部６１６の指示により、演算システム５００の初期化や処理の終了報告を行う。
【００９５】
図９は、一つのユニット８０１の回路構成例を示す図である。一つのユニットには、連続変数ｘ１、…、ｘＮ及びｙ１、…、ｙＮのいずれか一つを記憶する多値メモリ９０１が含まれる。
【００９６】
差分計算回路９０２は、差分計算ブロック５１４の機能を実現する。差分計算回路９０２には、多値メモリ９０１の記憶する変数がｘ１、…、ｘＮのいずれかの場合には、（ｙ１、…、ｙＮ）のベクトルが入力される。また多値メモリ９０１の記憶する変数がｙ１、…、ｙＮのいずれかの場合には、（ｘ１、…、ｘＮ）のベクトルが入力される。これらの変数ベクトルは、他のユニット８０１の多値メモリ９０１からＳＲＡＭインタフェース８０５が読み出して生成する。また、係数であるＮ×Ｎ行列ＪとＮ次元ベクトルｈが入力される。また、重みｗｉが入力される。差分計算回路９０２は、これらの入力に対して（Ｊ＋ｄｉａｇ（ｗ１、・・・、ｗＮ））ｓ＋ｈ（ｓはｘまたはｙの変数ベクトル）のｉ行目の値Ａｉを出力することになる。
【００９７】
サンプリング回路９０３は、サンプリングブロック５１５の機能を実現する。サンプリング回路９０３には、出力Ａｉ、信号ＥＮ、信号ＳＷ、信号ＴＥ、および、多値メモリ９０１の記憶する変数がｘｉの場合はｙｉが、多値メモリ９０１の記憶する変数がｙｉの場合はｘｉが入力される。そして、式１２に基いて変数ｓｉの存在確率ｐ（ｓｉ）から変数の次状態の候補をサンプリングする。
【００９８】
状態決定回路９０４は、サンプリング回路９０３から出力される一つないしは複数の候補に基づいて、変数の次状態を決定する。状態決定回路９０４では、たとえば、過剰緩和法に従う場合には、サンプリング回路９０３から複数の候補を得ると、多値メモリ９０１の直前の状態との相関が負となる候補を選択して次状態を決定する。決定された次状態は多値メモリ９０１に格納される。
【００９９】
以上では、差分計算ブロック５１４、サンプリングブロック５１５、次状態決定ブロック５１６は、ＦＰＧＡ等のハードウェアを想定したが、例えば、ＧＰＵやベクトル型計算機などに搭載された多数の演算器を活用したソフトウェア実装も可能である。このように複数のユニット８０１を備えることにより、並列的な変数の更新が可能となる。
【０１００】
以上、一実施形態について詳述したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１０１】
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１０２】
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１０３】
また以上に説明した情報処理装置１０の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、情報処理装置１０が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
【０１０４】
また前述した各種のデータを格納するデータベースの構成（スキーマ（Schema）等）は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【産業上の利用可能性】
【０１０５】
情報処理装置、演算装置、情報処理方法等に利用することが可能である。
【符号の説明】
【０１０６】
１０  情報処理装置、１１  プロセッサ、１２  主記憶装置、２０  演算装置、５１１  変数メモリ、５１２  非線形係数メモリ、５１３  線形係数メモリ、５１４  差分計算ブロック、５１５  サンプリングブロック、５１６  次状態決定ブロック、６００  記憶部、６０１  問題データ、６０２  二次計画形式問題データ、６０３  定義域データ、６０４  演算装置制御プログラム、６１１  モデル変換部、６１２  モデル係数設定部、６１３  重み設定部、６１４  変数値初期化部、６１５  温度設定部、６１６  相互作用演算実行部、６１７  変数値読出部
【要約】
本発明の好ましい一側面は、混合整数二次計画問題の変数の状態を示す値を記憶する変数メモリと、前記変数の状態を示す値の次状態を計算する状態遷移計算ブロックと、前記状態遷移計算ブロックの非線形係数を記憶する非線形係数メモリと、前記状態遷移計算ブロックの線形係数を記憶する線形係数メモリと、前記状態遷移計算ブロックの重み信号を受信する重み入力線と、前記状態遷移計算ブロックの温度信号を受信する温度入力線と、を備える演算システムである。前記状態遷移計算ブロックは、前記重み信号と前記非線形係数と前記線形係数を用いて差分計算を計算する差分計算ブロックと、前記重み信号と前記温度信号と前記差分計算ブロックの出力値を用いて、区間制約付きの確率分布からランダムにサンプリングするサンプリングブロックと、前記変数メモリから読み出した値を用いて、変数の次状態を計算する次状態決定ブロックと、を備える。【図１】
0006925546.tif 000015
【図２】
0006925546.tif 000016
【図３】
0006925546.tif 000017
【図４】
0006925546.tif 000018
【図５】
0006925546.tif 000019
【図６】
0006925546.tif 000020
【図７】
0006925546.tif 000021
【図８】
0006925546.tif 000022
【図９】
0006925546.tif 000023