(57)【要約】【課題】レプリカ交換法による擬似焼鈍し動作を行う最適化装置の回路規模の増大を抑制する。【解決手段】交換制御部１２は、焼鈍部１１ａ０〜１１ａｎの各々を識別するレプリカ番号と、焼鈍部１１ａ０〜１１ａｎの各々に割り当てられている温度との対応関係を示し、レプリカ番号を温度の低い順または高い順に配列した第１対応情報１５と、上記対応関係を示し、温度をレプリカ番号の順に配列した第２対応情報１６を保持し、第１対応情報１５に基づいて、焼鈍部１１ａ０〜１１ａｎから、温度を交換する候補である２つの焼鈍部を選択し、それらのエネルギーＥと温度とに基づいた交換確率にしたがって、温度の交換を行うか否かを決定し、交換を行う場合、第１対応情報１５と第２対応情報１６とを更新し、更新した第２対応情報１６ａに基づいて、温度を表す温度情報（逆温度β）を対応する焼鈍部１１ａ０〜１１ａｎの各々に供給する。【選択図】図１
2019194765.tif 000002
【特許請求の範囲】
【請求項１】
エネルギーを表す評価関数に含まれる複数の状態変数の何れかの値が変化する状態遷移が起こる場合、前記複数の状態変数の各々の値の変化に伴う前記エネルギーの変化と温度に基づいて、前記複数の状態変数の何れの値の変化を受け入れるかを確率的に決定する複数の焼鈍部と、
前記複数の焼鈍部の各々を識別する第１識別情報と、前記複数の焼鈍部の各々に割り当てられている前記温度との対応関係を示し、前記第１識別情報を前記温度の低い順または高い順に配列した第１対応情報と、前記第１識別情報と前記温度との対応関係を示し、前記温度を前記第１識別情報の順に配列した第２対応情報とを保持し、前記第１対応情報に基づいて、前記複数の焼鈍部から、前記温度を交換する候補である第１の焼鈍部と第２の焼鈍部とを選択し、前記第１の焼鈍部と前記第２の焼鈍部の各々の前記エネルギーと前記温度とに基づいた交換確率にしたがって、前記温度の交換を行うか否かを決定し、交換を行う場合には、前記第１対応情報と前記第２対応情報とを更新し、更新した前記第２対応情報に基づいて、前記温度を表す温度情報を対応する前記複数の焼鈍部の各々に供給する交換制御部と、
を有する最適化装置。
【請求項２】
前記第１対応情報と前記第２対応情報における前記温度は、前記温度を識別する第２識別情報で表され、
前記交換制御部は、前記温度と前記第２識別情報との対応関係を示す第３対応情報を保持し、前記第３対応情報に基づいて、前記第１の焼鈍部と前記第２の焼鈍部の各々を識別する前記第１識別情報に対応付けられた前記第２識別情報を、前記温度に変換する、請求項１に記載の最適化装置。
【請求項３】
前記交換制御部は、
前記第１対応情報を保持する第１対応情報保持部と、
前記第２対応情報を保持する第２対応情報保持部と、
前記第１対応情報保持部に保持された前記第１対応情報に基づいて、前記第１の焼鈍部と前記第２の焼鈍部とを選択し、前記交換確率にしたがって、前記温度の交換を行うか否かを決定し、交換を行う場合には、前記第１対応情報と前記第２対応情報とを更新する交換演算回路と、
更新した前記第２対応情報に基づいて、前記温度情報を対応する前記複数の焼鈍部の各々に供給する出力制御回路と、
を有する請求項１または２に記載の最適化装置。
【請求項４】
前記第１の焼鈍部と前記第２の焼鈍部は、前記温度が隣接する２つの焼鈍部である、請求項１乃至３の何れか一項に記載の最適化装置。
【請求項５】
複数の焼鈍部の各々が、エネルギーを表す評価関数に含まれる複数の状態変数の何れかの値が変化する状態遷移が起こる場合、前記複数の状態変数の各々の値の変化に伴う前記エネルギーの変化と温度に基づいて、前記複数の状態変数の何れの値の変化を受け入れるかを確率的に決定し、
交換制御部が、前記複数の焼鈍部の各々を識別する第１識別情報と、前記複数の焼鈍部の各々に割り当てられている前記温度との対応関係を示し、前記第１識別情報を前記温度の低い順または高い順に配列した第１対応情報と、前記第１識別情報と前記温度との対応関係を示し、前記温度を前記第１識別情報の順に配列した第２対応情報とを保持し、前記第１対応情報に基づいて、前記複数の焼鈍部から、前記温度を交換する候補である第１の焼鈍部と第２の焼鈍部とを選択し、前記第１の焼鈍部と前記第２の焼鈍部の各々の前記エネルギーと前記温度とに基づいた交換確率にしたがって、前記温度の交換を行うか否かを決定し、交換を行う場合には、前記第１対応情報と前記第２対応情報とを更新し、更新した前記第２対応情報に基づいて、前記温度を表す温度情報を対応する前記複数の焼鈍部の各々に供給する、
最適化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適化装置及び最適化装置の制御方法に関する。
【背景技術】
【０００２】
現在の社会ではあらゆる分野で情報処理が行われている。これらの情報処理はコンピュータなどの演算装置で行われており、様々なデータを演算、加工し、意味のある結果を得ることにより、予測、決定、制御などが行われる。これらの情報処理の１つとして最適化というものがあり重要な分野となっている。例えばあることを行うのに必要な資源やコストを最小化したり、その効果を最大化する解を求める問題などであり、これらが非常に重要であるのは明らかであろう。
【０００３】
最適化問題の中でも離散最適化問題、組合せ最適化問題などと呼ばれている問題の多くは、変数が連続値ではなく離散的な値を取るため解くのが非常に難しいことが知られている。離散最適化問題を解くのを困難にしている最大の原因は、最適解ではないが局所的近傍のなかで最小値をとる局所解と呼ばれる状態が非常に多数存在することである。
【０００４】
離散最適化問題を解く効率の良い一般解法は存在しないため、問題に固有な性質を利用した近似解法や、問題の性質にあまり頼らないメタヒューリステックと呼ばれる方法を用いる必要がある。
【０００５】
以下に説明する内容は、後者のうちマルコフ連鎖モンテカルロ法を用いた解法に関するもので、特に交換モンテカルロ法、またはレプリカ交換法と呼ばれる広い意味での疑似焼き鈍し法に関するものである。
【０００６】
疑似焼き鈍し法は、乱数を用いて確率的に状態（変数ベクトルの値）を変化させることで最適解を求める方法である。以下では最適化したい評価関数の値を最小化する問題を例に説明し、評価関数の値をエネルギーと呼ぶことにする。最大化の場合は、評価関数の符号を変えればよい。
【０００７】
疑似焼き鈍し法においては、状態遷移の受け入れ（許容）確率を、その遷移に伴うエネルギー変化と温度を用いて次のように決めれば、時刻（反復回数）無限大の極限で状態が最適解に到達することが証明されている。
【０００８】
【数１】
2019194765.tif 000003
【０００９】
【数２】
2019194765.tif 000004
【００１０】
ここでＴは温度を表すパラメータであり、その初期値は問題に応じて十分大きくとり、十分ゆっくり下げていくことが望ましい。
上記のように疑似焼き鈍し法では、反復回数を無限に取れば最適解が得られるが、現実には有限の反復回数で解を得る必要があるため、最適解を確実に求めることはできない。また上記のように温度の下がり方が非常にゆっくりであるため、有限時間では十分に温度が下がらない。したがって実際の疑似焼き鈍し法では理論的に収束することが保証される温度変化ではなくより速く温度を下げることが多い。
【００１１】
実際の擬似焼き鈍し法では、初期状態から始めて、温度を下げながら上記反復が繰り返され、一定の反復回数に達したり、エネルギーが一定の値を下回るなどの終了判定条件が満たされたとき、動作が終了する。出力する答えは終了時の状態である。ただし、実際には有限の反復回数では温度が０にならないため、終了時においても状態の占有確率はボルツマン分布などで表される分布をもっており、必ずしも最適値や良い解になっているとは限らない。したがって、反復の途中でこれまでに得られたエネルギーが最低の状態を保持し、最後にそれを出力するのが現実的な解法となる。
【００１２】
上記の説明からある程度想像できると思われるが、疑似焼き鈍し法は汎用的で非常に魅力的ではあるが、温度をゆっくり下げる必要があるため計算時間が比較的長くなってしまうという問題がある。さらにその温度の下げ方を問題に合わせて適切に調節することが難しいという問題もある。温度の下げ方が遅すぎると有限時間ではあまり温度が下がらないため、最終的な熱分布のエネルギー範囲が広くなることから良い解の占有確率が上がらない。逆に速く下げすぎると、局所解を脱出する前に温度が下がってしまい、悪い解に捕まったままになってしまうため、良い解が得られる確率が下がってしまう。
【００１３】
レプリカ交換法は複数の温度を用いたモンテカルロ探索（以下確率的探索という）を同時に行い、ある反復回数ごとに、それぞれ状態のエネルギーを比較し、適切な確率で２つの温度に対する状態を交換するという操作を行う方法である。
【００１４】
図９は、通常のレプリカ交換法を用いた最適化装置の構成例を示す図である。最適化装置５０は、通常の疑似焼き鈍し法を用いた最適化装置と異なり、複数のレプリカ（図９では焼鈍部５１ａ０，５１ａ１，…，５１ａｉ，…，５１ａｎ）と、交換制御部５２とを有する。交換制御部５２は、焼鈍部５１ａ０〜５１ａｎに温度情報（以下では逆温度βｉ（Ｔの逆数）（０≦ｉ≦ｎ）とする）を与える。
【００１５】
図９には、焼鈍部５１ａｉの例が示されている。他の焼鈍部も同様の構成である。焼鈍部５１ａｉは、状態保持部６０、評価関数計算部６１、遷移制御部６２を有する。
状態保持部６０は、評価関数に含まれる複数の状態変数の値を保持する。また、状態保持部６０は、状態遷移の可否を示すフラグｆと、そのフラグｆが示す状態変数の番号（インデックス）Ｎに基づいて、複数の状態変数の値（上記変数ベクトルの値）である状態ｓｉを更新する。
【００１６】
評価関数計算部６１は、状態変数の変化（状態遷移）に伴うエネルギー変化を計算する。例えば、評価関数が２つの状態変数間の結合で表されるイジングモデルで表され、しかも一度に１つの状態変数の遷移のみを許す場合、評価関数計算部６１は、各状態変数の値と、状態変数間の結合の強さを示す結合係数と、番号Ｎと、フラグｆとに基づいて、複数の状態変数のそれぞれの変化（状態遷移）に伴うエネルギー変化を計算する。エネルギー変化ΔＥｉ，ｊは、ｊ番目の状態変数の変化に伴うエネルギー変化を示す。なお、計算したい最適化問題に応じた結合係数の値は、予めメモリまたはレジスタなどに記憶されている。評価関数がイジングモデルでない場合、及び一度に複数の状態変数の遷移を許す場合には、状態遷移の番号と変化する状態変数の番号は必ずしも一致しないが、状態遷移の番号に対するエネルギー変化を適切に計算できればよい。評価関数計算部６１は、例えば、積和演算回路などの論理回路を用いて実現できる。
【００１７】
遷移制御部６２は、通常の擬似焼き鈍し法と同様に、エネルギー変化ΔＥｉ，ｊと交換制御部５２により割り当てられた逆温度βｉを用いて、ｊ番目の状態変数の状態遷移の受け入れ確率を以下の（式２）により決定することで、確率的探索を行う。
【００１８】
【数３】
2019194765.tif 000005
【００１９】
なお、（式２）において、関数ｆは（式１−１）と同じものであり、例えば（式１−２）のメトロポリス法のものが用いられる。遷移制御部６２は、上記の状態遷移の受け入れ確率に基づいて、状態遷移の可否を示すフラグｆと、そのフラグｆが示す状態遷移の番号を出力する。また、遷移制御部６２は、エネルギー変化ΔＥｉ，ｊに基づいて、エネルギーＥｉを更新して出力する。
【００２０】
交換制御部５２は、一定の反復回数ごとに各焼鈍部におけるエネルギーＥを観測し、焼鈍部５１ａ０〜５１ａｎのうちの２つにおけるエネルギーＥと逆温度βを用い、以下の（式３）で表される交換確率に基づいて２つの焼鈍部における各状態変数の値を交換する。状態変数の値の代りに、２つの焼鈍部の各々に供給される逆温度を交換してもよい。
【００２１】
【数４】
2019194765.tif 000006
【００２２】
なお、（式３）では、βｉを焼鈍部５１ａｉに与えられた逆温度、βｊを図示しないｊ番目の焼鈍部に与えられた逆温度、Ｅｉを焼鈍部５１ａｉにおけるエネルギー、Ｅｊをｊ番目の焼鈍部におけるエネルギーとしている。また、（式３）において、関数ｆは（式１−１）と同じものであり、例えば（式１−２）のメトロポリス法のものが用いられる。
【００２３】
このような交換を行ってもそれぞれの温度の状態の確率分布はその温度に対するボルツマン分布に収束する。そして、この分布に収束するのに必要とされる緩和時間は、交換を行わない時より著しく短縮することができる。
【００２４】
なお、交換が行われる２つの焼鈍部は、交換確率が小さくなりすぎないように、供給される温度が近いもの（例えば、隣接温度が供給されるもの）が選択される。
最適化装置５０において、多数回の反復処理を行う焼鈍部５１ａ０〜５１ａｎを専用の回路で実現し、交換制御部５２の機能をソフトウェアで実現する場合、ポインタ渡しにより、温度が近い２つの焼鈍部の各状態変数の値（または温度情報）を交換すればよい。この場合、交換ごとに温度の低い順または高い順に焼鈍部５１ａ０〜５１ａｎを識別する情報を並べるソート処理などを行わなくてよい。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開平６−３０９４０８号公報
【特許文献２】特開平９−１７９８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００２６】
ところで、複数の焼鈍部と交換制御部との間のデータの移動を高速化するため、交換制御部をソフトウェアで実現するよりも、専用の回路で実現したほうがよい。交換制御部を専用の回路にて実現する場合、ポインタは用いられずに、実際のデータ自体が交換されることになる。このため、各状態変数の値よりもデータ量が小さい温度情報を交換する方がよい。
【００２７】
ただ、各焼鈍部の識別情報に温度を対応付けた対応表を用いて、専用の回路にてレプリカ交換法を実現する場合、温度が近い焼鈍部を選択するために、上記のようなソート処理を行うことになり、そのための回路によって最適化装置の回路規模が増大してしまう。
【００２８】
１つの側面では、本発明は、レプリカ交換法による擬似焼鈍し動作を行う最適化装置の回路規模の増大を抑制することを目的とする。
【課題を解決するための手段】
【００２９】
１つの実施態様では、エネルギーを表す評価関数に含まれる複数の状態変数の何れかの値が変化する状態遷移が起こる場合、前記複数の状態変数の各々の値の変化に伴う前記エネルギーの変化と温度に基づいて、前記複数の状態変数の何れの値の変化を受け入れるかを確率的に決定する複数の焼鈍部と、前記複数の焼鈍部の各々を識別する第１識別情報と、前記複数の焼鈍部の各々に割り当てられている前記温度との対応関係を示し、前記第１識別情報を前記温度の低い順または高い順に配列した第１対応情報と、前記第１識別情報と前記温度との対応関係を示し、前記温度を前記第１識別情報の順に配列した第２対応情報とを保持し、前記第１対応情報に基づいて、前記複数の焼鈍部から、前記温度を交換する候補である第１の焼鈍部と第２の焼鈍部とを選択し、前記第１の焼鈍部と前記第２の焼鈍部の各々の前記エネルギーと前記温度とに基づいた交換確率にしたがって、前記温度の交換を行うか否かを決定し、交換を行う場合には、前記第１対応情報と前記第２対応情報とを更新し、更新した前記第２対応情報に基づいて、前記温度を表す温度情報を対応する前記複数の焼鈍部の各々に供給する交換制御部と、を有する最適化装置が提供される。
【００３０】
また、１つの実施態様では、最適化装置の制御方法が提供される。
【発明の効果】
【００３１】
１つの側面では、レプリカ交換法による擬似焼鈍し動作を行う最適化装置の回路規模の増大を抑制できる。
【図面の簡単な説明】
【００３２】
【図１】第１の実施の形態の最適化装置の一例を示す図である。
【図２】第２の実施の形態の最適化装置の一例を示す図である。
【図３】各対応情報の一例を示す図である。
【図４】第２の実施の形態の最適化装置の一例の動作の流れを示すフローチャートである。
【図５】第１対応情報と第２対応情報の更新例を示す図である。
【図６】図９に示した交換制御部の機能をソフトウェアで実現する場合の一例の処理の流れを示すフローチャートである。
【図７】図９に示した交換制御部の機能を専用の回路で実現した比較例の最適化装置を示す図である。
【図８】図７に示した比較例の最適化装置の一例の動作の流れを示すフローチャートである。
【図９】通常のレプリカ交換法を用いた最適化装置の構成例を示す図である。
【発明を実施するための形態】
【００３３】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の最適化装置の一例を示す図である。
【００３４】
第１の実施の形態の最適化装置１０は、焼鈍部１１ａ０，１１ａ１，…，１１ａｉ，…，１１ａｎと、交換制御部１２を有する。
焼鈍部１１ａ０〜１１ａｎは、図９に示した焼鈍部５１ａ０〜５１ａｎと同じである。すなわち、焼鈍部１１ａ０〜１１ａｎの各々は、複数の状態変数の何れかの値が変化する状態遷移が起こる場合、複数の状態変数の各々の値の変化に伴うエネルギーＥの変化を算出する。そして、焼鈍部１１ａ０〜１１ａｎの各々は、エネルギーＥの変化と温度に基づいて、複数の状態変数の何れの値の変化を受け入れるかを確率的に決定することで、確率的探索を行う。なお、焼鈍部１１ａ０〜１１ａｎの各々には、互いに異なる温度が割り当てられる。
【００３５】
交換制御部１２は、第１対応情報保持部１２ａ、第２対応情報保持部１２ｂ、交換演算回路１２ｃ、出力制御回路１２ｄを有する。
第１対応情報保持部１２ａは、第１対応情報１５を保持する。第１対応情報１５は、焼鈍部１１ａ０〜１１ａｎの各々を識別する識別情報（以下レプリカ番号という）と、焼鈍部１１ａ０〜１１ａｎの各々に割り当てられている温度との対応関係を示し、レプリカ番号を温度の低い順または高い順に配列したものである。
【００３６】
第２対応情報保持部１２ｂは、第２対応情報１６を保持する。第２対応情報１６は、上記対応関係を示し、温度をレプリカ番号の順に配列したものである。
図１の例では、温度Ｔ０〜Ｔｎは、温度Ｔ０，Ｔ１，Ｔ２，Ｔ３，…，Ｔｎの順に高くなっていく。したがって、図１の例では、第１対応情報１５は、レプリカ番号を温度の低い順に配列したものである。
【００３７】
なお、温度は、温度そのものでなく、温度を識別する情報で表されていてもよい。温度を識別する情報を用いる例については第２の実施の形態において説明する。
第１対応情報保持部１２ａ及び第２対応情報保持部１２ｂは、例えば、レジスタなどの記憶回路である。また、第１対応情報保持部１２ａ及び第２対応情報保持部１２ｂは、ＲＡＭ（Random Access Memory）などの揮発性メモリ、フラッシュメモリやＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）などの不揮発性メモリであってもよい。
【００３８】
交換演算回路１２ｃは、第１対応情報保持部１２ａに保持されている第１対応情報１５に基づいて、焼鈍部１１ａ０〜１１ａｎから、温度を交換する候補である第１の焼鈍部と第２の焼鈍部とを選択する。そして、交換演算回路１２ｃは、第１の焼鈍部と第２の焼鈍部の各々のエネルギーＥと温度に基づいた交換確率にしたがって、温度の交換を行うか否かを決定し、交換を行う場合には、第１対応情報１５と第２対応情報１６とを更新する。
【００３９】
例えば、交換演算回路１２ｃは、第１対応情報１５から温度の低い順に配列されたレプリカ番号を上から２つずつ選択していき、その２つのレプリカ番号で識別される２つの焼鈍部の間での温度の交換の可否を決定する。
【００４０】
第１対応情報１５は、温度の低い順（高い順でもよい）にレプリカ番号を配列しているため、交換演算回路１２ｃが、例えば、上から２つずつレプリカ番号を選択することで、隣接温度が割り当てられている２つの焼鈍部を選択できる。なお、交換演算回路１２ｃは、上から１つおき、２つおきなどに、２つのレプリカ番号を選択しても近い温度の２つの焼鈍部を選択できる。
【００４１】
交換演算回路１２ｃは、例えば、以下に示すような回路によって実現される。
交換演算回路１２ｃは、第１対応情報１５からレプリカ番号を上から２つずつ選択していく回路と、焼鈍部１１ａ０〜１１ａｎから供給されるエネルギーＥのうち、選択した２つのレプリカ番号に対応したものを選択する回路を有する。また交換演算回路１２ｃは、第１対応情報１５から選択した２つのレプリカ番号に対応付けられた温度と、選択した２つのエネルギーＥとに基づいて、（式３）で示される交換確率ｐｉｊを演算する回路（ｅｘｐ関数の計算回路などを含む）を有する。さらに、交換演算回路１２ｃは乱数を生成する回路と、その乱数と交換確率ｐｉｊとの比較結果に基づいて交換可否を決定する回路、交換を行う場合に、第１対応情報１５と第２対応情報１６とを更新する回路などを用いて実現できる。
【００４２】
出力制御回路１２ｄは、更新した第２対応情報１６ａに基づいて、温度を表す温度情報（図１の例では逆温度β）を対応する焼鈍部１１ａ０〜１１ａｎの各々に供給する。出力制御回路１２ｄは、例えば、更新した第２対応情報１６ａの温度を示す温度情報を上から順番に、または同時に、対応する焼鈍部に供給する。第２対応情報１６は、レプリカ番号の順に温度が配列されているため、焼鈍部１１ａ０〜１１ａｎに供給する温度情報を、出力制御回路１２ｄが容易に選択できる。
【００４３】
なお、図１の例では、出力制御回路１２ｄは、温度情報として、逆温度βを焼鈍部１１ａ０〜１１ａｎに供給するため、温度を逆温度βに変換する回路を有する。ただし、出力制御回路１２ｄは、温度自体を焼鈍部１１ａ１〜１１ａｎに供給してもよい。その場合、焼鈍部１１ａ１〜１１ａｎは、変換テーブルなどを用いて温度を逆温度βに変換して用いてもよい。
【００４４】
以下、図１を用いて、第１の実施の形態の最適化装置１０の動作の一例を説明する。
交換演算回路１２ｃは、焼鈍部１１ａ０〜１１ａｎの各々のエネルギーＥを受けると、第１対応情報１５からレプリカ番号を上から２つ選択する。例えば、図１に示したような第１対応情報１５では、まず、レプリカ番号＝ｉ，０が選択される。
【００４５】
そして、交換演算回路１２ｃは、焼鈍部１１ａ０〜１１ａｎの各々のエネルギーＥのうち、選択した２つのレプリカ番号に対応したものを選択する。さらに、交換演算回路１２ｃは、第１対応情報１５から選択した２つのレプリカ番号に対応付けられた温度（レプリカ番号＝ｉ，０が選択された場合は温度Ｔ０，Ｔ１）と、選択した２つのエネルギーとに基づいて、（式３）で示される交換確率ｐｉｊを演算する。レプリカ番号＝ｉ，０の焼鈍部１１ａｉ，１１ａ０が交換の候補となっている場合、（式３）において、βｉ＝１／Ｔ０、βｊ＝１／Ｔ１、Ｅｉは、焼鈍部１１ａｉのエネルギー、Ｅｊは、焼鈍部１１ａ０のエネルギーである。
【００４６】
また、交換演算回路１２ｃは乱数を生成し、その乱数と交換確率ｐｉｊとの比較結果に基づいて交換可否を決定し、交換を行う場合に、第１対応情報１５と第２対応情報１６とを更新する。レプリカ番号＝ｉ，０の焼鈍部１１ａｉ，１１ａ０において、温度情報の交換が行われる場合、図１に示すように、第１対応情報１５と第２対応情報１６が更新され、第１対応情報１５ａと第２対応情報１６ａが得られる。
【００４７】
例えば、図１に示したような第１対応情報１５では、続いて、温度Ｔ１に対応付けられたレプリカ番号と、温度Ｔ２に対応付けられたレプリカ番号が選択され、同様の処理が繰り返される。その後も同様に、２つずつレプリカ番号が選択されていき、同様の処理が繰り返される。そして、第１対応情報１５の最後の温度Ｔｎに対応付けられたレプリカ番号が選択された処理が行われた場合、出力制御回路１２ｄは、更新後の第２対応情報に基づいて、温度情報を対応する焼鈍部１１ａ０〜１１ａｎの各々に供給する。
【００４８】
焼鈍部１１ａ０〜１１ａｎの各々は、供給された温度情報を用いて、再び確率的探索を行い、所定の反復回数後に、上記のような交換制御部１２の処理が行われる。上記のような交換制御部１２の処理が、例えば、所定回数繰り返された後、最適化装置１０の動作が終了する。なお、焼鈍部１１ａ０〜１１ａｎの各々は、所定の反復回数の確率的探索を行うたびに計算されるエネルギーの最低値とその最低値のときの各状態変数の値を保持している。上記のような交換制御部１２の処理が、所定回数繰り返された場合、焼鈍部１１ａ０〜１１ａｎの各々は、その時点での、エネルギーの最低値とその最低値のときの各状態変数の値を、例えば、図示しない表示装置またはコンピュータなどに出力する。例えば、焼鈍部１１ａ０〜１１ａｎの各々が出力するエネルギーの最低値の中でも、一番小さい値のときの各状態変数の値が、最適化問題の解となる。
【００４９】
以上のように、第１の実施の形態の最適化装置１０では、交換制御部１２が、第１対応情報１５と第２対応情報１６を保持し、温度の交換時には、第１対応情報１５と第２対応情報１６を更新する。これにより、温度の交換ごとに温度の低い順または高い順にレプリカ番号をソートするような回路が不要になり、最適化装置１０の回路規模の増加を抑えられる。また、最適化装置１０では、ソート処理を行わないため、交換処理にかかる時間を短縮できる。
【００５０】
なお、交換演算回路１２ｃは、第１対応情報１５から、隣接温度が割り当てられていない２つの焼鈍部を選択してもよいが、隣接温度が割り当てられている２つの焼鈍部を選択することで、交換確率ｐｉｊが上がり計算効率が上がる。
【００５１】
（第２の実施の形態）
図２は、第２の実施の形態の最適化装置の一例を示す図である。図２において、図１に示した最適化装置１０と同じ要素については、同一符号が付されている。
【００５２】
第２の実施の形態の最適化装置２０は、交換制御部２１が、第１の実施の形態の最適化装置１０と異なっている。
交換制御部２１は、第１対応情報保持部２１ａ、第２対応情報保持部２１ｂ、第３対応情報保持部２１ｃ、交換演算回路２１ｄ、出力制御回路２１ｅを有する。
【００５３】
第１対応情報保持部２１ａと第２対応情報保持部２１ｂは、温度そのものではなく、温度を識別する温度識別情報と、レプリカ番号との対応関係を示す第１対応情報と、第２対応情報を保持する。第１対応情報は、レプリカ番号を温度の低い順または高い順に配列したものであり、第２対応情報は、温度識別情報をレプリカ番号の順に配列したものである。
【００５４】
第３対応情報保持部２１ｃは、温度とその温度を識別する温度識別情報との対応関係を示す第３対応情報を保持する。
交換演算回路２１ｄは、第１対応情報保持部２１ａに保持されている第１対応情報に基づいて、焼鈍部１１ａ０〜１１ａｎから、温度を交換する候補である第１の焼鈍部と第２の焼鈍部とを選択する。そして、交換演算回路２１ｄは、第１の焼鈍部と第２の焼鈍部の各々のエネルギーＥと温度とに基づいた交換確率にしたがって、温度の交換を行うか否かを決定し、交換を行う場合には、第１対応情報と第２対応情報とを更新する。なお、交換演算回路２１ｄは、交換確率を求める際、温度識別情報ではなく温度を用いるため、第３対応情報に基づいて、第１の焼鈍部と第２の焼鈍部の各々を識別するレプリカ番号に対応付けられた温度識別情報を温度に変換する。第１対応情報の更新の際には、交換演算回路２１ｄは、上記２つのレプリカ番号に対応付けられた温度識別情報を入れ替えればよい。
【００５５】
交換演算回路２１ｄは、例えば、以下に示すような回路によって実現される。
交換演算回路２１ｄは、第１対応情報からレプリカ番号を上から２つずつ選択していく回路、焼鈍部１１ａ０〜１１ａｎから供給されるエネルギーＥのうち、選択した２つのレプリカ番号に対応したものを選択する回路を有する。また交換演算回路２１ｄは、第１対応情報から選択した２つのレプリカ番号に対応付けられた温度識別情報を、第３対応情報に基づいて温度に変換する回路を有する。また、交換演算回路２１ｄは、温度と選択した２つのエネルギーとに基づいて、（式３）で示される交換確率ｐｉｊを演算する回路（減算回路やｅｘｐ関数の計算回路などを含む）を有する。さらに、交換演算回路２１ｄは乱数を生成する回路と、その乱数と交換確率ｐｉｊとの比較結果に基づいて交換可否を決定する回路、交換を行う場合に、第１対応情報と第２対応情報とを更新する回路などを用いて実現できる。
【００５６】
出力制御回路２１ｅは、第１の実施の形態の最適化装置１０の出力制御回路１２ｄと異なり、第３対応情報に基づいて、更新後の第２対応情報の温度識別情報を対応する温度に変換する。そして、出力制御回路２１ｅは、温度を逆温度βに変換し、逆温度βを対応する焼鈍部１１ａ０〜１１ａｎの各々に供給する。
【００５７】
図３は、各対応情報の一例を示す図である。図３の例では、温度識別情報の一例として、温度番号が用いられている。また、図３では、焼鈍部１１ａ０〜１１ａｎの数、すなわちレプリカ数が、１６である場合の例が示されている。
【００５８】
第１対応情報２５では、０から１５までのレプリカ番号が、温度番号の順に配列されている。第２対応情報２６では、０から１５までの温度番号が、レプリカ番号の順に配列されている。第３対応情報２７では、温度Ｔ０〜Ｔ１５が、温度番号の順に配列されている。温度Ｔ０〜Ｔ１５は、温度Ｔ０，Ｔ１，Ｔ２，Ｔ３，…，Ｔ１５の順に高くなっていく。したがって、図３の例では、第１対応情報２５、第２対応情報２６、第３対応情報２７において、温度番号は、値が小さいほど、低い温度であることを示している。このため、第１対応情報２５は、温度の低い順にレプリカ番号を配列したものである。
【００５９】
以下、第２の実施の形態の最適化装置２０の動作の一例を説明する。
図４は、第２の実施の形態の最適化装置の一例の動作の流れを示すフローチャートである。なお、図示が省略されているが、初期化処理として、例えば、図示しない制御装置の制御により、第１対応情報２５、第２対応情報２６、第３対応情報２７が、第１対応情報保持部２１ａ、第２対応情報保持部２１ｂ、第３対応情報保持部２１ｃに書き込まれる。そして、出力制御回路２１ｅが、第２対応情報２６に基づいて、焼鈍部１１ａ０〜１１ａｎの各々に、逆温度βの初期値を供給する。
【００６０】
ステップＳ１〜Ｓ５は、焼鈍部１１ａ０〜１１ａｎの各々で行われる処理である。焼鈍部１１ａ０〜１１ａｎの各々は、確率的探索の反復回数の初期化を行い（ステップＳ１）、その後、交換制御部２１により与えられた逆温度βを用いて前述の確率的探索を行う（ステップＳ２）。焼鈍部１１ａ０〜１１ａｎの各々は、１回の確率的探索を終了するたびに、反復回数をインクリメントする（ステップＳ３）。そして、焼鈍部１１ａ０〜１１ａｎの各々は、反復回数が所定の値に達したか否かを判定し（ステップＳ４）、反復回数が所定の値に達していない場合には、ステップＳ２の処理を繰り返す。焼鈍部１１ａ０〜１１ａｎの各々は、反復回数が所定の値に達した場合には、交換制御部２１にエネルギーＥを送信する（ステップＳ５）。
【００６１】
ステップＳ６〜Ｓ１５の処理は、交換制御部２１で行われる処理である。
交換制御部２１の交換演算回路２１ｄは、焼鈍部１１ａ０〜１１ａｎの各々からエネルギーＥを受信する（ステップＳ６）。交換演算回路２１ｄは、隣接温度が割り当てられている２つの焼鈍部のレプリカ番号を、第１対応情報２５において温度番号＝０，１に対応したものから順に選択していくため、選択する温度番号（以下選択温度番号という）を０と１に初期化する（ステップＳ７）。
【００６２】
ステップＳ７の処理後、交換演算回路２１ｄは、第１対応情報２５において、選択温度番号に対応付けられた２つのレプリカ番号を選択することで、隣接温度が割り当てられている２つの焼鈍部を選択する（ステップＳ８）。例えば、図３に示したような第１対応情報２５では、まず、選択温度番号＝０に対応付けられたレプリカ番号＝６の焼鈍部と、選択温度番号＝１に対応付けられたレプリカ番号＝８の焼鈍部が選択される。２回目のステップＳ８の処理では、選択温度番号＝１に対応付けられたレプリカ番号で識別される焼鈍部と、選択温度番号＝２に対応付けられたレプリカ番号で識別される焼鈍部が選択される。３回目以降も同様に、第１対応情報２５の上から順に２つずつレプリカ番号が選択され、選択されたレプリカ番号で識別される焼鈍部が、温度情報を交換する候補として選択される。
【００６３】
その後、交換演算回路２１ｄは、交換確率ｐｉｊを求める際、温度番号ではなく温度を用いるため、現在の２つの選択温度番号を、第３対応情報２７に基づいて２つの温度に変換する。そして、交換演算回路２１ｄは、得られた２つの温度と、選択された２つのレプリカ番号で識別される２つの焼鈍部のエネルギーから、交換確率ｐｉｊを計算する（ステップＳ９）。
【００６４】
そして、交換演算回路２１ｄは乱数を生成し、その乱数と交換確率ｐｉｊとの比較結果に基づいて交換可否を決定する（ステップＳ１０）。交換演算回路２１ｄは、例えば、乱数が交換確率ｐｉｊ以上の場合、温度情報の交換を可とし、乱数が交換確率ｐｉｊよりも小さい場合、温度情報の交換を否とする。
【００６５】
温度情報の交換が可である場合、交換演算回路２１ｄは第１対応情報２５と第２対応情報２６とを更新する（ステップＳ１１）。
図５は、第１対応情報と第２対応情報の更新例を示す図である。
【００６６】
図５では、図３において、温度番号＝１０が対応付けられているレプリカ番号＝１３の焼鈍部と、温度番号＝１１に対応付けられているレプリカ番号＝１１の焼鈍部との間で、温度情報の交換を行う場合の更新例が示されている。
【００６７】
更新後の第１対応情報２５ａと第２対応情報２６ａでは、温度番号＝１０にレプリカ番号＝１１が対応付けられ、温度番号＝１１にレプリカ番号＝１３が対応付けられている。交換演算回路２１ｄは、第１対応情報２５の更新の際には、レプリカ番号＝１１とレプリカ番号＝１３を入れ替えればよく、第２対応情報２６の更新の際には、温度番号＝１０と温度番号＝１１を入れ替えればよい。
【００６８】
その後、交換演算回路２１ｄは、現在の選択温度番号が、最後の選択温度番号（図３の例では１４と１５）ではない場合（ステップＳ１２：Ｎｏ）、選択温度番号をインクリメントし（ステップＳ１３）、ステップＳ８からの処理を繰り返す。一方、現在の選択温度番号が、最後の選択温度番号である場合（ステップＳ１２：Ｙｅｓ）、出力制御回路２１ｅは、更新後の第２対応情報に基づいて、温度情報（逆温度β）を対応する焼鈍部１１ａ０〜１１ａｎの各々に送信する（ステップＳ１４）。
【００６９】
その後、終了条件（例えば、上記のような交換制御部２１の処理が、所定回数繰り返されたか否か）が満たされていない場合（ステップＳ１５：Ｎｏ）、ステップＳ１からの処理が繰り返される。終了条件が満たされている場合（ステップＳ１５：Ｙｅｓ）、図示が省略されているが、例えば、焼鈍部１１ａ０〜１１ａｎの各々のエネルギーの最低値とその最低値のときの各状態変数の値が、図示しない表示装置（またはコンピュータなど）に出力される。そして、最適化装置２０の処理が終了する。
【００７０】
なお、上記の各処理の順序は一例であり、適宜入れ替えてもよい。
以上のように、第２の実施の形態の最適化装置２０でも、交換制御部２１が、第１対応情報２５と第２対応情報２６を保持し、温度の交換時には、第１対応情報２５と第２対応情報２６を更新する。これにより、第１の実施の形態の最適化装置１０と同様の効果が得られる。
【００７１】
さらに、第２の実施の形態の最適化装置２０において、交換演算回路２１ｄは、実際の温度（例えば、浮動小数点方式で表される）ではなく、温度よりもデータ量の少ない温度番号を入れ替えるため、移動するデータ量を、温度を用いる場合よりも小さくできる。また、最適化装置２０は、第１の実施の形態の最適化装置１０と比べて、第３対応情報保持部２１ｃが増えるが、第１対応情報保持部２１ａや第２対応情報保持部２１ｂでは温度の代わりに温度番号が保持されるため、全体として最適化装置１０よりも回路規模を縮小できる。
【００７２】
（比較例）
図６は、図９に示した交換制御部の機能をソフトウェアで実現する場合の一例の処理の流れを示すフローチャートである。
【００７３】
ステップＳ２０〜Ｓ２４の処理は、図４に示したステップＳ１〜Ｓ５の処理と同じである。ステップＳ２５〜Ｓ３４の処理は、ソフトウェアにて実現される。なお、ソフトウェアにて交換制御部５２の機能を実現する場合には、例えば、図３に示したような第１対応情報２５と第３対応情報２７が用いられる。そのため、ステップＳ２５〜Ｓ２９の処理は、図４に示したステップＳ６〜Ｓ１０の処理と同じである。
【００７４】
ステップＳ３０の対応情報の更新処理の際には、図４のステップＳ１１の処理と異なり、ポインタを用いて、温度番号に対応付けられているレプリカ番号の入れ替えが行われる。このため、隣接温度が割り当てられている焼鈍部を探すためのソート処理やサーチ処理は行わなくてもよい。
【００７５】
ステップＳ３１〜Ｓ３４の処理は、図４に示したステップＳ１２〜Ｓ１５の処理と同じである。
このようにソフトウェアでも交換制御部５２の機能を実現できるが、複数の焼鈍部と交換制御部との間のデータの移動を高速化するため、交換制御部をソフトウェアで実現するよりも、専用の回路で実現したほうがよい。
【００７６】
図７は、図９に示した交換制御部の機能を専用の回路で実現した比較例の最適化装置を示す図である。図７において、図２に示した最適化装置２０と同じ要素については、同一符号が付されている。
【００７７】
比較例の最適化装置３０は、交換制御部３１が、第２の実施の形態の最適化装置２０の交換制御部２１と異なっている。
交換制御部３１は、第２対応情報保持部３１ａ、第３対応情報保持部３１ｂ、ソート処理回路３１ｃ、交換処理回路３１ｄを有する。
【００７８】
第２対応情報保持部３１ａは、図３に示したような第２対応情報２６を保持し、第３対応情報保持部３１ｂは、図３に示したような第３対応情報２７を保持する。
ソート処理回路３１ｃは、第２対応情報２６のレプリカ番号を、割り当てられている温度の低い順（または高い順）に並べるソート処理を行う。
【００７９】
交換処理回路３１ｄは、第２対応情報２６をソート処理した情報に基づいて、温度を交換する候補である第１の焼鈍部と第２の焼鈍部とを選択する。そして、交換処理回路３１ｄは、第１の焼鈍部と第２の焼鈍部の各々のエネルギーＥと温度とに基づいた交換確率にしたがって、温度の交換を行うか否かを決定し、交換を行う場合には、第２対応情報２６を更新する。なお、交換処理回路３１ｄは、交換確率を求める際、温度番号ではなく温度を用いるため、第３対応情報２７に基づいて温度番号を対応する温度に変換する。
【００８０】
また、交換処理回路３１ｄは、第３対応情報２７に基づいて、更新後の第２対応情報の温度番号を対応する温度に変換する。そして、交換処理回路３１ｄは、逆温度βを対応する焼鈍部１１ａ０〜１１ａｎの各々に供給する。
【００８１】
図８は、図７に示した比較例の最適化装置の一例の動作の流れを示すフローチャートである。
ステップＳ４０〜Ｓ４６の処理は、図４に示したステップＳ１〜Ｓ７の処理と同じである。ステップＳ４６の処理後、上記のようなソート処理が行われる（ステップＳ４７）。ステップＳ４８〜Ｓ５０の処理は、図４に示したステップＳ８〜Ｓ１０の処理と同じである。
【００８２】
ステップＳ５０の処理後、交換可否の決定結果に応じて第２対応情報２６が更新される（ステップＳ５１）。ステップＳ５２〜Ｓ５５の処理は、図４に示したステップＳ１２〜Ｓ１５の処理と同じであるが、選択温度番号のインクリメント後は、ステップＳ４７のソート処理から繰り返される。
【００８３】
上記のような比較例の最適化装置３０では、第２対応情報２６のソート処理を行うソート処理回路３１ｃが用いられる。しかし、例えば、Ｎ個の要素をバブルソートアルゴリズムによりソート処理するには、Ｎ（Ｎ−１）／２サイクルの演算時間がかかる。
【００８４】
これに対して、第２の実施の形態の最適化装置２０では、ソート処理が不要であるため、ソート処理回路３１ｃも不要になり、回路規模の増大を抑えることができるとともに、演算時間も短縮できる。
【００８５】
以上、実施の形態に基づき、本発明の最適化装置及び最適化装置の制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００８６】
１０  最適化装置
１１ａ０〜１１ａｎ  焼鈍部
１２  交換制御部
１２ａ  第１対応情報保持部
１２ｂ  第２対応情報保持部
１２ｃ  交換演算回路
１２ｄ  出力制御回路
１５，１５ａ  第１対応情報
１６，１６ａ  第２対応情報
Ｅ  エネルギー
β  逆温度
【図１】
2019194765.tif 000007
【図２】
2019194765.tif 000008
【図３】
2019194765.tif 000009
【図４】
2019194765.tif 000010
【図５】
2019194765.tif 000011
【図６】
2019194765.tif 000012
【図７】
2019194765.tif 000013
【図８】
2019194765.tif 000014
【図９】
2019194765.tif 000015