(57)【要約】  最適化装置においてレプリカ交換法での交換が充分に行われる仕組みを提供する。最適化装置は、それぞれの状態とそれぞれの前記状態に各々対応する異なる温度とが割り当てられており、状態に応じたそれぞれの評価関数値を計算すると共に、温度及び評価関数値に応じた確率で状態を遷移させる複数の焼鈍部と、温度と評価関数値とに基づく所定の交換確率で温度又は状態を複数の焼鈍部の間で交換する交換部と、複数の焼鈍部のうちの着目焼鈍部に対して、温度が低い側に温度順の並びで隣接する第１の焼鈍部と着目焼鈍部との間の交換確率と、温度が高い側に温度順の並びで隣接する第２の焼鈍部と着目焼鈍部との間の交換確率とが、互いに近づくように着目焼鈍部の温度を変化させる温度調整部とを含む。
2020054024.tif 000002
【特許請求の範囲】
【請求項１】
それぞれの状態とそれぞれの前記状態に各々対応する異なる温度とが割り当てられており、前記状態に応じたそれぞれの評価関数値を計算すると共に、前記温度及び前記評価関数値に応じた確率で前記状態を遷移させる複数の焼鈍部と、
前記温度と前記評価関数値とに基づく所定の交換確率で前記温度又は前記状態を前記複数の焼鈍部の間で交換する交換部と、
前記複数の焼鈍部のうちの着目焼鈍部に対して、温度が低い側に温度順の並びで隣接する第１の焼鈍部と前記着目焼鈍部との間の交換確率と、温度が高い側に温度順の並びで隣接する第２の焼鈍部と前記着目焼鈍部との間の交換確率とが、互いに近づくように前記着目焼鈍部の前記温度を変化させる温度調整部と
を含む最適化装置。
【請求項２】
前記温度調整部は、前記状態の複数回の遷移に亘る前記評価関数値の平均値に基づいた、前記第１の焼鈍部と前記着目焼鈍部との間の交換確率と、前記第２の焼鈍部と前記着目焼鈍部との間の交換確率とが、互いに近づくように前記着目焼鈍部の前記温度を変化させる、請求項１記載の最適化装置。
【請求項３】
前記温度調整部は、前記第１の焼鈍部と前記着目焼鈍部との間の交換確率と前記第２の焼鈍部と前記着目焼鈍部との間の交換確率とのいずれか一方が１である場合には前記着目焼鈍部の前記温度を変化させない、請求項１又は２記載の最適化装置。
【請求項４】
前記温度調整部は、温度順に並んだ前記複数の焼鈍部に対して、偶数番の焼鈍部に対する温度調整処理と奇数番の焼鈍部に対する温度調整処理とを交互に実行する、請求項１乃至３いずれか一項記載の最適化装置。
【請求項５】
前記評価関数値及び前記平均値は固定小数点で表現され、前記平均値を求めるための除数は２の累乗であり、固定小数点で表現された値の加減算及びシフト演算のみにより前記評価関数値の前記平均値の計算を行う、請求項２記載の最適化装置。
【請求項６】
前記着目焼鈍部の温度を変化させる際の逆温度の変化幅は、前記着目焼鈍部の逆温度と、前記第１の焼鈍部又は前記第２の焼鈍部の逆温度との差に比例する値である、請求項１乃至５いずれか一項記載の最適化装置。
【請求項７】
前記着目焼鈍部の温度を変化させる際の逆温度の変化幅は、前記着目焼鈍部の逆温度と、前記第１の焼鈍部又は前記第２の焼鈍部の逆温度との差を２の累乗で除算した値であり、前記逆温度は浮動小数点で表現され、浮動小数点で表現された値の加減算及び指数部の減算のみにより前記着目焼鈍部の前記温度を変化させる計算を行う、請求項１乃至５いずれか一項記載の最適化装置。
【請求項８】
それぞれの状態とそれぞれの前記状態に各々対応する異なる温度とが割り当てられた複数の焼鈍部において、前記状態に応じたそれぞれの評価関数値を計算すると共に、前記温度及び前記評価関数値に応じた確率で前記状態を遷移させ、
前記温度と前記評価関数値とに基づく所定の交換確率で前記温度又は前記状態を前記複数の焼鈍部の間で交換し、
前記複数の焼鈍部のうちの着目焼鈍部に対して、温度が低い側に温度順の並びで隣接する第１の焼鈍部と前記着目焼鈍部との間の交換確率と、温度が高い側に温度順の並びで隣接する第２の焼鈍部と前記着目焼鈍部との間の交換確率とが、互いに近づくように前記着目焼鈍部の前記温度を変化させる
各段階を含む最適化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、最適化装置及び最適化装置の制御方法に関する。
【背景技術】
【０００２】
最適化問題は、探索空間上で定義された目的関数の値を最小にする探索空間に属する点（解）を見つける問題である。探索空間が有限個の要素を有する離散集合である場合、探索空間に属する全ての点について計算した目的関数値を互いに比較することにより、総当たり的に最小値を見つけることができる。しかしながら、探索空間の次元数が増えると集合の要素の数が爆発的に大きくなり、総当たり的な探索が実質的に不可能になる。【０００３】
焼き鈍し法（Simulated Annealing）は、金属を徐々に冷却して欠陥の少ない結晶を得る金属の焼き鈍し工程を模擬するものであり、探索空間に属する各点が物理現象の各状態に対応し、目的関数が各状態の有する系のエネルギーに対応する。また各状態の出現する確率に温度の概念を導入し、ある任意の温度においてはエネルギーが小さいほど状態の出現確率が高く、温度が低くなるほど異なる２つのエネルギー間の出現確率の比が大きくなるような確率分布を考える。当該確率分布を実現するように各状態を発生させながら状態を徐々に変化させ、充分に遅い速度で温度を低くしていくことにより、最小のエネルギー値を有する最適解に状態が収束することが期待できる。上記の確率分布としては例えばボルツマン分布を用いることができる。【０００４】
上記確率分布に従う状態分布を実現するためには、マルコフ連鎖モンテカルロ法を用いることができる。マルコフ連鎖モンテカルロ法では、遷移確率を適切に定めることにより、当該遷移確率に従って遷移するマルコフ過程のサンプル列を所望の定常分布に収束させることができる。これを利用して、焼き鈍し法における状態を適切な遷移確率に従って遷移させていくことにより、所望の確率分布に従った状態の分布を実現することができる。【０００５】
例えば、マルコフ連鎖モンテカルロ法の代表的なアルゴリズムであるメトロポリス法によりボルツマン分布を実現するためには、現在の状態のエネルギーから次の状態のエネルギーへの変化をΔＥとしたとぎ、次の状態に遷移する確率Ｐを以下の式で定める。
Ｐ＝ｍｉｎ［１，ｅｘｐ（−βΔＥ）］
ここでβは逆温度（絶対温度Ｔの逆数）であり、β＝１／Ｔである。関数ｍｉｎ［１，ｘ］は値１と値ｘとのいずれか小さい方の関数値を有する。上式によれば、ΔＥ≦０のときに確率１で次の状態に遷移し、０＜ΔＥのときに確率ｅｘｐ（−βΔＥ）で次の状態に遷移する。この遷移確率に従う状態間の遷移を充分な回数繰り返すと、各状態が有するエネルギーの分布（確率密度）がボルツマン分布に比例する系が実現される。この系においてメトロポリス法に基づいて状態を遷移させながら、充分に遅い速度で温度を低くしていくことにより、最小のエネルギー値を有する最適解に状態を収束させることができる。【０００６】
焼き鈍し法では、最適化対象の問題毎に定まる温度低減のスケジュールに従って計算すれば最適解が得られることが保証されている。しかしながら、実用的な計算時間内で最適解を得ることは難しく、また最適化計算対象の問題毎に適切な温度低減のスケジュールを定めることが難しい。これらの問題を解決するための１つの単純なアプローチは、焼き鈍し法で最適解を探索する複数の系を用意し、それら複数の系を互いに独立且つ並列に走らせることである。系の数が多いほど、より最適解に近い解が見つかる確率が高くなる。【０００７】
更なる工夫として、温度が異なる複数の系を用意し、それら複数の系を並列に走らせながら、適切な交換確率に従って系の間で状態又は温度を交換する方法が、レプリカ交換法である。交換確率としては、全ての系の確率分布を掛け算した同時分布関数が、交換操作を行っても不変であるように定められる。このような交換を行うことにより、状態が時間と共に遷移していく１つの状態列に着目したときに、当該状態列が温度が異なる複数の系を渡り歩きながら、最適解を探索していくことになる。レプリカ交換法では温度低減のスケジュールを考える必要がなく、単純な焼き鈍し法と比較して、短時間でより良好な解が求まることが期待できる。【０００８】
しかしながら、各系のエネルギー及び温度の条件によっては、系間での交換が充分に行われないことがある。例えば、ある温度の系において高温側の系との交換確率が非常に高く且つ低温側の系との交換確率が非常に低い条件となるような各系のエネルギー分布が継続すると、この温度の位置において低温側から高温側への状態遷移ができない壁ができてしまう。レプリカ交換法では、低温から高温まで全温度範囲を状態列が往来することが重要であり、上記のような壁ができてしまうと、適切な解に収束しにくくなる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１８−５５４１号公報
【特許文献２】特開平９−２３１１９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以上を鑑みると、最適化装置においてレプリカ交換法での交換が充分に行われる仕組みを提供することが望まれる。
【課題を解決するための手段】
【００１１】
最適化装置は、それぞれの状態とそれぞれの前記状態に各々対応する異なる温度とが割り当てられており、前記状態に応じたそれぞれの評価関数値を計算すると共に、前記温度及び前記評価関数値に応じた確率で前記状態を遷移させる複数の焼鈍部と、前記温度と前記評価関数値とに基づく所定の交換確率で前記温度又は前記状態を前記複数の焼鈍部の間で交換する交換部と、前記複数の焼鈍部のうちの着目焼鈍部に対して、温度が低い側に温度順の並びで隣接する第１の焼鈍部と前記着目焼鈍部との間の交換確率と、温度が高い側に温度順の並びで隣接する第２の焼鈍部と前記着目焼鈍部との間の交換確率とが、互いに近づくように前記着目焼鈍部の前記温度を変化させる温度調整部とを含む。
【発明の効果】
【００１２】
少なくとも１つの実施例によれば、最適化装置においてレプリカ交換法での交換が充分に行われる仕組みを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】最適化装置の構成の一例を示す図である。
【図２】焼鈍部の構成の一例を示す図である。
【図３】焼鈍部が実行するアニール処理の具体的な一例を示すフローチャートである。
【図４】交換制御部の概略的な構成の一例を示す図である。
【図５】状態番号保持部が保持するレプリカ番号対応テーブルの一例を示す図である。
【図６】温度保持部が保持する温度対応テーブルの一例を示す図である。
【図７】図１に示す最適化装置の動作の一例を概略的に示すフローチャートである。
【図８】図１に示す最適化装置の動作の一例を詳細に示すフローチャートである。
【図９】交換制御部の詳細な構成の一例を示す図である。
【図１０】温度調整部による温度調整処理の処理の一例を示すフローチャートである。
【図１１】奇数番目の温度番号に対する温度調整処理と偶数番目の温度番号に対する温度調整処理とを交互に繰り返す動作の一例を示す図である。
【図１２】連番の全ての温度番号に対する温度調整処理を実行する動作の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。以下の図において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００１５】
図１は、最適化装置の構成の一例を示す図である。最適化装置は、複数の焼鈍部１０−１乃至１０−ｍと交換制御部１１とを含む。焼鈍部１０−１乃至１０−ｍ及び交換制御部１１は、電子回路によりハードウェアとして構成される。図１及び以降の同様の図において、各ボックスで示される各回路又は機能ブロックと他の回路又は機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各回路又は機能ブロックは、他のブロックと物理的にある程度分離された１つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の１つの機能を示したものであってもよい。
【００１６】
焼鈍部１０−１乃至１０−ｍ（ｍは２以上の整数）は、それぞれの状態Ｓ１乃至Ｓｍを保持すると共にそれぞれの異なる逆温度β１乃至βｍが割り当てられており、異なる温度の複数の系を実現する。逆温度は絶対温度Ｔの逆数（１／Ｔ）である。焼鈍部１０−１乃至１０−ｍの個数ｍは、レプリカ交換法に用いるに適した数多くの異なる温度に対応する個数であってよい。
【００１７】
焼鈍部１０−１乃至１０−ｍは、それぞれが独立に焼き鈍し法（Simulated Annealing）による処理（以降アニール処理）を実行してよい。即ち、焼鈍部１０−１乃至１０−ｍは、それぞれが保持する状態Ｓ１乃至Ｓｍに応じたそれぞれの評価関数値を計算すると共に、それぞれの逆温度β１乃至βｍ及び評価関数値に応じた確率で状態Ｓ１乃至Ｓｍを遷移させてよい。但し図１に示す最適化装置ではレプリカ交換法を用いるので、各焼鈍部１０−１乃至１０−ｍにおいて温度を低減させる必要はなく、所定の確率で状態Ｓ１乃至Ｓｍの遷移を繰り返せばよい。焼鈍部１０−１乃至１０−ｍの回路構成は基本的に互いに同一であってよい。
【００１８】
交換制御部１１は、所定のタイミングにおいて、逆温度と評価関数値とに基づく所定の交換確率で、焼鈍部１０−１乃至１０−ｍの間で逆温度を交換する（即ち温度を交換する）。焼鈍部１０−１乃至１０−ｍは互いに同一の回路であり、互いを区別するものはそれぞれに割り振られた状態及び温度であるので、温度を交換する代わりに状態を交換してもよい。温度を交換することと状態を交換することとは等価である。以下の説明においては、交換制御部１１が焼鈍部１０−１乃至１０−ｍ間で逆温度を交換する構成を例として用いるが、交換制御部１１が焼鈍部１０−１乃至１０−ｍ間で状態を交換してもよい。
【００１９】
交換制御部１１は更に、後述するように、焼鈍部１０−１乃至１０−ｍに割り振る逆温度を調整する（即ち温度を調整する）。より具体的には、温度順の並びにおいて着目焼鈍部に対して温度が低い側に隣接する焼鈍部との交換確率と温度が高い側に隣接する焼鈍部との交換確率とが互いに近づくように、着目焼鈍部の温度を変化させる。このような温度調整により、レプリカ交換法において交換が充分に行われるようにすることができる。
【００２０】
図２は、焼鈍部の構成の一例を示す図である。図２には、焼鈍部１０−１乃至１０−ｍの代表として、ｉ番目の焼鈍部１０−ｉの構成を示す。なお図２では、当該焼鈍部内での焼き鈍し法による処理を実行するに必要な構成のみが示されている。
【００２１】
焼鈍部１０−ｉは、状態保持部２１、評価関数計算部２２、及び遷移制御部２３を含む。状態保持部２１は、焼鈍部１０−ｉが有する状態Ｓｉを保持するレジスタ又はメモリ装置であってよい。評価関数計算部２２は、状態保持部２１が保持する状態Ｓｉを受け取り、状態Ｓｉに応じた評価関数値Ｅｉを計算する。遷移制御部２３は、交換制御部１１から割り当てられた逆温度βｉと評価関数計算部２２が計算した評価関数値Ｅｉとに基づいて、現在の状態から次の状態への遷移を制御する。
【００２２】
具体的には、評価関数計算部２２は、現在の状態Ｓｉの評価関数値Ｅｉを計算すると共に、現在の状態Ｓｉから僅かに変化した次の状態の候補である状態Ｓ'ｉに対する評価関数値Ｅ'ｉを計算し、更に両者の差分ΔＥ（＝Ｅ'ｉ−Ｅｉ）を計算する。例えばＳｉの確率分布としてボルツマン分布を想定し、メトロポリス法を用いる場合、次の状態Ｓ'ｉに遷移する確率Ｐを以下の式で定めることができる。
Ｐ＝ｍｉｎ［１，ｅｘｐ（−βｉΔＥ）］              （１）
メトロポリス法は限定的でない一例であり、例えばギブス・サンプリング法等の他の遷移制御アルゴリズムを用いてもよい。以下の説明では、メトロポリス法を用いた場合を例に用いる。
【００２３】
遷移制御部２３は、確率Ｐに応じて次の状態Ｓ'ｉに遷移するか否かを判定する。遷移制御部２３は、遷移すると判定した場合には、状態保持部２１に対して状態Ｓｉを状態Ｓ'ｉに変化させるように指示する（或いは状態保持部２１の状態Ｓｉを状態Ｓ'ｉに書き換える）。遷移しないと判定した場合には、状態遷移は起こらず、現在の状態Ｓｉがそのまま維持される。以上の処理を繰り返すことにより、焼鈍部１０−ｉは、アニール処理を実行する。
【００２４】
上記の評価関数の形式は特定の形式に限定されないが、例えばイジングモデルに基づく以下のエネルギー関数であってよい。
【００２５】
【数１】
2020054024.tif 000003
ここでＳｉは、以下のようにＭ個（Ｍ：正の整数）のスピンを有する状態である。
Ｓｉ＝（ｘ１，ｘ２，・・・，ｘＭ）                      （３）
各スピンは０又は＋１の値をとる。Ｗｊｋはスピン間の結合の重み係数であり、Ｗｊｊ＝０であってよい。またｂｊはバイアスである。
【００２６】
図３は、焼鈍部が実行するアニール処理の具体的な一例を示すフローチャートである。図３に示すアニール処理は、図２に示される焼鈍部１０−ｉの各部が実行する。
【００２７】
なお図３及び以降の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、Ａステップの次にＢステップを実行することが可能なだけでなく、Ｂステップの次にＡステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Ｂステップの次にＡステップが実行されてもよいことは自明である。Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
【００２８】
図３のステップＳ１で、焼鈍部の評価関数計算部２２は乱数を更新する。ステップＳ２で、評価関数計算部２２は、各スピンｘｊについて、当該スピンを反転させたときのエネルギーの差分ΔＥｊ（反転後のエネルギーから反転前のエネルギーを引いた値）を計算する。ステップＳ３で、遷移制御部２３は、各スピンｘｊについて反転確率Ｐｊを計算する。即ち、当該スピンｘｊが反転する遷移が起こる確率を前述の式（１）を用いて計算する。なおこの際、反転確率を調整するためにエネルギーのオフセットＥｏｆｆを導入し、式（１）のΔＥの部分にはΔＥｊ−Ｅｏｆｆの値を用いて反転確率を計算する。オフセットＥｏｆｆの初期値はゼロである。
【００２９】
ステップＳ４で、遷移制御部２３は、各スピンｘｊについて反転確率Ｐｊと一様乱数ｒ（０＜ｒ＜１）とを比較し、Ｐｊ＞ｒであれば各スピンｘｊに対応して設けられた反転フラグＦｊを１に設定する。Ｐｊ≦ｒであれば反転フラグＦｊを０に設定する。ステップＳ５で、遷移制御部２３は、１である反転フラグＦｊが存在するか否かを判定する。１である反転フラグＦｊが存在しない場合、遷移制御部２３は、オフセットＥｏｆｆを所定値増加する。その後、処理はステップＳ１に戻り以降の処理を繰り返す。
【００３０】
ステップＳ５で１である反転フラグＦｊが存在する場合、処理はステップＳ７に進む。ステップＳ７で遷移制御部２３は、一様乱数ｒ'を用い、反転フラグＦｊが１であるスピンｘｊの中からランダムに１つのスピンｘｋを選択する。ステップＳ８で、遷移制御部２３はスピンｘｋを反転させると共に、スピンｘｋ反転後のエネルギーを再計算することにより、状態とエネルギーとを更新する。
【００３１】
ステップＳ９で、遷移制御部２３は、アニール処理として指定された回数のイタレーション処理のうちの最後のイタレーションが終了したか否かを判定する。最後のイタレーションが終了していない場合、遷移制御部２３は、オフセットＥｏｆｆをゼロにリセットし、ステップＳ１に処理を戻す。最後のイタレーションが終了した場合、焼鈍部は、アニール処理を終了する。
【００３２】
図４は、交換制御部１１の概略的な構成の一例を示す図である。図４に示す交換制御部１１は、レプリカ交換演算部３１、温度調整部３２、状態番号保持部３３、及び温度保持部３４を含む。交換制御部１１は、焼鈍部１０−ｉに接続されており、焼鈍部１０−ｉから評価関数値Ｅｉ及び評価関数値の平均値ａｖｅＥｉを受け取ると共に、焼鈍部１０−ｉに対して割り当てる逆温度βｉを通知する。焼鈍部１０−ｉは平均計算部２４を含み、この平均計算部２４が、状態の複数回の遷移に亘る評価関数値の平均値ａｖｅＥｉを計算する。
【００３３】
図４においては、図示の都合上焼鈍部１０−ｉのみが示されるが、交換制御部１１は、図１に示されるように複数個の焼鈍部１０−１乃至１０−ｍに接続されている。交換制御部１１は、焼鈍部１０−１乃至１０−ｍからそれぞれの評価関数値Ｅ１乃至Ｅｍ及びその平均値ａｖｅＥ１乃至ａｖｅＥｍを受け取ると共に、焼鈍部１０−１乃至１０−ｍに対してそれぞれの逆温度β１乃至βｍを通知する。
【００３４】
レプリカ交換演算部３１は、所定のレプリカ交換タイミングにおいて、焼鈍部１０−１乃至１０−ｍ間でレプリカ交換処理（即ち所定の確率で逆温度を交換する処理）を実行する。この所定のレプリカ交換タイミングとしては、焼鈍部１０−１乃至１０−ｍにおいてアニール処理の遷移動作（図３で説明したイタレーション）を所定回数実行完了する毎のタイミングであってよい。即ち、所定回数のイタレーションと逆温度の交換処理とを交互に繰り返し実行してよい。
【００３５】
レプリカ交換演算部３１は、焼鈍部１０−１乃至１０−ｍのうち、温度交換の対象となる焼鈍部１０−ｉ及び焼鈍部１０−ｊを選択する。焼鈍部１０−ｉ及び焼鈍部１０−ｊは、逆温度順の並び（温度順の並び）で隣接する２つの焼鈍部であり、焼鈍部１０−ｉの逆温度βｉは焼鈍部１０−ｊの逆温度βｊよりも大きい。以降の説明において、逆温度の降順で並べられた焼鈍部を特定するために添字ｎを用い、温度交換の対象となる焼鈍部１０−ｉ及び焼鈍部１０−ｊをそれぞれ焼鈍部１０−ｎ及び焼鈍部１０−ｎ＋１と表記する。この表記に従えば、例えば焼鈍部１０−ｎ−１、１０−ｎ、１０−ｎ＋１は、逆温度の降順の並びで隣接する３つの焼鈍部であり、それぞれの対応する逆温度βｎ−１、βｎ、βｎ＋１の大小関係はβｎ−１＞βｎ＞βｎ＋１である。以下の説明において、添字ｎを用いたときには、逆温度降順の並びに言及しているものとする。なお逆温度の降順の並びで処理する代わりに、逆温度の昇順の並びで処理を行ってもよい。
【００３６】
レプリカ交換演算部３１は、焼鈍部１０−ｎ及び焼鈍部１０−ｎ＋１の評価関数値Ｅｎ及びＥｎ＋１と逆温度βｎびβｎ＋１とに基づいて、焼鈍部１０−ｎと焼鈍部１０−ｎ＋１との間で温度を交換するか否かを決定する。具体的には、以下の確率Ｐｔで温度交換を実行する。
Ｐｔ＝ｍｉｎ［１，ｅｘｐ｛（βｎ−βｎ＋１）（Ｅｎ−Ｅｎ＋１）｝］        （４）
一様乱数とＰｔとを比較して、乱数値よりもＰｔの方が大きいときに逆温度を交換すればよい。Ｐｔが乱数値以下である場合には逆温度は交換しない。
【００３７】
レプリカ交換演算部３１は、一回のレプリカ交換タイミングにおいて、交換対象となる２つの焼鈍部を順次選択していくことにより、全ての焼鈍部１０−１乃至１０−ｍに対して上記のレプリカ交換処理を実行する。或いは、レプリカ交換演算部３１は、全ての焼鈍部１０−１乃至１０−ｍに対するレプリカ交換処理を並列に実行してよい。交換対象のペアとなる２つの焼鈍部は、奇数回目のレプリカ交換タイミングにおいて、例えば奇数番目の焼鈍部とその次の番号の焼鈍部とであり、偶数回目のレプリカ交換タイミングにおいて、例えば偶数番目の焼鈍部とその次の番号の焼鈍部とであってよい。
【００３８】
状態番号保持部３３は、レプリカ番号（焼鈍部の番号）と温度番号とを対応付けて格納したレプリカ番号対応テーブルを有する。ここで言うレプリカ番号は、逆温度順の並びとは無関係であり、物理的な実体としての各焼鈍部１０−１乃至１０−ｍを特定する番号である。このレプリカ番号対応テーブルに基づいて、レプリカ番号ｉである焼鈍部１０−ｉに割り当てられているβｉは何番の温度番号に対応するのかが特定できる。
【００３９】
また温度保持部３４は、温度番号と逆温度値（又は温度値）とを対応付けて格納した温度対応テーブルを有する。この温度対応テーブルに基づいて、何番の温度番号が幾つの逆温度値に対応するのかが特定できる。これらのレプリカ番号対応テーブルと温度対応テーブルとを用いて、焼鈍部１０−１乃至１０−ｍへの逆温度値の割り当て及び交換処理が管理される。
【００４０】
図５は、状態番号保持部３３が保持するレプリカ番号対応テーブル４０の一例を示す図である。図５に示されるように、レプリカ番号０乃至１５がそれぞれ温度番号０乃至１５に割り当てられている。図５は例えば初期状態の対応関係を示しており、レプリカ交換が進んだ後では、レプリカ番号０乃至１５と温度番号０乃至１５との対応関係はランダムになっている。この際、温度番号０乃至１５については図５に示されるように昇順の並びのままとし、レプリカ番号について順番を並べ替えることが好ましい。これは、温度交換の際には温度順の並びで隣接した２つの温度間で交換をするので、レプリカ番号対応テーブル４０において温度順の並びを保持しておいた方が、隣接する２つの温度に対応するレプリカ番号を特定しやすいからである。図５において、テーブルのエントリ数は一例として１６である場合が示されているが、テーブルのエントリ数は特定の数に限定されない。
【００４１】
図６は、温度保持部３４が保持する温度対応テーブル４１の一例を示す図である。図６に示されるように、温度番号０乃至１５がそれぞれ逆温度値Ａ乃至Ｐに割り当てられている。本実施例においては、逆温度値Ａ乃至Ｐは降順に並んでいる。即ち、温度番号０の側において逆温度が高く（温度が低く）、温度番号１５の側において逆温度が低い（温度が高い）配置となっている。図６において、テーブルのエントリ数は一例として１６である場合が示されているが、テーブルのエントリ数は特定の数に限定されない。
【００４２】
図４に戻り、レプリカ交換演算部３１は、焼鈍部１０−ｎと焼鈍部１０−ｎ＋１との間で逆温度を交換すると判定すると、状態番号保持部３３に保持されるレプリカ番号対応テーブル４０において、レプリカ番号ｎとレプリカ番号ｎ＋１との位置を入れ替える。このようにレプリカ番号ｎとレプリカ番号ｎ＋１との位置を入れ替えることにより、レプリカ番号ｎ及びｎ＋１とそれぞれに割り当てられている温度番号との対応関係を入れ替えることができる。例えば、図５においては、レプリカ番号１０及びレプリカ番号１１がそれぞれ温度番号１０及び１１に対応付けられている。この状態から、矢印で示されるようにレプリカ番号を入れ替えることにより、レプリカ番号１１及びレプリカ番号１０がそれぞれ温度番号１０及び１１に対応付けられるように、レプリカ番号対応テーブル４０が更新される。
【００４３】
レプリカ交換演算部３１は、焼鈍部１０−ｉに通知する逆温度βｉの値として、レプリカ番号対応テーブル４０においてレプリカ番号ｉ番目に対応する温度番号を参照し、当該温度番号に対応する逆温度値を温度対応テーブル４１から読み出す。レプリカ交換演算部３１は、この読み出した逆温度値を逆温度βｉの値として焼鈍部１０−ｉに通知する。
【００４４】
図４に示される温度調整部３２は、レプリカ交換演算部３１によるレプリカ交換直後のタイミングにおいて、温度保持部３４に保持される温度対応テーブル４１のエントリである逆温度値（又は温度値）を書き換えることにより温度調整を実行する。具体的には、温度調整部３２は、第１の焼鈍部１０−ｎ−１と着目焼鈍部１０−ｎとの間の交換確率と、第２の焼鈍部１０−ｎ＋１と着目焼鈍部１０−ｎとの間の交換確率とが、互いに近づくように着目焼鈍部１０−ｎの温度を変化させる。ここで第１の焼鈍部１０−ｎ−１は、着目焼鈍部１０−ｎに対して、温度が低い側（逆温度が高い側）に温度順の並びで隣接する焼鈍部である。また第２の焼鈍部１０−ｎ＋１は、着目焼鈍部１０−ｎに対して、温度が高い側（逆温度が低い側）に温度順の並びで隣接する焼鈍部である。
【００４５】
交換確率は、前述のように式（４）により計算される。式（４）から分かるように、交換確率は交換対象の２つの系の絶対温度と評価関数値とに応じた値である。この評価関数値は状態遷移に応じて細かい変動を示すが、この局所的な変動の影響を受けると、安定した温度調整を実現することが難しい可能性がある。そこで温度調整部３２において２つの交換確率が互いに近づくように着目焼鈍部１０−ｎの温度を変化させる際には、平均的な意味で交換確率が互いに近づくような処理を行ってよい。具体的には、温度調整部３２は、状態の複数回の遷移に亘る評価関数値の平均値を用いて求めた、第１の焼鈍部と着目焼鈍部との間の交換確率と、第２の焼鈍部と着目焼鈍部との間の交換確率とが、互いに近づくように着目焼鈍部１０−ｎの温度を変化させてよい。このように評価関数値Ｅそのものではなく評価関数値の平均値ａｖｅＥを用いて交換確率を計算し、２つの交換確率が近づくように着目焼鈍部１０−ｎの温度を変化させることにより、状態の局所的な変動に影響を受けずに安定した温度調整が可能になる。
【００４６】
具体的には、温度調整部３２は、ｅｘｐ｛（βｎ−１−βｎ）（ａｖｅＥｎ−１−ａｖｅＥｎ）｝の値とｅｘｐ｛（βｎ−βｎ＋１）（ａｖｅＥｎ−ａｖｅＥｎ＋１）｝の値とを比較すればよい。これら２つの値の大小関係を判定すればよいので、温度保持部３４は、これら２つの値の指数部の大きさを比較すればよいことになる。より具体的には、温度保持部３４は、以下のアルゴリズムにより、βｎの調整を行えばよい。
＜Ａ１：符号判断＞
（ａｖｅＥｎ−１−ａｖｅＥｎ）又は（ａｖｅＥｎ−ａｖｅＥｎ＋１）のいずれかが正である場合（即ち少なくとも一方の交換確率が１の場合）、βｎの調整は行わない
＜Ａ２：方向判断１＞
｜（βｎ−１−βｎ）（ａｖｅＥｎ−１−ａｖｅＥｎ）｜＞｜（βｎ−βｎ＋１）（ａｖｅＥｎ−ａｖｅＥｎ＋１）｜であれば、βｎをβｎ−１側に近づける（βｎを増加させる）
＜Ａ３：方向判断２＞
｜（βｎ−１−βｎ）（ａｖｅＥｎ−１−ａｖｅＥｎ）｜＜｜（βｎ−βｎ＋１）（ａｖｅＥｎ−ａｖｅＥｎ＋１）｜であれば、βｎをβｎ＋１側に近づける（βｎを減少させる）
上記のように、少なくとも一方の交換確率が１の場合にβｎの調整は行わない制御とすることにより、レプリカ交換が充分に行われる温度位置において不要な温度調整を避けることができる。
【００４７】
温度調整部３２により更新された温度対応テーブル４１の逆温度値は、レプリカ交換演算部３１から各焼鈍部１０−１乃至１０−ｍに通知される。以上のレプリカ交換処理及び温度調整処理の後、各焼鈍部１０−１乃至１０−ｍは、前述のようにアニール処理を実行する。
【００４８】
図７は、図１に示す最適化装置の動作の一例を概略的に示すフローチャートである。ステップＳ１１において、焼鈍部１０−１乃至１０−ｍはアニール処理を実行する。ステップＳ１２において、焼鈍部１０−１乃至１０−ｍは、評価関数値Ｅ１乃至Ｅｍ及び平均評価関数値ａｖｅＥ１乃至ａｖｅＥｍを交換制御部１１に送信する。
【００４９】
ステップＳ１３において、交換制御部１１は、全ての焼鈍部１０−１乃至１０−ｍに対して、温度番号順の並び（即ち温度順の並び）において隣接する焼鈍部間でのレプリカ交換処理を行う。ステップＳ１４において、交換制御部１１は、全ての焼鈍部１０−１乃至１０−ｍに対して、温度番号順の並びにおいて隣接する焼鈍部間での交換確率が互いに近づくように、逆温度の値を調整する。
【００５０】
以上のステップＳ１１乃至Ｓ１４の処理が１ラウンドの処理に相当する。図１に示す最適化装置は、当該１ラウンドの処理を繰り返し実行することにより、レプリカ交換法に基づくアニール処理を実行する。
【００５１】
図８は、図１に示す最適化装置の動作の一例を詳細に示すフローチャートである。ステップＳ２１で、焼鈍部１０−１乃至１０−ｍはアニール処理を実行する。焼鈍部１０−１乃至１０−ｍは、所定のイタレーション回数のアニール処理を実行した後に、評価関数値Ｅ１乃至Ｅｍ及び平均評価関数値ａｖｅＥ１乃至ａｖｅＥｍを交換制御部１１に送信してよい。
【００５２】
ステップＳ２２で、交換制御部１１のレプリカ交換演算部３１は、温度番号順に従って１つのレプリカ交換対象ペア（即ち２つの焼鈍部）を決定し、ペアをなす２つの焼鈍部間でのレプリカ交換処理（即ち所定の確率で逆温度を交換する処理）を行う。この際、レプリカ交換演算部３１は、温度番号を例えば初期値０に設定し、例えば図５に示すレプリカ番号対応テーブル４０における温度番号０番に対応する焼鈍部と温度番号１番に対応する焼鈍部とを、最初のレプリカ交換ペアとして選択してよい。この場合、レプリカ交換演算部３１は、温度番号偶数番に対応する焼鈍部とその次の温度番号に対応する焼鈍部とのレプリカ交換処理を実行することになる。温度番号奇数番に対応する焼鈍部とその次の温度番号に対応する焼鈍部とのレプリカ交換処理を実行する場合には、レプリカ交換演算部３１は、温度番号１番に対応する焼鈍部と温度番号２番に対応する焼鈍部とを、最初のレプリカ交換ペアとして選択してよい。
【００５３】
ステップＳ２３で、交換制御部１１の温度調整部３２は、インデックスＬ及び上記ペアとその隣接温度番号に対応する逆温度β及び平均評価関数値ａｖｅＥのデータを取得する。レプリカ交換処理が奇数番目を基点とするペア又は偶数番を基点するペアについて実行されるのに対応して、温度調整も奇数番又は偶数番のいずれかの温度番号の逆温度に対して実行してよい。奇数番又は偶数番の温度番号に対して実行する場合、レプリカ交換対象ペアの温度番号がｎ，ｎ＋１であるならば、温度番号ｎ−１，ｎ，ｎ＋１に対応するβ及びａｖｅＥのデータをステップＳ２３で取得し、逆温度βｎを調整すればよい。また或いは、温度調整は、連番の全ての温度番号の逆温度に対して実行してもよい。連番の全ての温度番号に対して実行する場合には、レプリカ交換対象ペアの温度番号がｎ，ｎ＋１であるならば、温度番号ｎ−１，ｎ，ｎ＋１，ｎ＋２に対応するβ及びａｖｅＥのデータをステップＳ２３で取得し、逆温度βｎ及びβｎ＋１を調整すればよい。この際、温度番号ｎ−１，ｎ，ｎ＋１に対応するデータに基づく処理により逆温度βｎを調整し、温度番号ｎ，ｎ＋１，ｎ＋２に対応するデータに基づく処理により逆温度βｎを調整すればよい。温度番号ｎが０番である場合又は温度番号ｎ＋１が最終番号である場合には、温度番号０番や温度番号ｎ＋１番に対する温度調整処理は行わない。
【００５４】
上記ステップＳ２３でのデータ取得に際し、温度調整部３２は、レプリカ交換演算部３１が特定したレプリカ交換対象ペアのレプリカ番号情報に基づいて、各焼鈍部１０−１乃至１０−ｍ及び温度対応テーブル４１から直接にβ及びａｖｅＥのデータを取得してよい。或いは温度調整部３２は、逆温度β及び平均評価関数値ａｖｅＥのデータのうち、一部又は全てのデータをレプリカ交換演算部３１から取得してよい。
【００５５】
ステップＳ２４で、温度調整部３２は、着目焼鈍部１０−ｎ（即ち温度番号ｎ番の焼鈍部）の逆温度調整を行うか否かを、逆温度β及び平均評価関数値ａｖｅＥに基づく前述のアルゴルズムにより判定する。
【００５６】
温度調整を行うと判定された場合、ステップＳ２５で、温度調整部３２は、前述のアルゴリズムに従い、シフト方向（βを増加させるか或いは減少させるか）を決定する。ステップＳ２６で、温度調整部３２は、インデックスＬと隣接焼鈍部の逆温度値とに基づいてシフト量を決定する。具体的には、着目焼鈍部（逆温度調整対象の焼鈍部）の逆温度βを近づける側に位置する隣接焼鈍部の逆温度βと着目焼鈍部の逆温度βとの差分を１／２Ｌ倍することにより、シフト量を計算してよい。このシフト量の計算については後ほど詳しく説明する。ステップＳ２７で、温度調整部３２は、少なくとも上記ペアのうちの１つの焼鈍部（ｎ番の焼鈍部又はｎ番及びｎ＋１番の焼鈍部）の逆温度を、上記のシフト方向に上記のシフト量だけ移動させる。
【００５７】
その後、処理はステップＳ２７からステップＳ２８に進む。また前述のステップＳ２４で温度調整を行わないと判定された場合にも、処理はステップＳ２４からステップＳ２８に進む。
【００５８】
ステップＳ２８で、温度調整部３２は、現在の温度番号の設定値が最後の温度番号値であるか否かを判定する。最後の温度番号値ではないと判定された場合、温度調整部３２は、次のレプリカ交換処理の対象となるペアを指定するために、温度番号を２増加させる。その後、処理はステップＳ２２に戻り以降の処理を繰り返す。
【００５９】
なお奇数番又は偶数番の温度番号に対して交互に逆温度調整処理を実行する場合には、温度対応テーブル４１において逆温度を逐次的に順次更新してよい。一方、連番の全ての温度番号に対して逆温度調整処理を実行する場合には、順次計算された逆温度の更新値をレジスタ等に別途保存しておき、全ての逆温度調整処理の計算が終了してから温度対応テーブル４１の逆温度を纏めて更新することになる。
【００６０】
以上の処理では温度番号設定値を値の小さい側から順に増加させていく方向に処理を進めているが、逆に温度番号設定値を値の大きい側から順に減少させていくのでもよい。なお図８に示すように各ペアについて逐次的に順番に温度調整処理を実行してもよいし、或いは全てのペアに対して同時並列的に同等の温度調整処理を実行してもよい。
【００６１】
図９は、交換制御部１１の詳細な構成の一例を示す図である。図９に示す交換制御部１１及び焼鈍部１０−ｉの構成は、図４に示す交換制御部１１及び焼鈍部１０−ｉの構成をより詳細に示したものである。図９に示す交換制御部１１では、図４に示す交換制御部１１と比較して、温度調整部３２の構成及び温度調整部３２の信号の入出力をより詳細に示してある。
【００６２】
図９に示す交換制御部１１は、レプリカ交換演算部３１、温度調整部３２、状態番号保持部３３、温度保持部３４、及びインデックス保持部３５を含む。インデックス保持部３５は、前述の図８のフローチャートに示す処理で説明したインデックスＬを保持するレジスタである。インデックスＬについては、外部から所望の値を設定可能であってよい。
【００６３】
図９に示される焼鈍部１０−ｉは、焼鈍実行部１００及び平均計算部２４を含む。焼鈍実行部１００は、図２に示す状態保持部２１、評価関数計算部２２、及び遷移制御部２３に相当する部分であってよい。平均計算部２４は、平均再計算部２５及び平均記憶部２６を含む。平均再計算部２５は、以下の式により評価関数の平均値ａｖｅＥを更新していく。
ａｖｅＥ＝ａｖｅＥ＋（Ｅ−ａｖｅＥ）・（１／２Ｋ）              （５）
ここでＫは平均値を求める幅に応じた正の整数である。評価関数値Ｅ及び平均評価関数値ａｖｅＥは最適化装置において固定小数点数として表現されてよい。平均評価値ａｖｅＥを求めるための除数（２Ｋ）は２の累乗である。従って、固定小数点で表現された値の加減算及びシフト演算のみにより、平均評価関数値ａｖｅＥの計算を行うことができる。これにより、計算を簡潔にして速い処理速度を実現すると共に、簡潔で小規模のハードウェアにより平均再計算部２５を実装することが可能となる。
【００６４】
なお上記の式（５）では、平均評価関数値ａｖｅＥと評価関数値Ｅとに基づいて平均評価関数値ａｖｅＥを再計算しているが、複数の遷移に亘る評価関数値Ｅの移動平均として２Ｋ個の評価関数値Ｅの平均をとる演算により平均評価関数値ａｖｅＥを求めてもよい。この場合も、固定小数点で表現された値の加減算及びシフト演算のみにより、平均評価関数値ａｖｅＥの計算を行うことができる。
【００６５】
温度調整部３２は、温度調整制御部５１及び温度再計算部６１を含む。温度調整制御部５１は、符号判断部５２、交換確率計算部５３、シフト方向判断部５４、及びβｎ再計算指示部５５を含む。温度再計算部６１は、シフト量計算部６２及びβｎ再計算部６３を含む。
【００６６】
温度調整制御部５１は、レプリカ交換演算部３１から、温度調整演算の対象となる温度番号ｎ−１乃至ｎ＋１と、対応する焼鈍部１０−ｎ−１乃至１０−ｎ＋１のレプリカ番号と、対応する逆温度βｎ−１乃至βｎ＋１とを受け取ってよい。温度調整制御部５１は、受け取ったレプリカ番号に基づいて、焼鈍部１０−１乃至１０−ｍからの平均評価関数値ａｖｅＥ１乃至ａｖｅＥｍのうち、対応するａｖｅＥｎ−１乃至ａｖｅＥｎ＋１を特定することができる。
【００６７】
符号判断部５２は、（ａｖｅＥｎ−１−ａｖｅＥｎ）及び（ａｖｅＥｎ−ａｖｅＥｎ＋１）について、それぞれの符号を判断することにより、前述のアルゴリズムの「Ａ１：符号判断」の処理を行う。いずれの符号も負である場合にのみ、温度調整制御部５１は温度調整処理を実行する。
【００６８】
交換確率計算部５３は、逆温度のシフト方向を決定するための基となる交換確率値を計算する。交換確率計算部５３は実際に交換確率を計算してもよいが、交換確率値そのものを計算する代わりに、前述のアルゴリズムに用いる（βｎ−１−βｎ）（ａｖｅＥｎ−１−ａｖｅＥｎ）の絶対値及び（βｎ−βｎ＋１）（ａｖｅＥｎ−ａｖｅＥｎ＋１）の絶対値を計算すればよい。
【００６９】
シフト方向判断部５４は、前述のアルゴリズムの「Ａ２：方向判断１」及び「Ａ３：方向判断２」に基づいて、逆温度βｎをシフトする方向（増加方向又は減少方向）を判断する。βｎ再計算指示部５５は、温度再計算部６１に逆温度βｎを再計算する指示を送信する。
【００７０】
温度再計算部６１が逆温度βｎの再計算指示を受信すると、温度再計算部６１のシフト量計算部６２は、以下のいずれかの式によりシフト量Ｓを計算する。
Ｓ＝（βｎ−１−βｎ）／２Ｌ  （βｎを増加させβｎ−１に近づける場合）    （６）
Ｓ＝（βｎ−βｎ＋１）／２Ｌ  （βｎを減少させβｎ＋１に近づける場合）    （７）
ここでＬはインデックス保持部３５に保持される正の整数である。
【００７１】
βｎ再計算部６３は、温度再計算部６１が計算した上記シフト量Ｓだけ逆温度βｎを増加又は減少させることにより、逆温度βｎの更新後の値を計算する。
【００７２】
βｎ再計算部６３が更新後の逆温度βｎを温度保持部３４に送信すると共に、βｎ再計算指示部５５が温度番号ｎの逆温度値を更新する指示を温度保持部３４に送信する。これにより、温度保持部３４に保持される温度対応テーブル４１（図６参照）において温度番号ｎに対応する逆温度値が更新後の値に書き換えられる。
【００７３】
上述のシフト量Ｓ（逆温度の変化幅）は、着目焼鈍部１０−ｎの逆温度βｎと、第１の焼鈍部１０−ｎ−１又は第２の焼鈍部１０−ｎ＋１の逆温度βｎ−１又はβｎ＋１との差を２の累乗（２Ｌ）で除算した値である。ここで逆温度は浮動小数点値で表現されてよい。逆温度βｎを更新する計算は、浮動小数点で表現された値の加減算及び指数部の減算のみにより行うことが可能である。従って、逆温度更新演算の計算コストが比較的小さくてすみ、また比較的単純なハードウェアで温度再計算部６１を実装することが可能となる。
【００７４】
また着目焼鈍部１０−ｎの温度を変化させる際の逆温度βｎの変化幅Ｓは、着目焼鈍部の逆温度βｎと、第１の焼鈍部又は第２の焼鈍部の逆温度βｎ−１又はβｎ＋１との差に比例する値となっているため、交換確率差に応じた値となっていると言える。このように固定ではない可変のシフト量Ｓを用いることで、適切なシフト量による逆温度調整を実現することが可能となる。
【００７５】
図１０は、温度調整部３２による温度調整処理の処理の一例を示すフローチャートである。図１０に示す温度調整処理は、図８に示す最適化装置の動作フローチャートにおいて説明したように、レプリカ交換処理と一体的に実行してよい。或いは図１０に示す温度調整処理は、焼鈍部１０−１乃至１０−ｍに対するレプリカ交換処理を全て実行し終わった後に、レプリカ交換処理とは別個に実行してもよい。
【００７６】
ステップＳ３１で、温度番号ｎを例えば１に初期化する。この温度番号ｎを制御するのは、レプリカ交換演算部３１であってよい。ステップＳ３２で、温度調整部３２は、インデックスＬ、βｎ−１乃至βｎ＋１、及びａｖｅＥｎ−１乃至ａｖｅＥｎ＋１を取得する。ステップＳ３３で、温度調整部３２は、符号判断部５２の符号判断に基づいて、温度調整の可否を判断する。温度調整しないと判断された場合、処理はステップＳ４０に進む。温度調整すると判断された場合、処理はステップＳ３４に進む。
【００７７】
ステップＳ３４で、温度調整部３２は、交換確率計算部５３により、温度番号ｎ−１の焼鈍部と温度番号ｎの焼鈍部との間での温度交換確率Ｐｎ−１，ｎを計算すると共に、温度番号ｎの焼鈍部と温度番号ｎ＋１の焼鈍部との間での温度交換確率Ｐｎ，ｎ＋１を計算する。ステップＳ３５で、温度調整部３２は、シフト方向判断部５４により、温度交換確率Ｐｎ，ｎ＋１が温度交換確率Ｐｎ−１，ｎより大きいか否かを判断する。Ｐｎ，ｎ＋１＞Ｐｎ−１，ｎである場合には、これら２つの交換確率を互いに近づけるためにはβｎをβｎ−１に近づける必要があり、ステップＳ３６に進む。またＰｎ，ｎ＋１＜Ｐｎ−１，ｎである場合には、これら２つの交換確率を互いに近づけるためにはβｎをβｎ＋１に近づける必要があり、ステップＳ３８に進む。なお前述のように、交換確率を実際に計算することなく、前述のアルゴリズムの「Ａ２：方向判断１」及び「Ａ３：方向判断２」に従ってβｎの調整方向を判断してよい。
【００７８】
ステップＳ３６で、温度調整部３２は、シフト量計算部６２により前述の式（６）によりシフト量Ｓを計算する。ステップＳ３７で、温度調整部３２は、βｎ再計算部６３によりβｎ＋Ｓを計算してβｎの更新値を求める。
【００７９】
ステップＳ３８で、温度調整部３２は、シフト量計算部６２により前述の式（７）によりシフト量Ｓを計算する。ステップＳ３９で、温度調整部３２は、βｎ再計算部６３によりβｎ−Ｓを計算してβｎの更新値を求める。
【００８０】
ステップＳ４０で、温度番号ｎが最後の温度番号であるか否かを判断する。この判断はレプリカ交換演算部３１が行ってよい。最後の温度番号ではないと判断した場合、ステップＳ４１で、レプリカ交換演算部３１は温度番号ｎをインクリメントする。その後処理はステップＳ３２に戻り以降の処理を繰り返す。
【００８１】
図１１は、奇数番目の温度番号に対する温度調整処理と偶数番目の温度番号に対する温度調整処理とを交互に繰り返す動作の一例を示す図である。図１１において、左側から右側に向けて順番にタイミングＴ１乃至Ｔ３における温度対応テーブル４１の温度調整が示されている。１回目のラウンドにおける温度調整処理がタイミングＴ１に示す温度対応テーブル４１に示されている。その後、アニール処理及びレプリカ交換処理を得て、２回目のラウンドにおける温度調整処理がタイミングＴ２に示す温度対応テーブル４１に示されている。その後、更なるアニール処理及びレプリカ交換処理を得て、３回目のラウンドにおける温度調整処理がタイミングＴ３に示す温度対応テーブル４１に示されている。
【００８２】
例えばタイミングＴ１における温度調整処理では、奇数番目の温度番号に対応する逆温度が温度調整対象となっている。具体的には、温度番号１，５，１１に対応する逆温度が新たな値に更新されている。また温度番号３，７，９，１３に対応する逆温度については、温度調整のための基準を満たさないため（即ち前述のアルゴリズムの「Ａ１：符号判断」で温度調整しないと判断されたため）、点線の空の四角で示すように元の逆温度値がそのまま保持されている。
【００８３】
またタイミングＴ２における温度調整処理では、偶数番目の温度番号に対応する逆温度が温度調整対象となっている。具体的には、温度番号４，６，１２に対応する逆温度が新たな値に更新されている。また温度番号２，８，１０，１４に対応する逆温度については、温度調整のための基準を満たさないため（即ち前述のアルゴリズムの「Ａ１：符号判断」で温度調整しないと判断されたため）、点線の空の四角で示すように元の逆温度値がそのまま保持されている。
【００８４】
なお最小の温度番号（この例では０）及び最大の温度番号（この例では１５）は温度調整の対象とはしない。従って温度番号０の逆温度はこの例では１００に維持され続け、温度番号１５の逆温度はこの例では１に維持され続ける。
【００８５】
図１１に示す温度調整の方法は、レプリカ交換処理と一体的に温度調整を実行する場合に都合がよい。レプリカ交換処理では偶数番目を基点とするペアに対する交換処理と奇数番目を基点とするペアに対する交換処理とが交互に繰り返される。従って、レプリカ交換演算部３１による交換処理における温度番号の制御動作をそのまま利用して温度調整に対する温度番号の制御を行えるので、効率的な温度調整処理を実現することができる。
【００８６】
図１２は、連番の全ての温度番号に対する温度調整処理を実行する動作の一例を示す図である。図１２において、左側から右側に向けて順番にタイミングＴ１乃至Ｔ３における温度対応テーブル４１の温度調整が示されている。１回目のラウンドにおける温度調整処理がタイミングＴ１に示す温度対応テーブル４１に示されている。その後、アニール処理及びレプリカ交換処理を得て、２回目のラウンドにおける温度調整処理がタイミングＴ２に示す温度対応テーブル４１に示されている。その後、更なるアニール処理及びレプリカ交換処理を得て、３回目のラウンドにおける温度調整処理がタイミングＴ３に示す温度対応テーブル４１に示されている。
【００８７】
例えばタイミングＴ１における温度調整処理では、温度番号１，４，５，６，１１，１２に対応する逆温度が新たな値に更新されている。また温度番号２，３，７，８，９，１０，１３，１４に対応する逆温度については、温度調整のための基準を満たさないため、点線の空の四角で示すように元の逆温度値がそのまま保持されている。最小の温度番号及び最大の温度番号は温度調整の対象とはしないことは、図１１の場合と同様である。
【００８８】
図１２に示す温度調整方法は、図１１に示す方法と比較して、各温度番号に対してより細かいインターバル（１／２のインターバル）で温度調整処理を実行できるという利点がある。一方、図１２に示す温度調整方法の場合には、温度対応テーブル４１における逆温度の更新を全ての逆温度調整処理の計算が終了してから纏めて行う、或いは交換確率等の計算値を全ての温度番号に対して予め計算して保持しておく、等の工夫が必要になる。そのため交換制御部１１の回路規模が、図１１に示す方法の場合と比較して、若干増大する可能性がある。
【００８９】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００９０】
１０−１乃至１０−ｍ  焼鈍部
１１  交換制御部
２１  状態保持部
２２  評価関数計算部
２３  遷移制御部
３１  レプリカ交換演算部
３２  温度調整部
３３  状態番号保持部
３４  温度保持部
３５  インデックス保持部
５１  温度調整制御部
５２  符号判断部
５３  交換確率計算部
５４  シフト方向判断部
５５  βｎ再計算指示部
６１  温度再計算部
６２  シフト量計算部
６３  βｎ再計算部
【図１】
2020054024.tif 000004
【図２】
2020054024.tif 000005
【図３】
2020054024.tif 000006
【図４】
2020054024.tif 000007
【図５】
2020054024.tif 000008
【図６】
2020054024.tif 000009
【図７】
2020054024.tif 000010
【図８】
2020054024.tif 000011
【図９】
2020054024.tif 000012
【図１０】
2020054024.tif 000013
【図１１】
2020054024.tif 000014
【図１２】
2020054024.tif 000015
【国際調査報告】
2020054024.tif 000016
2020054024.tif 000017
2020054024.tif 000018
2020054024.tif 000019