(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-10
(45)【発行日】2023-01-18
(54)【発明の名称】最適化装置及び最適化装置の制御方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20230111BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2019085334
(22)【出願日】2019-04-26
【審査請求日】2022-01-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100094525
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】パリジ マチュー
(72)【発明者】
【氏名】松岡 英俊
【審査官】杉浦 孝光
(56)【参考文献】
【文献】特許第6465231(JP,B1)
【文献】特開昭64-033627(JP,A)
【文献】特開2018-063626(JP,A)
【文献】米国特許出願公開第2019/0019101(US,A1)
【文献】米国特許出願公開第2003/0049687(US,A1)
【文献】米国特許出願公開第2008/0033897(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
焼き鈍し動作を実行する演算部と、
前記演算部が、過去に実行したN回分(Nは正の整数)の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持するレプリカ履歴情報保持部と、
前記レプリカ履歴情報保持部が保持するN回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記N回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持する重心計算部と、
前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定する重心距離判定部と、
重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更する温度調整部と、
変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせるレプリカ交換制御部と、を有する、
ことを特徴とする最適化装置。
【請求項2】
請求項1において、
前記温度調整部は、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態の温度を変更する、
ことを特徴とする最適化装置。
【請求項3】
請求項1において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記重心保持部が重心を保持する複数のレプリカ状態のうち、前記レプリカ状態の組に含まれるレプリカ状態以外のレプリカ状態の温度と交換する、
ことを特徴とする最適化装置。
【請求項4】
請求項3において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記重心保持部が重心を保持する複数のレプリカ状態のうち、最も高い温度に対応するレプリカ状態の温度と交換する、
ことを特徴とする最適化装置。
【請求項5】
請求項1において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記レプリカ状態の組に含まれるレプリカ状態の重心が前記所定距離を超える温度に変更する、
ことを特徴とする最適化装置。
【請求項6】
演算部が、焼き鈍し動作を実行し、
レプリカ履歴情報保持部が、前記演算部によって過去に実行されたN回分(Nは正の整数)の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持し、
重心計算部が、前記レプリカ履歴情報保持部が保持するN回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記N回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持させ、
重心距離判定部が、前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定し、
温度調整部が、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更し、
レプリカ交換部が、変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせる、
ことを特徴とする最適化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化装置及び最適化装置の制御方法に関する。
【背景技術】
【0002】
近年、各分野において行われる情報処理では、例えば、必要な資源の最小化や効果の最大化等を目的とする最適化問題を解くための処理が行われている。
【0003】
このような最適化問題のうち、例えば、離散最適化問題や組合せ最適化問題等では、変数が離散的な値(連続値ではない値)を取るため、解の算出が非常に困難になる場合がある。具体的に、例えば、離散最適化問題では、最適解ではないが局所的近傍において最小値を取る解(以下、局所解とも呼ぶ)が非常に多く存在するため、解の算出が困難になる場合がある。
【0004】
このような離散最適化問題を解く場合、例えば、問題に固有な性質を利用した近似解法や、問題の性質に頼らないメタヒューリスティックと呼ばれる解法が用いられる。具体的に、例えば、メタヒューリスティックのうち、マルコフ連鎖モンテカルロ法を用いた解法に関するものであって、交換モンテカルロ法やレプリカ交換法と呼ばれる広い意味での疑似焼き鈍し法が用いられる。
【0005】
この疑似焼き鈍し法は、乱数を用いて確率的に状態を変化させることによって最適解を算出する方法である。そして、疑似焼き鈍し法では、状態遷移の受け入れ(許容)確率を、その状態遷移に伴うエネルギー変化と温度とを用いることによって以下の式(1)及び式(2)のように定める場合、時刻(焼き鈍し動作の反復回数)が無限大となる極限において状態が最適解に到達することが証明されている。なお、以下の式(1)におけるTは、温度を表すパラメータであり、問題に応じて初期値を大きく取ることが好ましく、また、時間の経過に伴って徐々と低下させていくことが好ましい。
【0006】
【0007】
【数2】
上記のように、疑似焼き鈍し法では、焼き鈍し動作の反復回数を無限に取ることによって最適解を得ることができる。しかしながら、現実には、有限の反復回数で解を得る必要があるため、最適解を確実に求めることができない場合がある。また、上記のように、温度低下のペースが非常に遅いため、有限時間では温度が十分に低下しない場合がある。
【0008】
そのため、実際の疑似焼き鈍し法では、理論的に収束することが保証される温度低下のペースよりも早いペースによって温度を低下させる必要がある。そして、実際の疑似焼き鈍し法では、温度を低下させながら焼き鈍し動作の反復を繰り返していき、一定の反復回数に達した場合やエネルギーが所定値を下回る等の条件が満たされた場合に動作を終了し、終了時の状態を解として出力する。
【0009】
なお、上記のように、有限の反復回数では温度が0にならないため、動作の終了時においても状態の占有確率がボルツマン分布等に従うことになり、最適解や良い解が出力されない可能性がある。そのため、実際の疑似焼き鈍し法では、例えば、反復の途中で得られた各状態のうち、エネルギーが最低であった状態を出力する方法等が採用される。
【0010】
上記のように、疑似焼き鈍し法では、温度を徐々に低下させる必要があるため、計算時間が比較的長くなるという問題がある。また、疑似焼き鈍し法では、温度の下げ方を問題に合わせて適切に調整することが難しいという問題もある。具体的に、温度の下げ方が遅すぎる場合、有限時間内において十分に温度が下がらなくなるため、最終的な熱分布のエネルギー範囲が広くなり、良い解の占有確率が上がらなくなる。一方、温度の下げ方が速すぎる場合、局所解を脱出する前に温度が下がってしまうため、この場合においても良い解の占有確率が上がらなくなる。
【0011】
次に、レプリカ交換法について説明を行う。
図1及び
図2は、レプリカ交換法を用いた最適化装置50の構成例を説明する図である。
【0012】
レプリカ交換法は、複数の温度を用いたモンテカルロ探索(以下、確率的探索とも呼ぶ)を同時に行い、所定の反復回数ごとに、それぞれの状態に対応するエネルギーを比較し、適切な確率で2つの温度に対する状態を交換する操作を行う方法である。
【0013】
図1に示す例において、最適化装置50は、複数の焼鈍部51a0、51a1、…、51ai、…、51an(以下、これらを総称して単に焼鈍部51とも呼ぶ)と、交換制御部52とを有する。
【0014】
交換制御部52は、各焼鈍部51に対して温度情報(以下、単に温度とも呼ぶ)を与える。具体的に、交換制御部52は、例えば、Tの逆数である逆温度βi(0≦i≦n))を各焼鈍部51に与える。
【0015】
一方、焼鈍部51aiは、
図2に示すように、状態保持部61と、評価関数計算部62と、遷移制御部63とを有する。なお、他の焼鈍部51の構成については、焼鈍部51aiと同様であるため説明を省略する。
【0016】
状態保持部61は、評価関数に含まれる複数の状態変数(以下、パラメータとも呼ぶ)の値である状態Siを保持する。そして、状態保持部61は、状態変数の変化(以下、状態遷移とも呼ぶ)の可否を示すフラグfと、フラグfに対応する状態変数の番号Nとに基づいて、状態Siを更新する。
【0017】
評価関数計算部62は、状態遷移に伴うエネルギー変化を計算する。具体的に、例えば、評価関数が2つの状態変数間の結合で表されるイジングモデルで表され、かつ、一度に1つの状態変化に対応する状態遷移のみを許す場合、評価関数計算部62は、各状態変数の値と、状態変数間の結合の強さを示す結合係数と、番号Nと、フラグfとに基づいて、複数の状態変数のそれぞれに対応する状態遷移に伴うエネルギー変化ΔEi,jを計算する。エネルギー変化ΔEi,jは、j番目の焼鈍部51の状態変数に対応する状態遷移に伴うエネルギー変化を示す。
【0018】
なお、計算したい最適化問題に応じた結合係数の値は、例えば、予めメモリまたはレジスタ等に記憶されているものであってよい。また、評価関数計算部62は、例えば、積和演算回路等の論理回路を用いて実現されるものであってよい。
【0019】
遷移制御部63は、疑似焼き鈍し法と同様に、エネルギー変化ΔEi,jと、交換制御部52によって割り当てられた逆温度βiとを以下の式(3)に代入することにより、j番目の焼鈍部51の状態変数に対応する状態遷移の受け入れ確率を決定することで確率的探索を行う。なお、以下の式(3)において、関数fは、式(1)におけるものと同じであり、例えば、式(2)のメトロポリス法におけるものが用いられる。
【0020】
【数3】
そして、遷移制御部63は、式(3)によって算出された状態遷移の受け入れ確率に基づいて、フラグfと番号Nとを出力する。さらに、遷移制御部63は、エネルギー変化ΔE
i,jに基づいて、エネルギーE
iを更新して出力する。
【0021】
一方、交換制御部52は、各焼鈍部51において焼き鈍し動作が一定回数反復されるごとに、各焼鈍部51におけるエネルギーEを観測し、焼鈍部51のうちの2つにおけるエネルギーEと逆温度βとを用いることにより、以下の式(4)において表される交換確率を算出する。そして、交換制御部52は、算出した交換確率に基づいて、2つの焼鈍部51における各状態変数の値を交換する。この場合、交換制御部52は、状態変数の値の代わりに、2つの焼鈍部51のそれぞれに与えられる逆温度βを交換するものであってもよい。
【0022】
なお、以下の式(4)では、βiを焼鈍部51aiに与えられた逆温度とし、βjをj番目の焼鈍部51に与えられた逆温度とし、Eiを焼鈍部51aiにおけるエネルギーとし、Ejをj番目の焼鈍部51におけるエネルギーとしている。また、式(4)において、関数fは、式(1)におけるものと同じであり、例えば、式(2)のメトロポリス法におけるものが用いられる。
【0023】
【数4】
このような交換が行われる場合であっても、それぞれの温度の状態についての確率分布は、それぞれの温度に対するボルツマン分布に収束する。そして、この確率分布の収束に要する緩和時間は、交換を行わない場合よりも著しく短縮される。
【0024】
なお、交換が行われる2つの焼鈍部51は、交換確率が小さくなり過ぎないように、与えられる温度が近い2つの焼鈍部51(例えば、隣接する温度が与えられる2つの焼鈍部51)が選択されることが好ましい(例えば、特許文献1乃至3参照)。
【先行技術文献】
【特許文献】
【0025】
【文献】特開2004-244721号公報
【文献】特開2002-217902号公報
【文献】特表2016-519857号公報
【発明の概要】
【発明が解決しようとする課題】
【0026】
ここで、上記のようなレプリカ交換法を用いた最適化装置50では、複数の焼鈍部51(例えば、低い温度が与えられた複数の焼鈍部51)において同じ局所解に対応する領域の探索が行われる場合がある。そのため、最適化装置50では、最適解の探索が効率的に行われない場合がある。
【0027】
そこで、一つの側面では、本発明は、最適解の探索を効率的に行うことを可能とする最適化装置及び最適化装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0028】
実施の形態の一態様では、最適化装置は、焼き鈍し動作を実行する演算部と、前記演算部が、過去に実行したN回分(Nは正の整数)の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持するレプリカ履歴情報保持部と、前記レプリカ履歴情報保持部が保持するN回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記N回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持する重心計算部と、前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定する重心距離判定部と、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更する温度調整部と、変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせるレプリカ交換制御部と、を有する。
【発明の効果】
【0029】
一つの側面によれば、最適解の探索を効率的に行うことを可能とする。
【図面の簡単な説明】
【0030】
【
図1】
図1は、レプリカ交換法を用いた最適化装置50の構成例を説明する図である。
【
図2】
図2は、レプリカ交換法を用いた最適化装置50の構成例を説明する図である。
【
図3】
図3は、第1の実施の形態における最適化装置10の構成例を示す図である。
【
図4】
図4は、第1の実施の形態における最適化装置10の構成例を示す図である。
【
図5】
図5は、最適化装置10の動作を説明するフローチャート図である。
【
図6】
図6は、最適化装置10の動作を説明するフローチャート図である。
【
図7】
図7は、最適化装置10の動作を説明するフローチャート図である。
【
図8】
図8は、最適化装置10の動作を説明するフローチャート図である。
【
図9】
図9は、最適化装置10の動作を説明するフローチャート図である。
【
図10】
図10は、最適化装置10の動作を説明するフローチャート図である。
【
図11】
図11は、最適化装置10の動作を説明するフローチャート図である。
【
図12】
図12は、最適化装置10の動作を説明するフローチャート図である。
【
図13】
図13は、最適化装置10の動作を説明するフローチャート図である。
【
図14】
図14は、履歴情報131の具体例について説明する図である。
【
図15】
図15は、重心情報132の具体例について説明する図である。
【
図16】
図16は、重心情報132の具体例について説明する図である。
【
図17】
図17は、低温情報133の具体例について説明する図である。
【
図18】
図18は、調整情報134の具体例について説明する図である。
【
図19】
図19は、最適化装置10の動作の具体例について説明する図である。
【発明を実施するための形態】
【0031】
[第1の実施の形態]
初めに、第1の実施の形態における最適化装置10について説明を行う。
図3及び
図4は、第1の実施の形態における最適化装置10の構成例を示す図である。
【0032】
第1の実施の形態における最適化装置10は、
図3に示すように、焼鈍部11a0、11a1、…、11ai、…、11an(以下、これらを総称して単に焼鈍部11とも呼ぶ)と、交換制御部12(以下、レプリカ交換制御部12とも呼ぶ)とを有する。
【0033】
焼鈍部11のそれぞれは、
図2で説明した焼鈍部51aiと同じである。すなわち、焼鈍部11のそれぞれは、複数の状態変数の何れかの値が変化する状態遷移が起こる場合、複数の状態変数の値の変化に伴うエネルギーEの変化を算出する。そして、焼鈍部11のそれぞれは、エネルギーEの変化と温度に基づいて、複数の状態変数の値の中から変化を受け入れる値を確率的に決定することで確率的探索を行う。なお、焼鈍部11のそれぞれには、例えば、互いに異なる温度が割り当てられる。
【0034】
交換制御部12は、
図4に示すように、履歴情報保持部12aと、重心計算回路12b(以下、重心計算部12bとも呼ぶ)と、重心保持部12cと、重心距離判定回路12d(以下、重心距離判定部12dとも呼ぶ)と、温度調整回路12e(以下、温度調整部12e)と、交換演算回路12f(以下、交換演算部12fとも呼ぶ)と、出力制御回路12g(以下、出力制御部12gとも呼ぶ)とを有する。
【0035】
履歴情報保持部12aは、履歴情報131(以下、レプリカ履歴情報131とも呼ぶ)を保持する。履歴情報131は、各焼鈍部11のレプリカ状態を識別するレプリカ状態識別情報(以下、レプリカ番号とも呼ぶ)に対応する温度と、各焼鈍部11のレプリカ状態に対応する複数のパラメータと、各焼鈍部11のレプリカ状態に対応するエネルギーEとを含む情報である。
【0036】
重心計算部12bは、履歴情報保持部12aが保持するN回分の各レプリカ状態に対応する複数のパラメータの重心(以下、重心情報132とも呼ぶ)をそれぞれ計算する。すなわち、重心計算部12bは、各焼鈍部11のレプリカ状態のそれぞれについて複数のパラメータの重心を計算する。そして、重心保持部12cは、重心計算部12bが計算した重心情報132を保持する。
【0037】
重心距離判定部12dは、重心保持部12cが重心情報132を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態(以下、低温レプリカ状態とも呼ぶ)の組のそれぞれについて、重心が所定距離以内に有るか否かを判定する。
【0038】
温度調整部12eは、重心が所定距離以内に有ると判定されたレプリカ状態の組(以下、単にレプリカ状態の組とも呼ぶ)に含まれるレプリカ状態のいずれか一方に対応する温度を、所定温度を超える温度に変更する。
【0039】
具体的に、温度調整部12eは、例えば、レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、重心保持部12cが重心情報132を保持する複数のレプリカ状態のうち、レプリカ状態の組に含まれないレプリカ状態の温度と交換する。
【0040】
また、温度調整部12eは、例えば、レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、レプリカ状態の組に含まれる各レプリカ状態の重心が所定距離を超えるようになるまで上昇させる。
【0041】
交換演算部12fは、各焼鈍部11のレプリカ状態に対応する温度(温度調整部12eによって変更された温度を含む)の交換を行う。
【0042】
具体的に、交換演算部12fは、例えば、温度を交換する候補である2つの焼鈍部11(以下、単に2つの焼鈍部11とも呼ぶ)のそれぞれに対応する温度とエネルギーEとから、2つの焼鈍部11のレプリカ状態に対応する温度の交換確率pij(上記の式(3)で説明した交換確率pij)を算出する。そして、交換演算部12fは、例えば、算出した交換確率Pijと乱数との比較結果に基づいて、2つの焼鈍部11のレプリカ状態に対応する温度の交換要否を決定する。
【0043】
出力制御部12gは、各焼鈍部11のレプリカ状態に対応する温度(交換演算部12fによって交換された温度を含む)を各焼鈍部11に与える。そして、各焼鈍部11は、出力制御部12gによって与えられた温度と、各焼鈍部11のレプリカ状態に対応する複数のパラメータとを用いることによって焼き鈍し動作を行う。
【0044】
なお、履歴情報保持部12a及び重心保持部12cは、例えば、レジスタ等の記憶回路であってよい。また、履歴情報保持部12a及び重心保持部12cは、RAM(Random Access Memory)等の揮発性メモリ、または、フラッシュメモリやEEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発性メモリであってもよい。
【0045】
[最適化装置の動作]
次に、最適化装置10の動作について説明を行う。
図5から
図13は、最適化装置10の動作を説明するフローチャート図である。具体的に、
図5から
図13は、交換制御部12の動作を説明するフローチャート図である。また、
図14から
図18は、最適化装置10の動作を説明する図である。
【0046】
交換制御部12の交換演算部12fは、
図5に示すように、各焼鈍部11からエネルギーE及び複数のパラメータを受け付けるまで待機する(S11のNO)。具体的に、交換制御部12は、各焼鈍部11が焼き鈍し動作を行ったことに伴ってエネルギーE及び複数のパラメータを送信するまで待機する。
【0047】
そして、各焼鈍部11からエネルギーE及び複数のパラメータを受け付けた場合(S11のYES)、交換演算部12fは、S11で受け付けたエネルギー及び複数のパラメータと、S11で受け付けたエネルギー及び複数のパラメータの送信元の焼鈍部11に与えた温度とを対応付けた履歴情報131を生成する(S12)。
【0048】
その後、交換制御部12の履歴情報保持部12aは、S12で生成した履歴情報131を保持する(S13)。具体的に、履歴情報保持部12aは、焼鈍部11ごとであって焼き鈍し動作ごとの履歴情報131をそれぞれ保持する。以下、履歴情報保持部12aが保持する履歴情報131の具体例について説明を行う。
【0049】
[履歴情報の具体例]
図14は、履歴情報131の具体例について説明する図である。なお、以下、最適化装置10における焼鈍部11の数(レプリカの数)が5つであるものとして説明を行う。また、各焼鈍部11のレプリカ状態に対応するパラメータの数が5つであるものとして説明を行う。
【0050】
図14に示す履歴情報131は、各焼鈍部11における焼き鈍し動作の反復回数が記憶される「反復番号」と、各焼鈍部11に対応するレプリカ番号が記憶される「レプリカ番号」とを項目として有する。また、
図14に示す履歴情報131は、各焼鈍部11に対応するパラメータ(変数)の値がそれぞれ記憶される「変数1」、「変数2」、「変数3」、「変数4」及び「変数5」のそれぞれを項目として有する。さらに、
図14に示す履歴情報131は、各焼鈍部11に与えられる温度が記憶される「温度」と、各焼鈍部11に対応するエネルギーEが記憶される「エネルギー」とを項目として有する。
【0051】
具体的に、
図14に示す履歴情報131において、1行目の情報には、「反復番号」として「1」が記憶され、「レプリカ番号」として「RP1」が記憶され、「変数1」として「1」が記憶され、「変数2」として「1」が記憶され、「変数3」として「1」が記憶され、「変数4」として「0」が記憶され、「変数5」として「1」が記憶されている。そして、
図14に示す履歴情報131において、1行目の情報には、「温度」として「0.2」が記憶され、「エネルギー」として「100000」が記憶されている。
【0052】
また、
図14に示す履歴情報131において、2行目の情報には、「反復番号」として「1」が記憶され、「レプリカ番号」として「RP2」が記憶され、「変数1」として「1」が記憶され、「変数2」として「1」が記憶され、「変数3」として「1」が記憶され、「変数4」として「0」が記憶され、「変数5」として「0」が記憶されている。そして、
図14に示す履歴情報131において、2行目の情報には、「温度」として「1.3」が記憶され、「エネルギー」として「100000」が記憶されている。
図14に含まれる他の情報についての説明は省略する。
【0053】
なお、以下、「レプリカ番号」が「RP1」、「RP2」、「RP3」、「RP4」及び「RP5」である情報に対応する焼鈍部11を、それぞれレプリカRP1、レプリカRP2、レプリカRP3、レプリカRP4及びレプリカRP5とも呼ぶ。
【0054】
図6に戻り、交換制御部12は、
図5で説明した動作と並行して、レプリカ交換タイミングになるまで待機する(S21のNO)。レプリカ交換タイミングは、例えば、各焼鈍部11における焼き鈍し動作の反復回数がN回の定数倍に達したタイミングであってよい。すなわち、交換制御部12は、各焼鈍部11における焼き鈍し動作の反復回数がN回に達するごとに、直前に行われたN回の焼き鈍し動作に対応する履歴情報131を用いることによってS21以降の動作を行うものであってよい。なお、本実施の形態におけるN回は、例えば、ユーザ等によって予め入力される回数であってよい。
【0055】
そして、レプリカ交換タイミングになった場合(S21のYES)、交換制御部12の重心計算部12bは、履歴情報保持部12aが保持するN回分の各レプリカ状態に対応する複数のパラメータの重心情報132を計算して重心保持部12cに保持させる(S22)。以下、S22の詳細について説明を行う。
【0056】
[S22の詳細]
図7は、S22の詳細を説明するフローチャート図である。
【0057】
重心計算部12bは、
図7に示すように、各焼鈍部11のレプリカ状態のうちの1つを特定する(S31)。
【0058】
具体的に、
図14で説明した履歴情報131の「レプリカ番号」には、「RP1」、「RP2」、「RP3」、「RP4」及び「RP5」がそれぞれ記憶されている。そのため、重心計算部12bは、例えば、
図14で説明した履歴情報131を参照し、レプリカRP1に対応するレプリカ状態を特定する。
【0059】
そして、重心計算部12bは、S31で特定したレプリカ状態に対応する複数のパラメータの重心を計算する(S32)。
【0060】
具体的に、重心計算部12bは、例えば、
図14で説明した履歴情報131を参照し、「レプリカ番号」が「PR1」である情報の「変数1」に記憶された値の平均を、「変数1」の重心として計算する。同様に、重心計算部12bは、「変数2」の重心、「変数3」の重心、「変数4」の重心及び「変数5」の重心についてもそれぞれ計算する。
【0061】
その後、重心計算部12bは、S32で計算した重心を示す重心情報132を重心保持部に保持させる(S33)。以下、重心情報132の具体例について説明を行う。
【0062】
[重心情報の具体例(1)]
図15及び
図16は、重心情報132の具体例について説明する図である。具体的に、
図15は、S31からS33が1回目に行われた際の重心情報132の具体例について説明する図である。
【0063】
図15等に示す重心情報132は、各焼鈍部11に対応するレプリカ番号が記憶される「レプリカ番号」と、各焼鈍部11に対応するパラメータ(変数)の値がそれぞれ記憶される「変数1」、「変数2」、「変数3」、「変数4」及び「変数5」のそれぞれを項目として有する。
【0064】
具体的に、例えば、レプリカPR1に対応する「変数1」、「変数2」、「変数3」、「変数4」及び「変数5」の重心として、「0.21」、「0.63」、「0.99」、「0.02」及び「0.32」のそれぞれが計算された場合、重心保持部12cは、
図15に示すように、「レプリカ番号」が「RP1」である情報の「変数1」、「変数2」、「変数3」、「変数4」及び「変数5」のそれぞれに対応する値として、「0.21」、「0.63」、「0.99」、「0.02」及び「0.32」のそれぞれを保持する。
【0065】
図7に戻り、重心計算部12bは、S31において全てのレプリカ状態を特定したか否かを判定する(S34)。
【0066】
その結果、全てのレプリカ状態を特定していないと判定した場合(S34のNO)、重心計算部12bは、S31以降を再度行う。
【0067】
一方、全てのレプリカ状態を特定したと判定した場合(S34のYES)、重心計算部12bは、S22を終了する。なお、重心保持部12cは、この場合、
図16に示すように、全てのレプリカ番号に対応する重心情報132をそれぞれ保持する。
【0068】
図6に戻り、最適化装置10の重心距離判定部12dは、重心保持部12cが重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組について、重心が所定距離以内に有るか否かを判定する(S23)。以下、S23の詳細について説明を行う。
【0069】
[S23の詳細]
図8及び
図9は、S23の詳細を説明するフローチャート図である。
【0070】
重心距離判定部12dは、
図8に示すように、各焼鈍部11のレプリカ状態のうちの1つを特定する(S41)。
【0071】
具体的に、
図14で説明した履歴情報131の「レプリカ番号」には、「RP1」、「RP2」、「RP3」、「RP4」及び「RP5」がそれぞれ記憶されている。そのため、重心距離判定部12dは、例えば、
図14で説明した履歴情報131を参照し、レプリカPR1に対応するレプリカ状態を特定する。
【0072】
そして、重心距離判定部12dは、S41で特定したレプリカ状態に対応する現在の温度を特定する(S42)。
【0073】
具体的に、重心距離判定部12dは、
図14で説明した履歴情報131を参照し、「レプリカ番号」が「RP1」である情報のうち、S41で特定したレプリカ状態に対応する焼鈍部11から最後に受け付けた情報の「温度」に記憶された値を特定する。
【0074】
続いて、重心距離判定部12dは、S42で特定した温度が所定温度以下であるか否かを判定する(S43)。
【0075】
その結果、S42で特定した温度が所定温度以下であると判定した場合(S44のYES)、重心距離判定部12dは、S41で特定したレプリカ状態が低温であることを示す低温情報133を低温情報保持部(図示しない)に保持させる(S45)。
【0076】
なお、低温情報保持部は、履歴情報保持部12a等と同様に、レジスタ等の記憶回路であってよい。また、低温情報保持部は、RAM等の揮発性メモリ、または、フラッシュメモリやEEPROM等の不揮発性メモリであってもよい。
【0077】
一方、S42で特定した温度が所定温度以下でないと判定した場合(S44のNO)、重心距離判定部12dは、S45を行わない。
【0078】
その後、重心距離判定部12dは、S41において全てのレプリカ状態を特定したか否かを判定する(S46)。
【0079】
その結果、全てのレプリカ状態を特定していないと判定した場合(S46のNO)、重心距離判定部12dは、S41以降を再度行う。
【0080】
一方、全てのレプリカ状態を特定したと判定した場合(S46のYES)、重心距離判定部12dは、
図9に示すように、S51以降を行う。以下、低温情報133の具体例について説明を行う。
【0081】
[低温情報の具体例]
図17は、低温情報133の具体例について説明する図である。具体的に、
図17は、S46において全てのレプリカ状態を特定したと判定した際の低温情報133の具体例について説明する図である。
【0082】
図17に示す低温情報133は、各焼鈍部11に対応するレプリカ番号が記憶される「レプリカ番号」と、各焼鈍部11に対応するレプリカ状態が低温であるか否かを示す情報が記憶される「判定結果」とを項目として有する。「判定結果」には、レプリカ状態が低温であることを示す「TRUE」、または、レプリカ状態が低温でないことを示す「FALSE」が記憶される。
【0083】
具体的に、
図17に示す低温情報133において、1行目の情報には、「レプリカ番号」として「RP1」が記憶され、「判定結果」として「FALSE」が記憶されている。
【0084】
また、
図17に示す低温情報133において、2行目の情報には、「レプリカ番号」として「RP2」が記憶され、「判定結果」として「FALSE」が記憶されている。
図17に含まれる他の情報についての説明は省略する。
【0085】
図9に戻り、重心距離判定部12dは、低温情報保持部が低温であることを示す低温情報133を保持するレプリカ状態の組のうちの1つを特定する(S51)。
【0086】
具体的に、
図17で説明した低温情報133には、「レプリカ番号」が「RP4」及び「RP5」である情報の「判定結果」として、それぞれ「TRUE」が記憶されている。そのため、重心距離判定部12dは、例えば、
図17で説明した低温情報133を参照し、レプリカPR4に対応するレプリカ状態とレプリカPR5に対応するレプリカ状態との組を特定する。
【0087】
そして、重心距離判定部12dは、S51で特定した組に対応する重心の距離を計算する(S52)。
【0088】
具体的に、重心距離判定部12dは、例えば、重心保持部12cが保持する重心情報132を参照し、以下の式(5)または式(6)を用いることによって、S51で特定した組に対応する重心の距離を計算する。なお、以下の式(5)及び式(6)において、mは、パラメータの数であり、i及びjは、S51で特定した組に対応する各レプリカ番号であり、xは、パラメータの番号であり、RiGxは、i番目のレプリカのx番目のパラメータにおける重心の値であり、RjGxは、j番目のレプリカのx番目のパラメータにおける重心の値である。
【0089】
【0090】
【数6】
続いて、重心距離判定部12dは、S52で計算した距離が所定距離以内であるか否かを判定する(S53)。
【0091】
その結果、S52で計算した距離が所定距離以内であると判定した場合(S54のYES)、重心距離判定部12dは、S52で特定したレプリカ状態の組が温度の調整対象であることを示す調整情報134を調整情報保持部(図示しない)に保持させる(S55)。
【0092】
なお、調整情報保持部は、履歴情報保持部12a等と同様に、レジスタ等の記憶回路であってよい。また、調整情報保持部は、RAM等の揮発性メモリ、または、フラッシュメモリやEEPROM等の不揮発性メモリであってもよい。
【0093】
一方、S52で計算した距離が所定距離以内でないと判定した場合(S54のNO)、重心距離判定部12dは、S55を行わない。
【0094】
その後、重心距離判定部12dは、S51において全ての組を特定したか否かを判定する(S56)。
【0095】
その結果、S51において全ての組を特定していないと判定した場合(S56のNO)、重心距離判定部12dは、S51以降を行う。
【0096】
一方、S51において全ての組を特定したと判定した場合(S56のYES)、重心距離判定部12dは、S23を終了する。以下、調整情報134の具体例について説明を行う。
【0097】
[調整情報の具体例]
図18は、調整情報134の具体例について説明する図である。具体的に、
図18は、S56において全ての組を特定したと判定した際の調整情報134の具体例について説明する図である。
【0098】
図18に示す調整情報134は、温度の調整対象であると判定された組に対応するレプリカ番号の一方が記憶される「レプリカ番号(1)」と、温度の調整対象であると判定された組に対応するレプリカ番号の他方が記憶される「レプリカ番号(2)」とを項目として有する。
【0099】
具体的に、
図18に示す調整情報134において、1行目の情報には、「レプリカ番号(1)」として「RP4」が記憶され、「レプリカ番号(2)」として「PR5」が記憶されている。
【0100】
図6に戻り、最適化装置10の温度調整部12eは、S23で重心が所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、所定温度を超える温度に変更する(S24)。以下、S24の詳細について説明を行う。
【0101】
[S24の詳細]
図10は、S24の詳細を説明するフローチャート図である。
【0102】
温度調整部12eは、
図10に示すように、調整情報保持部が温度の調整対象であることを示す調整情報134を保持するレプリカ状態の組のうちの1つを特定する(S61)。
【0103】
具体的に、温度調整部12eは、
図18で説明した調整情報134を参照し、レプリカPR4に対応するレプリカ状態とレプリカPR5に対応するレプリカ状態との組を特定する。
【0104】
そして、温度調整部12eは、S61で特定した組に対応するレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態を特定する(S62)。
【0105】
すなわち、S61で特定した組に対応するレプリカ状態のうち、最も低い温度に対応するレプリカ状態では、基底状態の探索がまだ行われている可能性がある。そのため、温度調整部12eは、温度の調整対象として、S61で特定した組に対応するレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態を特定する。
【0106】
具体的に、例えば、「レプリカ番号」が「PR4」である焼鈍部11に対応するレプリカ状態の現在の温度が、「レプリカ番号」が「PR5」である焼鈍部11に対応するレプリカ状態の現在の温度よりも低い場合、温度調整部12eは、レプリカPR5に対応するレプリカ状態の特定を行う。
【0107】
続いて、温度調整部12eは、S62で特定したレプリカ状態に対応する温度が所定温度を超えるように、対応情報(図示しない)を更新する(S63)。対応情報は、例えば、各焼鈍部11のレプリカ状態に対応するレプリカ番号と、各焼鈍部11に与える温度とを対応付けた情報である。そのため、温度調整部12eは、S63において、対応情報に含まれる情報のうち、S62で特定したレプリカ状態に対応する温度を示す情報の更新を行う。
【0108】
さらに、温度調整部12eは、S63で更新した対応情報を対応情報保持部(図示しない)に保持させる(S64)。
【0109】
なお、対応情報保持部は、履歴情報保持部12a等と同様に、レジスタ等の記憶回路であってよい。また、対応情報保持部は、RAM等の揮発性メモリ、または、フラッシュメモリやEEPROM等の不揮発性メモリであってもよい。
【0110】
その後、温度調整部12eは、S61において全ての組を特定したか否かを判定する(S65)。
【0111】
その結果、S61において全ての組を特定していないと判定した場合(S65のNO)、温度調整部12eは、S61以降を行う。
【0112】
一方、S61において全ての組を特定したと判定した場合(S65のYES)、温度調整部12eは、S24を終了する。
【0113】
なお、
図6等で説明したS22からS24は、レプリカ交換タイミング以外のタイミングにおいて随時行われるものであってもよい。
【0114】
図6に戻り、最適化装置10の交換演算部12f及び出力制御部12gは、S24で変更された温度と、その温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、各焼鈍部11に焼き鈍し動作を行わせる(S25)。以下、S25の詳細について説明を行う。
【0115】
[S25の詳細]
図11は、S25の詳細を説明するフローチャート図である。
【0116】
交換演算部12fは、
図11に示すように、温度を交換する候補である2つの焼鈍部11を特定する(S71)。
【0117】
具体的に、交換演算部12fは、対応情報保持部が保持する対応情報を参照し、例えば、隣接温度に対応する2つの焼鈍部11を特定する。
【0118】
そして、交換演算部12fは、S71で特定した2つの焼鈍部11のそれぞれに対応する温度とエネルギーとから、S71で特定した2つの焼鈍部11のレプリカ状態に対応する温度(2つの焼鈍部11に与える温度)の交換確率pij(上記の式(3)で説明した交換確率pij)を算出する(S72)。
【0119】
続いて、交換演算部12fは、S72で算出した交換確率pijと乱数との比較結果に基づいて、S71で特定した2つの焼鈍部11のレプリカ状態に対応する温度の交換の実行要否を決定する(S73)。
【0120】
その結果、S71で特定した2つの焼鈍部11のレプリカ状態に対応する温度の交換を実行する場合(S74のYES)、交換演算部12fは、対応情報保持部が保持する対応情報のうち、S71で特定した2つの焼鈍部11の温度を示す情報を交換する(S75)。
【0121】
一方、S71で特定した2つの焼鈍部11のレプリカ状態に対応する温度の交換を実行しない場合(S74のNO)、交換演算部12fは、S75を行わない。
【0122】
なお、交換演算部12fは、S71において、対応情報保持部が保持する対応情報に情報が含まれる複数の焼鈍部11から、2つの焼鈍部11の組を複数特定するものであってもよい。そして、交換演算部12fは、特定した2つの焼鈍部11の組ごとに、S72からS75をそれぞれ行うものであってもよい。
【0123】
その後、交換制御部12の出力制御部12gは、各焼鈍部11のレプリカ状態に対応する温度を各焼鈍部11に与える(S76)。
【0124】
具体的に、出力制御部12gは、対応情報保持部が保持する対応情報を参照し、各焼鈍部11のレプリカ状態に対応する温度を各焼鈍部11に送信する。そして、交換演算部12f及び出力制御部12gは、S25を終了する。
【0125】
すなわち、本実施の形態における最適化装置10は、各焼鈍部11における焼き鈍し動作において、重心が所定距離以内である低温レプリカ状態の組の存在を検知した場合、検知した組に対応する複数の焼鈍部51において、同じ局所解に対応する領域の探索が行われる可能性があると判定する。そして、最適化装置10は、この場合、検知した焼鈍部11の組のうちの一方の温度をより高い温度に変更する。
【0126】
これにより、最適化装置10は、複数の焼鈍部51において同じ局所解に対応する領域の探索が行われることを防止することが可能になる。そのため、最適化装置10は、最適解の探索を効率的に行うことが可能になる。
【0127】
なお、第1の実施の形態における場合、温度を変更するレプリカ状態は、最適化装置10の外部に設けられた他の情報処理装置(図示しない)において特定されるものであってもよい。この場合、他の情報処理装置は、例えば、必要なプログラム(図示しない)とCPU(図示しない)とを協働させることによって、温度を変更するレプリカ状態を特定するための処理を実行する。そして、温度調整部12eは、他の情報処理装置から指示を受信したことに応じて、受信した指示に対応するレプリカ状態の温度の変更を行うものであってよい。
【0128】
また、第1の実施の形態における場合、温度を変更するレプリカ状態は、最適化装置10の内部に設けられたCPU(図示しない)と必要なプログラム(図示しない)とが協働して処理を実行することによって特定されるものであってもよい。
【0129】
[第2の実施の形態]
次に、第2の実施の形態における最適化装置10について説明を行う。なお、以下、第2の実施の形態における最適化装置10の動作のうち、第1の実施の形態における最適化装置10の動作と異なる点について説明を行う。
【0130】
[第2の実施の形態におけるS24]
初めに、第2の実施の形態におけるS24について説明を行う。
図12は、第2の実施の形態におけるS24を説明するフローチャート図である。
【0131】
温度調整部12eは、
図12に示すように、第1の実施の形態における場合と同様に、調整情報保持部が温度の調整対象であることを示す調整情報134を保持するレプリカ状態の組のうちの1つを特定する(S81)。
【0132】
そして、温度調整部12eは、S81で特定した組に対応するレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態を特定する(S82)。
【0133】
その後、温度調整部12eは、S81において全ての組を特定したか否かを判定する(S83)。
【0134】
その結果、S81において全ての組を特定していないと判定した場合(S83のNO)、温度調整部12eは、S81以降を行う。
【0135】
一方、S81において全ての組を特定したと判定した場合(S83のYES)、温度調整部12eは、S24を終了する。
【0136】
[第2の実施の形態におけるS25]
次に、第2の実施の形態におけるS25について説明を行う。
図13は、第2の実施の形態におけるS25を説明するフローチャート図である。
【0137】
交換演算部12fは、S82で特定したレプリカ状態のうちの1つを特定する(S91)。
【0138】
そして、交換演算部12fは、例えば、対応情報保持部が保持する対応情報のうち、S91で特定したレプリカ状態の温度を示す情報と、最も高い温度に対応する焼鈍部11のレプリカ状態に対応する温度を示す情報とを交換する(S92)。
【0139】
すなわち、第2の実施の形態における交換制御部12は、S91で特定したレプリカ状態に対応する温度を、より温度が高い他のレプリカ状態に対応する温度と交換することによって、複数の焼鈍部51において同じ局所解に対応する領域の探索が行われることを防止する。
【0140】
その後、交換演算部12fは、S91において全てのレプリカ状態を特定したか否かを判定する(S93)。
【0141】
その結果、S91において全てのレプリカ状態を特定していないと判定した場合(S93のNO)、交換演算部12fは、S91以降を行う。
【0142】
一方、S91において全てのレプリカ状態を特定したと判定した場合(S93のYES)、出力制御部12gは、各焼鈍部11のレプリカ状態に対応する温度を各焼鈍部11に与える(S76)。
【0143】
具体的に、出力制御部12gは、対応情報保持部が保持する対応情報を参照し、各焼鈍部11のレプリカ状態に対応する温度を各焼鈍部11に送信する。そして、交換演算部12f及び出力制御部12gは、S25を終了する。
【0144】
これにより、最適化装置10は、第1の実施の形態における場合と異なる方法によって、各焼鈍部11における最適解の探索を促進させることが可能になる。
【0145】
[最適化装置の動作の具体例]
次に、最適化装置10の動作の具体例について説明を行う。
図19は、最適化装置10の動作の具体例について説明する図である。具体的に、
図19(A)は、第1の実施の形態における最適化装置10の動作の具体例について説明するグラフであって、3つの焼鈍部11のそれぞれにおける焼き鈍し動作に伴うエネルギーEの変化を示すグラフである。また、
図19(B)は、第1の実施の形態における最適化装置10の動作の具体例について説明するグラフであって、3つの焼鈍部11のそれぞれにおける焼き鈍し動作に伴う温度の変化を示すグラフである。なお、
図19に示す例において、実線に対応するレプリカ(焼鈍部11)をレプリカAと呼び、一点鎖線に対応するレプリカをレプリカBと呼び、点線に対応するレプリカをレプリカCとも呼ぶ。
【0146】
具体的に、
図19(A)に示すグラフは、時刻t1において、レプリカAとレプリカBとのエネルギーの大小関係が入れ替わり、時刻t3において、レプリカBとレプリカAとのエネルギーの大小関係が入れ替わったことを示している。また、
図19(A)に示すグラフは、時刻t4において、レプリカAとレプリカBとのエネルギーの大小関係が入れ替わり、時刻t5において、レプリカAとレプリカCとのエネルギーの大小関係が入れ替わったことを示している。
【0147】
そして、
図19(B)に示すグラフは、時刻t1におけるエネルギーの大小関係の入れ替わりに応じて、レプリカAとレプリカBとの温度の交換が行われたことを示している(S74のYES、S75)。また、
図19(B)に示すグラフは、時刻t5におけるエネルギーの大小関係の入れ替わりに応じて、レプリカAとレプリカCとの温度の交換が行われたことを示している(S74のYES、S75)。一方、
図19(B)に示すグラフは、時刻t3及び時刻t4においては、エネルギーの大小関係の入れ替わりが発生したにも関わらず、温度の交換が行われなかったことを示している(S74のNO)。
【0148】
さらに、
図19(A)及び(B)に示すグラフは、時刻t2において、レプリカAの重心とレプリカCの重心とが所定距離以内であると判定されたことから、レプリカAの温度の上昇が行われたことを示している(S64)。
【0149】
これにより、最適化装置10は、複数のレプリカが同じ局所解に対応する領域の探索を行っている状況を早期に解消させることが可能になる。そのため、最適化装置10は、各焼鈍部11における最適解の探索を促進させることが可能になる。
【0150】
以上の実施の形態をまとめると、以下の付記のとおりである。
【0151】
(付記1)
焼き鈍し動作を実行する演算部と、
前記演算部が、過去に実行したN回分(Nは正の整数)の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持するレプリカ履歴情報保持部と、
前記レプリカ履歴情報保持部が保持するN回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記N回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持する重心計算部と、
前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定する重心距離判定部と、
重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更する温度調整部と、
変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせるレプリカ交換制御部と、を有する、
ことを特徴とする最適化装置。
【0152】
(付記2)
付記1において、
前記温度調整部は、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のうち、最も低い温度以外の温度に対応するレプリカ状態の温度を変更する、
ことを特徴とする最適化装置。
【0153】
(付記3)
付記1において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記重心保持部が重心を保持する複数のレプリカ状態のうち、前記レプリカ状態の組に含まれるレプリカ状態以外のレプリカ状態の温度と交換する、
ことを特徴とする最適化装置。
【0154】
(付記4)
付記3において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記重心保持部が重心を保持する複数のレプリカ状態のうち、最も高い温度に対応するレプリカ状態の温度と交換する、
ことを特徴とする最適化装置。
【0155】
(付記5)
付記1において、
前記温度調整部は、前記レプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記レプリカ状態の組に含まれるレプリカ状態の重心が前記所定距離を超える温度に変更する、
ことを特徴とする最適化装置。
【0156】
(付記6)
付記1において、
前記重心計算部は、
前記N回分の各レプリカ状態に対応する複数のパラメータごとに、各パラメータに対応する値の平均値を算出し、
前記N回分の各レプリカ状態について、算出した前記平均値のそれぞれを各次元に対応する座標とした場合における多次元空間上の点を、前記N回分の各レプリカ状態に対応する複数のパラメータの重心として計算する、
ことを特徴とする最適化装置。
【0157】
(付記7)
付記6において、
前記重心距離判定部は、
前記複数のレプリカ状態の組のそれぞれについて、前記多次元空間上における前記複数のパラメータの重心間の距離を計算し、
前記複数のレプリカ状態の組のそれぞれについて、計算した前記距離が前記所定距離以内であるか否かを判定する、
ことを特徴とする最適化装置。
【0158】
(付記8)
演算部が、焼き鈍し動作を実行し、
レプリカ履歴情報保持部が、前記演算部によって過去に実行されたN回分(Nは正の整数)の焼き鈍し動作に対応するレプリカ状態を識別するレプリカ状態識別情報に対応する温度と、前記レプリカ状態に対応する複数のパラメータと、前記レプリカ状態に対応するエネルギーと、をそれぞれ保持し、
重心計算部が、前記レプリカ履歴情報保持部が保持するN回分の各レプリカ状態に対応する複数のパラメータの重心をそれぞれ計算し、前記N回分の各レプリカ状態に対応する複数のパラメータの重心を重心保持部に保持させ、
重心距離判定部が、前記重心保持部が重心を保持する複数のレプリカ状態のうち、所定温度以下の温度に対応する複数のレプリカ状態の組のそれぞれについて、重心が所定距離以内に有るか否かを判定し、
温度調整部が、重心が前記所定距離以内に有ると判定されたレプリカ状態の組に含まれるレプリカ状態のいずれか一方に対応する温度を、前記所定温度を超える温度に変更し、
レプリカ交換部が、変更された前記温度と、該温度に対応するレプリカ状態に対応する複数のパラメータとを用いて、前記演算部に前記焼き鈍し動作を行わせる、
ことを特徴とする最適化装置の制御方法。
【符号の説明】
【0159】
10:最適化装置 11:焼鈍部
12:交換制御部 12a:履歴情報保持部
12b:重心計算部 12c:重心保持部
12d:重心距離判定部 12e:温度調整部
12f:出力制御部 131:履歴情報
132:重心情報 133:低温情報
134:調整情報 E:エネルギー
β:逆温度