(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024092195
(43)【公開日】2024-07-08
(54)【発明の名称】温度調整プログラム、データ処理装置及びデータ処理方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20240701BHJP
【FI】
G06N99/00 180
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022207956
(22)【出願日】2022-12-26
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】石田 雄一
(57)【要約】
【課題】レプリカ交換法で用いられる最低温度の調整時間を短縮する。
【解決手段】探索部12が、最適化問題を変換したイジングモデルに基づく評価関数の複数のレプリカに対応するレプリカ回路12a1~12anを用いてレプリカ交換法により最適化問題の解の探索処理を行い、処理部13が、探索部12から、探索処理の間に、レプリカ回路12a1~12anのうち最小の温度値が設定されたレプリカ回路による探索処理で得られた評価関数の値の平均値を複数回取得し、複数回取得した平均値のうちの第1平均値と、第1平均値よりも前に取得した第2平均値との比較結果に基づいて、最小の温度値を変更し、変更後の最小の温度値を探索部12に対して設定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
最適化問題を変換したイジングモデルに基づく評価関数の複数のレプリカに対応する複数のレプリカ回路を用いてレプリカ交換法により前記最適化問題の解の探索処理を行う探索部から、前記探索処理の間に、前記複数のレプリカ回路のうち最小の温度値が設定されたレプリカ回路による前記探索処理で得られた前記評価関数の値の平均値を複数回取得し、
複数回取得した前記平均値のうちの第1平均値と、前記第1平均値よりも前に取得した第2平均値との比較結果に基づいて、前記最小の温度値を変更し、
変更後の前記最小の温度値を前記探索部に対して設定する、
処理をコンピュータに実行させる温度調整プログラム。
【請求項2】
前記探索処理の間に所定回数のレプリカ交換が行われるたびに、前記探索部から前記平均値を取得する処理を前記コンピュータに実行させる、請求項1に記載の温度調整プログラム。
【請求項3】
前記最小の温度値の下限値と最大の温度値との間を所定の分割数で分割し、前記分割数に基づく複数段階の大きさをもつ、前記最小の温度値の複数の候補値を算出する、処理を前記コンピュータに実行させる、請求項1に記載の温度調整プログラム。
【請求項4】
前記下限値を、前記最小の温度値の初期値とする場合、
前記第1平均値が前記第2平均値よりも小さいとき、前記最小の温度値を、前記複数の候補値のうち、現在の前記最小の温度値よりも1段階大きい候補値に変更し、
前記第1平均値が前記第2平均値以上であるとき、前記最小の温度値を、前記複数の候補値のうち、現在の前記最小の温度値よりも1段階小さい候補値に変更する、処理を前記コンピュータに実行させる、請求項3に記載の温度調整プログラム。
【請求項5】
最適化問題を変換したイジングモデルに基づく評価関数の複数のレプリカに対応する複数のレプリカ回路を用いてレプリカ交換法により前記最適化問題の解の探索処理を行う探索部と、
前記探索部から、前記探索処理の間に、前記複数のレプリカ回路のうち最小の温度値が設定されたレプリカ回路による前記探索処理で得られた前記評価関数の値の平均値を複数回取得し、複数回取得した前記平均値のうちの第1平均値と、前記第1平均値よりも前に取得した第2平均値との比較結果に基づいて、前記最小の温度値を変更し、変更後の前記最小の温度値を前記探索部に対して設定する処理部と、
を有するデータ処理装置。
【請求項6】
前記探索部は、所定の交換確率に基づいて、前記複数のレプリカ回路の間で前記複数のレプリカの状態を交換し、
前記複数のレプリカ回路のうち、前記最小の温度値が設定された前記レプリカ回路が前記平均値を計算する、
請求項5に記載のデータ処理装置。
【請求項7】
前記探索部は、前記複数のレプリカ回路に設定されている複数の温度値を、所定の交換確率に基づいて交換する温度制御部を有し、
前記温度制御部が、前記最小の温度値が設定された前記レプリカ回路から供給される前記探索処理の間の前記評価関数の値の変化量に基づいて、前記平均値を計算する、
請求項5に記載のデータ処理装置。
【請求項8】
探索部が、最適化問題を変換したイジングモデルに基づく評価関数の複数のレプリカに対応する複数のレプリカ回路を用いてレプリカ交換法により前記最適化問題の解の探索処理を行い、
処理部が、
前記探索部から、前記探索処理の間に、前記複数のレプリカ回路のうち最小の温度値が設定されたレプリカ回路による前記探索処理で得られた前記評価関数の値の平均値を複数回取得し、
複数回取得した前記平均値のうちの第1平均値と、前記第1平均値よりも前に取得した第2平均値との比較結果に基づいて、前記最小の温度値を変更し、
変更後の前記最小の温度値を前記探索部に対して設定する、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、温度調整プログラム、データ処理装置及びデータ処理方法に関する。
【背景技術】
【0002】
組合せ最適化問題の解を探索する際に、組合せ最適化問題を、磁性体のスピンの振る舞いを表すイジングモデルに変換する手法がある。イジングモデルは、組合せ最適化問題の解を評価するイジング型の評価関数で表される。イジング型の評価関数は、複数の状態変数と複数の重み値を含む。複数の状態変数の値により、イジングモデルの状態が表される。イジング型の評価関数では、状態変数は、0か1(または-1か+1)の値を取る2値変数である。状態変数はビットと表記されてもよい。また、イジング型の評価関数の値は、イジングモデルのエネルギーということもできる。
【0003】
解の探索では、マルコフ連鎖モンテカルロ(MCMC:Markov-Chain Monte Carlo)法が用いられる。以下、MCMC法による解の探索をMCMC処理という。MCMC処理では、たとえば、メトロポリス法またはギブス法で規定される状態遷移の受け入れ確率で、状態遷移が受け入れられる。このとき、エネルギーを増加させる状態遷移も確率的に許容される。なお、エネルギーの増加量が大きいほど受け入れ確率は低くなる。
【0004】
MCMC法の一種として、レプリカ交換法(パラレルテンパリング法などとも呼ばれる)がある。レプリカ交換法では、複数の温度値を用いたMCMC処理が、イジングモデルの複数のレプリカにより互いに独立に行われる。そして、ある試行回数ごとに、各MCMC処理で得られるエネルギーが比較され、適切な交換確率で2つの温度値に対する状態が交換される。レプリカ交換法によれば、温度値を徐々に小さくしていく疑似焼き鈍し法と比べて、局所解に拘束される可能性が抑えられ、全解空間を効率よく探索できる。
【0005】
なお、従来、レプリカ交換法の処理の間に、2つの固定温度値の間の複数の温度値の何れかを調整する手法が提案されている(たとえば、特許文献1参照)。また、従来、交換確率の均一性を高めるために、温度値の間隔を、比熱を利用して調整する手法が提案されている(たとえば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2021-140779号公報
【特許文献2】特開2021-43503号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
レプリカ交換法を用いて最適化問題を解く際、複数の温度値のうちの最小の温度値(以下最低温度と呼ぶ場合もある)が適切に設定されていない場合、解が求まるまでの時間が非常に長くなることがある。たとえば、最低温度が低すぎると、エネルギー上昇を伴う状態遷移がほとんど起こらず、一度局所解にはまった場合に、その局所解から脱出できない可能性があるためである。
【0008】
しかし、適切な最低温度を決定するためには、ある最低温度を用いて解の探索処理を行い、その結果に基づいて最低温度を調整する、という手順を繰り返すことになる。このため、最低温度の調整には時間がかかるという問題がある。
【0009】
1つの側面では、本発明は、レプリカ交換法で用いられる最低温度の調整時間を短縮可能な温度調整プログラム、データ処理装置及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
1つの実施態様では、最適化問題を変換したイジングモデルに基づく評価関数の複数のレプリカに対応する複数のレプリカ回路を用いてレプリカ交換法により前記最適化問題の解の探索処理を行う探索部から、前記探索処理の間に、前記複数のレプリカ回路のうち最小の温度値が設定されたレプリカ回路による前記探索処理で得られた前記評価関数の値の平均値を複数回取得し、複数回取得した前記平均値のうちの第1平均値と、前記第1平均値よりも前に取得した第2平均値との比較結果に基づいて、前記最小の温度値を変更し、変更後の前記最小の温度値を前記探索部に対して設定する、処理をコンピュータに実行させる温度調整プログラムが提供される。
【0011】
また、1つの実施態様では、データ処理装置が提供される。
また、1つの実施態様では、データ処理方法が提供される。
【発明の効果】
【0012】
1つの側面では、本発明は、レプリカ交換法で用いられる最低温度の調整時間を短縮できる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施の形態のデータ処理装置の一例を示す図である。
【
図2】最低温度の調整手順を示すフローチャートである。
【
図3】(A)は、制約のない最適化問題の探索時に最高温度と最低温度の組合せに応じて得られる最低エネルギーの例を示すコンター図である。(B)は、制約のない最適化問題の探索時に最高温度と最低温度の組合せに応じて得られる、最低温度レプリカにおける平均エネルギーの例を示すコンター図である。
【
図4】(A)は、制約のある最適化問題の探索時に最高温度と最低温度の組合せに応じて得られる最低エネルギーの例を示すコンター図である。(B)は、制約のある最適化問題の探索時に最高温度と最低温度の組合せに応じて得られる、最低温度レプリカにおける平均エネルギーの例を示すコンター図である。
【
図5】第2の実施の形態のデータ処理装置の一例を示す図である。
【
図7】最低温度の調整手順の一例の流れを示すフローチャートである。
【
図8】最低エネルギーの計算結果の一例を示す図である。
【
図9】第3の実施の形態のデータ処理装置の一例を示す図である。
【
図10】データ処理装置の一例であるコンピュータのハードウェア例を示す図である。
【発明を実施するための形態】
【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は、計算対象の最適化問題を変換したイジングモデルに基づく評価関数のn個のレプリカに対応するレプリカ回路12a1,12a2,…,12anを用い、レプリカ交換法により最適化問題の解を探索する。
【0018】
イジングモデルのエネルギーは、たとえば、以下の式(1)に示すような評価関数(E(x))で定義される。
【0019】
【0020】
右辺第1項は、イジングモデルに含まれる全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と重み係数との積を積算したものである。xiは、i番目の状態変数である。xjは、j番目の状態変数である。Wijは、i番目の状態変数とj番目の状態変数との間の重み(たとえば、結合の強さ)を示す重み係数である。Nは、状態変数の総数である。
【0021】
右辺第2項は、全状態変数のそれぞれのバイアス係数と状態変数の値との積の総和を求めたものである。biは、i番目の状態変数に対するバイアス係数を示している。
たとえば、イジングモデルにおけるスピンの「-1」は、状態変数の値「0」に対応する。イジングモデルにおけるスピンの「+1」は、状態変数の値「1」に対応する。このため、状態変数を、0または1の値をとるビットと呼ぶこともできる。
【0022】
E(x)の極小値のうちの最小値になるときの状態が最適解となる。なお、式(1)の右辺の各項の符号を変えれば、探索部12は、E(x)の値が極大になる状態を探索することもできる(この場合、最大値となるときの状態が最適解となる)。
【0023】
レプリカ回路12a1~12anのそれぞれは、MCMC処理を繰り返す。MCMC処理は、複数のビットの何れかのビットの値を変化させたときのエネルギーの変化量と、熱ノイズ値との比較結果に基づいて、そのビットの変化を許容するか否かを判定する処理を含む。さらに、MCMC処理は、あるビットの値の変化を許容すると判定された場合には、そのビットの値を変えることで状態遷移を発生させる処理を含む。以下、ビットの値を変えることをフリップと呼ぶ。熱ノイズ値は、レプリカ回路12a1~12anのそれぞれに設定される温度値と乱数値に基づいて求められる。温度値が大きいほど、熱ノイズ値の振幅が大きくなる。
【0024】
探索部12は、さらに、温度制御部12bと平均エネルギー計算部12cを有する。
温度制御部12bは、レプリカ回路12a1~12anに対して、最高温度と最低温度との間で、互いに異なる温度値を設定する。温度制御部12bは、後述の処理部13によって最低温度が更新された場合、予め設定されている最高温度と、更新後の最低温度に基づいて、最高温度と最低温度との間の各温度値を更新する。
図1の例では、温度値(T)として、レプリカ回路12a1にT
1が設定され、レプリカ回路12a2にT
2が設定され、レプリカ回路12anにT
nが設定されている。T
1<T
2<…<T
nである。つまり、T
1が最低温度、T
nが最高温度である。以下、最低温度が設定されるレプリカ回路12a1に対応するレプリカを最低温度レプリカという。
【0025】
また、温度制御部12bは、レプリカ回路21a1~21anにおけるレプリカ交換を制御する。温度制御部12bは、以下の式(2)で表される交換確率(pij)に基づいて、温度値が隣接するレプリカ回路のペアに関し、レプリカ交換を行うか否かをペアごとに判定する。
【0026】
【0027】
式(2)において、Eiは、レプリカ回路12a1~12anのうち、i番目のレプリカ回路に対応するレプリカ(以下レプリカiと呼ぶ)の状態に対応するエネルギーである。Ejは、j番目のレプリカ回路に対応するレプリカ(以下レプリカjと呼ぶ)の状態に対応するエネルギーである。Tiは、i番目のレプリカ回路に設定されている温度値である。Tjは、j番目のレプリカ回路に設定されている温度値である。kは、ボルツマン定数である。レプリカi,jの状態は、N個の状態変数であるx1~xNで表せる。
【0028】
温度制御部12bは、上記pijの確率で、レプリカiの状態とレプリカjの状態とを交換させる。
なお、温度制御部12bは、レプリカi,j間で状態を交換させる代わりに、上記pijの確率で、TiとTjを交換するようにしてもよい。
【0029】
平均エネルギー計算部12cは、最低温度が設定されたレプリカ回路12a1による探索処理で得られた、上記評価関数(E(x))の値の平均値(以下平均エネルギーという)を計算する。平均エネルギー計算部12cは、たとえば、レプリカ回路12a1がx1~xNの何れかの値をフリップさせるたび、平均エネルギーを更新する。
【0030】
処理部13は、たとえば、CPU、GPU、DSPなどのハードウェアであるプロセッサが、記憶部11に記憶されている温度調整プログラムなどのプログラムを実行することによるソフトウェア処理にて実現することができる。なお、処理部13は、ASICやFPGAなどの電子回路を用いて実現することもできる。
【0031】
処理部13は、レプリカ交換法による解探索に用いられる複数の温度値のうちの最小値である最低温度を調整する機能を有する。
図2は、最低温度の調整手順を示すフローチャートである。
【0032】
ステップS10:処理部13は、最低温度の調整周期であるか否かを判定する。たとえば、処理部13は、探索部12において所定回数のレプリカ交換が行われるたび、最低温度の調整周期であると判定する。なお、調整周期とするレプリカ交換回数を増やすと、より広い探索空間を考慮した調整が行えるが、調整頻度は下がる。そのため、調整周期は、計算対象の最適化問題の難易度などに応じて、適宜設定可能である。
【0033】
なお、処理部13は、探索部12において所定回数のMCMC処理が行われるたび、最低温度の調整周期であると判定してもよい。
処理部13は、最低温度の調整周期であると判定した場合、ステップS11の処理を行い、最低温度の調整周期ではないと判定した場合、ステップS10の処理を繰り返す。
【0034】
ステップS11:処理部13は、探索部12から、最低温度レプリカの平均エネルギーを取得する。処理部13は、取得した平均エネルギーを保持する。
ステップS12:処理部13は、前回取得した最低温度レプリカの平均エネルギーと今回取得した最低温度レプリカの平均エネルギーとを比較する。
【0035】
ステップS13:処理部13は、ステップS12の処理で得られる比較結果に基づいて、最低温度を変更する。たとえば、処理部13は、以下のように最低温度を変更する。
まず、処理部13は、たとえば、ユーザから入力される最低温度の下限値と、予め決定した最高温度との間を、所定の分割数で分割して、分割数に基づく複数段階の大きさをもつ、最低温度の複数の候補値を算出する。処理部13は、最低温度の下限値を最低温度の調整のための初期値とする。そして、処理部13は、今回取得した最低温度レプリカの平均エネルギーが、前回取得した最低温度レプリカの平均エネルギーよりも小さいときには、最低温度を、現在の最低温度よりも1段階大きい候補値に変更する。処理部13は、今回取得した最低温度レプリカの平均エネルギーが、前回取得した最低温度レプリカの平均エネルギー以上であるとき、最低温度を、現在の最低温度よりも1段階小さい候補値に変更する。
【0036】
ステップS14:処理部13は、変更後の最低温度を探索部12に対して設定する。
以上で、1回の最低温度の調整処理が終了する。このような調整処理は、解の探索処理の終了条件が満たされるまで繰り返される。
【0037】
ここで、上記のように、最低温度レプリカの平均エネルギーの変化に基づいて最低温度を調整する理由を説明する。
図3(A)は、制約のない最適化問題の探索時に最高温度と最低温度の組合せに応じて得られる最低エネルギーの例を示すコンター図である。また、
図3(B)は、制約のない最適化問題の探索時に最高温度と最低温度の組合せに応じて得られる、最低温度レプリカにおける平均エネルギーの例を示すコンター図である。
【0038】
また、
図4(A)は、制約のある最適化問題の探索時に最高温度と最低温度の組合せに応じて得られる最低エネルギーの例を示すコンター図である。また、
図4(B)は、制約のある最適化問題の探索時に最高温度と最低温度の組合せに応じて得られる、最低温度レプリカにおける平均エネルギーの例を示すコンター図である。
【0039】
なお、上記のコンター図は、最高温度と最低温度を固定した状態で得られた最低エネルギー(Emin)または平均エネルギー(Eave)をプロットしたものである。
制約のない最適化問題として、最大カット問題のベンチマーク問題であるGset G39が用いられている。計算に用いた評価関数に含まれる状態変数の数はN=2000であり、レプリカ数はn=80、実行時間は60秒である。
【0040】
制約のある最適化問題に適用されている制約は、1-Way 1-hot制約、線形不等式制約である。これらはQUBO(Quadratic Unconstrained Binary Optimization)形式の制約項で表されている。1-hot制約は、評価関数に含まれる複数の状態変数のうち値が1となる状態変数の数を1つのみとする制約である。1-Way 1-hot制約は、1-hot制約のうち各状態変数が制約式の組に一度しか現れないものである。線形不等式制約は、状態が満たすべき不等式を表す制約である。計算に用いた評価関数に含まれる状態変数の数はN=8750であり、レプリカ数はn=80、実行時間は180秒である。
【0041】
図3(A)、
図3(B)、
図4(A)、
図4(B)において、縦軸は最高温度を表し、横軸は最低温度を表している。
図3(A)、
図3(B)のように、最低エネルギーのコンター図と最低温度レプリカにおける平均エネルギーのコンター図は類似している。MCMC法という乱数を利用するアルゴリズムの影響で多少ズレはあるものの、最低エネルギーと平均エネルギーが最小となる最低温度が比較的近い値となる。
図3(A)では領域15aが、最低エネルギーが最小の領域を示し、
図3(B)では領域15b1,15b2が、平均エネルギーが最小の領域を示している。
【0042】
図4(A)、
図4(B)についても同様に、最低エネルギーのコンター図と最低温度レプリカにおける平均エネルギーのコンター図は類似している。
図4(A)では領域16aが、最低エネルギーが最小の領域を示し、
図4(B)では領域16b1~16b10が、平均エネルギーが最小の領域を示している。
【0043】
最低エネルギーがより小さくなる最低温度では、最低温度レプリカにおいて、より低いエネルギーとなる状態の出現確率が高くなっていると考えられる。そのため、その最低温度では最低温度レプリカにおける平均エネルギーも小さくなり、上記のような類似性が生まれていると考えられる。なお、
図4(B)に示すように、平均エネルギーは最高温度にはあまり依存しない。
【0044】
このように、最低温度レプリカの平均エネルギーは、最低温度に対する変化の仕方が最低エネルギーと類似する。このため、より小さい最低エネルギーを得るための最適な最低温度の調整を、最低温度レプリカの平均エネルギーに基づいて行うことができる。
【0045】
また、ある最低温度の最低エネルギーは解の探索処理が終了するまで得られない。このため、得られた最低エネルギーに基づいて最低温度の調整を行う場合、様々な最低温度を用いて解の探索処理を繰り返さなければならず、適切な最低温度の調整に時間がかかる。これに対して、最低温度レプリカの平均エネルギーは解の探索処理中に得ることができる。このため、解の探索処理中に複数回取得した最低温度レプリカの平均エネルギーに基づいて最低温度の調整を行うことで、調整時間が短縮可能である。
【0046】
また、レプリカ交換により解が局所解に拘束されることが抑制されるため、調整周期を所定回数のレプリカ交換回数とすることで、広い探索空間を考慮した適切な最低温度の調整が可能になる。
【0047】
(第2の実施の形態)
図5は、第2の実施の形態のデータ処理装置の一例を示す図である。
第2の実施の形態のデータ処理装置20は、探索部21、温度調整部22、全体制御部23を有する。探索部21は、
図1に示した探索部12の一例であり、温度調整部22と全体制御部23は、
図1に示した処理部13の一例である。なお、
図1に示した記憶部11に対応した要素については図示が省略されている。
【0048】
探索部21は、たとえば、ASICやFPGAなどの電子回路を用いて実現できる。また、温度調整部22や全体制御部23は、たとえば、CPUなどのプロセッサがプログラムを実行することによるソフトウェア処理にて実現できる。また、これに限らず、探索部21、温度調整部22、全体制御部23のそれぞれの一部またはすべてが、上記のような電子回路を用いて実現されるようにしてもよい。また、探索部21、温度調整部22、全体制御部23のそれぞれの一部またはすべてがソフトウェア処理にて実現されるようにしてもよい。
【0049】
第2の実施の形態のデータ処理装置20では、探索部21は、レプリカ間で状態を交換するレプリカ交換法により最適化問題の解を探索する。
探索部21は、たとえば、
図5のように、n個のレプリカに対応するレプリカ回路21a1,21a2,…,21anを有する。さらに、探索部21は、温度制御部21bを有する。
【0050】
レプリカ回路21a1~21anには、互いに異なる温度値(T1~Tn)が設定される。レプリカ回路21a1にはT1が設定され、レプリカ回路21a2にはT2が設定され、レプリカ回路21anにはTnが設定される。なお、T1<T2<…<Tnである。このため、レプリカ回路21a1に対応するレプリカ1が、最低温度レプリカである。
【0051】
当初のT1~Tnは、たとえば、予め与えられる最高温度(Tmax)及び最低温度(Tmin)に基づいて以下の式(5)、式(6)に基づいて定められる。
【0052】
【0053】
【0054】
式(3)において、Tiは、レプリカ回路21a1~21anのうち、i番目のレプリカ回路に設定される温度値である。式(4)において、nは、レプリカ数である。
レプリカ回路21a1~21anのそれぞれは、式(1)で表されるエネルギー関数に基づく解探索を、たとえば、下記のような回路により実現する。
【0055】
レプリカ1に対応するレプリカ回路21a1は、ビットフリップ可否判定部30a1,30a2,…,30aN、セレクタ部30b、保持部30c、平均エネルギー計算部30dを有する。
【0056】
レプリカ1の状態に含まれる各ビットのフリップの可否を判定し、フリップ可と判定された何れかのビットをフリップする処理が、レプリカ回路21a1によるMCMC処理の1回分の処理に相当する。当該1回分の処理は繰り返し実行される。
【0057】
ビットフリップ可否判定部30a1~30aNのそれぞれは、たとえば、自身が担当する1ビットに関するフリップの可否を判定する演算処理回路である。ビットフリップ可否判定部30a1~30aNは並列に、上記の判定処理を行う。
【0058】
index=iのビット(状態変数xi)の値が変化して1-xiとなる場合、xiの変化量は、δxi=(1-xi)-xi=1-2xiと表せる。したがって、xiの値の変化に伴うエネルギーの変化量(ΔEi)は、式(1)より以下の式(5)で表せる。
【0059】
【0060】
式(5)において、hiは局所場と呼ばれる。
【0061】
【0062】
ビットフリップ可否判定部30a1~30aNのそれぞれは、xiに対するhiを保持し、式(5)に基づいて、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を用いて、式(6)に基づくh1を計算する。
ビットフリップ可否判定部30a1はh1を用いて、式(5)に基づき、自ビットをフリップさせた場合に生じるΔE1を生成する。ビットフリップ可否判定部30a1は、たとえば、保持部30cから供給される自ビットの現在の値から、自ビットの値が0,1の何れに変化するかを判別してもよい。ビットフリップ可否判定部30a1は、生成したΔE1をセレクタ部30bに出力する。
【0065】
そして、ビットフリップ可否判定部30a1は、ΔE1と、熱ノイズ値との比較結果に基づいて、自ビットのフリップの可否を判定する。熱ノイズとして、たとえば、T1・log(u)を用いることができる。T1はレプリカ回路21a1に設定された温度値であり、uは0から1までの値をとる一様乱数である。ビットフリップ可否判定部30a1は、たとえば、-ΔE1≧T・log(u)の場合に、フリップを許可する。
【0066】
セレクタ部30bはビットフリップ可否判定部30a1~30aNのそれぞれが出力したフリップ可否の判定結果を受け付ける。セレクタ部30bは、フリップ可と判定されたビットが複数ある場合、ランダムにまたは所定のルールにしたがって、そのうちの1つを選択する。セレクタ部30bは、フリップ可と判定されたビットがある場合、選択したビットのインデックスと、フリップを指示する指示信号と、そのビットをフリップした場合のエネルギーの変化量(ΔE)を出力する。インデックスと指示信号とΔEは、保持部20cに供給される。インデックスは、さらにビットフリップ可否判定部30a1~30aNのそれぞれに供給される。
【0067】
保持部30cは、たとえば、レジスタを有し、レプリカ1の状態とセレクタ部30bが出力したΔEを保持する。また、保持部30cは、フリップを指示する指示信号を受けた場合、セレクタ部30bが出力するインデックスにより指定されたビットをフリップさせる。また、保持部30cは、レプリカ回路21a1における所定回数または所定期間の探索処理の完了時のレプリカ1の状態を温度調整部22及び全体制御部23に出力する。
【0068】
平均エネルギー計算部30dは、最低温度レプリカの平均エネルギー(Eave,0)を計算する。Eave,0は温度調整部22に供給される。たとえば、平均エネルギー計算部30dは、式(1)で表されるエネルギーの初期値を保持し、MCMC処理が繰り返されるたびに、セレクタ部30bが出力し保持部30cが保持するΔEを用いてEave,0を更新していく。なお、何れのビットもフリップ可とされない場合、ΔE=0である。
【0069】
レプリカ2~nに対応するレプリカ回路21a2~21anも、レプリカ回路21a1と同様の回路構成により実現できるが、レプリカ回路21a2~21anには平均エネルギー計算部30dがなくてもよい。
【0070】
温度制御部21bは、T1~Tnをレプリカ回路21a1~21anのそれぞれが有するビットフリップ可否判定部30a1~30aNに設定する。温度制御部21bは、温度調整部22によってTminが変更された場合、予め設定されているTmaxと、変更後のTminに基づいて、式(3)、式(4)にしたがいT1~Tnを更新し、新たなT1~Tnをレプリカ回路21a1~21anに設定する。
【0071】
また、温度制御部21bは、レプリカ回路21a1~21anにおける各レプリカの状態(X1~Xn)の交換を制御する。温度制御部21bは、前述の式(2)で表される交換確率(pij)に基づいて、温度値が隣接するレプリカ回路のペアに関し、状態の交換を行うか否かをペアごとに判定する。式(2)のEiやEjを得るために、温度制御部21bは、たとえば、各レプリカのエネルギーの初期値を保持し、レプリカ回路21a1~21anの保持部30cに保持されたΔEに基づいて、各レプリカのエネルギーを更新する。なお、レプリカ回路21a1~21anのそれぞれが、自身が処理を担当するレプリカのエネルギーを計算するエネルギー計算部を有していてもよい。
【0072】
温度制御部21bは、レプリカiとレプリカjの状態を交換する場合、レプリカiの状態であるXiを、レプリカjに対応するレプリカ回路に設定し、レプリカjの状態であるXjを、レプリカiに対応するレプリカ回路に設定する。
【0073】
温度調整部22は、所定回数のレプリカ交換が行われるたびに、最低温度レプリカの平均エネルギーであるEave,0を取得し、Eave,0と前回取得したEave,0であるeave,oldとの比較結果に基づいて、Tminを調整する。温度調整部22の例については後述する。
【0074】
全体制御部23は、データ処理装置20の全体の動作を制御する。全体制御部23は、データ処理装置20の外部から起動信号の入力を受け付けると、温度制御部21bに起動信号を出力し、探索部21を起動させて、最適化問題の解の探索処理を開始させる。全体制御部23は、探索部21による探索処理が終了すると、探索部21からX1~Xnを取得し、最適化問題に対する解を得る。たとえば、全体制御部23は、取得したX1~Xnのうち最低エネルギーに対応する状態を解とする。全体制御部23は、演算の終了を示す終了信号をデータ処理装置20の外部に出力する。終了信号は、演算により得られた解を示す情報を含み得る。たとえば、全体制御部23は、データ処理装置20に接続された図示しない表示装置に、解を示す画像情報を出力し、解を示す画像情報を表示装置により表示させることで、得られた解の内容をユーザに提示してもよい。
【0075】
なお、全体制御部23は、図示しない記憶部に記憶されている前述の問題情報(Wijやbi)や状態の初期値などを受け付け、探索部21の各部に設定してもよい。なお、これらの情報の設定を別の制御部が行ってもよい。また、全体制御部23は、データ処理装置20の外部からリセット信号の入力を受け付けると、探索部21及び温度調整部22が保持する情報をクリアする。
【0076】
なお、Tmaxは、たとえば、以下の算出方法により求められる。
TminからTmaxまでの各温度値が固定の状態で、探索部21でレプリカ交換を用いた所定回数のMCMC処理が行われ、レプリカ回路21a1~21anのそれぞれで得られた最低エネルギーに対応する状態(以下局所解という)が取得される。そして、取得された複数の局所解から、たとえば、エネルギーの低い順に2つずつ局所解が選択される。そして、選択された一方の局所解のビット列のうち、他方の局所解のビット列とは異なる複数のビットの1つの値を変化させた場合に生じるΔEを計算する処理が、複数のビットのそれぞれについて順次行われる。さらに、エネルギーの増加が複数回連続して生じる場合に、その複数回において増加したエネルギーの合計値が算出される。そして、その合計値に基づいて、たとえば、以下の式(7)により、新たなTmaxが決定される。
【0077】
【0078】
Dsumは、上記のように、エネルギーの増加が複数回連続して生じる場合に、その複数回において増加したエネルギーの合計値である。Aは、最大のエネルギー増加を引き起こす状態遷移を受け入れる遷移確率を示すパラメータであり、予め設定される。
【0079】
このようなTmaxを用いることで、2つの局所解の間に複数回連続してエネルギーの増加がなければ越えられないような大きなエネルギーの山が存在する場合においても、比較的高い確率で、そのようなエネルギーの山を越えられるようになる。
【0080】
(温度調整部22の例)
図6は、温度調整部の一例を示す図である。
温度調整部22は、パラメータ取得部40、平均エネルギー取得部41、平均エネルギー保持部42、比較部43、最低温度調整部44を有する。
【0081】
パラメータ取得部40は、たとえば、ユーザから入力される、分割数a、調整周期b、Tminの下限値であるTmin,0を取得する。分割数aは、Tminのa個の候補値を決定するための、Tmin,0と、Tmaxとの間の分割数である。Tminのa個の候補値の下限はTmin,0であり、上限はTmaxの1つ下の分割点の候補値である。調整周期bは、レプリカ交換回数で表される。つまり、レプリカ交換がb回行われるごとに、Tminの調整が行われる。
【0082】
平均エネルギー取得部41は、レプリカ交換がb回行われるごとに、最低温度レプリカの平均エネルギーであるEave,0を取得する。平均エネルギー取得部41は、レプリカ交換が行われたか否かを示す情報を、たとえば、温度制御部21bから取得する。
【0083】
平均エネルギー保持部42は、平均エネルギー取得部41が取得したEave,0をeave,oldとして保持する。
比較部43は、今回取得したEave,0と、平均エネルギー保持部42に保持されている前回取得したEave,0であるeave,oldとの比較結果を出力する。
【0084】
最低温度調整部44は、上記比較結果に基づいて、Tminを調整する。最低温度調整部44は、分割数a、Tmin,0、Tmaxに基づいて、分割数aに基づく複数段階の大きさをもつ、前述のa個の候補値を算出する。たとえば、最低温度調整部44は、a個の候補値のうち、一番小さいTmin,0をTminの初期値とする。そして、最低温度調整部44は、Eave,0<eave,oldのとき、Tminを、a個の候補値のうち、現在のTminよりも1段階大きい候補値に変更する。最低温度調整部44は、Eave,0≧eave,oldのとき、Tminを、a個の候補値のうち、現在のTminよりも1段階小さい候補値に変更する。ただし、最低温度調整部44は、Eave,0<eave,oldのとき、現在のTminが、Tmaxに一番近い候補値、つまり、a個の候補値の上限である場合、Tminを変更しない。また、最低温度調整部44は、Eave,0≧eave,oldのとき、現在のTminが、Tmin,0、つまり、a個の候補値の下限である場合、Tminを変更しない。
【0085】
上記の調整方法によれば、少ないパラメータで調整が可能であるが、上記の調整方法に限定されるわけではない。たとえば、最低温度調整部44は、Tminを、現在の候補値よりも1段階小さい候補値に変更した後、次に取得したEave,0もEave,0≧eave,oldの場合、Tminを、現在の候補値よりも1段階大きい候補値に変更してもよい。Tminを大きくすることで、より低いエネルギーが得られる可能性があるためである。
【0086】
また、最低温度調整部44は、Tminの初期値を、a個の候補値のうちの上限としてもよい。その場合、最低温度調整部44は、Eave,0<eave,oldのとき、Tminを、a個の候補値のうち、現在の候補値よりも1段階小さい候補値に変更する。最低温度調整部44は、Eave,0≧eave,oldのとき、Tminを、a個の候補値のうち、現在の候補値よりも1段階大きい候補値に変更する。ただし、最低温度調整部44は、Eave,0≧eave,oldのとき、現在のTminが、a個の候補値の上限である場合、Tminを変更しない。また、最低温度調整部44は、Eave,0<eave,oldのとき、現在のTminが、a個の候補値の下限である場合、Tminを変更しない。
【0087】
最低温度調整部44は、上記のように調整したT
minを、探索部21に設定する。
図7は、最低温度の調整手順の一例の流れを示すフローチャートである。
以下の処理は、たとえば、全体制御部23の制御のもと行われる。
【0088】
温度調整部22は、Tminの調整用のパラメータとして、分割数a、調整周期b、Tminの下限値であるTmin,0を取得する(ステップS20)。
温度調整部22は、分割数a、Tmin,0、Tmaxに基づいて、前述のa個の候補値を算出する(ステップS21)。
【0089】
温度調整部22は、i=0、Tmin=Tmin,iとし(ステップS22)、さらに、レプリカ交換回数を示すmをm=1に初期化する(ステップS23)。
その後、探索部21においてMCMC処理が行われる(ステップS24)。これにより各レプリカの状態が、所定の状態遷移の受け入れ確率にしたがって更新される。
【0090】
温度調整部22は、m=m+1とし(ステップS25)、m≦b+1であるか否かを判定する(ステップS26)。bは、Tminの調整周期を表す。m≦b+1ではないと判定された場合、ステップS24からの処理が繰り返される。
【0091】
温度調整部22は、m≦b+1であると判定した場合、最低温度レプリカの平均エネルギーであるEave,0を、探索部21から取得する(ステップS27)。
温度調整部22は、平均エネルギー保持部42にeave,oldがあるか否かを判定する(ステップS28)。
【0092】
温度調整部22は、平均エネルギー保持部42にeave,oldがないと判定した場合、平均エネルギー保持部42に、今回取得したEave,0をeave,oldとして保持させる(ステップS29)。ステップS29の処理後、ステップS23からの処理が繰り返される。
【0093】
温度調整部22は、平均エネルギー保持部42にeave,oldがあると判定した場合、Eave,0<eave,oldであるか否かを判定する(ステップS30)。
温度調整部22は、Eave,0<eave,oldではないと判定した場合、TminをTmin=Tmin,i-1に変更する(ステップS31)。Tmin,i-1は、a個の候補値のうち、現在の候補値であるTmin,iよりも1段階小さい候補値である。なお、Tmin,i=Tmin,0の場合、Tminは変更されない。
【0094】
温度調整部22は、Eave,0<eave,oldであると判定した場合、TminをTmin=Tmin,i+1に変更する(ステップS32)。Tmin,i+1は、a個の候補値のうち、現在の候補値であるTmin,iよりも1段階大きい候補値である。なお、Tmin,iが、候補値の上限である場合、Tminは変更されない。
【0095】
上記のステップS31,S32の処理では、さらに、温度調整部22は、新しいTminを探索部21に設定する。
ステップS31,S32の処理後、温度調整部22は、平均エネルギー保持部42に、今回取得したEave,0をeave,oldとして保持させる(ステップS33)。
【0096】
その後、たとえば、全体制御部23は、所定の終了条件を満たすか否かを判定する(ステップS34)。たとえば、全体制御部23は、MCMC処理の回数が所定回数に達した場合、終了条件が満たされたと判定する。なお、図示を省略しているが、たとえば、全体制御部23は、終了条件が満たされたと判定した場合、探索部21からX1~Xnを取得し、X1~Xnのうち最低エネルギーに対応する状態を解として出力し、探索処理を終える。
【0097】
全体制御部23が所定の終了条件を満たさないと判定した場合、ステップS23からの処理が繰り返される。
なお、上記の処理の順序は一例であり、適宜処理の順序を入れ替えてもよい。
【0098】
以上のような第2の実施のデータ処理装置20においても第1の実施の形態のデータ処理装置10と同様の効果が得られる。すなわち、解の探索処理中に複数回取得したEave,0に基づいてTminの調整を行うことで、探索処理を繰り返さずに済み、調整時間が短縮可能である。
【0099】
(実験例)
以下、
図5に示したようなデータ処理装置20により、
図3(A)、
図3(B)、
図4(A)、
図4(B)のコンター図を得る際に用いた2種類の最適化問題を計算した結果を示す。なお、使用されるT
maxは、前述の式(7)を用いた算出方法により予め算出されたものである。
【0100】
図8は、最低エネルギーの計算結果の一例を示す図である。
計算対象の制約のない問題は、
図3(A)、
図3(B)のコンター図を得るために用いた、最大カット問題のベンチマーク問題であるGsetのG39である。計算に用いた評価関数に含まれる状態変数の数はN=2000であり、レプリカ数は80である。計算対象の制約のある問題は、
図4(A)、
図4(B)のコンター図を得るために用いた、1-Way 1-hot制約、線形不等式制約をもつ最適化問題である。計算に用いた評価関数に含まれる状態変数の数はN=8750であり、レプリカ数は80である。いずれの問題も、3分と30分の実行時間で計算された。
【0101】
図7に示したようなT
minの調整が行われる場合、T
minの調整が行われない場合よりも、何れの問題及び実行時間でも、最低エネルギーが小さくなり、T
minの調整を行わない場合よりも、よい解が得られた。
【0102】
(第3の実施の形態)
図9は、第3の実施の形態のデータ処理装置の一例を示す図である。
図9において、
図5に示した要素と同じ要素については同一符号が付されている。
【0103】
第3の実施の形態のデータ処理装置50において、探索部51は、第2の実施の形態のデータ処理装置20の探索部21と異なり、レプリカ間で温度値を交換するレプリカ交換法により最適化問題の解を探索する。この場合、レプリカ1~nに対応するレプリカ回路51a1,51a2,…,51anに設定される温度値は固定ではなくなる。このため、最低温度レプリカの処理を行うレプリカ回路はレプリカ回路51a1に固定されない。したがって、最低温度レプリカの平均エネルギーであるEave,0を計算する平均エネルギー計算部51b1は、レプリカ回路51a1~51anではなく、温度制御部51bに設けられている。
【0104】
温度制御部51bは、まず、T1~Tnをレプリカ回路51a1~51anのそれぞれが有するビットフリップ可否判定部30a1~30aNに設定する。温度制御部51bは、温度調整部22によってTminが変更された場合、予め設定されているTmaxと、変更後のTminに基づいて、式(3)、式(4)にしたがいT1~Tnを更新し、新たなT1~Tnをレプリカ回路51a1~51anに設定する。
【0105】
さらに、温度制御部51bは、レプリカ回路51a1~51anに設定されるT1~Tnの交換を制御する。温度制御部51bは、前述の式(2)で表される交換確率(pij)に基づいて、温度値が隣接するレプリカ回路のペアに関し、温度値の交換を行うか否かをペアごとに判定する。式(2)のEiやEjを得るために、温度制御部21bは、たとえば、各レプリカのエネルギーの初期値を保持し、レプリカ回路51a1~51anの保持部30cに保持されたΔEに基づいて、各レプリカのエネルギーを更新する。
【0106】
温度制御部51bは、レプリカiとレプリカjの状態を交換する場合、レプリカiに対応するレプリカ回路に設定されているTiを、レプリカjに対応するレプリカ回路に設定する。そして、温度制御部51bは、レプリカjに対応するレプリカ回路に設定されているTjを、レプリカiに対応するレプリカ回路に設定する。
【0107】
さらに、温度制御部51bに設けられた平均エネルギー計算部51b1は、最低温度レプリカの平均エネルギー(Eave,0)を計算する。Eave,0は温度調整部22に供給される。たとえば、平均エネルギー計算部51b1は、エネルギーの初期値を保持し、MCMC処理が繰り返されるたびに、最低温度レプリカに対応するレプリカ回路のセレクタ部30bが出力し保持部30cが保持するΔEを用いてEave,0を更新していく。最低温度レプリカがレプリカ交換によって変わる場合、平均エネルギー計算部51b1は、変更後の最低温度レプリカに対応するレプリカ回路におけるΔEを用いて、引き続きEave,0を更新していく。
【0108】
なお探索部51は、たとえば、ASICやFPGAなどの電子回路を用いて実現できる。また、これに限らず、探索部51の一部またはすべてがソフトウェア処理にて実現されるようにしてもよい。
【0109】
このような探索部51を用いても、データ処理装置50は、第2の実施の形態のデータ処理装置50と同様の効果が得られる。なお、レプリカ間で状態を交換する代わりに温度値を交換することで、レプリカ交換時において移動するデータ量が削減可能である。
【0110】
なお、上記のような平均エネルギー計算部51b1は、温度制御部51bではなく全体制御部23に設けられていてもよいし、レプリカ回路51a1~51an、温度制御部51b、全体制御部23などとは独立に設けられていてもよい。
【0111】
(コンピュータによる実装例)
図1、
図5、
図9に示したデータ処理装置10,20,50が行う上記の処理内容(たとえば、
図2や
図7)は、以下に示すようなコンピュータにプログラムを実行させることでソフトウェアにて実現することもできる。
【0112】
プログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)及びHDDが含まれる。光ディスクには、CD(Compact Disc)、CD-R(Recordable)/RW(Rewritable)、DVD(Digital Versatile Disc)及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体にプログラムをコピーして実行してもよい。
【0113】
図10は、データ処理装置の一例であるコンピュータのハードウェア例を示す図である。
コンピュータ60は、プロセッサ61、RAM62、HDD63、GPU64、入力インタフェース65、媒体リーダ66及び通信インタフェース67を有する。上記ユニットは、バスに接続されている。
【0114】
プロセッサ61は、たとえば、
図1の探索部12、処理部13、
図5及び
図9の探索部21,51、温度調整部22、全体制御部23として機能することができる。プロセッサ61は、プログラムの命令を実行する演算回路やキャッシュメモリなどの記憶回路を含む、GPUやCPUなどのプロセッサである。プロセッサ61は、HDD63に記憶されたプログラムやデータの少なくとも一部をRAM62にロードし、プログラムを実行する。なお、プロセッサ61は、たとえば、
図5、
図9に示したように、レプリカ回路21a1~21an,51a1~51anの機能を並列に実行するために、複数のプロセッサコアを備えてもよい。また、コンピュータ60は複数のプロセッサを備えてもよい。なお、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
【0115】
RAM62は、たとえば、
図1の記憶部11として機能する。RAM62は、プロセッサ61が実行するプログラムやプロセッサ61が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、コンピュータ60は、RAM62以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0116】
HDD63は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、前述のような最適化問題の解を探索する処理やTminの調整処理をコンピュータ60に実行させるプログラムが含まれる。なお、コンピュータ60は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0117】
GPU64は、プロセッサ61からの命令にしたがって、コンピュータ60に接続されたディスプレイ64aに画像(たとえば、最適化問題の解の探索結果などを表す画像)を出力する。ディスプレイ64aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
【0118】
入力インタフェース65は、コンピュータ60に接続された入力デバイス65aから入力信号を取得し、プロセッサ61に出力する。入力デバイス65aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、コンピュータ60に、複数の種類の入力デバイスが接続されていてもよい。
【0119】
媒体リーダ66は、記録媒体66aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体66aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、FDやHDDが含まれる。光ディスクには、CDやDVDが含まれる。
【0120】
媒体リーダ66は、たとえば、記録媒体66aから読み取ったプログラムやデータを、RAM62やHDD63などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、プロセッサ61によって実行される。なお、記録媒体66aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体66aやHDD63を、コンピュータ読み取り可能な記録媒体ということがある。
【0121】
通信インタフェース67は、ネットワーク67aに接続され、ネットワーク67aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース67は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【0122】
なお、コンピュータ60は、FPGAやASICなどの電子回路を有するアクセラレータカードをバスに接続していてもよい。そして、探索部12,21,51の処理がそのアクセラレータカードによって実行されるようにしてもよい。
【0123】
以上、実施の形態に基づき、本発明の温度調整プログラム、データ処理装置及びデータ処理方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【0124】
10 データ処理装置
11 記憶部
12 探索部
12a1~12an レプリカ回路
12b 温度制御部
12c 平均エネルギー計算部
13 処理部