(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-01
(45)【発行日】2023-08-09
(54)【発明の名称】最適化装置、最適化方法及び最適化プログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20230802BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2019162826
(22)【出願日】2019-09-06
【審査請求日】2022-05-17
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】櫛部 大介
【審査官】加藤 優一
(56)【参考文献】
【文献】特開2018-005541(JP,A)
【文献】伊庭 幸人, ほか5名,計算統計II マルコフ連鎖モンテカルロ法とその周辺,オンデマンド版,日本,株式会社岩波書店,2018年07月10日,ISBN:978-4-00-730789-8
【文献】LANDAU, Rubin H, ほか著, 小柳 義夫, ほか訳,実践Pythonライブラリー 計算物理学II 物理現象の解析・シミュレーション,初版,日本,株式会社朝倉書店,2018年04月20日,ISBN:978-4-254-12893-2
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 -99/00
G06F 18/00 -18/40
(57)【特許請求の範囲】
【請求項1】
エネルギー関数の最適値をレプリカ交換法で求める求解問題における前記エネルギー関数の複数の標本温度値それぞれでの熱平衡状態のエネルギー値を示す熱平衡状態情報を記憶する記憶部と、
前記熱平衡状態情報に基づいて、前記複数の標本温度値それぞれについて、温度変化に応じたエネルギーの変化度合いを示す比熱
を算出し、前記複数の標本温度値を値の大きさで並べたときに隣接する2つの標本温度値それぞれに対応する前記比熱の間を補間する補間式を生成し、前記補間式に基づいて、前記エネルギー関数の最適値を求解する際に複数のレプリカそれぞれに設定する複数の温度値を決定する処理部、
を有する最適化装置。
【請求項2】
前記処理部は、前記複数の標本温度値それぞれにおいて、前記エネルギー関数の計算を繰り返し、熱平衡状態になった後のエネルギー値を前記熱平衡状態情報として前記記憶部に格納する、
請求項
1記載の最適化装置。
【請求項3】
前記処理部は、前記複数の温度値を決定後、前記複数の標本温度値を前記
複数の温度値と同じ値に変更し、変更後の前記複数の標本温度値それぞれにおいて、前記エネルギー関数の計算を繰り返し、熱平衡状態になった後のエネルギー値で前記熱平衡状態情報を更新する、
請求項
2記載の最適化装置。
【請求項4】
前記処理部は、第1の温度帯域における温度値同士の間隔が、前記第1の温度帯域よりも
前記比熱が小さい第2の温度帯域における温度値同士の間隔よりも狭くなるように、前記複数の温度値を決定する、
請求項1ないし
3のいずれかに記載の最適化装置。
【請求項5】
前記処理部は、前記比熱が大きいほど値が小さくなる温度刻み幅算出式に基づいて、温度が低い方からm番目(mは1以上の整数)の温度値における前記比熱に応じた温度刻み幅を算出し、前記m番目の温度値よりも算出した前記温度刻み幅だけ高い温度を、温度が低い方からm+1番目の温度値に決定する、
請求項
4記載の最適化装置。
【請求項6】
前記処理部は、さらに、
前記複数のレプリカそれぞれに前記複数の温度値を設定し、前記レプリカ交換法により前記エネルギー関数の最適値を求解する、
請求項1ないし
5のいずれかに記載の最適化装置。
【請求項7】
エネルギー関数の最適値をレプリカ交換法で求める求解問題における前記エネルギー関数の複数の標本温度値それぞれにおいて前記エネルギー関数の計算を繰り返し、熱平衡状態になった後のエネルギー値を示す熱平衡状態情報を求め、前記熱平衡状態情報に基づいて、温度変化に応じたエネルギーの変化度合いを示す比熱と温度との関係を示す比熱情報を
算出し、前記比熱情報に基づいて、
前記エネルギー関数の最適値を求解する際に複数のレプリカそれぞれに設定する複数の温度値を決定する処理部、
を有する最適化装置。
【請求項8】
コンピュータが、
エネルギー関数の最適値をレプリカ交換法で求める求解問題における前記エネルギー関数の複数の標本温度値それぞれでの熱平衡状態のエネルギー値を示す熱平衡状態情報に基づいて、前記複数の標本温度値それぞれについて、温度変化に応じたエネルギーの変化度合いを示す比熱
を算出し、
前記複数の標本温度値を値の大きさで並べたときに隣接する2つの標本温度値それぞれに対応する前記比熱の間を補間する補間式を生成し、
前記補間式に基づいて、前記エネルギー関数の最適値を求解する際に複数のレプリカそれぞれに設定する複数の温度値を決定する、
最適化方法。
【請求項9】
コンピュータに、
エネルギー関数の最適値をレプリカ交換法で求める求解問題における前記エネルギー関数の複数の標本温度値それぞれでの熱平衡状態のエネルギー値を示す熱平衡状態情報に基づいて、前記複数の標本温度値それぞれについて、温度変化に応じたエネルギーの変化度合いを示す比熱
を算出し、
前記複数の標本温度値を値の大きさで並べたときに隣接する2つの標本温度値それぞれに対応する前記比熱の間を補間する補間式を生成し、
前記補間式に基づいて、前記エネルギー関数の最適値を求解する際に複数のレプリカそれぞれに設定する複数の温度値を決定する、
処理を実行させる最適化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化装置、最適化方法及び最適化プログラムに関する。
【背景技術】
【0002】
自然科学や社会科学において頻出する問題として、評価関数(エネルギー関数とも呼ばれる)の最小値(または最小値を与える評価関数の状態変数の値の組合せ)を求める最小値求解問題(または組合せ最適化問題と呼ばれる)がある。近年、このような問題を磁性体のスピンの振る舞いを表すモデルであるイジングモデルで定式化する動きが加速している。この動きの技術的な基盤は、イジング型量子コンピュータの実現である。イジング型量子コンピュータは、ノイマン型コンピュータが不得意とする多変数の組合せ最適化問題を現実的な時間で解けると期待されている。一方、イジング型のコンピュータを電子回路で実装した最適化装置も開発されている(たとえば、非特許文献1参照)。
【0003】
イジングモデルを用いた最小値求解問題の計算手法として、イジング型のエネルギー関数の最小値を、マルコフ連鎖モンテカルロ法(以下MCMC法、またはMCMC計算という)を用いて求解する手法がある。MCMC計算では、ボルツマン分布にしたがった遷移確率でエネルギー関数の状態変数の更新(状態遷移)を行うことが一般的である。しかし、エネルギー関数には局所解となる多数の極小値が含まれ、解が一旦局所解に捕捉されると、局所解から脱出する確率が非常に低くなる。局所解からの脱出を促すため、シミュレーテッド・アニーリング法(以下SA法と略す)(たとえば、特許文献1、非特許文献1,2,3参照)が知られている。局所解からの脱出手法としては、レプリカ交換法(拡張アンサンブル法などとも呼ばれる)(たとえば、特許文献2、非特許文献4参照)などの手法も知られている。
【0004】
SA法は、遷移確率を決める式に含まれる温度パラメータの値を所定のスケジュールに従って、徐々に小さくしていくことで(温度を下げることに相当)、最終的にエネルギー関数の最小値を求める方法である。レプリカ交換法は、複数のレプリカのそれぞれに互いに異なる値の温度パラメータを設定し、各レプリカにおいて独立にMCMC計算を行うとともに、所定の交換確率でレプリカ間の温度パラメータ(または状態変数)の値を交換する手法である。レプリカ交換法では、各レプリカの温度が温度空間内をランダムに移動する。このような温度のランダムな変化をランダムウォークと呼ぶ。
【0005】
なお、SA法では、解が一旦局所解に捕捉されてしまうと、その局所解とは別の探索空間へ探索範囲を拡げるのが難しい。それに対して、レプリカ交換法では、複数のレプリカそれぞれについて、低温の設定と高温の設定との両方のサンプリングが可能であり、解が一旦局所解に捕捉されたときの、局所解からの脱出確率が高くなる。
【先行技術文献】
【特許文献】
【0006】
【文献】特許第6465223号公報
【文献】特許第6465231号公報
【文献】国際公開第2016/133002号
【文献】国際公開第2017/183075号
【文献】特開2017-049971号公報
【非特許文献】
【0007】
【文献】Sanroku Tsukamoto, Motomu Takatsu, Satoshi Matsubara and Hirotaka Tamura, “An Accelerator Architecture for Combinatorial Optimization Problems”, FUJITSU Sci. Tech. J., Vol.53, No.5, September, 2017, pp.8-13
【文献】S. Kirkpatrick, C. D. Gelatt Jr, M. P. Vecchi, “Optimization by Simulated Annealing”, Science, Vol.220, No.4598, 13 May, 1983, pp.671-680
【文献】Constantino Tsallis, Daniel A. Stariolo, “Generalized simulated annealing”, Physica A, 233, 1996, pp.395-406
【文献】Koji Hukushima and Koji Nemoto, “Exchange Monte Carlo Method and Application to Spin Glass Simulations”, J. Phys. Soc. Jpn, Vol.65, No. 6, June, 1996, pp.1604-1608
【発明の概要】
【発明が解決しようとする課題】
【0008】
レプリカ交換法では、設定された温度の順でレプリカを並べたとき、隣接するレプリカ間でレプリカ交換が可能である。レプリカ交換が可能なレプリカ間でレプリカ交換が行われるかどうかは、レプリカ交換確率に従って確率的に決定される。レプリカ交換が可能なレプリカの複数の組合せそれぞれのレプリカ交換確率が不均一な場合、温度空間上でのレプリカの適切なランダムウォークが行われないことがある。適切なランダムウォークが行われないと、サンプリング空間が広がらず、エネルギーの最小値を求めることが困難となる。しかしレプリカ交換確率は、交換対象のレプリカ間のエネルギー差と逆温度差の積の指数関数減衰で決まるため、レプリカ交換確率を均等にするのは容易ではない。
【0009】
1つの側面では、本件は、レプリカ交換確率の均一性を高めることを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、以下のような処理部を有する最適化装置が提供される。
処理部は、温度変化に応じたエネルギーの変化度合いを示す比熱と温度との関係を示す比熱情報を取得する。そして処理部は、比熱情報に基づいて、レプリカ交換法でエネルギー関数の最適値を求解する際に複数のレプリカそれぞれに設定する複数の温度値を決定する。
【発明の効果】
【0011】
1態様によれば、レプリカ交換確率の均一性を高めることができる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態に係る最適化装置の一例を示す図である。
【
図2】最適化装置のハードウェアの一例を示す図である。
【
図3】エネルギーランドスケープの一例を示す図である。
【
図5】レプリカ交換法におけるレプリカの温度遷移の一例を示す図である。
【
図6】レプリカ交換法におけるエネルギーの計算結果の一例を示す図である。
【
図7】温度の異なる2つのレプリカのエネルギーの時間変化の例を示す図である。
【
図9】レプリカの温度刻み係数と温度との関係を示す図である。
【
図10】最適化装置の機能を示すブロック図である。
【
図11】エネルギー最小値求解処理の手順の一例を示すフローチャートである。
【
図12】比熱計算処理の手順の一例を示すフローチャートである。
【
図13】温度最適化処理の手順の一例を示すフローチャートである。
【
図14】計算ステップ数を増やした場合と温度最適化を行った場合との解を比較した例を示す図である。
【
図15】レプリカ数を増やした場合と温度最適化を行った場合との解を比較した例を示す図である。
【
図16】第3の実施の形態におけるエネルギー最小値求解処理の手順の一例を示すフローチャートである。
【
図17】レプリカ交換を最適化する温度列を求めるためのサンプリング情報の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る最適化装置の一例を示す図である。最適化装置10は、記憶部11と処理部12とを有している。
【0014】
記憶部11は、問題を変換した評価関数(以下エネルギー関数という)に含まれる状態変数の値と状態変数の値に対応した評価関数の値(以下エネルギーという)などを記憶する。記憶部11は、RAM(Random Access Memory)などの揮発性の記憶装置、または、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性の記憶装置である。
【0015】
処理部12は、MCMC法により状態変数の値を更新する処理を繰り返すことでエネルギー関数の最適値の求解を行う。最適値はたとえば最小値または最大値であってもよい。以下、最適値が最小値である場合について説明する。処理部12は、CPU(Central Processing Unit)、GPGPU(General-Purpose computing on Graphics Processing Units)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリに記憶されたプログラムを実行する。たとえば、最適化装置10の制御プログラムが実行される。なお、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」ということがある。
【0016】
記憶部11は、エネルギー関数の最小値を求める最小値求解問題を示す求解問題情報11aと熱平衡状態情報11bとが含まれる。求解問題情報11aには、たとえば求解対象のエネルギー関数やエネルギー関数に設定する状態変数の初期値などが含まれる。熱平衡状態情報11bには、たとえば複数の標本温度値(T11,T12,・・・)に対応付けられた、標本温度値(T11,T12,・・・)ごとの熱平衡状態でのエネルギー値(E1,E2,・・・)が含まれる。エネルギー値(E1,E2,・・・)は、たとえばエネルギー関数を複数の標本温度値(T11,T12,・・・)それぞれで解くことで得られる。
【0017】
熱平衡状態情報11bは、1つの標本温度値に対応付けられた、その標本温度値において熱平衡状態で繰り返しエネルギー関数を計算することで算出された複数のエネルギー値を含んでいてもよい。また熱平衡状態情報11bは、1つの標本温度値に対応付けられた、その標本温度値において熱平衡状態で繰り返しエネルギー関数を計算することで算出された複数のエネルギー値の平均値を含んでいてもよい。
【0018】
処理部12は、まず予備計算として、複数の標本温度値(T11,T12,・・・)それぞれにおいて、エネルギー関数の計算を繰り返し、熱平衡状態になった後のエネルギー値(E1,E2,・・・)を熱平衡状態情報11bとして記憶部11に格納する(ステップS1)。
【0019】
次に処理部12は、温度変化に応じたエネルギーの変化度合いを示す比熱(C=dE/dT[K])と温度(T)との関係を示す比熱情報を取得する(ステップS2)。たとえば処理部12は、熱平衡状態情報11bに基づいて、比熱(C=dE/dT[K])と温度(T)との関係を示す比熱情報を算出する。たとえば処理部12は、複数の標本温度値(T11,T12,・・・)を値の大きさで並べたときに隣接する2つの標本温度値(T11,T12,・・・)それぞれに対応する比熱の間を補間する補間式を、比熱情報として生成する。
【0020】
次に処理部12は、算出した比熱情報に基づいて、レプリカ交換法でエネルギー関数の最小値を求解する際に複数のレプリカそれぞれに設定する複数の温度値(T21,T22,T23,・・・)を決定する(ステップS3)。たとえば処理部12は、第1の温度帯域における温度値同士の間隔が、第1の温度帯域よりも比熱が小さい第2の温度帯域における温度値同士の間隔よりも狭くなるように、複数のレプリカそれぞれに設定する複数の温度値を決定する。
【0021】
より具体的には、処理部12は、比熱(C1,C2,C3,・・・)が大きいほど値が小さくなる温度刻み幅算出式に基づいて、温度刻み幅(ΔT1,ΔT2,ΔT3,・・・)を算出する。たとえば処理部12は、比熱の逆数に定数k倍(kは正の実数)した値の平方根を温度値(T21,T22,T23,・・・)に乗算する式を、その温度値(T21,T22,T23,・・・)での温度刻み幅算出式とする。なお定数kの算出方法は、第2の実施形態で詳細に説明する(式(17)等参照)。
【0022】
たとえば処理部12は、温度が低い方からm番目(mは1以上の整数)の温度値における比熱に応じた温度刻み幅を、温度刻み幅算出式に基づいて算出する。そして処理部12は、i番目の温度値よりも算出した温度刻み幅だけ高い温度を、温度が低い方からm+1番目の温度値に決定する。
【0023】
たとえば最も低い温度の温度値T21は、初期値として予め指定されている。そのとき処理部12は、温度値T21における温度刻み幅ΔT1=T21(k/C1)1/2を計算する。次に処理部12は、温度値T21に温度刻み幅ΔT1=T21(k/C1)1/2を加算した値(T21+ΔT1)を、2番目の温度値T22に決定する。以後同様に、処理部12は、温度が低い方から順に、温度値を決定していく。
【0024】
そして処理部12は、複数のレプリカそれぞれに複数の温度値(T21,T22,T23,・・・)を設定し、レプリカ交換法によりエネルギー関数の最小値を求解する(ステップS4)。
【0025】
これにより、レプリカ交換確率の均一性を高めることができる。すなわち、レプリカ間の温度間隔が一定の場合、比熱が高い温度帯域では、比熱が低い温度帯域よりもレプリカ交換確率が低くなる。他方、レプリカ間の温度間隔は狭いほど、レプリカ交換確率が高くなる。そこで最適化装置10では、比熱が高い温度帯域ほどレプリカ間の温度間隔を狭くすることで、レプリカ交換確率の均一性を高めている。
【0026】
レプリカ交換確率の均一性が向上することで、レプリカは温度空間内を適切にランダムウォークすることができるようになる。その結果、サンプリング空間が広がり、エネルギー関数の最小値の求解において、求解の精度が向上する。
【0027】
なお、処理部12は、決定した温度値により、標本温度値の適性化を行うこともできる。たとえば処理部12は、複数の温度値を決定後、複数の標本温度値を、決定した温度値と同じ値に変更する。そして処理部12は、変更後の複数の標本温度値それぞれにおいて、エネルギー関数の計算を繰り返し、熱平衡状態になった後のエネルギー値で熱平衡状態情報11bを更新する。これにより、温度値における比熱の誤差を削減することができ、精度の高い温度値を得ることができる。温度値の精度が向上することで、エネルギー関数の最小値の求解も高精度に行うことが可能となる。
【0028】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、問題を変換したイジング型のエネルギー関数の最小値(または最小値が得られる状態変数の値の組合せ)を、最適化装置を用いてレプリカ交換法により求解するものである。
【0029】
図2は、最適化装置のハードウェアの一例を示す図である。最適化装置100は、たとえばコンピュータであり、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。
【0030】
メモリ102は、最適化装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、たとえばRAMなどの揮発性の半導体記憶装置が使用される。
【0031】
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0032】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、たとえばHDDやSSD(Solid State Drive)を使用することができる。
【0033】
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0034】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0035】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0036】
機器接続インタフェース107は、最適化装置100に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0037】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0038】
最適化装置100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した最適化装置10も、
図2に示した最適化装置100と同様のハードウェアにより実現することができる。
【0039】
最適化装置100は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。最適化装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、最適化装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また最適化装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0040】
このようなハードウェアの最適化装置100を用いて、イジング型のエネルギー関数の最小値、および最小値を得る状態変数の組合せを求めることができる。求解対象のエネルギー関数は、ハミルトニアンによって表すことができる。
【0041】
イジング型のエネルギー関数(H({x}))は、たとえば、以下の式(1)で定義される。
【0042】
【0043】
右辺の1項目は、N個の状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値(0または1)と重み係数との積を積算したものである。xiはi番目の状態変数、xjはj番目の状態変数を表し、Wijは、xi,xjの相互作用の大きさを示す重み係数である。右辺の2項目は、各状態変数のそれぞれについてのバイアス係数(bi)と各状態変数の値との積の総和を求めたものであり、右辺の3項目(C)は定数である。
【0044】
最適化装置100は、N個の状態変数のエネルギー関数(H({x}))の最小値を求める。たとえば最適化装置100は、マルコフ連鎖モンテカルロ計算を実行し、統計分布としてボルツマン分布の下で実行する。ボルツマン分布を計算に使用するのは、イジングモデルが元々磁性体の物性をシミュレーションするために考案されたモデルであるためである。最適化装置100は、シミュレーションにおいて、以下のようにして実際の計算を行う。
【0045】
まず最適化装置100は、疑似乱数発生器を用いて、反転させる状態変数xiをランダムに選ぶ。最適化装置100は、選択後、エネルギー差ΔEを計算する。選ばれた状態変数をxkとすると、その状態変数xkの値が変化することによるエネルギー関数の値の変化(エネルギー差(ΔE))は、以下の式で表される。
【0046】
【0047】
式(2)の「1-2xk」はxkの変化分(Δxk)を表す。xkが1から0に変化する場合、1-2xk=-1であり、xkが0から1に変化する場合、1-2xk=1である。また、hkはローカルフィールドと呼ばれ、以下の式(3)で表せる。
【0048】
【0049】
式(2)、式(3)により、エネルギー差ΔEが求まるので、最適化装置100は、選択した状態変数xkを変化させた新たな状態を受け入れるか否かを決定する。たとえば最適化装置100は、メトロポリス法に従い、式(4)の形の遷移確率を用いて新しい状態を受け入れるかどうか決定する。
【0050】
【0051】
式(4)において、πi({x})は、{x}(各状態変数の値を示す)で規定される状態が実現する確率を示す確率分布である。Pi→jは、状態iから状態jへ遷移する遷移確率を表す。βは逆温度(温度パラメータの値の逆数)である。
【0052】
最適化装置100は、このような確率的な状態遷移を繰り返す。これにより、与えられた温度における熱平衡状態が達成される。たとえば処理部12が、温度を十分下げた状態でシミュレーションを実行することで、エネルギー最小値を求めることができる。
【0053】
SA法では、シミュレーションの進行とともに温度Tを下げていき、温度Tを0に近づけていくこととなる。温度Tを0に近づけることでエネルギーが上がる方向への遷移が抑えられるため、式(1)のエネルギーの停留点が求まる。これは停留点であり、最小値とは限らない。そのため、SA法では初期条件を変えて多数回の試行を行うことで、ヒューリスティックに最適解を求める戦略が取られる。
【0054】
なお、式(1)を、ボルツマン分布を用いてメトロポリス法で数値的に解く場合、最適解を求めることについて以下の阻害要因がある。
[阻害要因1]エネルギー関数の局所最適解が無数にあり、容易にトラップされ、抜け出せない。そのため、求めたい解とはかけ離れた解が求まってしまう。
[阻害要因2]ボルツマン分布ではこのエネルギートラップから現実的な時間内のシミュレーションで抜け出すことが著しく困難である。そのため、多大な量の計算資源と計算時間が消費される。
[阻害要因3]レプリカ交換法などの拡張アンサンブル法を使う事でサンプリング効率を向上させることが可能であるが、温度空間をランダムウォークさせることが難しい。
【0055】
以上のような阻害要因が存在するため、普通に式(1)のシミュレーションを実行しても最適解にたどり着くことは難しい。そこで、これらの困難を超える方法が提案されており、代表的なものとしてレプリカ交換法がある。レプリカ交換法を採用した場合、最適化装置100は、異なる温度のシミュレーションを実行しているレプリカ同士を交換しながら全体を最適化することとなる。そのため、計算量は用意するレプリカ数に応じて増大する。また、効率的なサンプリングのためにはすべてのレプリカが低温領域から高温領域までくまなく動き回ることが重要であり、系の自由度が大きくなるとレプリカ数が加速度的に増える。そのうえ、系に相転移が起こると効率的なレプリカ交換が相転移点を境にして阻害され、低温領域と高温領域に二分されてしまう傾向がある。レプリカ数を増やせば相転移が起こり難くなるが、計算量が大きくなり、最適化装置100として並列計算機を用いることとなる。
【0056】
そこで、第2の実施の形態では、最適化装置100は、レプリカに適切な温度設定を与えることで、少ないレプリカ数でも相転移の発生を抑制し、レプリカが温度空間をランダムウォークできるようにする。
【0057】
次に、レプリカ交換法について詳細に説明する。まず、求解対象のエネルギー関数の構造について簡単に説明する。実用的な問題は多次元であり、求めるエネルギー関数は多数の極小値を持つ。状態変数に応じたエネルギー関数の値の変化を表す図をエネルギーランドスケープという。
【0058】
図3は、エネルギーランドスケープの一例を示す図である。
図3において、横軸は状態変数の値であり、縦軸はエネルギーの値である。多次元空間におけるエネルギー最小値問題の難しさはエネルギー関数の大局的な最小構造にある。たとえば、
図3においては大きく見ると3つの大局的なエネルギー最小構造31~33がある。それぞれのエネルギー最小構造31~33内および周囲には、小さいエネルギー障壁(隣接する極小値間を遷移する際のエネルギーの上昇部分)が無数にある。レプリカの設定温度が不適切な場合、初期値によってエネルギー最小構造31,33内部でエネルギー最小値を求めてしまい、本当に知りたいエネルギー最小構造32内のエネルギー最小値を求めることができないことがある。これはエネルギー最小構造31~33間のエネルギー障壁が大きいためである。
【0059】
レプリカ交換法はこの問題を解決するために開発された方法である。
図4は、レプリカ交換法の概略を示す図である。最適化装置100は、レプリカ交換法では高温から低温領域までM個(Mは2以上の整数)の温度列{T
0,T
1,・・・,T
M}を用意する。最適化装置100は、M個の求解対象(状態変数の組)を生成し、それぞれ温度列内の別の温度により、時間ステップを進行させながらシミュレーションを独立に行う。そして最適化装置100は、求解対象間で温度を詳細つり合いの原理を満たすように交換する。このようにすると全体として詳細つり合いの原理を満たしつつ、各シミュレーションボックス(求解対象ごとのシミュレーション)は温度空間をランダムウォークすることができる。そして、高温領域を経て高いエネルギーバリアを超える事ができる。
【0060】
各シミュレーションボックスはレプリカと呼ばれ、2つのレプリカに設定されている温度を一定の基準で交換するところから、このようなシミュレーション方法はレプリカ交換法と呼ばれている。レプリカ間の温度の交換を行うことは、レプリカ交換と呼ばれる。
【0061】
レプリカ交換法は磁性体分野やタンパク質のフォールディング問題などで成果を上げている方法である。半面、欠点も存在する。以下、レプリカ交換法の欠点について簡単に説明する。
【0062】
今、i番目とj番目との2つのレプリカを考える。このとき逆温度と座標(状態変数の値)の組み合わせを(βi,{x}i)、(βj,{x}j)とする。また、それぞれのレプリカの粒子が従う確率分布をπ(βi,{x}i)、π(βj,{x}j)とする。この2状態系においてレプリカ交換が起こる前後の状態をA、Bとして以下のように定義する。
[状態A]i番目のレプリカが({Xi},βi)かつ、j番目のレプリカが({Xj},βj)
[状態B]i番目のレプリカが({Xj},βi)かつ、j番目のレプリカが({Xi},βj)
熱平衡状態において状態Aと状態Bそれぞれの確率分布PA(t)、PB(t)は、独立事象の確率の積で表される。すなわち確率分布PA(t)、PB(t)は、以下の式(5)、式(6)で表される。
【0063】
【0064】
【0065】
従って、状態Aから状態Bへの遷移確率PA→Bは以下の式(7)のように記述できる。
【0066】
【0067】
min{}は、括弧内の要素の最小値を採ることを示す演算子である。式(7)にボルツマン分布の式を代入すると、以下のようになる。
【0068】
【0069】
【0070】
【0071】
式(10)のEiとEjは、それぞれi番目のレプリカとj番目のレプリカのエネルギーである。各レプリカのエネルギーは、そのときの状態変数を式(1)に代入することで得られる。
【0072】
レプリカ交換法においては、レプリカ同士の交換についての詳細つり合いが成立し、かつ各レプリカについての詳細つり合いも成立している。なおレプリカ交換は1ステップごとに実施してもよいし、任意のステップごとにレプリカ交換を実施してもよい。ただし、レプリカ交換の頻度によってサンプリング効率が変わる。
【0073】
このようなレプリカ交換法にも欠点がある。1つ目の欠点は計算量の多さである。計算の実行はM個のレプリカを用意した場合、計算量はM倍になってしまう。さらに、問題の自由度が大きくなると、計算に必要なレプリカ数も増大してしまう。そのため、通常は並列計算をさせて計算時間を圧縮するが、その代わり要求される計算機の数はM倍になる。
【0074】
2つ目の欠点は温度空間をランダムウォークすることが難しいことである。
図5は、レプリカ交換法におけるレプリカの温度遷移の一例を示す図である。
図5には、レプリカ番号=1~8までの8つのレプリカのそれぞれにおける、時間ステップの進行に応じた温度(T)の遷移が示されている。横軸はステップ数を表し、縦軸はT(正の実数)である。
図5に示されているように、各レプリカは温度空間を等確率でランダムウォークしているとは言えないことが分かる。たとえばレプリカ番号=1のレプリカは温度が10以下の領域には殆ど遷移しない。さらにレプリカ番号=5のレプリカは、ステップ数が200付近から、T=1.0に固定されてしまっている。このように、レプリカ交換法においては、温度空間をランダムウォークさせるのが難しい。
【0075】
図6は、レプリカ交換法におけるエネルギーの計算結果の一例を示す図である。
図6には、レプリカ番号=1~8までの8つのレプリカのそれぞれにおける、エネルギー(E)の計算結果が示されている。横軸はステップ数を表し、縦軸はエネルギー(E)を表す。
【0076】
図6に示されているように、殆どのレプリカのエネルギーは極小値に拘束され、脱出できないことが分かる。すなわちランダムウォークができていないと、レプリカのエネルギーは、最小値を含むよりエネルギーの低い値に到達できない。
【0077】
以下、レプリカ交換の温度最適化方法について詳細に説明する。
まず、レプリカ交換法におけるレプリカの温度を最適化することで最良のサンプリング効率が得られる理由について説明する。レプリカ交換法では、レプリカの温度を一定間隔で設定しても、最良のサンプリング効率は得られない。その理由は、交換確率が、エネルギー差と逆温度差の積の指数関数減衰になるからである。そのため、レプリカの温度が一定間隔の場合、レプリカが高温層と低温層に分離してしまい、高温領域でエネルギーバリアを超えられず、
図6に示したようにサンプリング空間が広がらないことが起こる。このように、レプリカの温度が不適切な場合、適切なランダムウォークが起きない。結果としてレプリカ交換法を用いたシミュレーションにおけるサンプリング空間が広がらないことになる。この問題は、求解対象の状態変数の数が少ないうちはあまり問題にならないが、自由度が大きくなると深刻な問題になる。
【0078】
次に、
図7を参照して、レプリカ間の温度差とレプリカ交換確率との関係について説明する。
図7は、温度の異なる2つのレプリカのエネルギーの時間変化の例を示す図である。
図7の例では、温度以外は同じ初期条件のレプリカそれぞれについて、エネルギー関数の計算シミュレーションを繰り返し実行したものである。各レプリカは、計算を繰り返すと、熱平衡状態となり、ある一定の範囲内でエネルギー値が変動する。
図7において、横軸はステップ数を表し、縦軸はエネルギー(E)を表す。
【0079】
図7の左図は、T=100のレプリカ(下の折れ線)とT=300のレプリカ(上の折れ線)とのエネルギーの時間変化である。この例ではレプリカ間の温度差が大きいためエネルギーの重なり合いが殆どない。そのため、レプリカ交換自体が起こらない。
【0080】
図7の右図は、T=50のレプリカ(下の折れ線)とT=100のレプリカ(上の折れ線)のエネルギーの時間変化である。この例ではレプリカ間の温度差が小さいためエネルギーの重なり合いが起こる。エネルギーが重なり合うとレプリカ交換が発生しやすくなる。
【0081】
このように、レプリカ間の温度差を小さくすれば、レプリカ交換が発生しやすくなる。すべてのレプリカを温度順に並べたときに隣接するレプリカ間の温度差がすべて小さければ、各レプリカは温度空間全体を適切にランダムウォークすることが容易となる。ただし、温度空間全体にわたってレプリカ間の温度差を小さくしようとすると、レプリカの数を増加させることとなる。すると、レプリカ交換法の1つ目の欠点で説明した処理量の増大が顕著となる。
【0082】
そこで最適化装置100は、レプリカの温度の適性化を図ることで、レプリカ数の増加を抑止しつつ、レプリカ交換の発生をしやすくし、各レプリカのランダムウォークを実現する。すなわち最適化装置100は、温度が隣接するレプリカ間でエネルギーの適切な重なりが発生するような温度差となるように、各レプリカの温度を決定する。
【0083】
たとえば
図7の左図に示すように、T=100のレプリカとT=300のレプリカとは、時間変化に伴うエネルギーの振れ幅が異なる。エネルギーの振れ幅が大きい温度帯域であれば、レプリカ間の温度差を大きくしてもエネルギーの重なり合いが発生し、レプリカ交換が起こりやすい。他方、エネルギーの振れ幅が小さい温度帯域では、レプリカ間の温度差が大きいとエネルギーの重なり合いが発生しない。そこで最適化装置100は、温度帯域ごとに、その温度帯域におけるレプリカ間の温度差を適切に設定する。これにより、レプリカ数の増加を抑止しながら、温度空間全体にわたってレプリカ交換を起こりやすくする。
【0084】
次に、最良のサンプリング効率を与えるための温度最適化方法について詳細に説明する。以下の方法において比熱は連続関数であると仮定する。従って、比熱が不連続になるような相転移が起きる場合は対象としない。これはシミュレーションを実施する系において粒子数は常に有限であり、相転移による特異性が現れるのは粒子数無限大の極限であるからである。
【0085】
なお、レプリカ交換法において最良のサンプリング効率が実現される場合とは、すべてのレプリカが温度空間を上から下までランダムウォークする場合である。このようなランダムウォークを、適切なランダムウォークと呼ぶこととする。
【0086】
適切なランダムウォークを実現するには、温度順でレプリカを並べたときの隣接するレプリカ間のレプリカ交換の発生確率が、すべて等確率であればよい。従って式(8)においてすべてのレプリカが以下の式(11)式を満たせばよいことになる。
【0087】
【0088】
Δ0は、レプリカ交換確率係数である。ここでj=i+1とすると、Tj=Ti+1=Ti+ΔTiとして、式(12)が得られる。
【0089】
【0090】
また、ΔEは式(13)のように表記できる。
【0091】
【0092】
この場合、レプリカ交換確率係数Δ0は、以下のように変形される。
【0093】
【0094】
ここで、エネルギー差が温度差に対して激しく変化しない場合、あるいは、多数のレプリカがある場合を考えると、次の式(15)が近似的に成立する。
【0095】
【0096】
式(15)を式(14)に適用すると、式(14)は次の式(16)となる。
【0097】
【0098】
式(16)をΔTiについて解くと、次の式(17)が得られる。
【0099】
【0100】
ここで、CVは定積比熱と呼ばれる量である。以下の説明では、定積比熱CVを単に比熱と呼ぶこともある。またΔTiは、次の式(18)で表すこともできる。
【0101】
【0102】
ある与えられた温度Tiからレプリカ交換確率を一定にする次の温度Ti+1は次の式(19)および式(20)で与えられる。
【0103】
【0104】
【0105】
つまり、i+1番目のレプリカの温度Ti+1は、基準となる温度に対して常に比例係数をかけた形で定義される。次に比熱の振る舞いについて境界条件を与える。比熱は次の境界条件を満たす。
【0106】
【0107】
【0108】
式(21)は熱力学第三法則からくる要請である。これより温度刻み係数γ(T)の振る舞いは次の境界条件を満たす。
【0109】
【0110】
【0111】
具体的な問題について比熱C
V(T)を計算すると、たとえば
図8のようになる。
図8は、比熱の温度変化の一例を示す図である。
図8の上段には、温度が0~100000Kの範囲の比熱の温度変化が示されている。
図8の中段には、温度が0~20000Kの範囲の比熱の温度変化が示されている。
図8の下段には、温度が0~200Kの範囲の比熱の温度変化が示されている。
図8に示す各グラフは、横軸が温度、縦軸が比熱である。
【0112】
図8の比熱の温度変化によれば、式(21)、式(22)に示されている比熱の境界条件が満たされていることが分かる。また、比熱は極小値を2つ、極大値を2つ持つ構造であることが分かる。
【0113】
図8を参照すると、
図5に示したように、レプリカ交換時にレプリカが高温相と低温相に分かれる理由が判明する。
図8に示すように、比熱が極大値を持つため、温度Tが絶対温度で20K<T<40Kの温度帯域では温度増加に伴い比熱が増大しており、増大傾向も急激である。
【0114】
この比熱が急激に増大する温度帯域では、レプリカ間の温度差によって生じるそれらのエネルギー差も急激に増大する。このため比熱が急激に増大する温度帯域でレプリカに設定する温度を等間隔に取ってしまうと、エネルギー差が過大となった温度帯域において、レプリカ交換確率に影響する式(11)のレプリカ交換確率係数Δ0が大きな値になってしまう。そのため、比熱が増大し、エネルギー差が過大となった温度帯域ではレプリカ交換を行う試行は殆ど棄却されてしまう。一方で比熱が急激に増大する領域を外れ、比熱が小さくエネルギー差も少ない温度帯域ではレプリカ交換が行われる。
【0115】
その結果、比熱が極大点となる温度を境にして実質的にレプリカ交換の起こる温度帯域が分断されてしまい、高温相と低温相に分かれてしまう。そして、温度が上がる方向へのレプリカ交換も、下がる方向へのレプリカ交換も等しい確率で起こらないといけないことも分かる。なぜならば、一方の方向(温度が下がる方向または上がる方向)のみにレプリカ交換が起こりやすくなると確率流が定常状態ではなくなるからである。つまり比熱の極大点がレプリカ交換の確率流の反射壁の役割をしてしまう。
【0116】
この問題を解決するために最適化装置100は、たとえば
図8の温度で20K<T<40Kのように、比熱が急激に増加し、比熱が大きくなった温度帯域では、レプリカに設定する温度刻み幅を小さくする。また最適化装置100は、比熱が小さい温度帯域ではレプリカに設定する温度刻み幅を大きくする。これにより最適化装置100は、温度が下がる方向にも上がる方向にも等しい確率でレプリカ交換を起こすようにし、確率の流れを一定に保つことができる。
【0117】
具体的には最適化装置100は、設定温度の順にレプリカを並べたときに、隣接するレプリカ間についてレプリカ交換確率係数Δ0が一定であるという条件を満たすように、レプリカ交換における各レプリカの温度を設定する。この条件を満たすように温度間隔を決定する式が式(20)である。
【0118】
図9は、レプリカの温度刻み係数と温度との関係を示す図である。
図9では、横軸が温度であり、縦軸が温度刻み係数γ(T)である。そして温度刻み係数γ(T)をレプリカ交換確率に関連したパラメータであるレプリカ交換確率係数Δ
0が「0.2」の場合(黒の矩形を結ぶ折れ線)と「0.5」の場合(白丸を結ぶ折れ線)とについて図示している。
【0119】
図9によれば、比熱が急激に変化する領域では温度刻み係数が小さくなり、温度刻み幅は小さくするのが適切であることが分かる。一方で高温領域では、温度刻み係数がほぼ一定と見なすことができる。このため、高温領域ではレプリカ温度を等間隔に設定してもよいことが分かる。
【0120】
さらに、温度刻み幅のレプリカ交換確率係数Δ0の値への依存性も無視できない。なおレプリカ交換確率係数Δ0は、レプリカ交換法によるシミュレーションを指示するユーザが、シミュレーションの計算量や精度に応じて最適化装置100に設定する値である。
【0121】
レプリカ交換確率係数Δ0が大きくなると、式(8)と式(11)からレプリカ交換確率は小さくなる。レプリカ交換確率が小さくてよいなら温度刻み幅を大きく取ることができる。この場合、レプリカ交換確率は下がるがレプリカ数は少なくなるため計算量は下がる方向に向かう。他方、レプリカ交換確率を大きくしたいならば、ユーザはレプリカ交換確率係数Δ0を小さくすればよい。この場合、温度刻み幅は細かくなるが、レプリカ交換確率は大きくなる。そしてレプリカ数は増加し、計算量は増大する方向に向かう。
【0122】
最大のサンプリング効率の最適化を実現するためには、レプリカ交換確率を増大させ、レプリカ数を増やさずに、交換確率とレプリカ数の両者のトレードオフから決まる最適値を求めるのが適切である。しかし、この最適値は問題依存であるため、問題に応じてユーザが適切に決定することとなる。
【0123】
次に、最適化装置100がレプリカ交換法による解求解を行うために有する機能について説明する。
図10は、最適化装置の機能を示すブロック図である。最適化装置100は、記憶部110と処理部120とを有する。記憶部110は、たとえばメモリ102またはストレージ装置103の記憶領域の一部によって実現される。処理部120は、たとえばプロセッサ101に所定のプログラムを実行させることにより実現される。
【0124】
記憶部110は、温度最適化情報、エネルギー情報、スピン情報、レプリカ情報、温度情報、問題設定情報、ハミルトニアン情報を記憶する。
温度最適化情報は、レプリカの設定温度の最適化に使用する情報である。たとえば温度最適化情報には、レプリカ交換確率係数Δ0、予備計算ステップ数N、比熱計算用温度列、最適化する温度列の最小値T1’などを含む。レプリカ交換確率係数Δ0は、レプリカ交換の確率を決定する係数であり、式(11)を満たす定数である。予備計算ステップ数Nは、比熱を計算する温度(比熱計算用の標本温度)でのレプリカのエネルギー計算を計算する際の、シミュレーションの時間進行のステップ数である。比熱計算用温度列は、M個(Mは1以上の整数)の比熱計算用の温度値の配列である。比熱計算用温度列は、第1の実施の形態における複数の標本温度値の一例である。最適化する温度列の最小値T1’は、レプリカに設定する温度の最小値である。
【0125】
エネルギー情報は、計算されたエネルギーの初期値や、これまで計算されたエネルギーの値のうち、最小値から小さい順に所定数のエネルギーの値を含む。また、エネルギー情報は、所定数のエネルギーの値に対応した各状態変数の値の組合せを含んでいてもよい。スピン情報は、各状態変数の値を含む。レプリカ情報は、レプリカ交換法を実行するために用いられる情報であり、レプリカ数などを含む。温度情報は、温度パラメータの値(以下、単に温度という)または逆温度を含む。問題設定情報は、たとえば、使用する最適化方法(SA法、レプリカ交換法など)、レプリカ交換やアニーリングの頻度、サンプリング頻度、温度変更スケジュール、使用する遷移確率分布の情報、計算終了条件となるMCMC計算の計算回数などを含む。ハミルトニアン情報は、たとえば、式(1)に示したエネルギー関数の重み係数(Wij)、バイアス係数(bi)、定数(C)などを含む。
【0126】
処理部120は、制御部121、設定読込部122、問題設定部123、比熱計算部124、温度最適化部125、およびエネルギー最適化部126を有する。
制御部121は、処理部120の各部を制御して最小値求解処理を行う。
【0127】
設定読込部122は、記憶部110から上記の各種情報を、制御部121が理解可能な形式で読み込む。
問題設定部123は、状態変数の初期値や、エネルギーの最小値の初期値を計算する。
【0128】
比熱計算部124は、求解問題に対して、複数の温度での比熱を計算する。
温度最適化部125は、温度に応じた比熱に基づいて、レプリカに設定する温度の最適化を行う。
【0129】
エネルギー最適化部126は、最適化された温度をレプリカに設定し、レプリカ交換法によるシミュレーションを実行し、エネルギーの最小値を求解する。
なお、
図10に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、
図10に示した各要素の機能は、たとえば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0130】
次に、比熱計算部124による比熱の計算法について詳細に説明する。比熱は温度の関数として計算することができる。そのため、比熱計算部124は、離散的な温度列(温度Tj(j=1,2,・・・,M))に基づいて、式(1)をメトロポリス-ヘイスティングス法によって解く。さらに比熱計算部124は、得られたエネルギー列からエネルギーの平均値<Ej>と二乗平均値<E2>とを計算する。そして比熱計算部124は、分布がボルツマン分布であるため、次の式(25)で比熱を計算する。
【0131】
【0132】
このように比熱計算部124が各温度T
jにおいて予備計算としてのシミュレーションを短時間行い、比熱を計算することで、
図8に示したような温度ごとの比熱が得られる。
以上が比熱の計算方法である。次に温度最適化部125による温度の最適化方法について説明する。
【0133】
温度最適化部125は、数値的に比熱が求められると、式(17)を用いて温度刻み幅ΔTiを計算する。このとき式(17)は予備計算の時に指定した温度列(温度Tj(j=1,2,・・・,M))以外の温度でも計算できるようにするため、温度最適化部125は、補間法などを用いて、比熱を温度に応じた連続変数に拡張する。簡単な例では、温度最適化部125は直線補間を用いることができる。たとえば温度最適化部125は、温度T0がTj<T0<Tj+1を満たす場合、たとえば直線補間をする以下の式(26)で、温度刻み係数γ(T)を計算する。
【0134】
【0135】
式(26)は直線補間の例であるが、微分まで含め滑らかに連続に補間するような関数を用いて高次の補間法を用いてもよい。
次にエネルギー最小値求解処理の手順について詳細に説明する。
【0136】
図11は、エネルギー最小値求解処理の手順の一例を示すフローチャートである。以下、
図11に示す処理をステップ番号に沿って説明する。
[ステップS101]設定読込部122は、記憶部110からレプリカ交換確率係数Δ
0を読み込む。レプリカ交換確率係数Δ
0は、ユーザにより予め入力された値である。
【0137】
レプリカ交換確率係数Δ0の値が大きいほど温度刻みの幅は大きくなり、レプリカ数は少なくなる。逆にレプリカ交換確率係数Δ0の値が小さいほど温度刻みの幅は小さくなり、レプリカ数は多くなる。レプリカ交換確率係数Δ0の値が大きすぎると温度刻みが荒くなりすぎるため、ユーザは、適切なレプリカ数となるように、適切な値のレプリカ交換確率係数Δ0を設定する。たとえばユーザは、Δ0=1.0とする。設定読込部122は、読み込んだレプリカ交換確率係数Δ0を制御部121に送信する。
【0138】
[ステップS102]設定読込部122は、記憶部110から予備計算ステップ数Nを読み込む。予備計算ステップ数Nは、ユーザにより予め入力された値である。
予備計算ステップ数Nは大きく取ればとるほどエネルギーの期待値の精度が上がる。他方、大きく取りすぎると計算時間が長くなりすぎる。そのため予備計算ステップ数Nは、温度最適化を行うことができる程度に十分小さな値とするのが適切である。たとえばユーザは、予備計算ステップ数N=106回と入力する。この程度の予備計算ステップ数Nがあれば、エネルギー関数のエネルギー値が熱平衡状態となるために、熱平衡状態でのエネルギー値を求めることができる。設定読込部122は、読み込んだ予備計算ステップ数Nを制御部121に送信する。
【0139】
[ステップS103]設定読込部122は、記憶部110から、比熱計算用の複数の温度Tj(j=1,2,・・・,M)のリストである比熱計算用温度列を読み込む。比熱計算用の温度Tjは、ユーザにより予め入力された値である。たとえばユーザは、比熱を計算する温度の離散点を、リストの形式で比熱計算用の温度Tjとして入力する。設定読込部122は、読み込んだ比熱計算の温度Tjの温度列を制御部121に送信する。この際、制御部121は、比熱計算用の温度Tjの個数Mを計算する。
【0140】
[ステップS104]設定読込部122は、記憶部110から、最適化後の温度列の個数Moptを読み込む。最適化後の温度列の個数Moptは、ユーザが予め入力する値である。設定読込部122は、読み込んだ個数Moptを制御部121に送信する。
【0141】
[ステップS105]設定読込部122は、記憶部110から、最適化する温度列の最小値T1’の値を読み込む。最適化する温度列の最小値T1’は、ユーザが予め入力する値である。設定読込部122は、読み込んだ最小値T1’の値を制御部121に送信する。
【0142】
[ステップS106]制御部121は、比熱計算用温度列に示される温度における比熱を、比熱計算部124に計算させる。たとえば制御部121は、比熱計算部124へ、レプリカ交換確率係数Δ
0、予備計算ステップ数N、比熱計算用温度列(温度T
j(j=1,2,・・・,M))、最適化する温度列の最小値T
1’などの情報を送信する。比熱計算部124は、記憶部110からレプリカのエネルギー計算に用いる情報を読み込み、比熱計算処理を行う。比熱計算処理の詳細は後述する(
図12参照)。
【0143】
[ステップS107]制御部121は、レプリカに設定する温度の最適化処理を、温度最適化部125に実行させる。たとえば制御部121は、比熱計算部124が計算した、比熱計算用の温度ごとの比熱を、温度最適化部125に送信する。温度最適化部125は、比熱計算用の温度ごとの比熱に基づいて、レプリカに設定する最適な温度を計算する。温度最適化処理の詳細は後述する(
図13参照)。
【0144】
[ステップS108]制御部121は、エネルギー最適化部126にエネルギー最適化処理を実行させる。たとえば制御部121は、温度最適化部125が計算した温度の値を、エネルギー最適化部126に送信する。エネルギー最適化部126は、取得した温度をレプリカの温度に設定し、レプリカ交換法による求解問題のシミュレーションを実行し、エネルギーの最小値を算出する。
【0145】
次に、比熱計算処理について詳細に説明する。
図12は、比熱計算処理の手順の一例を示すフローチャートである。以下、
図12に示す処理をステップ番号に沿って説明する。
【0146】
[ステップS121]比熱計算部124は、比熱計算用温度列における各温度の順番を示す変数jの値を1からMまで1ずつ増加させていき、変数jに設定された値それぞれについて、ステップS122~S123の処理を実行する。
【0147】
[ステップS122]比熱計算部124は、エネルギー最適化部126に、温度Tjにおけるイジングモデルのサンプリング計算をN回実行させる。たとえば比熱計算部124は、制御部121に比熱計算用の温度TjでのN回のサンプリング計算を依頼する。すると制御部121は、エネルギー最適化部126に対して、サンプリング計算を指示する。
【0148】
エネルギー最適化部126は、記憶部110から、スピン情報、レプリカ情報、温度情報、問題設定情報、ハミルトニアン情報などを取得する。そしてエネルギー最適化部126は、式(1)に従って、メトロポリス-ヘイスティングス法によってイジングモデルのエネルギーの計算をN回行う。このようなサンプリング計算によるエネルギー値は、各比熱計算用の温度T
jで決まる熱平衡状態に緩和する。エネルギー最適化部126は、エネルギーの計算を行うごとに、算出したエネルギー値を記憶部110に格納する。なお、格納されたエネルギー値の集合は、
図1に示す熱平衡状態情報11bの一例である。エネルギー最適化部126は、N回の計算が終了すると、サンプリング計算の終了を制御部121に通知する。制御部121は、比熱計算部124にサンプリング計算の完了を通知する。
【0149】
[ステップS123]比熱計算部124は、平衡状態になったエネルギーの平均値<Ej>および二乗平均値<Ej
2>を計算し、式(25)により比熱Cv(Tj)を計算する。そして比熱計算部124は、式(20)により温度刻み係数γ(Tj)の値を計算する。
【0150】
[ステップS124]比熱計算部124は、1からMまでの変数jの値それぞれについてのステップS122~S123の処理が終了すると、比熱計算処理を終了する。その後、比熱計算部124は、比熱計算用の温度Tjごとの比熱Cv(Tj)と温度刻み係数γ(Tj)とを、計算結果として制御部121に送信する。
【0151】
比熱計算処理が終了すると、制御部121は、比熱計算用の温度Tjごとの比熱Cv(Tj)と温度刻み係数γ(Tj)とを温度最適化部125に送信し、温度最適化部125に温度最適化処理を実行させる。
【0152】
図13は、温度最適化処理の手順の一例を示すフローチャートである。以下、
図13に示す処理をステップ番号に沿って説明する。
[ステップS131]温度最適化部125は、最適化後の温度の値の順番を示す変数iの値を1からM
optまで1ずつ増加させていき、変数iに設定された値それぞれについて、ステップS132~S133の処理を実行する。
【0153】
[ステップS132]温度最適化部125は、M個の(Tj,γ(Tj))の組からγ(Ti)の値を算出する。たとえば温度最適化部125は、M個の(Tj,γ(Tj))の組に基づいて式(26)を用いて補間計算をして、γ(Ti)の値を算出する。
【0154】
[ステップS133]温度最適化部125は、次の最適化された温度Ti+1’を算出する。次の最適化された温度Ti+1’は、式(19)に基づいて、Ti+1’=γ(Ti’)Ti’と計算できる。
【0155】
[ステップS134]温度最適化部125は、1からMoptまでの変数iの値それぞれについてのステップS132~S133の処理が終了すると、温度最適化処理を終了する。その後、温度最適化部125は、最適化された温度Ti’(i=1,2,・・・,Mopt)を、計算結果として制御部121に送信する。
【0156】
このような温度最適化処理により、低い方の温度から順に最適化された温度が決定される。その後、エネルギー最適化部126により、最適化した温度を各レプリカの温度に設定して、レプリカ交換法によるシミュレーションが実行される。最適化された温度は、レプリカ交換確率が一定になるような温度刻み幅となっている。そのためエネルギー最適化部126によるシミュレーションでは、各レプリカを、温度空間内を適切にランダムウォークさせることができる。その結果、ヒューリスティックに低いエネルギー最適値を得ることができる。
【0157】
以下、温度の最適化の具体例について説明する。
例題として16都市からなる巡回セールスマン問題を想定する。巡回セールスマン問題は、都市の集合と都市間の移動コストが与えられたとき、すべての都市を1回だけ巡回するための、総移動コストが最小となる経路を求める組合せ最適化問題である。最適化装置100が巡回セールスマン問題において適切な解を求解することができれば、最適化装置100を用いて、配送ルート最適化などの社会科学上の様々な問題に対する適切な解が得られる。
【0158】
最適化装置100の比熱計算部124は、式(20)を巡回セールスマン問題に適用することで、
図8に示すような比熱を算出する。比熱計算部124は、算出した比熱から式(20)を用いて温度刻み係数γ(T)を算出する。たとえば、最低温度をT
0=1.0とし、レプリカ交換確率を「0.9」とするようなレプリカ交換確率係数をΔ
0≒0.0458とする。この条件で上記の巡回セールスマン問題の温度刻み係数γ(T)を計算すると、
図9のΔ
0=0.5の場合とほぼ同じ温度刻み係数γ(T)が得られる。
【0159】
ここで、レプリカ数を「5」(Mopt=5)として最適化した場合、以下のような温度列が得られる。
<最適化した温度列(最適化例)>
{T0,T1,T2,T3,T4}={1.0,5.055,13.349,28.354,32.677}
ここで比較例として、温度最適化を行わない場合にレプリカに設定する温度列を以下に示す。
<最適化しない温度列(第1の比較例)>
{T0,T1,T2,T3,T4}={1.0,20.0,40.0,60.0,80.0}
比較例は、ユーザが比熱に関する予備知識を持たず、温度の選択をする基準をもたない場合を想定している。ユーザに予備知識がなければ、ユーザは、比較例に示すような一定間隔の温度列を設定されるものと推定できる。
【0160】
また、温度最適化によるエネルギー最小値候補を得られる効率が、他のサンプリング手法を用いた場合に比べて有意に改善するかどうかを確認するため、ダイナミックオフセット法と比較する。ダイナミックオフセット法とは、多変数関数の最小値問題において、解(状態変数の組)がエネルギーの極小値にはまり脱出できなくなった場合に使う方法である。具体的には、ダイナミックオフセット法は、エネルギーの値に一定の値を加算していくことで、解を強制的にエネルギー極小値から脱出させるのである。ダイナミックオフセット法を使うことで、解がエネルギー極小値にトラップされることがなくなり、エネルギーの最小値候補を効率的に得られることが知られている。
【0161】
図14は、計算ステップ数を増やした場合と温度最適化を行った場合との解を比較した例を示す図である。第1のケース41は、上記の第1の比較例に示される温度列を使用し、計算回数は200万回として最小値求解を行った例である。第2のケース42は、上記の第1の比較例に示される温度列を使用し、計算回数は800万回として最小値求解を行った例である。第3のケース43は、上記の最適化例に示される温度列を使用し、計算回数は200万回として最小値求解を行った例である。
【0162】
図14の横軸は、各ケースで得られた解についてエネルギーが小さい順に順位付けしたときの、同一ケース内での順位(ランキング)である。縦軸は、各ランキングの解のエネルギーの値である。なお何れのケースでもダイナミックオフセット法を併用している。これは極小値にはまらないような状況下で、温度最適化の効果のみを定量的に示すためである。
【0163】
図14に示されるように、温度最適化を行った第3のケース43では、同じ計算回数の温度最適化を行っていない第1のケース41よりもエネルギーの低い解が得られている。温度最適化を行わずに計算回数を4倍にした第2のケース42では、第1のケースよりもエネルギーの低い解が得られているが、第3のケース43程ではない。すなわち、温度最適化を行わずに第3のケース43と同程度の解を得るには、計算回数を4倍以上とすることが求められる。換言すると、温度最適化をすることで計算効率が4倍以上となっている。これらのことから、以下のような結論が得られる。
【0164】
<結論1>
温度最適化することで、シミュレーションで得られるエネルギー最小値と次善の解(良解)のエネルギー値は有意に下がる。
【0165】
<結論2>
温度最適化をすることで、エネルギー最小値と次善の解(良解)を得るための計算量は温度最適化をしない場合よりも少なくなる。
【0166】
次に、レプリカ数を増やした場合と温度最適化を行った場合とにおける最小値求解の結果を比較する。レプリカ数を増やした場合の例として、以下のような最適化しない温度列を用いるものとする。
<最適化しない温度列(第2の比較例)>
{T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16}={1.0,5.0,10.0,15.0,20.0,25.0,30.0,35.0,40.0,45.0,50.0,55.0,60.0,65.0,70.0,75.0,80.0}
第2の比較例は、レプリカ数を17個にした場合の各レプリカに設定する温度列である。温度列内の各温度は、第1の比較例と同様に等間隔の温度となっている。
【0167】
図15は、レプリカ数を増やした場合と温度最適化を行った場合との解を比較した例を示す図である。第4のケース51は、上記の第1の比較例に示される温度列を使用し、5つのレプリカにより最小値求解を行った例である。第5のケース52は、上記の第2の比較例に示される温度列を使用し、17個のレプリカにより、計算回数は200万回として最小値求解を行った例である。第6のケース53は、上記の最適化例に示される温度列を使用し、5つのレプリカにより、計算回数は200万回として最小値求解を行った例である。なお、いずれのケースにおいても、計算回数は200万回であり、レプリカの交換のための試行頻度は、10回の計算に1回である。
【0168】
図15の横軸は、各ケースで得られた解についてエネルギーが小さい順に順位付けしたときの、同一ケース内での順位(ランキング)である。縦軸は、各ランキングの解のエネルギーの値である。なお何れのケースでもダイナミックオフセット法を併用している。
【0169】
図15に示されるように、温度最適化を行った第6のケース53では、レプリカ数の温度最適化を行っていない第4のケース51よりもエネルギーの低い解が得られている。温度最適化を行わずにレプリカ数を17に増やした第5のケース52では、第4のケース51よりもエネルギーの低い解が得られているが、第6のケース53程ではない。すなわち、温度最適化を行った第6のケース53では、5つのレプリカの系でも、レプリカ数を17個まで増やした第5のケース52より良いエネルギー最小値候補が得られている。これらのことから、以下のような結論が得られる。
【0170】
<結論3>
レプリカ交換温度を最適化することで、必要レプリカ数を削減することができる。
なお、レプリカの数は計算量にほぼ比例する。そのため、たとえばレプリカ数を17個から5個に削減することができれば、計算量は3分の1以下に削減できる。
【0171】
以上より、レプリカ交換の温度の最適化が可能な最適化装置100を用いることで、以下のような技術的な効果が得られる。
1.レプリカ交換法による最小値求解におけるレプリカの適切なランダムウォークによる精度の高い解の取得。
2.レプリカ交換法による最小値求解に使用する計算資源の削減。
3.レプリカ交換法による最小値求解に要する計算時間の削減。
4.レプリカ交換法による最小値求解に最適なレプリカの温度列の自動決定によるユーザの労力削減。
【0172】
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、レプリカに設定する温度の精度を向上させるものである。すなわち第3の実施の形態では、最適化装置100において、比熱計算を繰り返し行うことにより、レプリカに設定する温度の精度を向上させる。
【0173】
最適化装置100は、比熱の計算からレプリカ交換法においてランダムウォークを実現するために適切な温度列を自動決定する。一方で最適化された温度の精度は比熱を計算するために実行した予備計算に依存する。
【0174】
予備計算時には温度は最適化されていないため、予備計算(
図12のステップS122)に使用したサンプリングの温度は最良ではない。そのため、比熱の精度も近似的な見積もりになっている。比熱の精度を向上させるためには、予備計算において、適切なサンプリング温度を設定することが重要である。予備計算における適切なサンプリング温度は、温度最適化における温度刻み係数γ(T)の算出(
図13のステップS132)において比熱を正しく算出可能な温度である。
【0175】
たとえば温度最適化処理においてレプリカの温度として最適化した温度を用いて予備計算を行うことで、温度刻み係数γ(T)算出時に比熱を補間で求めたことによる誤差を最小限に抑えることができる。すなわち、最適化された温度列を比熱計算用温度列として予備計算を行うことで、温度刻み係数γ(T)の計算に使用する比熱の精度が向上し、最適化された温度の精度も向上する。
【0176】
図16は、第3の実施の形態におけるエネルギー最小値求解処理の手順の一例を示すフローチャートである。
図16に示す処理のうちステップS201~S207,S210は、それぞれ
図11に示した第2の実施の形態の処理のステップS101~S108の処理と同様である。そこで以下に、第2の実施の形態と異なるステップS208~S209の処理について説明する。
【0177】
[ステップS208]制御部121は、ステップS206~S207によるレプリカの温度の決定処理を所定回数繰り返したか否かを判断する。制御部121は、所定回数繰り返していれば処理をステップS210に進める。また制御部121は、所定回数繰り返していなければ、処理をステップS209に進める。
【0178】
[ステップS209]制御部121は、比熱計算用温度列に、ステップS207で最適化した温度列を設定する。その後、制御部121は、処理をステップS206に進める。
このように、最適化装置100は、最適化された温度列を用いた比熱の再評価と、精度を向上させた比熱による温度の最適化を繰り返し実行することで、温度最適化の精度を向上させることができる。レプリカの温度の最適化の精度が向上すれば、ランダムウォークが行われる可能性が高くなり、エネルギー最小値候補(良解)の精度も向上する。
【0179】
〔その他の実施の形態〕
最適化装置100は、温度を最適化したレプリカ交換法にダイナミックオフセット法を組み合わせてシミュレーションを行うことができる。ダイナミックオフセット法を組み合わせることで、さらにヒューリスティックに低いエネルギーを得ることができる。
【0180】
なお、第2の実施の形態に示したように、レプリカ交換確率はエネルギーと温度列のみで決まる。従って最適化装置100で実現したレプリカ交換法における温度最適化は、イジングモデルや巡回セールスマン問題以外の様々な最適化問題の求解にも利用することができる。
【0181】
たとえば、計算化学の分野では分子動力学法が頻繁に使われる。分子動力学法でもレプリカ交換法が利用されるが、レプリカ交換法のレプリカの温度の最適化は、イジングモデルと同様に重要である。レプリカ交換確率は温度とエネルギーで決まり、状態変数が離散的であるか連続的であるかに依存しない。そのためユーザが各温度において、各時刻におけるエネルギー値のサンプリング情報さえ最適化装置100に与えれば、レプリカ交換を最適化する温度列を、イジングモデルの場合と同じ論理で求めることが可能である。
【0182】
図17は、レプリカ交換を最適化する温度列を求めるためのサンプリング情報の一例を示す図である。サンプリング情報60には、サンプリングのためのシミュレーションのステップ数ごとに、レプリカ温度とエネルギーとが設定されている。このようなサンプリング情報60があれば、最適化装置100は、温度ごとの比熱を求め、レプリカ交換法におけるレプリカの温度最適化を行うことができる。なお、サンプリング情報60は、
図1に示した第1の実施の形態における熱平衡状態情報11bの一例である。
【0183】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0184】
10 最適化装置
11 記憶部
11a 求解問題情報
11b 熱平衡状態情報
12 処理部