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

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

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

<>
  • 特許-情報処理装置および情報処理方法 図1
  • 特許-情報処理装置および情報処理方法 図2
  • 特許-情報処理装置および情報処理方法 図3
  • 特許-情報処理装置および情報処理方法 図4
  • 特許-情報処理装置および情報処理方法 図5
  • 特許-情報処理装置および情報処理方法 図6
  • 特許-情報処理装置および情報処理方法 図7
  • 特許-情報処理装置および情報処理方法 図8
  • 特許-情報処理装置および情報処理方法 図9
  • 特許-情報処理装置および情報処理方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-22
(45)【発行日】2024-01-30
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   G06N 99/00 20190101AFI20240123BHJP
【FI】
G06N99/00 180
【請求項の数】 10
(21)【出願番号】P 2022534532
(86)(22)【出願日】2020-07-07
(86)【国際出願番号】 JP2020026559
(87)【国際公開番号】W WO2022009307
(87)【国際公開日】2022-01-13
【審査請求日】2022-12-14
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【弁理士】
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【弁理士】
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】鈴木 基己
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開2018-041351(JP,A)
【文献】中国特許出願公開第102999477(CN,A)
【文献】山口 徹、堀 憲次,MO/MC法の並列化,ケモインフォマティクス討論会予稿集 第29回情報化学討論会 新潟,2006年,DOI:https://doi.org/10.11545/ciqs.2006.0.J01.0
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
複数個の変数から選択された変数のそれぞれの状態を変化させたときの評価関数の差分を並列して計算する差分計算手段と、
逐次に差分の計算が行われた場合の差分との誤差を解消するように、前記差分計算手段が計算した差分を修正する差分修正手段とを含む処理手段
を備えた情報処理装置。
【請求項2】
前記処理手段は、
制御パラメータとしての温度を制御する温度制御手段と、
前記温度制御手段が出力する温度と、前記差分修正手段が修正した差分とに基づいて遷移確率を計算し、計算結果に従って変数の状態を更新する遷移制御手段とをさらに含む
請求項1に記載の情報処理装置。
【請求項3】
前記差分計算手段は、イジングモデルの変数に関する評価関数の差分を計算し、
前記遷移制御手段は、マルコフ連鎖モンテカルロ法に基づいて変数の状態を更新する
請求項2に記載の情報処理装置。
【請求項4】
請求項1から請求項3のうちのいずれかに記載の処理手段を複数備え、
それぞれの前記処理手段は、
状態が更新された変数を他の処理手段に送信する送信手段と、
状態が更新された変数を他の処理手段から受信する受信手段とを含み、
前記差分修正手段は、他の処理手段から受信された状態が更新された変数の集合を使用して差分を修正する
情報処理装置。
【請求項5】
各々の処理手段における前記差分計算手段は、複数の変数からあらかじめ割り当てられた数の変数を対象として計算を行う
請求項4に記載の情報処理装置。
【請求項6】
複数個の変数から選択された変数のそれぞれの状態を変化させたときの評価関数の差分を並列して計算し、
逐次に差分の計算が行われた場合の差分との誤差を解消するように、計算された差分を修正する
情報処理方法。
【請求項7】
パラメータとしての温度と、修正された差分とに基づいて遷移確率を計算し、計算結果に従って変数の状態を更新する
請求項6に記載の情報処理方法。
【請求項8】
イジングモデルの変数に関する評価関数の差分を計算し、
マルコフ連鎖モンテカルロ法に基づいて変数の状態を更新する
請求項7に記載の情報処理方法。
【請求項9】
コンピュータに、
複数個の変数から選択された変数のそれぞれの状態を変化させたときの評価関数の差分を並列して計算する処理と、
逐次に差分の計算が行われた場合の差分との誤差を解消するように、計算された差分を修正する処理と
を実行させるための情報処理プログラム。
【請求項10】
コンピュータに、
パラメータとしての温度と、修正された差分とに基づいて遷移確率を計算させ、
計算結果に従って変数の状態を更新させる
請求項9に記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定の空間において確率分布に従うサンプルを得るためのサンプリングの制御を行う情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
磁性体の統計力学的モデルの一つとして、2値を取る変数とその二次形式で与えられるハミルトニアンによって定式化されるイジングモデルがある。イジングモデルは、磁性体のスピンの振る舞いを記述する。イジングモデルは、多くの組合せ最適化問題の評価関数として応用可能である。例えば、イジングモデルに擬似焼きなまし法を適用するによって、汎用的に最適化問題を解くことができる。
【0003】
例えば、特許文献1に、イジングモデルを用いて組合せ最適化問題を汎用的に解くアプローチが記載されている。また、非特許文献1に、数分割問題、グラフ分割問題、充足可能性問題、巡回セールスマン問題等を含む多種の組合せ最適化問題をイジングモデルまたはそれと等価なモデルに定式化する具体的な方法が記載されている。
【0004】
ある温度Tにおけるイジングモデルの確率分布は、マルコフ連鎖モンテカルロ法(MCMC)によって計算可能である。マルコフ連鎖モンテカルロ法では、スピンが1つ選択され、スピン状態を変更する際のハミルトニアンの変化量が計算される。さらに、温度に対応したボルツマン重みに従った確率によって状態更新を受理または棄却する力学系によって、温度Tとハミルトニアンに従った確率分布でスピン状態がサンプリングされる。
【0005】
以下、素朴な(一般的な)マルコフ連鎖モンテカルロ法をイジングモデルに適用する場合を例にして説明する。まず、記法と用語を説明する。
【0006】
統計力学では、関数H(x)をハミルトニアンまたはエネルギー関数と呼ぶ。ハミルトニアンが最小となる状態を基底状態と呼ぶ。
【0007】
【数1】
【0008】
(1)式において、xはi番目の変数である。イジングモデルでは、xの値は、+1または-1のいずれかである。統計力学では、それぞれの変数をスピンと呼ぶ。xはN個の変数全てからなるラベルである。Jijは、i番目の変数とj番目の変数をつなぐ結合を表す定数である。
【0009】
最適化の分野では、ハミルトニアンを評価関数またはコスト関数と呼ぶ。(2)式で表される基底状態を最適解と呼ぶ。非特許文献1には、多くの最適化問題に対するハミルトニアンが示されている。例えば、非特許文献1に示される方法によってJijが得られる。そして、(2)式で示されるような最適解を求める。
【0010】
【数2】
【0011】
マルコフ連鎖モンテカルロ法の目的は、温度Tに対して、(3)式で表される確率分布(ボルツマン分布)に従って状態xをサンプリングすることである。
【0012】
【数3】
【0013】
サンプリングの動作は、
処理1.初期状態xをランダムに決める。
処理2.N個の変数から1つをランダムに選ぶ。
処理3.選んだ変数を-1倍(フリップ)した状態をx’とし、差分Δ((4)式を参照)を計算する。フリップは、変数が1なら-1にする操作またはその逆の操作を意味する。
【0014】
Δ=H(x')-H(x) ・・・(4)
【0015】
処理4.下記の(5)式の確率で変数をフリップする。
【0016】
【数4】
【0017】
処理5.受理された場合は状態を更新(x←x’)し、そうでない場合(棄却)は状態を変更しない。
6.処理2から処理4を繰り返す。
の6つの処理からなる。
【0018】
以上の動作中で、繰り返しの回数を無限回行う極限で、状態xの出現確率は目的であった確率分布に収束することが保証されている。
【0019】
処理1~5は、マルコフ連鎖モンテカルロ法の1つの実施形態である。現在の状態から次の状態を選択する確率分布(処理2~3に相当。この確率分布を提案分布と呼ぶ。)、および処理4に現れる更新を受理する確率の選び方には任意性がある。
【0020】
しかし、収束先の確率分布が目的としていた確率分布に一致するためには、釣り合いの条件およびエルゴード性の2条件を満たすように提案分布と受理確率を選ぶ必要がある。一般には、この2条件を満たした力学系を構成することは容易ではない。よく知られた手法として、メトロポリス法(上記の処理2~4に相当)または熱浴法が採用される。
【0021】
マルコフ連鎖モンテカルロ法を用いる解法が使用される場合、対象とするモデルの規模が大きくなるにつれて処理時間が増大する。したがって、マルコフ連鎖モンテカルロ法を用いる解法には、処理時間を短縮させる工夫が求められる。大規模なモデルに対する力学系の処理が大規模計算機を用いて実行されることもある。大規模計算機が用いられる場合でも、処理時間を軽減するには、高い効率で処理を並列化することが重要である。
【0022】
力学系の状態更新を並列化する技術が記載された文献として、例えば、特許文献2、特許文献3および非特許文献2がある。特許文献2に記載された技術は、上記の処理2に当たる部分で複数個の変数を選択し、それぞれの変数について独立に処理3~4を行う。当該技術は、処理4で受理された変数のうち1つを選択し、その変数のみ状態を更新する。処理3~4は一度の繰り返しで複数回実行されるものの、独立であるため並列化が可能である。
【0023】
上述した素朴な処理と比較すると、特許文献2に記載された技術によれば、1回の繰り返しで状態が更新される頻度が高くなるので、最適化問題では解の探索効率が改善される。しかし、特許文献2では、力学系は釣り合いの条件を満たさない。よって、収束先の確率分布は不明である。また、特許文献2に記載された技術では、一般のイジングモデルにおいてボトルネックとなる差分計算(処理3)が並列数分実行される。しかし、受理されるのは多くとも1つである。他の計算結果は状態更新には利用されない。
【0024】
特許文献3に記載された技術は、変数を離散値ではなく実数値とし、ハミルトン力学に基づいて状態更新を行う。ハミルトン力学は、マルコフ連鎖モンテカルロ法とは異なり、微分方程式に従う決定論的な力学系である。当該技術は、原理的に各変数の更新を並列に行うことができる。しかし、この力学系に基づくサンプリングによる状態の確率分布の収束先は不明である。さらに、確率分布の収束性も不明である。したがって、当該技術に対して、組合せ最適化問題に応用した場合としての解法の汎用性が懸念される。
【0025】
非特許文献2に記載された技術は、特許文献2に記載された技術と同様に、処理2で複数個の変数を選択し、それぞれの変数について独立に処理3~4を行う。並列化されたそれぞれの処理には順序のラベルが与えられる。処理4で受理されたもののうち、最もラベルの若い処理が持つ変数のみ状態が更新され、他の変数については更新されない。すなわち、非特許文献2に記載された技術でも、特許文献2に記載された技術と同様に、差分計算(処理3)が並列に実行されるものの、最終的に受理される最大1つの変数に関する処理結果を除いて処理結果は捨てられる。なお、特許文献2に記載された処理は、複数個の変数に対して状態更新を試み、成功した1つを受理し他を捨てる投機的な方法と考えることができる。
【先行技術文献】
【特許文献】
【0026】
【文献】国際公開第2019/078354号
【文献】特開2018-41351号公報
【文献】特開2019-145010号公報
【非特許文献】
【0027】
【文献】A. Lucas, "Ising formulations of many NP problems", Frontiers in Physics, 2014, Volume 2, Article 5
【文献】J. Knopman and J.S. Aude, "Parallel simulated annealing: an adaptive approach", Proceedings 11th International Parallel Processing Symposium, Genva, Switzerland, 1997, pp. 522-526
【発明の概要】
【発明が解決しようとする課題】
【0028】
マルコフ連鎖モンテカルロ法を並列化する際に、特許文献2および特許文献3に記載されたような方法を用いた場合には、目的となる確率分布への収束性が破れてしまう。また、高い並列化の効率が得られない。
【0029】
特許文献2および特許文献3では、目的とする確率分布の形状を変更し、最適化問題への手法を特化手法とすることで並列化が実現されている。上述したように、それらの手法では、力学系の収束先および収束性は保証されていない。よって、それらの手法では、目的の確率分布へ収束させるためのサンプリング手法としては不十分である。
【0030】
また、特許文献2および非特許文献2に記載された技術は、複数個の差分計算を並列に行うことができる。しかし、最終的に受理される多くとも1つの変数以外の結果は捨てられ、このことからも、高い並列化の効率が得られない。
【0031】
本発明の目的は、確率分布に従うサンプルを得る場合に、力学系の収束性と高い並列化の効率が両立しない問題を解決するサンプリングの処理手法を提供することである。
【課題を解決するための手段】
【0032】
本発明による情報処理装置は、複数個の変数から選択された変数のそれぞれの状態を変化させたときの評価関数の差分を並列して計算する差分計算手段と、逐次に差分の計算が行われた場合の差分との誤差を解消するように、差分計算手段が計算した差分を修正する差分修正手段とを有する処理手段を含む。
【0033】
本発明による情報処理方法は、複数個の変数から選択された変数のそれぞれの状態を変化させたときの評価関数の差分を並列して計算し、逐次に差分の計算が行われた場合の差分との誤差を解消するように、計算された差分を修正する。
【0034】
本発明による情報処理プログラムは、コンピュータに、複数個の変数から選択された変数のそれぞれの状態を変化させたときの評価関数の差分を並列して計算する処理と、逐次に差分の計算が行われた場合の差分との誤差を解消するように、計算された差分を修正する処理とを実行させる。
【発明の効果】
【0035】
本発明によれば、確率分布に従うサンプルを得る場合に、力学系の収束性と高い並列化の効率を両立させることができる。
【図面の簡単な説明】
【0036】
図1】情報処理装置の第1の実施形態の構成例を示すブロック図である。
図2】第1の実施形態の情報処理装置の動作を示すフローチャートである。
図3】情報処理装置の第2の実施形態の構成例を示すブロック図である。
図4】第2の実施形態の情報処理装置における処理装置の構成例を示すブロック図である。
図5】第2の実施形態における処理装置の動作を示すフローチャートである。
図6】一般的な情報処理装置によるMCMCの計算の流れを示す説明図である。
図7】第2の実施形態の情報処理装置によるMCMCの計算の流れを示す説明図である。
図8】CPUを有するコンピュータの一例を示すブロック図である。
図9】情報処理装置の主要部を示すブロック図である。
図10】他の態様の情報処理装置の主要部を示すブロック図である。
【発明を実施するための形態】
【0037】
以下、本発明の実施形態を図面を参照して説明する。
【0038】
実施形態1.
[構成の説明]
図1は、情報処理装置の第1の実施形態(実施形態1)の構成例を示すブロック図である。第1の実施形態の情報処理装置100は、変数選択部101、差分計算部102、差分記憶部103、差分修正部104、遷移判定部105、状態更新部106、更新記憶部107、状態記憶部108および温度制御部109を備えている。差分計算部102は、並列動作可能なL個の計算部102~102を含む。Lは、並列数を指定する定数である。Lは、情報処理装置100の演算能力などに基づいてあらかじめ設定される。
【0039】
以下、+1または-1をとるN個の変数からなるイジングモデルと、並列数を指定する2以上N以下の定数Lとを用いる場合を例にする。上述した処理2で1つの変数が選択されたのに対して、本実施形態では、L個の変数が選択される。また、以下、状態更新の力学系がマルコフ連鎖モンテカルロ法である場合を例にして説明する。
【0040】
変数選択部101は、N個の変数のうち、更新する変数をL個選択する。差分計算部102(具体的には、L個の計算部102~102のそれぞれ。)は、変数選択部101が選択したL個の変数それぞれについて、変数を-1倍した際の評価関数の差分を独立に計算する。差分計算部102は、計算結果を差分記憶部103に保存する。
【0041】
差分記憶部103は、差分計算部102が計算した各差分を記憶する。差分修正部104は、差分記憶部103が記憶する差分と更新記憶部107が記憶する状態更新部106で更新された変数の集合とを基に差分の修正(修正値)を計算する。
【0042】
遷移判定部105は、差分修正部104が計算した差分と温度制御部109が制御する温度の値とに従って遷移確率を計算する。遷移判定部105は、その遷移確率に従って状態更新の受理/棄却を判定する。
【0043】
状態更新部106は、遷移判定部105の判定に基づいて状態記憶部108の状態を更新する。状態更新部106は、更新された変数を更新記憶部107に保存する。更新記憶部107は、更新された変数を記憶する。
【0044】
状態記憶部108は全体の変数の現在の状態を記憶する。温度制御部109は、擬似焼きなまし法を適用するための制御パラメータとしての温度を制御する。
【0045】
[動作の説明]
次に、図2のフローチャートを参照して本実施形態の動作を説明する。
【0046】
初期状態が決定されると、初期状態は状態記憶部108に格納される(ステップS100)。なお、初期状態は、ランダムに選定される。
【0047】
本実施形態では、繰り返しの回数をMとして、以下のステップS101~ステップS106の処理がM回繰り返される。
【0048】
まず、変数選択部101は、ステップS101で、状態を更新する変数をL個選択する。次に、差分計算部102(具体的には、L個の計算部102~102のそれぞれ。)は、ステップS102で、ステップS101の処理で選択されたそれぞれの変数を-1倍した際の評価関数の差分を並列に計算する。差分計算部102は、計算結果を差分記憶部103に保存する。評価関数は、例えば、(6)式のように表される。評価関数の差分は、(7)式で表される。
【0049】
【数5】
【0050】
Sは、全変数がとりうる全状態からなる集合である。
【0051】
例えば、
【0052】
【数6】
【0053】
は、スピン変数{+1,-1}である。Jijは、スピンi,j間の結合を表す実数である。
【0054】
【数7】
【0055】
は、状態x∈Sのi番目の変数が更新された状態を示す。
【0056】
次に、ステップS103~ステップS106の処理が、ステップS101の処理で選択されたL個の変数(変数iで表される。)のそれぞれについて、順番に実行される。ステップS103~ステップS106の処理は、上述した素朴なMCMCと処理とは異なるものの、同一の力学系を再現する。
【0057】
差分修正部104は、ステップS103で、差分記憶部103に記憶された変数iの評価関数の差分の値と、更新記憶部107に記憶されている、その時点までに変数状態が更新された変数j(1≦j≦N)の集合とを用いて、差分の修正((8)式を参照)を、変数iについて計算する。この修正によって、並列化しない処理による素朴な力学系で使われる差分の値に復元され、状態更新の力学系は素朴なマルコフ連鎖モンテカルロ法による差分と一致する。
【0058】
Δ(x(t),x(t)) (8)
【0059】
x(t)は現在の状態を示す。x(t)は、ステップS102の処理で差分が計算された状態を示す。そして、Δf(x(t))=Δf(x(t)+Δ(x(t),x(t))を満たすように構成される。
【0060】
次に、遷移判定部105は、ステップS104で、差分修正部104が計算した差分と温度制御部109が制御する温度の値に従って遷移確率((9)式を参照)を計算する。遷移判定部105は、ステップS105で、計算された遷移確率に従って状態更新の受理/棄却を判定する。遷移判定部105は、例えば、遷移確率値Xとした場合に、乱数生成器(図示せず)が生成した乱数r(0≦r≦1)を用いて、X≧rであるときに受理、そうでない場合に棄却、のように判定する。判定結果が「棄却」であった場合には、ステップS103に戻る。
【0061】
【数8】
【0062】
(9)式において、Δfは状態更新の際の評価関数の差分を示す。Tは温度を示す。
【0063】
ステップS105での判定結果が「受理」であった場合には、ステップS106で、状態更新部106は、状態記憶部108の変数の状態を更新する。状態更新部106は、更新された変数を更新記憶部107に保存する。
【0064】
L個の変数に対してステップS103~S106の処理が実行されたら、ステップS108に移行する(ステップS107)。実行回数がL未満であれば、ステップS103に戻る。
【0065】
情報処理装置100は、終了条件が成立したら処理を終了する(ステップS108)。終了条件が成立していない場合には、ステップS101に戻る。終了条件は、例えば、ステップS101の処理があらかじめ定められた所定回実行されたことや、評価関数の値があらかじめ定められた所定のしきい値を下回ったことである。ただし、それらは一例であって、他の条件が用いられてもよい。
【0066】
なお、温度制御部109は、ステップS105の処理で遷移判定部105が状態更新の受理/棄却を判定する際の遷移確率における温度値を決定する。温度制御部109は、温度値を、例えば定数値とする、状態更新が行われる度に温度値を下げる、状態更新が行われる度に温度値を定数倍するなどの方法で制御する。
【0067】
次に、本実施形態の効果を説明する。
一般には逐次的に差分計算および状態更新が順に行われるのに対して、本実施形態では、複数個の変数の状態遷移に伴う評価関数の差分が、ステップS102の処理で同時(並列)に計算される。そのように計算される差分には、状態更新が進むごとに、逐次に差分計算が行われた場合の差分との誤差が積もっていく。本実施形態では、ステップS103の処理で差分を補正することにより、状態更新の力学系を逐次に差分計算を行う場合と一致させる。差分の補正に要する計算量は、逐次に差分計算が行われる場合の計算量に対して小さい。よって、並列化による効率は高い。また、本実施形態における状態遷移の力学系は、逐次更新の場合と同様である。すなわち、本実施形態の情報処理装置は、釣り合いの条件を破ることなく、逐次に差分計算が行われる場合と同様の計算を並列に行うことができる。
【0068】
換言すれば、本実施形態でのマルコフ連鎖モンテカルロ法は、力学系の収束性を確保しつつ、高い効率で並列動作する。一般的なマルコフ連鎖モンテカルロ法を用いた場合の逐次更新と同じ状態遷移規則を使いつつ、高い効率で並列化できるためである。また、本実施形態の情報処理装置は、並列化に伴って力学系を変更することなく、逐次更新と同様の状態遷移を行う。よって、並列化の効果が高まる。さらに、本実施形態の情報処理装置は、計算した差分計算の結果を修正して再利用するので、非特許文献2に記載された技術が内包する高い並列化の効率が得られないという課題も解決する。
【0069】
実施形態2.
以下、第2の実施形態(実施形態2)を図面を参照して説明する。
【0070】
[構成の説明]
図3は、第2の実施形態の情報処理装置の構成例を示すブロック図である。第2の実施形態の情報処理装置200は、複数のMCMC部200~200が環状に連結されて構成される。隣接するMCMC部は、有線または無線の通信路で通信可能に接続されている。MCMC部200~200のそれぞれを、処理装置300ともいう。
【0071】
図4は、処理装置300すなわち各MCMC部200~200の構成例を示すブロック図である。処理装置300は、第1の実施形態の情報処理装置100と比較すると、更新記憶部107が情報記憶部112に置き換えられている。また、受信部110と送信部111とが追加されている。なお、図4には示されていないが、差分計算部102は、並列動作可能なL個の計算部102~102を含む。
【0072】
複数のMCMC部200~200のそれぞれには、自装置が更新を担当する複数の変数が割り当てられている。MCMC部200~200における変数選択部101は、割り当てられた複数の変数から更新する変数を選択する。MCMC部200~200のそれぞれには、変数の数をNとすると、例えば、MCMC部200~200に対して、i番目(1≦i<n)のMCMC部(例えば、MCMC部200)には(N+n-1)(i-1)/nから(N+n-1)i/n番目までの変数が割り当てられ、n番目のMCMC部(例えば、MCMC部200)には、(N+n-1)(n-1)/nからN番目までの変数が割り当てられる。
【0073】
MCMC部200~200のそれぞれにおいて、上述したように割り当てられた複数の変数のうちの変数選択部101は、更新する変数をL個選択する。個数Lを適切に定めることによって、計算速度の向上を期待できる。例えば、実際に差分計算が実行されたときの計算時間を基に二分探索でLは最適化される。差分計算部102は、変数選択部101が選択した変数それぞれについて、状態を変更したときの評価関数の差分を計算する。差分計算部102は、評価関数の差分を差分記憶部103に保存する。
【0074】
差分修正部104は、差分記憶部103に記憶された差分の値と情報記憶部112に記憶される他のMCMC部が更新した変数の集合を基に差分の修正を計算する。遷移判定部105、状態更新部106および温度制御部109の動作は、第1の実施形態におけるそれらの動作と同じである。状態記憶部108は、全体の変数の現在の状態を記憶する。
【0075】
受信部110は、他のMCMC部の送信部111から送られた情報を受信して情報記憶部112に保存する。送信部111は、情報記憶部112の内容を他のMCMCの受信部110に送信する。
【0076】
情報記憶部112は、他のMCMC部に送信するために、遷移した変数を記憶する。また、情報記憶部112は、他のMCMC部から受信した変数を記憶する。他のMCMC部から受信した変数は、差分修正部104の計算で使用される。
【0077】
[動作の説明]
次に、図5のフローチャートを参照して本実施形態の動作を説明する。
【0078】
初期状態が決定されると、初期状態は状態記憶部108に格納される(ステップS100)。なお、初期状態は、ランダムに選定される。
【0079】
本実施形態では、繰り返しの回数をMとして、以下のステップS101~ステップ106、およびステップS201~S203の処理がM回繰り返される。なお、ステップS101~S107の処理は、第1の実施形態における処理と同じである。
【0080】
まず、変数選択部101はステップS101で、状態を更新する変数をL個選択する。次に、差分計算部102(具体的には、L個の計算部のそれぞれ。)は、ステップS102で、ステップS101の処理で選択されたそれぞれの変数について状態を更新する際の評価関数の差分を計算し、計算結果を差分記憶部103に保存する。評価関数は、例えば、上記の(6)式のように表される。評価関数の差分は、例えば、上記の(7)式で表される。
【0081】
受信部110は、ステップS201で、他のMCMC部における送信部111から送られる状態更新が行われた変数の集合を情報記憶部112に保存する。状態更新部106は、ステップS202で、情報記憶部112に記憶されている更新された変数の集合に従って状態記憶部108の変数を書き換える。
【0082】
次に、第1の実施形態の場合と同様に、ステップS103~ステップS106の処理が、ステップS101の処理で選択されたL個の変数(変数iとする。)のそれぞれについて、順番に実行される。上述したように、ステップS103~ステップS106の処理は、背景の項目で記上述した素朴なMCMCと処理の方法がとは異なるものの、同一の力学系を再現する。
【0083】
差分修正部104は、ステップS103で、差分記憶部103に記憶された変数iの評価関数の差分の値と、情報記憶部112に記憶された更新が行われた変数jの集合を元に差分の修正(上記の(8)式を参照)を、変数iについて計算する。この修正によって、並列化しない処理による素朴な力学系で使われる差分の値に復元され、状態更新の力学系は素朴なマルコフ連鎖モンテカルロ法による差分と一致する。
【0084】
次に、遷移判定部105は、ステップS104で、差分修正部104で計算した差分と温度制御部109が制御する温度値に従って遷移確率(上記の(9)式を参照)を計算する。遷移判定部105は、ステップS105で、計算された確率に従って状態更新の受理/棄却を判定する。遷移判定部105は、例えば、遷移確率値Xとした場合に、乱数生成器(図示せず)が生成した乱数r(0≦r≦1)を用いて、X≧rであるときに受理、そうでない場合に棄却、のように判定する。判定結果が「棄却」であった場合には、ステップS103に戻る。
【0085】
ステップS105での判定結果が「受理」であった場合には、ステップS106で、状態更新部106は、状態記憶部108の変数の状態を更新する。状態更新部106は、状態が更新された変数を情報記憶部112に保存する。
【0086】
L個の変数に対してステップS103~S106の処理が実行されたら、ステップS108に移行する(ステップS107)。実行回数がL未満であれば、ステップS103に戻る。
【0087】
第1の実施形態の場合と同様、温度制御部109は、ステップS105の処理で遷移判定部105が状態更新の受理/棄却を判定する際の遷移確率における温度値を決定する。温度制御部109は、第1の実施形態の場合と同様、温度値を、例えば定数値とする、状態更新が行われる度に温度を下げる、状態更新が行われる度に温度を定数倍するなどの方法で制御する。
【0088】
次に、送信部111は、ステップS203で、情報記憶部112に記憶されている、状態が更新された変数を、連結されているMCMC部における受信部110に送信する。
【0089】
情報処理装置100は、終了条件が成立したら処理を終了する(ステップS108)。終了条件が成立していない場合には、ステップS101に戻る。終了条件は第1の実施形態での条件と同様である。
【0090】
次に、本実施形態の効果を説明する。
【0091】
図6は、素朴な(一般的な)情報処理装置によるMCMCの計算の流れを示す説明図である。図6には、情報処理装置における3つのプロセス(図6におけるMCMC部#1~#3に相当)で素朴な並列化によって力学系を並列化した場合が例示されている。素朴な情報処理装置では、全てのプロセスが参加するリダクション処理における通信によって、全てのプロセスが協調して複数の差分計算を進めることになる。
【0092】
なお、非特許文献2に記載された手法を用いられる場合には、状態遷移が生じた場合には、結果は破棄される。
【0093】
図7は、第2の実施形態の情報処理装置によるMCMCの計算の流れを示す説明図である。図7には、第2の実施形態の情報処理装置における3つのプロセス(図7におけるMCMC部#1~#3に相当)で力学系を並列化した場合が例示されている。第2の実施形態では、通信がMCMC部同士の1対1通信で実行される。あるMCMC部におけるステップS102の処理(差分計算処理)は、他のMCMC部におけるステップS201の処理(受信処理)またはステップS203の処理(送信処理)と並列実行可能である。すなわち、あるプロセス(MCMC部)は、他のプロセス(MCMC部)が通信を行っているときに、ステップS102の差分計算処理を行うことができる。その結果、通信のレイテンシが隠蔽される。
【0094】
第2の実施形態では、差分を修正する処理(ステップS103の処理)の分だけ計算量が増えるが、計算量の増分は差分計算の演算量に比べて小さい。よって、第2の実施形態の情報処理装置の並列化の効率は、素朴な情報処理装置の並列化の効率よりも高い。なお、第1の実施形態および第2の実施形態の手法では差分計算部102の構造は並列化(パイプライン化)されているが、全体の状態遷移自体は、逐次実行のマルコフ連鎖モンテカルロ法の状態遷移と等価である。
【0095】
なお、第1の実施形態および第2の実施形態は、組合せ最適化問題の求解に好適に適用可能であるが、磁性体のシミュレーション等にも適用可能である。また、第1の実施形態および第2の実施形態では、イジングモデルが用いられ、マルコフ連鎖モンテカルロ法によって、ある空間(集合)の元(状態)がサンプリングされるが、第1の実施形態および第2の実施形態を、状態遷移を用いる他の手法にも適用可能である。
【0096】
上記の実施形態における各構成要素は、1つのハードウェアで構成可能であるが、1つのソフトウェアでも構成可能である。また、各構成要素は、複数のハードウェアでも構成可能であり、複数のソフトウェアでも構成可能である。また、各構成要素のうちの一部をハードウェアで構成し、他部をソフトウェアで構成することもできる。
【0097】
上記の実施形態における各機能(各処理)を、CPU(Central Processing Unit )等のプロセッサやメモリ等を有するコンピュータで実現可能である。例えば、記憶装置(記憶媒体)に上記の実施形態における方法(処理)を実施するためのプログラムを格納し、各機能を、記憶装置に格納されたプログラムをCPUで実行することによって実現してもよい。
【0098】
図8は、CPUを有するコンピュータの一例を示すブロック図である。コンピュータは、情報処理装置に実装される。CPU1000は、記憶装置1001に格納されたプログラムに従って処理を実行することによって、上記の実施形態における各機能を実現する。すなわち、図1に示された情報処理装置100における、変数選択部101、差分計算部102、差分修正部104、遷移判定部105、状態更新部106、および温度制御部109の機能を実現する。
【0099】
また、CPU1000は、記憶装置1001に格納されたプログラムに従って処理を実行することによって、図4に示された処理装置300における、変数選択部101、差分計算部102、差分修正部104、遷移判定部105、状態更新部106、温度制御部109、受信部110(通信のためのハードウェア部分を除く)、および送信部111(通信のためのハードウェア部分を除く)の機能を実現する。
【0100】
差分記憶部103、更新記憶部107、状態記憶部108、および情報記憶部112は、記憶装置1001またはメモリ1002で実現可能である。
【0101】
記憶装置1001は、例えば、非一時的なコンピュータ可読媒体(non-transitory computer readable medium )である。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium )を含む。非一時的なコンピュータ可読媒体の具体例として、磁気記録媒体(例えば、ハードディスク)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Compact Disc-Read Only Memory )、CD-R(Compact Disc-Recordable )、CD-R/W(Compact Disc-ReWritable )、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM )、フラッシュROM)がある。
【0102】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium )に格納されてもよい。一時的なコンピュータ可読媒体には、例えば、有線通信路または無線通信路を介して、すなわち、電気信号、光信号または電磁波を介して、プログラムが供給される。
【0103】
メモリ1002は、例えばRAM(Random Access Memory)で実現され、CPU1000が処理を実行するときに一時的にデータを格納する記憶手段である。メモリ1002に、記憶装置1001または一時的なコンピュータ可読媒体が保持するプログラムが転送され、CPU1000がメモリ1002内のプログラムに基づいて処理を実行するような形態も想定しうる。
【0104】
図9は、情報処理装置の主要部を示すブロック図である。図9に示す情報処理装置10は、複数個の変数から選択された変数のそれぞれの状態を変化させたときの評価関数の差分を並列して計算する差分計算部11(実施形態では、差分計算部102で実現される。)と、逐次に差分の計算が行われた場合の差分との誤差を解消するように、差分計算部11が計算した差分を修正する差分修正部12(実施形態では、差分修正部104で実現される。)とを含む処理部20を備えている。
【0105】
図10は、他の態様の情報処理装置の主要部を示すブロック図である。図10に示す情報処理装置30は、複数個の変数から選択された変数のそれぞれの状態を変化させたときの評価関数の差分を並列して計算する差分計算部11と、逐次に差分の計算が行われた場合の差分との誤差を解消するように、差分計算部11が計算した差分を修正する差分修正部12と、状態が更新された変数を他の情報処理装置に送信する送信部13(実施形態では、送信部111で実現される。)と、状態が更新された変数を他の情報処理装置から受信する受信部14(実施形態では、受信部110で実現される。)とを含み、差分修正部12は、他の情報処理装置から受信された状態が更新された変数の集合を使用して差分を修正する。
【0106】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0107】
10,30 情報処理装置
11 差分計算部
12 差分修正部
13 送信部
14 受信部
20 処理部
100 情報処理装置
101 変数選択部
102 差分計算部
102~102 計算部
103 差分記憶部
104 差分修正部
105 遷移判定部
106 状態更新部
107 更新記憶部
108 状態記憶部
109 温度制御部
110 受信部
111 送信部
112 情報記憶部
200 情報処理装置
200~200 MCMC部
300 処理装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10