(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024030713
(43)【公開日】2024-03-07
(54)【発明の名称】温度調整プログラム、データ処理装置及びデータ処理方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20240229BHJP
【FI】
G06N99/00 180
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022133785
(22)【出願日】2022-08-25
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】石田 雄一
(57)【要約】
【課題】レプリカ交換法で用いられる最低温度の調整時間を短縮する。
【解決手段】探索部12が、最適化問題を変換したイジングモデルに基づいて、複数のレプリカ回路を用いたレプリカ交換法により最適化問題の解を探索し、処理部13が、探索部12から、複数のレプリカ回路のそれぞれにおける、最適化問題の解の探索処理における所定期間の開始時の状態から最も移動した状態までの距離を取得し、複数のレプリカ回路のそれぞれにおける所定期間の距離のうち、最小値を検出し、最小値と所定の閾値との比較結果に基づいて、複数のレプリカ回路のそれぞれに設定される複数の温度値のうちの最小の温度値の大きさを変更し、変更後の最小の温度値を探索部12に対して設定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
最適化問題を変換したイジングモデルに基づいて、複数のレプリカ回路を用いたレプリカ交換法により前記最適化問題の解を探索する探索部から、前記複数のレプリカ回路のそれぞれにおける、前記最適化問題の解の探索処理における所定期間の開始時の状態から最も移動した状態までの距離を取得し、
前記複数のレプリカ回路のそれぞれにおける前記所定期間の前記距離のうち、最小値を検出し、
前記最小値と所定の第1の閾値との比較結果に基づいて、前記複数のレプリカ回路のそれぞれに設定される複数の温度値のうちの最小の温度値の大きさを変更し、
変更後の前記最小の温度値を前記探索部に対して設定する、
処理をコンピュータに実行させる温度調整プログラム。
【請求項2】
前記最小値が、前記第1の閾値よりも大きい場合、前記最小値と前記閾値との差分に応じた大きさで、前記最小の温度値を減少させ、
前記最小値が、前記第1の閾値よりも小さい場合、前記差分に応じた大きさで、前記最小の温度値を増加させる、
処理を前記コンピュータに実行させる請求項1に記載の温度調整プログラム。
【請求項3】
前記所定期間における前記複数のレプリカ回路のそれぞれのエネルギーの平均値を取得し、
前記複数のレプリカ回路のうち、前記最小の温度値が設定されているレプリカ回路の前記エネルギーとの差が、所定の第2の閾値未満となる前記エネルギーをもつレプリカ回路の数を検出し、
前記数が0より大きい場合、前記数に基づいて、前記最小の温度値を増加させる、
処理を前記コンピュータに実行させる請求項1に記載の温度調整プログラム。
【請求項4】
前記第1の閾値は、前記所定期間を表す値の2進対数である、請求項1に記載の温度調整プログラム。
【請求項5】
最適化問題を変換したイジングモデルに基づいて、複数のレプリカ回路を用いたレプリカ交換法により前記最適化問題の解を探索する探索部と、
前記探索部から、前記複数のレプリカ回路のそれぞれにおける、前記最適化問題の解の探索処理における所定期間の開始時の状態から最も移動した状態までの距離を取得し、前記複数のレプリカ回路のそれぞれにおける前記所定期間の前記距離のうち、最小値を検出し、前記最小値と所定の第1の閾値との比較結果に基づいて、前記複数のレプリカ回路のそれぞれに設定される複数の温度値のうちの最小の温度値の大きさを変更し、変更後の前記最小の温度値を前記探索部に対して設定する処理部と、
を有するデータ処理装置。
【請求項6】
探索部が、最適化問題を変換したイジングモデルに基づいて、複数のレプリカ回路を用いたレプリカ交換法により前記最適化問題の解を探索し、
処理部が、
前記探索部から、前記複数のレプリカ回路のそれぞれにおける、前記最適化問題の解の探索処理における所定期間の開始時の状態から最も移動した状態までの距離を取得し、
前記複数のレプリカ回路のそれぞれにおける前記所定期間の前記距離のうち、最小値を検出し、前記最小値と所定の第1の閾値との比較結果に基づいて、前記複数のレプリカ回路のそれぞれに設定される複数の温度値のうちの最小の温度値の大きさを変更し、変更後の前記最小の温度値を前記探索部に対して設定する、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、温度調整プログラム、データ処理装置及びデータ処理方法に関する。
【背景技術】
【0002】
ノイマン型コンピュータが不得意とする大規模な離散最適化問題を計算する装置として、イジング型の評価関数(エネルギー関数などとも呼ばれる)を用いたイジング装置(ボルツマンマシンとも呼ばれる)がある。
【0003】
イジング装置による計算では、計算対象の問題は磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えられる。そして、マルコフ連鎖モンテカルロ法により、イジング型の評価関数の値(イジングモデルのエネルギーに相当する)が極小になるイジングモデルの状態の探索が行われる。評価関数の極小値のうちの最小値になる状態が最適解となる。なお、イジング装置は、評価関数の符号を変えれば、評価関数の値が極大になる状態を探索することもできる。
【0004】
以下、マルコフ連鎖モンテカルロ法を、MCMC(Markov-Chain Monte Carlo)法と略す。また、MCMC法による処理をMCMC処理と呼ぶ場合もある。MCMC処理では、たとえば、メトロポリス法またはギブス法で規定される状態遷移の受け入れ確率で、その状態遷移が受け入れられる。
【0005】
MCMC法の一種として、レプリカ交換法(パラレルテンパリング法などとも呼ばれる)がある。レプリカ交換法では、複数の温度値を用いたMCMC処理を、イジングモデルの複数のレプリカにより互いに独立に行われる。そして、ある試行回数ごとに、各MCMC処理で得られるエネルギーが比較され、適切な確率で2つの温度値に対する状態が交換される。レプリカ交換法によれば、温度値を徐々に小さくしていく疑似焼き鈍し法と比べて、局所解に拘束される可能性が抑えられ、全解空間(探索空間)を効率よく探索できる。
【0006】
なお、従来、レプリカ交換法における交換確率の均一性を高めるために、温度変化に応じたエネルギーの変化度合いを示す比熱を利用して、温度値の間隔を調整する手法が提案されている(たとえば、特許文献1参照)。また、従来、MCMC処理によりサンプリングされる状態に対応するパラメータの重心から、レプリカの温度を調整する手法が提案されている(たとえば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2021-43503号公報
【特許文献2】特開2020-181461号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
レプリカ交換法を用いて最適化問題を解く際、複数の温度値のうちの最小の温度値(以下最低温度と呼ぶ場合もある)が適切に設定されていない場合、解が求まるまでの時間が非常に長くなることがある。たとえば、最低温度が低すぎると、エネルギー上昇を伴う状態遷移がほとんど起こらず、一度局所解にはまった場合に、その局所解から脱出できない可能性がある。
【0009】
しかし、適切な最低温度を決定するためには、最低温度の調整を何度も繰り返し、最適な値を探索することになり、最低温度の調整には時間がかかるという問題がある。
1つの側面では、本発明は、レプリカ交換法で用いられる最低温度の調整時間を短縮可能な温度調整プログラム、データ処理装置及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
1つの実施態様では、最適化問題を変換したイジングモデルに基づいて、複数のレプリカ回路を用いたレプリカ交換法により前記最適化問題の解を探索する探索部から、前記複数のレプリカ回路のそれぞれにおける、前記最適化問題の解の探索処理における所定期間の開始時の状態から最も移動した状態までの距離を取得し、前記複数のレプリカ回路のそれぞれにおける前記所定期間の前記距離のうち、最小値を検出し、前記最小値と所定の第1の閾値との比較結果に基づいて、前記複数のレプリカ回路のそれぞれに設定される複数の温度値のうちの最小の温度値の大きさを変更し、変更後の前記最小の温度値を前記探索部に対して設定する、処理をコンピュータに実行させる温度調整プログラムが提供される。
【0011】
また、1つの実施態様では、データ処理装置が提供される。
また、1つの実施態様では、データ処理方法が提供される。
【発明の効果】
【0012】
1つの側面では、本発明は、レプリカ交換法で用いられる最低温度の調整時間を短縮できる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施の形態のデータ処理装置の一例を示す図である。
【
図2】最低温度の調整手順を示すフローチャートである。
【
図3】第2の実施の形態のデータ処理装置の一例を示す図である。
【
図6】最低温度の調整手順の一例の流れを示すフローチャートである。
【
図7】データ処理装置の一例であるコンピュータのハードウェア例を示す図である。
【発明を実施するための形態】
【0014】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態のデータ処理装置の一例を示す図である。
【0015】
データ処理装置10は、記憶部11、探索部12、処理部13を有する。
記憶部11は、たとえば、DRAM(Dynamic Random Access Memory)などの電子回路である揮発性の記憶装置、または、HDD(Hard Disk Drive)やフラッシュメモリなどの電子回路である不揮発性の記憶装置である。記憶部11は、SRAM(Static Random Access Memory)レジスタなどの電子回路を含んでいてもよい。
【0016】
記憶部11は、たとえば、計算する最適化問題の情報、計算条件などを記憶する。記憶部11は、温度調整プログラムなど各種のプログラムを記憶していてもよい。
探索部12は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を用いて実現できる。また、探索部12は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのハードウェアであるプロセッサがプログラムを実行することによるソフトウェア処理にて実現することもできる。
【0017】
探索部12は、計算対象の最適化問題を変換したイジングモデルに基づいて、それぞれがイジングモデルのレプリカについての処理を行う複数のレプリカ回路を用いたレプリカ交換法により最適化問題の解を探索する。たとえば、イジングモデルのエネルギーが最低の状態(基底状態)が最適解である。
【0018】
イジングモデルのエネルギーは、たとえば、以下の式(1)に示すようなエネルギー関数E(x)で定義される。
【0019】
【0020】
右辺第1項は、イジングモデルに含まれる全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と重み係数との積を積算したものである。xiは、i番目の状態変数である。xjは、j番目の状態変数である。Wijは、i番目の状態変数とj番目の状態変数との間の重み(たとえば、結合の強さ)を示す重み係数である。
【0021】
右辺第2項は、全状態変数のそれぞれのバイアス係数と状態変数の値との積の総和を求めたものである。biは、i番目の状態変数に対するバイアス係数を示している。
たとえば、イジングモデルにおけるスピンの「-1」は、状態変数の値「0」に対応する。イジングモデルにおけるスピンの「+1」は、状態変数の値「1」に対応する。このため、状態変数を、0または1の値をとるビットと呼ぶこともできる。
【0022】
探索部12は、複数のビットの何れかのビットを変化させたときのエネルギーの変化量と、熱ノイズ値との比較結果に基づいて、そのビットの変化を許容するか否かを判定し、許容すると判定した場合には、ビットの値を変えることで、状態遷移を発生させる。以下、ビットの値を変えることをフリップと呼ぶ。熱ノイズ値は、各レプリカに設定される温度値と乱数値に基づいて求められる。温度値が大きいほど、熱ノイズ値の振幅が大きくなる。
【0023】
レプリカ交換法が行われる場合、各レプリカに、最高温度と最低温度との間で、互いに異なる温度値が設定される。そして、各レプリカにおいて、上記のビットのフリップを許容するか否かの判定や状態遷移などを行う処理であるMCMC処理が繰り返されるとともに、所定の交換確率で、レプリカ間で状態(または温度)の交換が行われる。
【0024】
探索部12は、たとえば、各レプリカ回路において状態遷移が行われるたびにエネルギーを更新し、所定回数の繰り返し処理において得られたエネルギーのうち全レプリカで最低のエネルギーが得られたときの状態を解として出力する。
【0025】
さらに、本実施の形態のデータ処理装置10の探索部12は、複数のレプリカ回路のそれぞれにおける、最適化問題の解の探索処理における所定期間の開始時の状態からの移動距離を計算する。移動距離はハミング距離で表すことができる。たとえば、Nビットの状態X(a)と状態X(b)のハミング距離は、以下の式(2)で表せる。
【0026】
【0027】
xi
(a)は、状態X(a)のi番目の状態変数を表し、xi
(b)は、状態X(b)のi番目の状態変数を表す。
移動距離は、たとえば、上記MCMC処理が行われるたび、または状態遷移が生じるたびに計算される。
【0028】
さらに、探索部12は、複数のレプリカ回路のそれぞれにおいて、上記所定期間におけるエネルギーの平均値(以下、平均エネルギーと呼ぶ)を計算してもよい。
処理部13は、たとえば、CPU、GPU、DSPなどのハードウェアであるプロセッサが、記憶部11に記憶されている温度調整プログラムなどのプログラムを実行することによるソフトウェア処理にて実現することができる。なお、処理部13は、ASICやFPGAなどの電子回路を用いて実現することもできる。
【0029】
処理部13は、レプリカ交換法による解探索に用いられる複数の温度値のうちの最小値である最低温度を調整する機能を有する。
図2は、最低温度の調整手順を示すフローチャートである。
【0030】
ステップS10:処理部13は、探索部12から、複数のレプリカ回路のそれぞれにおける、最適化問題の解の探索処理における所定期間(以下、計測期間と呼ぶ)の開始時の状態から最も移動した状態までの距離(以下、最大移動距離と呼ぶ)を取得する。状態間の距離は、たとえば、MCMC処理が行われるたびに取得される。
【0031】
ステップS11:処理部13は、複数のレプリカ回路のそれぞれにおける計測期間の移動距離の最大移動距離のうち、最小値を検出する。
図2では、最大移動距離がH
iと表記されており、上記最小値はmin(H
i)と表記されている。
【0032】
ステップS12:処理部13は、その最小値と所定の閾値との比較結果に基づいて最低温度を変更する。
ステップS13:処理部13は、変更後の最低温度を探索部12に対して設定する。
【0033】
ステップS12において、所定の閾値は、たとえば、計測期間において要求されている移動距離である。閾値は、計算対象の最適化問題に応じて、たとえば、ユーザにより入力される。閾値の決定方法として、ビット数Nの所定の割合で指定する方法が考えられる。たとえば、計測期間において、全ビットの1%が移動してほしい場合、閾値として0.01Nが指定される。
【0034】
また、処理部13は、計測期間を表すステップ数Mを用いて、閾値aとして、a=log2Mを用いてもよい。ステップ数は、MCMC処理の反復回数である。
a=log2Mは、Mステップの間にとる状態が全て異なるようにしたい場合に用いられる。最適化問題の計算では、解探索の効率化のために、一度訪れた状態には戻らない方がよい。ただ、Mステップの間の状態のとり方は様々であり、たとえば、異なるMビットを順番にフリップさせることでもその状況は実現される。
【0035】
しかし、低温での移動範囲を考えた場合、状態はエネルギーランドスケープの底にある。また、エネルギーランドスケープの底が、異なるMビットを順番にフリップさせるような形で形成されることは稀で、多くの場合、ある程度集まっている(移動距離が短い)傾向がある。この集まり具合を取り入れることは難しいうえに厳密な考えをしているわけではないため、単純に考えてどの状態も互いに最も近づいている状況になっているとすれば、このときのM個の各状態間の距離の最大値のおおよその値が、上記のlog2Mである。
【0036】
図1には、各レプリカの状態がとり得る解空間のイメージ図が示されている。
A
1~A
4は、計測期間における4つのレプリカ(レプリカi(i=1~4))の状態の、解空間上での移動範囲を示している。また、H
1~H
4は、4つのレプリカの最大移動距離を示している。最大移動距離のうちの最小値(min(H
i))は、
図1の例では、min(H
i)=H
2である。
【0037】
このため、処理部13は、ステップS12の処理において、H2と閾値aとの比較結果に基づいて最低温度を変更する。処理部13は、H2>aの場合、最低温度を下降(最小の温度値を減少)させ、H2<aの場合、最低温度を上昇(最小の温度値を増加)させる。なお、処理部13は、min(Hi)=aの場合、最低温度を調整しなくてもよい。
【0038】
処理部13は、ステップS12の処理において、たとえば、以下の式(3)にしたがって、新たな最低温度を計算する。
【0039】
【0040】
式(3)において、Tmin,newが新たな最低温度であり、Tmin,oldが変更前の最低温度である。式(3)のように、min(Hi)と閾値aとの差分に応じた大きさで、最低温度が調整される。
【0041】
最低温度が上がるとエネルギー上昇を伴う状態遷移が増えるため、上記計測期間における移動距離が増加すると考えられる。したがってmin(Hi)も増加する。つまり式(3)により新たな最低温度を決定する場合、次の計測期間ではmin(Hi)がaに近づくことが考えられる。
【0042】
探索部12が複数のレプリカ回路のそれぞれにおいて、上記計測期間における平均エネルギーを計算する場合、処理部13は、平均エネルギーを取得する。そして、処理部13は、たとえば、最低温度が設定されているレプリカ回路(以下最低温度レプリカ回路という)の平均エネルギーとの差が、所定の閾値(たとえば、1)未満となる平均エネルギーをもつレプリカ回路の数rを検出する。そして、処理部13は、以下の式(4)にしたがって、新たな最低温度を計算する。
【0043】
【0044】
式(4)においてnは全レプリカ回路の数である。
平均エネルギーが、最低温度レプリカ回路の平均エネルギーとほとんど変わらないレプリカ回路が多いと、任意の温度で大きな移動距離をとることが可能となるので、最低温度が過剰に下がる可能性がある。そこで、処理部13は、最低温度レプリカ回路との平均エネルギーの差が所定の閾値未満のレプリカ回路が存在する場合は、複数のレプリカ回路が等エネルギー遷移を繰り返していると判断する。そして処理部13は、該当するレプリカ回路の数rに応じて、最低温度を上記(4)にしたがって上昇させることで、過剰に最低温度が下がることを防ぐことができる。
【0045】
処理部13は、ステップS13の処理において、上記のように変更した(新たに生成した)最低温度を探索部12に設定する。
探索部12は、各レプリカ回路に対して、最高温度と変更後の最低温度との間で、互いに異なる温度値を設定し、上記のような探索処理を繰り返す。また、探索部12は、移動距離、平均エネルギーの計算を繰り返してもよい。その場合、処理部13も、最低温度の調整を繰り返す。
【0046】
以上のような第1の実施の形態のデータ処理装置10によれば、処理部13は、各レプリカ回路の所定期間(計測期間)における解空間内での最大移動距離のうちの最小値と、閾値との比較結果に基づいて最低温度を調整する。これにより、解の探索状況を反映した調整が行えるため、適切な最低温度を得るための調整時間を短縮できる。
【0047】
(第2の実施の形態)
図3は、第2の実施の形態のデータ処理装置の一例を示す図である。
第2の実施の形態のデータ処理装置20は、探索部21、温度調整部22a、全体制御部23を有する。探索部21は、
図1に示した探索部12の一例であり、温度調整部22aと全体制御部23は、
図1に示した処理部13の一例である。なお、
図1に示した記憶部11に対応した要素については図示が省略されている。
【0048】
探索部21は、たとえば、ASICやFPGAなどの電子回路を用いて実現できる。また、温度調整部22aや全体制御部23は、たとえば、CPUなどのプロセッサがプログラムを実行することによるソフトウェア処理にて実現できる。また、これに限らず、探索部21、温度調整部22a、全体制御部23のそれぞれの一部またはすべてが、上記のような電子回路を用いて実現されるようにしてもよい。また、探索部21、温度調整部22a、全体制御部23のそれぞれの一部またはすべてがソフトウェア処理にて実現されるようにしてもよい。
【0049】
第2の実施の形態のデータ処理装置20では、探索部21は、レプリカ交換法により最適化問題の解を探索する。
探索部21は、たとえば、
図3のように、それぞれがレプリカに対応するレプリカ回路21a1,21a2,…,21anを有する。さらに、探索部21は、温度制御部21bを有する。
【0050】
レプリカ回路21a1~21anには、互いに異なる温度値(T1~Tn)が設定される。当初のT1~Tnは、たとえば、予め与えられる最高温度(Tmax)及び最低温度(Tmin)に基づいて以下の式(5)、式(6)に基づいて定められる。
【0051】
【0052】
【0053】
式(5)において、Tiは、レプリカ回路21a1~21anのうち、i番目のレプリカ回路に設定される温度値である。式(6)において、nは、レプリカ回路21a1~21anの数(レプリカ数)である。
【0054】
レプリカ回路21a1~21anのそれぞれは、式(1)で表されるエネルギー関数に基づく解探索を、たとえば、下記のような回路により実現する。以下では、レプリカ回路21a1を主に説明するが、レプリカ回路21a2~21anも同様の回路構成により実現できる。
【0055】
レプリカ回路21a1は、ビットフリップ可否判定部30a1,30a2,…,30aN、セレクタ部30b、状態保持部30c、ハミング距離計算部30d、平均エネルギー計算部30eを有する。
【0056】
レプリカの状態に含まれる各ビットのフリップの可否を判定し、フリップ可と判定された何れかのビットをフリップする処理が、レプリカ回路21a1によるMCMC処理の1回分の処理に相当する。当該1回分の処理は繰り返し実行される。レプリカ回路21a1~21anにより並列に実行される当該1回分の処理の繰り返し数を、以下ではステップ数ということがある。
【0057】
ビットフリップ可否判定部30a1~30aNのそれぞれは、自身が担当する1ビットに関するフリップの可否を判定する演算処理回路である。ビットフリップ可否判定部30a1~30aNは並列に、上記の判定処理を行う。
【0058】
index=iのビット(状態変数xi)の値が変化して1-xiとなる場合、xiの変化量は、δxi=(1-xi)-xi=1-2xiと表せる。したがって、xiの値の変化に伴うエネルギーの変化量(ΔEi)は、式(1)から以下の式(7)で表せる。
【0059】
【0060】
式(7)において、hiは以下の式(8)で表せる。
【0061】
【0062】
ビットフリップ可否判定部30a1~30aNのそれぞれは、xiに対するhiを保持し、式(7)に基づいて、xiの値を変化させた場合のΔEiを、hiから求める。
以下では、主に、ビットフリップ可否判定部30a1を例示して説明する。同名の構成であるビットフリップ可否判定部30a2~30aNも同様の機能を有する。
【0063】
ここで、ビットフリップ可否判定部30a1が担当するビットを自ビット、ビットフリップ可否判定部30a2~30aNが担当するビットを他ビットと称する。
ビットフリップ可否判定部30a1は、自ビットと他ビットとの間の重み係数(W1j(j=1~N))を記憶する。W1jの添え字jは、自ビット(index=1のビット)を含む何れかのビットのindexを示す。なお、W11=0である。
【0064】
ビットフリップ可否判定部30a1は、W1jを用いて、式(8)に基づくh1を計算する。
ビットフリップ可否判定部30a1はh1を用いて、式(7)に基づき、自ビットをフリップさせた場合に生じるΔE1を生成する。ビットフリップ可否判定部30a1は、たとえば、状態保持部30cから供給される自ビットの現在の値から、自ビットの値が0,1の何れに変化するかを判別してもよい。ビットフリップ可否判定部30a1は、生成したΔE1を平均エネルギー計算部30eに出力する。
【0065】
そして、ビットフリップ可否判定部30a1は、ΔE1と、熱ノイズ値との比較結果に基づいて、自ビットのフリップの可否を判定する。熱ノイズとして、たとえば、T1・log(u)を用いることができる。T1はレプリカ回路21a1に設定された温度値であり、uは0から1までの値をとる一様乱数である。ビットフリップ可否判定部30a1は、たとえば、-ΔE1≧T・log(u)の場合に、フリップを許可する。
【0066】
セレクタ部30bはビットフリップ可否判定部30a1~30aNのそれぞれが出力したフリップ可否の判定結果を受け付ける。セレクタ部30bは、フリップ可と判定されたビットが複数ある場合、ランダムにまたは所定のルールにしたがって、そのうちの1つを選択する。セレクタ部30bは、選択したビットのindex=jを、ビットフリップ可否判定部30a1~30anのそれぞれに出力するとともに、状態保持部30cに、index=jとフリップを指示する信号(update)を出力する。
【0067】
状態保持部30cは、たとえば、レジスタを有し、レプリカ回路21a1におけるレプリカの状態(X1(x1,x2,…,xN))を保持する。また、状態保持部30cは、updateとindex=jに基づいて、セレクタ部30bが、フリップ可と判定したビットの何れかを選択した場合、そのビットをフリップさせる。また、状態保持部30cは、レプリカ回路21a1における所定回数または所定期間の探索処理の完了時のX1を温度調整部22a及び全体制御部23に出力する。
【0068】
ハミング距離計算部30dは、所定の計測期間の開始時の状態X1を状態保持部30cから取得して保持する。そして、ハミング距離計算部30dは、計測期間において、MCMC処理が繰り返されるたびに、X1を状態保持部30cから取得し、開始時のX1からの移動距離(ハミング距離)h1,mを計算し、温度調整部22aに出力する。ハミング距離は、式(2)に基づいて計算できる。
【0069】
平均エネルギー計算部30eは、平均エネルギーE1,aveを計算し、温度調整部22aに出力する。たとえば、平均エネルギー計算部30eは、計測期間開始時の状態X1を状態保持部30cから取得し、式(1)に基づいてエネルギーを計算する。平均エネルギー計算部30eは、MCMC処理が繰り返されるたびに、ビットのフリップによって生じるエネルギーの変化量を、ビットフリップ可否判定部30a1~30aNの何れかから取得し、その変化量を用いて平均エネルギーE1,aveを更新していく。
【0070】
温度制御部21bは、T(T1~Tnの何れか)をレプリカ回路21a1~21anのそれぞれが有するビットフリップ可否判定部に設定する。温度制御部21bは、温度調整部22aによってTminが更新された場合、予め設定されているTmaxと、更新後のTminに基づいて、式(5)、式(6)にしたがいT1~Tnを更新し、新たなT1~Tnをレプリカ回路21a1~21anに設定する。
【0071】
また、温度制御部21bは、レプリカ回路21a1~21anにおけるTの交換(温度交換)を制御する。温度制御部21bは、以下の式(9)で表される交換確率(pij)に基づいて、温度値が隣接するレプリカ回路のペア(2つのレプリカ回路の組)に関し、温度交換を行うか否かをペアごとに判定する。
【0072】
【0073】
式(9)において、Eiは、レプリカ回路21a1~21anのうち、i番目のレプリカ回路の状態に対応するエネルギーである。Ejは、j番目のレプリカ回路の状態に対応するエネルギーである。Tiは、i番目のレプリカ回路に設定されている温度値である。Tjは、j番目のレプリカ回路に設定されている温度値である。kは、ボルツマン定数である。
【0074】
温度制御部21bは、交換後の温度値を、レプリカ回路21a1~21anのそれぞれに設定する。
なお、上記の説明では探索部21は、レプリカ回路21a1~21anの間で温度値を交換するものとしたが、式(9)の確率で、状態を交換するようにしてもよい。ただ、状態を交換するよりも、温度値を交換する方が、送受信する情報量が少なくて済む。
【0075】
温度調整部22aは、レプリカ回路21a1~21anが出力する移動距離h1,m,h2,m,…hn,mと、平均エネルギーE1,ave,E2,ave,…En,aveに基づいて、最低温度Tminを調整する。温度調整部の例については後述する。
【0076】
全体制御部23は、データ処理装置20の全体の動作を制御する。全体制御部23は、データ処理装置20の外部から起動信号の入力を受け付けると、温度制御部21bに起動信号を出力し、探索部21を起動させて、最適化問題の解の探索処理を開始させる。全体制御部23は、探索部21による探索処理が終了すると、探索部21からX1~Xnを取得し、最適化問題に対する解を得る。たとえば、全体制御部23は、取得したX1~Xnのうち最低エネルギーに対応する状態を解とする。全体制御部23は、演算の終了を示す終了信号をデータ処理装置20の外部に出力する。終了信号は、演算により得られた解を示す情報を含み得る。たとえば、全体制御部23は、データ処理装置20に接続された図示しない表示装置に、解を示す画像情報を出力し、解を示す画像情報を表示装置により表示させることで、得られた解の内容をユーザに提示してもよい。
【0077】
なお、全体制御部23は、図示しない記憶部に記憶されている前述の問題情報(Wijやbi)や状態の初期値などを受け付け、探索部21の各部に設定してもよい。また、全体制御部23は、Tminの初期値やTmaxを、データ処理装置20の外部から受け付け、温度制御部21bに設定してもよい。なお、これらの情報の設定を別の制御部が行ってもよい。
【0078】
また、全体制御部23は、データ処理装置20の外部からリセット信号の入力を受け付けると、探索部21及び温度調整部22aが保持する情報をクリアする。
(温度調整部22aの例)
図4は、温度調整部の一例を示す図である。
【0079】
温度調整部22aは、最大移動距離保持部40、最小値検出部41、等エネルギー遷移レプリカ数検出部42、パラメータ取得部43、最低温度調整部44を有する。
最大移動距離保持部40は、レプリカ回路21a1~21anが出力するh1,m~hn,mから、複数のレプリカのそれぞれにおける計測期間の最大移動距離H1~Hnを取得し、保持する。この例では、最大移動距離保持部40は、レプリカ回路21a1~21anから、間接的に最大移動距離H1~Hnを取得している。なお、レプリカ回路21a1~21anが、最大移動距離H1~Hnを求めてもよく、その場合、最大移動距離保持部40は、レプリカ回路21a1~21anから直接、最大移動距離H1~Hnを取得する。
【0080】
最小値検出部41は、H1~Hnのうちの最小値、すなわちmin(Hi)を検出する。
等エネルギー遷移レプリカ数検出部42は、E1,ave~En,aveを取得し、最低温度レプリカの平均エネルギーと、平均エネルギーの差が所定の閾値(たとえば、1)未満のレプリカ数rを検出する。
【0081】
パラメータ取得部43は、たとえば、ユーザから入力される閾値aと計測期間を表すステップ数Mを取得する。
最低温度調整部44は、閾値aと、計測期間終了時(ステップ数MのMCMC処理の終了時)のmin(Hi)及び上記レプリカ数rを用いて、式(3)、式(4)にしたがって、Tminを調整(変更)し、探索部21に設定する。
【0082】
図5は、温度調整部の他の例を示す図である。
図5において、
図4に示した要素と同じ要素については同一符号が付されている。
温度調整部22bは、閾値計算部45を有している。
図5の温度調整部22bにおいて、パラメータ取得部43は閾値aを取得せず、閾値計算部45が、ステップ数Mから、前述のようにa=log
2Mを計算する。最低温度調整部44は、閾値計算部45が計算した閾値aを用いて、T
minの調整を行う。
【0083】
図6は、最低温度の調整手順の一例の流れを示すフローチャートである。
以下の処理は、たとえば、全体制御部23の制御のもと行われる。
温度調整部22a,22bは、ステップ数M、閾値aを取得する(ステップS20)。なお、
図5のような温度調整部22bの場合、閾値aの取得は不要である。
【0084】
温度調整部22a,22bは、i=1とし(ステップS21)、m=1、Hi=0と初期化を行う(ステップS22)。その後、ステップS23の処理が行われる。
ステップS23の処理では、探索部21のレプリカ回路21a1~21anのうち、i番目のレプリカ(以下、レプリカiという)の処理を行うレプリカ回路のハミング距離計算部は、Xi,1として現在のレプリカiの状態(計測期間開始時の状態)を取得する。さらに、そのレプリカ回路の平均エネルギー計算部は、Xi,1に基づいてEi,aveとしてレプリカiのエネルギーを計算する。
【0085】
その後、探索部21においてMCMC処理が行われる(ステップS24)。これにより各レプリカの状態が、所定の状態遷移の受け入れ確率にしたがって更新される。レプリカiの処理を行うレプリカ回路のハミング距離計算部は、現在のレプリカiの状態とXi,1との間の移動距離hi,mを計算する(ステップS25)。温度調整部22a,22bは、hi,mを取得する。
【0086】
温度調整部22a,22bは、hi,mがレプリカiについてのhi,mの中で最大である場合には、Hiをhi,mで更新し保持する(ステップS26)。この処理は、Hi=max(Hi,hi,m)を計算することに相当する。
【0087】
また、レプリカiの処理を行うレプリカ回路の平均エネルギー計算部は、レプリカiの平均エネルギーを求め、Ei,aveを更新する(ステップS27)。
温度調整部22a,22bは、m=m+1とし(ステップS28)、m≦M+1であるか否かを判定する(ステップS29)。m≦M+1であると判定された場合、ステップS24からの処理が繰り返される。
【0088】
m≦M+1ではないと判定された場合、温度調整部22a,22bは、i=1+1とし(ステップS30)、i≦n+1であるか否かを判定する(ステップS31)。i≦n+1であると判定された場合、ステップS22からの処理が繰り返される。
【0089】
i≦n+1ではないと判定された場合、ステップS32の処理が行われる。
ステップS32の処理では、温度調整部22a,22bは、E
1,ave~E
n,aveを取得し、最低温度レプリカの平均エネルギーと平均エネルギーの差が所定の閾値未満のレプリカ(
図6では等エネルギー遷移レプリカと表記している)の数rを検出する。
【0090】
そして、温度調整部22a,22bは、r>0であるか否かを判定する(ステップS33)。温度調整部22a,22bは、r>0であると判定した場合、ステップS35の処理を行い、r>0ではないと判定した場合、ステップS34の処理を行う。
【0091】
ステップS34の処理では、温度調整部22a,22bは、全レプリカについてのHiのうち、最小値min(Hi)を検出し、a>min(Hi)であるか否かを判定する。温度調整部22a,22bは、a>min(Hi)であると判定した場合、ステップS35の処理を行い、a>min(Hi)ではないと判定した場合、ステップS36の処理を行う。
【0092】
ステップS35,S36の処理では、温度調整部22a,22bは、最低温度を調整し、新しい最低温度を探索部21に設定する。なお、a=min(Hi)の場合には、最低温度の調整を行わず、現在の最低温度を維持してもよい。
【0093】
ステップS35の処理における最低温度の調整では、最低温度が上昇し、ステップS36の処理における最低温度の調整では、最低温度が下降する。新しい最低温度は、前述の式(3)にしたがって計算されるが、r>0の場合におけるステップS35の処理では、前述の式(4)にしたがって新しい最低温度が計算される。
【0094】
これにより1回の最低温度の調整処理が終了する。上記のようなステップS21~S36の処理が繰り返されることで、より適切な最低温度に調整することができる。
なお、上記の処理の順序は一例であり、適宜処理の順序を入れ替えてもよい。
【0095】
以上のような第2の実施の形態のデータ処理装置20においても第1の実施の形態のデータ処理装置10と同様の効果が得られる。すなわち、解の探索状況を反映した調整が行えるため、適切な最低温度を得るための調整時間を短縮できる。
【0096】
(実験例)
以下、
図3に示したようなデータ処理装置20を用いて、最適化問題の一例である最大カット問題のベンチマーク問題であるGsetのG22、G39を実行時間5分で求解した結果を説明する。G22の最適解のエネルギーは-13359、G39の最適解のエネルギーは-10299であることが知られている。
【0097】
データ処理装置20を用いて得られた各レプリカにおける最低エネルギーの平均値は、G22の場合、-13334.2であり、エネルギーG39の場合、-13352.0であった。
【0098】
比較例として、最低温度の調整を行わない手法でGsetのG22、G39を実行時間5分で求解した結果、最低エネルギーの平均値は、G22の場合、-13324.8であり、エネルギーG39の場合、-10034.4であった。このため、データ処理装置20は、比較例よりもG22では、9.4、G39では14.6、低いエネルギーが得られ、よりよい解が得られた。つまり、上記のような最低温度の調整による効果が得られていることが分かった。
【0099】
(コンピュータによる実装例)
図1や
図3に示したデータ処理装置10,20が行う上記の処理内容(たとえば、
図2や
図6)は、以下に示すようなコンピュータにプログラムを実行させることでソフトウェアにて実現することもできる。
【0100】
プログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)及びHDDが含まれる。光ディスクには、CD(Compact Disc)、CD-R(Recordable)/RW(Rewritable)、DVD(Digital Versatile Disc)及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体にプログラムをコピーして実行してもよい。
【0101】
図7は、データ処理装置の一例であるコンピュータのハードウェア例を示す図である。
コンピュータ50は、プロセッサ51、RAM52、HDD53、GPU54、入力インタフェース55、媒体リーダ56及び通信インタフェース57を有する。上記ユニットは、バスに接続されている。
【0102】
プロセッサ51は、たとえば、
図1の探索部12、処理部13、
図3の探索部21、温度調整部22a、全体制御部23として機能することができる。プロセッサ51は、プログラムの命令を実行する演算回路やキャッシュメモリなどの記憶回路を含む、GPUやCPUなどのプロセッサである。プロセッサ51は、HDD53に記憶されたプログラムやデータの少なくとも一部をRAM52にロードし、プログラムを実行する。なお、プロセッサ51は、たとえば、
図3に示したように、レプリカ回路21a1~21anの機能を並列に実行するために、複数のプロセッサコアを備えてもよい。また、コンピュータ50は複数のプロセッサを備えてもよい。なお、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
【0103】
RAM52は、たとえば、
図1の記憶部11として機能する。RAM52は、プロセッサ51が実行するプログラムやプロセッサ51が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、コンピュータ50は、RAM52以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0104】
HDD53は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、前述のような最適化問題の解を探索する処理や最低温度の調整処理をコンピュータ50に実行させるプログラムが含まれる。なお、コンピュータ50は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0105】
GPU54は、プロセッサ51からの命令にしたがって、コンピュータ50に接続されたディスプレイ54aに画像(たとえば、最適化問題の解の探索結果などを表す画像)を出力する。ディスプレイ54aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
【0106】
入力インタフェース55は、コンピュータ50に接続された入力デバイス55aから入力信号を取得し、プロセッサ51に出力する。入力デバイス55aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、コンピュータ50に、複数の種類の入力デバイスが接続されていてもよい。
【0107】
媒体リーダ56は、記録媒体56aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体56aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、FDやHDDが含まれる。光ディスクには、CDやDVDが含まれる。
【0108】
媒体リーダ56は、たとえば、記録媒体56aから読み取ったプログラムやデータを、RAM52やHDD53などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、プロセッサ51によって実行される。なお、記録媒体56aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体56aやHDD53を、コンピュータ読み取り可能な記録媒体ということがある。
【0109】
通信インタフェース57は、ネットワーク57aに接続され、ネットワーク57aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース57は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【0110】
なお、コンピュータ50は、FPGAやASICなどの電子回路を有するアクセラレータカードをバスに接続していてもよい。そして、探索部12,21の処理がそのアクセラレータカードによって実行されるようにしてもよい。
【0111】
以上、実施の形態に基づき、本発明の温度調整プログラム、データ処理装置及びデータ処理方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【0112】
10 データ処理装置
11 記憶部
12 探索部
13 処理部