(57)【要約】【課題】最適解の探索を効率的に行うことを可能とする最適化装置及び最適化装置の制御方法を提供する。【解決手段】過去に実行したＮ回分の焼き鈍し動作に対応するレプリカ状態に対応する温度と、レプリカ状態に対応する複数のパラメータと、レプリカ状態に対応するエネルギーとをそれぞれ保持し、Ｎ回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定し、重心が所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、所定温度を超える温度に変更し、変更された温度を用いて、演算部に焼き鈍し動作を行わせる。【選択図】図１９
2020181461.tif 000002
【特許請求の範囲】
【請求項１】
焼き鈍し動作を実行する演算部と、
前記演算部が、過去に実行したＮ回分（Ｎは正の整数）の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持するレプリカ履歴情報保持部と、
前記レプリカ履歴情報保持部が保持するＮ回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記Ｎ回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持する重心計算部と、
前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定する重心距離判定部と、
重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更する温度調整部と、
変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせるレプリカ交換制御部と、を有する、
ことを特徴とする最適化装置。
【請求項２】
請求項１において、
前記温度調整部は、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態の温度を変更する、
ことを特徴とする最適化装置。
【請求項３】
請求項１において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記重心保持部が重心を保持する複数のレプリカ状態のうち、前記レプリカ状態の組に含まれるレプリカ状態以外のレプリカ状態の温度と交換する、
ことを特徴とする最適化装置。
【請求項４】
請求項３において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記重心保持部が重心を保持する複数のレプリカ状態のうち、最も高い温度に対応するレプリカ状態の温度と交換する、
ことを特徴とする最適化装置。
【請求項５】
請求項１において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記レプリカ状態の組に含まれるレプリカ状態の重心が前記所定距離を超える温度に変更する、
ことを特徴とする最適化装置。
【請求項６】
演算部が、焼き鈍し動作を実行し、
レプリカ履歴情報保持部が、前記演算部によって過去に実行されたＮ回分（Ｎは正の整数）の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持し、
重心計算部が、前記レプリカ履歴情報保持部が保持するＮ回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記Ｎ回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持させ、
重心距離判定部が、前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定し、
温度調整部が、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更し、
レプリカ交換部が、変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせる、
ことを特徴とする最適化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適化装置及び最適化装置の制御方法に関する。
【背景技術】
【０００２】
近年、各分野において行われる情報処理では、例えば、必要な資源の最小化や効果の最大化等を目的とする最適化問題を解くための処理が行われている。
【０００３】
このような最適化問題のうち、例えば、離散最適化問題や組合せ最適化問題等では、変数が離散的な値（連続値ではない値）を取るため、解の算出が非常に困難になる場合がある。具体的に、例えば、離散最適化問題では、最適解ではないが局所的近傍において最小値を取る解（以下、局所解とも呼ぶ）が非常に多く存在するため、解の算出が困難になる場合がある。
【０００４】
このような離散最適化問題を解く場合、例えば、問題に固有な性質を利用した近似解法や、問題の性質に頼らないメタヒューリスティックと呼ばれる解法が用いられる。具体的に、例えば、メタヒューリスティックのうち、マルコフ連鎖モンテカルロ法を用いた解法に関するものであって、交換モンテカルロ法やレプリカ交換法と呼ばれる広い意味での疑似焼き鈍し法が用いられる。
【０００５】
この疑似焼き鈍し法は、乱数を用いて確率的に状態を変化させることによって最適解を算出する方法である。そして、疑似焼き鈍し法では、状態遷移の受け入れ（許容）確率を、その状態遷移に伴うエネルギー変化と温度とを用いることによって以下の式（１）及び式（２）のように定める場合、時刻（焼き鈍し動作の反復回数）が無限大となる極限において状態が最適解に到達することが証明されている。なお、以下の式（１）におけるＴは、温度を表すパラメータであり、問題に応じて初期値を大きく取ることが好ましく、また、時間の経過に伴って徐々と低下させていくことが好ましい。
【０００６】
【数１】
2020181461.tif 000003
【０００７】
【数２】
2020181461.tif 000004
上記のように、疑似焼き鈍し法では、焼き鈍し動作の反復回数を無限に取ることによって最適解を得ることができる。しかしながら、現実には、有限の反復回数で解を得る必要があるため、最適解を確実に求めることができない場合がある。また、上記のように、温度低下のペースが非常に遅いため、有限時間では温度が十分に低下しない場合がある。
【０００８】
そのため、実際の疑似焼き鈍し法では、理論的に収束することが保証される温度低下のペースよりも早いペースによって温度を低下させる必要がある。そして、実際の疑似焼き鈍し法では、温度を低下させながら焼き鈍し動作の反復を繰り返していき、一定の反復回数に達した場合やエネルギーが所定値を下回る等の条件が満たされた場合に動作を終了し、終了時の状態を解として出力する。
【０００９】
なお、上記のように、有限の反復回数では温度が０にならないため、動作の終了時においても状態の占有確率がボルツマン分布等に従うことになり、最適解や良い解が出力されない可能性がある。そのため、実際の疑似焼き鈍し法では、例えば、反復の途中で得られた各状態のうち、エネルギーが最低であった状態を出力する方法等が採用される。
【００１０】
上記のように、疑似焼き鈍し法では、温度を徐々に低下させる必要があるため、計算時間が比較的長くなるという問題がある。また、疑似焼き鈍し法では、温度の下げ方を問題に合わせて適切に調整することが難しいという問題もある。具体的に、温度の下げ方が遅すぎる場合、有限時間内において十分に温度が下がらなくなるため、最終的な熱分布のエネルギー範囲が広くなり、良い解の占有確率が上がらなくなる。一方、温度の下げ方が速すぎる場合、局所解を脱出する前に温度が下がってしまうため、この場合においても良い解の占有確率が上がらなくなる。
【００１１】
次に、レプリカ交換法について説明を行う。図１及び図２は、レプリカ交換法を用いた最適化装置５０の構成例を説明する図である。
【００１２】
レプリカ交換法は、複数の温度を用いたモンテカルロ探索（以下、確率的探索とも呼ぶ）を同時に行い、所定の反復回数ごとに、それぞれの状態に対応するエネルギーを比較し、適切な確率で２つの温度に対する状態を交換する操作を行う方法である。
【００１３】
図１に示す例において、最適化装置５０は、複数の焼鈍部５１ａ０、５１ａ１、…、５１ａｉ、…、５１ａｎ（以下、これらを総称して単に焼鈍部５１とも呼ぶ）と、交換制御部５２とを有する。
【００１４】
交換制御部５２は、各焼鈍部５１に対して温度情報（以下、単に温度とも呼ぶ）を与える。具体的に、交換制御部５２は、例えば、Ｔの逆数である逆温度βｉ（０≦ｉ≦ｎ））を各焼鈍部５１に与える。
【００１５】
一方、焼鈍部５１ａｉは、図２に示すように、状態保持部６１と、評価関数計算部６２と、遷移制御部６３とを有する。なお、他の焼鈍部５１の構成については、焼鈍部５１ａｉと同様であるため説明を省略する。
【００１６】
状態保持部６１は、評価関数に含まれる複数の状態変数（以下、パラメータとも呼ぶ）の値である状態Ｓｉを保持する。そして、状態保持部６１は、状態変数の変化（以下、状態遷移とも呼ぶ）の可否を示すフラグｆと、フラグｆに対応する状態変数の番号Ｎとに基づいて、状態Ｓｉを更新する。
【００１７】
評価関数計算部６２は、状態遷移に伴うエネルギー変化を計算する。具体的に、例えば、評価関数が２つの状態変数間の結合で表されるイジングモデルで表され、かつ、一度に１つの状態変化に対応する状態遷移のみを許す場合、評価関数計算部６２は、各状態変数の値と、状態変数間の結合の強さを示す結合係数と、番号Ｎと、フラグｆとに基づいて、複数の状態変数のそれぞれに対応する状態遷移に伴うエネルギー変化ΔＥｉ，ｊを計算する。エネルギー変化ΔＥｉ，ｊは、ｊ番目の焼鈍部５１の状態変数に対応する状態遷移に伴うエネルギー変化を示す。
【００１８】
なお、計算したい最適化問題に応じた結合係数の値は、例えば、予めメモリまたはレジスタ等に記憶されているものであってよい。また、評価関数計算部６２は、例えば、積和演算回路等の論理回路を用いて実現されるものであってよい。
【００１９】
遷移制御部６３は、疑似焼き鈍し法と同様に、エネルギー変化ΔＥｉ，ｊと、交換制御部５２によって割り当てられた逆温度βｉとを以下の式（３）に代入することにより、ｊ番目の焼鈍部５１の状態変数に対応する状態遷移の受け入れ確率を決定することで確率的探索を行う。なお、以下の式（３）において、関数ｆは、式（１）におけるものと同じであり、例えば、式（２）のメトロポリス法におけるものが用いられる。
【００２０】
【数３】
2020181461.tif 000005
そして、遷移制御部６３は、式（３）によって算出された状態遷移の受け入れ確率に基づいて、フラグｆと番号Ｎとを出力する。さらに、遷移制御部６３は、エネルギー変化ΔＥｉ，ｊに基づいて、エネルギーＥｉを更新して出力する。
【００２１】
一方、交換制御部５２は、各焼鈍部５１において焼き鈍し動作が一定回数反復されるごとに、各焼鈍部５１におけるエネルギーＥを観測し、焼鈍部５１のうちの２つにおけるエネルギーＥと逆温度βとを用いることにより、以下の式（４）において表される交換確率を算出する。そして、交換制御部５２は、算出した交換確率に基づいて、２つの焼鈍部５１における各状態変数の値を交換する。この場合、交換制御部５２は、状態変数の値の代わりに、２つの焼鈍部５１のそれぞれに与えられる逆温度βを交換するものであってもよい。
【００２２】
なお、以下の式（４）では、βｉを焼鈍部５１ａｉに与えられた逆温度とし、βｊをｊ番目の焼鈍部５１に与えられた逆温度とし、Ｅｉを焼鈍部５１ａｉにおけるエネルギーとし、Ｅｊをｊ番目の焼鈍部５１におけるエネルギーとしている。また、式（４）において、関数ｆは、式（１）におけるものと同じであり、例えば、式（２）のメトロポリス法におけるものが用いられる。
【００２３】
【数４】
2020181461.tif 000006
このような交換が行われる場合であっても、それぞれの温度の状態についての確率分布は、それぞれの温度に対するボルツマン分布に収束する。そして、この確率分布の収束に要する緩和時間は、交換を行わない場合よりも著しく短縮される。
【００２４】
なお、交換が行われる２つの焼鈍部５１は、交換確率が小さくなり過ぎないように、与えられる温度が近い２つの焼鈍部５１（例えば、隣接する温度が与えられる２つの焼鈍部５１）が選択されることが好ましい（例えば、特許文献１乃至３参照）。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開２００４−２４４７２１号公報
【特許文献２】特開２００２−２１７９０２号公報
【特許文献３】特表２０１６−５１９８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【００２６】
ここで、上記のようなレプリカ交換法を用いた最適化装置５０では、複数の焼鈍部５１（例えば、低い温度が与えられた複数の焼鈍部５１）において同じ局所解に対応する領域の探索が行われる場合がある。そのため、最適化装置５０では、最適解の探索が効率的に行われない場合がある。
【００２７】
そこで、一つの側面では、本発明は、最適解の探索を効率的に行うことを可能とする最適化装置及び最適化装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２８】
実施の形態の一態様では、最適化装置は、焼き鈍し動作を実行する演算部と、前記演算部が、過去に実行したＮ回分（Ｎは正の整数）の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持するレプリカ履歴情報保持部と、前記レプリカ履歴情報保持部が保持するＮ回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記Ｎ回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持する重心計算部と、前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定する重心距離判定部と、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更する温度調整部と、変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせるレプリカ交換制御部と、を有する。
【発明の効果】
【００２９】
一つの側面によれば、最適解の探索を効率的に行うことを可能とする。
【図面の簡単な説明】
【００３０】
【図１】図１は、レプリカ交換法を用いた最適化装置５０の構成例を説明する図である。
【図２】図２は、レプリカ交換法を用いた最適化装置５０の構成例を説明する図である。
【図３】図３は、第１の実施の形態における最適化装置１０の構成例を示す図である。
【図４】図４は、第１の実施の形態における最適化装置１０の構成例を示す図である。
【図５】図５は、最適化装置１０の動作を説明するフローチャート図である。
【図６】図６は、最適化装置１０の動作を説明するフローチャート図である。
【図７】図７は、最適化装置１０の動作を説明するフローチャート図である。
【図８】図８は、最適化装置１０の動作を説明するフローチャート図である。
【図９】図９は、最適化装置１０の動作を説明するフローチャート図である。
【図１０】図１０は、最適化装置１０の動作を説明するフローチャート図である。
【図１１】図１１は、最適化装置１０の動作を説明するフローチャート図である。
【図１２】図１２は、最適化装置１０の動作を説明するフローチャート図である。
【図１３】図１３は、最適化装置１０の動作を説明するフローチャート図である。
【図１４】図１４は、履歴情報１３１の具体例について説明する図である。
【図１５】図１５は、重心情報１３２の具体例について説明する図である。
【図１６】図１６は、重心情報１３２の具体例について説明する図である。
【図１７】図１７は、低温情報１３３の具体例について説明する図である。
【図１８】図１８は、調整情報１３４の具体例について説明する図である。
【図１９】図１９は、最適化装置１０の動作の具体例について説明する図である。
【発明を実施するための形態】
【００３１】
［第１の実施の形態］
初めに、第１の実施の形態における最適化装置１０について説明を行う。図３及び図４は、第１の実施の形態における最適化装置１０の構成例を示す図である。
【００３２】
第１の実施の形態における最適化装置１０は、図３に示すように、焼鈍部１１ａ０、１１ａ１、…、１１ａｉ、…、１１ａｎ（以下、これらを総称して単に焼鈍部１１とも呼ぶ）と、交換制御部１２（以下、レプリカ交換制御部１２とも呼ぶ）とを有する。
【００３３】
焼鈍部１１のそれぞれは、図２で説明した焼鈍部５１ａｉと同じである。すなわち、焼鈍部１１のそれぞれは、複数の状態変数の何れかの値が変化する状態遷移が起こる場合、複数の状態変数の値の変化に伴うエネルギーＥの変化を算出する。そして、焼鈍部１１のそれぞれは、エネルギーＥの変化と温度に基づいて、複数の状態変数の値の中から変化を受け入れる値を確率的に決定することで確率的探索を行う。なお、焼鈍部１１のそれぞれには、例えば、互いに異なる温度が割り当てられる。
【００３４】
交換制御部１２は、図４に示すように、履歴情報保持部１２ａと、重心計算回路１２ｂ（以下、重心計算部１２ｂとも呼ぶ）と、重心保持部１２ｃと、重心距離判定回路１２ｄ（以下、重心距離判定部１２ｄとも呼ぶ）と、温度調整回路１２ｅ（以下、温度調整部１２ｅ）と、交換演算回路１２ｆ（以下、交換演算部１２ｆとも呼ぶ）と、出力制御回路１２ｇ（以下、出力制御部１２ｇとも呼ぶ）とを有する。
【００３５】
履歴情報保持部１２ａは、履歴情報１３１（以下、レプリカ履歴情報１３１とも呼ぶ）を保持する。履歴情報１３１は、各焼鈍部１１のレプリカ状態を識別するレプリカ状態識別情報（以下、レプリカ番号とも呼ぶ）に対応する温度と、各焼鈍部１１のレプリカ状態に対応する複数のパラメータと、各焼鈍部１１のレプリカ状態に対応するエネルギーＥとを含む情報である。
【００３６】
重心計算部１２ｂは、履歴情報保持部１２ａが保持するＮ回分の各レプリカ状態に対応する複数のパラメータの重心（以下、重心情報１３２とも呼ぶ）をそれぞれ計算する。すなわち、重心計算部１２ｂは、各焼鈍部１１のレプリカ状態のそれぞれについて複数のパラメータの重心を計算する。そして、重心保持部１２ｃは、重心計算部１２ｂが計算した重心情報１３２を保持する。
【００３７】
重心距離判定部１２ｄは、重心保持部１２ｃが重心情報１３２を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態（以下、低温レプリカ状態とも呼ぶ）の組のそれぞれについて、重心が所定距離以内に有るか否かを判定する。
【００３８】
温度調整部１２ｅは、重心が所定距離以内に有ると判定されたレプリカ状態の組（以下、単にレプリカ状態の組とも呼ぶ）に含まれるレプリカ状態のいずれか一方に対応する温度を、所定温度を超える温度に変更する。
【００３９】
具体的に、温度調整部１２ｅは、例えば、レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、重心保持部１２ｃが重心情報１３２を保持する複数のレプリカ状態のうち、レプリカ状態の組に含まれないレプリカ状態の温度と交換する。
【００４０】
また、温度調整部１２ｅは、例えば、レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、レプリカ状態の組に含まれる各レプリカ状態の重心が所定距離を超えるようになるまで上昇させる。
【００４１】
交換演算部１２ｆは、各焼鈍部１１のレプリカ状態に対応する温度（温度調整部１２ｅによって変更された温度を含む）の交換を行う。
【００４２】
具体的に、交換演算部１２ｆは、例えば、温度を交換する候補である２つの焼鈍部１１（以下、単に２つの焼鈍部１１とも呼ぶ）のそれぞれに対応する温度とエネルギーＥとから、２つの焼鈍部１１のレプリカ状態に対応する温度の交換確率ｐｉｊ（上記の式（３）で説明した交換確率ｐｉｊ）を算出する。そして、交換演算部１２ｆは、例えば、算出した交換確率Ｐｉｊと乱数との比較結果に基づいて、２つの焼鈍部１１のレプリカ状態に対応する温度の交換要否を決定する。
【００４３】
出力制御部１２ｇは、各焼鈍部１１のレプリカ状態に対応する温度（交換演算部１２ｆによって交換された温度を含む）を各焼鈍部１１に与える。そして、各焼鈍部１１は、出力制御部１２ｇによって与えられた温度と、各焼鈍部１１のレプリカ状態に対応する複数のパラメータとを用いることによって焼き鈍し動作を行う。
【００４４】
なお、履歴情報保持部１２ａ及び重心保持部１２ｃは、例えば、レジスタ等の記憶回路であってよい。また、履歴情報保持部１２ａ及び重心保持部１２ｃは、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリ、または、フラッシュメモリやＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性メモリであってもよい。
【００４５】
［最適化装置の動作］
次に、最適化装置１０の動作について説明を行う。図５から図１３は、最適化装置１０の動作を説明するフローチャート図である。具体的に、図５から図１３は、交換制御部１２の動作を説明するフローチャート図である。また、図１４から図１８は、最適化装置１０の動作を説明する図である。
【００４６】
交換制御部１２の交換演算部１２ｆは、図５に示すように、各焼鈍部１１からエネルギーＥ及び複数のパラメータを受け付けるまで待機する（Ｓ１１のＮＯ）。具体的に、交換制御部１２は、各焼鈍部１１が焼き鈍し動作を行ったことに伴ってエネルギーＥ及び複数のパラメータを送信するまで待機する。
【００４７】
そして、各焼鈍部１１からエネルギーＥ及び複数のパラメータを受け付けた場合（Ｓ１１のＹＥＳ）、交換演算部１２ｆは、Ｓ１１で受け付けたエネルギー及び複数のパラメータと、Ｓ１１で受け付けたエネルギー及び複数のパラメータの送信元の焼鈍部１１に与えた温度とを対応付けた履歴情報１３１を生成する（Ｓ１２）。
【００４８】
その後、交換制御部１２の履歴情報保持部１２ａは、Ｓ１２で生成した履歴情報１３１を保持する（Ｓ１３）。具体的に、履歴情報保持部１２ａは、焼鈍部１１ごとであって焼き鈍し動作ごとの履歴情報１３１をそれぞれ保持する。以下、履歴情報保持部１２ａが保持する履歴情報１３１の具体例について説明を行う。
【００４９】
［履歴情報の具体例］
図１４は、履歴情報１３１の具体例について説明する図である。なお、以下、最適化装置１０における焼鈍部１１の数（レプリカの数）が５つであるものとして説明を行う。また、各焼鈍部１１のレプリカ状態に対応するパラメータの数が５つであるものとして説明を行う。
【００５０】
図１４に示す履歴情報１３１は、各焼鈍部１１における焼き鈍し動作の反復回数が記憶される「反復番号」と、各焼鈍部１１に対応するレプリカ番号が記憶される「レプリカ番号」とを項目として有する。また、図１４に示す履歴情報１３１は、各焼鈍部１１に対応するパラメータ（変数）の値がそれぞれ記憶される「変数１」、「変数２」、「変数３」、「変数４」及び「変数５」のそれぞれを項目として有する。さらに、図１４に示す履歴情報１３１は、各焼鈍部１１に与えられる温度が記憶される「温度」と、各焼鈍部１１に対応するエネルギーＥが記憶される「エネルギー」とを項目として有する。
【００５１】
具体的に、図１４に示す履歴情報１３１において、１行目の情報には、「反復番号」として「１」が記憶され、「レプリカ番号」として「ＲＰ１」が記憶され、「変数１」として「１」が記憶され、「変数２」として「１」が記憶され、「変数３」として「１」が記憶され、「変数４」として「０」が記憶され、「変数５」として「１」が記憶されている。そして、図１４に示す履歴情報１３１において、１行目の情報には、「温度」として「０．２」が記憶され、「エネルギー」として「１０００００」が記憶されている。
【００５２】
また、図１４に示す履歴情報１３１において、２行目の情報には、「反復番号」として「１」が記憶され、「レプリカ番号」として「ＲＰ２」が記憶され、「変数１」として「１」が記憶され、「変数２」として「１」が記憶され、「変数３」として「１」が記憶され、「変数４」として「０」が記憶され、「変数５」として「０」が記憶されている。そして、図１４に示す履歴情報１３１において、２行目の情報には、「温度」として「１．３」が記憶され、「エネルギー」として「１０００００」が記憶されている。図１４に含まれる他の情報についての説明は省略する。
【００５３】
なお、以下、「レプリカ番号」が「ＲＰ１」、「ＲＰ２」、「ＲＰ３」、「ＲＰ４」及び「ＲＰ５」である情報に対応する焼鈍部１１を、それぞれレプリカＲＰ１、レプリカＲＰ２、レプリカＲＰ３、レプリカＲＰ４及びレプリカＲＰ５とも呼ぶ。
【００５４】
図６に戻り、交換制御部１２は、図５で説明した動作と並行して、レプリカ交換タイミングになるまで待機する（Ｓ２１のＮＯ）。レプリカ交換タイミングは、例えば、各焼鈍部１１における焼き鈍し動作の反復回数がＮ回の定数倍に達したタイミングであってよい。すなわち、交換制御部１２は、各焼鈍部１１における焼き鈍し動作の反復回数がＮ回に達するごとに、直前に行われたＮ回の焼き鈍し動作に対応する履歴情報１３１を用いることによってＳ２１以降の動作を行うものであってよい。なお、本実施の形態におけるＮ回は、例えば、ユーザ等によって予め入力される回数であってよい。
【００５５】
そして、レプリカ交換タイミングになった場合（Ｓ２１のＹＥＳ）、交換制御部１２の重心計算部１２ｂは、履歴情報保持部１２ａが保持するＮ回分の各レプリカ状態に対応する複数のパラメータの重心情報１３２を計算して重心保持部１２ｃに保持させる（Ｓ２２）。以下、Ｓ２２の詳細について説明を行う。
【００５６】
［Ｓ２２の詳細］
図７は、Ｓ２２の詳細を説明するフローチャート図である。
【００５７】
重心計算部１２ｂは、図７に示すように、各焼鈍部１１のレプリカ状態のうちの１つを特定する（Ｓ３１）。
【００５８】
具体的に、図１４で説明した履歴情報１３１の「レプリカ番号」には、「ＲＰ１」、「ＲＰ２」、「ＲＰ３」、「ＲＰ４」及び「ＲＰ５」がそれぞれ記憶されている。そのため、重心計算部１２ｂは、例えば、図１４で説明した履歴情報１３１を参照し、レプリカＲＰ１に対応するレプリカ状態を特定する。
【００５９】
そして、重心計算部１２ｂは、Ｓ３１で特定したレプリカ状態に対応する複数のパラメータの重心を計算する（Ｓ３２）。
【００６０】
具体的に、重心計算部１２ｂは、例えば、図１４で説明した履歴情報１３１を参照し、「レプリカ番号」が「ＰＲ１」である情報の「変数１」に記憶された値の平均を、「変数１」の重心として計算する。同様に、重心計算部１２ｂは、「変数２」の重心、「変数３」の重心、「変数４」の重心及び「変数５」の重心についてもそれぞれ計算する。
【００６１】
その後、重心計算部１２ｂは、Ｓ３２で計算した重心を示す重心情報１３２を重心保持部に保持させる（Ｓ３３）。以下、重心情報１３２の具体例について説明を行う。
【００６２】
［重心情報の具体例（１）］
図１５及び図１６は、重心情報１３２の具体例について説明する図である。具体的に、図１５は、Ｓ３１からＳ３３が１回目に行われた際の重心情報１３２の具体例について説明する図である。
【００６３】
図１５等に示す重心情報１３２は、各焼鈍部１１に対応するレプリカ番号が記憶される「レプリカ番号」と、各焼鈍部１１に対応するパラメータ（変数）の値がそれぞれ記憶される「変数１」、「変数２」、「変数３」、「変数４」及び「変数５」のそれぞれを項目として有する。
【００６４】
具体的に、例えば、レプリカＰＲ１に対応する「変数１」、「変数２」、「変数３」、「変数４」及び「変数５」の重心として、「０．２１」、「０．６３」、「０．９９」、「０．０２」及び「０．３２」のそれぞれが計算された場合、重心保持部１２ｃは、図１５に示すように、「レプリカ番号」が「ＲＰ１」である情報の「変数１」、「変数２」、「変数３」、「変数４」及び「変数５」のそれぞれに対応する値として、「０．２１」、「０．６３」、「０．９９」、「０．０２」及び「０．３２」のそれぞれを保持する。
【００６５】
図７に戻り、重心計算部１２ｂは、Ｓ３１において全てのレプリカ状態を特定したか否かを判定する（Ｓ３４）。
【００６６】
その結果、全てのレプリカ状態を特定していないと判定した場合（Ｓ３４のＮＯ）、重心計算部１２ｂは、Ｓ３１以降を再度行う。
【００６７】
一方、全てのレプリカ状態を特定したと判定した場合（Ｓ３４のＹＥＳ）、重心計算部１２ｂは、Ｓ２２を終了する。なお、重心保持部１２ｃは、この場合、図１６に示すように、全てのレプリカ番号に対応する重心情報１３２をそれぞれ保持する。
【００６８】
図６に戻り、最適化装置１０の重心距離判定部１２ｄは、重心保持部１２ｃが重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組について、重心が所定距離以内に有るか否かを判定する（Ｓ２３）。以下、Ｓ２３の詳細について説明を行う。
【００６９】
［Ｓ２３の詳細］
図８及び図９は、Ｓ２３の詳細を説明するフローチャート図である。
【００７０】
重心距離判定部１２ｄは、図８に示すように、各焼鈍部１１のレプリカ状態のうちの１つを特定する（Ｓ４１）。
【００７１】
具体的に、図１４で説明した履歴情報１３１の「レプリカ番号」には、「ＲＰ１」、「ＲＰ２」、「ＲＰ３」、「ＲＰ４」及び「ＲＰ５」がそれぞれ記憶されている。そのため、重心距離判定部１２ｄは、例えば、図１４で説明した履歴情報１３１を参照し、レプリカＰＲ１に対応するレプリカ状態を特定する。
【００７２】
そして、重心距離判定部１２ｄは、Ｓ４１で特定したレプリカ状態に対応する現在の温度を特定する（Ｓ４２）。
【００７３】
具体的に、重心距離判定部１２ｄは、図１４で説明した履歴情報１３１を参照し、「レプリカ番号」が「ＲＰ１」である情報のうち、Ｓ４１で特定したレプリカ状態に対応する焼鈍部１１から最後に受け付けた情報の「温度」に記憶された値を特定する。
【００７４】
続いて、重心距離判定部１２ｄは、Ｓ４２で特定した温度が所定温度以下であるか否かを判定する（Ｓ４３）。
【００７５】
その結果、Ｓ４２で特定した温度が所定温度以下であると判定した場合（Ｓ４４のＹＥＳ）、重心距離判定部１２ｄは、Ｓ４１で特定したレプリカ状態が低温であることを示す低温情報１３３を低温情報保持部（図示しない）に保持させる（Ｓ４５）。
【００７６】
なお、低温情報保持部は、履歴情報保持部１２ａ等と同様に、レジスタ等の記憶回路であってよい。また、低温情報保持部は、ＲＡＭ等の揮発性メモリ、または、フラッシュメモリやＥＥＰＲＯＭ等の不揮発性メモリであってもよい。
【００７７】
一方、Ｓ４２で特定した温度が所定温度以下でないと判定した場合（Ｓ４４のＮＯ）、重心距離判定部１２ｄは、Ｓ４５を行わない。
【００７８】
その後、重心距離判定部１２ｄは、Ｓ４１において全てのレプリカ状態を特定したか否かを判定する（Ｓ４６）。
【００７９】
その結果、全てのレプリカ状態を特定していないと判定した場合（Ｓ４６のＮＯ）、重心距離判定部１２ｄは、Ｓ４１以降を再度行う。
【００８０】
一方、全てのレプリカ状態を特定したと判定した場合（Ｓ４６のＹＥＳ）、重心距離判定部１２ｄは、図９に示すように、Ｓ５１以降を行う。以下、低温情報１３３の具体例について説明を行う。
【００８１】
［低温情報の具体例］
図１７は、低温情報１３３の具体例について説明する図である。具体的に、図１７は、Ｓ４６において全てのレプリカ状態を特定したと判定した際の低温情報１３３の具体例について説明する図である。
【００８２】
図１７に示す低温情報１３３は、各焼鈍部１１に対応するレプリカ番号が記憶される「レプリカ番号」と、各焼鈍部１１に対応するレプリカ状態が低温であるか否かを示す情報が記憶される「判定結果」とを項目として有する。「判定結果」には、レプリカ状態が低温であることを示す「ＴＲＵＥ」、または、レプリカ状態が低温でないことを示す「ＦＡＬＳＥ」が記憶される。
【００８３】
具体的に、図１７に示す低温情報１３３において、１行目の情報には、「レプリカ番号」として「ＲＰ１」が記憶され、「判定結果」として「ＦＡＬＳＥ」が記憶されている。
【００８４】
また、図１７に示す低温情報１３３において、２行目の情報には、「レプリカ番号」として「ＲＰ２」が記憶され、「判定結果」として「ＦＡＬＳＥ」が記憶されている。図１７に含まれる他の情報についての説明は省略する。
【００８５】
図９に戻り、重心距離判定部１２ｄは、低温情報保持部が低温であることを示す低温情報１３３を保持するレプリカ状態の組のうちの１つを特定する（Ｓ５１）。
【００８６】
具体的に、図１７で説明した低温情報１３３には、「レプリカ番号」が「ＲＰ４」及び「ＲＰ５」である情報の「判定結果」として、それぞれ「ＴＲＵＥ」が記憶されている。そのため、重心距離判定部１２ｄは、例えば、図１７で説明した低温情報１３３を参照し、レプリカＰＲ４に対応するレプリカ状態とレプリカＰＲ５に対応するレプリカ状態との組を特定する。
【００８７】
そして、重心距離判定部１２ｄは、Ｓ５１で特定した組に対応する重心の距離を計算する（Ｓ５２）。
【００８８】
具体的に、重心距離判定部１２ｄは、例えば、重心保持部１２ｃが保持する重心情報１３２を参照し、以下の式（５）または式（６）を用いることによって、Ｓ５１で特定した組に対応する重心の距離を計算する。なお、以下の式（５）及び式（６）において、ｍは、パラメータの数であり、ｉ及びｊは、Ｓ５１で特定した組に対応する各レプリカ番号であり、ｘは、パラメータの番号であり、ＲｉＧｘは、ｉ番目のレプリカのｘ番目のパラメータにおける重心の値であり、ＲｊＧｘは、ｊ番目のレプリカのｘ番目のパラメータにおける重心の値である。
【００８９】
【数５】
2020181461.tif 000007
【００９０】
【数６】
2020181461.tif 000008
続いて、重心距離判定部１２ｄは、Ｓ５２で計算した距離が所定距離以内であるか否かを判定する（Ｓ５３）。
【００９１】
その結果、Ｓ５２で計算した距離が所定距離以内であると判定した場合（Ｓ５４のＹＥＳ）、重心距離判定部１２ｄは、Ｓ５２で特定したレプリカ状態の組が温度の調整対象であることを示す調整情報１３４を調整情報保持部（図示しない）に保持させる（Ｓ５５）。
【００９２】
なお、調整情報保持部は、履歴情報保持部１２ａ等と同様に、レジスタ等の記憶回路であってよい。また、調整情報保持部は、ＲＡＭ等の揮発性メモリ、または、フラッシュメモリやＥＥＰＲＯＭ等の不揮発性メモリであってもよい。
【００９３】
一方、Ｓ５２で計算した距離が所定距離以内でないと判定した場合（Ｓ５４のＮＯ）、重心距離判定部１２ｄは、Ｓ５５を行わない。
【００９４】
その後、重心距離判定部１２ｄは、Ｓ５１において全ての組を特定したか否かを判定する（Ｓ５６）。
【００９５】
その結果、Ｓ５１において全ての組を特定していないと判定した場合（Ｓ５６のＮＯ）、重心距離判定部１２ｄは、Ｓ５１以降を行う。
【００９６】
一方、Ｓ５１において全ての組を特定したと判定した場合（Ｓ５６のＹＥＳ）、重心距離判定部１２ｄは、Ｓ２３を終了する。以下、調整情報１３４の具体例について説明を行う。
【００９７】
［調整情報の具体例］
図１８は、調整情報１３４の具体例について説明する図である。具体的に、図１８は、Ｓ５６において全ての組を特定したと判定した際の調整情報１３４の具体例について説明する図である。
【００９８】
図１８に示す調整情報１３４は、温度の調整対象であると判定された組に対応するレプリカ番号の一方が記憶される「レプリカ番号（１）」と、温度の調整対象であると判定された組に対応するレプリカ番号の他方が記憶される「レプリカ番号（２）」とを項目として有する。
【００９９】
具体的に、図１８に示す調整情報１３４において、１行目の情報には、「レプリカ番号（１）」として「ＲＰ４」が記憶され、「レプリカ番号（２）」として「ＰＲ５」が記憶されている。
【０１００】
図６に戻り、最適化装置１０の温度調整部１２ｅは、Ｓ２３で重心が所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、所定温度を超える温度に変更する（Ｓ２４）。以下、Ｓ２４の詳細について説明を行う。
【０１０１】
［Ｓ２４の詳細］
図１０は、Ｓ２４の詳細を説明するフローチャート図である。
【０１０２】
温度調整部１２ｅは、図１０に示すように、調整情報保持部が温度の調整対象であることを示す調整情報１３４を保持するレプリカ状態の組のうちの１つを特定する（Ｓ６１）。
【０１０３】
具体的に、温度調整部１２ｅは、図１８で説明した調整情報１３４を参照し、レプリカＰＲ４に対応するレプリカ状態とレプリカＰＲ５に対応するレプリカ状態との組を特定する。
【０１０４】
そして、温度調整部１２ｅは、Ｓ６１で特定した組に対応するレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態を特定する（Ｓ６２）。
【０１０５】
すなわち、Ｓ６１で特定した組に対応するレプリカ状態のうち、最も低い温度に対応するレプリカ状態では、基底状態の探索がまだ行われている可能性がある。そのため、温度調整部１２ｅは、温度の調整対象として、Ｓ６１で特定した組に対応するレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態を特定する。
【０１０６】
具体的に、例えば、「レプリカ番号」が「ＰＲ４」である焼鈍部１１に対応するレプリカ状態の現在の温度が、「レプリカ番号」が「ＰＲ５」である焼鈍部１１に対応するレプリカ状態の現在の温度よりも低い場合、温度調整部１２ｅは、レプリカＰＲ５に対応するレプリカ状態の特定を行う。
【０１０７】
続いて、温度調整部１２ｅは、Ｓ６２で特定したレプリカ状態に対応する温度が所定温度を超えるように、対応情報（図示しない）を更新する（Ｓ６３）。対応情報は、例えば、各焼鈍部１１のレプリカ状態に対応するレプリカ番号と、各焼鈍部１１に与える温度とを対応付けた情報である。そのため、温度調整部１２ｅは、Ｓ６３において、対応情報に含まれる情報のうち、Ｓ６２で特定したレプリカ状態に対応する温度を示す情報の更新を行う。
【０１０８】
さらに、温度調整部１２ｅは、Ｓ６３で更新した対応情報を対応情報保持部（図示しない）に保持させる（Ｓ６４）。
【０１０９】
なお、対応情報保持部は、履歴情報保持部１２ａ等と同様に、レジスタ等の記憶回路であってよい。また、対応情報保持部は、ＲＡＭ等の揮発性メモリ、または、フラッシュメモリやＥＥＰＲＯＭ等の不揮発性メモリであってもよい。
【０１１０】
その後、温度調整部１２ｅは、Ｓ６１において全ての組を特定したか否かを判定する（Ｓ６５）。
【０１１１】
その結果、Ｓ６１において全ての組を特定していないと判定した場合（Ｓ６５のＮＯ）、温度調整部１２ｅは、Ｓ６１以降を行う。
【０１１２】
一方、Ｓ６１において全ての組を特定したと判定した場合（Ｓ６５のＹＥＳ）、温度調整部１２ｅは、Ｓ２４を終了する。
【０１１３】
なお、図６等で説明したＳ２２からＳ２４は、レプリカ交換タイミング以外のタイミングにおいて随時行われるものであってもよい。
【０１１４】
図６に戻り、最適化装置１０の交換演算部１２ｆ及び出力制御部１２ｇは、Ｓ２４で変更された温度と、その温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、各焼鈍部１１に焼き鈍し動作を行わせる（Ｓ２５）。以下、Ｓ２５の詳細について説明を行う。
【０１１５】
［Ｓ２５の詳細］
図１１は、Ｓ２５の詳細を説明するフローチャート図である。
【０１１６】
交換演算部１２ｆは、図１１に示すように、温度を交換する候補である２つの焼鈍部１１を特定する（Ｓ７１）。
【０１１７】
具体的に、交換演算部１２ｆは、対応情報保持部が保持する対応情報を参照し、例えば、隣接温度に対応する２つの焼鈍部１１を特定する。
【０１１８】
そして、交換演算部１２ｆは、Ｓ７１で特定した２つの焼鈍部１１のそれぞれに対応する温度とエネルギーとから、Ｓ７１で特定した２つの焼鈍部１１のレプリカ状態に対応する温度（２つの焼鈍部１１に与える温度）の交換確率ｐｉｊ（上記の式（３）で説明した交換確率ｐｉｊ）を算出する（Ｓ７２）。
【０１１９】
続いて、交換演算部１２ｆは、Ｓ７２で算出した交換確率ｐｉｊと乱数との比較結果に基づいて、Ｓ７１で特定した２つの焼鈍部１１のレプリカ状態に対応する温度の交換の実行要否を決定する（Ｓ７３）。
【０１２０】
その結果、Ｓ７１で特定した２つの焼鈍部１１のレプリカ状態に対応する温度の交換を実行する場合（Ｓ７４のＹＥＳ）、交換演算部１２ｆは、対応情報保持部が保持する対応情報のうち、Ｓ７１で特定した２つの焼鈍部１１の温度を示す情報を交換する（Ｓ７５）。
【０１２１】
一方、Ｓ７１で特定した２つの焼鈍部１１のレプリカ状態に対応する温度の交換を実行しない場合（Ｓ７４のＮＯ）、交換演算部１２ｆは、Ｓ７５を行わない。
【０１２２】
なお、交換演算部１２ｆは、Ｓ７１において、対応情報保持部が保持する対応情報に情報が含まれる複数の焼鈍部１１から、２つの焼鈍部１１の組を複数特定するものであってもよい。そして、交換演算部１２ｆは、特定した２つの焼鈍部１１の組ごとに、Ｓ７２からＳ７５をそれぞれ行うものであってもよい。
【０１２３】
その後、交換制御部１２の出力制御部１２ｇは、各焼鈍部１１のレプリカ状態に対応する温度を各焼鈍部１１に与える（Ｓ７６）。
【０１２４】
具体的に、出力制御部１２ｇは、対応情報保持部が保持する対応情報を参照し、各焼鈍部１１のレプリカ状態に対応する温度を各焼鈍部１１に送信する。そして、交換演算部１２ｆ及び出力制御部１２ｇは、Ｓ２５を終了する。
【０１２５】
すなわち、本実施の形態における最適化装置１０は、各焼鈍部１１における焼き鈍し動作において、重心が所定距離以内である低温レプリカ状態の組の存在を検知した場合、検知した組に対応する複数の焼鈍部５１において、同じ局所解に対応する領域の探索が行われる可能性があると判定する。そして、最適化装置１０は、この場合、検知した焼鈍部１１の組のうちの一方の温度をより高い温度に変更する。
【０１２６】
これにより、最適化装置１０は、複数の焼鈍部５１において同じ局所解に対応する領域の探索が行われることを防止することが可能になる。そのため、最適化装置１０は、最適解の探索を効率的に行うことが可能になる。
【０１２７】
なお、第１の実施の形態における場合、温度を変更するレプリカ状態は、最適化装置１０の外部に設けられた他の情報処理装置（図示しない）において特定されるものであってもよい。この場合、他の情報処理装置は、例えば、必要なプログラム（図示しない）とＣＰＵ（図示しない）とを協働させることによって、温度を変更するレプリカ状態を特定するための処理を実行する。そして、温度調整部１２ｅは、他の情報処理装置から指示を受信したことに応じて、受信した指示に対応するレプリカ状態の温度の変更を行うものであってよい。
【０１２８】
また、第１の実施の形態における場合、温度を変更するレプリカ状態は、最適化装置１０の内部に設けられたＣＰＵ（図示しない）と必要なプログラム（図示しない）とが協働して処理を実行することによって特定されるものであってもよい。
【０１２９】
［第２の実施の形態］
次に、第２の実施の形態における最適化装置１０について説明を行う。なお、以下、第２の実施の形態における最適化装置１０の動作のうち、第１の実施の形態における最適化装置１０の動作と異なる点について説明を行う。
【０１３０】
［第２の実施の形態におけるＳ２４］
初めに、第２の実施の形態におけるＳ２４について説明を行う。図１２は、第２の実施の形態におけるＳ２４を説明するフローチャート図である。
【０１３１】
温度調整部１２ｅは、図１２に示すように、第１の実施の形態における場合と同様に、調整情報保持部が温度の調整対象であることを示す調整情報１３４を保持するレプリカ状態の組のうちの１つを特定する（Ｓ８１）。
【０１３２】
そして、温度調整部１２ｅは、Ｓ８１で特定した組に対応するレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態を特定する（Ｓ８２）。
【０１３３】
その後、温度調整部１２ｅは、Ｓ８１において全ての組を特定したか否かを判定する（Ｓ８３）。
【０１３４】
その結果、Ｓ８１において全ての組を特定していないと判定した場合（Ｓ８３のＮＯ）、温度調整部１２ｅは、Ｓ８１以降を行う。
【０１３５】
一方、Ｓ８１において全ての組を特定したと判定した場合（Ｓ８３のＹＥＳ）、温度調整部１２ｅは、Ｓ２４を終了する。
【０１３６】
［第２の実施の形態におけるＳ２５］
次に、第２の実施の形態におけるＳ２５について説明を行う。図１３は、第２の実施の形態におけるＳ２５を説明するフローチャート図である。
【０１３７】
交換演算部１２ｆは、Ｓ８２で特定したレプリカ状態のうちの１つを特定する（Ｓ９１）。
【０１３８】
そして、交換演算部１２ｆは、例えば、対応情報保持部が保持する対応情報のうち、Ｓ９１で特定したレプリカ状態の温度を示す情報と、最も高い温度に対応する焼鈍部１１のレプリカ状態に対応する温度を示す情報とを交換する（Ｓ９２）。
【０１３９】
すなわち、第２の実施の形態における交換制御部１２は、Ｓ９１で特定したレプリカ状態に対応する温度を、より温度が高い他のレプリカ状態に対応する温度と交換することによって、複数の焼鈍部５１において同じ局所解に対応する領域の探索が行われることを防止する。
【０１４０】
その後、交換演算部１２ｆは、Ｓ９１において全てのレプリカ状態を特定したか否かを判定する（Ｓ９３）。
【０１４１】
その結果、Ｓ９１において全てのレプリカ状態を特定していないと判定した場合（Ｓ９３のＮＯ）、交換演算部１２ｆは、Ｓ９１以降を行う。
【０１４２】
一方、Ｓ９１において全てのレプリカ状態を特定したと判定した場合（Ｓ９３のＹＥＳ）、出力制御部１２ｇは、各焼鈍部１１のレプリカ状態に対応する温度を各焼鈍部１１に与える（Ｓ７６）。
【０１４３】
具体的に、出力制御部１２ｇは、対応情報保持部が保持する対応情報を参照し、各焼鈍部１１のレプリカ状態に対応する温度を各焼鈍部１１に送信する。そして、交換演算部１２ｆ及び出力制御部１２ｇは、Ｓ２５を終了する。
【０１４４】
これにより、最適化装置１０は、第１の実施の形態における場合と異なる方法によって、各焼鈍部１１における最適解の探索を促進させることが可能になる。
【０１４５】
［最適化装置の動作の具体例］
次に、最適化装置１０の動作の具体例について説明を行う。図１９は、最適化装置１０の動作の具体例について説明する図である。具体的に、図１９（Ａ）は、第１の実施の形態における最適化装置１０の動作の具体例について説明するグラフであって、３つの焼鈍部１１のそれぞれにおける焼き鈍し動作に伴うエネルギーＥの変化を示すグラフである。また、図１９（Ｂ）は、第１の実施の形態における最適化装置１０の動作の具体例について説明するグラフであって、３つの焼鈍部１１のそれぞれにおける焼き鈍し動作に伴う温度の変化を示すグラフである。なお、図１９に示す例において、実線に対応するレプリカ（焼鈍部１１）をレプリカＡと呼び、一点鎖線に対応するレプリカをレプリカＢと呼び、点線に対応するレプリカをレプリカＣとも呼ぶ。
【０１４６】
具体的に、図１９（Ａ）に示すグラフは、時刻ｔ１において、レプリカＡとレプリカＢとのエネルギーの大小関係が入れ替わり、時刻ｔ３において、レプリカＢとレプリカＡとのエネルギーの大小関係が入れ替わったことを示している。また、図１９（Ａ）に示すグラフは、時刻ｔ４において、レプリカＡとレプリカＢとのエネルギーの大小関係が入れ替わり、時刻ｔ５において、レプリカＡとレプリカＣとのエネルギーの大小関係が入れ替わったことを示している。
【０１４７】
そして、図１９（Ｂ）に示すグラフは、時刻ｔ１におけるエネルギーの大小関係の入れ替わりに応じて、レプリカＡとレプリカＢとの温度の交換が行われたことを示している（Ｓ７４のＹＥＳ、Ｓ７５）。また、図１９（Ｂ）に示すグラフは、時刻ｔ５におけるエネルギーの大小関係の入れ替わりに応じて、レプリカＡとレプリカＣとの温度の交換が行われたことを示している（Ｓ７４のＹＥＳ、Ｓ７５）。一方、図１９（Ｂ）に示すグラフは、時刻ｔ３及び時刻ｔ４においては、エネルギーの大小関係の入れ替わりが発生したにも関わらず、温度の交換が行われなかったことを示している（Ｓ７４のＮＯ）。
【０１４８】
さらに、図１９（Ａ）及び（Ｂ）に示すグラフは、時刻ｔ２において、レプリカＡの重心とレプリカＣの重心とが所定距離以内であると判定されたことから、レプリカＡの温度の上昇が行われたことを示している（Ｓ６４）。
【０１４９】
これにより、最適化装置１０は、複数のレプリカが同じ局所解に対応する領域の探索を行っている状況を早期に解消させることが可能になる。そのため、最適化装置１０は、各焼鈍部１１における最適解の探索を促進させることが可能になる。
【０１５０】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１５１】
（付記１）
焼き鈍し動作を実行する演算部と、
前記演算部が、過去に実行したＮ回分（Ｎは正の整数）の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持するレプリカ履歴情報保持部と、
前記レプリカ履歴情報保持部が保持するＮ回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記Ｎ回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持する重心計算部と、
前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定する重心距離判定部と、
重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更する温度調整部と、
変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせるレプリカ交換制御部と、を有する、
ことを特徴とする最適化装置。
【０１５２】
（付記２）
付記１において、
前記温度調整部は、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態の温度を変更する、
ことを特徴とする最適化装置。
【０１５３】
（付記３）
付記１において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記重心保持部が重心を保持する複数のレプリカ状態のうち、前記レプリカ状態の組に含まれるレプリカ状態以外のレプリカ状態の温度と交換する、
ことを特徴とする最適化装置。
【０１５４】
（付記４）
付記３において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記重心保持部が重心を保持する複数のレプリカ状態のうち、最も高い温度に対応するレプリカ状態の温度と交換する、
ことを特徴とする最適化装置。
【０１５５】
（付記５）
付記１において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記レプリカ状態の組に含まれるレプリカ状態の重心が前記所定距離を超える温度に変更する、
ことを特徴とする最適化装置。
【０１５６】
（付記６）
付記１において、
前記重心計算部は、
前記Ｎ回分の各レプリカ状態に対応する複数のパラメータごとに、各パラメータに対応する値の平均値を算出し、
前記Ｎ回分の各レプリカ状態について、算出した前記平均値のそれぞれを各次元に対応する座標とした場合における多次元空間上の点を、前記Ｎ回分の各レプリカ状態に対応する複数のパラメータの重心として計算する、
ことを特徴とする最適化装置。
【０１５７】
（付記７）
付記６において、
前記重心距離判定部は、
前記複数のレプリカ状態の組のそれぞれについて、前記多次元空間上における前記複数のパラメータの重心間の距離を計算し、
前記複数のレプリカ状態の組のそれぞれについて、計算した前記距離が前記所定距離以内であるか否かを判定する、
ことを特徴とする最適化装置。
【０１５８】
（付記８）
演算部が、焼き鈍し動作を実行し、
レプリカ履歴情報保持部が、前記演算部によって過去に実行されたＮ回分（Ｎは正の整数）の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持し、
重心計算部が、前記レプリカ履歴情報保持部が保持するＮ回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記Ｎ回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持させ、
重心距離判定部が、前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定し、
温度調整部が、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更し、
レプリカ交換部が、変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせる、
ことを特徴とする最適化装置の制御方法。
【符号の説明】
【０１５９】
１０：最適化装置            １１：焼鈍部
１２：交換制御部            １２ａ：履歴情報保持部
１２ｂ：重心計算部          １２ｃ：重心保持部
１２ｄ：重心距離判定部      １２ｅ：温度調整部
１２ｆ：出力制御部          １３１：履歴情報
１３２：重心情報            １３３：低温情報
１３４：調整情報            Ｅ：エネルギー
β：逆温度
【図１】
2020181461.tif 000009
【図２】
2020181461.tif 000010
【図３】
2020181461.tif 000011
【図４】
2020181461.tif 000012
【図５】
2020181461.tif 000013
【図６】
2020181461.tif 000014
【図７】
2020181461.tif 000015
【図８】
2020181461.tif 000016
【図９】
2020181461.tif 000017
【図１０】
2020181461.tif 000018
【図１１】
2020181461.tif 000019
【図１２】
2020181461.tif 000020
【図１３】
2020181461.tif 000021
【図１４】
2020181461.tif 000022
【図１５】
2020181461.tif 000023
【図１６】
2020181461.tif 000024
【図１７】
2020181461.tif 000025
【図１８】
2020181461.tif 000026
【図１９】
2020181461.tif 000027