(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】最適化装置、最適化プログラムおよび最適化方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20240730BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2020088345
(22)【出願日】2020-05-20
【審査請求日】2023-02-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】此島 眞喜子
(72)【発明者】
【氏名】田村 泰孝
【審査官】新井 則和
(56)【参考文献】
【文献】特開2020-046718(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
レプリカ交換法を用いて解の探索を行う最適化装置において、
各々が解の探索を行う複数のレプリカと、
所定の時刻における前記複数のレプリカそれぞれの第1状態に基づいて、前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成する生成部と、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する制御部と、を有
し、
前記生成部は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとの多数決に基づいて前記リファレンスビットを生成する、
ことを特徴とする最適化装置。
【請求項2】
レプリカ交換法を用いて解の探索を行う最適化装置において、
各々が解の探索を行う複数のレプリカと、
所定の時刻における前記複数のレプリカそれぞれの第1状態に基づいて、前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成する生成部と、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する制御部と、を有
し、
前記生成部は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとに加算して得られたヒストグラムに基づいて前記リファレンスビットを生成する、
ことを特徴とする最適化装置。
【請求項3】
レプリカ交換法を用いて解の探索を行う最適化装置において、
各々が解の探索を行う複数のレプリカと、
所定の時刻における前記複数のレプリカそれぞれの第1状態に基づいて、前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成する生成部と、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する制御部と、を有
し、
前記制御部は、生成された前記リファレンスビットについて、所定のステップ数、相互作用なしのハミルトニアンでモンテカルロ法を試行した後の前記リファレンスビットを前記複数のレプリカそれぞれに参照させる、
ことを特徴とする最適化装置。
【請求項4】
前記生成部は、前記複数のレプリカそれぞれの前記第1状態の中でエネルギーが最小であるレプリカの状態に基づいて前記リファレンスビットを生成する、
ことを特徴とする請求項1乃至3のいずれか一項に記載の最適化装置。
【請求項5】
レプリカ交換法を用いて解の探索を行うコンピュータに実行させる最適化プログラムであって、
所定の時刻の複数のレプリカそれぞれの第1状態に基づいて前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成し、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する、
処理をコンピュータに実行させ
、
前記生成する処理は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとの多数決に基づいて前記リファレンスビットを生成する、
ことを特徴とする最適化プログラム。
【請求項6】
レプリカ交換法を用いて解の探索を行うコンピュータに実行させる最適化プログラムであって、
所定の時刻の複数のレプリカそれぞれの第1状態に基づいて前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成し、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する、
処理をコンピュータに実行させ
、
前記生成する処理は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとに加算して得られたヒストグラムに基づいて前記リファレンスビットを生成する、
ことを特徴とする最適化プログラム。
【請求項7】
レプリカ交換法を用いて解の探索を行うコンピュータが実行する最適化方法であって、
所定の時刻の複数のレプリカそれぞれの第1状態に基づいて前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成し、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する、
処理をコンピュータが実行
し、
前記生成する処理は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとの多数決に基づいて前記リファレンスビットを生成する、
ことを特徴とする最適化方法。
【請求項8】
レプリカ交換法を用いて解の探索を行うコンピュータが実行する最適化方法であって、
所定の時刻の複数のレプリカそれぞれの第1状態に基づいて前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成し、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する、
処理をコンピュータが実行
し、
前記生成する処理は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとに加算して得られたヒストグラムに基づいて前記リファレンスビットを生成する、
ことを特徴とする最適化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、最適化装置、最適化プログラムおよび最適化方法に関する。
【背景技術】
【0002】
現在の社会ではあらゆる分野で情報処理が行われている。これらの情報処理はコンピュータ等の演算装置で行われており、様々なデータを演算、加工し、意味のある結果を得ることにより、予測、決定、制御等が行われる。これらの情報処理の1つとして最適化処理があり重要な分野となっている。
【0003】
最適化処理の一つに離散最適化問題を解くものがある。離散最適化問題では、大規模で多変数になると、組み合わせ数が爆発的に増加し、全組み合わせを総当りで計算して求める手法では計算時間が現実的な域で収まらなくなる場合がある。
【0004】
このような大規模な多変数の離散最適化問題を解く方法としては、例えばイジング型のエネルギー関数を用いたシミュレーテッド・アニーリング(疑似焼き鈍し法(SA))がある。このSAでは、計算対象の問題を磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算を行う。
【0005】
離散最適化問題では、最適解ではないが局所的近傍のなかで最小値をとる局所解と呼ばれる状態が多数存在することから、最適解の探索が重要となる。この最適解の探索については、ある状態の複製(レプリカ)を用いて、レプリカごとに独立に解を探索するレプリカ交換法(以下、レプリカ法とよぶ)が知られている。
【先行技術文献】
【非特許文献】
【0006】
【文献】"Unreasonable effectiveness of learning neural networks: From accessible states and robust ensembles to basic algorithmic schemes", Baldassi, Carlo. et. al., arXiv:1605.06444v3 / PNAS E7655-E7662, Published online November 15, 2016
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記の従来技術におけるレプリカ法では、各レプリカにおいて一定間隔ごとに他のレプリカそれぞれと互いに類似していれば大きく、類似していなければ小さくなるような相互作用項を計算する。したがって、各レプリカにおいて相互作用項を計算するために他の全てのレプリカを総なめにして参照することから、最適解を探索する速度が遅くなるという問題がある。
【0008】
1つの側面では、より高速に最適解を得ることを可能とする最適化装置、最適化プログラムおよび最適化方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの案では、レプリカ交換法を用いて解の探索を行う最適化装置であって、各々が解の探索を行う複数のレプリカと、生成部と、制御部とを有する。生成部は、所定の時刻の複数のレプリカそれぞれの第1状態に基づいて、複数のレプリカそれぞれの参照対象となるリファレンスビットを生成する。制御部は、生成されたリファレンスビットを複数のレプリカそれぞれに参照させて所定の時刻より後の時刻の状態を得る。
【発明の効果】
【0010】
より高速に最適解を得ることができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図2】
図2は、実施形態にかかる情報処理装置の機能構成の変形例を示すブロック図である。
【
図3】
図3は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図4】
図4は、MCMCの処理例を示すフローチャートである。
【
図5】
図5は、従来のレプリカ法を実施する情報処理装置の機能構成例を示すブロック図である。
【
図6】
図6は、強磁性体モデルでの比較例を説明する説明図である。
【
図7】
図7は、コンピュータ構成の一例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、実施形態にかかる最適化装置、最適化プログラムおよび最適化方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する最適化装置、最適化プログラムおよび最適化方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0013】
図1は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図1に示すように、情報処理装置1は、制御部10と、複数のレプリカ(図示例では20a、20b、20c)と、リファレンスビット生成部30とを有し、ある状態(異なる温度パラメータによるスピンビット列)の複製(レプリカ)を用いて、レプリカごとに独立に解を探索する最適化装置の一例である。情報処理装置1は、例えばPC(Personal Computer)などを適用できる。
【0014】
なお、図示例ではレプリカの数を3つとしているが、レプリカの数は3つに限定するものではない。また、本実施形態ではレプリカ法の適用対象をイジング型のエネルギー関数を用いたシミュレーテッド・アニーリング(SA)とする場合を例示するが、レプリカ法の適用対象は、確率的勾配法(Stochastic Gradient Descent(SGD))や確率的伝搬法(Belief Propagation(BP))であってもよい。
【0015】
レプリカ20a、20b、20cは、MCMC(マルコフ連鎖モンテカルロ法:Markov Chain Monte Carlo methods)を行うMCMC部21a、21b、21cを有する。
【0016】
MCMC部21a、21b、21cは、各レプリカにおける現在の状態を示すスピンビット列(sa)と、リファレンスビット(sR)と、ハミルトニアンH(s)とを用いて、例えばメトロポリス基準に基づくMCMCを行う。これにより、MCMC部21a、21b、21cは、各レプリカの状態を時間発展させることで、後の時刻の状態を示すスピンビット列(s1、s2、s3)を求める。なお、以下の説明では、「状態を示すスピンビット列」については、単に「状態」と称するものとする。
【0017】
リファレンスビット生成部30は、所定の時刻のレプリカ(20a、20b、20c)それぞれの状態(s1、s2、s3)に基づいて、レプリカそれぞれの参照対象となるリファレンスビット(sR)を生成(計算)する処理部である。すなわち、リファレンスビット生成部30は、生成部の一例である。
【0018】
例えば、リファレンスビット生成部30は、レプリカ(20a、20b、20c)それぞれの状態(s1、s2、s3)のビット列において、ビット毎に多数決を取る(0が多いビットについては0、1が多いビットでは1)ことでリファレンスビット(sR)を生成する。
【0019】
また、リファレンスビット生成部30は、ビット毎の多数決ではなく、全てのレプリカの中でエネルギーが最小であるレプリカの状態(minimum_spin)をリファレンスビット(sR)としてもよい。例えば、リファレンスビット生成部30は、レプリカ(20a、20b、20c)それぞれの状態(s1、s2、s3)の中で、エネルギーが最小(minimum_spin)であるものをリファレンスビット(sR)とする。
【0020】
なお、状態(s)においては、2way1hot制約が存在する場合がある。2way1hot制約とは、二次元配列の行にも列にも1となる要素が1つのみ(ほとんどの要素が0)となる制約のことである。
【0021】
例えば、sは+1,-1ではなく、0,1の数値を取るものとする。紛らわしいのでこれをXと置くと、Xi=(1+si)/2の関係がある。
【0022】
2way1hot制約が存在する場合、多数決に基づいてリファレンスビットを生成すると、リファレンスビットの全てが0となってしまう。
【0023】
このように2way1hot制約が存在するようなケースでは、リファレンスビット生成部30は、ビット毎の多数決ではなく、全てのレプリカについてビットごとに加算し、すなわち、ヒストグラムを取った値をリファレンスビット(sR)としてもよい。
【0024】
制御部10は、例えばCPU(Central Processing Unit)などの電子回路に対応し、情報処理装置1の動作を制御する。具体的には、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによってレプリカ法を用いて解の探索を行う際の種々の処理を実行する。
【0025】
例えば、制御部10は、リファレンスビット生成部30が生成したリファレンスビット(sR)をレプリカ(20a、20b、20c)それぞれに参照させてMCMCを行わせる。これにより、制御部10は、各レプリカの状態を時間発展させることで、レプリカ(20a、20b、20c)それぞれについて次の時刻の状態を得る。このように、情報処理装置1は、各レプリカの状態を時間発展させてエネルギーが最小値となる状態(最適解)の探索を行う。
【0026】
図2は、実施形態にかかる情報処理装置の機能構成の変形例を示すブロック図である。
図2に示すように、変形例にかかる情報処理装置1aでは、MCMC部40を有する点が情報処理装置1と異なる。
【0027】
MCMC部40は、リファレンスビット生成部30が生成したリファレンスビット(s0R)について、所定のステップ数、相互作用を考慮しない(相互作用なし)のハミルトニアンH0(s)でMCMCを行う。制御部10は、MCMC部40がMCMCを試行して得られた状態を最終的なリファレンスビット(sR)とし、レプリカ(20a、20b、20c)それぞれに参照させる。なお、MCMC部40がMCMCを試行するステップ数は、ユーザなどが任意に設定したものであってもよい。
【0028】
図3は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
図3に示すように、処理が開始されると、制御部10は、各レプリカの状態(s
1、s
2、s
3…)、ハミルトニアンH(s)、最小化したいコストE(s)、相互作用を考慮しないハミルトニアンH0(s)を設定する。コストE(s)は、最適化で最小化したい(最適解を求める)式である。これらの設定は、例えばユーザの入力による初期設定値などをもとに行う。
【0029】
次いで、制御部10は、S2~S5の処理を繰り返して各レプリカの状態を時間発展させることで、最適解を探索する。なお、S2~S5の処理はMCMC部40を有する情報処理装置1aの動作例であり、情報処理装置1の場合は、MCMC部40が行うS3の処理をスキップし、s0RをsRと読み替えればよい。
【0030】
S1の後、リファレンスビット生成部30は、例えば次の式(1)のとおりにビット毎に多数決を取ることで、リファレンスビット(s0R)を生成する(S2)。なお、式(1)におけるjは、ビット番号である。
【0031】
【0032】
次いで、MCMC部40は、生成したリファレンスビット(s0R)を用いて、所定のステップだけ相互作用なしのハミルトニアンH0(s)でMCMCを行う。なお、H0(s)=E(s)である。これにより、制御部10は、MCMCを試行後の最終的なリファレンスビット(sR)を得る(S3)。
【0033】
次いで、各レプリカのMCMC部21a、21b、21cは、状態(sR)を用いて、相互作用(γ)を入れた次の式(2)のハミルトニアンH(s)でMCMCを行い、ある時刻の状態(s)を得る(S4)。
【0034】
【0035】
式(2)において、γについては、一定でも、時間とともに徐々に強くしても、弱くしてもよい。また、Iは、リファレンスとレプリカの距離の増加または減少関数である。例えば、Iは、各レプリカがリファレンスの周辺を探索すると効果がある(最適解が得られやすくなる)場合、次の式(3)とする。なお、リファレンス付近の探索を避けると最適解が得られやすくなる場合、Iは、式(3)におけるγの前のマイナスをプラスに変えた式とする。
【0036】
【0037】
次いで、制御部10は、繰り返しの処理を終了するか否かを判定する(S5)。具体的には、制御部10は、所定のステップ数、処理を繰り返した場合、または、E(s)の最小値が得られれば処理を終了するものと判定する。繰り返しの処理を継続する場合(S5:No)、制御部10は、S2へ処理を戻す。また、終了する場合(S5:Yes)、制御部10は、最適解が得られたものとして処理を終了する。
【0038】
図4は、MCMCの処理例を示すフローチャートである。
図4に示すように、MCMC部21a、21b、21cでは、上述したS4に関する処理が開始されると、ビットの状態(s)、ビット数(N)、ハミルトニアンH(s)、逆温度(β)を設定する(S10)。
【0039】
次いで、MCMC部21a、21b、21cは、状態(s)を乱数で初期化する(S11)。なお、MCMC部21a、21b、21cは、エネルギー、最小エネルギーには、初期値としてH(s)を設定する。例えば、エネルギー(E)についてはE=H(s)、Eの最小値(Emin)についてはEmin=Eとする。また、Eminのスピン(minimum_spin)については、minimum_spin=sとする。
【0040】
次いで、MCMC部21a、21b、21cは、sのいずれかのビットを1ビットフリップし、s’とする(S12)。フリップするビットは、乱数などで設定する。
【0041】
次いで、MCMC部21a、21b、21cは、H(s’)を計算し、s’のエネルギー(E’)を求める(S13)。
【0042】
次いで、MCMC部21a、21b、21cは、E’<Eであるならば、s’を採択し、E=E’およびs=s’とする。そうでなくとも、MCMC部21a、21b、21cは、確率的にs’を採択する(S14)。
【0043】
具体的には、MCMC部21a、21b、21cは、区間0≦rand≦1の一様な乱数(rand)を発生させ、rand>exp((E-E’)×β)であれば、E=E’およびs=s’とする。
【0044】
次いで、MCMC部21a、21b、21cは、最小エネルギーとなる状態を記録する。具体的には、MCMC部21a、21b、21cは、E<Eminであれば、Emin=Eおよびminimum_spin=sとする(S15)。
【0045】
次いで、MCMC部21a、21b、21cは、終了条件を満たすか否かを判定する(S16)。例えば、MCMC部21a、21b、21cは、所定のステップ数分ループした場合や、Eminが最小値となる場合は終了条件を満たすものとする。また、1ステップで全てのビットをフリップする場合は、ステップ数×ビット数回ループしたか否かを終了条件としてもよい。
【0046】
終了条件を満たす場合(S16:Yes)、MCMC部21a、21b、21cは、処理を終了する。終了条件を満たさない場合(S16:No)、MCMC部21a、21b、21cは、S12へ処理を戻す。
【0047】
以上のように、レプリカ交換法を用いて解の探索を行う情報処理装置1では、各々が解の探索を行う複数のレプリカ20a、20b、20cと、リファレンスビット生成部30と、制御部10とを有する。リファレンスビット生成部30は、所定の時刻の複数のレプリカ20a、20b、20cそれぞれの第1状態に基づいて、複数のレプリカ20a、20b、20cそれぞれの参照対象となるリファレンスビット(sR)を生成する。制御部10は、生成されたリファレンスビット(sR)を複数のレプリカ20a、20b、20cそれぞれに参照させて所定の時刻より後の時刻の状態を得る。
【0048】
このため、情報処理装置1では、レプリカそれぞれがリファレンスビット(sR)を参照する構成なので、従来のレプリカ法のように各レプリカにおいて相互作用項を計算するために他の全てのレプリカを総なめにして参照することがなく、より高速に最適解を得ることができる。
【0049】
図5は、従来のレプリカ法を実施する情報処理装置の機能構成例を示すブロック図である。
図5に示すように、従来のレプリカ法を実施する情報処理装置100では、レプリカ120a、120b、120cそれぞれにおいて、MCMC部121a、121b、121cと、他の全てのレプリカを総なめに参照して相互作用項を計算(生成)する相互作用項生成部122a、122b、122cとを有する。
【0050】
相互作用項生成部122a、122b、122cでは、一定間隔ごとに(例えば1モンテカルロステップごとに)、自身のレプリカ以外のレプリカが互いに類似していれば大きく、類似していなければ小さくなるような相互作用項(k1、k2、k3)を計算する。更に、相互作用項生成部122a、122b、122cでは、自身のレプリカのビット(s1、s2、s3)とkを乗算して、全体と自身のレプリカのビットが似ていれば更に大きな値になるようにして、エネルギー関数から減算していく。
【0051】
上記の相互作用項生成部122a、122b、122cにおける操作で、情報処理装置100では、各レプリカの状態(s1、s2、s3)が類似していればエネルギーは小さくなり、受理されやすくなる。このため、情報処理装置100では、時間発展と共に、互いのレプリカの状態は似てくる。この場合、ビットの状態s∈{-1,+1}に対するハミルトニアンH(s)は次の式(4)のとおりである。
【0052】
【0053】
ここで、βは逆温度、jはビットの番号、Nはビットの個数である。またkjは次の式(5)のとおりである。
【0054】
【0055】
ここで、γは相互作用の強さである。情報処理装置100では、各レプリカ(例えば20a、20b、20c)の中で、最小解または高速に解が得られた結果を採用する。
【0056】
このような、情報処理装置100では、レプリカ数をnとした場合、相互作用項を計算するために他の全てのレプリカを総なめにして参照することから、参照数はn
2+(n-1)×nとなる。これに対し、本実施形態では、参照数(
図1、2においてs
1、s
2、s
3およびs
Rを参照する矢印の数に相当)は2nに削減される。
【0057】
図6は、強磁性体モデルでの比較例を説明する説明図である。
図6の比較例E1では、強磁性体モデル(FT)での最適解(エネルギーの最小値)の探索において、相互作用なしの場合と、従来のレプリカ法の場合と、本実施例の場合とを比較している。
【0058】
なお、強磁性体モデル(FT)におけるハミルトニアンH(s)は、次の式(6)のとおりである。J0coefは0.001とする。また、最適解を探索する際のレプリカの数は5個とする。
【0059】
【0060】
図6に示すように、本実施例では、最適解に至るまでのステップ数が、従来のレプリカ法で最適解を探索する場合と比較して大きく減少している。すなわち、本実施例では、リファレンスビットを作成することで参照する負荷を減らすことができ、より高速に最適解を得ることが可能である。
【0061】
また、リファレンスビット生成部30は、レプリカ20a、20b、20cそれぞれの状態を示すビットごとの多数決に基づいてリファレンスビット(sR)を生成する。これにより、情報処理装置1では、レプリカ20a、20b、20cそれぞれの状態の多数決で解の探索を行うことができる。
【0062】
また、リファレンスビット生成部30は、レプリカ20a、20b、20cそれぞれの状態の中でエネルギーが最小であるレプリカの状態に基づいてリファレンスビット(sR)を生成する。これにより、情報処理装置1では、レプリカ交換法を用いた解の探索において、エネルギーが最小となる状態(最小解)の探索を、より高速に行うことができる。
【0063】
また、リファレンスビット生成部30は、レプリカ20a、20b、20cそれぞれの状態を示すビットごとに加算して得られたヒストグラムに基づいてリファレンスビット(SR)を生成する。例えば、状態(s)に2way1hot制約が存在する場合は、二次元配列の行にも列にも1となる要素が1つのみとなり、ほとんどの要素が0となる。このため、多数決に基づいてリファレンスビットを生成する場合はリファレンスビットの全てが0となる。これに対し、ヒストグラムに基づいてリファレンスビットを生成することで、リファレンスビットが0に落ち込むことを抑止できる。
【0064】
また、制御部10は、生成したリファレンスビット(s0R)について、MCMC部40により所定のステップ数、相互作用なしのハミルトニアンでモンテカルロ法を試行した後のリファレンスビット(sR)をレプリカ20a、20b、20cそれぞれに参照させる。このように解の探索を行う場合も、ビット単位で他の全てのレプリカを総なめにして参照しないため、参照の負荷を減らすことができる。
【0065】
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0066】
また、情報処理装置1で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0067】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ(ハードウエア)の一例を説明する。
図7は、コンピュータ構成の一例を示すブロック図である。
【0068】
図7に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203と、スピーカ204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
【0069】
ハードディスク装置209には、上記の実施形態で説明した制御部10、レプリカ20a、20b、20c、リファレンスビット生成部30およびMCMC部40等における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0070】
CPU201は、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、制御部10、レプリカ20a、20b、20c、リファレンスビット生成部30およびMCMC部40等に関する各種の処理を行う。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。
【0071】
以上の実施形態に関し、さらに以下の付記を開示する。
【0072】
(付記1)レプリカ交換法を用いて解の探索を行う最適化装置において、
各々が解の探索を行う複数のレプリカと、
所定の時刻における前記複数のレプリカそれぞれの第1状態に基づいて、前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成する生成部と、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する制御部と、
を有することを特徴とする最適化装置。
【0073】
(付記2)前記生成部は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとの多数決に基づいて前記リファレンスビットを生成する、
ことを特徴とする付記1に記載の最適化装置。
【0074】
(付記3)前記生成部は、前記複数のレプリカそれぞれの前記第1状態の中でエネルギーが最小であるレプリカの状態に基づいて前記リファレンスビットを生成する、
ことを特徴とする付記1に記載の最適化装置。
【0075】
(付記4)前記生成部は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとに加算して得られたヒストグラムに基づいて前記リファレンスビットを生成する、
ことを特徴とする付記1に記載の最適化装置。
【0076】
(付記5)前記制御部は、生成された前記リファレンスビットについて、所定のステップ数、相互作用なしのハミルトニアンでモンテカルロ法を試行した後の前記リファレンスビットを前記複数のレプリカそれぞれに参照させる、
ことを特徴とする付記1乃至4のいずれか一に記載の最適化装置。
【0077】
(付記6)レプリカ交換法を用いて解の探索を行うコンピュータに実行させる最適化プログラムであって、
所定の時刻の複数のレプリカそれぞれの第1状態に基づいて前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成し、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する、
処理をコンピュータに実行させることを特徴とする最適化プログラム。
【0078】
(付記7)前記リファレンスビットを生成する処理は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとの多数決に基づいて前記リファレンスビットを生成する、
ことを特徴とする付記6に記載の最適化プログラム。
【0079】
(付記8)前記リファレンスビットを生成する処理は、前記複数のレプリカそれぞれの前記第1状態の中でエネルギーが最小であるレプリカの状態に基づいて前記リファレンスビットを生成する、
ことを特徴とする付記6に記載の最適化プログラム。
【0080】
(付記9)前記リファレンスビットを生成する処理は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとに加算して得られたヒストグラムに基づいて前記リファレンスビットを生成する、
ことを特徴とする付記6に記載の最適化プログラム。
【0081】
(付記10)前記第2状態を特定する処理は、生成された前記リファレンスビットについて、所定のステップ数、相互作用なしのハミルトニアンでモンテカルロ法を試行した後の前記リファレンスビットを前記複数のレプリカそれぞれに参照させる、
ことを特徴とする付記6乃至9のいずれか一に記載の最適化プログラム。
【0082】
(付記11)レプリカ交換法を用いて解の探索を行うコンピュータが実行する最適化方法であって、
所定の時刻の複数のレプリカそれぞれの第1状態に基づいて前記複数のレプリカそれぞれの参照対象となるリファレンスビットを生成し、
生成された前記リファレンスビットを前記複数のレプリカそれぞれに参照させて前記時刻より後の時刻の第2状態を特定する、
処理をコンピュータが実行することを特徴とする最適化方法。
【0083】
(付記12)前記リファレンスビットを生成する処理は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとの多数決に基づいて前記リファレンスビットを生成する、
ことを特徴とする付記11に記載の最適化方法。
【0084】
(付記13)前記リファレンスビットを生成する処理は、前記複数のレプリカそれぞれの前記第1状態の中でエネルギーが最小であるレプリカの状態に基づいて前記リファレンスビットを生成する、
ことを特徴とする付記11に記載の最適化方法。
【0085】
(付記14)前記リファレンスビットを生成する処理は、前記複数のレプリカそれぞれの前記第1状態を示すビットごとに加算して得られたヒストグラムに基づいて前記リファレンスビットを生成する、
ことを特徴とする付記11に記載の最適化方法。
【0086】
(付記15)前記第2状態を特定する処理は、生成された前記リファレンスビットについて、所定のステップ数、相互作用なしのハミルトニアンでモンテカルロ法を試行した後の前記リファレンスビットを前記複数のレプリカそれぞれに参照させる、
ことを特徴とする付記11乃至14のいずれか一に記載の最適化方法。
【符号の説明】
【0087】
1、1a、100…情報処理装置
10…制御部
20a~20c、120a~120c…レプリカ
21a~20c、121a~121c…MCMC部
30…リファレンスビット生成部
40…MCMC部
122a~122c…相互作用項生成部
E1…比較例
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…スピーカ
205…媒体読取装置
206…インタフェース装置
207…通信装置
208…RAM
209…ハードディスク装置
210…バス
211…プログラム
212…各種データ