JP2021184148A - 最適化装置、最適化方法、および最適化プログラム - Google Patents
最適化装置、最適化方法、および最適化プログラム Download PDFInfo
- Publication number
- JP2021184148A JP2021184148A JP2020088882A JP2020088882A JP2021184148A JP 2021184148 A JP2021184148 A JP 2021184148A JP 2020088882 A JP2020088882 A JP 2020088882A JP 2020088882 A JP2020088882 A JP 2020088882A JP 2021184148 A JP2021184148 A JP 2021184148A
- Authority
- JP
- Japan
- Prior art keywords
- value
- replica
- state
- replicas
- interaction
- 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.)
- Withdrawn
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims description 110
- 230000003993 interaction Effects 0.000 claims abstract description 102
- 230000008859 change Effects 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 72
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000013459 approach Methods 0.000 claims 1
- 230000007704 transition Effects 0.000 description 84
- 230000006870 function Effects 0.000 description 41
- 230000008569 process Effects 0.000 description 35
- 230000005366 Ising model Effects 0.000 description 21
- 210000002569 neuron Anatomy 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 238000010187 selection method Methods 0.000 description 15
- 230000007423 decrease Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000012886 linear function Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000001186 cumulative effect Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000000342 Monte Carlo simulation Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 239000002096 quantum dot Substances 0.000 description 4
- 238000000137 annealing Methods 0.000 description 3
- 230000005284 excitation Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000003197 gene knockdown Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000005511 kinetic theory Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000005496 tempering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/08—Computing arrangements based on specific mathematical models using chaos models or non-linear system models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/08—Thermal analysis or thermal optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Evolutionary Computation (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Computer Hardware Design (AREA)
- Nonlinear Science (AREA)
- Geometry (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Computational Linguistics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】複数のレプリカを用いた場合の解探索能力を向上させる。【解決手段】最適化装置は、複数の状態変数を有する複数のレプリカそれぞれについて、レプリカが有する複数の状態変数のうちの第1状態変数の値を更新した場合における、複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内でのそのレプリカと他のレプリカとの距離の変化に応じた相互作用の強さの変化量を特定する。そして最適化装置は、第1状態変数の値を更新した場合における相互作用の強さの変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、第1状態変数の値を更新するか否かを決定する。【選択図】図18
Description
本発明は、最適化装置、最適化方法、および最適化プログラムに関する。
ノイマン型コンピュータが不得意とする問題として、大規模な離散最適化問題がある。離散最適化問題を計算する装置としては、例えば、イジング型の評価関数(エネルギー関数などとも呼ばれる)を用いたイジングマシン(ボルツマンマシンとも呼ばれる)がある。
イジングマシンによる計算では、計算対象の問題は磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えられる。そして、マルコフ連鎖モンテカルロ法により、イジング型の評価関数の値(イジングモデルのエネルギーに相当する)が最小となる状態の探索が行われる。以下、マルコフ連鎖モンテカルロ法を、MCMC(Markov-Chain Monte Carlo)法と略す。MCMC法では、例えばメトロポリス法またはギブス法で規定される状態遷移の受け入れ確率で、その状態遷移が受け入れられる。
MCMC法の一種として、レプリカ交換法(交換モンテカルロ法またはパラレルテンパリング(parallel tempering)法とも呼ばれる)がある。レプリカ交換法は複数の温度を用いたMCMC処理を互いに独立に行い、ある試行回数ごとに、各MCMC処理で得られるエネルギーを比較し、適切な確率で2つの温度に対する状態を交換するという操作を行う方法である。レプリカ交換によれば、温度を徐々に下げていく疑似焼き鈍し法と比べて、局所解に拘束される可能性が抑えられ、全探索空間を効率よく探索できる。
解探索に関する技術としては、さらに、探索過程における状態のエネルギー分布をボルツマン分布に近づけることにより、遷移候補探索の並列化による収束特性の変化、解の精度の悪化を抑制する最適化装置も提案されている。レプリカ交換に関する技術としては、例えば、計算時間を短縮するイジングマシンが提案されている。またレプリカ交換法による擬似焼鈍し動作を行う最適化装置の回路規模の増大を抑制する最適化装置が提案されている。さらに回路の物量を削減しつつ、メトロポリス法に基づく確率的な処理を可能とする情報処理装置も提案されている。複数のレプリカを用いて解探索を行う技術としては、Collective Monte Carlo(CMC)と呼ばれる方法や、Robust Ensemble(RE)と呼ばれる方法も提案されている。
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状態変数の値を更新した場合における、複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内でのレプリカと他のレプリカとの距離の変化に応じた相互作用の強さの変化量を特定する。そして処理部は、第1状態変数の値を更新した場合における相互作用の強さの変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、第1状態変数の値を更新するか否かを確率的に決定する。
1態様によれば、複数のレプリカを用いた場合の解探索能力を向上させることができる。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る最適化方法の一例を示す図である。図1には、解探索方法を実現する最適化装置10が示されている。最適化装置10は、ノイマン型コンピュータであってもよく、非ノイマン型コンピュータであってもよい。例えば最適化装置10は、最適化用のプログラムを実行することにより、最適化方法を実施することができる。また最適化装置10は、イジングモデルを用いた最適化問題の求解を行うイジングマシンであってもよい。イジングマシンには、量子ビットを用いた量子コンピュータ、量子ビットの量子現象をデジタル回路上で再現した装置などが含まれる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る最適化方法の一例を示す図である。図1には、解探索方法を実現する最適化装置10が示されている。最適化装置10は、ノイマン型コンピュータであってもよく、非ノイマン型コンピュータであってもよい。例えば最適化装置10は、最適化用のプログラムを実行することにより、最適化方法を実施することができる。また最適化装置10は、イジングモデルを用いた最適化問題の求解を行うイジングマシンであってもよい。イジングマシンには、量子ビットを用いた量子コンピュータ、量子ビットの量子現象をデジタル回路上で再現した装置などが含まれる。
最適化装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば最適化装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば最適化装置10が有するプロセッサ、または演算回路である。演算回路には、量子ビットまたは量子ビットの仕組みを再現するニューロン回路が含まれる。
記憶部11は、複数のレプリカ2〜4それぞれの複数の状態変数の値を記憶する。
処理部12は、複数のレプリカ2〜4を用いて、最適化問題を求解する。例えば処理部12は、最適化問題に応じて定義された目的関数の値が最小となる状態変数の値を求める。目的関数は、最適化問題を表すモデルのエネルギーと呼ばれることもある。最適化問題がイジングモデルで表される場合、イジングモデルのハミルトニアンが、エネルギーを示す目的関数に相当する。
処理部12は、複数のレプリカ2〜4を用いて、最適化問題を求解する。例えば処理部12は、最適化問題に応じて定義された目的関数の値が最小となる状態変数の値を求める。目的関数は、最適化問題を表すモデルのエネルギーと呼ばれることもある。最適化問題がイジングモデルで表される場合、イジングモデルのハミルトニアンが、エネルギーを示す目的関数に相当する。
解探索のために処理部12は、複数のレプリカ2〜4それぞれについて状態遷移(状態変数の値を更新すること)を繰り返し、生成された状態における複数の状態変数の値に基づいて目的関数の値を計算する。その際、処理部12は、レプリカ間の相互作用を考慮して、レプリカの状態遷移を行う。レプリカ間の相互作用としては、例えばレプリカ間の距離に応じた引力または斥力が考えられる。k番目のレプリカxkとl番目のレプリカxlとの距離は、d(xk,xl)と表記する(k,lは、1以上の整数)。例えば処理部12は、複数のレプリカ2〜4それぞれについて以下のようにして状態遷移を行う。
処理部12は、レプリカが有する複数の状態変数のうちの第1状態変数の値を更新した場合における、複数の状態変数の値の組み合わせが取り得る空間を示す状態空間1内でのそのレプリカと他のレプリカとの距離の変化に応じた相互作用の強さの変化量を特定する。相互作用の強さは、例えば他のレプリカそれぞれとの距離の合計に基づく値である。相互作用の強さは、相互作用のエネルギーG(X)と呼ぶこともできる。相互作用の強さは、例えば後述の式(15)または式(16)で表すことができる。l番目のレプリカのj0番目の状態変数を更新した場合の相互作用の強さの変化量は、ΔG=G(xl[j0])−G(xl)と表すことができる。
そして処理部12は、第1状態変数(例えばj0番目の状態変数)の値を更新した場合における、第1状態変数の値を更新するか否かを決定する。この決定は、相互作用の強さの変化量に応じた提案確率(g(xl→xl[j0])と、目的の確率分布に応じた受け入れ確率(a(xl→xl[j0])とに基づいて、確率的に行われる。目的の確率分布は、例えばギブス分布である。提案確率と受け入れ確率とに基づいてレプリカが状態遷移する遷移確率は、例えばメトロポリスヘイスティング法に従う。
処理部12は、第1状態変数の値を更新すると決定した場合、第1状態変数の値を更新した後のレプリカの複数の状態変数の値に基づいて、目的関数の値を計算する。また処理部12は、記憶部11内におけるレプリカの第1状態変数の値を更新する。そして処理部12は、複数のレプリカ2〜4それぞれの複数の状態変数の一の状態変数の値の更新を繰り返し、目的関数の値が所定の条件を満たしたときの複数の状態変数の値を出力する。例えば処理部12は、複数のレプリカ2〜4の更新を所定回数繰り返した後、目的関数の値が最小となる複数の状態変数の値の組み合わせを出力する。
このようにして、レプリカ間の相互作用を考慮したレプリカの状態遷移により、解の探索が行われる。すなわち最適化装置10は、レプリカ間の相互作用を考慮したことで、複数のレプリカ2〜4による状態空間1内を網羅的に探索することができる。しかもメトロポリスヘイスティング法を用いることで、最適化装置10は、レプリカ間の相互作用による影響を適切な形で計算に組み込むことができる。
なお処理部12は、状態空間1に対して適切な距離を定義し、レプリカ間の距離を定める。そして処理部12は、その距離を用いてレプリカ間の相互作用の強さを決定し、メトロポリスヘイスティング法における遷移候補先の分布(提案分布)を定義し、計算に組み込む。メトロポリスヘイスティング法は提案分布が非対称な場合に対応している。そのため、提案分布の決め方に自由度がある。そこで、処理部12は、メトロポリスヘイスティング法における提案分布(提案確率の定義)の自由度を利用し、提案確率内にレプリカ間相互作用を導入している。
レプリカ間の相互作用として、例えば斥力の相互作用を生じさせることができる。この場合、処理部12は、第1状態変数の値を更新すると状態遷移判断対象のレプリカと他のレプリカとの距離が遠ざかる場合に、相互作用の強さを増加させる。処理部12は、相互作用の強さの増加量が大きいほど提案確率を大きくする。そして処理部12は、提案確率が大きい状態変数ほど、値を更新する候補として選択される確率を高くする。その結果、例えば複数のレプリカ2〜4が、同じ局所解に嵌まり出られなくなることを抑止できる。
またレプリカ間の相互作用として、引力の相互作用を生じさせることもできる。この場合、処理部12は、第1状態変数の値を更新すると状態遷移判断対象のレプリカと他のレプリカとの距離が近づく場合に、相互作用の強さを増加させる。処理部12は、相互作用の強さの増加量が大きいほど提案確率を大きくする。これにより、局所解に嵌まって出られなくなっているレプリカを、他のレプリカからの引力により、局所解から抜け出させることが可能となる。
状態空間1が離散的であり、状態変数の値が二値(例えば「1」または「0」)のみを取り得る場合、2つのレプリカ間の距離として、例えばハミング距離(またはその単調増加関数)を用いることができる。この場合、処理部12は、すべてのレプリカ間のハミング距離を定義し、それによりレプリカ相互作用の強さを計算する。レプリカ間の距離は、後述の式(19)のように表すことができる。
なお処理部12は、第1状態変数の値を更新することについての提案確率を、例えば規格化定数によって規格化する。例えば第1状態変数の値を更新した場合における相互作用の強さの変化量をΔG、レプリカに設定された温度パラメータの値の逆数である逆温度をβとする。このとき処理部12は、exp(−βΔG)を所定の規格化定数で除算した値を提案確率とする。この提案確率は、例えば後述の式(17)で表すことができる。exp(−βΔG)はギブス分布を表しており、提案確率の定義にギブス分布を用いたことで、目的関数(エネルギー)においてギブス分布を保つことが容易になる。
また処理部12は、1とexp(−βΔG)とのうちの小さい方を、所定の規格化定数で除算した値を提案確率としてもよい。この提案確率は、例えば後述の式(18)で表すことができる。これによりexp(−βΔG)が1を超える場合は1とみなされることとなり、相互作用の強さの変化量が状態変数間で大きく異なる場合の提案確率への影響の差を弱めることができる。
ここで、規格化定数について説明する。従来の提案分布は複数の状態変数が等確率(1/N)で遷移候補として選択される(Nは、状態変数の数を示す1以上の整数)。この場合、規格化定数はN(それぞれの遷移先の重みが共通で1ということ)である。図1の最適化装置10では、遷移候補となる状態変数それぞれの遷移確率が異なり、規格化定数が遷移前の現在状態に依存する。そこで処理部12において規格化定数を計算することとなる。
例えば処理部12は、複数の状態変数それぞれを第1状態変数とした場合における複数の状態変数それぞれについてのexp(−βΔG)の値の総和を、規格化定数とする。この規格化定数は、例えば後述の式(23)で表すことができる。なお、相互作用がハミング距離の一次関数の場合、処理部12は、レプリカの状態遷移ごとに状態遷移前と状態遷移後との規格化定数の差分計算を行い、差分の累積値を計算し(累積計算)、最新の規格化定数とすることができる。ハミング距離の一次関数は、後述の式(19)に示すような関数である。
規格化定数の累積計算をする場合、処理部12は、レプリカを状態遷移させるごとに、更新させる状態変数の決定に使用した規格化定数を記憶部11に格納しておく。そして処理部12は、レプリカの状態遷移の際に使用した規格化定数の値と、前回の状態遷移の前後で生じる規格化定数の値の差分とに基づいて、今回の状態遷移で使用する規格化定数の値を算出する。前回の状態遷移の前後で生じる規格化定数の値の差分は、例えば後述の式(24)で表される。これにより、規格化定数を効率的に算出することができる。
なお処理部12は、他のレプリカそれぞれとの距離の平方根の合計に基づく値を、相互作用の強さとしてもよい。この場合の相互作用の強さは、例えば後述の式(16)で表される。これにより、距離が遠い他のレプリカよりも距離が近い他のレプリカからの相互作用が、相対的により強く働くようにすることができる。例えば、複数のレプリカ2〜4が同じ局所解に嵌まることを抑止する場合、その局所解の近辺に存在するレプリカ間に強い斥力を働かせることで、局所解からの脱出を促進することができる。この場合、その局所解とは遠く離れた位置のレプリカからの影響が少ない方が、局所解からの脱出が容易となる。
また処理部12は、複数の状態変数の中から、値の更新を受け入れることができる状態変数を先に特定し、その中から今回のレプリカの状態遷移において値を更新する状態変数を決定することもできる。この場合、処理部12は、複数の状態変数それぞれについて、受け入れ確率に基づいて、状態変数の更新が提案された場合に更新を受け入れるか否かを確率的に決定する。そして処理部12は、更新を受け入れると判定された状態変数の中から、提案確率が高い状態変数ほど選択される可能性を高くして、少なくとも1つの状態変数を更新対象に決定する。これにより、選択した状態変数の値の更新の棄却(更新を受け入れないとの判定)が繰り返され、値を更新する状態変数の決定に時間がかかることを抑止できる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、目的関数の値が最小となる各状態変数の値の組み合わせを計算するイジングマシンを用いたシステムの例である。なお第2の実施の形態におけるイジングマシンは、第1の実施の形態に示した最適化装置10の一例である。イジングマシンでは、求解対象の問題をイジングモデルで表し、そのイジングモデルのエネルギーが最小値となるビットの値の組み合わせを探索する。イジングモデルのエネルギーを計算する式(ハミルトニアン)が、目的関数である。
次に第2の実施の形態について説明する。第2の実施の形態は、目的関数の値が最小となる各状態変数の値の組み合わせを計算するイジングマシンを用いたシステムの例である。なお第2の実施の形態におけるイジングマシンは、第1の実施の形態に示した最適化装置10の一例である。イジングマシンでは、求解対象の問題をイジングモデルで表し、そのイジングモデルのエネルギーが最小値となるビットの値の組み合わせを探索する。イジングモデルのエネルギーを計算する式(ハミルトニアン)が、目的関数である。
図2は、第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からの制御に基づいて、デジタル回路を用いたイジングモデルの状態遷移のシミュレーションを行い、エネルギーの最小値を探索する。
図3は、サーバのハードウェアの一例を示す図である。サーバ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と同様のハードウェアにより実現することができる。
図4は、イジングマシンの一例を示す図である。イジングマシン300は、ニューロン回路311,312,…,31n、制御回路320、およびメモリ330を有する。
ニューロン回路311〜31nはそれぞれ、自身以外の複数の他のニューロン回路との接続の有無を示す複数の重み係数の値と、複数の他のニューロン回路の複数の出力信号との積の総和に基づく第1の値を算出する。そしてニューロン回路311〜31nそれぞれは、第1の値にノイズ値を加算した第2の値と閾値との比較結果に基づき、0または1のビット値を出力する。複数のレプリカを用いた解探索を行う場合、複数のニューロン回路を用いて1つのレプリカの解探索が行われる。
ニューロン回路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と同様のハードウェアにより実現することができる。
次に、求解の対象となるイジング型の最小値求解問題(イジング型問題)について説明する。イジング型問題はイジングモデルで表される。
次に、求解の対象となるイジング型の最小値求解問題(イジング型問題)について説明する。イジング型問題はイジングモデルで表される。
図5は、イジングモデルの模式図である。イジングモデル30は、格子状に複数のビット31が配置される。ビット31は、磁石を模したものであり、スピンとも呼ばれる。隣接するビット間には相互作用が働く。相互作用の大きさは、重み係数で表される。イジングモデル30のエネルギーは、次の式(1)で表される。
右辺の1項目は、N個の状態変数の全組み合わせについて、漏れと重複なく、2つの状態変数の値(0または1)と重み係数との積を積算したものである。xiはi番目の状態変数、xjはj番目の状態変数を表し、Wijは、xiとxjとの結合の強さを示す重み係数である。右辺の2項目は、各状態変数のそれぞれについてのバイアス係数(bi)の総和を求めたものである。Wijが正の場合、xiとxjとが同じ値となるような相互作用が働く。またWijが負の場合、xiとxjとが異なる値となるような相互作用が働く。なおWij=Wjiであり、Wii=0である。
最小値求解問題は、式(1)で与えられるエネルギーの最小値を求める問題である。イジングマシン300は、このような最小値給回問題についてMCMCを用いて解く。例えばイジングマシン300は、ビットを1つ反転した場合のエネルギー変化を計算する。i番目のビットを反転させた場合「xi→xi´(δxi=xi´−xi)」、エネルギーの変化値は式(2)で表される。
式(2)の右辺の括弧内の式は、i番目のビットの局所場(総入力)を表している。出力変化分δxiと局所場の符号が一致すればエネルギーは減少する。イジングマシン300は、エネルギーの変化値ΔEiの増減に応じて、i番目のビットの反転を受け入れるか否かを決定する。なお、式(2)は、1ビットのみを反転させる場合にのみ正しい式である。
エネルギー増分を示す式(2)は、以下のように書き換えることができる。
hiはi番目のビットの局所場である。j番目のビットxjが反転したときのi番目のビットの局所場hiの変化分δhi (j)は、以下の式(5)で表される。
局所場hiを保存するレジスタを用意し、j番目のビットが反転したときに、式(5)に示す値を、保存しておいた局所場hiに加算することで、常に正しいhiが得られる。
以上のような計算により、i番目のビットの反転させた場合のエネルギーの増分を求めることができる。イジングマシン300は、得られたエネルギーの増分に基づいて、i番目のビットの反転を受け入れるか否かを判断する。例えばイジングマシン300は、メトロポリス法に従って、ビットの反転を受け入れるか否かを判断する。メトロポリス法に従う場合、エネルギーの増分が負(エネルギーが減少する)であれば、ビットの反転が受け入れられる。エネルギーの増分が正(エネルギーが増加する)であれば、エネルギーの増分に応じた確率によって、ビットの反転が受け入れられるか否かが判断される。
以上のような計算により、i番目のビットの反転させた場合のエネルギーの増分を求めることができる。イジングマシン300は、得られたエネルギーの増分に基づいて、i番目のビットの反転を受け入れるか否かを判断する。例えばイジングマシン300は、メトロポリス法に従って、ビットの反転を受け入れるか否かを判断する。メトロポリス法に従う場合、エネルギーの増分が負(エネルギーが減少する)であれば、ビットの反転が受け入れられる。エネルギーの増分が正(エネルギーが増加する)であれば、エネルギーの増分に応じた確率によって、ビットの反転が受け入れられるか否かが判断される。
エネルギーの増分が正の場合にビットの反転が受け入れられる確率は、温度パラメータを用いて調整することができる。例えばイジングマシン300は、温度パラメータの値が大きいほど、エネルギーの増分が正の場合にビットの反転を受け入れる確率を高くする。これにより、温度パラメータの値を大きくすることで、イジングモデルのエネルギーの状態が局所解から抜け出す可能性を高くすることができる。
温度パラメータをTとしたとき、逆温度β=1/Tをとする。例えばイジングマシン300は、エネルギーの変化値ΔEijと逆温度βを用いて、i番目の状態変数の状態遷移の受け入れ確率を以下の式(6)により決定することで、確率的探索を行う。
式(6)における関数f(x)は、メトロポリス法では以下の式(7)となる。
なお温度パラメータの値が大きいと、局所的な探索が難しくなる。そこでイジングマシン300は、例えば温度パラメータの値が異なる複数のレプリカを用いて解探索を行う。この場合、イジングマシン300はレプリカ交換を行ってもよい。
図6は、レプリカ交換の一例を示す図である。レプリカ交換では、複数のレプリカが用いられる。レプリカは、求解対象の問題の状態変数の集合のコピーである。イジングマシン300は、それぞれのレプリカの温度パラメータに異なる値を設定する。図6の例では、4つのレプリカそれぞれに、T1,T2,T3,T4の温度パラメータが設定されている(T1<T2<T3<T4)。
イジングマシン300は、複数のレプリカそれぞれについて、MCMCにより状態変化させる。そしてイジングマシン300は、温度パラメータの値で並べたときに隣り合うレプリカ間で、所定の確率に従って温度パラメータの値を交換する。すると、各レプリカは温度軸方向にランダムウォークする。レプリカがランダムウォークをすることで、局所解に嵌まっても高温側に移動したときに局所解から脱出できる可能性がある。またレプリカが低温側に移動すると、局所的な探索を行うこともできる。
レプリカ交換のように多くのレプリカを用いて集団探索を行うことで、モンテカルロ法による解探索を高速化することができる。しかし単に複数のレプリカを用いて集団探索をしただけでは、複数のレプリカが同じ局所解に留まってしまい、十分に広く状態空間を探索できないという問題を解決できない。例えばイジングモデルの状態変数(ビット)の数がNのとき、状態空間には2N個の状態が存在する。そのため状態変数の数が多くなると、実用上可能な数のレプリカで探査しても、集団探索の利益を享受するのは困難である。
そこでイジングマシン300では、レプリカ間の距離に応じた相互作用を利用して、レプリカの状態を遷移させることで、状態空間内の効率的な探索を行う。これにより、複数のレプリカを用いた集団探索による解探索性能が向上する。
例えばレプリカ交換を行えば状態空間内を広範囲に探索できるが、レプリカ間の相互作用を考慮しない場合、各レプリカは、そのときの温度パラメータの値に応じて、独立にビットフリップ(マルコフ連鎖)を行うだけである。レプリカ間の相互作用を利用すれば、個々のレプリカのマルコフ連鎖において、複数のレプリカが同じ局所解に同時に留まることを抑止可能である。
また1−bitフリップの場合、遷移先の候補の選び方としてN個のビットを等確率で選択すると、遷移確率はエネルギーの変化値ΔEiのみで決定される。この場合、どのレプリカもエネルギー勾配のみに従って状態変化するため、同じ道筋を辿ってしまい、十分に広く状態空間を探索できていない可能性が大きい。さらに、どのレプリカも同じ局所解(すべてのビットiでΔEi>0)にはまってしまったときに脱出するのも困難である。
イジングマシン300では、遷移を受け入れるか否かの受容確率の計算にメトロポリス法ではなく、メトロポリス・ヘイスティングス法を用いる。これにより、レプリカ間の相互作用による影響を適切な形で計算に組み込むことができる。
例えば現在の状態xから次の状態X′を提案する確率をg(X→X′)とし、この状態遷移が受け入れられる確率をA(X→X′)とする。状態Xから状態X′に遷移する確率W(X→X′)は、以下の式(8)で得られる。
目的の確率分布(例えばギブス分布)を表す関数(目的関数)をπ(X)とすると詳細つり合いの条件は以下の通りとなる。
式(10)から、詳細つり合いを満たす受け入れ確率は、式(11)の通りとなる。
メトロポリス・ヘイスティングス法を適用した場合、受け入れ確率は以下の式(12)で与えられる。
この受け入れ確率は、提案確率が非対称でg(X→X′)≠g(X′→X)の場合でも詳細つり合いの条件は満たされる。また提案確率が対称でg(X→X′)=g(X′→X)の場合は式(13)のようなメトロポリスの受け入れ確率が得られる。
ここで1−bitフリップを考えるとき、レプリカ間の相互作用を考慮しない場合、N個のビットが等確率で反転の候補として選択され、提案確率は式(14)となる。
なお、メトロポリス・ヘイスティングス法は提案確率で示される提案分布が非対称な場合に対応している。そのため、提案分布の決め方に自由度がある。そこでイジングマシン300は、提案確率にレプリカ間相互作用を導入する。
例えばイジングマシン300は、離散空間である状態空間に対して適切な距離を定義し、レプリカ間の距離を定める。イジングマシン300は、レプリカ間距離を用いてレプリカ相互作用を決め、メトロポリス・ヘイスティングス法における遷移候補先の分布(提案分布)を定義し、受け入れ確率の計算に組み込む。
レプリカ間距離の一例として、2つのレプリカの状態のハミング距離(或いはその単調増加関数)がある。イジングマシン300は、すべてのレプリカ間のハミング距離を定義し、それによりレプリカ相互作用を導入する。
式(14)に示すような提案分布は1/Nの等確率で遷移候補が選択されていたため、規格化定数はN(それぞれの遷移先の重みが共通で1ということ)である。レプリカ間の相互作用を導入した場合は遷移候補の重みが異なり、規格化定数が遷移前の現在状態に依存する。イジングマシン300は、規格化定数も計算しなければならないが、相互作用がハミング距離の一次式の場合は、差分計算(累積計算)によって容易に計算できる。
以下、レプリカ間距離を考慮した提案確率の計算方法について具体的に説明する。まず提案確率の一般系を以下のように定義する。
M個(Mは1以上の整数)のレプリカからなる系を考える。1番目のレプリカの状態変数をxl=(x1 l,x2 l,・・・,xN l),xj l∈{0,1}とする。2つのレプリカxlとxkの距離(の増加関数)をd(xl,xk)とし、相互作用のエネルギーをG(x)と与える。相互作用のエネルギーは、例えば式(15)または式(16)のようにいくつか定義することができる。
M個(Mは1以上の整数)のレプリカからなる系を考える。1番目のレプリカの状態変数をxl=(x1 l,x2 l,・・・,xN l),xj l∈{0,1}とする。2つのレプリカxlとxkの距離(の増加関数)をd(xl,xk)とし、相互作用のエネルギーをG(x)と与える。相互作用のエネルギーは、例えば式(15)または式(16)のようにいくつか定義することができる。
ここでγは実数の定数である。γが正の値であれば引力的な相互作用、γが負の値であれば斥力的な相互作用とみなせる。このG(x)を用いて提案確率をg(xl→xl[j0])と与える。xl[j0]はxlのj0番目のビットをフリップした状態を表す。提案確率は、具体的には式(17)または式(18)のように定義することができる。
ここでZ(xl)は規格化定数であり、計算方法は後述する。
レプリカ間距離としてハミング距離の1次関数を用いた場合、レプリカ間距離は式(19)で定義できる。
レプリカ間距離としてハミング距離の1次関数を用いた場合、レプリカ間距離は式(19)で定義できる。
この場合、ΔG=G(xl[j0])−G(xl)とg(xl→xl[j0])は以下のように計算できる。
このようにして、レプリカ間の相互作用を反映させた提案確率を計算することができる。次に、受け入れ確率の定義について説明する。
一般系の受け入れ確率a(xl→xl[j0])は、メトロポリス基準を採用することにすると、以下のように定義できる。
一般系の受け入れ確率a(xl→xl[j0])は、メトロポリス基準を採用することにすると、以下のように定義できる。
すると遷移確率はW(xl→xl[j0])=g(xl→xl[j0])×a(xi→xi[j0])となる。従って、これらの計算に用いられる量はΔE、ΔG、規格化定数Zの3つである。
ここで、レプリカ間距離としてハミング距離の一次関数を用いた場合を例にとり、規格化定数Zの計算方法について説明する。規格化定数Z(xl)は、提案候補がレプリカlにおいて1つのビットをフリップしただけの状態なので、その総和として以下の式(23)で計算される。
式(23)のまま規格化定数を計算しようとするとすべてのスピンの数だけ指数関数の和を計算することとなり、計算量が膨大となる。そこでイジングマシン300は、1−bitフリップであることに基づいて、差分計算(累積計算)を行うことで、計算量を抑止する。レプリカlのj番目のビットだけをフリップした場合の規格化定数の差分は以下の式(24)のようになる。
イジングマシン300は、式(24)の右辺を計算することで求めた規格化定数の差分を、ビットフリップ前の規格化定数に加算することで、ビットフリップ後の規格化定数を求めることができる。なおイジングマシン300は、ビットフリップが受け入れられた場合、そのときの規格化定数をレジスタまたはメモリに保存し、次回のビットフリップにおける規格化定数の算出に利用する。
次に、レプリカ間距離としてハミング距離の一次関数を用いた場合を例にとり、ΔGの計算方法について説明する。ΔGの計算は、一般にはレプリカ間の距離(あるいは距離の増加関数)の差分計算になる。単純な差分計算では、遷移前後でのレプリカ間のハミング距離を記憶しておかなければならない。しかし、具体的に距離(あるいは距離の増加関数)の形が分かれば、差分計算を行うことで、式(25)、式(26)に示すように、現在の状態だけに依存した量に書き換えることができる。
式(26)において、xj0(l)(xはチルダ付き)は、xj0(l)(xはチルダ付き)=(xj l,xj l,・・・,xj l)というビット列である。またxj0(xはチルダ付き)は、xj0(xはチルダ付き)=(xj l,xj 2,・・・,xj M)というビット列のベクトルである。
式(26)を用いれば、レプリカ間距離をハミング距離の一次関数とした場合には、新たに導入したビット列のベクトル間のハミング距離だけで、ΔGを記述することができる。従って、そのハミング距離だけを更新すればよい。
なお、これまでの説明では、1−bitフリップの場合を想定しているが、1回の状態遷移で複数のビットをフリップする場合もある。例えばOne−Hot制約がある問題を求解する場合である。
One−Hot制約は「ある変数の組の中で、値が1の変数は1個だけ」という制約である。この制約は、二次割り当て問題(QAP:Quadratic Assignment Problem)、運搬経路問題(VRP:Vehicle Routing Problem)などの様々な問題に適用される。
図7は、One−Hot制約下での1−bitフリップの例を示す図である。図7の例では、イジングモデルの状態変数を示すビットが、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つのみという制約である。図7に示した例は1W1Hであり、1回の状態遷移で2つのビットをフリップさせることで、制約を満たしたままの状態遷移が可能となる。
2W1Hでは、2つの手段でビットがグルーピングされる。この場合、各ビットは、生成手段が異なる2つのグループに属する。そして2W1Hでも、各グループ内で値が「1」のビットは1つのみという制約がある。
図8は、2W1Hの制約を説明する図である。図8には、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フリップ>
・状態遷移 :xi→xi+Δxi
・エネルギーの変化値:ΔEi=−hi・Δxi
・局所場更新量 :Δhm=Wm,i・Δxi
<1W1H(2−bitフリップ)>
・状態遷移:xi:1→0,xj:0→1
・エネルギーの変化値:ΔEj=hi−hj
・局所場更新量:Δhm=−Wm,i+Wm,j
<2W1H(4−bitフリップ)>
・状態遷移:xi:1→0,xj:0→1,xk:0→1,xl:1→0
・エネルギーの変化値:ΔEj=(hi+hl)−(hj+hk)−(Wil+Wjk)
・局所場更新量:Δhm=Wmj+Wmk−(Wmi+Wml)
いずれの制約を適用するのかは、例えば、ユーザが問題の求解を指示する際に、ユーザによって指定される。イジングマシン300は、指定された制約に応じたΔEを計算し、レプリカ間の距離に応じた遷移確率で1または複数のビットを反転させる。
・状態遷移 :xi→xi+Δxi
・エネルギーの変化値:ΔEi=−hi・Δxi
・局所場更新量 :Δhm=Wm,i・Δxi
<1W1H(2−bitフリップ)>
・状態遷移:xi:1→0,xj:0→1
・エネルギーの変化値:ΔEj=hi−hj
・局所場更新量:Δhm=−Wm,i+Wm,j
<2W1H(4−bitフリップ)>
・状態遷移:xi:1→0,xj:0→1,xk:0→1,xl:1→0
・エネルギーの変化値:ΔEj=(hi+hl)−(hj+hk)−(Wil+Wjk)
・局所場更新量:Δhm=Wmj+Wmk−(Wmi+Wml)
いずれの制約を適用するのかは、例えば、ユーザが問題の求解を指示する際に、ユーザによって指定される。イジングマシン300は、指定された制約に応じたΔEを計算し、レプリカ間の距離に応じた遷移確率で1または複数のビットを反転させる。
次に、レプリカ間距離を考慮したイジングマシン300による解探索機能について説明する。
図9は、イジングマシンの解探索機能の一例を示す図である。イジングマシン300は、データ受け取り部340、解探索エンジン350、および解出力部360を有している。データ受け取り部340と解出力部360とは、図4に示した制御回路320によって実現される機能である。解探索エンジン350は、図4に示した制御回路320が、ニューロン回路311,312,・・・,31nとメモリ330とを制御することで実現する機能である。
図9は、イジングマシンの解探索機能の一例を示す図である。イジングマシン300は、データ受け取り部340、解探索エンジン350、および解出力部360を有している。データ受け取り部340と解出力部360とは、図4に示した制御回路320によって実現される機能である。解探索エンジン350は、図4に示した制御回路320が、ニューロン回路311,312,・・・,31nとメモリ330とを制御することで実現する機能である。
データ受け取り部340は、制御装置200から探索対象の問題の求解に用いる情報を受け取る。例えばデータ受け取り部340は、温度、レプリカ数、レプリカ相互作用の大きさ、iteration数(状態遷移の繰り返し回数)、初期状態などのパラメータを取得する。またデータ受け取り部340は、求解対象の問題を表すイジングモデルの重み係数を要素とする重み行列(2次式の係数)、バイアス行列(1次式の係数)、定数項、1−Hot制約のグループ情報などのデータを取得する。データ受け取り部340は、受け取った情報を解探索エンジン350に送信する。
解探索エンジン350は、複数のレプリカを用いて、エネルギーが最小となる解を探索する。そのために解探索エンジン350は、レプリカ保存部351と複数のレプリカ解探索部352a,352b,・・・,352nとを有する。レプリカ保存部351は、例えば図4に示したメモリ330を利用して実現される。複数のレプリカ解探索部352a,352b,・・・,352nそれぞれは、イジングモデルに含まれるビットごとのニューロン回路を利用して実現される。
レプリカ保存部351は、レプリカの状態を記憶する。例えばレプリカが順番に更新されていくが、レプリカ間相互作用の計算には、更新前のレプリカの状態が使用される。そこでレプリカ保存部351が、更新前のレプリカの状態を記憶する。レプリカの状態は、状態変数に対応するビットの値、および温度パラメータなどのパラメータの値で表される。
各レプリカ解探索部352a,352b,・・・,352nは、それぞれがレプリカによる解探索を行う。例えば各レプリカ解探索部352a,352b,・・・,352nは、レプリカ保存部351を介して互いのレプリカの状態を示す情報をとやり取りしながらレプリカ間相互作用を計算し、解の探索を行う。
図10は、解探索エンジンにおける処理の一例を示す図である。例えばレプリカ解探索部352aは、重み係数(Wij)を記憶している。レプリカ解探索部352aは、重み係数(Wij)と現在の各ビットの値(x1 1,x2 1,・・・,xN 1)とを用いて、式(4)に基づいて局所場(h1,h1,・・・,hN)を計算する。次にレプリカ解探索部352aは、式(26)に基づいて、各ビットがフリップした場合のレプリカ間の相互作用のエネルギーの差分(ΔG1,ΔG2,・・・,ΔGN)を計算する。この際、レプリカ解探索部352aは、レプリカ保存部351から他のレプリカの状態を示す情報(各ビットの値)を取得し、他のレプリカとの距離を計算し、その計算結果を用いてレプリカ間の相互作用のエネルギーの差分を計算する。
さらにレプリカ解探索部352aは、局所場(h1,h2,・・・,hN)の値を用いて、エネルギーの変化値(E1,E2,・・・,EN)を計算する。なおエネルギーの変化値の計算式は、1−bitフリップなのか1W1Hなのか2W1Hなのかによって異なる。例えば1−bitフリップであれば、エネルギーの変化値は「ΔEi=−hi・Δxi」である。1W1H(2−bitフリップ)であれば、エネルギーの変化値は「ΔEj=hi−hj」である。2W1H(4−bitフリップ)であれば、エネルギーの変化値はΔEj=(hi+hl)−(hj+hk)−(Wil+Wjk)である。
レプリカ解探索部352aは、エネルギーの変化値ΔEから正のオフセット値Eoffを減算する。オフセット値Eoffには、フリップするビットが選択できなかった場合に、所定の値が加算される。オフセット値Eoffの増加は、フリップするビットが選択されるまで繰り返される。このように、オフセット値Eoffが増加することで、レプリカのエネルギーが極小値に留まる時間が短縮される。なお、オフセット値Eoffの初期値は、例えば「0」とする。
レプリカ解探索部352aは、各ビットをフリップさせた場合のエネルギーの変化値ΔE(オフセット値Eoffが「0」以外の場合にはオフセット値Eoffを減算後の値)に基づいて、フリップするビット(更新ビット)を選択する。更新ビットの選択方法には、様々な方法がある(図14〜図17参照)。更新ビットの選択方法によっては、更新ビットの選択において、いずれのビットの更新の受け入れも棄却され、更新ビットが選択できないことがあり得る。レプリカ解探索部352aは、例えば更新ビットが選択できなかった場合、オフセット値Eoffの値を増加させ、再度、更新ビットの選択を行う。
レプリカ解探索部352aは、更新ビットが選択できた場合、更新ビットの値をフリップし、更新後のレプリカの状態「x1 1,x2 1,・・・,xN 1」を生成する。
レプリカ解探索部352a以外のレプリカ解探索部352b,・・・,252nも、レプリカ解探索部352aと同様に、更新後のレプリカの状態を生成する。
レプリカ解探索部352a以外のレプリカ解探索部352b,・・・,252nも、レプリカ解探索部352aと同様に、更新後のレプリカの状態を生成する。
各レプリカ解探索部352a,352b,・・・,352nが生成したレプリカの状態「x1 1,x2 1,・・・,xN 1」、「x1 2,x2 2,・・・,xN 2」、・・・、「x1 N,x2 N,・・・,xN N」は、レプリカ保存部351で保持される。各レプリカ解探索部352a,352b,・・・,352nは、レプリカ保存部351を参照することで、次回の状態更新時に、レプリカ間の相互作用のエネルギーの差分を算出することができる。
以下、解探索エンジン350による解探索の手順について詳細に説明する。
図11は、解探索処理の手順の一例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
図11は、解探索処理の手順の一例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS101]解探索エンジン350は、複数のレプリカの初期状態(各ビットの値、温度パラメータの値など)を、そのレプリカの割り当て先のレプリカ解探索部352a,352b,・・・,352nに設定する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカの初期状態に基づいて、初期エネルギー、初期のレプリカ間距離、初期規格化定数などを計算する。
[ステップS102]解探索エンジン350は、レプリカ解探索部352a,352b,・・・,352nにレプリカごとの解探索を実行させる。レプリカごとの解探索処理の詳細は後述する(図12参照)。
[ステップS103]解探索エンジン350は、解探索の終了条件を満たしたか否かを判断する。例えば解探索エンジン350は、ステップS102の処理の繰り返し回数が所定回数に達した場合に、終了条件を満たすと判断する。解探索エンジン350は、終了条件を満たした場合、処理をステップS108に進める。また解探索エンジン350は、終了条件が満たされていない場合、処理をステップS104に進める。
[ステップS104]解探索エンジン350は、複数のレプリカを温度パラメータの値で並べたときに隣接するレプリカの組を選択する。
[ステップS105]解探索エンジン350は、選択したレプリカの組の温度交換の実施の有無を決定する。例えば解探索エンジン350は、レプリカ間のエネルギーの差と各レプリカの温度パラメータの値とに基づいて、メトロポリスヘイスティング基準により交換確率を求める。そして解探索エンジン350は、交換確率が1であれば温度交換を実施すると判断する。また解探索エンジン350は、交換確率が1未満であれば、例えば0から1までの間の乱数を生成し、乱数の値が交換確率以下であれば、温度交換を実施すると判断する。
[ステップS105]解探索エンジン350は、選択したレプリカの組の温度交換の実施の有無を決定する。例えば解探索エンジン350は、レプリカ間のエネルギーの差と各レプリカの温度パラメータの値とに基づいて、メトロポリスヘイスティング基準により交換確率を求める。そして解探索エンジン350は、交換確率が1であれば温度交換を実施すると判断する。また解探索エンジン350は、交換確率が1未満であれば、例えば0から1までの間の乱数を生成し、乱数の値が交換確率以下であれば、温度交換を実施すると判断する。
[ステップS106]解探索エンジン350は、温度交換を実施すると決定した場合、選択したレプリカの組それぞれの温度パラメータの値を交換する。
[ステップS107]解探索エンジン350は、隣接するレプリカのすべての組を選択したか否かを判断する。解探索エンジン350は、未選択の組がある場合、処理をステップS104に進める。また解探索エンジン350は、すべての組が選択済みの場合、処理をステップS102に進める。
[ステップS107]解探索エンジン350は、隣接するレプリカのすべての組を選択したか否かを判断する。解探索エンジン350は、未選択の組がある場合、処理をステップS104に進める。また解探索エンジン350は、すべての組が選択済みの場合、処理をステップS102に進める。
[ステップS108]解探索エンジン350は、エネルギーが最小となるレプリカの状態を、解として出力する。
このようにして、レプリカ交換を行いながら、複数のレプリカを用いた効率的な解探索が行われる。
このようにして、レプリカ交換を行いながら、複数のレプリカを用いた効率的な解探索が行われる。
次にレプリカごとの解探索処理について詳細に説明する。
図12は、レプリカごとの解探索処理の手順の一例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
図12は、レプリカごとの解探索処理の手順の一例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS121]解探索エンジン350内のレプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカについて、レプリカ間の相互作用のエネルギーの差分(ΔG1,ΔG2,・・・,ΔGN)を計算する。レプリカ間の相互作用のエネルギーの差分の計算処理の詳細は後述する(図13参照)。
[ステップS122]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカについて、エネルギーの変化値(ΔE1,ΔE2,・・・,ΔEN)を計算する。
[ステップS123]レプリカ解探索部352a,352b,・・・,352nそれぞれは、反復回数をインクリメントする。
[ステップS124]レプリカ解探索部352a,352b,・・・,352nそれぞれは、所定回数だけ反復したか否かを判断する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、所定回数だけ反復した場合、レプリカごとの解探索処理を終了する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、反復回数が所定回数に達していなければ、処理をステップS125に進める。
[ステップS124]レプリカ解探索部352a,352b,・・・,352nそれぞれは、所定回数だけ反復したか否かを判断する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、所定回数だけ反復した場合、レプリカごとの解探索処理を終了する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、反復回数が所定回数に達していなければ、処理をステップS125に進める。
[ステップS125]レプリカ解探索部352a,352b,・・・,352nそれぞれは、更新ビット選択処理を行う。更新ビット選択処理の詳細は後述する(図14〜図17参照)。
[ステップS126]レプリカ解探索部352a,352b,・・・,352nそれぞれは、更新ビットが選択されたか否かを判断する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、更新ビットが選択されていない場合、処理をステップS125に進める。またレプリカ解探索部352a,352b,・・・,352nそれぞれは、更新ビットが選択された場合、処理をステップS127に進める。
[ステップS127]レプリカ解探索部352a,352b,・・・,352nそれぞれは、レプリカに関する情報を更新する。例えばレプリカ解探索部352a,352b,・・・,352nそれぞれは、選択されたビットの状態をフリップさせ、各ビットの局所場h、レプリカのエネルギーE、他のレプリカとのレプリカ間距離d、規格化定数Zを更新する。その後、レプリカ解探索部352a,352b,・・・,352nそれぞれは処理をステップS121に進める。
次に、レプリカ間の相互作用のエネルギーの差分(ΔG1,ΔG2,・・・,ΔGN)の計算処理について詳細に説明する。
図13は、レプリカ間の相互作用のエネルギーの差分の計算手順の一例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
図13は、レプリカ間の相互作用のエネルギーの差分の計算手順の一例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS141]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカと、そのレプリカ以外のレプリカそれぞれとのハミング距離を計算する。
[ステップS142]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカのビットごとに、該当ビットをフリップした場合における遷移前後でのレプリカ間の相互作用のエネルギーの差分(ΔG1,ΔG2,・・・,ΔGN)を計算する。例えば1番目のビットをフリップした場合のレプリカ間の相互作用のエネルギーの差分がΔG1である。
[ステップS143]レプリカ解探索部352a,352b,・・・,352nそれぞれは、割り当てられたレプリカの規格化定数Zを計算する。例えばレプリカ解探索部352a,352b,・・・,352nそれぞれは、レプリカ間距離がハミング距離の一次式の場合は、状態遷移前後での規格化定数の差分を計算してもよい。差分を計算した場合、レプリカ解探索部352a,352b,・・・,352nそれぞれは、状態遷移ごとの規格化定数の差分を積算することで、最新の規格化定数を得ることができる。
次に、更新ビットの選択方法について説明する。更新ビットの選択方法としては、例えば以下の3つの方法が考えられる。
第1の更新ビット選択方法は、Original Boltzmannの方法である。第2の更新ビット選択方法は、エネルギーの並列計算を行い、エネルギーが下がる方向を先に参照することで効率的にビット更新を行う方法である。第3の更新ビット選択方法は、1イテレーションで常にビットフリップが起きるようにしたRejection-freeの方法である。
第1の更新ビット選択方法は、Original Boltzmannの方法である。第2の更新ビット選択方法は、エネルギーの並列計算を行い、エネルギーが下がる方向を先に参照することで効率的にビット更新を行う方法である。第3の更新ビット選択方法は、1イテレーションで常にビットフリップが起きるようにしたRejection-freeの方法である。
図14は、第1の更新ビット選択方法による更新ビット選択処理の手順の一例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS201]レプリカ解探索部352a,352b,・・・,352nそれぞれは、レプリカ間距離を考慮に入れた提案確率g(xl→xl[j])に従ってビットjを選択する。
[ステップS201]レプリカ解探索部352a,352b,・・・,352nそれぞれは、レプリカ間距離を考慮に入れた提案確率g(xl→xl[j])に従ってビットjを選択する。
[ステップS202]レプリカ解探索部352a,352b,・・・,352nそれぞれは、メトロポリス基準の受け入れ確率a(xl→xl[j])に従って、選ばれたビットをフリップするか否かを判定する。
第1の更新ビット選択方法は単純な方法であり、計算が容易であるが、選択したビットのフリップの提案が棄却されることもある。提案が棄却された場合、レプリカ解探索部352a,352b,・・・,352nそれぞれは、図12のステップS126で「NO」と判断し、更新ビット選択処理を繰り返す。
第1の更新ビット選択方法は、提案分布に偏りがある影響を受けて受け入れ確率が小さくなってしまい、棄却ばかりが起こってしまう可能性がある。そこで更新ビットの提案が棄却された場合、レプリカ解探索部352a,352b,・・・,352nそれぞれは、オフセット値Eoffの値を増加させることで、次回の更新ビットにおいて更新ビットが選択される確率を高めることができる。例えばレプリカ解探索部352a,352b,・・・,352nそれぞれは、エネルギーが下がる方向が無くなる(エネルギー差がどのビット更新に対しても正になる)ときにはオフセット値Eoffに所定の値を加算する。
またレプリカ解探索部352a,352b,・・・,352nそれぞれは、エネルギーの並列計算を行い、エネルギーが下がる方向を先に参照することで効率的にビット更新を行う第2の更新ビット選択方法を適用することもできる。
図15は、第2の更新ビット選択方法の処理手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS211]レプリカ解探索部352a,352b,・・・,352nそれぞれは、すべてのビットに対して、メトロポリス基準の受け入れ確率a(xl→xl[j])に従って、該当ビットが選択された場合にフリップするか否かを判定する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、各ビットに対応付けて、判定結果を示すフラグを設定する。
[ステップS211]レプリカ解探索部352a,352b,・・・,352nそれぞれは、すべてのビットに対して、メトロポリス基準の受け入れ確率a(xl→xl[j])に従って、該当ビットが選択された場合にフリップするか否かを判定する。レプリカ解探索部352a,352b,・・・,352nそれぞれは、各ビットに対応付けて、判定結果を示すフラグを設定する。
[ステップS212]レプリカ解探索部352a,352b,・・・,352nそれぞれは、各ビットのフラグを参照し、ツリー状に接続されたセレクタを用いて、レプリカ間距離を考慮に入れた傾斜を与えて、更新ビットを選択する。
図16は、更新ビット選択のためのツリー状に接続されたセレクタの一例を示す図である。制御回路320は、レプリカごとに、複数のビットそれぞれの状態遷移のエネルギーの変化値{ΔEi}に応じて、上記の式(6)、式(7)の受け入れ確率でその状態遷移を許容するか否かを判断する。そして、制御回路320は、状態遷移を受け入れると判断したビットのうちの1つを、ツリー状に接続されたセレクタによって選択する。制御回路320は、選択したビットの番号と、遷移可否Fとを出力する。
このように、制御回路320は、複数のビットそれぞれに対して並列探索を行うことで、更新ビットが選択できる確率を高めることができる。
並列探索を行うため、制御回路320は、次の回路構成を有する。一例として、ビットの数を32個として説明する。図16の例ではいずれか1つのビットのみが更新ビットとして選択されるものとする。
並列探索を行うため、制御回路320は、次の回路構成を有する。一例として、ビットの数を32個として説明する。図16の例ではいずれか1つのビットのみが更新ビットとして選択されるものとする。
制御回路320は、比較回路部51〜54とセレクタ部60とを有する。
比較回路部51〜54は、複数の状態変数のそれぞれが遷移した場合のエネルギーの変化値{ΔEi}を、ニューロン回路311,312,・・・,31nから受け付ける。比較回路部51〜54は、{ΔEi}に基づいて各状態遷移を受け入れるか否かを判定し、遷移可否{fi}を出力する。比較回路部51〜54それぞれは、8(=32/4)個の比較器を有する。比較回路部51〜54に含まれる全ての比較器の合計数は32個となる。
比較回路部51〜54は、複数の状態変数のそれぞれが遷移した場合のエネルギーの変化値{ΔEi}を、ニューロン回路311,312,・・・,31nから受け付ける。比較回路部51〜54は、{ΔEi}に基づいて各状態遷移を受け入れるか否かを判定し、遷移可否{fi}を出力する。比較回路部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(図16の例ではiは0以上31以下の整数)は、ΔEiを受け付け、ΔEiに基づく判定に応じて受け入れ可否fiを出力する。比較器Ciによる判定では、エネルギーの変化値ΔEiと温度パラメータTの値を用いて算出した受け入れ確率と、乱数値u(0≦u≦1)とが比較される。例えば比較器Ciは、乱数値uが受け入れ確率以下であれば、i番目のビットのフリップを受け入れると判定する。
比較回路部51〜54では、予め「T×log(u)」で表される値を計算することもできる。この値は、エネルギーが上がる状態遷移を確率的に引き起こす値であり、熱励起エネルギーまたは熱雑音と呼ぶこともできる。比較器Ciは、ΔEiと熱励起エネルギーとを比較し、例えば熱励起エネルギーの方が大きければ、i番目のビットのフリップを受け入れると判定する。
セレクタ部60には、比較器Ciの出力値が状態遷移の候補として入力される。そしてセレクタ部60は、複数の状態遷移の候補の何れか1つを選択し、出力する。セレクタ部60は、当該選択を行うためのn段(nは2以上の整数)のセレクタツリーを有する。図16の例では、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の遷移番号を特定するための識別値Ni,Njと遷移可否情報fi,fjと提案確率g(xl→xl[i]),g(xl→xl[j])である。セレクタ61の出力は遷移可否情報fi,fjの論理和として得られる可否情報foと、iとjのうち選択された方の遷移番号を特定するための識別値Noと、選択された方のビットの提案確率g(xl→xl[o])である。
セレクタ61は、遷移可否情報fi,fjのいずれか一方が1(受け入れ可)、他方が0(受け入れ不可)の場合は受け入れ可の方のビットを必ず選択する。セレクタ61は、遷移可否情報fi,fjの両方0の場合はどのように選んでもよい。
セレクタ61は、遷移可否情報fi,fjの両方が1の場合には、候補選択用乱数を用いて、提案確率に応じた確率で一方を選択する。例えばセレクタ61は、提案確率g(xl→xl[i]),g(xl→xl[j])の比率に応じて、0から1の値域を、iとjのビットに対応する2つの区間に分ける。そしてセレクタ61は、候補選択用乱数を含む区間に対応するビットを選択する。そしてセレクタ61は、選択結果により選ばれたビットの識別値Noを生成し出力する。
図16の例ではセレクタ61以外のセレクタが略記されている。図16では黒い丸印で表された箇所が、1つのセレクタに相当する。部分セレクタ部60a,60b,60cのそれぞれは、8個のセレクタを有する。部分セレクタ部60dは、4個のセレクタを有する。部分セレクタ部60eは、2個のセレクタを有する。部分セレクタ部60fは、1個のセレクタを有する。部分セレクタ部60a〜60f内の各セレクタがセレクタ61と同様の選択処理を行うことで、レプリカ間距離に応じた提案確率が高いビットほど選択される可能性を高くして、1つのビットが状態遷移の候補として出力される。
図16で示されるように、制御回路320は、状態遷移の並列探索を行い、セレクタの2進木構造を用いてノックダウン方式(あるいはトーナメント方式とも呼ばれる)で、状態遷移の候補を1つに絞り込む。フリップによりエネルギーが減少するビットは、比較器により受け入れ可と判断されるため、フリップによりエネルギーが減少するビットが少なくとも1つ存在すれば、セレクタ部60による1回の選択で更新ビットを選択できる。また局所解に達しており、いずれのビットをフリップしてもエネルギーが増加する場合であっても、乱数値uと温度パラメータTの値に基づいて、いずれか1つのビットのフリップが受け入れられる可能性がある。いずれか1つのビットのフリップが受け入れられれば、セレクタ部60による1回の選択で更新ビットを選択できる。しかも、セレクタによる選択時に、レプリカ間距離を反映させた提案確率を用いたことで、提案確率が高いビットほど更新ビットとして選択される可能性が高くなる。
なおレプリカ解探索部352a,352b,・・・,352nそれぞれは、セレクタ部60が出力した遷移可否情報が0(受け入れ不可)の場合、オフセット値を増加させて、更新ビット選択処理を繰り返す。これにより、更新ビットを早期に選択できる可能性が高くなる。
図17は、第3の更新ビット選択方法の処理手順の一例を示すフローチャートである。第3の更新ビット選択方法は、以下の1ステップで更新ビットを選択できる。
[ステップS231]レプリカ解探索部352a,352b,・・・,352nそれぞれは、各ビットの遷移確率W(xl→xl[j0])=g(xl→xl[j0])×a(xl→xl[j0]を用いて、以下の式(27)に示すRejection-freeの遷移確率W(xl→xl[j0])(Wはチルダ付き)を計算する。
[ステップS231]レプリカ解探索部352a,352b,・・・,352nそれぞれは、各ビットの遷移確率W(xl→xl[j0])=g(xl→xl[j0])×a(xl→xl[j0]を用いて、以下の式(27)に示すRejection-freeの遷移確率W(xl→xl[j0])(Wはチルダ付き)を計算する。
そしてレプリカ解探索部352a,352b,・・・,352nそれぞれは、Rejection−freeの遷移確率により、いずれか1つのビットを更新ビットとして選択する。このように各ビットの遷移確率を正規化し、受け入れ確率の合計が1となるようにすることで、1回の更新ビット選択処理で、常に更新ビットを選択することが可能となる。
以上説明したように、第2の実施の形態に係るイジングマシン300は、レプリカ間の相互作用を提案確率に反映させ、複数のレプリカを用いた解探索を行っている。これにより、組み合わせ最適化問題をメトロポリスヘイスティングの方法に基づいて求解する際に、収束先の分布を保ったまま、それぞれのレプリカがバラバラに状態空間を探索することが期待され、求解性能が向上する。すなわち、最適解へ到達する可能性が高くなり、エネルギーの下がり方を速くすることができる。
図18は、レプリカ間に斥力の相互作用を設定した場合のエネルギーランドスケープを示す図である。複数のレプリカ71〜73の間には、斥力の相互作用が設けられている。この場合、レプリカ71〜73が互いに反発し合うことで、広い探索空間を効率的に探索することができる。例えば図18の例では、複数のレプリカ71〜73それぞれが、異なる探索範囲を探索している。このような複数の探索範囲が複数のレプリカ71〜73で分担して探索されることで、広範囲を効率的に探索することができる。
図19は、レプリカ間に引力の相互作用を設定した場合のエネルギーランドスケープを示す図である。複数のレプリカ74,75の間には、引力の相互作用が設けられている。レプリカ74,75が互いに引きつけられることで局所解から脱出し易くなり、集団全体として大域解に到達できる可能性を高まる。
次に、効果確認を行った検証例について、図20と図21を参照して説明する。図20は、第1の検証例を示す図である。図21は、第2の検証例を示す図である。図20、図21に示す例は、二次割り当て問題(QAP)という代表的な組み合わせ最適化問題のいくつかのインスタンスについて検証した結果である。提案分布に従った各ビットの提案確率の計算には前述の式(17)を使用している。レプリカ間の相互作用のエネルギーとしては、前述の式(19)に示したハミング距離の一次関数を使用している。更新ビットの選択方法としては、第3の更新ビット選択方法(Rejection-free)が用いられいている。
図20、図21の例では、1−bitフリップ遷移かつレプリカ交換を使う解探索手法において、レプリカ間の相互作用の有無によるエネルギーの下がり方の違いを比較している。横軸が状態遷移の反復回数であり、縦軸がその時点で得られているエネルギーの最小値である。γ(図20、図21では“gamma”と表記)を斥力相互作用のパラメータとしたときに、gamma=0とgamma<0(つまり斥力相互作用の有無)との場合についてエネルギーの下がり方について比較している。
図20の例では、斥力相互作用を導入した場合(gamma−3)のほうが相互作用を導入しない場合(gamma−0)よりもエネルギーの下がり方が速い。図21の例においても、斥力相互作用を導入した場合(gamma−10)のほうが相互作用を導入しない場合(gamma−0)よりもエネルギーの下がり方が速い。
このように、レプリカ間の相互作用を導入したことで、解探索性能が向上している。しかもレプリカ間の相互作用を提案確率に反映しており、目的関数に手を加えないため、適切な目的関数(例えばギブス分布を示す関数)を用いた解探索が可能となる。
なお、非特許文献1に示されたCMCと呼ばれる方法は、実数を定義域とする目的関数にのみ適用可能な方法であり、2値の離散空間を定義域とする(バイナリ変数)イジングマシンの目的関数に直接は適応できない。またCMCでは、距離が近いレプリカの数(密度)をカウントしているが、1−bitフリップの場合にレプリカすべての状態をみたときに、その状況がフリップした前後で大きくは変わらない。そのため、あるビットのフリップ前後でのレプリカ数の密度の比はほぼ1に近くなってしまい、2値の離散空間を定義域とするとレプリカ相互作用の効果が薄くなってしまう。それに対して、第2の実施の形態に示した方法では、2値の離散空間を定義域とする組み合わせ最適化問題に適用でき、求解性能も向上する。
また、非特許文献2に示されたREと呼ばれる方法では、レプリカ間の相互作用を目的関数に直接加える方法をとっているため、本来の目的関数の最適化を行っている保証はない。それに対して、第2の実施の形態に示した方法では、レプリカ間の相互作用を提案確率に反映しており、適切な目的関数を用いた解探索が可能となる。
〔その他の実施の形態〕
第2の実施の形態では、レプリカ間の温度交換を行っているが、レプリカ間の温度交換を実施せずに、複数のレプリカで個別に解探索を行うことも可能である。その場合であっても、レプリカ間の相互作用を考慮した解探索により、解探索能力が向上する。
第2の実施の形態では、レプリカ間の温度交換を行っているが、レプリカ間の温度交換を実施せずに、複数のレプリカで個別に解探索を行うことも可能である。その場合であっても、レプリカ間の相互作用を考慮した解探索により、解探索能力が向上する。
また第2の実施の形態では、2値の離散空間を定義域とするイジングモデルを用いた求解を行っているが、実数を定義域とするモデルをレプリカとして求解する場合にも適用可能である。
さらに第2の実施の形態では、複数のニューロン回路311,312,・・・,31nを有するイジングマシン300で解探索を行っているが、同じ処理を図2に示したサーバ100と同様のハードウェア構成のノイマン型コンピュータで実現することも可能である。その場合、イジングマシン300は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態と同様の解探索処理を実行する。イジングマシン300に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、イジングマシン300に実行させるプログラムをストレージ装置に格納しておくことができる。イジングマシン300のプロセッサは、ストレージ装置内のプログラムの少なくとも一部をメモリにロードし、プログラムを実行する。またイジングマシン300に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばイジングマシン300のプロセッサからの制御により、ストレージ装置にインストールされた後、実行可能となる。またイジングマシン300のプロセッサが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 状態空間
2〜4 レプリカ
10 最適化装置
11 記憶部
12 処理部
2〜4 レプリカ
10 最適化装置
11 記憶部
12 処理部
右辺の1項目は、N個の状態変数の全組み合わせについて、漏れと重複なく、2つの状態変数の値(0または1)と重み係数との積を積算したものである。xiはi番目の状態変数、xjはj番目の状態変数を表し、Wijは、xiとxjとの結合の強さを示す重み係数である。右辺の2項目は、各状態変数のそれぞれについてのバイアス係数(bi)とx i との積の総和を求めたものである。Wijが正の場合、xiとxjとが同じ値となるような相互作用が働く。またWijが負の場合、xiとxjとが異なる値となるような相互作用が働く。なおWij=Wjiであり、Wii=0である。
Claims (13)
- 複数のレプリカそれぞれの複数の状態変数の値を記憶する記憶部と、
前記複数のレプリカそれぞれについて、該レプリカが有する前記複数の状態変数のうちの第1状態変数の値を更新した場合における、前記複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内での前記レプリカと他のレプリカとの距離の変化に応じた相互作用の強さの変化量を特定し、前記第1状態変数の値を更新した場合における前記相互作用の強さの前記変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、前記第1状態変数の値を更新するか否かを決定する処理部と、
を有する最適化装置。 - 前記処理部は、さらに、
前記第1状態変数の値を更新すると決定した場合、前記第1状態変数の値を更新した後の前記レプリカの前記複数の状態変数の値の組み合わせに基づいて、目的関数の値を特定すると共に、前記記憶部に記憶された前記レプリカの前記第1状態変数の値を更新し、
前記複数のレプリカそれぞれの前記複数の状態変数の一の状態変数の値の更新を繰り返し、前記目的関数の値が所定の条件を満たしたときの前記複数の状態変数の値の組み合わせを出力する、
請求項1記載の最適化装置。 - 前記処理部は、前記第1状態変数の値を更新すると前記レプリカと前記他のレプリカとの前記距離が遠ざかる場合に前記相互作用の強さを増加させ、前記相互作用の強さの増加量が大きいほど前記提案確率を大きくする、
請求項1または2記載の最適化装置。 - 前記処理部は、前記第1状態変数の値を更新すると前記レプリカと前記他のレプリカとの前記距離が近づく場合に前記相互作用の強さを増加させ、前記相互作用の強さの増加量が大きいほど前記提案確率を大きくする、
請求項1または2記載の最適化装置。 - 前記処理部は、前記第1状態変数の値を更新した場合における前記相互作用の強さの前記変化量をΔG、前記レプリカに設定された温度パラメータの値の逆数である逆温度をβとしたとき、exp(−βΔG)を所定の規格化定数で除算した値を前記提案確率とする、
請求項1ないし4のいずれかに記載の最適化装置。 - 前記処理部は、前記第1状態変数の値を更新した場合における相互作用の強さの前記変化量をΔG、前記レプリカに設定された温度パラメータの値の逆数である逆温度をβとしたとき、1とexp(−βΔG)とのうちの小さい方を、所定の規格化定数で除算した値を前記提案確率とする、
請求項1ないし4のいずれかに記載の最適化装置。 - 前記処理部は、前記複数の状態変数それぞれを前記第1状態変数とした場合における前記複数の状態変数それぞれについてのexp(−βΔG)の値の総和を、前記規格化定数とする、
請求項5または6記載の最適化装置。 - 前記処理部は、前記レプリカが更新する前記第1状態変数の決定と、決定された前記第1状態変数の更新とを繰り返し、前記規格化定数の計算では、前回に更新された前記第1状態変数の決定の際に用いられた前記規格化定数の値と、前回の前記第1状態変数の更新の前と更新後との前記規格化定数の値の差分とに基づいて、今回に更新する前記第1状態変数の決定で用いる前記規格化定数の値を算出する、
請求項5ないし7のいずれかに記載の最適化装置。 - 前記処理部は、前記他のレプリカそれぞれとの前記距離の合計に基づく値を、前記相互作用の強さとする、
請求項1ないし8のいずれかに記載の最適化装置。 - 前記処理部は、前記他のレプリカそれぞれとの前記距離の平方根の合計に基づく値を、前記相互作用の強さとする、
請求項1ないし8のいずれかに記載の最適化装置。 - 前記処理部は、前記複数の状態変数それぞれについて、前記受け入れ確率に基づいて、状態変数の更新が提案された場合に更新を受け入れるか否かを決定し、更新を受け入れると判定された状態変数の中から、前記提案確率が高い状態変数ほど選択される可能性を高くして、少なくとも1つの状態変数を更新対象に決定する、
請求項1ないし10のいずれかに記載の最適化装置。 - 最適化装置が、
複数の状態変数を有する複数のレプリカそれぞれについて、該レプリカが有する前記複数の状態変数のうちの第1状態変数の値を更新した場合における、前記複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内での前記レプリカと他のレプリカとの距離の変化に応じた相互作用の強さの変化量を特定し、前記第1状態変数の値を更新した場合における前記相互作用の強さの前記変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、前記第1状態変数の値を更新するか否かを決定する、
を有する最適化方法。 - 最適化装置に、
複数の状態変数を有する複数のレプリカそれぞれについて、該レプリカが有する前記複数の状態変数のうちの第1状態変数の値を更新した場合における、前記複数の状態変数の値の組み合わせが取り得る空間を示す状態空間内での前記レプリカと他のレプリカとの距離の変化に応じた相互作用の強さの変化量を計算し、前記第1状態変数の値を更新した場合における前記相互作用の強さの前記変化量に応じた提案確率と、目的の確率分布に応じた受け入れ確率とに基づいて、前記第1状態変数の値を更新するか否かを決定する、
処理を実行させる最適化プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020088882A JP2021184148A (ja) | 2020-05-21 | 2020-05-21 | 最適化装置、最適化方法、および最適化プログラム |
EP21153978.8A EP3913506A1 (en) | 2020-05-21 | 2021-01-28 | Optimization device, optimization method, and optimization program |
US17/168,557 US11790130B2 (en) | 2020-05-21 | 2021-02-05 | Optimization device, optimization method, and non-transitory computer-readable storage medium for storing optimization program |
CN202110183741.8A CN113705851A (zh) | 2020-05-21 | 2021-02-10 | 优化装置、优化方法和用于存储优化程序的存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020088882A JP2021184148A (ja) | 2020-05-21 | 2020-05-21 | 最適化装置、最適化方法、および最適化プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021184148A true JP2021184148A (ja) | 2021-12-02 |
Family
ID=74346946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020088882A Withdrawn JP2021184148A (ja) | 2020-05-21 | 2020-05-21 | 最適化装置、最適化方法、および最適化プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11790130B2 (ja) |
EP (1) | EP3913506A1 (ja) |
JP (1) | JP2021184148A (ja) |
CN (1) | CN113705851A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023228336A1 (ja) * | 2022-05-25 | 2023-11-30 | Tdk株式会社 | 計算モデル及び計算プログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003223322A (ja) * | 2002-01-30 | 2003-08-08 | Mitsubishi Electric Corp | 組合せ最適化問題の解析装置 |
JP5865457B1 (ja) * | 2014-08-29 | 2016-02-17 | 株式会社日立製作所 | 情報処理システム及び管理装置 |
JP6468254B2 (ja) | 2016-07-01 | 2019-02-13 | 富士通株式会社 | 情報処理装置、イジング装置及び情報処理装置の制御方法 |
JP6979331B2 (ja) | 2017-10-30 | 2021-12-15 | 株式会社日立製作所 | 情報処理装置および情報処理方法 |
JP7007585B2 (ja) * | 2018-03-16 | 2022-01-24 | 富士通株式会社 | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム |
JP7004906B2 (ja) | 2018-05-01 | 2022-01-21 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
EP3852029A4 (en) * | 2018-09-13 | 2022-06-15 | Fujitsu Limited | OPTIMIZATION DEVICE AND CONTROL METHOD OF AN OPTIMIZATION DEVICE |
JP7206476B2 (ja) * | 2018-09-14 | 2023-01-18 | 富士通株式会社 | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム |
JP7193707B2 (ja) * | 2018-10-11 | 2022-12-21 | 富士通株式会社 | 最適化装置、最適化装置の制御方法、サンプリング装置およびサンプリング装置の制御方法 |
JP2019071119A (ja) | 2019-01-11 | 2019-05-09 | 富士通株式会社 | 情報処理装置、イジング装置及び情報処理装置の制御方法 |
-
2020
- 2020-05-21 JP JP2020088882A patent/JP2021184148A/ja not_active Withdrawn
-
2021
- 2021-01-28 EP EP21153978.8A patent/EP3913506A1/en not_active Withdrawn
- 2021-02-05 US US17/168,557 patent/US11790130B2/en active Active
- 2021-02-10 CN CN202110183741.8A patent/CN113705851A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023228336A1 (ja) * | 2022-05-25 | 2023-11-30 | Tdk株式会社 | 計算モデル及び計算プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN113705851A (zh) | 2021-11-26 |
EP3913506A1 (en) | 2021-11-24 |
US11790130B2 (en) | 2023-10-17 |
US20210365605A1 (en) | 2021-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Quantumnas: Noise-adaptive search for robust quantum circuits | |
Mirhoseini et al. | A graph placement methodology for fast chip design | |
Lujan-Moreno et al. | Design of experiments and response surface methodology to tune machine learning hyperparameters, with a random forest case-study | |
Devezer et al. | Scientific discovery in a model-centric framework: Reproducibility, innovation, and epistemic diversity | |
Alazzam et al. | A new optimization algorithm for combinatorial problems | |
Dong et al. | Adaptive neural network-based approximation to accelerate eulerian fluid simulation | |
JP7488457B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
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 | |
JP6925546B1 (ja) | 演算システム、情報処理装置、および最適解探索処理方法 | |
JP2022090249A (ja) | 最適化装置、最適化方法、及び最適化プログラム | |
Gao et al. | A novel hybrid PSO based on levy flight and wavelet mutation for global optimization | |
JP2021005282A (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
Khan | Particle swarm optimisation based feature selection for software effort prediction using supervised machine learning and ensemble methods: A comparative study | |
JP2021184148A (ja) | 最適化装置、最適化方法、および最適化プログラム | |
JP2022150078A (ja) | 情報処理プログラム、情報処理装置、及び情報処理方法 | |
Steffen | Particle swarm optimization with a simplex strategy to avoid getting stuck on local optimum | |
JP7215966B2 (ja) | ハイパーパラメータ管理装置、ハイパーパラメータ管理方法及びハイパーパラメータ管理プログラム製品 | |
Kang et al. | TMHSCA: a novel hybrid two-stage mutation with a sine cosine algorithm for discounted {0-1} knapsack problems | |
CN111582313A (zh) | 样本数据生成方法、装置及电子设备 | |
JPWO2019208564A1 (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 | |
JP2022052222A (ja) | 最適化装置、最適化方法、および最適化プログラム | |
CN116010754A (zh) | 存储程序的计算机可读记录介质、数据处理方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200923 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230209 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20240129 |