JP2021174313A - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2021174313A
JP2021174313A JP2020078506A JP2020078506A JP2021174313A JP 2021174313 A JP2021174313 A JP 2021174313A JP 2020078506 A JP2020078506 A JP 2020078506A JP 2020078506 A JP2020078506 A JP 2020078506A JP 2021174313 A JP2021174313 A JP 2021174313A
Authority
JP
Japan
Prior art keywords
value
temperature
temperature value
minimum
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020078506A
Other languages
English (en)
Other versions
JP7513871B2 (ja
Inventor
純平 小山
Junpei Koyama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020078506A priority Critical patent/JP7513871B2/ja
Priority to EP21152930.0A priority patent/EP3905073A1/en
Priority to US17/165,989 priority patent/US20210334332A1/en
Priority to CN202110183733.3A priority patent/CN114115994A/zh
Publication of JP2021174313A publication Critical patent/JP2021174313A/ja
Application granted granted Critical
Publication of JP7513871B2 publication Critical patent/JP7513871B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • G06F18/295Markov models or related models, e.g. semi-Markov models; Markov random fields; Networks embedding Markov models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Feedback Control In General (AREA)
  • Power Sources (AREA)

Abstract

【課題】問題に適した温度値を取得する。【解決手段】探索部1aは、複数の温度値を用いて、エネルギー関数に含まれる複数の状態変数により表される基底状態の探索を行い、複数の状態変数に対するエネルギー関数の値を保持する。温度調整部1bは、複数の温度値のうちの第1温度値において複数の状態変数に対して得られたエネルギー関数の値を探索部1aから取得する。温度調整部1bは、第1温度値に達するまでに複数の状態変数に対して得られているエネルギー関数の最小値よりも、取得した値の方が小さいか否かを判定する。温度調整部1bは、探索部1aから取得した値が当該最小値よりも小さい場合に、第1温度値において最小値が更新されたことを示す更新情報を記録する。温度調整部1bは、複数の温度値のうちの更新情報が記録された第1温度値に基づいて第2温度値を出力する。【選択図】図1

Description

本発明は情報処理装置、情報処理方法およびプログラムに関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する情報処理装置がある。情報処理装置は、例えばシミュレーテッド・アニーリング(SA:Simulated Annealing)法やレプリカ交換法などのマルコフ連鎖モンテカルロ法により、問題に対応するエネルギー関数の値が最小となる基底状態を探索する。基底状態は、最適化問題の最適解に対応する。マルコフ連鎖モンテカルロ法による探索では、パラメータに温度値が用いられることがある。
例えば、イジングモデルの状態を複数の状態変数、すなわち、複数のビットで表し、デジタル回路を用いてSA法を行うことでエネルギー関数の値が最小となる各ビットの値の組合せを計算する最適化装置が提案されている。
また、複数の評価項目を持つ組合せ最適化問題をSA法を用いて解決する際に、各評価項目の重み係数を温度パラメータの変化とともに動的に変化させる組合せ最適化方法の提案がある。
特開2019−133651号公報 特開平9−34951号公報
SA法やレプリカ交換法などで用いられる温度値を問題に応じて適切に決定することは容易ではない。
1つの側面では、本発明は、問題に適した温度値を取得できる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
1つの態様では、情報処理装置が提供される。情報処理装置は、探索部および温度調整部を有する。探索部は、複数の温度値を用いて、エネルギー関数に含まれる複数の状態変数により表される基底状態の探索を行い、複数の状態変数に対するエネルギー関数の値を保持する。温度調整部は、複数の温度値のうちの第1温度値において複数の状態変数に対して得られたエネルギー関数の値を探索部から取得し、第1温度値に達するまでに複数の状態変数に対して得られているエネルギー関数の最小値よりも、取得した値の方が小さいか否かを判定し、当該値が当該最小値よりも小さい場合に、第1温度値において当該最小値が更新されたことを示す更新情報を記録し、複数の温度値のうちの更新情報が記録された第1温度値に基づいて第2温度値を出力する。
また、1つの態様では、情報処理方法が提供される。
また、1つの態様では、プログラムが提供される。
1つの側面では、問題に適した温度値を取得できる。
第1の実施の形態の情報処理装置の処理例を示す図である。 温度値の第1の決定例を示す図である。 温度値の第2の決定例を示す図である。 第2の実施の形態の情報処理装置の例を示す図である。 温度調整部の例を示す図である。 温度値の調整例を示す図である。 レプリカごとの最小エネルギー値の比較の例を示す図である。 温度インデックスごとの更新回数の記録の例を示す図である。 レプリカ交換の全体制御処理の例を示すフローチャートである。 探索処理の例を示すフローチャートである。 最小エネルギー更新確認処理の例を示すフローチャートである。 交換制御処理の例を示すフローチャートである。 第3の実施の形態の情報処理システムの例を示す図である。 情報処理装置の機能例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置の処理例を示す図である。
情報処理装置1は、組合せ最適化問題を定式化したイジング型のエネルギー関数に基づいて、SA法やレプリカ交換法などのマルコフ連鎖モンテカルロ法により、イジングモデルの最小エネルギーの状態、すなわち、基底状態の探索を行う。基底状態は組合せ最適化問題の最適解に対応する。エネルギー関数は、複数の状態変数の値により表される状態に対応するエネルギー値を表す。エネルギー関数は、評価関数や目的関数とも呼ばれる。状態変数は、「0」または「1」の値を取るバイナリ変数である。
イジング型のエネルギー関数E(x)は、例えば式(1)により表される。
Figure 2021174313
状態ベクトルxは、複数の状態変数を要素とし、イジングモデルの状態を表す。エネルギーを最大化する問題の場合には、エネルギー関数の符号を逆にすればよい。
式(1)の右辺第1項は、全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と結合係数との積を積算したものである。xは、i番目の状態変数である。xは、j番目の状態変数である。Wijは、i番目の状態変数とj番目の状態変数との間の重み、または、結合の強さを示す重み係数である。
式(1)の右辺第2項は、全状態変数のそれぞれのバイアス係数と状態変数の値との積の総和を求めたものである。bは、i番目の状態変数に対するバイアス係数を示している。
例えば、イジングモデルにおけるスピンの「−1」は、状態変数の値「0」に対応する。イジングモデルにおけるスピンの「+1」は、状態変数の値「1」に対応する。このため、状態変数を0または1の値をとるビットと呼ぶこともできる。
情報処理装置1は、探索部1a、温度調整部1bおよび記憶部1cを有する。情報処理装置1は、例えば、FPGA(Field Programmable Gate Array)などの半導体集積回路を用いて実現される。この場合、半導体集積回路を用いて実現される探索回路、温度調整回路およびメモリ回路が、探索部1a、温度調整部1bおよび記憶部1cとしてそれぞれ機能する。なお、記憶部1cは、温度調整部1bに内蔵されてもよい。すなわち、温度調整回路は、メモリ回路を内蔵してもよい。
探索部1aは、複数の温度値を用いて、エネルギー関数に含まれる複数の状態変数により表される基底状態の探索を行う。温度値は、温度を示す値である。探索部1aは、複数の状態変数に対するエネルギー関数の値を保持する。
基底状態の探索では、ある状態変数、すなわち、ビットを変化させることによる状態の遷移が繰り返し実行される。あるビットを変化させることによる、ある状態から次の状態への遷移確率の決定には、メトロポリス法やギブス法が用いられる。例えば、探索部1aは、複数のビットの何れかのビットを変化させたときのエネルギー変化と、ノイズ値との比較結果に基づいて、ビットの変化を許容するか否かを判定する。探索部1aは、許容すると判定した場合、ビットの値を変えることで、状態遷移を発生させる。ノイズ値は、温度値や乱数に基づいて求められる。温度値が大きいほど、ノイズ値の振幅が大きくなる。
探索部1aは、探索に用いられる最初の最高温度値として、比較的高い温度値を設定する。探索部1aは、最初の最低温度値として、比較的低い温度値を設定する。例えば、探索部1aは、探索に用いられる温度値tmp[i]を式(2)、(3)に基づいて決定する。
Figure 2021174313
Figure 2021174313
iは、0≦i≦N−1の整数であり、温度値の識別番号である。tmp_maxは、最高温度値である。tmp_minは、最低温度値である。式(3)のlogは、常用対数を示す。探索部1aは、初期最高温度値および初期最低温度値を用いて、式(2)、(3)によりi番目の初期温度値を計算する。
例えば、SA法を用いる場合、探索部1aは、初期最高温度値から初期最低温度値まで徐々に温度を下げながら探索を行う。後述されるように、探索部1aは、複数の状態変数の組を複数用いて、各組により個別に基底状態の探索を行うこともできる。
温度調整部1bは、探索部1aによる最高温度値から最低温度値までの複数の温度値それぞれでの探索結果を基に、該当の組合せ最適化問題、または当該組合せ最適化問題と同種類の組合せ最適化問題を解く際の新たな温度値を決定する。具体的には次の通りである。
温度調整部1bは、複数の温度値のうちのある温度値での探索部1aによる探索が完了すると、当該温度値での探索により得られた複数の状態変数の値に対応するエネルギー関数の値Eを探索部1aから取得する。ここで、エネルギー関数の値をエネルギー値ということがある。また、探索が行われた「ある温度値」を、第1温度値と称する。温度調整部1bは、エネルギー値Eとして、例えば、第1温度値での探索が完了した時点で探索部1aが到達した状態に対するエネルギー値を取得する。あるいは、温度調整部1bは、第1温度値での探索の過程で、探索部1aで得られた最小のエネルギー値を探索部1aから取得してもよい。
温度調整部1bは、探索部1aから取得したエネルギー値Eが、第1温度値に達するまでに複数の状態変数に対して得られているエネルギー関数の最小値、すなわち、最小エネルギー値Eminよりも小さいか否かを判定する。ここで、これまでに得られている最小エネルギー値Eminは、最小エネルギー値情報D1として、記憶部1cに保持される。
なお、最小エネルギー値Eminの初期値として、所定の値が記憶部1cに予め設定されてもよい。この場合、温度調整部1bは、1つ目の温度値での探索完了時点では上記判定に最小エネルギー値Eminの当該初期値を用いることができる。あるいは、最小エネルギー値Eminの初期値が記憶部1cに予め設定されていない場合、温度調整部1bは、1つ目の温度値での探索完了時点で最小エネルギー値Eminの初期値を取得し、2つ目の温度値での探索後から上記判定を行うようにしてもよい。
温度調整部1bは、今回取得したエネルギー値Eがこれまでの最小エネルギー値Eminよりも小さい場合、すなわち、E<Eminの場合に、第1温度値においてエネルギー関数の最小値が更新されたことを示す更新情報を記録する。更新情報は、記憶部1cに格納される。
例えば、各温度値の更新情報は、更新管理情報D2として、記憶部1cに保持される。更新管理情報D2は、温度値および最小エネルギー値更新の項目を含む。第1温度値の項目には、探索部1aで現在用いられている第1温度値または第1温度値のインデックスが設定される。最小エネルギー値更新の項目には、第1温度値で最小エネルギー値Eminが更新されたか否かを示す情報が設定される。
例えば、該当の第1温度値でEminが更新された場合、最小エネルギー値更新の項目は「1」である。また、該当の第1温度値でEminが更新されなかった場合、最小エネルギー値更新の項目は「0」である。最小エネルギー値更新の項目の初期値は、「0」である。この場合、更新管理情報D2の最小エネルギー値更新「1」が設定されたレコードが、更新情報の一例である。なお、後述されるように、温度調整部1bは、最小エネルギー値更新の項目に、最小エネルギー値Eminが更新された回数を記録してもよい。
なお、温度調整部1bは、E<Eminの場合、記憶部1cに保持される最小エネルギー値Eminを今回得られたエネルギー値Eに更新する。
また、温度調整部1bは、取得したエネルギー値Eが最小エネルギー値Emin以上の場合、第1温度値に対して更新情報を記録しない。
温度調整部1bは、探索部1aによる最高温度値から最低温度値までの複数の温度値での探索が完了すると、更新情報が記録された第1温度値に基づいて、第2温度値Taを決定し、第2温度値Taを出力する。例えば、第2温度値Taは、新たな最高温度値および新たな最低温度値の両方または何れか一方を含み得る。
例えば、複数の温度値を温度値T0〜T7の8個とする。温度値T0〜T7それぞれは第1温度値の一例である。温度値T0〜T7に関して、温度値T0<T1<T2<…<T7であるとする。温度値T0〜T7の全ての温度値での探索が完了した時点で、更新管理情報D2には、温度値T2,T4,T5に対して更新情報が記録されているとする。この場合、温度調整部1bは、例えば、温度値T2〜T5に基づいて、新たな温度値である第2温度値を決定する。
一例では、温度調整部1bは、温度値T2〜T5のうちの最小値である温度値T2を新たな最低温度値とし、温度値T2〜T5のうちの最大値である温度値T5を新たな最高温度値とする。あるいは、温度調整部1bは、温度値T2から所定値だけ小さいまたは大きい値を新たな最低温度値としてもよいし、温度値T5から所定値だけ小さいまたは大きい値を新たな最高温度値としてもよい。また、温度調整部1bは、第2温度値として最低温度値および最高温度値のうちの何れか一方だけを決定し、決定しなかった方の温度値については、現在の最低温度値または最高温度値を再利用するようにしてもよい。更に、他の例として、温度調整部1bは、温度値T2〜T5のうち、所定の閾値より大きい最大の温度値に基づいて新たな最高温度値を決定してもよいし、温度値T2〜T5のうち、当該閾値より小さい最小の温度値に基づいて新たな最低温度値を決定してもよい。
例えば、温度調整部1bは、新たな最低温度値T2および最高温度値T5を探索部1aに出力する。
すると、探索部1aは、tmp_max=T5とし、tmp_min=T2として、式(2)、(3)により、他の新たな温度値を計算する。その結果、温度値T2〜T5の範囲内で新たな8個の温度値が決定される。温度値T2〜T5の範囲内で決定された隣り合う温度値間の差は、温度値T0〜T7の範囲内での当初の隣り合う温度値間の差よりも小さくなる。探索部1aは、新たな温度値を用いて、該当の組合せ最適化問題に対する基底状態の探索を行う。
なお、温度調整部1bによる第2温度値Taの出力先は、情報処理装置1の外部の装置でもよいし、記憶部1cでもよい。例えば、温度調整部1bは、情報処理装置1に接続された記憶装置に第2温度値Taを保存し、今回の組合せ最適化問題と同種の他の組合せ最適化問題の求解において、第2温度値Taを利用可能としてもよい。
情報処理装置1によれば、複数の温度値を用いて、エネルギー関数に含まれる複数の状態変数により表される基底状態の探索が行われる。複数の温度値のうちの第1温度値において複数の状態変数に対して得られたエネルギー関数の値が取得される。第1温度値に達するまでに複数の状態変数に対して得られているエネルギー関数の最小値よりも、取得した値の方が小さいか否かが判定される。当該値が当該最小値よりも小さい場合に、第1温度値において当該最小値が更新されたことを示す更新情報が記録される。複数の温度値のうちの更新情報が記録された第1温度値に基づいて第2温度値が出力される。
これにより、問題に適した温度値を取得できる。
例えば、温度値が高過ぎたり低過ぎたりする場合、探索部1aの探索では、最小のエネルギー値の更新が起こらないことがある。最小のエネルギー値の更新が起こらないのであれば、該当の温度値ではエネルギー値が下がる方向に状態遷移が進んでおらず、基底状態の探索に寄与していないことになる。したがって、情報処理装置1は、最小のエネルギー値の更新が発生したという実績に基づいて、新温度値、すなわち、第2温度値を決定することで、基底状態の探索に寄与しない余計な温度値を除外できる。こうして、情報処理装置1は、問題に適した温度値を取得できる。また、情報処理装置1により、決定した新温度値に基づいて探索が行われることで、余計な温度値での探索が行われなくなる。更に、適切な温度値により、エネルギー値が下がる方向への状態遷移を促進できる。その結果、効率的に求解を行えるようになる。
なお、前述のように、探索部1aは、複数の状態変数の組を複数用いて、当該複数の組それぞれにより基底状態の探索を行ってもよい。
例えば、探索部1aは、複数の組のうちの第1の組による複数の温度値での探索が完了した後に、複数の組のうちの第2の組による当該複数の温度値での探索を開始するというように、各組の探索を直列に実行してもよい。この場合、温度調整部1bは、更新管理情報D2における最小エネルギー値更新の項目に、最小エネルギー値Eminの更新が発生した回数、すなわち、更新回数を記録してもよい。温度調整部1bは、各温度値のうち、最小エネルギー値Eminの更新回数が閾値よりも大きい2以上の温度値を特定し、当該2以上の温度値のうちの最大値を新たな最高温度値とし、当該2以上の温度値のうちの最小値を新たな最低温度値とすることも考えられる。
また、探索部1aは、状態変数の複数の組それぞれにより並列に基底状態の探索を行ってもよい。例えば、複数の状態変数の組の1つを、レプリカと呼ぶことがある。探索部1aは、複数のレプリカを用いて、レプリカ交換法による基底状態の探索を行うことができる。レプリカ交換法を用いる場合、探索部1aは、N個のレプリカに対して、N個の温度値を用いる。最初の段階では、N個のレプリカのうち、i番目のレプリカに、i番目の温度値tmp[i]が設定される。
探索部1aは、N個のレプリカによる基底状態の探索を開始させ、所定時間が経過すると、N個のレプリカそれぞれにおいて設定された温度値での探索により到達したエネルギー値を得る。探索部1aは、レプリカの組で得られたエネルギー値の組から計算される交換確率に基づいて、当該レプリカの組で温度値を交換する。レプリカの組で温度値を交換することを、「レプリカ交換」と呼ぶことがある。交換確率pは、式(4)で表される。
Figure 2021174313
ここで、Eは、i番目のレプリカで得られたエネルギー値である。Eは、j番目のレプリカで得られたエネルギー値である。Tは、i番目のレプリカの温度値である。Tは、j番目のレプリカの温度値である。kは、ボルツマン定数である。温度値の差が大きいと交換確率pは小さい傾向にある。このため、探索部1aは、隣り合う温度値の組に対応する探索部の組に対してだけ交換確率pを評価し、レプリカ交換を行うか否かを判定してもよい。
温度調整部1bは、レプリカ交換法による最高温度値から最低温度値までの探索結果を基に、該当の組合せ最適化問題、または当該組合せ最適化問題と同種類の他の組合せ最適化問題を解く際に用いられる新温度値を決定してもよい。
この場合、温度調整部1bは、最小エネルギー値情報D1を、レプリカごとに記憶部1cに記録する。温度調整部1bは、更新管理情報D2を複数のレプリカの全体に対して1つ用意し、複数のレプリカそれぞれにおける各温度値での探索結果に基づいて、更新管理情報D2を更新する。前述のように、温度調整部1bは、更新管理情報D2の最小エネルギー値更新の項目に、各温度値で最小エネルギー値Eminの更新が発生したか否かを示す情報を記録してもよいし、最小エネルギー値Eminの更新回数を記録してもよい。
次に、レプリカ交換法を用いる場合に、各温度値での最小エネルギー値Eminの更新回数に応じて新温度値を決定する例を説明する。
図2は、温度値の第1の決定例を示す図である。
グラフ51は、係数がスケーリングされた問題においてレプリカ交換法を用いた場合のイタレーション数と各レプリカの温度値との関係の例を示す。係数がスケーリングされた問題では、式(1)の重み係数Wが比較的大きな値となるため、エネルギー関数の値も比較的大きくなる。このため、探索に使用される温度値もそれに合わせて比較的大きな値となる。
ここで、1イタレーションは、各レプリカにおける1回の状態遷移に相当する。グラフ51の横軸は、イタレーション数である。グラフ51の縦軸は、レプリカに設定された温度値である。レプリカの数Nは、40程度である。グラフ51の1つの系列が1つのレプリカに対応する。温度値Tmaxは、グラフ51で示される探索に用いられた最高温度値である。当該探索での最低温度値は0.1である。グラフ51においてレプリカの温度値が変化している箇所が、レプリカ交換が行われたタイミングに相当する。
グラフ52は、グラフ51で示される探索において観測された、各温度値での最小エネルギー値更新回数を表す。グラフ52の横軸は最小エネルギー値更新回数である。グラフ52の縦軸は温度値である。
グラフ51,52を高温側から最小エネルギー値更新回数に注目してみると、最高温度値Tmaxに近い高温度帯51aでは、最小エネルギー値Eminの更新がほとんど発生していない。また、高温度帯51aよりも低い温度帯である中間温度帯51bでは、最小エネルギー値Eminの更新が比較的多く発生している。グラフ51では、あるレプリカについて、設定される温度値が比較的長い期間連続して下がっている場合に、当該期間の下がり始めの時点で最小エネルギー値Eminの更新が発生していることが多い。そして、中間温度帯51bよりも低い温度帯である低温度帯51cでは、最小エネルギー値Eminの更新がほとんど発生していない。
温度調整部1bは、グラフ52の情報に基づいて、探索に用いられた各温度値のうち、最小エネルギー値Eminの更新回数が閾値よりも大きい2以上の温度値を特定する。閾値は、0以上とすることができる。そして、温度調整部1bは、当該2以上の温度値のうちの最大値を新たな最高温度値とし、当該2以上の温度値のうちの最小値を新たな最低温度値とする。
その結果、最小エネルギー値Eminの更新が比較的多く発生している中間温度帯51bにおける最高温度値近傍の温度値が、新最高温度値として決定される。また、中間温度帯51bにおける最低温度値近傍の温度値が、新最低温度値として決定される。当該新最高温度値および新最低温度値は、第2温度値の一例である。
図3は、温度値の第2の決定例を示す図である。
グラフ61は、分子類似性問題においてレプリカ交換法を用いた場合のイタレーション数と各レプリカの温度値との関係の例を示す。当該分子類似性問題では、係数がスケーリングされた問題よりも探索に用いられる温度値は小さい。
グラフ61の横軸は、イタレーション数である。グラフ61の縦軸は、レプリカに設定された温度値である。レプリカの数Nは、40程度である。グラフ61の1つの系列が1つのレプリカに対応する。温度値Tmaxは、グラフ61で示される探索に用いられた最高温度値である。当該探索での最低温度値は0.1である。グラフ61においてレプリカの温度値が変化している箇所が、レプリカ交換が行われたタイミングに相当する。
グラフ62は、グラフ61で示される探索において観測された、各温度値での最小エネルギー更新回数を表す。グラフ62の横軸は最小エネルギー値更新回数である。グラフ62の縦軸は温度値である。
グラフ61,62を高温側から最小エネルギー値更新回数に注目してみると、最高温度値Tmaxに近い高温度帯61aでは、最小エネルギー値Eminの更新がほとんど発生していない。高温度帯61aよりも低い温度帯である中間温度帯61bでは、最小エネルギー値Eminの更新が比較的多く発生している。そして、中間温度帯61bよりも低い温度帯である低温度帯61cでは、最小エネルギー値Eminの更新がほとんど発生していない。
温度調整部1bは、グラフ62の情報に基づいて、探索に用いられた各温度値のうち、最小エネルギー値Eminの更新回数が閾値よりも大きい2以上の温度値を特定する。閾値は、0以上とすることができる。そして、温度調整部1bは、当該2以上の温度値のうちの最大値を新たな最高温度値とし、当該2以上の温度値のうちの最小値を新たな最低温度値とする。
その結果、最小エネルギー値Eminの更新が比較的多く発生している中間温度帯61bにおける最高温度値近傍の温度値が、新最高温度値として決定される。また、中間温度帯61bにおける最低温度値近傍の温度値が、新最低温度値として決定される。当該新最高温度値および新最低温度値は、第2温度値の一例である。
こうして、レプリカ交換を用いる場合にも、問題に応じて温度値を適切に決定することができる。例えば、温度値の範囲を中間温度帯51bまたは中間温度帯61bに絞り込むことで、当該中間温度帯に属する各温度値を、隣り合う温度値の差がより小さくなるように各レプリカに設定することができる。このため、式(4)に基づく交換確率が増し、各レプリカにおける状態遷移を一層促せる。その結果、最適解に到達する可能性が高まり、求解性能を向上させることができる。
なお、温度調整部1bは、最小エネルギー値を更新した第1温度値の統計値に基づいて、第2温度値の決定に用いる第1温度値を特定して、新たな最高温度値および最低温度値を決定することも考えられる。例えば、温度調整部1bは、統計値として、最小エネルギー値の更新回数に対する第1温度値の平均値μおよび標準偏差σを求めてもよい。当該μおよびσは、グラフ52やグラフ62で示されるヒストグラムを正規分布で近似することで得られる。例えば、温度調整部1bは、温度値μ+A*σの近傍である第1温度値を新たな最高温度値とすることが考えられる。また、例えば、温度調整部1bは、温度値μ−B*σの近傍である第1温度値を新たな最低温度値とすることも考えられる。なお、A,Bは正の実数である。このようにしても、温度調整部1bは、問題に応じた温度値を適切に取得できる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図4は、第2の実施の形態の情報処理装置の例を示す図である。
情報処理装置2は、レプリカ交換法を用いて、計算対象の最適化問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビットのそれぞれの値の組合せのうち、エネルギー関数が最小値となるときの各ビットの値を探索する。複数のビットの値の組合せは、イジングモデルの状態に相当し、そのうち、エネルギー関数が最小値となるものは、イジングモデルの基底状態に相当する。以下の説明では、イジングモデルの状態を、単にステートと呼ぶことがある。イジング型のエネルギー関数E(x)は、前述の式(1)で定義される。情報処理装置2は、イジングマシンや最適化装置などと呼ばれることもある。
情報処理装置2は、例えば、FPGAなどの半導体集積回路を用いて実現される。情報処理装置2は、探索部2a、温度調整部2bおよび全体制御部2cを有する。半導体集積回路を用いて実現される探索回路、温度調整回路および全体制御回路が、探索部2a、温度調整部2bおよび全体制御部2cとしてそれぞれ機能する。ただし、全体制御部2cは、情報処理装置2が備えるCPU(Central Processing Unit)によって実現されてもよい。例えば、全体制御部2cは、情報処理装置2が備えるRAM(Random Access Memory)に記憶されたプログラムをCPUが実行することで実現されてもよい。なお、探索部2aは、第1の実施の形態の探索部1aの一例である。温度調整部2bは、第1の実施の形態の温度調整部1bの一例である。
探索部2aは、複数のレプリカ回路を用いて、レプリカ交換法による基底状態の探索を行う。探索部2aは、レプリカ回路2a1,2a2,…,2aNおよび温度制御部20を有する。レプリカ回路2a1〜2aNは、第1の実施の形態で例示したレプリカの一例である。Nは、2以上の整数であり、レプリカ回路の数を示す。
レプリカ回路2a1〜2aNには、互いに異なる温度値T1〜TNが設定される。温度値T1〜TNは、例えば、予め与えられる最低温度値tmp_minおよび最高温度値tmp_maxを用いた式(2)、(3)に基づいて定められる。レプリカ回路2a1〜2aNの各々は、式(1)で表されるイジング型の評価関数に基づく基底状態探索を下記のような回路により実現する。以下では、レプリカ回路2a1を主に説明するが、レプリカ回路2a2〜2aNも同様の回路構成となる。
レプリカ回路2a1は、ΔE計算部20a1,20a2,…,20an、セレクタ21、状態更新部22およびエネルギー計算部23を有する。nは、2以上の整数であり、レプリカ回路2a1における総ビット数を示す。一例では、n=1024やn=8192などである。
ΔE計算部20a1〜20anそれぞれは、1つのビットに対応し、何れかのビットの変化に伴い、変化したビットと自ビットとの重み係数に基づいて、自ビットが次に変化する場合のエネルギー変化量の計算を行う。ΔE計算部20a1〜20anそれぞれは、計算したエネルギー変化量とノイズ値との比較に応じて、自ビットが次に変化することを許容するか否かを示すフラグをセレクタ21に出力する。ここで、ノイズ値は、温度値や乱数に基づいて求められる。温度値が大きいほど、ノイズ値の振幅が大きくなる。これにより、ΔE計算部20a1〜20anそれぞれは、メトロポリス法やギブス法に基づいて、自ビットが次に変化することを許容するか否かを判定する。
セレクタ21は、ΔE計算部20a1〜20anそれぞれから受け付けたフラグに基づいて、次に変化することが許容されたビットの中から、次に変化させるビットを選択する。例えば、セレクタ21は、乱数を用いて、次に変化することが許容されたビットの中から、次に変化させるビットを選択する。セレクタ21は、選択したビットのインデックスjを状態更新部22に出力する。
状態更新部22は、複数のビット、すなわち、ステートを保持する。状態更新部22は、保持しているステートのうち、セレクタ21から受け付けたインデックスjに対応するビットを反転させることで、ステートを更新する。
状態更新部22は、ΔE計算部20a1〜20anにインデックスjを出力する。また、状態更新部22は、現在のステート、すなわち、ビット列x,x,…,xをエネルギー計算部23に出力する。また、状態更新部22は、全体制御部2cにステートを出力する。
エネルギー計算部23は、状態更新部22から受け付けたステートと、エネルギー関数とに基づいて、当該ステートに対応するエネルギー値を計算する。エネルギー計算部23は、当該ステートに対して計算したエネルギー値を温度制御部20および温度調整部2bに出力する。エネルギー計算部23は、現在の温度値で得られた最小エネルギー値を保持し、現在の温度値で得られた最小エネルギー値を温度調整部2bに出力してもよい。
温度制御部20は、レプリカ回路2a1〜2aNそれぞれに異なる温度値T1〜TNを設定する。温度制御部20は、レプリカのインデックスと、温度値のインデックスとを対応付けた第1対応情報および温度値のインデックスと温度値とを対応付けた第2対応情報を、温度制御部20内のレジスタに保持することで、各レプリカ回路の温度値を管理する。温度制御部20は、温度値を更新する場合、第2対応情報における温度値を更新する。例えば、第2対応情報では、温度値のインデックスの昇順に、温度値が昇順に対応付けられる。なお、レプリカのインデックスをレプリカ番号と呼び、温度値のインデックスを温度インデックスと呼ぶことがある。
温度制御部20は、探索の全期間のうちの初期の所定期間では、予め与えられる最低温度値tmp_minおよび最高温度値tmp_maxを用いた式(2)、(3)に基づいて初期温度値T1〜TNを計算し、当該初期温度値T1〜TNを用いる。初期に与えられる最低温度値は比較的低い温度値である。また、初期に与えられる最高温度値は比較的高い温度値である。ここで、探索の初期の所定期間は、温度調整用の期間であり、温度調整期間と呼ばれる。
温度制御部20は、全体制御部2cから受け付ける起動信号に応じて、レプリカ回路2a1〜2aNによる探索を開始させる。温度制御部20は、レプリカ回路2a1〜2aNそれぞれでの所定数のイタレーション後、または、探索開始から所定時間経過後に、レプリカ回路2a1〜2aNそれぞれで得られたエネルギー値を取得する。温度制御部20は、取得したエネルギー値に応じた交換確率pに基づいて、隣り合う温度値が設定される2つのレプリカ回路の組で、温度値を交換する。交換確率pは、式(4)により計算される。なお、温度制御部20は、温度値に代えて、ステートを交換してもよい。この場合、第2対応情報におけるレプリカ番号は、各ステートを識別することになる。
温度制御部20は、温度値T1〜TNを温度調整部2bに出力する。温度制御部20は、温度調整期間が終了すると、新たな最高温度値tmp_maxおよび新たな最低温度値tmp_minを温度調整部2bから取得する。温度制御部20は、新たな最高温度値tmp_maxおよび最低温度値tmp_minを用いて、式(2)、(3)に基づき、新たな温度値T1〜TNを計算する。温度制御部20は、新たな温度値T1〜TNを、レプリカ回路2a1〜2aNに設定し、温度調整期間後の探索を開始させる。
温度調整部2bは、温度調整期間内では、レプリカ交換のタイミングごとに、各レプリカ回路から、今回の温度値で到達したエネルギー値を取得し、当該エネルギー値が該当のレプリカ回路でのこれまでの最小エネルギー値よりも小さいか否かを判定する。温度調整部2bは、あるレプリカ回路で得られたエネルギー値が当該レプリカ回路でのこれまでの最小エネルギー値よりも小さい場合、当該レプリカ回路で直前の探索に用いられた温度値に対する最小エネルギー値の更新回数をインクリメントする。
温度調整部2bは、温度調整期間が終了すると、各温度値に対する最小エネルギー値の更新回数に基づいて、最高温度値tmp_maxおよび最低温度値tmp_minを更新する。温度調整部2bは、新たな最高温度値tmp_maxおよび最低温度値tmp_minを、温度制御部20に出力する。
全体制御部2cは、外部から探索の開始を指示する起動信号を受け付けると、温度制御部20に起動信号を出力する。
全体制御部2cは、レプリカ回路2a1〜2aNによる探索の全期間が終了すると、レプリカ回路2a1〜2aNそれぞれが保持するステートを取得する。例えば、全体制御部2cは、レプリカ回路2a1〜2aNそれぞれが到達した最小エネルギー値に対応するステートをレプリカ回路2a1〜2aNそれぞれから取得する。
そして、全体制御部2cは、外部に終了信号を出力する。例えば、終了信号は、レプリカ回路2a1〜2aNそれぞれから最終的に取得したステート、あるいは、当該ステートのうちの最小のエネルギー値に対応するステートを含む。全体制御部2cは、情報処理装置2に接続された表示装置に当該ステートの情報を表示させてもよいし、情報処理装置2とネットワークを介して接続された他のコンピュータに当該ステートの情報を送信してもよい。
図5は、温度調整部の例を示す図である。
温度調整部2bは、最小エネルギーレジスタ31、更新回数レジスタ32、最小エネルギー更新確認部33、更新回数カウント部34、最高温度決定部35および最低温度決定部36を有する。最小エネルギーレジスタ31および更新回数レジスタ32は、第1の実施の形態の記憶部1cの一例である。
最小エネルギーレジスタ31は、レプリカ回路2a1〜2aNそれぞれで得られた最小エネルギー値を保持する。
更新回数レジスタ32は、温度値T1〜TNそれぞれに対する最小エネルギー値の更新回数を保持する。
最小エネルギー更新確認部33は、レプリカ回路2a1〜2aNそれぞれから現在の温度値での探索により得られた状態に対応するエネルギー値Eを取得する。最小エネルギー更新確認部33は、取得したエネルギー値Eと、最小エネルギーレジスタ31に記憶されている当該レプリカ回路のそれまでの最小エネルギー値Eminとを比較する。E<Eminの場合、最小エネルギー更新確認部33は、該当のレプリカ回路において最小エネルギー値が更新されたことを更新回数カウント部34に通知し、最小エネルギーレジスタ31に保持される当該レプリカ回路のEminをEに更新する。E≧Eminの場合、該当のレプリカ回路については最小エネルギー値が更新されていないことを更新回数カウント部34に通知する。
更新回数カウント部34は、あるレプリカ回路において最小エネルギー値が更新された旨の通知を受けると、該当のレプリカ回路に設定されている温度値に対応する温度インデックスを特定する。例えば、更新回数カウント部34は、該当のレプリカ回路に設定されている温度インデックスを温度制御部20から取得する。そして、更新回数カウント部34は、更新回数レジスタ32に保持される該当の温度インデックスに対応する更新回数をインクリメントする。更新回数カウント部34は、各温度インデックスに対してカウントした更新回数を最高温度決定部35および最低温度決定部36に出力する。
最高温度決定部35は、温度インデックスに対応する温度値を、温度制御部20から取得する。最高温度決定部35は、各温度インデックスに対応する更新回数に基づいて、新たな最高温度値を決定し、決定した最高温度値を温度制御部20に出力する。
最低温度決定部36は、温度インデックスに対応する温度値を、温度制御部20から取得する。最低温度決定部36は、各温度インデックスに対応する更新回数に基づいて、新たな最低温度値を決定し、決定した最低温度値を温度制御部20に出力する。
図6は、温度値の調整例を示す図である。
図6の横軸は、イタレーション数を示す。単位期間ST1,ST2,ST3,ST4,ST5,…それぞれは、レプリカ回路2a1〜2aNにより、ある温度値での探索が行われる探索期間の1単位である。単位期間は、所定のイタレーション数、あるいは、所定の時間間隔として定められる。ある単位期間の終了時刻と、次の単位期間の開始時刻との間の時間帯で、レプリカ交換が行われる。このとき、前の単位期間で到達したステートは該当のレプリカ回路で保持され、次の単位期間での探索に引き継がれる。図6の例では、探索の全期間のうち、単位期間ST1〜ST4を含む期間が、温度自動調整期間である。また、単位期間ST5以降の期間が、温度調整後の確率的探索、すなわち、最適化処理が行われる期間である。なお、図6では、エネルギー値を「eg」と略記することがある。
この場合、最小エネルギー更新確認部33は、単位期間ST1,ST2,ST3,ST4それぞれの終了直後の時刻に、例えば各レプリカ回路から現温度値での探索における最小エネルギー値を取得する。そして、最小エネルギー更新確認部33は、取得した最小エネルギー値が、これまでの最小エネルギー値よりも小さいか否か、すなわち、これまでの最小エネルギー値を更新したか否かをレプリカ回路ごとに確認する。ただし、最小エネルギー更新確認部33は、単位期間が終了したときに該当のレプリカ回路で保持されるステートに対応するエネルギー値を取得して、当該エネルギー値をこれまでの最小エネルギー値と比較し、最小エネルギー値が更新されたかを判定してもよい。
最小エネルギー更新確認部33は、最小エネルギー値が更新されたレプリカ回路のレプリカ番号について更新が発生した旨を示す識別情報を更新回数カウント部34に出力する。そして、更新回数カウント部34は、各レプリカ回路の温度値ごとに更新回数を集計する(ステップS1)。更新回数の集計は、単位期間ST1,ST2,ST3,ST4それぞれが終了したタイミングで行われ、単位期間ST1,ST2,ST3,ST4に亘る各温度値での更新回数がカウントされる。
最高温度決定部35および最低温度決定部36は、更新回数カウント部34から各温度値での更新カウントを取得し、最小エネルギー値が更新された温度範囲の最低または最高の温度値を使用して、新たな温度値を決定する(ステップS2)。最高温度決定部35は、新たな温度値のうち最高温度値を決定し、当該最高温度値を温度制御部20に出力する。最低温度決定部36は、新たな温度値のうち最低温度値を決定し、当該最低温度値を温度制御部20に出力する。
温度制御部20は、新たな最高温度値および最低温度値を用いて、式(2)、(3)により単位期間ST5以降の最適化処理で使用するN個の温度値を決定する。これにより、温度制御部20が保持する第2対応情報において、温度インデックスに対応付けられる温度値が更新される。温度制御部20は、レプリカ回路2a1〜2aNそれぞれの温度インデックスに対応する新たな温度値を、当該レプリカ回路に出力する。そして、温度制御部20は、レプリカ回路2a1〜2aNによる単位期間ST5以降の最適化処理を開始させる。
なお、温度調整期間に含まれる単位期間の数を4としたが、他の数でもよい。また、図6では、温度調整期間を最適化処理の全期間のうちの初期のみとしたが、全期間の途中に、複数回、温度調整期間を設けてもよい。例えば、温度調整期間を定期的に設けてもよい。
次に、温度調整部2bの具体的な処理例をデータ構造とともに説明する。
図7は、レプリカごとの最小エネルギー値の比較の例を示す図である。
最小エネルギーレジスタ31は、レプリカ番号に対応付けて、該当のレプリカ番号のレプリカ回路におけるこれまでの最小エネルギー値を保持する。例えば、最小エネルギーレジスタ31は、レプリカ番号iに対して最小エネルギー値min_eg_pre_iを保持する。min_eg_pre_iの初期値は予め与えられる。
最小エネルギー更新確認部33は、レプリカ回路2a1〜2aNそれぞれから現温度値での探索(アニーリング)で得られた結果である、最小エネルギー値を取得する。例えば、レプリカ番号iのレプリカ回路で得られた最小エネルギー値は、min_eg_iである。
最小エネルギー更新確認部33は、レプリカ番号iについて、min_eg_pre_iと、min_eg_iとを比較する。
min_eg_pre_i>min_eg_iの場合、最小エネルギー更新確認部33は、最小エネルギーレジスタ31に保持されるmin_eg_pre_iをmin_eg_iに更新する。加えて、最小エネルギー更新確認部33は、最小エネルギー値が更新されたことを示す更新フラグis_updated_i=1を、更新回数カウント部34に出力する。更新フラグis_updated_i=1は、レプリカ番号iのレプリカ回路で最小エネルギー値の更新が発生したことを示す識別情報の一例である。なお、更新フラグis_updated_iの初期値は0である。更新フラグis_updated_i=0は、最小エネルギー値が更新されていないことを示す。
min_eg_pre_i≦min_eg_iの場合、最小エネルギー更新確認部33は、例えば、レプリカ番号iについてis_updated_i=0を更新回数カウント部34に出力する。
図8は、温度インデックスごとの更新回数の記録の例を示す図である。
更新回数レジスタ32は、温度インデックスに対応付けて最小エネルギー値更新回数を保持する。例えば、温度インデックスiの最小エネルギー値更新回数はcnt_iである。cnt_iの初期値は0である。
更新回数カウント部34は、温度制御部20から温度情報41を取得する。温度情報41は、レプリカ番号と温度インデックスとの対応関係を示す。
また、更新回数カウント部34は、最小エネルギー更新情報42を最小エネルギー更新確認部33から取得する。最小エネルギー更新情報42は、レプリカ番号ごとの更新フラグの情報である。
更新回数カウント部34は、温度情報41に基づいて、レプリカ番号に対応する温度インデックスを特定し、最小エネルギー更新情報42におけるレプリカ番号を温度インデックスに変換する。
更新回数カウント部34は、更新回数レジスタ32に保持される最小エネルギー値更新回数に関して、更新フラグが「1」であるレプリカ番号に対応する温度インデックスの最小エネルギー値更新回数に1を加算する。
最高温度決定部35および最低温度決定部36は、更新回数レジスタ32に保持される各温度インデックスに対する最小エネルギー値更新回数と閾値との比較に応じて、新たな最高温度値および最低温度値をそれぞれ決定する。閾値は0以上の値が予め設定される。
一例として、閾値=0であり、温度値の昇順が温度インデックスiの昇順である場合を考える。
この場合、最高温度決定部35は、cnt_i>0である温度インデックスのうちの最大の温度インデックスに対応する温度値を、新たな最高温度値と決定する。また、最低温度決定部36は、cnt_i>0である温度インデックスのうちの最小の温度インデックスに対応する温度値を、新たな最低温度値と決定する。
あるいは、最高温度決定部35および最低温度決定部36は、更新回数レジスタ32における最小エネルギー値更新回数に対する温度値の統計値に基づいて、新たな最高温度値および最低温度値を決定してもよい。例えば、最高温度決定部35および最低温度決定部36は、統計値として、最小エネルギー値更新回数に対する温度値の平均値μおよび温度値に対する最小エネルギー値更新回数の分布の標準偏差σを求めてもよい。
そして、最高温度決定部35は、温度値μ+A*σの近傍である温度インデックスに対応する温度値を新たな最高温度値とすることが考えられる。また、最低温度決定部36は、温度値μ−B*σの近傍である温度インデックスに対応する温度値を新たな最低温度値とすることが考えられる。ここで、A,Bは何れも正の実数である。
なお、更新回数レジスタ32には、最小エネルギー値の更新回数に代えて、最小エネルギー値の更新頻度が記録されてもよい。例えば、更新回数カウント部34は、単位期間ST1〜ST4の累積の更新回数を、単位期間の数「4」で割ることで、単位期間当たりの更新頻度を記録してもよい。
次に、情報処理装置2の処理手順の例を説明する。
図9は、レプリカ交換の全体制御処理の例を示すフローチャートである。
(S10)全体制御部2cは、外部から入力データとして初期温度値を示す温度情報を取得し、当該温度情報とともに起動信号を温度制御部20に出力する。
(S11)温度制御部20は、全体制御部2cからの起動信号を受けて、レプリカ回路2a1〜2aNそれぞれに異なる初期温度値T1〜TNを設定し、確率的探索を実行させる。レプリカ回路2a1〜2aNそれぞれによる探索処理の詳細は後述される。
(S12)温度調整部2bは、レプリカ回路2a1〜2aNそれぞれで単位期間の探索が終了すると、レプリカ回路2a1〜2aNそれぞれで、直前の単位期間で得られたエネルギー値の取得を含む最小エネルギー更新確認処理を行う。最小エネルギー更新確認処理の詳細は後述される。
(S13)レプリカ回路2a1〜2aNは、温度値が隣り合う、すなわち、温度インデックスが隣り合うレプリカ回路のペアごとのエネルギー値を温度制御部20に伝達する。温度制御部20は、レプリカ回路2a1〜2aNで計算されたエネルギー値を、温度値が隣り合うレプリカ回路のペアごとに取得する。
(S14)温度制御部20は、式(4)に基づく交換確率を計算し、当該交換確率により温度値の交換制御処理を行う。温度制御部20は、温度値が隣り合うレプリカ回路のペアごとに、温度値の交換制御処理を行う。交換制御処理の詳細は後述される。
(S15)レプリカ回路2a1〜2aNは、規定回数のレプリカ交換を行っても、最低温度値のレプリカ回路におけるステートに変化がなくなったか否かを判定する。最低温度値のレプリカ回路におけるステートに変化がなくなると、レプリカ回路2a1〜2aNは、全体制御部2cにステートを出力し、レプリカ交換の全体制御処理を終了する。最低温度値のレプリカ回路におけるビットステートに変化がある場合、レプリカ回路2a1〜2aNは、ステップS16に処理を進める。
(S16)温度制御部20は、温度調整タイミングであるか否かを判定する。温度調整タイミングである場合、温度制御部20は、ステップS17に処理を進め、温度調整部2bによる温度調整を実行させる。温度調整タイミングでない場合、温度制御部20は、ステップS11に処理を進め、レプリカ回路2a1〜2aNによる確率的探索を継続させる。温度調整タイミングは、図11で例示したように、全イタレーションの期間のうちの初期における所定数の単位期間が完了したタイミングとすることができる。温度調整タイミングは、全イタレーションの期間の中に複数回設けられてもよく、周期的なタイミングでもよい。
(S17)温度調整部2bは、更新回数レジスタ32に記録されている各温度値の最小エネルギー値更新回数に基づいて、新たな最高温度値および最低温度値を計算する。温度調整部2bは、計算した最高温度値および最低温度値を、温度制御部20に出力する。温度制御部20は、新たな最高温度値および最低温度値を用いて、式(2)、(3)に基づきN個の温度値を計算する。温度制御部20は、計算したN個の温度値をレプリカ回路2a1〜2aNにそれぞれ設定する。そして、温度制御部20は、ステップS11に処理を進め、レプリカ回路2a1〜2aNによる確率的探索を継続させる。
全体制御部2cは、レプリカ回路2a1〜2aNから最終的に得られたステートを取得すると、外部に終了信号を出力する。例えば、終了信号は、レプリカ回路2a1〜2aNそれぞれが最終的に得られたステート、あるいは、当該ステートのうちの最小のエネルギー値に対応するステートを含む。全体制御部2cは、情報処理装置2に接続された表示装置に当該ステートの情報を表示させてもよいし、情報処理装置2とネットワークを介して接続された他のコンピュータに当該ステートの情報を送信してもよい。
図10は、探索処理の例を示すフローチャートである。
探索処理は、ステップS11に相当する。
(S20)温度制御部20は、レプリカ回路2a1〜2aNに互いに異なる温度値を設定する。レプリカ回路2a1〜2aNそれぞれに設定される初期温度値は、問題などに応じて予め定められる。ステップS17で温度値が更新された後は、更新後の温度値がレプリカ回路2a1〜2aNに設定される。
(S21)レプリカ回路2a1〜2aNそれぞれは、ビットごとにエネルギー変化量ΔEを計算する。
(S22)レプリカ回路2a1〜2aNそれぞれは、ビットごとのエネルギー変化量ΔEに基づいて、反転させるビットを選択する。
(S23)レプリカ回路2a1〜2aNそれぞれは、ステップS22で選択されたビットを反転させることでステートを更新する。
(S24)レプリカ回路2a1〜2aNそれぞれは、単位期間が終了したか否かを判定する。単位期間が終了した場合、レプリカ回路2a1〜2aNそれぞれは、ステップS25に処理を進める。単位期間が終了していない場合、レプリカ回路2a1〜2aNそれぞれは、ステップS21に処理を進める。ここで、単位期間が終了したか否かの判定は、前述のように、単位期間に対応する規定のイタレーション回数に到達したか、または、単位期間に対応する規定時間が経過したか否かにより判定される。
(S25)レプリカ回路2a1〜2aNそれぞれは、現在のステートに対応するエネルギー値を計算する。レプリカ回路2a1〜2aNそれぞれは、計算したエネルギー値を、温度制御部20および温度調整部2bに出力し、探索処理を終了する。
なお、レプリカ回路2a1〜2aNそれぞれは、温度調整部2bに対して、現温度値での探索により得られた最小エネルギー値を出力する場合、ステップS23の直後に現ステートでのエネルギー値を計算し、現在の温度値で到達した最小エネルギー値を保持する。そして、ステップS25において、レプリカ回路2a1〜2aNそれぞれは、温度調整部2bに対して、現温度値での探索により得られた最小エネルギー値を出力する。
図11は、最小エネルギー更新確認処理の例を示すフローチャートである。
(S30)最小エネルギー更新確認部33は、データ収集タイミングであるか否かを判定する。データ収集タイミングである場合、最小エネルギー更新確認部33は、ステップS31に処理を進める。データ収集タイミングでない場合、最小エネルギー更新確認部33は、データ更新確認処理を終了する。ここで、データ収集タイミングは、レプリカ回路2a1〜2aNにより並列に実行される1つの単位期間での探索処理が完了するごとのタイミングでもよいし、2つ以上の単位期間での探索処理が完了するごとのタイミングでもよい。データ収集タイミングをどのようなタイミングとするかは、温度調整部2bに予め設定される。
(S31)最小エネルギー更新確認部33は、レプリカ回路2a1〜2aNそれぞれから現在の温度値での探索により得られた状態に対応するエネルギー値Eを取得する。最小エネルギー更新確認部33は、全てのレプリカ、すなわち、レプリカ回路2a1〜2aNの全てに対して、ステップS32,S33を繰り返し実行する。
(S32)最小エネルギー更新確認部33は、該当のレプリカ回路について、今回取得したエネルギー値Eを、該当のレプリカ回路でこれまでに得られていた最小エネルギー値Eminと比較する。最小エネルギー更新確認部33は、E<Eminの場合、該当のレプリカ回路について最小エネルギーレジスタ31における最小エネルギー値Eminを、今回取得したエネルギー値Eに更新する。E≧Eminの場合、該当のレプリカ回路に関して、最小エネルギーレジスタ31の最小エネルギー値Eminを更新しない。
そして、最小エネルギー更新確認部33は、該当のレプリカ回路について、最小エネルギーレジスタ31における最小エネルギー値Eminが更新されたか否かを判定する。最小エネルギー値Eminが更新された場合、最小エネルギー更新確認部33は、該当のレプリカ回路で最小エネルギー値Eminが更新されたことを更新回数カウント部34に通知して、ステップS33に処理を進める。最小エネルギー値Eminが更新されていない場合、最小エネルギー更新確認部33は、該当のレプリカ回路で最小エネルギー値Eminが更新されていないことを更新回数カウント部34に通知して、ステップS34に処理を進める。
(S33)更新回数カウント部34は、該当のレプリカにおいて最小エネルギー値が更新された旨の通知を受けると、温度情報41に基づいて該当のレプリカ回路に設定されている温度値に対応する温度インデックスを特定する。更新回数カウント部34は、更新回数レジスタ32において、特定した温度インデックスに対応する最小エネルギー値更新回数に1を加算する。
(S34)最小エネルギー更新確認部33は、全てのレプリカ回路についてステップS31以降の手順を実行すると、最小エネルギー更新確認処理を終了する。
なお、レプリカ番号iのレプリカ回路について、図7で説明したmin_eg_iは、ステップS32で取得されるエネルギー値Eの一例である。また、レプリカ番号iのレプリカ回路について、図7で説明したmin_eg_pre_iは、ステップS32における、最小エネルギーレジスタ31に保持される最小エネルギー値Eminの一例である。また、レプリカ番号iのレプリカ回路について、図7で説明したis_updated_i=1の出力は、ステップS32における該当のレプリカ回路で最小エネルギー値Eminが更新されたことの通知の一例である。更新回数カウント部34に対する当該通知を行った後、最小エネルギー更新確認部33は、is_updated_iを0にリセットする。
図12は、交換制御処理の例を示すフローチャートである。
交換制御処理は、ステップS14に相当する。
(S40)温度制御部20は、温度値昇順(または降順)での偶数番目のレプリカ回路に関し、式(4)の交換確率に基づいて、隣り合う上位(または下位)温度のレプリカ回路と温度値を交換するか否かを判定する。温度値の交換の判定は、レプリカ回路のペアごとに行われる。温度値を交換すると判定されたレプリカ回路のペアがある場合、温度制御部20は、ステップS41に処理を進める。温度値を交換すると判定されたレプリカ回路のペアがない場合、温度制御部20は、ステップS42に処理を進める。
(S41)温度制御部20は、ステップS40で温度値を交換すると判定されたレプリカ回路のペアについて、温度値を交換する。
(S42)温度制御部20は、温度値昇順(または降順)での奇数番目のレプリカ回路に関し、式(4)の交換確率に基づいて、隣り合う上位(または下位)温度のレプリカ回路と温度値を交換するか否かを判定する。温度値の交換の判定は、レプリカ回路のペアごとに行われる。温度制御部20は、ステップS40において、偶数番目のレプリカ回路について上位温度のレプリカ回路と温度値を交換するか否かを判定した場合、ステップS42では奇数番目のレプリカ回路について上位温度のレプリカ回路と温度値を交換するか否かを判定する。温度制御部20は、ステップS40において、偶数番目のレプリカ回路について下位温度のレプリカ回路と温度値を交換するか否かを判定した場合、ステップS42では奇数番目のレプリカ回路について下位温度のレプリカ回路と温度値を交換するか否かを判定する。温度値を交換すると判定されたレプリカ回路のペアがある場合、温度制御部20は、ステップS43に処理を進める。温度値を交換すると判定されたレプリカ回路のペアがない場合、温度制御部20は、交換制御処理を終了する。
(S43)温度制御部20は、ステップS42で温度値を交換すると判定されたレプリカ回路のペアについて、温度値を交換する。そして、温度制御部20は、交換制御処理を終了する。
なお、上記の例では、偶数番目のレプリカ回路の次に奇数番目のレプリカ回路に着目して、温度値の交換制御を行うものとしたが、温度制御部20は、奇数番目のレプリカ回路の次に偶数番目のレプリカ回路に着目して、温度値の交換制御を行ってもよい。すなわち、温度制御部20は、ステップS42,S43の後に、ステップS40,S41を実行してもよい。また、前述のように、温度制御部20は、温度値の代わりにステートを交換してもよい。
情報処理装置2によれば、問題に適した温度値を取得できる。例えば、レプリカ交換法における最高温度値および最低温度値を、温度値ごとの最小エネルギー値の更新回数を基に決定することで、スピングラスや係数が拡大スケーリングされた問題でも適切な温度値を設定することができる。
ここで、温度値が高過ぎたり低過ぎたりする場合、探索部2aの探索では、最小エネルギー値の更新が起こらないことがある。最小エネルギー値の更新が起こらないのであれば、該当の温度値ではエネルギー値が下がる方向に状態遷移が進んでいないことになる。したがって、情報処理装置2は、最小エネルギー値の更新が発生したという実績に基づいて新温度値を決定することで、エネルギー値が下がる方向への状態遷移の促進に寄与しない余計な温度値を除外できる。こうして、情報処理装置2は、温度値を適切に決定できる。また、情報処理装置2により、決定した新温度値に基づいて探索が行われることで、余計な温度値での探索が行われなくなる。更に、適切な温度値により、エネルギー値が下がる方向への状態遷移を促進できる。その結果、効率的に求解を行えるようになり、情報処理装置2の求解性能を向上できる。
以上をまとめると、情報処理装置2は、例えば第1の実施の形態の情報処理装置1の機能を含む次の機能を有する。
探索部2aは、複数の温度値を用いて、エネルギー関数に含まれる複数の状態変数により表される基底状態の探索を行う。
温度調整部2bは、複数の温度値のうちの第1温度値において複数の状態変数に対して得られたエネルギー値を探索部1aから取得する。温度調整部2bは、第1温度値に達するまでに当該複数の状態変数に対して得られている最小エネルギー値よりも、取得したエネルギー値の方が小さいか否かを判定する。温度調整部2bは、取得したエネルギー値がそれまでの最小エネルギー値よりも小さい場合に、第1温度値において最小エネルギー値が更新されたことを示す更新情報を記録する。温度調整部2bは、複数の温度値のうちの更新情報が記録された第1温度値に基づいて第2温度値を出力する。
これにより、問題に適した温度値を取得できる。例えば、第2温度値に基づいて、探索部2aまたは温度調整部2bは最小エネルギー値の更新の実績のない温度値を省くように、新たな温度値を求めることができる。適切な温度値により基底状態の探索が行われることで、情報処理装置2の求解性能が向上する。
温度調整部2bは、探索部2aから取得するエネルギー値として、第1温度値での探索の間に複数の状態変数に対して得られたエネルギー値のうちの最小のエネルギー値を取得する。
これにより、該当の温度値でこれまでの最小エネルギー値を下回る状態が生成されたことを適切に検出できる。
また、探索部2aは、複数の状態変数の第1の組および第2の組をそれぞれ用いて探索を行う。1つのレプリカ回路の状態更新部(例えば、状態更新部22)に保持されるビット列は、複数の状態変数の1つの組の一例である。ただし、複数の状態変数の各組による探索は並列に実行されてもよいし、直列に実行されてもよい。また、探索部2aは、第1の組および第2の組を含む3以上の組をそれぞれ用いて探索を行ってもよい。
例えば、温度調整部2bは、第1の組に関して第1温度値におけるエネルギー関数の第1の値が、第1温度値に達するまでに第1の組に対して得られているエネルギー関数の第1の最小値よりも小さいか否かを判定する。温度調整部2bは、第1の値が第1の最小値よりも小さい場合に第1温度値に対して更新情報を記録する。
また、温度調整部2bは、第2の組に関して第1温度値におけるエネルギー関数の第2の値が、第1温度値に達するまでに第2の組に対して得られているエネルギー関数の第2の最小値よりも小さいか否かを判定する。温度調整部2bは、第2の値が第2の最小値よりも小さい場合に第1温度値に対して更新情報を記録する。
このように、複数の状態変数の複数の組を用いて各温度値での更新情報を記録することで、各温度値に対する更新情報の取得の精度を高められる。
また、温度調整部2bは、第1の値が第1の最小値よりも小さい場合に、第1の組に対して保持されている第1の最小値を第1の値に更新する。温度調整部2bは、第2の値が第2の最小値よりも小さい場合に、第2の組に対して保持されている第2の最小値を第2の値に更新する。温度調整部2bは、更新情報として、第1の最小値および第2の最小値が更新された回数を複数の温度値それぞれに対して記録し、複数の温度値それぞれに対して記録された回数に基づいて、複数の温度値のうち、第2温度値の決定に用いる温度値を特定する。
これにより、決定される温度値に対して統計的な信頼性を高めることができる。
例えば、第2温度値は、基底状態の探索に用いられる新たな最高温度値と最低温度値とを含む。温度調整部2bは、複数の温度値のうち、記録された回数が閾値よりも大きい2以上の温度値を特定する。温度調整部2bは、特定した2以上の温度値のうちの最大の温度値を最高温度値に決定する。温度調整部2bは、特定した2以上の温度値のうちの最小の温度値を最低温度値に決定する。
これにより、最小エネルギー値の更新が発生するものの、当該更新の回数が比較的小さい温度値を除外でき、新たな温度値の範囲をより適切に絞り込むことができる。また、温度値が適切に決定されることで、情報処理装置2の求解性能を向上できる。
あるいは、温度調整部2bは、複数の温度値それぞれに対する最小エネルギー値の更新の回数から、最小エネルギー値を更新した温度値の統計値を算出し、当該統計値に基づいて、第2温度値の決定に用いる第1温度値を特定してもよい。
これにより、問題に適した温度値を取得できる。また、温度値が適切に決定されることで、情報処理装置2の求解性能を向上できる。
例えば、温度調整部2bは、統計値として、前述のように最小エネルギー値の更新の回数に対する温度値の平均値μおよび標準偏差σを求めてもよい。そして、温度調整部2bは、平均値μおよび標準偏差σから特定される第1温度値に基づいて、最高温度値および最低温度値の両方または何れか一方を、第2温度値として求めてもよい。より具体的には、温度調整部2bは、前述のように、更新の回数が記録された複数の第1温度値のうち、温度値μ+A*σに最も近い第1温度値を最高温度値とし、温度値μ−B*σに最も近い第1温度値を最低温度値としてもよい。
また、探索部2aは、第1の組による探索と、第2の組による探索とを並列に実行する。例えば、探索部2aは、レプリカ交換法を用いずに、レプリカ回路2a1〜2aNそれぞれを独立に用いてSA法により同一の組合せ最適化問題の求解を並列に行ってもよい。
これにより、各組での探索により温度値ごとの更新情報の取得の精度を高められ、温度値を適切に決定できる。
例えば、探索部2aは、各組の探索を並列に行う場合に、第1の組による探索で用いられる温度値と、第2の組による探索で用いられる他の温度値とを、所定の交換確率に基づいて交換してもよい。すなわち、探索部2aは、レプリカ回路2a1〜2aNを並列に用いて、レプリカ交換法による探索を行ってもよい。
これにより、レプリカ交換法を用いる場合にも温度値を適切に決定できる。
あるいは、探索部2aは、第1の組による複数の温度値を用いた探索が完了してから、第2の組による探索を開始してもよい。
これにより、探索部2aがレプリカ回路を1つだけ用いて探索を行う場合でも、各組での探索により温度値ごとの更新情報の取得の精度を高められ、温度値を適切に決定できる。例えば、探索部2aは、1つのレプリカ回路を用いて、まずは第1の組による探索を行い、次に第2の組による探索を行い、各探索の過程で、温度調整部2bによる各温度値に対する更新情報の記録を行うことが考えられる。
また、温度調整部2bは、決定した第2温度値を探索部2aに出力する。そして、探索部2aは、第2温度値に基づいて複数の他の温度値を決定し、決定した複数の他の温度値を用いて、エネルギー関数に対応する基底状態の探索を行う。
これにより、情報処理装置2の求解性能を向上できる。例えば、全イタレーション期間のうちの一部期間での探索結果により温度値を調整し、その後の期間では調整後の温度値で基底状態の探索が行われることで、各レプリカ回路での状態遷移が促進され、一定期間内に最適解に到達する可能性を高めることができる。
[第3の実施の形態]
次に第3の実施の形態を説明する。前述の第1,第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
図13は、第3の実施の形態の情報処理システムの例を示す図である。
情報処理システム3は、情報処理装置4および情報処理装置5を有する。
情報処理装置4は、CPU101、RAM102、HDD(Hard Disk Drive)103、IO(Input/Output)インタフェース104、画像信号処理部105、入力信号処理部106、媒体リーダ107およびNIC(Network Interface Card)108を有する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、情報処理装置4は複数のプロセッサを有してもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置4は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、情報処理装置4は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
IOインタフェース104は、情報処理装置5と接続され、CPU101からの命令に従って、情報処理装置5に対するデータの入出力を行う。例えば、IOインタフェース104は、CPU101の命令に応じて、RAM102のデータを情報処理装置5のレジスタまたはメモリに書き込んだり、情報処理装置5からデータを読み出して、RAM102に書き込んだりする。IOインタフェース104としては、例えば、PCI−e(Peripheral Component Interconnect - Express)などが用いられる。
画像信号処理部105は、CPU101からの命令に従って、情報処理装置4に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部106は、情報処理装置4に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置4に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ107は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ107は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
NIC108は、ネットワーク6に接続され、ネットワーク6を介して他のコンピュータと通信を行うインタフェースである。NIC108は、例えば、ネットワーク6に含まれるスイッチやルータなどの通信装置とケーブルで接続される。
情報処理装置5は、エネルギー関数の情報に基づいて、SA法やレプリカ交換法による基底状態探索をハードウェアにより行うアクセラレータである。情報処理装置5は、イジングマシンや最適化装置などと呼ばれてもよい。ただし、情報処理装置5に代えて、CPU101が所定のソフトウェアを実行することで、SA法やレプリカ交換法などのマルコフ連鎖モンテカルロ法を実行する探索部の機能を実現することもできる。
図14は、情報処理装置の機能例を示す図である。
情報処理装置4は、温度調整部4aおよび記憶部4bを有する。温度調整部4aは、RAM102に記憶されたプログラムがCPU101により実行されることで実現される。記憶部4bには、RAM102やHDD103の記憶領域が用いられる。
温度調整部4aは、第1の実施の形態の温度調整部1bまたは第2の実施の形態の温度調整部2bに対応し、探索部5aから取得されるエネルギー値に基づいて、温度調整部1bまたは温度調整部2bと同じ処理を実行する。
記憶部4bは、第1の実施の形態の記憶部1cに対応し、記憶部1cに格納されるデータと同じデータを記憶する。あるいは、記憶部4bは、第2の実施の形態の最小エネルギーレジスタ31および更新回数レジスタ32に格納されるデータと同じデータを記憶してもよい。
情報処理装置5は、探索部5aを有する。探索部5aは、第1の実施の形態の探索部1aまたは第2の実施の形態の探索部2aに対応し、探索部1aまたは探索部2aと同じ処理を実行する。探索部5aは1つのレプリカ回路に相当する回路を備えて、SA法により基底状態の探索を行ってもよいし、複数のレプリカ回路を備えて、レプリカ交換法により基底状態の探索を行ってもよい。
なお、探索部5aに含まれる温度制御部の機能は、情報処理装置4に設けられてもよい。例えば、当該温度制御部は、RAM102に記憶されたプログラムがCPU101により実行されることで実現されてもよい。
第3の実施の形態の情報処理システム3においても、温度調整部4aにより、温度調整部1bや温度調整部2bと同様にして、探索部5aに設定される温度値が調整される。これにより、温度調整部4aの機能を、探索部5aを有する情報処理装置5とは異なる情報処理装置4により実現する場合にも、第1,第2の実施の形態と同様に、問題に適した温度値を取得できる。
ところで、第1の実施の形態の探索部1aおよび温度調整部1bの機能は、情報処理装置1が有するCPUにプログラムを実行させることで実現されてもよい。また、第2の実施の形態の探索部2a、温度調整部2bおよび全体制御部2cの機能は、情報処理装置2が有するCPUにプログラムを実行させることで実現されてもよい。更に、第3の実施の形態の温度調整部4aの機能は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体113に記録できる。
例えば、プログラムを記録した記録媒体113を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体113に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1 情報処理装置
1a 探索部
1b 温度調整部
1c 記憶部
D1 最小エネルギー値情報
D2 更新管理情報

Claims (11)

  1. 複数の温度値を用いて、エネルギー関数に含まれる複数の状態変数により表される基底状態の探索を行い、前記複数の状態変数に対する前記エネルギー関数の値を保持する探索部と、
    前記複数の温度値のうちの第1温度値において前記複数の状態変数に対して得られた前記エネルギー関数の値を前記探索部から取得し、前記第1温度値に達するまでに前記複数の状態変数に対して得られている前記エネルギー関数の最小値よりも、取得した前記値の方が小さいか否かを判定し、前記値が前記最小値よりも小さい場合に、前記第1温度値において前記最小値が更新されたことを示す更新情報を記録し、前記複数の温度値のうちの前記更新情報が記録された前記第1温度値に基づいて第2温度値を出力する温度調整部と、
    を有する情報処理装置。
  2. 前記温度調整部は、前記値として、前記第1温度値において前記複数の状態変数に対して得られた前記エネルギー関数の複数の前記値のうちの最小の前記値を取得する、
    請求項1記載の情報処理装置。
  3. 前記探索部は、前記複数の状態変数の第1の組および第2の組をそれぞれ用いて前記探索を行い、
    前記温度調整部は、
    前記第1の組に関して、前記第1温度値における前記エネルギー関数の第1の値が、前記第1温度値に達するまでに前記第1の組に対して得られている前記エネルギー関数の第1の最小値よりも小さいか否かを判定し、前記第1の値が前記第1の最小値よりも小さい場合に前記第1温度値に対して前記更新情報を記録し、
    前記第2の組に関して、前記第1温度値における前記エネルギー関数の第2の値が、前記第1温度値に達するまでに前記第2の組に対して得られている前記エネルギー関数の第2の最小値よりも小さいか否かを判定し、前記第2の値が前記第2の最小値よりも小さい場合に前記第1温度値に対して前記更新情報を記録する、
    請求項1記載の情報処理装置。
  4. 前記温度調整部は、
    前記第1の値が前記第1の最小値よりも小さい場合に、前記第1の組に対して保持されている前記第1の最小値を前記第1の値に更新し、
    前記第2の値が前記第2の最小値よりも小さい場合に、前記第2の組に対して保持されている前記第2の最小値を前記第2の値に更新し、
    前記更新情報として、前記第1の最小値および前記第2の最小値が更新された回数を前記複数の温度値それぞれに対して記録し、前記複数の温度値それぞれに対して記録された前記回数に基づいて、前記複数の温度値のうち、前記第2温度値の決定に用いる前記第1温度値を特定する、
    請求項3記載の情報処理装置。
  5. 前記第2温度値は、前記探索に用いられる新たな最高温度値と最低温度値とを含み、
    前記温度調整部は、前記複数の温度値のうち、記録された前記回数が閾値よりも大きい2以上の温度値を特定し、前記2以上の温度値のうちの最大の温度値を前記最高温度値に決定し、前記2以上の温度値のうちの最小の温度値を前記最低温度値に決定する、
    請求項4記載の情報処理装置。
  6. 前記温度調整部は、前記複数の温度値それぞれに対する前記回数から前記エネルギー関数の前記最小値を更新した温度値の統計値を算出し、前記統計値に基づいて前記第2温度値の決定に用いる前記第1温度値を特定する、
    請求項4記載の情報処理装置。
  7. 前記探索部は、前記第1の組による前記探索と、前記第2の組による前記探索とを並列に実行する、
    請求項3記載の情報処理装置。
  8. 前記探索部は、前記複数の温度値のうち、前記第1の組による前記探索で用いられている温度値と、前記複数の温度値のうち、前記第2の組による前記探索で用いられている他の温度値とを、所定の交換確率に基づいて交換する、
    請求項7記載の情報処理装置。
  9. 前記温度調整部は、前記第2温度値を前記探索部に出力し、
    前記探索部は、前記第2温度値に基づいて複数の他の温度値を決定し、前記複数の他の温度値を用いて、前記エネルギー関数に対応する前記基底状態の前記探索を行う、
    請求項1記載の情報処理装置。
  10. 情報処理装置が、
    複数の温度値を用いてエネルギー関数に含まれる複数の状態変数により表される基底状態の探索を行うとともに前記複数の状態変数に対する前記エネルギー関数の値を保持する探索部から、前記複数の温度値のうちの第1温度値において前記複数の状態変数に対して得られた前記エネルギー関数の値を取得し、
    前記第1温度値に達するまでに前記複数の状態変数に対して得られている前記エネルギー関数の最小値よりも、取得した前記値の方が小さいか否かを判定し、
    前記値が前記最小値よりも小さい場合に、前記第1温度値において前記最小値が更新されたことを示す更新情報を記録し、
    前記複数の温度値のうちの前記更新情報が記録された前記第1温度値に基づいて第2温度値を出力する、
    情報処理方法。
  11. コンピュータに、
    複数の温度値を用いてエネルギー関数に含まれる複数の状態変数により表される基底状態の探索を行うとともに前記複数の状態変数に対する前記エネルギー関数の値を保持する探索部から、前記複数の温度値のうちの第1温度値において前記複数の状態変数に対して得られた前記エネルギー関数の値を取得し、
    前記第1温度値に達するまでに前記複数の状態変数に対して得られている前記エネルギー関数の最小値よりも、取得した前記値の方が小さいか否かを判定し、
    前記値が前記最小値よりも小さい場合に、前記第1温度値において前記最小値が更新されたことを示す更新情報を記録し、
    前記複数の温度値のうちの前記更新情報が記録された前記第1温度値に基づいて第2温度値を出力する、
    処理を実行させるプログラム。
JP2020078506A 2020-04-27 2020-04-27 情報処理装置、情報処理方法およびプログラム Active JP7513871B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020078506A JP7513871B2 (ja) 2020-04-27 2020-04-27 情報処理装置、情報処理方法およびプログラム
EP21152930.0A EP3905073A1 (en) 2020-04-27 2021-01-22 Information processing apparatus, information processing method, and program
US17/165,989 US20210334332A1 (en) 2020-04-27 2021-02-03 Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
CN202110183733.3A CN114115994A (zh) 2020-04-27 2021-02-10 信息处理设备和方法以及非暂态计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020078506A JP7513871B2 (ja) 2020-04-27 2020-04-27 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2021174313A true JP2021174313A (ja) 2021-11-01
JP7513871B2 JP7513871B2 (ja) 2024-07-10

Family

ID=74215704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020078506A Active JP7513871B2 (ja) 2020-04-27 2020-04-27 情報処理装置、情報処理方法およびプログラム

Country Status (4)

Country Link
US (1) US20210334332A1 (ja)
EP (1) EP3905073A1 (ja)
JP (1) JP7513871B2 (ja)
CN (1) CN114115994A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023061477A (ja) * 2021-10-20 2023-05-02 富士通株式会社 プログラム、データ処理方法及びデータ処理装置
CN114884170B (zh) * 2022-05-26 2024-03-22 惠州市盛微电子有限公司 基于pwm的恒流方法、恒流装置、电池管理系统
JP2024092195A (ja) * 2022-12-26 2024-07-08 富士通株式会社 温度調整プログラム、データ処理装置及びデータ処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934951A (ja) 1995-07-20 1997-02-07 Nec Corp 組合せ最適化方法
JP6892599B2 (ja) * 2017-07-05 2021-06-23 富士通株式会社 最適化装置及び最適化装置の制御方法
JP6465231B1 (ja) * 2018-03-12 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7071638B2 (ja) * 2018-07-31 2022-05-19 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7206476B2 (ja) 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP6997404B2 (ja) 2018-09-14 2022-01-17 富士通株式会社 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP2019133651A (ja) 2019-01-09 2019-08-08 富士通株式会社 最適化装置及び最適化装置の制御方法

Also Published As

Publication number Publication date
JP7513871B2 (ja) 2024-07-10
CN114115994A (zh) 2022-03-01
EP3905073A1 (en) 2021-11-03
US20210334332A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
JP2021174313A (ja) 情報処理装置、情報処理方法およびプログラム
US11262717B2 (en) Optimization device and control method of optimization device based on temperature statistical information
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7417078B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2021033341A (ja) 最適化装置および最適化装置の制御方法
JP2021131611A (ja) 情報処理装置、プログラム、情報処理方法および情報処理システム
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP2020204929A (ja) サンプリング装置およびサンプリング方法
CN112529144B (zh) 一种面向短期时间序列预测的预期性学习方法和系统
JP2020205049A (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7201911B2 (ja) 最適化装置および最適化装置の制御方法
CN113128663B (zh) 优化装置、温度设置方法和温度设置程序
JP2021144443A (ja) 情報処理システム、情報処理方法およびプログラム
JP2022015503A (ja) 情報処理システム、情報処理方法及びプログラム
JP2023061477A (ja) プログラム、データ処理方法及びデータ処理装置
JP2020173579A (ja) 最適化システムおよび最適化システムの制御方法
JP2024030713A (ja) 温度調整プログラム、データ処理装置及びデータ処理方法
US20220366011A1 (en) Non-transitory computer-readable storage medium and information processing apparatus
JP2023149806A (ja) 情報処理装置、情報処理方法およびプログラム
US20230401279A1 (en) Information processing apparatus, information processing method, and storage medium
US20220092380A1 (en) Optimization device, optimization method, and computer-readable recording medium storing optimization program
JP2023079015A (ja) 情報処理装置、情報処理方法およびプログラム
JP2021131723A (ja) 情報処理方法、情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240610

R150 Certificate of patent or registration of utility model

Ref document number: 7513871

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150