JP2022052222A - 最適化装置、最適化方法、および最適化プログラム - Google Patents

最適化装置、最適化方法、および最適化プログラム Download PDF

Info

Publication number
JP2022052222A
JP2022052222A JP2020158476A JP2020158476A JP2022052222A JP 2022052222 A JP2022052222 A JP 2022052222A JP 2020158476 A JP2020158476 A JP 2020158476A JP 2020158476 A JP2020158476 A JP 2020158476A JP 2022052222 A JP2022052222 A JP 2022052222A
Authority
JP
Japan
Prior art keywords
replica
replicas
value
interaction
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020158476A
Other languages
English (en)
Other versions
JP7502633B2 (ja
Inventor
悟 半田
Satoru Handa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020158476A priority Critical patent/JP7502633B2/ja
Priority to US17/345,037 priority patent/US20220092380A1/en
Priority to EP21179995.2A priority patent/EP3975057A1/en
Priority to CN202110757910.4A priority patent/CN114298315A/zh
Publication of JP2022052222A publication Critical patent/JP2022052222A/ja
Application granted granted Critical
Publication of JP7502633B2 publication Critical patent/JP7502633B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】複数のレプリカを用いた場合の解探索能力を向上させる。【解決手段】最適化装置は、複数の状態変数を有する複数のレプリカそれぞれについて、レプリカが有する複数の状態変数のうちの第1状態変数の値を更新した場合における、そのレプリカと、複数のレプリカからそのレプリカを除いたレプリカ群のうちの一部である他のレプリカとの、複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内での距離の変化に応じた相互作用の強さの変化量を特定する。そして最適化装置は、第1状態変数の値を更新した場合における相互作用の強さの変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、第1状態変数の値を更新するか否かを決定する。【選択図】図19

Description

本発明は、最適化装置、最適化方法、および最適化プログラムに関する。
ノイマン型コンピュータが不得意とする問題として、大規模な離散最適化問題がある。離散最適化問題を計算する装置としては、例えば、イジング型の評価関数(エネルギー関数などとも呼ばれる)を用いたイジングマシン(ボルツマンマシンとも呼ばれる)がある(例えば、特許文献1参照)。
イジングマシンによる計算では、計算対象の問題は磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えられる。そして、マルコフ連鎖モンテカルロ法により、イジング型の評価関数の値(イジングモデルのエネルギーに相当する)が最小となる状態の探索が行われる。以下、マルコフ連鎖モンテカルロ法を、MCMC(Markov-Chain Monte Carlo)法と略す。MCMC法では、例えばメトロポリス法またはギブス法で規定される状態遷移の受け入れ確率で、その状態遷移が受け入れられる。
MCMC法の一種として、レプリカ交換法(交換モンテカルロ法またはパラレルテンパリング(parallel tempering)法とも呼ばれる)がある。レプリカ交換法は複数の温度を用いたMCMC処理を互いに独立に行い、ある試行回数ごとに、各MCMC処理で得られるエネルギーを比較し、適切な確率で2つの温度に対する状態を交換するという操作を行う方法である。レプリカ交換によれば、温度を徐々に下げていく疑似焼き鈍し法と比べて、局所解に拘束される可能性が抑えられ、全探索空間を効率よく探索できる。
なお、従来、回路の物量を削減しつつ、メトロポリス法に基づく確率的な処理を可能とする情報処理装置が提案されている(例えば、特許文献1参照)。また、分子動力学シミュレーションの分野において、2つの分子間の位相距離を計算して分子間の相互作用を除外するか否かを抑制させるか否かを決定する技術が提案されている(例えば、特許文献2参照)。複数のレプリカを用いて解探索を行う技術としては、Collective Monte Carlo(CMC)と呼ばれる方法や、Robust Ensemble(RE)と呼ばれる方法も提案されている(例えば、非特許文献1,2参照)。
特開2019-082793号公報 米国特許出願公開第2019/0087546号明細書
Gregoire Clarte and Antoine Diez,"Collective sampling through a Metropolis-Hastings like method: kinetic theory and numerical experiments", arXiv:1909.08988v1 [math.ST], 18 Sep. 2019 Baldassi, Carlo. et. al., "Unreasonable Effectiveness of Learning Neural Networks: From Accessible States and Robust Ensembles to Basic Algorithmic Schemes", PNAS E7655-E7662, Published online 15 Nov. 2016
MCMC法を高速化するために、多数のレプリカを用いて集団で探索をする様々な方法が提案されているが、いずれの方法においても、集団探索の効果が十分には発揮できない場合がある。例えば、遷移先の候補の選び方が1-bitフリップ(複数のビットのうちの1つの値を反転させる)の場合、各ビットが反転対象として等確率で選択され、選択されたビットを反転させた状態への遷移確率は遷移前後のエネルギー差に基づいて決定される。そのため、どのレプリカもエネルギー勾配に従って状態変化し、状態遷移の過程が同じ道筋を辿ってしまう可能性がある。その結果、複数のレプリカが同じ局所解に留まってしまい、十分に広く状態空間を探索できない場合がある。
なお、このような問題は、状態変数の値が離散的な場合に限らず、状態変数が連続的な値を取り得る最適化問題においても同様に生じる。
1つの側面では、本発明は、複数のレプリカを用いた場合の解探索能力を向上させることを目的とする。
1つの案では、以下に示す記憶部と処理部とを有する最適化装置が提供される。
記憶部は、複数のレプリカそれぞれの複数の状態変数の値を記憶する。処理部は、複数のレプリカそれぞれについて、レプリカが有する複数の状態変数のうちの第1状態変数の値を更新した場合における、そのレプリカと、複数のレプリカからそのレプリカを除いたレプリカ群のうちの一部である他のレプリカとの、複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内での距離の変化に応じた相互作用の強さの変化量を特定する。そして処理部は、第1状態変数の値を更新した場合における相互作用の強さの変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、第1状態変数の値を更新するか否かを決定する。
1態様によれば、複数のレプリカを用いた場合の解探索能力を向上させることができる。
本実施の形態に係る最適化方法の比較例を示す図である。 第1の実施の形態に係る最適化方法の一例を示す図である。 第2の実施の形態のシステム構成の一例を示す図である。 サーバのハードウェアの一例を示す図である。 イジングマシンの一例を示す図である。 イジングモデルの模式図である。 レプリカ交換の一例を示す図である。 One-Hot制約下での1-bitフリップの例を示す図である。 2W1Hの制約を説明する図である。 イジングマシンの解探索機能の一例を示す図である。 解探索エンジンにおける処理の一例を示す図である。 相互作用を与えるレプリカの1つ目の選択方法の一例を示す図である。 相互作用を与えるレプリカの1つ目の選択方法を用いた場合の解探索処理の手順の一例を示すフローチャートである。 レプリカごとの解探索処理の手順の一例を示すフローチャートである。 レプリカ間の相互作用のエネルギーの差分の計算手順の一例を示すフローチャートである。 相互作用を与えるレプリカの2つ目の選択方法の一例を示す図である。 相互作用を与えるレプリカの2つ目の選択方法を用いた場合の解探索処理の手順の一例を示すフローチャートである。 相互作用を与えるレプリカの3つ目の選択方法の一例を示す図である。 相互作用を与えるレプリカの3つ目の選択方法を用いた場合の解探索処理の手順の一例を示すフローチャートである。 相互作用を与えるレプリカの3つ目の選択方法におけるレプリカごとの解探索処理の手順の一例を示すフローチャートである。 レプリカ間の相互作用のエネルギーの差分の計算手順の一例を示すフローチャートである。 相互作用を与えるレプリカの4つ目の選択方法の一例を示す図である。 相互作用を与えるレプリカの4つ目の選択方法を用いた場合の解探索処理の手順の一例を示すフローチャートである。 相互作用を与えるレプリカの4つ目の選択方法におけるレプリカごとの解探索処理の手順の一例を示すフローチャートである。 第1の更新ビット選択方法による更新ビット選択処理の手順の一例を示すフローチャートである。 第2の更新ビット選択方法の処理手順の一例を示すフローチャートである。 更新ビット選択のためのツリー状に接続されたセレクタの一例を示す図である。 第3の更新ビット選択方法の処理手順の一例を示すフローチャートである。 レプリカ間に斥力の相互作用を設定した場合のエネルギーランドスケープを示す図である。 レプリカ間に引力の相互作用を設定した場合のエネルギーランドスケープを示す図である。 第1の検証例を示す図である。 第2の検証例を示す図である(その1)。 第2の検証例を示す図である(その2)。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔比較例〕
まず、本実施の形態に係る最適化方法の比較例を説明する。
図1は、本実施の形態に係る最適化方法の比較例を示す図である。
図1には、解探索方法を実現する最適化装置10aが示されている。最適化装置10aは、ノイマン型コンピュータであってもよく、非ノイマン型コンピュータであってもよい。例えば最適化装置10aは、最適化用のプログラムを実行することにより、最適化方法を実施することができる。また最適化装置10aは、イジングモデルを用いた最適化問題の求解を行うイジングマシンであってもよい。イジングマシンには、量子ビットを用いた量子コンピュータ、量子ビットの量子現象をデジタル回路上で再現した装置などが含まれる。
最適化装置10aは、記憶部11aと処理部12aとを有する。記憶部11aは、例えば最適化装置10aが有するメモリ、またはストレージ装置である。処理部12aは、例えば最適化装置10aが有するプロセッサ、または演算回路である。演算回路には、量子ビットまたは量子ビットの仕組みを再現するニューロン回路が含まれる。
記憶部11aは、複数のレプリカ2~4それぞれの複数の状態変数の値を記憶する。
処理部12aは、複数のレプリカ2~4を用いて、最適化問題を求解する。例えば処理部12aは、最適化問題に応じて定義された目的関数の値が最小となる状態変数の値を求める。目的関数は、最適化問題を表すモデルのエネルギーと呼ばれることもある。最適化問題がイジングモデルで表される場合、イジングモデルのハミルトニアンが、エネルギーを示す目的関数に相当する。
解探索のために処理部12aは、複数のレプリカ2~4それぞれについて状態遷移(状態変数の値を更新すること)を繰り返し、生成された状態における複数の状態変数の値に基づいて目的関数の値を計算する。その際、処理部12aは、レプリカ間の相互作用を考慮して、レプリカの状態遷移を行う。レプリカ間の相互作用としては、例えばレプリカ間の距離に応じた引力または斥力が考えられる。k番目のレプリカxとl番目のレプリカxとの距離は、d(x,x)と表記する(k,lは、1以上の整数)。例えば処理部12aは、複数のレプリカ2~4それぞれについて以下のようにして状態遷移を行う。
処理部12aは、レプリカが有する複数の状態変数のうちの第1状態変数の値を更新した場合における、複数の状態変数の値の組み合わせが取り得る空間を示す状態空間1内でのそのレプリカと他のレプリカとの距離の変化に応じた相互作用の強さの変化量を特定する。相互作用の強さは、例えば他のレプリカそれぞれとの距離の合計に基づく値である。相互作用の強さは、相互作用のエネルギーG(X)と呼ぶこともできる。相互作用の強さは、例えば後述の式(15)または式(16)で表すことができる。l番目のレプリカのj番目の状態変数を更新した場合の相互作用の強さの変化量は、ΔG=G(x[j])-G(x)と表すことができる。
そして処理部12aは、第1状態変数(例えばj番目の状態変数)の値を更新した場合における、第1状態変数の値を更新するか否かを決定する。この決定は、相互作用の強さの変化量に応じた提案確率(g(x→x[j])と、目的の確率分布に応じた受け入れ確率(a(x→x[j])とに基づいて、確率的に行われる。目的の確率分布は、例えばギブス分布である。提案確率と受け入れ確率とに基づいてレプリカが状態遷移する遷移確率は、例えばメトロポリスヘイスティング法に従う。
処理部12aは、第1状態変数の値を更新すると決定した場合、第1状態変数の値を更新した後のレプリカの複数の状態変数の値に基づいて、目的関数の値を計算する。また処理部12aは、記憶部11a内におけるレプリカの第1状態変数の値を更新する。そして処理部12aは、複数のレプリカ2~4それぞれの複数の状態変数の一の状態変数の値の更新を繰り返し、目的関数の値が所定の条件を満たしたときの複数の状態変数の値を出力する。例えば処理部12は、複数のレプリカ2~4の更新を所定回数繰り返した後、目的関数の値が最小となる複数の状態変数の値の組み合わせを出力する。
このようにして、レプリカ間の相互作用を考慮したレプリカの状態遷移により、解の探索が行われる。すなわち最適化装置10aは、レプリカ間の相互作用を考慮したことで、複数のレプリカ2~4による状態空間1内を網羅的に探索することができる。しかもメトロポリスヘイスティング法を用いることで、最適化装置10aは、レプリカ間の相互作用による影響を適切な形で計算に組み込むことができる。
なお処理部12aは、状態空間1に対して適切な距離を定義し、レプリカ間の距離を定める。そして処理部12aは、その距離を用いてレプリカ間の相互作用の強さを決定し、メトロポリスヘイスティング法における遷移候補先の分布(提案分布)を定義し、計算に組み込む。メトロポリスヘイスティング法は提案分布が非対称な場合に対応している。そのため、提案分布の決め方に自由度がある。そこで、処理部12aは、メトロポリスヘイスティング法における提案分布(提案確率の定義)の自由度を利用し、提案確率内にレプリカ間相互作用を導入している。
レプリカ間の相互作用として、例えば斥力の相互作用を生じさせることができる。この場合、処理部12aは、第1状態変数の値を更新すると状態遷移判断対象のレプリカと他のレプリカとの距離が遠ざかる場合に、相互作用の強さを増加させる。処理部12aは、相互作用の強さの増加量が大きいほど提案確率を大きくする。そして処理部12aは、提案確率が大きい状態変数ほど、値を更新する候補として選択される確率を高くする。その結果、例えば探索空間において複数のレプリカ2~4を分散させて効率的に探索したり、複数のレプリカ2~4が、同じ局所解に嵌まり出られなくなることを抑止できる。
またレプリカ間の相互作用として、引力の相互作用を生じさせることもできる。この場合、処理部12aは、第1状態変数の値を更新すると状態遷移判断対象のレプリカと他のレプリカとの距離が近づく場合に、相互作用の強さを増加させる。処理部12は、相互作用の強さの増加量が大きいほど提案確率を大きくする。これにより、例えば探索空間の特定の空間を複数のレプリカ2~4を用いて集中的に探索したり、局所解に嵌まって出られなくなっているレプリカを、他のレプリカからの引力により、局所解から抜け出させることが可能となる。
状態空間1が離散的であり、状態変数の値が二値(例えば「1」または「0」)のみを取り得る場合、2つのレプリカ間の距離として、例えばハミング距離(またはその単調増加関数)を用いることができる。この場合、処理部12aは、すべてのレプリカ間のハミング距離を定義し、それによりレプリカ相互作用の強さを計算する。レプリカ間の距離は、後述の式(19)のように表すことができる。
なお処理部12aは、第1状態変数の値を更新することについての提案確率を、例えば規格化定数によって規格化する。例えば第1状態変数の値を更新した場合における相互作用の強さの変化量をΔG、レプリカに設定された温度パラメータの値の逆数である逆温度をβとする。このとき処理部12aは、exp(-βΔG)を所定の規格化定数で除算した値を提案確率とする。この提案確率は、例えば後述の式(17)で表すことができる。exp(-βΔG)はギブス分布を表しており、提案確率の定義にギブス分布を用いたことで、目的関数(エネルギー)においてギブス分布を保つことが容易になる。
また処理部12aは、1とexp(-βΔG)とのうちの小さい方を、所定の規格化定数で除算した値を提案確率としてもよい。この提案確率は、例えば後述の式(18)で表すことができる。これによりexp(-βΔG)が1を超える場合は1とみなされることとなり、相互作用の強さの変化量が状態変数間で大きく異なる場合の提案確率への影響の差を弱めることができる。
ここで、規格化定数について説明する。従来の提案分布は複数の状態変数が等確率(1/N)で遷移候補として選択される(Nは、状態変数の数を示す1以上の整数)。この場合、規格化定数はN(それぞれの遷移先の重みが共通で1ということ)である。図1の最適化装置10aでは、遷移候補となる状態変数それぞれの遷移確率が異なり、規格化定数が遷移前の現在状態に依存する。そこで処理部12aにおいて規格化定数を計算することとなる。
例えば処理部12aは、複数の状態変数それぞれを第1状態変数とした場合における複数の状態変数それぞれについてのexp(-βΔG)の値の総和を、規格化定数とする。この規格化定数は、例えば後述の式(23)で表すことができる。なお、相互作用がハミング距離の一次関数の場合、処理部12aは、レプリカの状態遷移ごとに状態遷移前と状態遷移後との規格化定数の差分計算を行い、差分の累積値を計算し(累積計算)、最新の規格化定数とすることができる。ハミング距離の一次関数は、後述の式(19)に示すような関数である。
規格化定数の累積計算をする場合、処理部12aは、レプリカを状態遷移させるごとに、更新させる状態変数の決定に使用した規格化定数を記憶部11に格納しておく。そして処理部12aは、レプリカの状態遷移の際に使用した規格化定数の値と、前回の状態遷移の前後で生じる規格化定数の値の差分とに基づいて、今回の状態遷移で使用する規格化定数の値を算出する。前回の状態遷移の前後で生じる規格化定数の値の差分は、例えば後述の式(24)で表される。これにより、規格化定数を効率的に算出することができる。
なお処理部12aは、他のレプリカそれぞれとの距離の平方根の合計に基づく値を、相互作用の強さとしてもよい。この場合の相互作用の強さは、例えば後述の式(16)で表される。これにより、距離が遠い他のレプリカよりも距離が近い他のレプリカからの相互作用が、相対的により強く働くようにすることができる。例えば、複数のレプリカ2~4が同じ局所解に嵌まることを抑止する場合、その局所解の近辺に存在するレプリカ間に強い斥力を働かせることで、局所解からの脱出を促進することができる。この場合、その局所解とは遠く離れた位置のレプリカからの影響が少ない方が、局所解からの脱出が容易となる。
また処理部12aは、複数の状態変数の中から、値の更新を受け入れることができる状態変数を先に特定し、その中から今回のレプリカの状態遷移において値を更新する状態変数を決定することもできる。この場合、処理部12aは、複数の状態変数それぞれについて、受け入れ確率に基づいて、状態変数の更新が提案された場合に更新を受け入れるか否かを確率的に決定する。そして処理部12aは、更新を受け入れると判定された状態変数の中から、提案確率が高い状態変数ほど選択される可能性を高くして、少なくとも1つの状態変数を更新対象に決定する。これにより、選択した状態変数の値の更新の棄却(更新を受け入れないとの判定)が繰り返され、値を更新する状態変数の決定に時間がかかることを抑止できる。
ところで、上記の比較例では、処理部12aは、全てのレプリカ間の相互作用の強さを考慮して、相互作用の強さの変化量を計算する。ただ、全てのレプリカ間の相互作用を考慮しなくても、局所解からの脱出効果が得られる場合が多く、全てのレプリカ間の相互作用を考慮した場合、むしろ状態遷移を阻害する可能性もある。例えば、すでに状態が大きく異なっている(距離が遠い)レプリカ間には、斥力の相互作用を発生させる必要性が低い。状況によっては、距離が遠いレプリカの影響を大きく受けて、状態遷移が阻害されることがある。また、引力の相互作用を発生させる場合、複数のレプリカが同じ局所解に嵌まってしまうと、他のレプリカをより強くその局所解に引き付けてしまうため、状態遷移を阻害してしまうことがある。このため、相互作用を与えるレプリカの範囲を制限したほうがよい場合がある。
また、相互作用の強さを表す後述の式(15)または式(16)に含まれるレプリカ間の距離の計算回数は、全レプリカ数をM(Mは2以上の整数)とすると、各レプリカについてM回であるため、最適化装置10a全体では、M回となる。たとえば、M=100の場合、上記の計算回数は10回、M=1000の場合、計算回数は10回となる。このため、レプリカ数が増えるほど計算量が大幅に増大する。
以下に示す第1の実施の形態に係る最適化方法は、上記比較例に対して、計算量を抑えることを可能とするものである。
〔第1の実施の形態〕
図2は、第1の実施の形態に係る最適化方法の一例を示す図である。
最適化装置10は、図1の最適化装置10aと同様に、記憶部11と処理部12を有する。記憶部11は前述の記憶部11aと、処理部12は前述の処理部12aと、それぞれ同様のハードウェアにて実現できる。
記憶部11は、前述の記憶部11aと同様の機能を有する。一方、処理部12は、前述の処理部12aとは異なる以下に示すような機能を有する。
処理部12は、レプリカが有する複数の状態変数のうちの第1状態変数の値を更新した場合における、前述の状態空間1内でのそのレプリカと、M個のレプリカからそのレプリカを除いたレプリカ群のうちの一部である他のレプリカとの距離の変化に応じた相互作用の強さの変化量を特定する。すなわち、第1の実施の形態に係る最適化方法では、全てのレプリカ間の相互作用が考慮されるのではなく、一部のレプリカ間の相互作用を考慮した処理が行われる。例えば、図2のように、レプリカ2,3間の相互作用とレプリカ3,4の相互作用は考慮されるが、レプリカ2,4間の相互作用は考慮されない。つまり、レプリカ2,4間には相互作用が与えられない。
各レプリカに対して相互作用を与えるレプリカの選択方法については、例えば、以下の4つがある。以下簡単に説明する。
1つ目の選択方法は、各レプリカに与えられている各レプリカを識別する識別情報であるレプリカ番号に基づいて、M個のレプリカに周期的に相互作用を与えるものである。この方法では、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカは、l±sのレプリカ番号の範囲のものに限られる。つまり、lとの差がsである範囲に含まれるレプリカ番号が与えられているレプリカが、レプリカ番号=lのレプリカに対して相互作用を与えるものとなる。この方法では、相互作用の強さは、比較例と異なり、後述の式(15)または式(16)の代わりに、後述の式(27)のように定義される。
2つ目の方法は、各レプリカに与えられたレプリカ番号に基づいてM個のレプリカを複数のグループにグループ分けし、異なるグループ間に属するレプリカ間についてだけ、相互作用を与えるものである。この方法では、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカは、レプリカ番号=lのレプリカが属するグループとは異なる各グループの代表レプリカに限られる。この方法では、相互作用の強さは、比較例と異なり、後述の式(15)または式(16)の代わりに、後述の式(28)のように定義される。
3つ目の方法は、相互作用を適用するレプリカの範囲を動的に決定する方法である。この方法では、1つ目の方法と同じように、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカが、l±sのレプリカ番号の範囲のものとなるが、このsは動的に変化する。状態遷移を繰り返す処理が行われるたびに、レプリカ番号=lのレプリカとl±sのレプリカ番号の範囲の各レプリカとの距離の平均値が計算され、その平均値と2つの閾値(D,D(D<D))との比較結果に基づいて、sが減少または増加する。例えば、斥力の相互作用を発生させる場合、上記距離の平均値が、Dよりも小さければsは+1され、Dよりも大きければsは-1される。引力の相互作用を発生させる場合はこの逆となる。この方法では、相互作用の強さは、比較例と異なり、後述の式(15)または式(16)の代わりに、後述の式(29)のように定義される。
4つ目の方法は、相互作用を適用するレプリカの範囲をランダムに決定する方法である。この方法では、状態遷移を繰り返す処理が行われるたびに、レプリカ番号=lのレプリカに対し、他の各レプリカについて、所定の確率pで相互作用を与えるレプリカとして採用する。この方法では、相互作用の強さは、比較例と異なり、後述の式(15)または式(16)の代わりに、後述の式(31)のように定義される。
これらの方法を用いた例については、後述の第2の実施の形態において説明する。
第1の実施の形態の最適化方法におけるその他の処理については、比較例の最適化方法の処理と同じである。すなわち、処理部12は、前述のように、ΔG=G(x[j])-G(x)と表される相互作用の強さの変化量を特定する。そして、処理部12は、提案確率(g(x→x[j])と、受け入れ確率(a(x→x[j])とに基づいて、確率的に第1状態変数(例えばj番目の状態変数)の値を更新した場合における、第1状態変数の値を更新するか否かを決定する。処理部12は、第1状態変数の値を更新すると決定した場合、第1状態変数の値を更新した後のレプリカの複数の状態変数の値に基づいて、目的関数の値を計算する。また処理部12は、記憶部11内におけるレプリカの第1状態変数の値を更新する。そして処理部12は、複数のレプリカそれぞれの複数の状態変数の一の状態変数の値の更新を繰り返し、目的関数の値が所定の条件を満たしたときの複数の状態変数の値を出力する。
このようにして、第1の実施の形態の最適化方法では、一部のレプリカ間に相互作用を与えたレプリカの状態遷移により、解の探索が行われる。すなわち最適化装置10は、レプリカ間に相互作用を与えたことで、状態空間1内を網羅的に探索することができる。前述のように、全てのレプリカ間の相互作用を考慮しなくても、局所解からの脱出効果が得られる場合が多いためである。
このように、最適化装置10は、全てのレプリカ間に相互作用を与えるのではなく、一部のレプリカ間に相互作用を与えるものであるため、比較例の最適化装置10よりも計算量を抑えることができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、目的関数の値が最小となる各状態変数の値の組み合わせを計算するイジングマシンを用いたシステムの例である。なお第2の実施の形態におけるイジングマシンは、第1の実施の形態に示した最適化装置10の一例である。イジングマシンでは、求解対象の問題をイジングモデルで表し、そのイジングモデルのエネルギーが最小値となるビットの値の組み合わせを探索する。イジングモデルのエネルギーを計算する式(ハミルトニアン)が、目的関数である。
図3は、第2の実施の形態のシステム構成の一例を示す図である。サーバ100には、ネットワーク20を介して端末装置31,32,・・・が接続されている。端末装置31,32,・・・は、組み合わせ最適化問題の求解を依頼するユーザが使用するコンピュータである。サーバ100は、端末装置31,32,・・・から組み合わせ最適化問題の求解の依頼を受け付け、組み合わせ最適化問題に対応するイジングモデルのエネルギー関数であるハミルトニアンを生成する。サーバ100には、イジングマシン300の制御装置200が接続されている。サーバ100は、生成したハミルトニアンを用いてエネルギーの最小値の探索要求を制御装置200に入力する。
制御装置200は、イジングマシン300を制御し、サーバ100から入力された探索要求に応じて、エネルギーの最小値の解探索を行う。例えば制御装置200は、各ニューロンについての結合先のニューロンのidを、結合先情報としてイジングマシン300に送信する。また、制御装置200は、ローカルフィールドの初期値(例えばバイアス係数)や、値が0ではない重み係数、アニーリング条件などについてもイジングマシン300に送信する。
イジングマシン300は、制御装置200からの制御に基づいて、デジタル回路を用いたイジングモデルの状態遷移のシミュレーションを行い、エネルギーの最小値を探索する。
図4は、サーバのハードウェアの一例を示す図である。サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
サーバ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、制御装置200も、サーバ100と同様のハードウェアにより実現することができる。
図5は、イジングマシンの一例を示す図である。イジングマシン300は、ニューロン回路311,312,…,31n、制御回路320、およびメモリ330を有する。
ニューロン回路311~31nはそれぞれ、自身以外の複数の他のニューロン回路との接続の有無を示す複数の重み係数の値と、複数の他のニューロン回路の複数の出力信号との積の総和に基づく第1の値を算出する。そしてニューロン回路311~31nそれぞれは、第1の値にノイズ値を加算した第2の値と閾値との比較結果に基づき、0または1のビット値を出力する。複数のレプリカを用いた解探索を行う場合、複数のニューロン回路を用いて1つのレプリカの解探索が行われる。
制御回路320は、制御装置200から供給される情報に基づいて、イジングマシン300の初期設定処理などを行う。また、制御回路320は、レプリカ交換を行う場合、2つのレプリカ間の温度パラメータの値の交換の有無を判断し、温度パラメータの値を交換する場合、各レプリカの解探索を行うニューロン回路に入力する温度パラメータの値を更新する。
さらに、制御回路320は、更新対象ニューロンを決定する処理が所定回数だけ繰り返された後、メモリ330に保持されている1レプリカの状態変数に対応する各ニューロンのビット値を取得し、最適化問題に対する解として制御装置200に送信する。
制御回路320は、例えばASICやFPGAなどの特定用途の電子回路にて実現できる。なお、制御回路320は、CPUやDSPなどのプロセッサであってもよい。その場合、プロセッサは、図示しないメモリに記憶されたプログラムを実行することで、上記の処理を行う。
メモリ330は、例えば各ニューロンのビット値を保持する。メモリ330は、例えばレジスタやRAMなどによって実現できる。メモリ330には、エネルギーの最小値や最小値が得られたときの各ニューロンのビット値を保持しておくこともできる。この場合、制御回路320は、更新対象ニューロンを決定する処理が所定回数、繰り返されたのちに、エネルギーの最小値や最小値が得られたときの各ニューロンのビット値をメモリ330から取得して、制御装置200に送信してもよい。
なお第1の実施の形態に示した最適化装置10も、図4に示したイジングマシン300と同様のハードウェアにより実現することができる。
次に、求解の対象となるイジング型の最小値求解問題(イジング型問題)について説明する。イジング型問題はイジングモデルで表される。
図6は、イジングモデルの模式図である。イジングモデル30は、格子状に複数のビット31が配置される。ビット31は、磁石を模したものであり、スピンとも呼ばれる。隣接するビット間には相互作用が働く。相互作用の大きさは、重み係数で表される。イジングモデル30のエネルギーは、次の式(1)で表される。
Figure 2022052222000002
右辺の1項目は、N個の状態変数の全組み合わせについて、漏れと重複なく、2つの状態変数の値(0または1)と重み係数との積を積算したものである。xはi番目の状態変数、xはj番目の状態変数を表し、Wijは、xとxとの結合の強さを示す重み係数である。右辺の2項目は、各状態変数のそれぞれについてのバイアス係数(b)とxとの積の総和を求めたものである。Wijが正の場合、xとxとが同じ値となるような相互作用が働く。またWijが負の場合、xとxとが異なる値となるような相互作用が働く。なおWij=Wjiであり、Wii=0である。
最小値求解問題は、式(1)で与えられるエネルギーの最小値を求める問題である。イジングマシン300は、このような最小値求解問題についてMCMCを用いて解く。例えばイジングマシン300は、ビットを1つ反転した場合のエネルギー変化を計算する。i番目のビットを反転させた場合「x→x´(δx=x´-x)」、エネルギーの変化値は式(2)で表される。
Figure 2022052222000003
式(2)の右辺の括弧内の式は、i番目のビットの局所場(総入力)を表している。出力変化分δxと局所場の符号が一致すればエネルギーは減少する。イジングマシン300は、エネルギーの変化値ΔEの増減に応じて、i番目のビットの反転を受け入れるか否かを決定する。なお、式(2)は、1ビットのみを反転させる場合にのみ正しい式である。
エネルギー増分を示す式(2)は、以下のように書き換えることができる。
Figure 2022052222000004
Figure 2022052222000005
はi番目のビットの局所場である。j番目のビットxjが反転したときのi番目のビットの局所場hの変化分δh (j)は、以下の式(5)で表される。
Figure 2022052222000006
局所場hを保存するレジスタを用意し、j番目のビットが反転したときに、式(5)に示す値を、保存しておいた局所場hに加算することで、常に正しいhが得られる。
以上のような計算により、i番目のビットの反転させた場合のエネルギーの増分を求めることができる。イジングマシン300は、得られたエネルギーの増分に基づいて、i番目のビットの反転を受け入れるか否かを判断する。例えばイジングマシン300は、メトロポリス法に従って、ビットの反転を受け入れるか否かを判断する。メトロポリス法に従う場合、エネルギーの増分が負(エネルギーが減少する)であれば、ビットの反転が受け入れられる。エネルギーの増分が正(エネルギーが増加する)であれば、エネルギーの増分に応じた確率によって、ビットの反転が受け入れられるか否かが判断される。
エネルギーの増分が正の場合にビットの反転が受け入れられる確率は、温度パラメータを用いて調整することができる。例えばイジングマシン300は、温度パラメータの値が大きいほど、エネルギーの増分が正の場合にビットの反転を受け入れる確率を高くする。これにより、温度パラメータの値を大きくすることで、イジングモデルのエネルギーの状態が局所解から抜け出す可能性を高くすることができる。
温度パラメータをTとしたとき、逆温度β=1/Tとする。例えばイジングマシン300は、エネルギーの変化値ΔEijと逆温度βを用いて、i番目の状態変数の状態遷移の受け入れ確率を以下の式(6)により決定することで、確率的探索を行う。
Figure 2022052222000007
式(6)における関数f(x)は、メトロポリス法では以下の式(7)となる。
Figure 2022052222000008
なお温度パラメータの値が大きいと、局所的な探索が難しくなる。そこでイジングマシン300は、例えば温度パラメータの値が異なる複数のレプリカを用いて解探索を行う。この場合、イジングマシン300はレプリカ交換を行ってもよい。
図7は、レプリカ交換の一例を示す図である。レプリカ交換では、複数のレプリカが用いられる。レプリカは、求解対象の問題の状態変数の集合のコピーである。イジングマシン300は、それぞれのレプリカの温度パラメータに異なる値を設定する。図7の例では、4つのレプリカそれぞれに、T,T,T,Tの温度パラメータが設定されている(T<T<T<T)。
イジングマシン300は、複数のレプリカそれぞれについて、MCMCにより状態変化させる。そしてイジングマシン300は、温度パラメータの値で並べたときに隣り合うレプリカ間で、所定の確率に従って温度パラメータの値を交換する。すると、各レプリカは温度軸方向にランダムウォークする。レプリカがランダムウォークをすることで、局所解に嵌まっても高温側に移動したときに局所解から脱出できる可能性がある。またレプリカが低温側に移動すると、局所的な探索を行うこともできる。
レプリカ交換のように多くのレプリカを用いて集団探索を行うことで、モンテカルロ法による解探索を高速化することができる。しかし単に複数のレプリカを用いて集団探索をしただけでは、複数のレプリカが同じ局所解に留まってしまい、十分に広く状態空間を探索できないという問題を解決できない。例えばイジングモデルの状態変数(ビット)の数がNのとき、状態空間には2個の状態が存在する。そのため状態変数の数が多くなると、実用上可能な数のレプリカで探査しても、集団探索の利益を享受するのは困難である。
そこでイジングマシン300では、一部のレプリカ間の距離に応じた相互作用を利用して、レプリカの状態を遷移させることで、状態空間内の効率的な探索を行う。これにより、複数のレプリカを用いた集団探索による解探索性能が向上する。
例えばレプリカ交換を行えば状態空間内を広範囲に探索できるが、レプリカ間の相互作用を考慮しない場合、各レプリカは、そのときの温度パラメータの値に応じて、独立にビットフリップ(マルコフ連鎖)を行うだけである。レプリカ間の相互作用を利用すれば、個々のレプリカのマルコフ連鎖において、複数のレプリカが同じ局所解に同時に留まることを抑止可能である。
また1-bitフリップの場合、遷移先の候補の選び方としてN個のビットを等確率で選択すると、遷移確率はエネルギーの変化値ΔEのみで決定される。この場合、どのレプリカもエネルギー勾配のみに従って状態変化するため、同じ道筋を辿ってしまい、十分に広く状態空間を探索できていない可能性が大きい。さらに、どのレプリカも同じ局所解(すべてのビットiでΔE>0)に嵌まってしまったときに脱出するのも困難である。
イジングマシン300では、遷移を受け入れるか否かの受容確率の計算にメトロポリス法ではなく、メトロポリス・ヘイスティングス法を用いる。これにより、レプリカ間の相互作用による影響を適切な形で計算に組み込むことができる。
例えば現在の状態xから次の状態X′を提案する確率をg(X→X′)とし、この状態遷移が受け入れられる確率をA(X→X′)とする。状態Xから状態X′に遷移する確率W(X→X′)は、以下の式(8)で得られる。
Figure 2022052222000009
目的の確率分布(例えばギブス分布)を表す関数(目的関数)をπ(X)とすると詳細つり合いの条件は以下の通りとなる。
Figure 2022052222000010
Figure 2022052222000011
式(10)から、詳細つり合いを満たす受け入れ確率は、式(11)の通りとなる。
Figure 2022052222000012
メトロポリス・ヘイスティングス法を適用した場合、受け入れ確率は以下の式(12)で与えられる。
Figure 2022052222000013
この受け入れ確率は、提案確率が非対称でg(X→X′)≠g(X′→X)の場合でも詳細つり合いの条件は満たされる。また提案確率が対称でg(X→X′)=g(X′→X)の場合は式(13)のようなメトロポリスの受け入れ確率が得られる。
Figure 2022052222000014
ここで1-bitフリップを考えるとき、レプリカ間の相互作用を考慮しない場合、N個のビットが等確率で反転の候補として選択され、提案確率は式(14)となる。
Figure 2022052222000015
なお、メトロポリス・ヘイスティングス法は提案確率で示される提案分布が非対称な場合に対応している。そのため、提案分布の決め方に自由度がある。そこでイジングマシン300は、提案確率にレプリカ間相互作用を導入する。
例えばイジングマシン300は、離散空間である状態空間に対して適切な距離を定義し、レプリカ間の距離を定める。イジングマシン300は、レプリカ間距離を用いてレプリカ相互作用を決め、メトロポリス・ヘイスティングス法における遷移候補先の分布(提案分布)を定義し、受け入れ確率の計算に組み込む。
レプリカ間距離の一例として、2つのレプリカの状態のハミング距離(或いはその単調増加関数)がある。イジングマシン300は、すべてのレプリカ間のハミング距離を定義し、それによりレプリカ相互作用を導入する。
式(14)に示すような提案分布は1/Nの等確率で遷移候補が選択されていたため、規格化定数はN(それぞれの遷移先の重みが共通で1ということ)である。レプリカ間の相互作用を導入した場合は遷移候補の重みが異なり、規格化定数が遷移前の現在状態に依存する。イジングマシン300は、規格化定数も計算しなければならないが、相互作用がハミング距離の一次式の場合は、差分計算(累積計算)によって容易に計算できる。
以下、レプリカ間距離を考慮した提案確率の計算方法について具体的に説明する。まず提案確率の一般系を以下のように定義する。
M個(Mは1以上の整数)のレプリカからなる系を考える。1番目のレプリカの状態変数をx=(x ,x ,・・・,x ),x ∈{0,1}とする。2つのレプリカxとxの距離(の増加関数)をd(x,x)とし、相互作用のエネルギーをG(x)と与える。相互作用のエネルギーは、全レプリカ間の相互作用を考慮した場合、例えば式(15)または式(16)のようにいくつか定義することができる。
Figure 2022052222000016
Figure 2022052222000017
ここでγは実数の定数である。γが正の値であれば引力的な相互作用、γが負の値であれば斥力的な相互作用とみなせる。
式(15)または式(16)に含まれるレプリカ間の距離の計算回数は、各レプリカについてM回であるため、イジングマシン300全体では、M回となり、レプリカ数が増えるほど計算量が大幅に増大する。このため、イジングマシン300では、M個のレプリカのうちの一部のレプリカ間に相互作用を与えて処理を行う。各レプリカに対して相互作用を与えるレプリカの選択方法については、例えば、後述の4つの方法があり、4つの方法のそれぞれにおいて定義されるG(x)が異なる。各方法で用いられるG(x)については後述する。
G(x)を用いて提案確率をg(x→x[j])と与える。x[j]はxのj番目のビットをフリップした状態を表す。提案確率は、具体的には式(17)または式(18)のように定義することができる。
Figure 2022052222000018
Figure 2022052222000019
ここでZ(x)は規格化定数であり、計算方法は後述する。
レプリカ間距離としてハミング距離の1次関数を用いた場合、レプリカ間距離は式(19)で定義できる。
Figure 2022052222000020
この場合、ΔG=G(x[j])-G(x)とg(x→x[j])は以下のように計算できる。
Figure 2022052222000021
Figure 2022052222000022
このようにして、レプリカ間の相互作用を反映させた提案確率を計算することができる。次に、受け入れ確率の定義について説明する。
一般系の受け入れ確率a(x→x[j])は、メトロポリス基準を採用することにすると、以下のように定義できる。
Figure 2022052222000023
すると遷移確率はW(x→x[j])=g(x→x[j])×a(x→x[j])となる。従って、これらの計算に用いられる量はΔE、ΔG、規格化定数Zの3つである。
ここで、レプリカ間距離としてハミング距離の一次関数を用いた場合を例にとり、規格化定数Zの計算方法について説明する。規格化定数Z(xl)は、提案候補がレプリカlにおいて1つのビットをフリップしただけの状態なので、その総和として以下の式(23)で計算される。
Figure 2022052222000024
式(23)のまま規格化定数を計算しようとするとすべてのスピンの数だけ指数関数の和を計算することとなり、計算量が膨大となる。そこでイジングマシン300は、1-bitフリップであることに基づいて、差分計算(累積計算)を行うことで、計算量を抑止する。レプリカlのj番目のビットだけをフリップした場合の規格化定数の差分は以下の式(24)のようになる。
Figure 2022052222000025
イジングマシン300は、式(24)の右辺を計算することで求めた規格化定数の差分を、ビットフリップ前の規格化定数に加算することで、ビットフリップ後の規格化定数を求めることができる。なおイジングマシン300は、ビットフリップが受け入れられた場合、そのときの規格化定数をレジスタまたはメモリに保存し、次回のビットフリップにおける規格化定数の算出に利用する。
次に、レプリカ間距離としてハミング距離の一次関数を用いた場合を例にとり、ΔGの計算方法について説明する。ΔGの計算は、一般にはレプリカ間の距離(あるいは距離の増加関数)の差分計算になる。単純な差分計算では、遷移前後でのレプリカ間のハミング距離を記憶しておかなければならない。しかし、具体的に距離(あるいは距離の増加関数)の形が分かれば、差分計算を行うことで、式(25)、式(26)に示すように、現在の状態だけに依存した量に書き換えることができる。
Figure 2022052222000026
Figure 2022052222000027
式(26)において、xj0(l)(xはチルダ付き)は、xj0(l)(xはチルダ付き)=(x ,x ,・・・,x )というビット列である。またxj0(xはチルダ付き)は、xj0(xはチルダ付き)=(x ,x ,・・・,x )というビット列のベクトルである。
式(26)を用いれば、レプリカ間距離をハミング距離の一次関数とした場合には、新たに導入したビット列のベクトル間のハミング距離だけで、ΔGを記述することができる。従って、そのハミング距離だけを更新すればよい。
なお、これまでの説明では、1-bitフリップの場合を想定しているが、1回の状態遷移で複数のビットをフリップする場合もある。例えばOne-Hot制約がある問題を求解する場合である。
One-Hot制約は「ある変数の組の中で、値が1の変数は1個だけ」という制約である。この制約は、二次割り当て問題(QAP:Quadratic Assignment Problem)、運搬経路問題(VRP:Vehicle Routing Problem)などの様々な問題に適用される。
図8は、One-Hot制約下での1-bitフリップの例を示す図である。図8の例では、イジングモデルの状態変数を示すビットが、4ビットずつのグループに分けられている。One-Hot制約では、同一グループに属するビットのうち1ビットのみが「1」であることを許される。このようなOne-Hot制約の元で1-bitフリップを行うと、1回の状態遷移では1ビットのみが反転し、制約違反の状態となる。1-bitフリップをもう1回行うと、制約条件を満足することができる。
このようにOne-Hot制約を有する問題を求解する場合、1-bitフリップでは効率が悪い。そこで、イジングマシン300は、1回の状態遷移で複数のビットをフリップさせることができる。
One-Hot制約には、1-Way 1-Hot(1W1H)と2-Way 1-Hot(2W1H)とがある。1W1Hは、1つの手段でビットをグルーピングしたときの各グループ内で、値が「1」のビットは1つのみという制約である。図8に示した例は1W1Hであり、1回の状態遷移で2つのビットをフリップさせることで、制約を満たしたままの状態遷移が可能となる。
2W1Hでは、2つの手段でビットがグルーピングされる。この場合、各ビットは、生成手段が異なる2つのグループに属する。そして2W1Hでも、各グループ内で値が「1」のビットは1つのみという制約がある。
図9は、2W1Hの制約を説明する図である。図9には、N個のビットをn×n(nは1以上の整数)の正方行列の要素としている。N=n2である。2W1Hでは、各行および各列のビットの値の和は「1」であるという制約がある。すなわち同じ行のビットのうちの1つのビットだけ値が「1」であり、同じ列のビットのうちの1つのビットだけ値が1である場合に制約が満たされる。2W1Hの制約がある場合、1回の状態遷移で4つのビットをフリップさせることで、制約を満たしたままの状態遷移が可能となる。
ここでm=1,2,・・・,Nとしたとき、1-bitフリップ、1W1Hにおける2-bitフリップ、2W1Hにおける4-bitフリップそれぞれの、状態遷移、エネルギーの変化値ΔE、局所場の更新量Δhは、以下のように表される。
<1-bitフリップ>
・状態遷移 :x→x+Δx
・エネルギーの変化値:ΔE=-h・Δx
・局所場更新量 :Δh=Wmi・Δx
<1W1H(2-bitフリップ)>
・状態遷移:x:1→0,x:0→1
・エネルギーの変化値:ΔE=h-h
・局所場更新量:Δh=-Wmi+Wmj
<2W1H(4-bitフリップ)>
・状態遷移:x:1→0,x:0→1,x:0→1,x:1→0
・エネルギーの変化値:ΔE=(h+h)-(h+h)-(Wil+Wjk
・局所場更新量:Δh=Wmj+Wmk-(Wmi+Wml
いずれの制約を適用するのかは、例えば、ユーザが問題の求解を指示する際に、ユーザによって指定される。イジングマシン300は、指定された制約に応じたΔEを計算し、レプリカ間の距離に応じた遷移確率で1または複数のビットを反転させる。
次に、レプリカ間距離を考慮したイジングマシン300による解探索機能について説明する。
図10は、イジングマシンの解探索機能の一例を示す図である。イジングマシン300は、データ受け取り部340、解探索エンジン350、および解出力部360を有している。データ受け取り部340と解出力部360とは、図5に示した制御回路320によって実現される機能である。解探索エンジン350は、図5に示した制御回路320が、ニューロン回路311,312,・・・,31nとメモリ330とを制御することで実現する機能である。
データ受け取り部340は、制御装置200から探索対象の問題の求解に用いる情報を受け取る。例えばデータ受け取り部340は、温度、レプリカ数、レプリカ相互作用の大きさ、iteration数(状態遷移の反復回数)、初期状態などのパラメータを取得する。またデータ受け取り部340は、求解対象の問題を表すイジングモデルの重み係数を要素とする重み行列(2次式の係数)、バイアス行列(1次式の係数)、定数項、1-Hot制約のグループ情報などのデータを取得する。さらに、データ受け取り部340から、レプリカ間の相互作用を適用する範囲を決めるための後述のパラメータを取得する。データ受け取り部340は、受け取った情報を解探索エンジン350に送信する。
解探索エンジン350は、複数のレプリカを用いて、エネルギーが最小となる解を探索する。そのために解探索エンジン350は、レプリカ保存部351と複数のレプリカ解探索部352a,352b,・・・,352nとを有する。レプリカ保存部351は、例えば図5に示したメモリ330を利用して実現される。複数のレプリカ解探索部352a,352b,・・・,352nそれぞれは、イジングモデルに含まれるビットごとのニューロン回路を利用して実現される。
レプリカ保存部351は、レプリカの状態を記憶する。例えばレプリカが順番に更新されていくが、レプリカ間相互作用の計算には、更新前のレプリカの状態が使用される。そこでレプリカ保存部351が、更新前のレプリカの状態を記憶する。レプリカの状態は、状態変数に対応するビットの値、および温度パラメータなどのパラメータの値で表される。
各レプリカ解探索部352a,352b,・・・,352nは、それぞれがレプリカによる解探索を行う。例えば各レプリカ解探索部352a,352b,・・・,352nは、レプリカ保存部351を介して互いのレプリカの状態を示す情報をやり取りしながらレプリカ間相互作用を計算し、解の探索を行う。
図11は、解探索エンジンにおける処理の一例を示す図である。例えばレプリカ解探索部352aは、重み係数(Wij)を記憶している。レプリカ解探索部352aは、重み係数(Wij)と現在の各ビットの値(x ,x ,・・・,x )とを用いて、式(4)に基づいて局所場(h,h,・・・,h)を計算する。次にレプリカ解探索部352aは、式(26)に基づいて、各ビットがフリップした場合のレプリカ間の相互作用のエネルギーの差分(ΔG,ΔG,・・・,ΔG)を計算する。この際、レプリカ解探索部352aは、レプリカ保存部351から、他のレプリカ(M個のレプリカから自身が解探索を担当するレプリカを除いたレプリカ群のうち一部)の状態を示す情報(各ビットの値)を取得し、他のレプリカとの距離を計算し、その計算結果を用いてレプリカ間の相互作用のエネルギーの差分を計算する。
さらにレプリカ解探索部352aは、局所場(h,h,・・・,h)の値を用いて、エネルギーの変化値(E,E,・・・,E)を計算する。なおエネルギーの変化値の計算式は、1-bitフリップなのか1W1Hなのか2W1Hなのかによって異なる。例えば1-bitフリップであれば、エネルギーの変化値は「ΔE=-h・Δx」である。1W1H(2-bitフリップ)であれば、エネルギーの変化値は「ΔE=h-h」である。2W1H(4-bitフリップ)であれば、エネルギーの変化値はΔE=(h+h)-(h+h)-(Wil+Wjk)である。
レプリカ解探索部352aは、エネルギーの変化値ΔEから正のオフセット値Eoffを減算する。オフセット値Eoffには、フリップするビットが選択できなかった場合に、所定の値が加算される。オフセット値Eoffの増加は、フリップするビットが選択されるまで繰り返される。このように、オフセット値Eoffが増加することで、レプリカのエネルギーが極小値に留まる時間が短縮される。なお、オフセット値Eoffの初期値は、例えば「0」とする。
レプリカ解探索部352aは、各ビットをフリップさせた場合のエネルギーの変化値ΔE(オフセット値Eoffが「0」以外の場合にはオフセット値Eoffを減算後の値)に基づいて、フリップするビット(更新ビット)を選択する。更新ビットの選択方法には、様々な方法がある(図25~図28参照)。更新ビットの選択方法によっては、更新ビットの選択において、いずれのビットの更新の受け入れも棄却され、更新ビットが選択できないことがあり得る。レプリカ解探索部352aは、例えば更新ビットが選択できなかった場合、オフセット値Eoffの値を増加させ、再度、更新ビットの選択を行う。
レプリカ解探索部352aは、更新ビットが選択できた場合、更新ビットの値をフリップし、更新後のレプリカの状態「x ,x ,・・・,x 」を生成する。
レプリカ解探索部352a以外のレプリカ解探索部352b,・・・,252nも、レプリカ解探索部352aと同様に、更新後のレプリカの状態を生成する。
各レプリカ解探索部352a,352b,・・・,352nが生成したレプリカの状態「x ,x ,・・・,x 」、「x ,x ,・・・,x 」、・・・、「x ,x ,・・・,x 」は、レプリカ保存部351で保持される。各レプリカ解探索部352a,352b,・・・,352nは、レプリカ保存部351を参照することで、次回の状態更新時に、レプリカ間の相互作用のエネルギーの差分を算出することができる。
以下、解探索エンジン350による解探索の手順について詳細に説明する。
解探索の手順は、各レプリカに対して相互作用を与えるレプリカの選択方法によって異なる。
(相互作用を与えるレプリカの1つ目の選択方法)
1つ目の選択方法は、各レプリカに与えられたラベル(レプリカ番号)に基づいて、M個のレプリカに周期的に相互作用を与えるものであり、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカは、l±sのレプリカ番号の範囲のものに限られる。
1つ目の選択方法では、レプリカ番号=lのレプリカに対して与えられる相互作用の強さは、式(15)または式(16)の代わりに、例えば、以下の式(27)で定義できる。
Figure 2022052222000028
すなわち、レプリカ番号=lのレプリカと、l±sのレプリカ番号の範囲のレプリカとの距離に基づいて、相互作用の強さが定義される。
図12は、相互作用を与えるレプリカの1つ目の選択方法の一例を示す図である。
図12では、12個のレプリカに対して、1~12のレプリカ番号が与えられており、このうち、各レプリカに相互作用を与えるレプリカの範囲(相互作用の適用範囲)を決めるsが、s=2である例が示されている。図12のように、レプリカ番号=1のレプリカに対して相互作用を与えるレプリカは、1±2のレプリカ番号の範囲のレプリカとなる。この場合、1-2は負のレプリカ番号となってしまう。負のレプリカ番号が発生することを避けるために、図12の例のように、l=1の1つ前はl=12(l=12の次はl=1)というように、レプリカ番号が循環していると考える。つまり、k=l±s mod Mが、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカの範囲であるものとする。すなわち、l-sをMで割った余りと、l+sをMで割った余りの範囲に含まれるレプリカ番号が与えられているレプリカがレプリカ番号=lのレプリカに対して相互作用を与えるレプリカの範囲となる。これにより、式(27)において、k=M+1の場合、k=1、k=-2の場合は、k=M-1となる。
図13は、相互作用を与えるレプリカの1つ目の選択方法を用いた場合の解探索処理の手順の一例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS100]解探索エンジン350は、レプリカ間の相互作用を適用する範囲を、レプリカ解探索部352a,352b,・・・,352nに設定する。相互作用の適用範囲は、前述のパラメータ(s)によって決定される。sは、例えば、制御装置200からデータ受け取り部340を介して解探索エンジン350に供給される。
[ステップS101]解探索エンジン350は、複数のレプリカの初期状態(各ビットの値、温度パラメータの値など)を、そのレプリカの割り当て先のレプリカ解探索部352a,352b,・・・,352nに設定する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカの初期状態に基づいて、初期エネルギー、初期のレプリカ間距離、初期規格化定数などを計算する。
[ステップS102]解探索エンジン350は、レプリカ解探索部352a,352b,・・・,352nにレプリカごとの解探索を実行させる。レプリカごとの解探索処理の詳細は後述する(図14参照)。
[ステップS103]解探索エンジン350は、解探索の終了条件を満たしたか否かを判断する。例えば解探索エンジン350は、ステップS102の処理の繰り返し回数が所定回数に達した場合に、終了条件を満たすと判断する。解探索エンジン350は、終了条件を満たした場合、処理をステップS108に進める。また解探索エンジン350は、終了条件が満たされていない場合、処理をステップS104に進める。
[ステップS104]解探索エンジン350は、複数のレプリカを温度パラメータの値で並べたときに隣接するレプリカの組を選択する。
[ステップS105]解探索エンジン350は、選択したレプリカの組の温度交換の実施の有無を決定する。例えば解探索エンジン350は、レプリカ間のエネルギーの差と各レプリカの温度パラメータの値とに基づいて、メトロポリスヘイスティング基準により交換確率を求める。そして解探索エンジン350は、交換確率が1であれば温度交換を実施すると判断する。また解探索エンジン350は、交換確率が1未満であれば、例えば0から1までの間の乱数を生成し、乱数の値が交換確率以下であれば、温度交換を実施すると判断する。
[ステップS106]解探索エンジン350は、温度交換を実施すると決定した場合、選択したレプリカの組それぞれの温度パラメータの値を交換する。
[ステップS107]解探索エンジン350は、隣接するレプリカのすべての組を選択したか否かを判断する。解探索エンジン350は、未選択の組がある場合、処理をステップS104に進める。また解探索エンジン350は、すべての組が選択済みの場合、処理をステップS102に進める。
[ステップS108]解探索エンジン350は、エネルギーが最小となるレプリカの状態を、解として出力する。
このようにして、レプリカ交換を行いながら、複数のレプリカを用いた効率的な解探索が行われる。
次にレプリカごとの解探索処理について詳細に説明する。
図14は、レプリカごとの解探索処理の手順の一例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS110]解探索エンジン350内のレプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカについて、レプリカ間の相互作用のエネルギーの差分(ΔG,ΔG,・・・,ΔG)を計算する。レプリカ間の相互作用のエネルギーの差分の計算処理の詳細は後述する(図15参照)。
[ステップS111]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカについて、エネルギーの変化値(ΔE,ΔE,・・・,ΔE)を計算する。
[ステップS112]レプリカ解探索部352a,352b,・・・,352nそれぞれは、反復回数をインクリメントする。
[ステップS113]レプリカ解探索部352a,352b,・・・,352nそれぞれは、所定回数だけ反復したか否かを判断する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、所定回数だけ反復した場合、レプリカごとの解探索処理を終了する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、反復回数が所定回数に達していなければ、処理をステップS114に進める。
[ステップS114]レプリカ解探索部352a,352b,・・・,352nそれぞれは、更新ビット選択処理を行う。更新ビット選択処理の詳細は後述する(図25~図28参照)。
[ステップS115]レプリカ解探索部352a,352b,・・・,352nそれぞれは、更新ビットが選択されたか否かを判断する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、更新ビットが選択されていない場合、処理をステップS114に進める。またレプリカ解探索部352a,352b,・・・,352nそれぞれは、更新ビットが選択された場合、処理をステップS116に進める。
[ステップS116]レプリカ解探索部352a,352b,・・・,352nそれぞれは、レプリカに関する情報を更新する。例えばレプリカ解探索部352a,352b,・・・,352nそれぞれは、選択されたビットの状態をフリップさせ、各ビットの局所場h、レプリカのエネルギーE、他のレプリカとのレプリカ間距離d、規格化定数Zを更新する。その後、レプリカ解探索部352a,352b,・・・,352nそれぞれは処理をステップS110に進める。
次に、レプリカ間の相互作用のエネルギーの差分(ΔG,ΔG,・・・,ΔG)の計算処理について詳細に説明する。
図15は、レプリカ間の相互作用のエネルギーの差分の計算手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS120]レプリカ解探索部352a,352b,・・・,352nそれぞれは、自身が解探索を担当するレプリカと、他の何れかのレプリカとの間のハミング距離を計算する。相互作用を与えるレプリカの1つ目の選択方法では、レプリカ解探索部352a,352b,・・・,352nそれぞれは、解探索を担当するレプリカと、そのレプリカのレプリカ番号に対して±sの範囲のレプリカ番号のレプリカとのハミング距離を計算する。
[ステップS121]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカのビットごとに、該当ビットをフリップした場合における遷移前後でのレプリカ間の相互作用のエネルギーの差分(ΔG,ΔG,・・・,ΔG)を計算する。例えば1番目のビットをフリップした場合のレプリカ間の相互作用のエネルギーの差分がΔGである。相互作用を与えるレプリカの1つ目の選択方法では、相互作用のエネルギーの差分は、ステップS120の処理で計算されたハミング距離を式(27)に代入して得られる相互作用の強さを用いて計算される。
[ステップS122]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカの規格化定数Zを計算する。例えばレプリカ解探索部352a,352b,・・・,352nそれぞれは、レプリカ間距離がハミング距離の一次式の場合は、状態遷移前後での規格化定数の差分を計算してもよい。差分を計算した場合、レプリカ解探索部352a,352b,・・・,352nそれぞれは、状態遷移ごとの規格化定数の差分を積算することで、最新の規格化定数を得ることができる。
相互作用を与えるレプリカの1つ目の選択方法では、状態遷移を繰り返す処理が行われるたびに計算されるレプリカ間の距離の計算回数は、2sM回となる。そのため、sが小さければ、全レプリカ間の相互作用を考慮した場合の計算回数(M回)より大幅に計算回数を削減できる。
なお、全レプリカの状態を直接観測することはできないが、各レプリカに対して相互作用を与える範囲を±sのレプリカ番号の範囲とすることで、各レプリカ間の相互作用の影響が、レプリカ集団全体に波及することが期待できる。
(相互作用を与えるレプリカの2つ目の選択方法)
2つ目の選択方法は、各レプリカに与えられたラベルに基づいてM個のレプリカを複数のグループにグループ分けし、異なるグループ間に属するレプリカ間についてだけ、相互作用を与えるものである。この方法では、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカは、レプリカ番号=lのレプリカが属するグループとは異なる各グループの代表レプリカに限られる。
2つ目の選択方法では、レプリカ番号=lのレプリカに対して与えられる相互作用の強さは、式(15)または式(16)の代わりに、例えば、以下の式(28)で定義できる。
Figure 2022052222000029
式(28)において、rはレプリカ番号=lのレプリカが属するグループのグループ番号を表し、Rは全グループ数を表す。また、x(k) repは、グループ番号のkのグループにおける代表レプリカを表す。式(28)のように、レプリカ番号=lのレプリカと、グループ番号=r以外のグループ番号のグループにおける代表レプリカとの距離に基づいて、相互作用の強さが定義される。
図16は、相互作用を与えるレプリカの2つ目の選択方法の一例を示す図である。
図16では、9個のレプリカが、3つのグループにグループ分けされている例が示されている。レプリカ番号=1,2,3のレプリカは、グループ番号=1のグループに属し、レプリカ番号=4,5,6のレプリカは、グループ番号=2のグループに属し、レプリカ番号=7,8,9のレプリカは、グループ番号=3のグループに属している。
また、図16の例では、各グループにおいて、中間のレプリカ番号のレプリカが代表レプリカに設定されている。すなわち、グループ番号=1のグループの代表レプリカは、レプリカ番号=2のレプリカであり、グループ番号=2のグループの代表レプリカは、レプリカ番号=5のレプリカであり、グループ番号=3のグループの代表レプリカは、レプリカ番号=8のレプリカである。
図16の例では、レプリカ番号=1のレプリカに対して相互作用を与えるレプリカは、グループ番号=2のグループに属するレプリカ番号=5のレプリカと、グループ番号=3のグループに属するレプリカ番号=8のレプリカとなる。
図17は、相互作用を与えるレプリカの2つ目の選択方法を用いた場合の解探索処理の手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS130]解探索エンジン350は、各レプリカがどのグループに属するかを示すグループ分け情報を、レプリカ解探索部352a,352b,・・・,352nに設定する。レプリカのグループ分けは、例えば、サーバ100から全グループ数Rを与えられた制御装置200によって予め行われており、各レプリカ番号に対して、グループ番号が紐付けられている。グループ分けの結果得られたグループ分け情報は、データ受け取り部340を介して解探索エンジン350に供給される。
[ステップS131]解探索エンジン350は、各グループの代表レプリカを示す情報をレプリカ解探索部352a,352b,・・・,352nに設定する。各グループの代表レプリカは、例えば、制御装置200によって決定される。例えば、図16のように、各グループにおいて、真ん中のレプリカ番号のレプリカが代表レプリカとして決定される。決定された各グループの代表レプリカの情報は、データ受け取り部340を介して解探索エンジン350に供給される。
その後の処理(ステップS132からステップS139)は、ステップS133の処理以外、図13の処理(ステップS101からステップS108)と同じである。
ステップS133のレプリカごとの解探索処理は、図14に示した処理手順と同じ処理手順で行われるが、ステップS110の処理内容のうち、図15に示したステップS120,S121の処理が、相互作用を与えるレプリカの1つ目の選択方法を適用した場合と異なる。例えば、レプリカ解探索部352a,352b,・・・,352nそれぞれは、ステップS120,S121の処理において以下のような処理を行う。
ステップS120の処理において、レプリカ解探索部352a,352b,・・・,352nそれぞれは、グループ分け情報に基づいて、自身が解探索を担当するレプリカが属するグループを認識する。そして、レプリカ解探索部352a,352b,・・・,352nそれぞれは、代表レプリカを示す情報に基づいて、自身が解探索を担当するレプリカと、他の各グループの代表レプリカとの間のハミング距離を計算する。
ステップS121の処理において、相互作用を与えるレプリカの2つ目の選択方法では、相互作用のエネルギーの差分は、上記のように計算されたハミング距離を式(28)に代入して得られる相互作用の強さを用いて計算される。
相互作用を与えるレプリカの2つ目の選択方法では、状態遷移を繰り返す処理が行われるたびに計算されるレプリカ間の距離の計算回数は、M(R-1)回となる。そのため、Rが小さければ、全レプリカ間の相互作用を考慮した場合の計算回数(M回)より大幅に計算回数を削減できる。
このような方法では、同じグループ内に属するレプリカの状態は同じように遷移し、グループごとに状態空間の探索が行われるようになる。
(相互作用を与えるレプリカの3つ目の選択方法)
3つ目の選択方法は、相互作用を適用するレプリカの範囲を動的に決定する方法である。この方法では、1つ目の方法と同じように、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカが、l±sのレプリカ番号の範囲のものとなるが、このsは動的に変化する。状態遷移を繰り返す処理が行われるたびに、レプリカ番号=lのレプリカとl±sのレプリカ番号の範囲の各レプリカとの距離の平均値が計算され、その平均値と2つの閾値(D,D(D<D))との比較結果に基づいて、sが減少または増加する。例えば、斥力の相互作用を発生させる場合、上記距離の平均値が、Dよりも小さければsは+1され、Dよりも大きければsは-1される。引力の相互作用を発生させる場合はこの逆となる。なお、sの変化幅は±1に限定されるわけではなく、±2でもよいし、それより大きい変化幅であってもよい。
3つ目の選択方法では、レプリカ番号=lのレプリカに対して与えられる相互作用の強さは、式(15)または式(16)の代わりに、例えば、以下の式(29)で定義できる。
Figure 2022052222000030
式(29)のように、レプリカ番号=lのレプリカと、l±sのレプリカ番号の範囲のレプリカとの距離に基づいて、相互作用の強さが定義される。
なお、レプリカ番号=lのレプリカとl±sのレプリカ番号の範囲の各レプリカとの距離の平均値dは、以下の式(30)で表される。
Figure 2022052222000031
図18は、相互作用を与えるレプリカの3つ目の選択方法の一例を示す図である。
図18では、12個のレプリカに対して、1~12のレプリカ番号が与えられており、このうち、各レプリカに相互作用を与えるレプリカの範囲(相互作用の適用範囲)を決めるsが、ある反復回数tであるときに、s=2である例が示されている。
このとき、斥力の相互作用が強すぎる場合(上記の平均値d>Dの場合)、sは-1され、次の反復回数t+1におけるst+1は、1となっている。
なお、1つ目の選択方法と同様に、負のレプリカ番号が発生することを避けるために、図18の例のように、l=1の1つ前はl=12(l=12の次はl=1)というように、レプリカ番号が循環していると考える。つまり、k=l±s mod Mが、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカの範囲であるものとする。
図19は、相互作用を与えるレプリカの3つ目の選択方法を用いた場合の解探索処理の手順の一例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS140]解探索エンジン350は、前述の2つの閾値(D,D(D<D))を、レプリカ解探索部352a,352b,・・・,352nに設定する。D,Dは、例えば、サーバ100によって決定され、制御装置200に入力され、データ受け取り部340を介して解探索エンジン350に供給される。
[ステップS141]ステップS141の処理では、図13のステップS101の処理と同様の処理が行われる。ただし、解探索エンジン350はさらに、t=0に初期化するとともに、上記のsの初期値sをレプリカ解探索部352a,352b,・・・,352nに設定する。初期値sは、斥力の相互作用を発生させる場合はs=0であり、引力の相互作用を発生させる場合はs=1である。また、解探索エンジン350は上記の距離の平均値dをd=0に初期化する。
その後の処理(ステップS142からステップS148)のうち、ステップS142の処理以外、図13の処理(ステップS103からステップS108)と同じである。
相互作用を与えるレプリカの3つ目の選択方法では、ステップS142のレプリカごとの解探索処理は、例えば、以下のように行われる。
図20は、相互作用を与えるレプリカの3つ目の選択方法におけるレプリカごとの解探索処理の手順の一例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップS150]解探索エンジン350内のレプリカ解探索部352a,352b,・・・,352nそれぞれは、d<Dであるか否かを判断する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、d<Dであると判断した場合、処理をステップS151に進める。またレプリカ解探索部352a,352b,・・・,352nそれぞれは、d<Dではないと判断した場合、処理をステップS152に進める。
[ステップS151]レプリカ解探索部352a,352b,・・・,352nそれぞれは、sを更新する。相互作用として斥力を発生させる場合、s=s+1に更新され、相互作用として引力を発生させる場合、s=s-1に更新される。
[ステップS152]レプリカ解探索部352a,352b,・・・,352nそれぞれは、d>Dであるか否かを判断する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、d>Dであると判断した場合、処理をステップS153に進める。またレプリカ解探索部352a,352b,・・・,352nそれぞれは、d>Dではないと判断した場合、処理をステップS154に進める。
[ステップS153]レプリカ解探索部352a,352b,・・・,352nそれぞれは、sを更新する。相互作用として斥力を発生させる場合、s=s-1に更新され、相互作用として引力を発生させる場合、s=s+1に更新される。
その後の処理(ステップS154からステップS160)のうち、ステップS154の処理以外、図14の処理(ステップS111からステップS116)と同じである。ステップS160の処理が終わると、ステップS156の処理でインクリメントされた反復回数tを用いて、ステップS150からの処理が繰り返される。
次に、ステップS154の処理である、レプリカ間の相互作用のエネルギーの差分(ΔG,ΔG,・・・,ΔG)の計算処理について詳細に説明する。
図21は、レプリカ間の相互作用のエネルギーの差分の計算手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS170]レプリカ解探索部352a,352b,・・・,352nそれぞれは、自身が解探索を担当するレプリカと、他の何れかのレプリカとの間のハミング距離を計算する。相互作用を与えるレプリカの3つ目の選択方法では、レプリカ解探索部352a,352b,・・・,352nそれぞれは、解探索を担当するレプリカと、そのレプリカのレプリカ番号に対して±sの範囲のレプリカ番号のレプリカとのハミング距離を計算する。
[ステップS171]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカのビットごとに、該当ビットをフリップした場合における遷移前後でのレプリカ間の相互作用のエネルギーの差分(ΔG,ΔG,・・・,ΔG)を計算する。相互作用を与えるレプリカの3つ目の選択方法では、相互作用のエネルギーの差分は、ステップS170の処理で計算されたハミング距離を式(29)に代入して得られる相互作用の強さを用いて計算される。
[ステップS172]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカの規格化定数Zを計算する。
[ステップS173]レプリカ解探索部352a,352b,・・・,352nそれぞれは、ステップS170の処理で計算したハミング距離を用いて、式(30)で表されるdを計算する。
相互作用を与えるレプリカの3つ目の選択方法では、状態遷移を繰り返す処理が行われるたびに計算されるレプリカ間の距離の計算回数は、2sM回となる。そのため、sが小さければ、全レプリカ間の相互作用を考慮した場合の計算回数(M回)より大幅に計算回数を削減できる。
斥力の相互作用を発生させる場合、レプリカ間の距離の平均が小さすぎる(d<D)ということは、それらのレプリカは似たような状態にあり、意図した相互作用の効果を反映していないことの指標になる。そのため、次の反復回数においてはsが増加している。また、レプリカ間の距離の平均が大きすぎる(d>D)ということは、それらのレプリカは大きく異なる状態にあり、これも意図した相互作用の効果を反映していないことの指標になる。そのため、次の反復回数においてはsが減少している。引力の相互作用を発生させる場合はこの反対である。このようにすることで、不必要な相互作用の発生を抑制できる。
(相互作用を与えるレプリカの4つ目の選択方法)
4つ目の方法は、相互作用を適用するレプリカの範囲をランダムに決定する方法である。この方法では、状態遷移を繰り返す処理が行われるたびに、レプリカ番号=lのレプリカに対し、他の各レプリカについて、所定の確率pで相互作用を与えるレプリカとして採用する。ある反復回数tのときに、レプリカ番号=lのレプリカに対して相互作用を与えるレプリカの範囲(レプリカの集合)をC(t)とすると、相互作用の強さは、式(15)または式(16)の代わりに、例えば、以下の式(31)で定義できる。
Figure 2022052222000032
図22は、相互作用を与えるレプリカの4つ目の選択方法の一例を示す図である。
図22では、4個のレプリカ間の相互作用の有無が示されている。図22の例では、レプリカ番号=1のレプリカに対して相互作用を与えるレプリカの範囲であるC(t)は{3,4}である。すなわち、レプリカ番号=3,4の2つのレプリカがレプリカ番号=1のレプリカに対して相互作用を与える。また、レプリカ番号=2のレプリカに対して相互作用を与えるレプリカの範囲であるC(t)はφ(空集合を表す)である。すなわち、レプリカ番号=2のレプリカに対して相互作用を与えるレプリカはない。また、レプリカ番号=3のレプリカに対して相互作用を与えるレプリカの範囲であるC(t)は{1,4}である。すなわち、レプリカ番号=1,4の2つのレプリカがレプリカ番号=3のレプリカに対して相互作用を与える。レプリカ番号=4のレプリカに対して相互作用を与えるレプリカの範囲であるC(t)は{1,3}である。すなわち、レプリカ番号=1,3の2つのレプリカがレプリカ番号=4のレプリカに対して相互作用を与える。
図23は、相互作用を与えるレプリカの4つ目の選択方法を用いた場合の解探索処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS180]解探索エンジン350は、前述の確率pを、レプリカ解探索部352a,352b,・・・,352nに設定する。確率pは、例えば、サーバ100によって決定され、制御装置200に入力され、データ受け取り部340を介して解探索エンジン350に供給される。
[ステップS181]ステップS181の処理では、図13のステップS101の処理と同様の処理が行われる。ただし、解探索エンジン350はさらに、t=0に初期化する。
その後の処理(ステップS182からステップS188)のうち、ステップS182の処理以外、図13の処理(ステップS103からステップS108)と同じである。
相互作用を与えるレプリカの4つ目の選択方法では、ステップS182のレプリカごとの解探索処理は、例えば、以下のように行われる。
図24は、相互作用を与えるレプリカの4つ目の選択方法におけるレプリカごとの解探索処理の手順の一例を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS190]解探索エンジン350内のレプリカ解探索部352a,352b,・・・,352nそれぞれは、前述のC(t)を計算する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、例えば、自身のレプリカのレプリカ番号をlとした場合、C(t)=φとする。そして、レプリカ解探索部352a,352b,・・・,352nそれぞれは、lを除く各レプリカ番号に対して[0,1]の乱数Uを与え、p<Uならばそのレプリカ番号をC(t)に加える処理をレプリカ番号の小さい順にレプリカ番号=Mまで繰り返す。
その後の処理(ステップS191からステップS197)のうち、ステップS191の処理以外、図14の処理(ステップS111からステップS116)と同じである。ステップS197の処理が終わると、ステップS193の処理でインクリメントされた反復回数tを用いて、ステップS190からの処理が繰り返される。
ステップS191のレプリカ間の相互作用のエネルギーの差分(ΔG1,ΔG2,・・・,ΔGN)の計算処理の処理手順は図15に示した処理手順と同じである。ただし、図15のステップS120,S121の処理が、相互作用を与えるレプリカの1つ目の選択方法を適用した場合と異なる。例えば、レプリカ解探索部352a,352b,・・・,352nそれぞれは、ステップS120,S121の処理において以下のような処理を行う。
ステップS120の処理において、レプリカ解探索部352a,352b,・・・,352nそれぞれは、C(t)に含まれるレプリカ番号のレプリカと、自身が解探索を担当するレプリカ番号=lのレプリカとの間のハミング距離を計算する。
ステップS121の処理において、相互作用を与えるレプリカの2つ目の選択方法では、相互作用のエネルギーの差分は、上記のように計算されたハミング距離を式(31)に代入して得られる相互作用の強さを用いて計算される。
レプリカ間の距離の計算回数の期待値(平均の計算量)は、確率pを用いて以下の式(32)のように表せる。
Figure 2022052222000033
式(32)において、iとjはそれぞれレプリカ番号を表しており、“i←→j”は、レプリカ番号=i,jのレプリカ間に相互作用が与えられることを表している。Eは期待値、Pはレプリカ番号=i,jのレプリカ間に相互作用が与えられる確率を表している。また1{i←→j}はレプリカ番号=i,jのレプリカ間に相互作用が与えられる場合に1、相互作用が与えられない場合に0となる指示関数である。
式(32)のように平均の計算量は、pM(M-1)/2となり、pの次数が1/Mとなる程度に小さければ、全レプリカ間の相互作用を考慮した場合の計算回数(M回)より大幅に計算回数を削減できる。
このような方法では、各反復回数において、相互作用が与えられる範囲をランダムに制限していることで、レプリカ番号の差が大きいレプリカ間であっても相互作用を与えられる可能性が高まる。つまり、レプリカ番号の差によらず、相互作用をレプリカ間に与える可能性があり、レプリカ番号による相互作用の適用範囲の偏りを抑制できる。
(更新ビット選択方法)
次に、図14のステップS114、図20のステップS158の更新ビットの選択方法について説明する。更新ビットの選択方法としては、例えば以下の3つの方法が考えられる。
第1の更新ビット選択方法は、Original Boltzmannの方法である。第2の更新ビット選択方法は、エネルギーの並列計算を行い、エネルギーが下がる方向を先に参照することで効率的にビット更新を行う方法である。第3の更新ビット選択方法は、1イテレーションで常にビットフリップが起きるようにしたRejection-freeの方法である。
図25は、第1の更新ビット選択方法による更新ビット選択処理の手順の一例を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。
[ステップS201]レプリカ解探索部352a,352b,・・・,352nそれぞれは、レプリカ間距離を考慮に入れた提案確率g(x→x[j])に従ってビットjを選択する。
[ステップS202]レプリカ解探索部352a,352b,・・・,352nそれぞれは、メトロポリス基準の受け入れ確率a(x→x[j])に従って、選ばれたビットをフリップするか否かを判定する。
第1の更新ビット選択方法は単純な方法であり、計算が容易であるが、選択したビットのフリップの提案が棄却されることもある。提案が棄却された場合、レプリカ解探索部352a,352b,・・・,352nそれぞれは、図14のステップS115(または図20のステップS159)で「NO」と判断し、更新ビット選択処理を繰り返す。
第1の更新ビット選択方法は、提案分布に偏りがある影響を受けて受け入れ確率が小さくなってしまい、棄却ばかりが起こってしまう可能性がある。そこで更新ビットの提案が棄却された場合、レプリカ解探索部352a,352b,・・・,352nそれぞれは、オフセット値Eoffの値を増加させることで、次回の更新ビットにおいて更新ビットが選択される確率を高めることができる。例えばレプリカ解探索部352a,352b,・・・,352nそれぞれは、エネルギーが下がる方向が無くなる(エネルギー差がどのビット更新に対しても正になる)ときにはオフセット値Eoffに所定の値を加算する。
またレプリカ解探索部352a,352b,・・・,352nそれぞれは、エネルギーの並列計算を行い、エネルギーが下がる方向を先に参照することで効率的にビット更新を行う第2の更新ビット選択方法を適用することもできる。
図26は、第2の更新ビット選択方法の処理手順の一例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
[ステップS211]レプリカ解探索部352a,352b,・・・,352nそれぞれは、すべてのビットに対して、メトロポリス基準の受け入れ確率a(x→x[j])に従って、該当ビットが選択された場合にフリップするか否かを判定する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、各ビットに対応付けて、判定結果を示すフラグを設定する。
[ステップS212]レプリカ解探索部352a,352b,・・・,352nそれぞれは、各ビットのフラグを参照し、ツリー状に接続されたセレクタを用いて、レプリカ間距離を考慮に入れた傾斜を与えて、更新ビットを選択する。
図27は、更新ビット選択のためのツリー状に接続されたセレクタの一例を示す図である。制御回路320は、レプリカごとに、複数のビットそれぞれの状態遷移のエネルギーの変化値{ΔE}に応じて、上記の式(6)、式(7)の受け入れ確率でその状態遷移を許容するか否かを判断する。そして、制御回路320は、状態遷移を受け入れると判断したビットのうちの1つを、ツリー状に接続されたセレクタによって選択する。制御回路320は、選択したビットの番号と、遷移可否Fとを出力する。
このように、制御回路320は、複数のビットそれぞれに対して並列探索を行うことで、更新ビットが選択できる確率を高めることができる。
並列探索を行うため、制御回路320は、次の回路構成を有する。一例として、ビットの数を32個として説明する。図27の例ではいずれか1つのビットのみが更新ビットとして選択されるものとする。
制御回路320は、比較回路部51~54とセレクタ部60とを有する。
比較回路部51~54は、複数の状態変数のそれぞれが遷移した場合のエネルギーの変化値{ΔE}を、ニューロン回路311,312,・・・,31nから受け付ける。比較回路部51~54は、{ΔE}に基づいて各状態遷移を受け入れるか否かを判定し、遷移可否{f}を出力する。比較回路部51~54それぞれは、8(=32/4)個の比較器を有する。比較回路部51~54に含まれる全ての比較器の合計数は32個となる。
具体的には、比較回路部51は、比較器C0,C1,…,C7を有する。比較回路部52は、比較器C8,C9,…,C15を有する。比較回路部53は、比較器C16,C17,…,C23を有する。比較回路部54は、比較器C24,C25,…,C31を有する。比較器Ci(図27の例ではiは0以上31以下の整数)は、ΔEを受け付け、ΔEに基づく判定に応じて受け入れ可否fを出力する。比較器Ciによる判定では、エネルギーの変化値ΔEと温度パラメータTの値を用いて算出した受け入れ確率と、乱数値u(0≦u≦1)とが比較される。例えば比較器Ciは、乱数値uが受け入れ確率以下であれば、i番目のビットのフリップを受け入れると判定する。
比較回路部51~54では、予め「T×log(u)」で表される値を計算することもできる。この値は、エネルギーが上がる状態遷移を確率的に引き起こす値であり、熱励起エネルギーまたは熱雑音と呼ぶこともできる。比較器Ciは、ΔEと熱励起エネルギーとを比較し、例えば熱励起エネルギーの方が大きければ、i番目のビットのフリップを受け入れると判定する。
セレクタ部60には、比較器Ciの出力値が状態遷移の候補として入力される。そしてセレクタ部60は、複数の状態遷移の候補の何れか1つを選択し、出力する。セレクタ部60は、当該選択を行うためのn段(nは2以上の整数)のセレクタツリーを有する。図27の例では、n=5である。
セレクタツリーの第1段目(1st)は、部分セレクタ部60a,60bを有する。セレクタツリーの第2段目(2nd)は、部分セレクタ部60cを有する。セレクタツリーの第3段目(3rd)は、部分セレクタ部60dを有する。セレクタツリーの第4段目(4th)は、部分セレクタ部60eを有する。セレクタツリーの第5段目(5th)は、部分セレクタ部60fを有する。
部分セレクタ部60a,60b,…,60fのそれぞれは、例えば、2つの入力のうちの1つを選択用乱数により選択して出力する1または複数のセレクタを有する。セレクタ61は、複数のセレクタのうちの1つであり、他のセレクタもセレクタ61と同様の構成である。セレクタ61に対する2つの入力はiとjの遷移番号を特定するための識別値N,Nと遷移可否情報f,fと提案確率g(x→x[i]),g(x→x[j])である。セレクタ61の出力は遷移可否情報f,fの論理和として得られる可否情報fと、iとjのうち選択された方の遷移番号を特定するための識別値Noと、選択された方のビットの提案確率g(xl→xl[o])である。
セレクタ61は、遷移可否情報f,fのいずれか一方が1(受け入れ可)、他方が0(受け入れ不可)の場合は受け入れ可の方のビットを必ず選択する。セレクタ61は、遷移可否情報f,fの両方0の場合はどのように選んでもよい。
セレクタ61は、遷移可否情報f,fの両方が1の場合には、候補選択用乱数を用いて、提案確率に応じた確率で一方を選択する。例えばセレクタ61は、提案確率g(x→x[i]),g(x→x[j])の比率に応じて、0から1の値域を、iとjのビットに対応する2つの区間に分ける。そしてセレクタ61は、候補選択用乱数を含む区間に対応するビットを選択する。そしてセレクタ61は、選択結果により選ばれたビットの識別値Nを生成し出力する。
図27の例ではセレクタ61以外のセレクタが略記されている。図27では黒い丸印で表された箇所が、1つのセレクタに相当する。部分セレクタ部60a,60b,60cのそれぞれは、8個のセレクタを有する。部分セレクタ部60dは、4個のセレクタを有する。部分セレクタ部60eは、2個のセレクタを有する。部分セレクタ部60fは、1個のセレクタを有する。部分セレクタ部60a~60f内の各セレクタがセレクタ61と同様の選択処理を行うことで、レプリカ間距離に応じた提案確率が高いビットほど選択される可能性を高くして、1つのビットが状態遷移の候補として出力される。
図27で示されるように、制御回路320は、状態遷移の並列探索を行い、セレクタの2進木構造を用いてノックダウン方式(あるいはトーナメント方式とも呼ばれる)で、状態遷移の候補を1つに絞り込む。フリップによりエネルギーが減少するビットは、比較器により受け入れ可と判断されるため、フリップによりエネルギーが減少するビットが少なくとも1つ存在すれば、セレクタ部60による1回の選択で更新ビットを選択できる。また局所解に達しており、いずれのビットをフリップしてもエネルギーが増加する場合であっても、乱数値uと温度パラメータTの値に基づいて、いずれか1つのビットのフリップが受け入れられる可能性がある。いずれか1つのビットのフリップが受け入れられれば、セレクタ部60による1回の選択で更新ビットを選択できる。しかも、セレクタによる選択時に、レプリカ間距離を反映させた提案確率を用いたことで、提案確率が高いビットほど更新ビットとして選択される可能性が高くなる。
なおレプリカ解探索部352a,352b,・・・,352nそれぞれは、セレクタ部60が出力した遷移可否情報が0(受け入れ不可)の場合、オフセット値を増加させて、更新ビット選択処理を繰り返す。これにより、更新ビットを早期に選択できる可能性が高くなる。
図28は、第3の更新ビット選択方法の処理手順の一例を示すフローチャートである。第3の更新ビット選択方法は、以下の1ステップで更新ビットを選択できる。
[ステップS231]レプリカ解探索部352a,352b,・・・,352nそれぞれは、各ビットの遷移確率W(x→x[j])=g(x→x[j])×a(x→x[j]を用いて、以下の式(33)に示すRejection-freeの遷移確率W(x→x[j])(Wはチルダ付き)を計算する。
Figure 2022052222000034
そしてレプリカ解探索部352a,352b,・・・,352nそれぞれは、Rejection-freeの遷移確率により、いずれか1つのビットを更新ビットとして選択する。このように各ビットの遷移確率を正規化し、受け入れ確率の合計が1となるようにすることで、1回の更新ビット選択処理で、常に更新ビットを選択することが可能となる。
以上説明したように、第2の実施の形態に係るイジングマシン300は、レプリカ間の相互作用を提案確率に反映させ、複数のレプリカを用いた解探索を行っている。これにより、組み合わせ最適化問題をメトロポリスヘイスティングの方法に基づいて求解する際に、収束先の分布を保ったまま、それぞれのレプリカがバラバラに状態空間を探索することが期待され、求解性能が向上する。すなわち、最適解へ到達する可能性が高くなり、エネルギーの下がり方を速くすることができる。
また、イジングマシン300は、全レプリカ間の相互作用を考慮するのではなく、一部のレプリカ間の相互作用を考慮するものであるため、全レプリカ間の相互作用を考慮した場合のレプリカ間の距離の計算回数(M回)よりも計算回数を削減できる。例えば、前述の相互作用を与えるレプリカの4つの選択方法によれば、上記計算回数をMの1次式で表せる程度に抑えることができる。
図29は、レプリカ間に斥力の相互作用を設定した場合のエネルギーランドスケープを示す図である。複数のレプリカ71~73のうち、レプリカ71,72の間と、レプリカ72,73の間には、斥力の相互作用が与えられている。レプリカ71,73の間には、斥力の相互作用が与えられていない。この場合、レプリカ71,72とレプリカ72,73が互いに反発し合うことで、広い探索空間を効率的に探索することができる。
図30は、レプリカ間に引力の相互作用を設定した場合のエネルギーランドスケープを示す図である。複数のレプリカ74,75の間には、引力の相互作用が与えられている。レプリカ74,75が互いに引きつけられることで局所解から脱出し易くなり、集団全体として大域解に到達できる可能性が高まる。一方、レプリカ74,76間には引力の相互作用が与えられていない。この場合、レプリカ76がレプリカ74に引き寄せられて局所解に嵌まることが抑制される。
次に、効果確認を行った検証例について、図31~図33を参照して説明する。
図31は、第1の検証例を示す図である。図32および図33は、第2の検証例を示す図である。
図31~図33に示す例は、二次割り当て問題(QAP)という代表的な組み合わせ最適化問題のいくつかのインスタンスについて検証した結果である。提案分布に従った各ビットの提案確率の計算には前述の式(17)を使用している。レプリカ間の相互作用のエネルギーとしては、前述の式(19)に示したハミング距離の一次関数を使用している。更新ビットの選択方法としては、第3の更新ビット選択方法(Rejection-free)が用いられている。また、全レプリカ数M=30である。
図31の例では、1-bitフリップ遷移かつレプリカ交換を使う解探索手法において、レプリカ間の相互作用の有無によるエネルギーの下がり方の違いを比較している。横軸が状態遷移の反復回数であり、縦軸がその時点で得られているエネルギーの最小値である。γ(図31では“gamma”と表記)を斥力相互作用のパラメータとしたときに、gamma=0とgamma<0(つまり斥力相互作用の有無)との場合についてエネルギーの下がり方について比較している。
図31の例では、斥力相互作用を導入した場合(gamma-3)のほうが相互作用を導入しない場合(gamma-0)よりもエネルギーの下がり方が速い。
このように、レプリカ間の相互作用を導入したことで、解探索性能が向上している。しかもレプリカ間の相互作用を提案確率に反映しており、目的関数に手を加えないため、適切な目的関数(例えばギブス分布を示す関数)を用いた解探索が可能となる。
図32および図33に示す例は、相互作用を与えるレプリカの1つ目の選択方法を用いたものであり、相互作用の適用範囲を決める前述のsを、1~15の範囲で変えた場合について、エネルギーの下がり方の違いを比較したものである。なお、s=0は、相互作用を適用しない場合を示している。
図32、図33に示すように、相互作用の適用範囲が広いほう(図33)が、エネルギーの下がり方が速いが、相互作用の適用範囲が狭い場合(図32)においても、相互作用を適用しない場合よりも低いエネルギーへの収束が生じている。
なお、非特許文献1に示されたCMCと呼ばれる方法は、実数を定義域とする目的関数にのみ適用可能な方法であり、2値の離散空間を定義域とする(バイナリ変数)イジングマシンの目的関数に直接は適応できない。またCMCでは、距離が近いレプリカの数(密度)をカウントしているが、1-bitフリップの場合にレプリカすべての状態をみたときに、その状況がフリップした前後で大きくは変わらない。そのため、あるビットのフリップ前後でのレプリカ数の密度の比はほぼ1に近くなってしまい、2値の離散空間を定義域とするとレプリカ相互作用の効果が薄くなってしまう。それに対して、第2の実施の形態に示した方法では、2値の離散空間を定義域とする組み合わせ最適化問題に適用でき、求解性能も向上する。
また、非特許文献2に示されたREと呼ばれる方法では、レプリカ間の相互作用を目的関数に直接加える方法をとっているため、本来の目的関数の最適化を行っている保証はない。それに対して、第2の実施の形態に示した方法では、レプリカ間の相互作用を提案確率に反映しており、適切な目的関数を用いた解探索が可能となる。
〔その他の実施の形態〕
第2の実施の形態では、レプリカ間の温度交換を行っているが、レプリカ間の温度交換を実施せずに、複数のレプリカで個別に解探索を行うことも可能である。その場合であっても、レプリカ間の相互作用を考慮した解探索により、解探索能力が向上する。
また第2の実施の形態では、2値の離散空間を定義域とするイジングモデルを用いた求解を行っているが、実数を定義域とするモデルをレプリカとして求解する場合にも適用可能である。
さらに第2の実施の形態では、複数のニューロン回路311,312,・・・,31nを有するイジングマシン300で解探索を行っているが、同じ処理を図3に示したサーバ100と同様のハードウェア構成のノイマン型コンピュータで実現することも可能である。その場合、イジングマシン300は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態と同様の解探索処理を実行する。イジングマシン300に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、イジングマシン300に実行させるプログラムをストレージ装置に格納しておくことができる。イジングマシン300のプロセッサは、ストレージ装置内のプログラムの少なくとも一部をメモリにロードし、プログラムを実行する。またイジングマシン300に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばイジングマシン300のプロセッサからの制御により、ストレージ装置にインストールされた後、実行可能となる。またイジングマシン300のプロセッサが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 状態空間
2~4 レプリカ
10 最適化装置
11 記憶部
12 処理部

Claims (10)

  1. 複数のレプリカそれぞれの複数の状態変数の値を記憶する記憶部と、
    前記複数のレプリカそれぞれについて、該レプリカが有する前記複数の状態変数のうちの第1状態変数の値を更新した場合における、前記レプリカと、前記複数のレプリカから前記レプリカを除いたレプリカ群のうちの一部である他のレプリカとの、前記複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内での距離の変化に応じた相互作用の強さの変化量を特定し、前記第1状態変数の値を更新した場合における前記相互作用の強さの前記変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、前記第1状態変数の値を更新するか否かを決定する処理部と、
    を有する最適化装置。
  2. 前記複数のレプリカそれぞれには、前記複数のレプリカそれぞれを識別する識別情報であるレプリカ番号が与えられており、
    前記他のレプリカは、前記レプリカを識別する識別情報である第1のレプリカ番号との差が所定の値である範囲に含まれる第2のレプリカ番号が与えられているレプリカである、
    請求項1に記載の最適化装置。
  3. 前記処理部は、前記距離の平均値と、第1の閾値または前記第1の閾値より大きい第2の閾値との比較結果に基づいて、前記所定の値を変化させる、請求項2に記載の最適化装置。
  4. 前記処理部は、斥力の前記相互作用を発生させる場合、前記平均値が前記第1の閾値よりも小さいときは、前記所定の値を増加させ、前記平均値が前記第2の閾値よりも大きいときは、前記所定の値を減少させる、請求項3に記載の最適化装置。
  5. 前記処理部は、引力の前記相互作用を発生させる場合、前記平均値が前記第1の閾値よりも小さいときは、前記所定の値を減少させ、前記平均値が前記第2の閾値よりも大きいときは、前記所定の値を増加させる、請求項3に記載の最適化装置。
  6. 前記所定の値をs、前記複数のレプリカの数をM、前記第1のレプリカ番号をlとし、前記レプリカ番号が循環しているとしたとき、前記他のレプリカは、l-sをMで割った余りと、l+sをMで割った余りの範囲に含まれる前記第2のレプリカ番号が与えられているレプリカである請求項2ないし5の何れか一項に記載の最適化装置。
  7. 前記複数のレプリカは、複数のグループにグループ分けされており、前記複数のグループそれぞれには代表レプリカが設定されており、
    前記複数のグループのうち第1のグループに属する前記レプリカに対する前記他のレプリカは、前記複数のグループのうち前記第1のグループ以外の他のグループの前記代表レプリカである、
    請求項1に記載の最適化装置。
  8. 前記処理部は、前記レプリカ以外の前記複数のレプリカそれぞれについて、所定の確率で前記他のレプリカとして採用する、請求項1に記載の最適化装置。
  9. 最適化装置が、
    複数の状態変数を有する複数のレプリカそれぞれについて、該レプリカが有する前記複数の状態変数のうちの第1状態変数の値を更新した場合における、前記レプリカと、前記複数のレプリカから前記レプリカを除いたレプリカ群のうちの一部である他のレプリカとの、前記複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内での距離の変化に応じた相互作用の強さの変化量を特定し、前記第1状態変数の値を更新した場合における前記相互作用の強さの前記変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、前記第1状態変数の値を更新するか否かを決定する、
    最適化方法。
  10. 最適化装置に、
    複数の状態変数を有する複数のレプリカそれぞれについて、該レプリカが有する前記複数の状態変数のうちの第1状態変数の値を更新した場合における、前記レプリカと、前記複数のレプリカから前記レプリカを除いたレプリカ群のうちの一部である他のレプリカとの、前記複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内での距離の変化に応じた相互作用の強さの変化量を計算し、前記第1状態変数の値を更新した場合における前記相互作用の強さの前記変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、前記第1状態変数の値を更新するか否かを決定する、
    処理を実行させる最適化プログラム。
JP2020158476A 2020-09-23 2020-09-23 最適化装置、最適化方法、および最適化プログラム Active JP7502633B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020158476A JP7502633B2 (ja) 2020-09-23 2020-09-23 最適化装置、最適化方法、および最適化プログラム
US17/345,037 US20220092380A1 (en) 2020-09-23 2021-06-11 Optimization device, optimization method, and computer-readable recording medium storing optimization program
EP21179995.2A EP3975057A1 (en) 2020-09-23 2021-06-17 Optimization device, optimization method, and optimization program
CN202110757910.4A CN114298315A (zh) 2020-09-23 2021-07-05 优化装置、优化方法及非暂态计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020158476A JP7502633B2 (ja) 2020-09-23 2020-09-23 最適化装置、最適化方法、および最適化プログラム

Publications (2)

Publication Number Publication Date
JP2022052222A true JP2022052222A (ja) 2022-04-04
JP7502633B2 JP7502633B2 (ja) 2024-06-19

Family

ID=76695478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020158476A Active JP7502633B2 (ja) 2020-09-23 2020-09-23 最適化装置、最適化方法、および最適化プログラム

Country Status (4)

Country Link
US (1) US20220092380A1 (ja)
EP (1) EP3975057A1 (ja)
JP (1) JP7502633B2 (ja)
CN (1) CN114298315A (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6840668B2 (ja) 2014-11-14 2021-03-10 ディ.イー.ショー リサーチ, エルエルシーD.E.Shaw Research, Llc 結合された粒子間の相互作用の抑制
JP6979331B2 (ja) 2017-10-30 2021-12-15 株式会社日立製作所 情報処理装置および情報処理方法
JP6993571B2 (ja) 2018-01-17 2022-01-13 富士通株式会社 最適化装置及び最適化装置の制御方法
EP3852027A4 (en) 2018-09-14 2022-05-18 Fujitsu Limited OPTIMIZATION DEVICE, OPTIMIZATION DEVICE CONTROL METHOD AND OPTIMIZATION DEVICE CONTROL PROGRAM
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7193708B2 (ja) 2018-10-19 2022-12-21 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7108185B2 (ja) 2018-11-22 2022-07-28 富士通株式会社 最適化装置および最適化装置の制御方法

Also Published As

Publication number Publication date
EP3975057A1 (en) 2022-03-30
JP7502633B2 (ja) 2024-06-19
US20220092380A1 (en) 2022-03-24
CN114298315A (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
Gharehchopogh Quantum-inspired metaheuristic algorithms: comprehensive survey and classification
Wang et al. Quantumnas: Noise-adaptive search for robust quantum circuits
Breve et al. Particle competition and cooperation in networks for semi-supervised learning
JP4934058B2 (ja) 共クラスタリング装置、共クラスタリング方法、共クラスタリングプログラム、および、そのプログラムを記録した記録媒体
JP7488457B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US20220083914A1 (en) Learning apparatus, learning method, and a non-transitory computer-readable storage medium
Nadimi-Shahraki et al. MMKE: Multi-trial vector-based monkey king evolution algorithm and its applications for engineering optimization problems
Pandey et al. Evaluation of genetic algorithm’s selection methods
Li et al. Data sparseness in linear SVM
Dehuri et al. A condensed polynomial neural network for classification using swarm intelligence
Khan Particle swarm optimisation based feature selection for software effort prediction using supervised machine learning and ensemble methods: A comparative study
JP2021005282A (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2022150078A (ja) 情報処理プログラム、情報処理装置、及び情報処理方法
JP2021184148A (ja) 最適化装置、最適化方法、および最適化プログラム
Kang et al. TMHSCA: a novel hybrid two-stage mutation with a sine cosine algorithm for discounted {0-1} knapsack problems
JP7502633B2 (ja) 最適化装置、最適化方法、および最適化プログラム
Briffoteaux Parallel surrogate-based algorithms for solving expensive optimization problems
Zhu et al. A hybrid model for nonlinear regression with missing data using quasilinear kernel
JP2020129222A (ja) モデル出力プログラム、モデル出力方法及びモデル出力装置
Kaylani et al. AG-ART: an adaptive approach to evolving ART architectures
EP4367606A1 (en) Variable freezing method for an objective optimisation problem
Yu et al. Stochastic Multiple Chaotic Local Search‐Incorporated Gradient‐Based Optimizer
Pontes-Filho et al. EvoDynamic: a framework for the evolution of generally represented dynamical systems and its application to criticality
Sadhukhan et al. Oversampling the minority class using a dedicated fitness function and genetic algorithmic progression
Liu et al. An evolutionary algorithm based on approximation method and related techniques for solving bilevel programming problems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240520