(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-14
(45)【発行日】2024-05-22
(54)【発明の名称】最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
(51)【国際特許分類】
G06N 7/00 20230101AFI20240515BHJP
G06N 99/00 20190101ALI20240515BHJP
G06F 17/11 20060101ALI20240515BHJP
【FI】
G06N7/00
G06N99/00 180
G06F17/11
(21)【出願番号】P 2020100676
(22)【出願日】2020-06-10
【審査請求日】2023-03-09
(31)【優先権主張番号】P 2019112367
(32)【優先日】2019-06-17
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】櫛部 大介
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特許第6465231(JP,B1)
【文献】国際公開第2017/033326(WO,A1)
【文献】特開2016-051314(JP,A)
【文献】米国特許出願公開第2015/0269124(US,A1)
【文献】川田泰章 ほか,"連続最適化問題に対するコーシー分布型SAによるアプローチ",情報処理学会研究報告,社団法人情報処理学会,2009年03月,Vol. 2009,No. 18,p. 1-8,2009-AL-123
【文献】三木光範 ほか,"適応的最高温度を持つシミュレーテッドアニーリング",情報処理学会論文誌,社団法人情報処理学会,2003年11月,Vol. 44,No. 11,p. 2787-2795
【文献】TSALLIS, Constantino et al.,"Generalized Simulated Annealing",arXiv [online],1995年01月,p. 1-13,[2024年03月25日検索],インターネット<URL:https://arxiv.org/abs/cond-mat/9501047v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00ー99/00
G06F 17/00-17/18
(57)【特許請求の範囲】
【請求項1】
問題を変換した評価関数に含まれる状態変数の値を記憶する記憶部と、
現在の前記状態変数の値により表される現在の状態から複数の異なる状態のそれぞれに遷移する確率の和を1に規格化できる関数で表されるとともに、前記状態変数の値が変化することによる前記評価関数の値の変化が正に大きいほど、ボルツマン分布よりも遷移確率が大きくなる遷移確率分布に基づいて、マルコフ連鎖モンテカルロ法により前記状態変数の値を更新する処理を繰り返すことで、前記評価関数の最小値の探索を行う処理部と、
を有する最適化装置。
【請求項2】
前記遷移確率分布は、前記評価関数の値の変化と逆温度との積に1を加えた値のm(m>1)乗の逆数で表される、請求項1に記載の最適化装置。
【請求項3】
前記遷移確率分布は、前記評価関数の値の変化と逆温度との積の2乗に1を加えた値のm/2(m>1)乗の逆数で表される、請求項1に記載の最適化装置。
【請求項4】
前記遷移確率分布は、前記評価関数の値の変化と逆温度との積のm(m>0、ただしm≠1)乗にマイナスを掛けた値の指数関数で表される、請求項1に記載の最適化装置。
【請求項5】
前記処理部は、前記状態変数の値を更新するたびに前記評価関数の値を計算し、計算した前記評価関数の値のうち、小さい順に複数個の値を前記記憶部に記憶させる、請求項1乃至4の何れか一項に記載の最適化装置。
【請求項6】
前記処理部は、所定のサンプリング頻度で前記評価関数の値を出力する、請求項1乃至5の何れか一項に記載の最適化装置。
【請求項7】
前記処理部は、前記状態変数の値を更新する処理の回数の増加に伴って所定のスケジュールにより0から1まで増加するアニーリング変数を用い、1から前記アニーリング変数の値を引いた値と既知の第1のハミルトニアンとの積と、前記アニーリング変数と前記評価関数の値との積との和で表される第2のハミルトニアンを、前記アニーリング変数の各値について計算して計算結果を出力する、請求項1乃至6の何れか一項に記載の最適化装置。
【請求項8】
前記処理部は、前記アニーリング変数を0から1まで増加させる複数のスケジュールの中から、前記所定のスケジュールを選択する、請求項7に記載の最適化装置。
【請求項9】
前記処理部は、複数のレプリカのそれぞれに互いに異なる温度パラメータの値を設定し、設定された前記温度パラメータの値と前記遷移確率分布に基づいた交換確率にしたがって前記複数のレプリカ間で前記温度パラメータの値を交換するレプリカ交換法により前記最小値の探索を行う、請求項1乃至8の何れか一項に記載の最適化装置。
【請求項10】
前記処理部は、前記遷移確率分布に含まれるパラメータの値を変え、各パラメータの値における前記評価関数の値についての評価値を、前記評価関数の前記最小値の探索を行う際の計算時間よりも短い計算時間で計算し、計算結果を出力する、請求項1乃至9の何れか一項に記載の最適化装置。
【請求項11】
最適化装置の処理部が、
記憶部に記憶されている問題を変換した評価関数に含まれる状態変数の値を取得し、
現在の前記状態変数の値により表される現在の状態から複数の異なる状態のそれぞれに遷移する確率の和を1に規格化できる関数で表されるとともに、前記状態変数の値が変化することによる前記評価関数の値の変化が正に大きいほど、ボルツマン分布よりも遷移確率が大きくなる遷移確率分布に基づいて、マルコフ連鎖モンテカルロ法により前記状態変数の値を更新する処理を繰り返すことで、前記評価関数の最小値の探索を行う、
最適化装置の制御方法。
【請求項12】
記憶部に記憶されている問題を変換した評価関数に含まれる状態変数の値を取得し、
現在の前記状態変数の値により表される現在の状態から複数の異なる状態のそれぞれに遷移する確率の和を1に規格化できる関数で表されるとともに、前記状態変数の値が変化することによる前記評価関数の値の変化が正に大きいほど、ボルツマン分布よりも遷移確率が大きくなる遷移確率分布に基づいて、マルコフ連鎖モンテカルロ法により前記状態変数の値を更新する処理を繰り返すことで、前記評価関数の最小値の探索を行う、
処理をコンピュータに実行させる最適化装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムに関する。
【背景技術】
【0002】
自然科学や社会科学において頻出する問題として、評価関数(エネルギー関数とも呼ばれる)の最小値(または最小値を与える評価関数の状態変数の値の組合せ)を求める最小値求解問題(または組合せ最適化問題と呼ばれる)がある。近年、このような問題を磁性体のスピンの振る舞いを表すモデルであるイジングモデルで定式化する動きが加速している。この動きの技術的な基盤は、イジング型量子コンピュータの実現である。イジング型量子コンピュータは、ノイマン型コンピュータが不得意とする多変数の組合せ最適化問題を現実的な時間で解けると期待されている。一方、イジング型のコンピュータを電子回路で実装した最適化装置も開発されている(たとえば、非特許文献1参照)。
【0003】
イジングモデルを用いた最小値求解問題の計算手法として、イジング型のエネルギー関数の最小値を、マルコフ連鎖モンテカルロ法(以下MCMC法、またはMCMC計算という)を用いて探索する手法がある。MCMC計算では、ボルツマン分布にしたがった遷移確率でエネルギー関数の状態変数の更新(状態遷移)を行うことが一般的である。しかし、エネルギー関数には局所解となる多数の極小値が含まれ、解が一旦局所解に捕捉されると、局所解から脱出する確率が非常に低くなる。局所解からの脱出を促すため、シミュレーテッド・アニーリング法(以下SA法と略す)(たとえば、非特許文献1,2,3参照)、レプリカ交換法(拡張アンサンブル法などとも呼ばれる)(たとえば、特許文献1,2、非特許文献4参照)などの手法が知られている。
【0004】
SA法は、遷移確率を決める式に含まれる温度パラメータの値を所定のスケジュールにしたがって、徐々に小さくしていくことで(温度を下げることに相当)、最終的にエネルギー関数の最小値を求める方法である。レプリカ交換法は、複数のレプリカのそれぞれに互いに異なる値の温度パラメータを設定し、各レプリカにおいて独立にMCMC計算を行うとともに、所定の交換確率でレプリカ間の温度パラメータ(または状態変数)の値を交換する手法である。
【0005】
ただ、SA法では、温度パラメータの値を非常にゆっくりと小さくしていかなければ最小値が得られないため計算の効率が悪い。また、レプリカ交換法は、各レプリカに設定される温度パラメータの値が低温領域から高温領域までくまなく動き回るようにしなければ、効率のよい最小値の探索ができないが、そのための温度パラメータの設定が難しい。一方、解が極小値に陥った場合、遷移確率を決める式に含まれるエネルギーにオフセットを加え、エネルギーが上がる方向の遷移確率を上げることで、極小値からの脱出を促進する手法(以下ダイナミックオフセット法と呼ぶ)がある。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2018-5541号公報
【文献】特許第6465231号公報
【非特許文献】
【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つの実施態様では、問題を変換した評価関数に含まれる状態変数の値を記憶する記憶部と、現在の前記状態変数の値により表される現在の状態から複数の異なる状態のそれぞれに遷移する確率の和を1に規格化できる関数で表されるとともに、前記状態変数の値が変化することによる前記評価関数の値の変化が正に大きいほど、ボルツマン分布よりも遷移確率が大きくなる遷移確率分布に基づいて、マルコフ連鎖モンテカルロ法により前記状態変数の値を更新する処理を繰り返すことで、前記評価関数の最小値の探索を行う処理部と、を有する最適化装置が提供される。
【0011】
また、1つの実施態様では、最適化装置の制御方法が提供される。
また、1つの実施態様では、最適化装置の制御プログラムが提供される。
【発明の効果】
【0012】
1つの側面では、マルコフ連鎖を破壊せずに効率的に評価関数の最小値の探索が可能となる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施の形態の最適化装置の一例を示す図である。
【
図2】ボルツマン分布とボルツマン分布とは異なる2つの分布の比較例を示す図である。
【
図3】第2の実施の形態の最適化装置のハードウェアの一例を示す図である。
【
図4】第2の実施の形態の最適化装置の機能例を示すブロック図である。
【
図5】第2の実施の形態の最適化装置の制御方法の一例の処理の流れを示すフローチャートである。
【
図6】情報読込処理の一例の処理の流れを示すフローチャートである。
【
図7】初期化処理の一例の処理の流れを示すフローチャートである。
【
図8】M-H計算処理の一例の処理の流れを示すフローチャートである。
【
図9】エネルギー更新処理の一例の処理の流れを示すフローチャートである。
【
図10】アニーリング処理の一例の処理の流れを示すフローチャートである。
【
図11】SA処理の一例の処理の流れを示すフローチャートである。
【
図12】λアニール処理の一例の処理の流れを示すフローチャートである。
【
図13】レプリカ交換処理の一例の処理の流れを示すフローチャートである。
【
図14】レプリカ交換を行うペアのレプリカ番号の決定方法の一例を示す図である。
【
図15】サンプル出力処理の一例の処理の流れを示すフローチャートである。
【
図16】2種類の遷移確率分布を用いた場合のサンプリング結果の比較例を示す図である。
【
図17】温度を変更したときの2種類の遷移確率分布を用いた場合のサンプリング結果の比較例を示す図である。
【
図18】パラメータ最適化処理の一例の処理の流れを示すフローチャートである。
【
図20】3種の遷移確率分布を使用した場合の定常状態の計算結果の一例を示す図である。
【
図22】ボルツマン分布を用いた場合の各レプリカにおける温度の遷移の計算結果の一例を示す図である。
【
図23】ボルツマン分布を用いた場合の各レプリカにおけるエネルギーの計算結果の一例を示す図である。
【
図24】Power law型の遷移確率分布を用いた場合の各レプリカにおける温度の遷移の計算結果の一例を示す図である。
【
図25】Power law型の遷移確率分布を用いた場合の各レプリカにおけるエネルギーの計算結果の一例を示す図である。
【
図26】ボルツマン分布とPower law型の遷移確率分布を用いた場合のレプリカ交換法の計算結果の一例を示す図である。
【
図27】
図26の計算結果において、エネルギーが小さい領域を拡大した図である。
【
図28】λアニール法の計算結果の一例を示す図である。
【
図29】デジタル回路を用いて並列試行を行う装置と、第2の実施の形態の最適化装置による計算結果の比較例を示す図である。
【
図30】連続関数であるエネルギー関数に対する探索性能の比較例を示す図である。
【発明を実施するための形態】
【0014】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の最適化装置の一例を示す図である。
【0015】
記憶部11は、問題を変換した評価関数(以下エネルギー関数という)に含まれる状態変数の値と状態変数の値に対応した評価関数の値(以下エネルギーという)などを記憶する。記憶部11は、RAM(Random Access Memory)などの揮発性の記憶装置、または、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性の記憶装置である。
【0016】
処理部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の制御プログラムが実行される。なお、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」ということがある。
【0017】
最適化装置10は、たとえば、問題を変換したイジング型のエネルギー関数の最小値(または最小値が得られる状態変数の値の組合せ)を探索するものである。
イジング型のエネルギー関数(H({x}))は、たとえば、以下の式(1)で定義される。
【0018】
【0019】
右辺の1項目は、N個の状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値(0または1)と重み係数との積を積算したものである。xiはi番目の状態変数、xjはj番目の状態変数を表し、Wijは、xi,xjの相互作用の大きさを示す重み係数である。右辺の2項目は、各状態変数のそれぞれについてのバイアス係数(bi)と各状態変数の値との積の総和を求めたものであり、右辺の3項目(C)は定数である。
【0020】
また、状態変数の1つであるxkの値が変化することによるエネルギー関数の値の変化(エネルギー差(ΔEk))は、ΔEk=-(1-2xk)hkと表せる。1-2xkはxkの変化分(Δxk)を表す。xkが1から0に変化する場合、1-2xk=-1であり、xkが0から1に変化する場合、1-2xk=1である。また、hkはローカルフィールドと呼ばれ、以下の式(2)で表せる。
【0021】
【0022】
上記のようなエネルギー関数の最小値を探索する際、処理部12は、MCMC計算により、複数の状態変数の何れかの値を更新する処理を繰り返す。MCMC計算理論の基礎となっている確率過程は以下の式(3)により記述される。
【0023】
【0024】
式(3)において、πi({x},t)は、{x}(各状態変数の値を示す)で規定される状態が実現する確率である。Pi→jは、状態iから状態jへ遷移する遷移確率を表す。MCMC計算では、計算を繰り返すことで定常分布になることが保証されており、以下の式(4)によって定常状態が記述される。
【0025】
【0026】
ここでπi({x},t)はマルコフ連鎖が定常状態になると時間に依存しない。したがって、式(4)は一般式であるが、式(4)において、和の各項について等式が成り立つ条件がよく使用される。この条件は、詳細つり合いの原理と呼ばれ、以下の式(5)で表される。
【0027】
【0028】
次に、MCMC計算のコア部分になるメトロポリス-ヘイスティングス法(以下M-H法と略す)について説明する。
M-H法では、詳細つり合いの原理(式(5))を満たす遷移確率として、以下の式(6)が用いられる。
【0029】
【0030】
状態iから状態jに状態遷移するときのエネルギー差(ΔE=Ej-Ei=H({xj})-H({xi}))が0より小さい場合、エネルギーが下がる状態遷移であるため、式(6)は、Pi→j=1となる。一方で、逆の状態遷移はエネルギーが上がる状態遷移であるため、Pj→i=πi({x})/πj({x})である。これらを式(5)に代入すると、以下の式(7)のようになり、詳細つり合いの原理を満たす。
【0031】
【0032】
反対にΔE=Ej-Ei≧0の場合についても同様の論理で詳細つり合いの原理が満たされる。したがって、マルコフ連鎖は一意収束するので、サンプリングされる確率分布はπi({x})になる。
【0033】
M-H法において、π({x},t)の確率分布として従来のようにボルツマン分布を用いる場合、π({x},t)=exp(-βE)と表せる(βは逆温度(温度パラメータの値の逆数))。そして式(6)は、以下の式(8)のように表せる。
【0034】
【0035】
しかしながら前述のようにボルツマン分布を用いた場合、解が一旦局所解に捕捉されると、局所解から脱出する確率が非常に低くなる。遷移確率が式(8)で表される場合、ΔEが正に大きくなると、指数関数的にエネルギー障壁を越える確率が下がるためである。たとえば、-βΔE=20程度の場合でも、exp(-20)≒2.06×10-9となるため、21億回の計算回数(MCMC計算の回数)のうち1回程度しか、-βΔE=20となる状態遷移は生じない。
【0036】
このため、SA法、レプリカ交換法またはダイナミックオフセット法を用いて局所解からの脱出を促進する方法があるが、前述のような技術的な問題がある。
磁性体などの物理系についての問題を扱う場合、ボルツマン分布を使わざるを得ない。なぜならば、熱平衡状態がexp(-βE)の統計分布にしたがうからである。物理法則を満たさない系の動的挙動のシミュレーションに意味はないからである。また、ヘルムホルツ自由エネルギーやギブス自由エネルギーなど、系の熱力学的挙動にエントロピー効果が重要な役割を果たす場合は、エントロピーの効果を適切に取り入れるため、使用可能な遷移確率分布にも制約がかかる。
【0037】
しかしながら、イジングモデルで表現される式(1)のようなエネルギー関数の最小値を求める問題は、単に関数の最小値求解問題とみなせばよいため、ボルツマン分布に縛られなくてもよい。
【0038】
なお、式(1)のようなエネルギー関数において、解の個数は2N個存在する。これらをエネルギーの小さい順に並べた集合{E}を{E}={E0,E1,E2,…,Ei,…,Ej,…,EM}とする。つまり、i<jならば、Ei<Ejとする。ここで、MはM≦2Nである。なぜならば、解に重複が許されるからである。そして、E0は下に有界であるとする。つまり、負の無限大に発散せず、必ず最小値が存在するものとする。
【0039】
以下、ボルツマン分布に代る分布を提示する前に、まず、遷移確率は以下の式(9)のように定義されるものとする。
【0040】
【0041】
式(9)において、Pi→jはΔE<0のとき1になり、ΔE≧0のときf(ΔE)の式が適用される関数であるものとする。そしてf(ΔE)はf(0)=1及び以下の式(10)の条件を満たすものとする。
【0042】
【0043】
つまり、f(ΔE)は、現在の状態変数の値により表される現在の状態から複数の異なる状態のそれぞれに遷移する確率(遷移確率)の和が1になるように規格化されている。
このとき確率行列は、以下の式(11)のように定義される。
【0044】
【0045】
また、確率行列(P)の各要素は以下の式(12)のように定義される。
【0046】
【0047】
式(12)において、ΔEij=Ej-Eiである。したがって、確率行列の各行について以下の式(13)が成り立つ。
【0048】
【0049】
したがって、この確率行列は固有値1をもち、定常マルコフ連鎖を形成する。
なお、上記式(9)~式(13)までの定式化は、イジング型の評価関数のように状態変数が0か1の値である場合(エネルギーが離散的となる場合)について行ったが、状態変数が連続変数である場合(エネルギーが連続関数となる場合)に対しても適用できる。以下にその理由を簡単に示す。連続変数が用いられる場合、エネルギーの区間[E0,E1]に対して、微小区間[Ei,Ei+ΔE]における遷移確率は変わらないとして、Eiにおける遷移確率が用いられる。そして、[Ei,Ei+ΔE]の状態から[Ej,Ej+ΔE]への遷移確率をf(ΔE)=f(Ej-Ei)とすれば、離散モデルであるイジング型の評価関数を用いた場合と、全く同じ計算となる。なお、証明の本質部分は同じであるため、状態変数が連続変数である場合についての証明を省略する。
【0050】
なお、上記の方法は、式(5)に示した詳細つり合いの原理を一般的には破る。この方法の特殊な場合であるボルツマン分布を用いた場合(f(ΔE)=exp(-βΔE)とした場合)は、詳細つり合いの原理を満たす。
【0051】
次に、ボルツマン分布に代る遷移確率分布(f(ΔE))の例を示す。f(ΔE)に求められる条件は、式(10)のように規格化できるという条件であり、その条件を満たしていれば任意の遷移確率分布を適用できる。ただ、最適化装置10の処理部12は、最小値求解問題(最適化問題)を効率よく解くという観点で、たとえば、以下の式(14)、式(15)、式(16)で表される遷移確率分布を用いる。
【0052】
【0053】
【0054】
【0055】
ただし、式(10)の規格化条件を満たすために、式(14)~式(16)において、m1>1、m2>1、m3>0である。ただし、式(14)~式(16)はΔE≧0に対して定義されるものとする。
【0056】
なお、非特許文献3には、Pq(xt→xt+1)=1/[1+(q-1)βΔE]1/q-1と表せる遷移確率分布が示されている(非特許文献3の式(5)参照)。この式は、式(14)とは異なる。q=2のとき、式(14)のm1=1の場合と同じになるが、上記のように式(14)では、m1>1としているためである。なお、非特許文献3では、1/[1+(q-1)βΔE]1/q-1では、q≧2の場合、規格化積分が無限大に発散する(規格化積分が存在しない)ため、確率論的に誤った遷移確率となる。また、非特許文献3では、q=1の場合、遷移確率分布はボルツマン分布となる。q<1の場合、遷移確率がべき乗で表される。たとえば、q=1/2の場合、Pq(xt→xt+1)=(1-βΔE/2)2となるが、1-βΔE/2<0を満たす場合、つまりΔEが正に大きくなると遷移確率が無限大に発散してしまう。そのため、非特許文献3ではこのような条件では、遷移確率を0にしているが、その場合、解が深い(ΔEが大きい)極小値に捉えられた場合、脱出することが不可能になってしまう。式(14)は、これらの状況が生じないように定式化されている。
【0057】
なお、式(15)で表される遷移確率分布は、m2=2の場合、コーシー分布と呼ばれる。式(16)で表される遷移確率分布は、m3=1の場合、ボルツマン分布となり、m3=2の場合、正規分布となる。
【0058】
したがって、式(14)~式(16)のうち、式(16)においてm3=1以外の場合の分布がボルツマン分布に代る遷移確率分布となる。
なお、用いられる遷移確率分布は、エネルギー差が大きいほど、ボルツマン分布よりも遷移確率が大きくなる分布であればよいが、用途によって遷移確率分布を使い分けることが望ましい。たとえば、計算量の観点で言えば、式(14)、及び式(15)において、ΔE≫1の領域では近似的に、f(ΔE)≒(βΔE)-mのように、mで定義されるべき関数になる。m=1+δの場合、δを十分小さくとることで漸近的に以下の式(17)のようになる。
【0059】
【0060】
計算量の観点では、ボルツマン分布を遷移確率分布として用いる場合、ΔEを超える平均の計算回数をNBとすると、NB=exp(βΔE)となる。したがって、極小値から脱出するための計算回数は、ΔEに関して指数関数的に増大する。一方、式(14)、式(15)を用いた場合に、ΔEを超える平均の計算回数をNfとすると、Nf≒(βΔE)mであり、βΔEに関して高々べき乗の計算回数でエネルギー関数の極小値から脱出可能である。
【0061】
以上のように、処理部12は、ΔEが大きいほど、ボルツマン分布よりも遷移確率が大きくなる遷移確率分布を用いることで、ΔEが大きい場合に遷移確率が指数関数的に下がるという問題を解決できる。
【0062】
次に、最小値求解問題を解く際のエネルギー探索能力を効率化することを考える。
M-H法ではΔE<0となる状態遷移は受諾され、エネルギーが上がる状態遷移についても確率的に受諾される。M-H法の性質上、ΔE≒0の領域の状態遷移が受諾されすぎるとエネルギーが上がる方向と下がる方向が均等化してしまう。その結果としてエネルギー探索能力が下がってしまう。
【0063】
遷移確率分布としてボルツマン分布が用いられる場合、ΔE=0を境にして遷移確率の微分が不連続的に変化するため、小さくエネルギーが上がる状態遷移が効率的に棄却される。これは、遷移確率分布としてボルツマン分布を使用する場合の利点である。
【0064】
処理部12は、ボルツマン分布のこの利点を用い、かつ、ΔE≫1の領域では遷移確率をΔEのべき乗に比例するようにする。そのため、処理部12は、式(14)を用いる場合、m1=1+δとして、δ>0かつ、δ≪1とすればよい。たとえば、m1=1.0001などとすればよい。
【0065】
図2は、ボルツマン分布とボルツマン分布とは異なる2つの分布の比較例を示す図である。
図2において横軸はx(=βΔE)、縦軸はf(x)(遷移確率)を表している。
図2の左のグラフと右のグラフでは、xとf(x)の範囲が変わっている。
【0066】
図2では、f(x)=exp(-x)で表される分布(ボルツマン分布)と、f(x)=1/(1+x
2)、f(x)=1/(1+x)で表される2つの分布が表されている。式(14)に示した遷移確率分布において、m
1を上記のように1に近づけることで、f(x)=1/(1+x)とほぼ同じ分布になる。f(x)=1/(1+x
2)は、式(15)において、m
2=2とした遷移確率分布に等しい。
【0067】
図2において左側のグラフから分かるようにΔE≒0の領域では、f(x)=1/(1+x)は、ボルツマン分布に漸近する。また、
図2において右側のグラフから分かるように、x(=βΔE)≫1の領域においては、1/(1+x)と1/(1+x
2)は、exp(-x)よりも大きい値(遷移確率)となる。βΔE=20の場合、ボルツマン分布においては、f(x)は、exp(-20.0)≒2.1×10
-9程度である。したがって、βΔE=20となる状態遷移は、21億回に一度程度しか受諾されない。一方、式(14)で表される遷移確率分布では、m
1を1に近づけ、1/(1+x)に近似したとき、βΔE=20の場合、遷移確率は0.05程度であるから、βΔE=20となる状態遷移は、20回に一度は受諾される。したがって、ボルツマン分布が用いられる場合よりも、2400万倍も効率よく状態遷移を発生させられる。
【0068】
図1には、最適化装置10の制御方法の一例が示されている。
処理部12は、問題情報を取得する(ステップS1)。問題情報は、たとえば、式(1)に示したエネルギー関数の重み係数(W
ij)、バイアス係数(b
i)、定数(C)などを含む。問題情報は、使用する遷移確率分布の情報(前述の式(14)~式(16)のm
1~m
3の値などを含む)や、温度情報(たとえば、逆温度(β))、エネルギー関数に含まれる状態変数の値、MCMC計算の終了条件となる計算回数などを含んでいてもよい。問題情報は、外部から供給されてもよいし、記憶部11に予め記憶されていてもよい。
【0069】
次に、処理部12は、初期化処理を行う(ステップS2)。初期化処理は、エネルギー関数が式(1)で表される場合、記憶部11に記憶される状態変数であるx1~xNを初期化する処理を含む。x1~xNは、たとえば、全て0に初期化されてもよいし、全て1に初期化されてもよい。また、x1~xNは、ランダムに0と1が設定されるように初期化されてもよいし、外部から供給された値によって初期化されてもよい。また、初期化処理は、問題情報と、状態変数の初期値に基づいて、エネルギーの初期値を式(1)により計算する処理を含む。エネルギーの初期値は、現在の最小値(Emin)として記憶部11に記憶される。
【0070】
その後、処理部12は更新処理を行う(ステップS3)。更新処理では、処理部12は、前述の規格化条件を満たすとともにΔEが大きいほどボルツマン分布よりも遷移確率が大きくなる、たとえば、前述の式(14)~式(16)の何れかで表され遷移確率分布に基づいて、MCMC計算により状態変数の値を更新する。
【0071】
たとえば、処理部12は、x1~xNの何れかをランダムに1つ選択して、選択した状態変数の値を反転(0から1または1から0に変化)させたときのΔEを計算する。そして、処理部12は、ΔEが負ならば、選択した状態変数の値を反転させる(更新を確定させる)。ΔEが正ならば、たとえば、式(14)~式(16)の何れかのf(ΔE)と、0≦R≦1の一様乱数Rとの比較結果に基づいて、f(ΔE)≧Rであるならば、処理部12は、選択した状態変数の値を反転させる。f(ΔE)≧Rでないならば、処理部12は、選択した状態変数の値の反転を行わない。
【0072】
また、ステップS3の処理において、状態変数の値の反転が生じる場合、処理部12は、エネルギーを更新する。更新したエネルギーがこれまでの最小値である場合、処理部12は、記憶部11に記憶されているEminを更新する。なお、記憶部11は、Eminが得られたときの各状態変数の値を最適解の候補として記憶してもよい。
【0073】
ステップS3の処理後、処理部12は、MCMC計算の計算回数が終了条件となる所定の回数(NE)に達したか否かを判定する(ステップS4)。計算回数がNEに達していない場合、ステップS3からの処理が繰り返される。計算回数がNEに達した場合、処理部12は、記憶部11に記憶されている現在のEminを計算結果として、たとえば、外部装置(外部のコンピュータ、記憶媒体、表示装置など)に出力し(ステップS5)、処理を終える。
【0074】
以上のような第1の実施の形態の最適化装置10によれば、ΔEが正に大きいほど、遷移確率がボルツマン分布よりも大きくなる遷移確率分布を適用するため、解が局所解から高効率で脱出可能となる。また、ダイナミックオフセット法のようにエネルギーにオフセットを加える方法ではないためマルコフ連鎖を破壊することもない。
【0075】
以上のことから、マルコフ連鎖を破壊せずに効率的にエネルギー関数の最小値の探索が可能となる。
(第2の実施の形態)
図3は、第2の実施の形態の最適化装置のハードウェアの一例を示す図である。
【0076】
第2の実施の形態の最適化装置20は、たとえばコンピュータであり、CPU21、RAM22、HDD23、画像信号処理部24、入力信号処理部25、媒体リーダ26及び通信インタフェース27を有する。上記ユニットは、バスに接続されている。
【0077】
CPU21は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU21は、HDD23に記憶されたプログラムやデータの少なくとも一部をRAM22にロードし、プログラムを実行する。なお、CPU21は複数のプロセッサコアを備えてもよく、最適化装置20は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
【0078】
RAM22は、CPU21が実行するプログラムやCPU21が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、最適化装置20は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0079】
HDD23は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、最適化装置20の制御プログラムが含まれる。なお、最適化装置20は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0080】
画像信号処理部24は、CPU21からの命令にしたがって、最適化装置20に接続されたディスプレイ24aに画像を出力する。ディスプレイ24aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
【0081】
入力信号処理部25は、最適化装置20に接続された入力デバイス25aから入力信号を取得し、CPU21に出力する。入力デバイス25aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、最適化装置20に、複数の種類の入力デバイスが接続されていてもよい。
【0082】
媒体リーダ26は、記録媒体26aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体26aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0083】
媒体リーダ26は、たとえば、記録媒体26aから読み取ったプログラムやデータを、RAM22やHDD23などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU21によって実行される。なお、記録媒体26aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体26aやHDD23を、コンピュータ読み取り可能な記録媒体ということがある。
【0084】
通信インタフェース27は、ネットワーク27aに接続され、ネットワーク27aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース27は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【0085】
次に、最適化装置20の機能及び処理手順を説明する。
図4は、第2の実施の形態の最適化装置の機能例を示すブロック図である。
最適化装置20は、記憶部30、処理部31を有する。処理部31は、制御部31a、設定読込部31b、問題設定部31c、ハミルトニアン計算部31d、エネルギー差計算部31e、乱数発生部31f、遷移確率計算部31g、MCMC計算実行部31h、SA実行部31i、レプリカ交換実行部31jを有する。さらに、処理部31は、エネルギー更新部31k、結果出力部31l、λアニール部31m、パラメータ最適化部31nを有する。
【0086】
なお、記憶部30は、たとえば、HDD23に確保した記憶領域を用いて実装できる。処理部31は、たとえば、CPU21が実行するプログラムモジュールを用いて実装できる。
【0087】
記憶部30は、エネルギー情報、スピン情報、レプリカ情報、温度情報、問題設定情報、ハミルトニアン情報を記憶する。
エネルギー情報は、計算されたエネルギーの初期値や、これまで計算されたエネルギーを最小値から小さい順にNrank個含む。また、エネルギー情報は、Nrank個のエネルギーに対応した各状態変数の値のNrank個の組合せを含んでいてもよい。スピン情報は、各状態変数の値を含む。レプリカ情報は、レプリカ交換法を実行するために用いられる情報であり、レプリカ数などを含む。温度情報は、温度パラメータの値(以下、単に温度という)または逆温度を含む。問題設定情報は、たとえば、使用する最適化方法(SA法、レプリカ交換法など)、レプリカ交換やアニーリングの頻度、サンプリング頻度、温度変更スケジュール、使用する遷移確率分布の情報、計算終了条件となるMCMC計算の計算回数などを含む。ハミルトニアン情報は、たとえば、式(1)に示したエネルギー関数の重み係数(Wij)、バイアス係数(bi)、定数(C)などを含む。
【0088】
制御部31aは、処理部31の各部を制御して最小値求解処理を行う。
設定読込部31bは、記憶部30から上記の各種情報を、制御部31aが理解可能な形式で読み込む。
【0089】
問題設定部31cは、状態変数の初期値や、エネルギーの最小値の初期値を計算する。
ハミルトニアン計算部31dは、エネルギーを計算する。
エネルギー差計算部31eは、状態変数の値が反転されることによるエネルギー差を計算する。
【0090】
乱数発生部31fは、反転対象の状態変数をランダムに選択するための乱数を生成する。乱数発生部31fとしてはどのようなものを使用してもよいが、MCMC計算の計算回数よりも十分大きい周期をもつメルセンヌツイスタなどの擬似乱数生成器などを用いることが望ましい。
【0091】
遷移確率計算部31gは、選択された遷移確率分布の式と、温度または逆温度と、計算されたエネルギー差に基づいて、遷移確率分布の値を計算する。
MCMC計算実行部31hは、計算された遷移確率分布の値にしたがって、選択された状態変数の値を更新するか否かを判定するなどのMCMC計算を行う。
【0092】
SA実行部31iは、SA法を実行するために、温度変更スケジュールに基づいて、温度を下げていく。
レプリカ交換実行部31jは、レプリカ交換法を実行するため、後述の交換確率に基づいて、レプリカ間で温度を交換する。
【0093】
エネルギー更新部31kは、ハミルトニアン計算部31dが計算したエネルギーに基づいて、記憶部30に記憶されているエネルギー情報を更新する。
結果出力部31lは、MCMC計算の現在の計算回数が、計算終了条件となる所定の回数(以下、NEとする)に達した場合に、エネルギー情報を計算結果として出力する。なお、結果出力部31lは、NEよりも少ない計算回数(以下NIとする)のたびに、その時点で計算されたエネルギーと、そのエネルギーに対応する各状態変数の値を出力してもよい。その場合、最適化装置20は、サンプリング装置として機能し、NIはサンプリング頻度となる。
【0094】
λアニール部31mは、SA法とは異なるアニーリング法である後述のλアニール法(パラメータアニール法、2状態遷移法とも呼ばれる)を実行する。
パラメータ最適化部31nは、後述の方法により、各種パラメータを最適化する処理を行う。
【0095】
図5は、第2の実施の形態の最適化装置の制御方法の一例の処理の流れを示すフローチャートである。
処理が開始すると、まず、設定読込部31bが、記憶部30から上記の各種情報を、制御部31aが理解可能な形式で読み込む(ステップS10)。読み込まれる情報の例については後述する。その後、問題設定部31cは、状態変数の初期化とエネルギーの初期値の計算を含む初期化処理を行う(ステップS11)。そして、制御部31aは、たとえば、記憶部30から読み込まれた問題設定情報にパラメータ最適化処理を行うことを指示する情報が含まれているか否かを判定する(ステップS12)。制御部31aが、パラメータ最適化処理を行うことを指示する情報が含まれていると判定した場合、ステップS24の処理が行われる。
【0096】
制御部31aが、パラメータ最適化処理を行うことが指定されていないと判定した場合、制御部31aは、現在のMCMC計算の計算回数(以下ステップ数と呼ぶ場合もある)を示すNCを1に初期化する(ステップS13)。ステップS13の処理後、MCMC計算実行部31hは、MCMC計算により、M-H計算処理を行う(ステップS14)。M-H計算処理の例については後述する。その後、エネルギー更新部31kは、M-H計算処理の結果にしたがってハミルトニアン計算部31dが計算したエネルギーに基づいて、記憶部30に記憶されているエネルギー情報を更新するエネルギー更新処理を行う(ステップS15)。
【0097】
ステップS15の処理後、制御部31aは、記憶部30から読み込まれた問題設定情報にアニーリング(SA法またはλアニール法)を行うことを指示する情報が含まれているか否かを判定する(ステップS16)。制御部31aが、アニーリングを行うことを指示する情報が含まれていると判定した場合、SA実行部31iまたはλアニール部31mによるアニーリング処理が行われる(ステップS17)。アニーリング処理の例については後述する。アニーリング処理後、または、制御部31aが、問題設定情報にアニーリングを行うことを指示する情報が含まれていないと判定した場合、ステップS18の処理が行われる。
【0098】
ステップS18の処理では、制御部31aは、記憶部30から読み込まれた問題設定情報にレプリカ交換法を行うことを指示する情報が含まれているか否かを判定する(ステップS18)。制御部31aが、レプリカ交換法を行うことを指示する情報が含まれていると判定した場合、レプリカ交換実行部31jによるレプリカ交換処理が行われる(ステップS19)。レプリカ交換処理の例については後述する。レプリカ交換処理後、または、制御部31aが、問題設定情報にレプリカ交換法を行うことを指示する情報が含まれていないと判定した場合、ステップS20の処理が行われる。なお、SA法によるアニーリング処理とレプリカ交換処理とは互いに排他処理であるため、どちらか一方の選択が可能である。一方、λアニール法によるアニーリング処理とレプリカ交換処理とは同時に選択可能である。
【0099】
ステップS20の処理(サンプル出力処理)では、結果出力部31lは、NI回の計算処理を行うたびに、その時点で計算されたエネルギーと、そのエネルギーに対応する各状態変数の値を出力する。サンプル出力処理の例については後述する。
【0100】
次に、制御部31aは、NC=NEであるか否かを判定する(ステップS21)。制御部31aは、NC=NEではないと判定した場合、NCを+1する(ステップS22)。その後、ステップS14からの処理が繰り返される。制御部31aがNC=NEであると判定した場合、結果出力部31lは、エネルギー情報を計算結果として出力する(ステップS23)。その後、最適化装置20の処理が終了する。出力されるエネルギー情報は、たとえば、これまで計算されたエネルギーを最小値から小さい順に並べたNrank個のエネルギーを含む。また、エネルギー情報は、Nrank個のエネルギーに対応した各状態変数の値のNrank個の組合せを含む。
【0101】
ステップS24の処理では、パラメータ最適化部31nは、後述の方法により、各種パラメータを最適化する処理を行い、その結果を表示する。その後、最適化装置20の処理が終了する。
【0102】
なお、
図5に示した処理の流れは一例であって、適宜処理の順序が入れ替えられていてもよい。
(情報読込処理の例)
図6は、情報読込処理の一例の処理の流れを示すフローチャートである。
【0103】
設定読込部31bは、記憶部30から計算終了条件となる計算回数(NE)、サンプリング頻度(NI)を読み込む(ステップS30,S31)。さらに、設定読込部31bは、記憶部30から温度(たとえば、前述の式(14)~式(16)のβ(=1/T)を決めるT(温度(絶対温度)))を読み込む(ステップS32)。また、設定読込部31bは、記憶部30から問題サイズ(状態変数の数(N))、ハミルトニアン情報(式(1)に示したエネルギー関数の重み係数(Wij)、バイアス係数(bi)、定数(C))を読み込む(ステップS33,S34)。
【0104】
また、設定読込部31bは、記憶部30からスピン初期化法(状態変数の初期値の決め方)、遷移確率分布情報を読み込む(ステップS35,S36)。遷移確率分布情報は、MCMC計算にどの遷移確率分布を用いるかを示す情報(分布名など)や、使用する遷移確率分布のパラメータ(たとえば、式(14)~式(16)のm1~m3)を含む。
【0105】
さらに、設定読込部31bは、記憶部30から、使用する最適化方法(SA法、レプリカ交換法など)、アニーリング情報(たとえば、温度変更スケジュール、アニーリングの頻度)を読み込む(ステップS37,S38)。また、設定読込部31bは、記憶部30から、レプリカ数、レプリカ交換用の温度情報(各レプリカに設定する温度列)、アニーリングやレプリカ交換の頻度を読み込み(ステップS39,S40,S41)、情報読込処理を終える。
【0106】
なお、
図6に示した処理の流れは一例であって、適宜処理の順序が入れ替えられていてもよい。
(初期化処理の例)
イジングモデルにおいて、スピン(状態変数)の初期化は重要である。以下に示す初期化処理の例では、問題設定部31cは、4通りのスピン初期化法(“External”、“Random”、“One”、“Zero”)の何れかを行うものとしている。
【0107】
図7は、初期化処理の一例の処理の流れを示すフローチャートである。
たとえば、まず問題設定部31cは、スピン初期化法が“External”であるか否かを判定する(ステップS50)。問題設定部31cは、スピン初期化法が“External”であると判定した場合、最適化装置20の外部から取得した状態変数をスピン情報の初期値として設定する(ステップS51)。
【0108】
問題設定部31cは、スピン初期化法が“External”ではないと判定した場合、スピン初期化法が“Random”であるか否かを判定する(ステップS52)。問題設定部31cは、スピン初期化法が“Random”であると判定した場合、各状態変数に0または1をランダムに設定してスピン情報の初期値とする(ステップS53)。たとえば、問題設定部31cは、全ての状態変数を確率50%で0に設定し、0に設定されなかった状態変数を1に設定する。
【0109】
問題設定部31cは、スピン初期化法が“Random”ではないと判定した場合、スピン初期化法が“One”であるか否かを判定する(ステップS54)。問題設定部31cは、スピン初期化法が“One”であると判定した場合、全状態変数を1に設定してスピン情報の初期値とする(ステップS55)。
【0110】
問題設定部31cは、スピン初期化法が“One”ではないと判定した場合、スピン初期化法が“Zero”であると判定し、全状態変数を0に設定してスピン情報の初期値とする(ステップS56)。
【0111】
ステップS51,S53,S55,S56の処理後、問題設定部31cは、エネルギー(E)の初期値を計算する(ステップS57)。問題設定部31cは、エネルギーの初期値を、ハミルトニアン情報と、スピン情報の初期値に基づいて、式(1)により計算する。
【0112】
さらに、問題設定部31cは、Emin=Eとすることで、計算したエネルギーの初期値をエネルギーの最小値(Emin)として設定し(ステップS58)、初期化処理を終える。
【0113】
なお、
図7に示した処理の流れは一例であって、適宜処理の順序が入れ替えられていてもよい。
(M-H計算処理の例)
図8は、M-H計算処理の一例の処理の流れを示すフローチャートである。
【0114】
乱数発生部31fは、N個の状態変数の識別番号を1~Nとしたとき、1~Nの整数値をランダムに発生することで、反転候補の状態変数を決定する(ステップS60)。
そして、エネルギー差計算部31eは、反転候補の状態変数の値を反転させる場合のエネルギー差(ΔE)を計算する(ステップS61)。反転候補の状態変数の識別番号がkである場合、エネルギー差は、ΔEk=-(1-2xk)hkである。hkは、式(2)により表されるローカルフィールドである。
【0115】
MCMC計算実行部31hは、エネルギー差計算部31eが計算したエネルギー差が0より小さいか否かを判定する(ステップS62)。MCMC計算実行部31hがエネルギー差は0以上であると判定した場合、MCMC計算実行部31h(または乱数発生部31f)は、区間[0,1]で一様乱数Rを発生する(ステップS63)。そして、MCMC計算実行部31hは、遷移確率計算部31gが計算した遷移確率分布(f(ΔE))が、一様乱数R以上であるか否かを判定する(ステップS64)。
【0116】
MCMC計算実行部31hは、f(ΔE)≧Rであると判定した場合、またはステップS62の処理でΔE<0であると判定した場合、反転候補の状態変数の値を反転させる(ステップS65)。このようにして記憶部30に記憶されるスピン情報が更新される。
【0117】
また、ハミルトニアン計算部31dは、ステップS61の処理で計算されたΔEを用いて、エネルギーを計算(更新)する(ステップS66)。
MCMC計算実行部31hは、ステップS64の処理で、f(ΔE)<Rであると判定した場合、またはステップS66の処理後、1回のM-H計算処理を終える。
【0118】
なお、
図8に示した処理の流れは一例である。たとえば、ステップS65,S66の処理の順序を入れ替えてもよい。
(エネルギー更新処理の一例)
図9は、エネルギー更新処理の一例の処理の流れを示すフローチャートである。
【0119】
エネルギー更新部31kは、ハミルトニアン計算部31dが計算したエネルギー(E)が、エネルギー情報として記憶部30に記憶されているNrank個のエネルギーのうち、何番目に小さいのかを示すrankをNrank+1に初期化する(ステップS70)。
【0120】
そして、エネルギー更新部31kは、Nrank個のエネルギーの大きさの順位を示すjを1とした後(ステップS71)、E<Emin[j]であるか否かを判定する(ステップS72)。Emin[j]は、Nrank個のエネルギーのうち、j番目に小さいエネルギーを表す。
【0121】
エネルギー更新部31kは、E<Emin[j]であると判定した場合、rank=jとする(ステップS73)。つまり、今回計算されたエネルギーが、Nrank個のエネルギーのうちに入る(ランキング内である)場合、その順位がrank=jとして、たとえば、RAM22に保持される。
【0122】
エネルギー更新部31kは、E≧Emin[j]であると判定した場合、j=Nrankであるか否かを判定し(ステップS74)、j=Nrankではないと判定した場合、j=j+1(ステップS75)とし、ステップS72からの処理を繰り返す。
【0123】
エネルギー更新部31kは、rank=Nrank+1のまま変わらずに、j=Nrankと判定した場合(エネルギーがランキング外である場合)、エネルギー更新処理を終了する。
【0124】
エネルギー更新部31kは、ステップS73の処理後、rank=Nrankであるか否かを判定する(ステップS76)。エネルギー更新部31kは、rank=Nrankではないと判定した場合、j=rank+1とする(ステップS77)。
【0125】
そして、エネルギー更新部31kは、Emin[j]=Emin[j-1]とし(ステップS78)、{xj}={xj-1}とする(ステップS79)。{xj}は、j番目に小さいエネルギーに対応した各状態変数の値を示す。
【0126】
その後、エネルギー更新部31kは、j=Nrankであるか否かを判定し(ステップS80)、j=Nrankではないと判定した場合、j=j+1とし(ステップS81)、ステップS78からの処理を繰り返す。
【0127】
エネルギー更新部31kは、j=Nrankであると判定した場合、または、ステップS76の処理で、rank=Nrankであると判定した場合、Emin[rank]=Eとし(ステップS82)、{xrank}={x}とする(ステップS83)。このようにして記憶部30に記憶されているエネルギー情報が更新される。ステップS83の処理後、エネルギー更新処理が終了する。
【0128】
なお、
図9に示した処理の流れは一例である。適宜処理の順序が入れ替えられていてもよい。
(アニーリング処理の一例)
図10は、アニーリング処理の一例の処理の流れを示すフローチャートである。
【0129】
制御部31aは、記憶部30から読み込まれた問題設定情報にSA法を行うことを指示する情報が含まれているか否かを判定する(ステップS90)。制御部31aが、問題設定情報にSA法を行うことを指示する情報が含まれていると判定した場合、SA実行部31iは、SA処理を行う(ステップS91)。制御部31aは、問題設定情報にSA法を行うことを指示する情報が含まれていないと判定した場合、問題設定情報にλアニール法を行うことを指示する情報が含まれているか否かを判定する(ステップS92)。制御部31aが、問題設定情報にλアニール法を行うことを指示する情報が含まれていると判定した場合、λアニール部31mは、λアニール処理を行う(ステップS93)。
【0130】
ステップS91,S93の処理後、または、ステップS92の処理で問題設定情報にλアニール法を行うことを指示する情報が含まれていないと判定された場合、アニーリング処理が終了する。
【0131】
(SA処理の一例)
図11は、SA処理の一例の処理の流れを示すフローチャートである。
SA実行部31iは、MOD(N
C,N
A)=0であるか否かを判定する(ステップS100)。N
Cは現在の計算回数(ステップ数)であり、N
Aは、アニーリングの頻度を示すステップ数である。ステップS100の処理では、N
CがN
Aの倍数であるか否かが判定される。SA実行部31iは、MOD(N
C,N
A)=0でないと判定した場合、SA処理を終了する。
【0132】
SA実行部31iは、MOD(N
C,N
A)=0であると判定した場合、温度変更スケジュールを判定する(ステップS101)。
図11の例では、4つの温度変更スケジュールの例が示されている。“inv”は、温度(T)を、N
Cに反比例させて減少させる温度変更スケジュールである。“invroot”は、Tの値を、N
Cの平方根に反比例させて減少させる温度変更スケジュールである。“exp”は、Tの値を、指数型スケジュールで減少させる温度変更スケジュールである。“list”は、Tの値を、リスト(任意に与えられたステップ数とTの値との組)にしたがって変化(減少)させる温度変更スケジュールである。
【0133】
温度変更スケジュールが“inv”である場合、SA実行部31iは、Tの値をNCに反比例させて減少させる(ステップS102)。温度変更スケジュールが“invroot”である場合、SA実行部31iは、Tの値をNCの平方根に反比例させて減少させる(ステップS103)。温度変更スケジュールが“exp”である場合、SA実行部31iは、Tを指数型スケジュールで減少させる(ステップS104)。温度変更スケジュールが“list”である場合、SA実行部31iは、Tの値をリストにしたがって減少させる(ステップS102)。リストを用いることで、任意の温度変更スケジュールを設定できる。
【0134】
ステップS102~S105の処理後、SA処理が終了する。
(λアニール処理の一例)
λアニール法では、エネルギー関数として、H(λ)=(1-λ)HA+λHBが用いられる。
【0135】
HBは、答えを求めたいハミルトニアンであり、たとえば、式(1)が用いられる。HAは初期状態のハミルトニアンであり、答えが良く知られた既知のハミルトニアンである。たとえば、1次元的なスピンの並びを考え、隣接するスピン間のみ相互作用をし、相互作用の強さは全て一定の値として与えられるものとする。こうすると、HAには解析解が存在する状態を作り出せる。たとえば、HAとして、全てのスピン(状態変数)の値が0のとき、エネルギー(H(λ))が最低の状態になるようなハミルトニアンを採用することができる。もちろん、全ての状態変数の値が1のとき、エネルギーが最低の状態になるようなハミルトニアンをHAとして採用してもよい。HAの選び方は、初期状態の決め方に依存する。
【0136】
λ(アニーリング変数)は、0≦λ≦1であり、時間の関数としてλ=λ(t)として定義することができる。ただし、λ(t)は、計算の開始時刻(t=0)にλ(0)=0、計算の終了時刻(t=τ)にλ(τ)=1という境界条件を満たすものとする。このため、時間の関数となるハミルトニアンは、計算の開始時刻では、H(0)=HAとなり、計算の終了時刻では、H(τ)=HBとなる。
【0137】
したがって、t=0にて全ての状態変数が初期化された状態から計算が開始され、計算終了時に答えの知りたいハミルトニアンの答えが得られる。これはイジング型量子コンピュータの考え方であるが、最適化装置20は、量子論を扱わず、古典的なハミルトニアンの範囲内でエネルギーの最小値を求める手法として、λアニール法を用いる。
【0138】
図12は、λアニール処理の一例の処理の流れを示すフローチャートである。
λアニール部31mは、MOD(N
C,N
A)=0であるか否かを判定する(ステップS110)。N
Cは現在の計算回数(ステップ数)であり、N
Aは、アニーリングの頻度を示すステップ数である。ステップS110の処理では、N
CがN
Aの倍数であるか否かが判定されている。λアニール部31mは、MOD(N
C,N
A)=0でないと判定した場合、λアニール処理を終了する。
【0139】
λアニール部31mは、MOD(NC,NA)=0であると判定した場合、たとえば、読み込まれた問題設定情報に含まれるλ変更スケジュールを判定する(ステップS111)。
【0140】
図12の例では、4つのλ変更スケジュールの例が示されている。“linear”は、λ(N
C)=N
C/N
Eにしたがって、λ(N
C)をN
Cの増加とともに増加させるλ変更スケジュールである。“quadratic”は、λ(N
C)を(N
C/N
E)の2乗にしたがって、N
Cの増加とともに増加させるλ変更スケジュールである。“sqrt”は、λ(N
C)を(N
C/N
E)の平方根にしたがって、N
Cの増加とともに増加させるλ変更スケジュールである。“list”は、λ(N
C)をf(N
C)という関数にしたがって増加させるλ変更スケジュールである。f(N
C)は任意であるが、ステップ数とそのステップ数におけるλの値による組(N
i,λ
i)の列として与えられる。
【0141】
λ変更スケジュールが“linear”である場合、λアニール部31mは、λ(NC)を、λ(NC)=NC/NEを計算することで求める(ステップS112)。λ変更スケジュールが“quadratic”である場合、λアニール部31mは、λ(NC)を、(NC/NE)の2乗を計算することで求める(ステップS113)。λ変更スケジュールが“sqrt”である場合、λアニール部31mは、λ(NC)を、(NC/NE)の平方根を計算することで求める(ステップS114)。λ変更スケジュールが“list”である場合、λアニール部31mは、λ(NC)を、前述のf(NC)という関数にしたがって計算する(ステップS115)。
【0142】
ステップS112~S115の処理後、λアニール部31mは、変更前のλについてのH(λ)(たとえば、ハミルトニアン計算部31dによって計算される)の最小値を与える各状態変数の値を記憶部30から読み込む(ステップS116)。読み込まれた各状態変数の値は、λ変更後に再度M-H計算処理が行われるときの初期値として用いられる。ステップS116の処理後、λアニール処理が終了する。
【0143】
なお、λアニール処理は、以下に示すレプリカ交換処理と同時に実行させることができる。
(レプリカ交換処理の一例)
図13は、レプリカ交換処理の一例の処理の流れを示すフローチャートである。
【0144】
レプリカ交換実行部31jは、MOD(NC,NR)=0であるか否かを判定する(ステップS120)。NCは現在の計算回数(ステップ数)であり、NRは、レプリカ交換の頻度を示すステップ数である。ステップS120の処理では、NCがNRの倍数であるか否かが判定されている。
【0145】
レプリカ交換実行部31jは、MOD(NC,NR)=0であると判定した場合、MOD(NC,2)=0であるか否かを判定する(ステップS121)。ステップS121の処理では、NCが偶数であるか否かが判定されている。
【0146】
レプリカ交換実行部31jは、MOD(NC,2)=0であると判定した場合、温度順が偶数番目のレプリカと1つ温度が大きいレプリカによるペアを全て選択する(ステップS122)。レプリカ交換実行部31jは、MOD(NC,2)=0でないと判定した場合、温度順が奇数番目のレプリカと1つ温度が大きいレプリカによるペアを全て選択する(ステップS123)。このようにレプリカ交換候補のレプリカペアを決めることで、レプリカ交換が効率化される。
【0147】
ステップS122,S123の処理後、レプリカ交換実行部31jは、レプリカ交換を行うペアのレプリカ番号を決定する(ステップS124)。
図14は、レプリカ交換を行うペアのレプリカ番号の決定方法の一例を示す図である。
【0148】
図14において、カッコ内の上段がレプリカ番号を示し、下段がレプリカ番号のレプリカに設定されている温度を示す。ただし、T
1<T
2<T
3である。レプリカ交換において交換対象のレプリカ間で温度の交換を行う場合、レプリカ番号と温度との対応関係が変化する。レプリカ交換を隣接する温度が設定されたレプリカ間で行う場合、そのようなレプリカを検出するために、ステップS124の処理では、隣接する温度(T
iとT
i+1)に対応するレプリカ番号が検出される。
【0149】
図14の、一番左側の例では、隣接する温度(T
1,T
2)に対応するレプリカ番号=1,2が検出されている。レプリカ番号=1,2のレプリカ間で温度が交換された場合、
図14の真ん中の例のようになり、隣接する温度に対応するレプリカ番号は、1,2と、1,3の2組がある。レプリカ番号=1,2の間では同じ温度が交換されたばかりであるので、レプリカ番号=1,3がレプリカ交換を行うペアのレプリカ番号として決定される。
【0150】
なお、レプリカ間で状態変数の値を交換する場合には、このような処理が不要であるが、状態変数の自由度が高くなると交換時に送受信より発生する情報量が多くなるため、上記のように温度を交換することが望ましい。
【0151】
その後、レプリカ交換実行部31jは、レプリカ交換を行うペアのid(j=0~Nrep-1(NrepはステップS122,S123で選択されたペア数))を0にする(ステップS125)。そして、レプリカ交換実行部31jは、id=jのペアに対して、レプリカ交換を実行するか否かを判定する(ステップS126)。
【0152】
レプリカ交換法における交換確率は、用いる遷移確率分布がボルツマン分布のように詳細つり合いの原理を満たす場合、以下の式(18)で表せる。
【0153】
【0154】
式(18)において、PA(t)は、レプリカ交換前の状態Aが実現する確率である。状態Aは、βiが設定されているレプリカ番号=iのレプリカにおける状態変数が確率分布π(βi,{xi})にしたがい、βjが設定されているレプリカ番号=jのレプリカにおける状態変数が確率分布π(βj,{xj})にしたがう状態である。βi,βjは逆温度である。式(18)において、PB(t)は、レプリカ交換後の状態Bが実現する確率である。状態Bは、βiが設定されているレプリカ番号=iのレプリカにおける状態変数が確率分布π(βi,{xj})にしたがい、βjが設定されているレプリカ番号=jのレプリカにおける状態変数が確率分布π(βj,{xi})にしたがう状態である。式(18)では、状態変数{xi}、{xj}がレプリカ番号=i,jのレプリカ間で交換される場合が示されているが、βi,βjが交換される場合も同じ交換確率PA→Bとなる。
【0155】
一方、用いる遷移確率分布が詳細つり合いを満たさない場合、交換確率PA→Bは、以下の式(19)で表される。
【0156】
【0157】
式(19)において、ΔEはEj-Eiである。すなわち、ΔEは、βjが設定されているレプリカ番号=jのレプリカにおけるエネルギーと、βiが設定されているレプリカ番号=iのレプリカにおけるエネルギーとの差分である。
【0158】
式(19)を用いる理由を説明する。前述の式(9)により遷移確率を定義した場合、前述のように、固有値1をもつ確率行列が得られ、定常マルコフ連鎖が形成される。つまり、状態は定常状態に収束する。この定常状態に収束したときの状態密度は、遷移確率に対応した状態密度になる。いま、レプリカ交換時に全てのレプリカ同士が、式(19)の交換確率で交換される場合、全レプリカによる系にも定常状態が存在する。レプリカ交換法などの拡張アンサンブル法を用いる場合、マルコフ連鎖が定常状態を形成することが前提であるため、式(19)のような定常状態が得られる交換確率が用いられる。
【0159】
式(19)のf(βiΔE)として、式(14)~式(16)に示したような遷移確率分布が用いられる。
ステップS126の処理では、レプリカ交換実行部31jは、id=jのペアに対して、式(19)の交換確率にしたがって、レプリカ交換を実行するか否かを判定する。たとえば、レプリカ交換実行部31jは、式(19)のf(βiΔE)と、0≦R≦1の一様乱数Rとの比較結果に基づいて、f(βiΔE)≧Rであるならば、レプリカ交換実行部31jは、レプリカ交換を実行すると判定する。f(βiΔE)≧Rでないならば、レプリカ交換実行部31jは、レプリカ交換を実行しないと判定する。
【0160】
レプリカ交換実行部31jは、レプリカ交換を実行すると判定した場合、id=jのペアに含まれるレプリカ間で温度を交換することで、レプリカ交換を実行する(ステップS127)。
【0161】
レプリカ交換実行部31jは、レプリカ交換を実行しないと判定した場合、またはステップS127の処理後、j=Nrep-1であるか否かを判定する(ステップS128)。レプリカ交換実行部31jは、j=Nrep-1であると判定した場合、レプリカ交換処理を終了し、j=Nrep-1ではないと判定した場合、j=j+1とし(ステップS129)、ステップS126からの処理を繰り返す。
【0162】
(サンプル出力処理の一例)
図15は、サンプル出力処理の一例の処理の流れを示すフローチャートである。
図15では、レプリカ交換処理が行われる場合の、サンプル出力処理の例が示されている。
【0163】
結果出力部31lは、MOD(NC,NI)=0であるか否かを判定する(ステップS130)。NCは現在の計算回数(ステップ数)であり、NIは、サンプリング頻度を示すステップ数である。結果出力部31lは、MOD(NC,NI)=0ではないと判定した場合、サンプリング出力処理を終了する。
【0164】
結果出力部31lは、MOD(NC,NI)=0ではあると判定した場合、レプリカ番号(r)を1に設定する(ステップS131)。ステップS131の処理後、結果出力部31lは、レプリカ番号=rのレプリカの現在のエネルギー(Er)を出力し(ステップS132)、そのレプリカの現在の各状態変数の値({xr})を出力する(ステップS133)。なお、結果出力部31lは、λアニール法が実行されている場合、エネルギーとして各λの値についてのH(λ)を出力する。
【0165】
さらに、結果出力部31lは、NCと、レプリカ番号=rのレプリカに設定されている温度(Tr)と、レプリカ番号(r)とを出力する(ステップS134)。
その後、結果出力部31lは、r=Nrであるか否かを判定する(ステップS135)。Nrはレプリカ数である。結果出力部31lは、r=Nrであると判定した場合、サンプリング出力処理を終了し、r=Nrではないと判定した場合、r=r+1とし(ステップS136)、ステップS132からの処理を繰り返す。
【0166】
(パラメータ最適化処理)
エネルギーの最小値をヒューリスティックに求める場合、計算者は最適な計算結果を最小計算回数または最小時間で知りたい。しかし、用いる遷移確率分布によっては解が極小値にトラップされ、簡単には脱出できない場合もある。その場合、結果としてエネルギー空間上を広くサンプリングできず(サンプリング効率が悪化し)、最小値または次善の解の求解精度と速度が悪化する。このため、最小値求解問題を計算する際には、遷移確率分布の選択が重要である。
【0167】
図16は、2種類の遷移確率分布を用いた場合のサンプリング結果の比較例を示す図である。
図16の左では、式(16)で表される遷移確率分布(以下Tempered Gaussian型の遷移確率分布と呼ぶ場合もある)であり、m
3=1/4とした場合の遷移確率分布を用いた場合のサンプリング結果が示されている。
図16の右では、式(14)で表される遷移確率分布(以下Power law型の遷移確率分布と呼ぶ場合もある)であり、m
1≒1とした場合の遷移確率分布を用いた場合のサンプリング結果が示されている。ただし、両分布とも、温度(絶対温度)を0.1としている。
【0168】
横軸はMonte Carlo Steps(前述のステップ数に相当する)を表し、縦軸はCost Function(前述のエネルギーに相当する)を表す。
図16の例では、サンプリング結果の分散が大きく(サンプリング範囲が広く)、よりエネルギーが低い領域を探索できるのは、Tempered Gaussian型の遷移確率分布を用いた場合である。
【0169】
しかしながら、温度などのパラメータを変えると、結論が変わりえる。
図17は、温度を変更したときの2種類の遷移確率分布を用いた場合のサンプリング結果の比較例を示す図である。
図17では、温度を1.0と変えた以外は、
図16と同じ条件のTempered Gaussian型の遷移確率分布と、Power law型の遷移確率分布を用いた場合のサンプリング結果が示されている。
【0170】
温度を1.0とした場合、
図17に示されているように、よりエネルギーが低い領域を探索できるのは、Power law型の遷移確率分布を用いた場合である。一方でサンプリング結果の分散が大きいのはTempered Gaussian型の遷移確率分布を用いた場合である。
【0171】
このように、最小値求解問題を計算する際には、最適な遷移確率分布を選択することや、最適なパラメータを推定することが重要である。
一方で、最適な遷移確率分布の選択や、最適なパラメータの推定を行うための手続きは煩雑である。最小値求解問題の本計算をする前に、使用する遷移確率分布やパラメータを変えながら多数回の計算を行うことになるためである。
【0172】
そこで、パラメータ最適化部31nは、遷移確率分布に含まれる最適なパラメータを、以下のように自動推定する機能を有する。なお、自動推定機能は、以下の性質を満たすことが望ましい。すなわち、短時間の予備計算で推定が行えること、サンプリング時のエネルギーの平均値が小さくなること、サンプリング時のエネルギーの分散が大きくなること、エネルギーの最小値がより小さくなること、という4つの性質である。
【0173】
図18は、パラメータ最適化処理の一例の処理の流れを示すフローチャートである。
パラメータ最適化部31nは、最適化対象の遷移確率分布の関数名を、記憶部30から読み込む(ステップS140)。たとえば、式(14)で表される遷移確率分布の関数名は“Power law”、式(15)で表される遷移確率分布の関数名は“Hyperbolic”、式(16)で表される遷移確率分布の関数名は“Tempered-Gaussian”などと指定される。また、ユーザが指定する遷移確率分布が読み込まれる場合、“User-Defined”などと関数名が指定される。パラメータ最適化部31nは、“User-Defined”を読み込む場合、(ΔE
i,f(ΔE
i))の組合せも読み込み、0≦f(ΔE
i)≦1を満たすように、各組合せによる各点を滑らかに繋いでいく。このときパラメータ最適化部31nは、たとえば、キュービックスプラインなどを用いることができる。なお、パラメータ最適化部31nは、ΔE
iの最大値が与えられていて、読み込まれたΔE
iがその最大値より大きい場合は、f(ΔE
i)=0とする。
【0174】
そして、パラメータ最適化部31nは、最適化対象のパラメータ名を、記憶部30から読み込む(ステップS141)。全ての遷移確率分布の関数において共通であるパラメータは、温度(式(14)~式(16)では逆温度(β=1/T)で表されている)であるが、式(14)~式(16)の場合、m1~m3も最適化対象のパラメータとして選択できる。
【0175】
さらに、パラメータ最適化部31nは、パラメータを最適化する範囲を、記憶部30から読み込む(ステップS142)。たとえば、パラメータが温度の場合、最小温度と最大温度が読み込まれる。なお、記憶部30に記憶されている範囲とは異なる範囲を指定する場合には、たとえば、入力デバイス25aから指定すべき範囲が入力される。たとえば、パラメータが温度の場合、本実施の形態の最適化装置20では負の絶対温度は定義されないため、範囲は0以上となる。
【0176】
次に、パラメータ最適化部31nは、パラメータを変化させる回数(予備計算回数)Npを、記憶部30から読み込む(ステップS143)。そして、パラメータ最適化部31nは、パラメータの刻み幅ΔPを計算する(ステップS144)。パラメータの最大値をPmax、パラメータの最小値をPminとしたとき、パラメータ最適化部31nは、たとえば、ΔP=(Pmax-Pmin)/(Np-1)を計算することで、ΔPを求める。なお、パラメータ最適化部31nは、PminとPmaxの間を不等分に分割したΔPを示すリストを読み込んでもよい。
【0177】
その後、パラメータ最適化部31nは、切捨て対象の計算回数Ndumpを、記憶部30から読み込む(ステップS145)。Ndumpは、数値統計の分野で“バーンイン”と呼ばれる期間を決める計算回数であり、マルコフ連鎖が定常状態に収束するまでのステップ数を意味する。計算対象の問題によってバーンインのステップ数は異なる。
【0178】
なお、ここまでの説明では、パラメータ最適化部31nは、記憶部30から各種情報を読み込むものとしたが、
図3に示したディスプレイ24aに読み込み候補を表示させ、ユーザによる入力デバイス25aの操作によって入力された情報を読み込んでもよい。
【0179】
ステップS145の処理後、パラメータ最適化部31nは、現在の予備計算回数を示すiを1とし(ステップS146)、パラメータの値を計算する(ステップS147)。ステップS147の処理では、パラメータ最適化部31nは、Pi=Pmin+(i-1)を計算することで、パラメータの値(Pi)を求める。
【0180】
その後、パラメータ最適化部31nは、MCMC計算の現在の計算回数を示すjを1とし(ステップS148)、MCMC計算によりエネルギー(Ei)とエネルギー差(ΔEi)を計算する(ステップS149)。
【0181】
そして、パラメータ最適化部31nは、j>N
dumpであるか否か(計算回数がバーンイン期間を経過したか否か)を判定する(ステップS150)。パラメータ最適化部31nは、j>N
dumpであると判定した場合、E
iとΔE
iとエネルギーの最小値を、たとえば、
図3に示したRAM23に保存する(ステップS151)。
【0182】
パラメータ最適化部31nは、j>Ndumpではないと判定した場合(マルコフ連鎖が定常状態に達していないと判定した場合)、またはステップS151の処理後、j=Mであるか否かを判定する(ステップS152)。Mは、MCMC計算の計算回数である。Mを大きくとりすぎると予備計算に時間がかかるため、バーンイン期間に相当する計算回数よりも大きく、バーンイン期間が経過するまでのデータを切り捨てた後のデータを用いて統計量を計算するためにかかる回数が指定される。モンテカルロ積分を収束するための計算量は1/(Mの平方根)に比例するため、推定を行える程度の計算回数が指定される。たとえば、Mは、1000回から数百万回程度であり、記憶部30から読み込まれる。これにより、以下に示す評価値の計算が、エネルギー関数の最小値の探索を行う際の計算時間(本計算時間)よりも短い時間で計算されるようにしている。
【0183】
パラメータ最適化部31nは、j=Mではないと判定した場合、j=j+1とし(ステップS153)、ステップS149からの処理を繰り返す。パラメータ最適化部31nは、j=Mであると判定した場合、保存したEiとΔEiの平均値と標準偏差を計算する(ステップS154)。なお、計算した平均値と標準偏差は、エネルギーの最小値とともに、各パラメータの値におけるエネルギー関数の値の評価値として、たとえばRAM23に保存される。
【0184】
その後、パラメータ最適化部31nは、i=Npであるか否かを判定する(ステップS155)。パラメータ最適化部31nは、i=Npではないと判定した場合、i=i+1とし(ステップS156)、ステップS147からの処理を繰り返す。
【0185】
パラメータ最適化部31nは、i=N
pであると判定した場合、保存していた評価値を出力し(ステップS157)、パラメータ最適化処理を終える。評価値は、たとえば、
図3に示したディスプレイ24aに出力(表示)される。なお、評価値は、記憶部30に出力されるようにしてもよい。
【0186】
なお、
図18に示した処理の流れは一例である。適宜処理の順序が入れ替えられていてもよい。
図19は、評価値の出力例を示す図である。
【0187】
図19では、温度についての評価値のディスプレイ24aへの表示例が示されている。T=1~10までN
p=10で計算を行った例が示されている。各温度についてのエネルギーの最小値(E
min)、エネルギーの平均値(E
ave)、エネルギーの標準偏差(E
stddev)、エネルギー差の平均値(dE
ave)、エネルギー差の標準偏差(dE
stddev)が評価値としてリスト化されている。また、
図19の例では、E
minが小さい順に、各温度が順位付けされている。N
pが大きくなると、計算結果のデータ量が増えるため、上記のように各パラメータの値に順位付けを行うことで、よいパラメータの値の判別が容易になり、解析時間を削減できる。なお、順位付けは、E
minが小さい順に行うことに限定されず、E
aveが小さい順に順位付けされるようにしてもよい。
【0188】
以上のような、パラメータ最適化処理を行うことで、計算者によるパラメータを決定する手間が削減され、よい計算結果が得られることが期待できるパラメータを容易に決定できる。
【0189】
(効果)
以上のような第2の実施の形態の最適化装置20によれば、第1の実施の形態の最適化装置10と同様に以下の効果が得られる。
【0190】
すなわち、ΔEが(正に)大きいときの遷移確率がボルツマン分布よりも大きくなる遷移確率分布を適用するため、解が局所解から高効率で脱出可能となる。また、ダイナミックオフセット法のようにエネルギーにオフセットを加える方法ではないためマルコフ連鎖を破壊することもない。以上のことから、マルコフ連鎖を破壊せずに効率的にエネルギー関数の最小値の探索が可能となる。
【0191】
さらに、最適化装置20は、レプリカ交換処理の際に、上記のような遷移確率分布を用いた交換確率を採用することで、ボルツマン分布を用いる場合よりもレプリカ交換頻度が上がる。このため、少ないレプリカ数でも温度空間を各レプリカがランダムウォークするようになる。これによりサンプリング空間が広がり、サンプリング効率が向上し、より精度の高い解を得ることができる。
【0192】
また、最適化装置20は、
図9に示したエネルギー更新処理において、これまで計算されたエネルギーを最小値から小さい順にN
rank個含むようにエネルギー情報を更新していく。これにより、エネルギー関数の真の最小値が得られない場合でも、次善の最小値(解)が得られるようになる。
【0193】
(計算例)
以下、上記効果を示すために、最適化装置20による巡回セールスマン問題の計算例を示す。
【0194】
巡回セールスマン問題とは、N個の都市が点Pi(i=1,…,N)として定義されているとき、セールスマンが各都市を必ず1回訪問し、最後に始めの都市に戻ってくる行程の最小距離を求める問題である。ここで、点Piと点Pj間の距離dijは、都市間の距離を表す。巡回セールスマン問題をイジングモデルに変換するために、i番目に都市aを訪問するか否かを示す状態変数をni,aとすると、N2個の状態変数をもつイジング型のエネルギー関数(E)は以下の式(20)のように表せる。
【0195】
【0196】
しかし、式(20)のままであると、セールスマンがなにも行動しない(全ての状態変数が0)という自明解や、セールスマンがi番目に全ての都市を訪問するような非現実解まで許容してしまうため、以下の式(21)、式(22)で表される拘束条件が課される。
【0197】
【0198】
【0199】
式(21)、式(22)で表される拘束条件をペナルティ項として、式(20)に取り込んだ以下の式(23)が、エネルギー最小化対象の式となる。
【0200】
【0201】
式(23)において、k1及びk2はペナルティの大きさを表す定数である。ペナルティの大きさをエネルギーの最小値よりも大きくしておくことで、得られる自明解や非現実解はエネルギーが大きくなり、解の候補から外れる。
【0202】
なお、式(23)は、たとえば、式(1)に示した形式に変換されて計算される。k1及びk2は重み係数(Wij)に反映される。
計算対象の問題として、上記のような巡回セールスマン問題を採用したのは以下の理由による。巡回セールスマン問題は、物理の問題ではないため、ボルツマン分布に縛られる必要がないという点が1つ目の理由である。また、巡回セールスマン問題は、イジングモデルに変換できるという点が2つ目の理由である。また、式(23)において2次の項の相互作用の強さがバラバラであり、遠く離れたスピン間(状態変数間)の相互作用も強いという点が3つ目の理由である。さらに、拘束条件がペナルティ項として式(23)に含まれるため、ペナルティ付のイジングモデル(外場ありのイジングモデル)として理想的であるという点が4つ目の理由である。
【0203】
図20は、3種の遷移確率分布を使用した場合の定常状態の計算結果の一例を示す図である。横軸は、ステップ数を表し、縦軸はエネルギー(E)を表す。
図20では、遷移確率分布として、左から、ボルツマン分布、Power law型の遷移確率分布、Tempered Gaussian型の遷移確率分布を用いた場合のサンプリング結果が示されている。
【0204】
使用した巡回セールスマン問題は、TSPLIBのulysees16(TSPLIB, [online], [平成31年4月11日検索]、インターネット<URL: https://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/>参照)である。なお、計算条件は、T=100.0、式(23)のk1,k2は150、NE=100,000、NI=10、式(14)のm1は1.02、式(16)のm3は0.25である。
【0205】
図20に示されているように、Power law型、Tempered Gaussian型の遷移確率分布を用いた場合でも、ボルツマン分布を用いた場合と同様に、マルコフ連鎖を繰り返すことによって定常状態に収束していることが分かる。さらに、エネルギーの探索範囲は、ボルツマン分布を用いた場合、[1000,4000]程度であるが、Power law型の遷移確率分布では[1000,9000]程度まで広がる。Tempered Gaussian型の遷移確率分布を用いた場合も同様である。
【0206】
図21は、探索性能の比較例を示す図である。横軸はステップ数を表し、縦軸はエネルギー(E)を表す。
図21では、遷移確率分布としてボルツマン分布を用いた場合のサンプリング結果(左上)、遷移確率分布としてボルツマン分布を用い、エネルギーにオフセットを加える手法(ダイナミックオフセット法)によるサンプリング結果(右上)が示されている。さらに、遷移確率分布として、Power law型の遷移確率分布を用いた場合のサンプリング結果(左下)と、Tempered Gaussian型の遷移確率分布を用いた場合のサンプリング結果(右下)が示されている。
【0207】
使用した巡回セールスマン問題は、上記と同様にulysees16であり、計算条件は、T=0.25、式(23)のk1,k2は150、NE=200,000、NI=10、式(14)のm1=は1.02、式(16)のm3は0.25である。なお、ダイナミックオフセット法の計算では、50回連続して同じ状態に留まり続けた場合に、解が極小値に陥ったものとみなし、オフセットを加えるものとしている。
【0208】
図21から明らかなように、オフセットを用いずに、ボルツマン分布を遷移確率分布とした場合、一度、解が極小値に陥った場合、解が極小値から抜け出すことはない。ダイナミックオフセット法を適用した場合、解は極小値から容易に抜け出すことができるが、解として知りたいエネルギー領域のサンプリングは数点しかない(良解が少ない)。一方、Power law型の遷移確率分布や、Tempered Gaussian型の遷移確率分布を用いた場合、極小値から抜け出すことができるとともに、より低いエネルギー領域にも多くの解が探索できている。
【0209】
このため、Power law型やTempered Gaussian型の遷移確率分布を用いた場合、ボルツマン分布を用いた場合やボルツマン分布を用いたダイナミックオフセット法を適用した場合よりも、探索性能が向上することが分かった。
【0210】
さらに、Power law型や、Tempered Gaussian型の遷移確率分布を用いた場合は、エネルギーにオフセットを加える手法ではないためマルコフ連鎖を壊さず、レプリカ交換法のような拡張アンサンブル法をそのまま適用できる。
【0211】
以下、レプリカ交換法を、遷移確率分布としてボルツマン分布を用いて実施した場合と、Power law型の遷移確率分布を用いて実施した場合の計算例を示す。使用した巡回セールスマン問題は、上記と同様にulysees16であり、計算条件は、式(23)のk1,k2は150、NE=200,000(レプリカごと)、NI=10、式(14)のm1=は1.02とした。なお、レプリカ数は8つ、各レプリカに設定される温度列は、T=1.0,3.0,5.0,10.0,15.0,20.0,25.0,30.0であるものとした。
【0212】
図22は、ボルツマン分布を用いた場合の各レプリカにおける温度の遷移の計算結果の一例を示す図である。
図22には、レプリカ番号=1~8までの8つのレプリカのそれぞれにおける、温度(T)の遷移の計算結果が示されている。横軸はステップ数を表し、縦軸はTであり、正の実数を表す。
【0213】
図22に示されているように、ボルツマン分布を用いた場合、各レプリカは温度空間を等確率でランダムウォークしているとは言えないことが分かる。たとえば、レプリカ番号=5のレプリカは、ステップ数が200付近から、T=1.0に固定されてしまっている。
【0214】
図23は、ボルツマン分布を用いた場合の各レプリカにおけるエネルギーの計算結果の一例を示す図である。
図23には、レプリカ番号=1~8までの8つのレプリカのそれぞれにおける、エネルギー(E)の計算結果が示されている。横軸はステップ数を表し、縦軸はエネルギー(E)を表す。
【0215】
図23に示されているように、ボルツマン分布を用いた場合、ほとんどのレプリカのエネルギーは極小値に拘束され、脱出できないことが分かる。
図24は、Power law型の遷移確率分布を用いた場合の各レプリカにおける温度の遷移の計算結果の一例を示す図である。
図24には、レプリカ番号=1~8までの8つのレプリカのそれぞれにおける、温度(T)の遷移の計算結果が示されている。横軸はステップ数を表し、縦軸はTであり、正の実数を表す。
【0216】
図24に示されているように、Power law型の遷移確率分布を用いた場合、各レプリカには各温度がほぼ等確率で設定され、各レプリカは温度空間をランダムウォークしていることが分かる。
【0217】
図25は、Power law型の遷移確率分布を用いた場合の各レプリカにおけるエネルギーの計算結果の一例を示す図である。
図25には、レプリカ番号=1~8までの8つのレプリカのそれぞれにおける、エネルギー(E)の計算結果が示されている。横軸はステップ数を表し、縦軸はエネルギー(E)を表す。
【0218】
図25に示されているように、Power law型の遷移確率分布を用いた場合、各レプリカのエネルギーは、特定の極小値に陥っても容易に脱出できていることが分かる。
図26は、ボルツマン分布とPower law型の遷移確率分布を用いた場合のレプリカ交換法の計算結果の一例を示す図である。また、
図27は、
図26の計算結果において、エネルギーが小さい領域を拡大した図である。
図26、
図27において、横軸はステップ数を表し、縦軸はエネルギー(E)を表す。
【0219】
図26から分かるように、ボルツマン分布を用いた場合(左)、エネルギーは特定の極小値に捕捉されるが、Power law型の遷移確率分布を用いた場合(右)、特定の極小値に陥っても容易に脱出できていることが分かる。また、サンプリングできるエネルギー領域も、ボルツマン分布を用いた場合よりも、Power law型の遷移確率分布を用いた場合のほうが広い。
【0220】
さらに、
図27から分かるように、ボルツマン分布を用いた場合よりも、Power law型の遷移確率分布を用いた場合のほうが得られるエネルギーの最小値も小さい。したがって、最小値探索性能も、ボルツマン分布を用いた場合よりも、Power law型の遷移確率分布を用いた場合のほうが優れている。Power law型の遷移確率分布を用いた場合、エネルギー差が大きい場合にも比較的大きな遷移確率をもつため、ボルツマン分布を用いる場合と異なり、温度の設定を粗くしても交換確率が稼げるからである。
【0221】
図28は、λアニール法の計算結果の一例を示す図である。
図28の左図は、λアニール法単独の場合の計算結果を示し、右図は、λアニール法とレプリカ交換法を組合せた場合の計算結果を示す。横軸はλを表し、縦軸はエネルギー(E)(=H(λ))を表す。
【0222】
使用した巡回セールスマン問題は、上記と同様にulysees16であり、計算条件は、式(23)のk1,k2=150、NE=200,000(レプリカ交換法の場合はレプリカごと)、NI=10、式(14)のm1=は1.02とした。温度は、λアニール法単独の場合、T=1.0、レプリカ交換法と組合せた場合、8つのレプリカに対して、T=1.0,3.0,5.0,10.0,15.0,20.0,25.0,30.0が設定されるものとした。
【0223】
λについてのアニールは、イジング型の量子コンピュータであれば、λを十分ゆっくり少しずつ増やしていけば基底状態が得られることが保証されている。しかし、量子論を扱わず、古典的なハミルトニアンの範囲内でエネルギーの最小値を求める最適化装置20では、量子効果がないためその保証はない。
図28の左図の例では、λが大きくなるとサンプリング効率が悪化している。しかし、
図28の右図のように、λアニール法とレプリカ交換法を組合せることで、サンプリング効率を向上させることができる。これにより効率的にヒューリスティックに最小値の求解を行うことができる。
【0224】
図29は、デジタル回路を用いて並列試行を行う装置と、第2の実施の形態の最適化装置による計算結果の比較例を示す図である。横軸はエネルギーの小さい順序を示すランキングを表し、縦軸はエネルギー(E)を表す。
【0225】
計算対象の問題は、上記と同様にulysees16であり、式(23)のk1,k2は150である。
計算結果40は、たとえば、非特許文献1に示されているようなデジタル回路を用いて並列試行を行う装置を用いた場合の計算結果である(SA法とダイナミックオフセット法を適用している)。試行数(前述のNEに対応)は、2億回である。
【0226】
計算結果41は、第2の実施の形態の最適化装置20を用いた場合の計算結果である。なお、計算結果41は、
図5に示した処理フローに記載されているアニーリング処理やレプリカ交換処理が行われないときの計算結果を示している。N
E=200,000、N
I=10である。最適化装置20において、使用したCPU21のクロック数は2.60GHzであり、RAM22の容量は12288MBである。なお、プログラムはC++で実装され、OpenMPやMPI(Message Passing Interface)による並列化は行われておらず、1CPUコアでの計算が行われた。
【0227】
図29に示されているように、デジタル回路を用いて並列試行を行う装置を用いた場合よりも、最適化装置20を用いた場合のほうが、より小さい最小値が得られ、計算精度が優れていた。また、計算時間は、前者の場合、13.5秒、後者の場合、1.6秒であり、後者のほうが計算速度についても優れていた。
【0228】
次に、エネルギーが連続関数で表される場合の計算例を示す。
使用したエネルギー関数は、非特許文献3に記載されている以下の式(24)で表される。
【0229】
【0230】
このエネルギー関数は、E0≒57.3276のときに、最小値0をとる関数である。式(24)において、xi(状態変数)の定義域は任意の実数である。このような実数で定義されたエネルギー関数についても、式(14)で表されるPower law型の遷移確率分布を用い、式(9)を用いたMCMC計算を行うことで、効率的にエネルギー関数の最小値の探索が可能である。
【0231】
図30は、連続関数であるエネルギー関数に対する探索性能の比較例を示す図である。横軸はステップ数を表し、縦軸はエネルギー(E)(式(24)のエネルギー関数の値)を表す。
図30では、遷移確率分布としてボルツマン分布を用いた場合のサンプリング結果(左)、Power law型の遷移確率分布を用いた場合のサンプリング結果(右)が示されている。
【0232】
計算条件は、T=1.0、N
E=100,000、N
I=10、式(14)のm
1=は1.02である。
図30から明らかなように、ボルツマン分布を遷移確率分布とした場合、一度、解が極小値に陥った場合、解が極小値から抜け出すことはない。一方、Power law型の遷移確率分布を用いた場合、極小値から抜け出すことができることが
図30から明らかである。また、Power law型の遷移確率分布を用いた場合、
図30から明らかなように、一定回数同じ状態に留まるような状態を、少ない計算回数で多数求めることができる。すなわち、多数の極小値が求まるため、最小値以外にも極小値が重要な意味を持つ系では、効率的な解候補を求めることができる。そのような系の代表例として、有機化合物や生体分子などがある。
【0233】
(変形例)
上記の説明では、
図4に示した処理部31は、CPU21が実行するプログラムモジュールを用いて実装できるものとして説明したが、処理部31の各部を、ASICやFPGAなどの特定用途の電子回路により実現するようにしてもよい。
【0234】
たとえば、ハミルトニアン計算部31dは、積和演算回路を用いて式(1)を計算してもよい。MCMC計算実行部31hについても、一様乱数と式(14)~式(16)に示されているようなf(ΔE)とを比較する比較回路などを用いて実現できる。さらに、エネルギー差計算部31eを、非特許文献1などのように、各状態変数の値が変化することによるエネルギー差を並列に計算する電子回路により実現するようにしてもよい。最適化装置20は、前述のようにボルツマン分布とは異なる遷移確率分布を用いることで、高効率で解を極小値から脱出させることができるが、上記のような電子回路をアクセラレータとして用いることで、解が深い極小値に陥った場合の脱出を促進できる。同様の理由により、GPGPUなどをアクセラレータとして処理部31の各部の処理を実行するために用いてもよい。
【0235】
なお、OpenMPやMPIを用いた並列化や、AVX(Advanced Vector eXtensions)256やAVX512など特定のCPU命令セットに対して特化したチューニングを行うことでより性能を向上できることが期待される。
【0236】
なお、上記では、計算対象の問題として巡回セールスマン問題を例にして説明したが、金融工学など、他の分野の問題にも適用可能である。また、ジョブスケジューリング問題もイジングモデルを用いて定式化可能であるため、各種のスケジュール最適化問題(たとえば、病院内での関係者のスケジュールを最適化する問題など)に適用することもできる。さらに、ディープラーニング分野においても、制限ボルツマンマシンはイジングモデルを用いて定式化可能であるため、制限ボルツマンマシンの最適化にも使用できる。このため、人工知能分野にも適用可能である。
【0237】
また、イジング型の評価関数の最小値の探索以外にも、状態変数が連続変数である評価関数の最小値の探索に対しても適用できるため、計算対象の問題も上記の分野に限定されるものではない。
【0238】
また、上記では評価関数の最小値を探索するものとしたが、評価関数の符号などを反転することで、評価関数の最大値を探索する手法にも拡張できる。
なお、前述のように、上記の処理内容は、最適化装置20にプログラムを実行させることで実現できる。
【0239】
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体26a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVD及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD23)にプログラムをコピーして実行してもよい。
【0240】
以上、実施の形態に基づき、本発明の最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【0241】
10 最適化装置
11 記憶部
12 処理部