JP2020027426A - 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム - Google Patents

最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム Download PDF

Info

Publication number
JP2020027426A
JP2020027426A JP2018151808A JP2018151808A JP2020027426A JP 2020027426 A JP2020027426 A JP 2020027426A JP 2018151808 A JP2018151808 A JP 2018151808A JP 2018151808 A JP2018151808 A JP 2018151808A JP 2020027426 A JP2020027426 A JP 2020027426A
Authority
JP
Japan
Prior art keywords
bits
bit
update
value
selection circuit
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
JP2018151808A
Other languages
English (en)
Other versions
JP7100254B2 (ja
Inventor
田村 泰孝
Yasutaka Tamura
泰孝 田村
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 JP2018151808A priority Critical patent/JP7100254B2/ja
Priority to US16/518,103 priority patent/US11468287B2/en
Publication of JP2020027426A publication Critical patent/JP2020027426A/ja
Application granted granted Critical
Publication of JP7100254B2 publication Critical patent/JP7100254B2/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
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Complex Calculations (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】計算速度の低下を抑制する。【解決手段】記憶部11b1〜11bnは、重み係数W11〜WNNを2つ以上のビットに関する重み係数をそれぞれ含むように分割したn個の重み係数群のうちの1つをそれぞれ記憶し、ビット値演算回路部11c1〜11cnは、重み係数群と更新ビットの値と識別情報と熱励起エネルギーとに基づき、上記2つ以上のビットの各々について更新を許容するか否かを判定した判定結果(フラグ情報)と更新を許容する許容ビットの更新後の値を出力し、選択回路部11d1〜11dnは、フラグ情報に基づき許容ビットを1つ選択し、その許容ビットについてのフラグ情報、更新後の値及び識別情報を含む状態信号を出力し、選択回路部12aは、選択回路部11d1〜11dnが出力する状態信号に含まれるフラグ情報に基づき更新ビットを決定し、更新ビットの値と識別情報を、最適化装置11a1〜11anに供給する。【選択図】図1

Description

本発明は、最適化システム、最適化システムの制御方法及び最適化システムの制御プログラムに関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
最適化装置は、たとえば、ニューラルネットワークを用いてモデル化することもできる。その場合、イジングモデルに含まれる複数のスピンに対応した複数のビットのそれぞれが、他のビットの値と、他のビットと自身のビットとの相互作用の大きさを示す重み係数(結合係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、シミュレーテッド・アニーリングなどの確率的探索法により、上記のようなエネルギー関数(コスト関数、目的関数とも呼ばれる)の値(以下エネルギーという)の最小値が得られる各ビットの値の組み合わせを、解として求める。
従来、デジタル回路を用いてシミュレーテッド・アニーリングを行うことでエネルギーが最小となる各ビットの値の組み合わせを計算する最適化装置がある(たとえば、特許文献1及び非特許文献1参照)。
特開2017−219948号公報 特開平5−259847号公報
Satoshi Matsubara et al., "Ising-Model Optimizer with Parallel-Trial Bit-Sieve Engine", CISIS-2017, Pages 432-438
しかしながら、問題の規模の増大に応じてビット数が増えると重み係数の数も増加し、従来の最適化装置(たとえば、1チップの半導体集積回路)では内部の記憶部に重み係数を記憶しきれなくなる。最適化装置の外部のメモリに重み係数を記憶しておく方法があるが、メモリからの重み係数の読み出しにかかる時間により計算速度が低下してしまう問題がある。
1つの側面では、本発明は、計算速度の低下を抑制可能な最適化システム、最適化システムの制御方法及び最適化システムの制御プログラムを提供することを目的とする。
1つの実施態様では、計算対象の問題を変換したイジングモデルに含まれる全スピンに対応する全ビットの間の相互作用の大きさを示す複数の重み係数を、2つ以上のビットに関する重み係数をそれぞれ含むように分割した、n(nは2以上の整数)個の重み係数群のうちの1つの重み係数群を記憶する記憶部と、前記1つの重み係数群と、前記全ビットのうち更新された更新ビットの値と、前記更新ビットを識別する第1の識別情報に基づいて、前記2つ以上のビットの何れか1つが変化することによる前記イジングモデルのエネルギー変化を前記2つ以上のビットのそれぞれについて算出し、乱数と温度パラメータとに基づいて決定される熱励起エネルギーと、前記エネルギー変化との大小関係に基づいて、前記2つ以上のビットのそれぞれについて更新を許容するか否かを判定し、更新を許容するか否かの判定結果を示すフラグ情報と、前記2つ以上のビットのうち更新が許容された許容ビットの更新後の値を出力するビット値演算回路部と、前記フラグ情報に基づいて、1つの前記許容ビットを選択し、選択した前記許容ビットについての前記フラグ情報、前記更新後の値及び、選択した前記許容ビットを識別する第2の識別情報と、を含む状態信号を出力する第1の選択回路部と、をそれぞれが有し、互いに異なる前記1つの重み係数群に基づいて、前記状態信号をそれぞれ出力するn個の最適化装置と、前記n個の最適化装置の前記第1の選択回路部がそれぞれ出力する前記状態信号に含まれる前記フラグ情報に基づいて前記更新ビットを決定し、前記更新ビットの値と、前記更新ビットを識別する前記第1の識別情報を、前記n個の最適化装置のそれぞれに供給する第2の選択回路部と、を有する最適化システムが提供される。
また、1つの実施態様では、最適化システムの制御方法が提供される。また、1つの実施態様では、最適化システムの制御プログラムが提供される。
1つの側面では、計算速度の低下を抑制できる。
第1の実施の形態の最適化システムの一例を示す図である。 ビット値演算回路の一例を示す図である。 選択回路部の一例を示す図である。 選択回路の一例を示す図である。 第1の実施の形態の最適化システムの動作の一例の流れを示すフローチャートである。 第2の実施の形態の最適化システムの一例を示す図である。 制御装置のハードウェア例を示す図である。 制御装置による最適化システムの制御方法の流れを示すフローチャートである。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
以下に示す最適化システムは、計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビットのそれぞれの値の組み合わせ(状態)のうち、エネルギー関数が最小値となるときの各ビットの値(基底状態)を探索するものである。
イジング型のエネルギー関数E(x)は、たとえば、以下の式(1)で定義される。
Figure 2020027426
右辺の1項目は、イジングモデルに含まれる全ビットから選択可能な2つのビットの全組み合わせについて、漏れと重複なく、2つのビットの値(0または1)と結合係数との積を積算したものである。xは、i番目のビットの値を表す変数(状態変数とも呼ばれる)、xは、j番目のビットの値を表す変数であり、Wijは、i番目とj番目のビットの相互作用の大きさを示す重み係数である。なお、Wii=0である。また、Wij=Wjiであることが多い(つまり、重み係数による係数行列は対称行列である場合が多い)。
右辺の2項目は、全ビットのそれぞれのバイアス係数とビットの値との積の総和を求めたものである。bは、i番目のビットのバイアス係数を示している。
また、変数xの値が変化して1−xとなると、変数xの増加分は、Δx=(1−x)−x=1−2xと表せる。スピン反転(値の変化)に伴うエネルギー変化ΔEは、以下の式(2)で表される。
Figure 2020027426
式(2)において、変数xが1から0に変化するとき、Δxは−1となり、変数xが0から1に変化するとき、Δxは1となる。なお、hはローカルフィールド(局所場)と呼ばれ、Δxに応じてローカルフィールドhに符号(+1または−1)を乗じたものがエネルギー変化ΔEである。変数xが0から1に変化するときのローカルフィールドhの変化分は、Δh (j)=+Wij、変数xが1から0に変化するときのローカルフィールドhの変化分は、Δh (j)=−Wijである。同様に、変数xが変化したときのローカルフィールドhの変化分は、Δh (i)=Δxij=Wjiと表せる。
したがって、変数xが変化したときのローカルフィールドh(j=1〜N)を更新する処理は、以下の式(3)で表されるように、並列処理が可能である。
Figure 2020027426
(第1の実施の形態)
図1は、第1の実施の形態の最適化システムの一例を示す図である。
第1の実施の形態の最適化システム10は、最適化装置11a1〜11an、制御部12、制御装置13を有する。
最適化装置11a1〜11anは、たとえば、それぞれ1チップの半導体集積回路(たとえば、FPGA(Field Programmable Gate Array)など)である。
全ビット数=Nの場合、重み係数の総数はNである。1つのチップ当たりに記憶できる重み係数の数の上限をWとした場合、チップ数(最適化装置の数)=nは、n≧N/Wとなる。ただ、各チップのリソースを効率よく利用するために、nは、n≧N/Wを満たす最小値とすればよい。たとえば、N=4000、W=4×10の場合、N/W=4となるため、n=4とすればよい。その場合、1つ目のチップが識別情報(index)=1〜1000のビットに関する重み係数群を記憶し、2つ目のチップがindex=1001〜2000のビットに関する重み係数群を記憶する。そして、3つ目のチップがindex=2001〜3000のビットに関する重み係数群を記憶し、4つ目のチップがindex=2001〜4000のビットに関する重み係数群を記憶すればよい。なお、各チップは、互いに異なる数のビットに関する重み係数群を記憶してもよい。
最適化装置11a1は、記憶部11b1、ビット値演算回路部11c1、選択回路部11d1を有する。
記憶部11b1は、イジングモデルに含まれる全スピンに対応する全ビットの間の相互作用の大きさを示す重み係数W11〜WNNのうち、m(mは2以上の整数)個のビット(index=1〜mのビット)に関する重み係数群を保持している。重み係数W11,W12,…,W1Nは、index=1のビットに関する重み係数群、重み係数W21,W22,…,W2Nは、index=2のビットに関する重み係数群、重み係数Wm1,Wm2,…,WmNは、index=mのビットに関する重み係数群である。
記憶部11b1は、たとえば、レジスタやSRAM(Static Random Access Memory)などである。
ビット値演算回路部11c1は、記憶部11b1に記憶された重み係数群を取得し、制御部12から、全ビットのうち更新された更新ビットの値と、更新ビットを識別するindexとを受ける。そして、ビット値演算回路部11c1は、それらに基づいて、m個のビットの何れか1つが変化することによるイジングモデルのエネルギー変化をm個のビットのそれぞれについて算出する。さらに、ビット値演算回路部11c1は、熱励起エネルギーと、m個のビットのそれぞれについて算出したエネルギー変化との大小関係に基づいて、更新を許容するか否かを判定する。そして、ビット値演算回路部11c1は、m個のビットのそれぞれについての更新を許容するか否かの判定結果を示すフラグ情報と、m個のビットのうち更新が許容されたビット(許容ビット)の更新後の値と、を出力する。
熱励起エネルギーは、たとえば、後述の乱数発生回路が生成した乱数と、制御部12から入力される温度パラメータTとに基づいて決定される。
図1の例では、ビット値演算回路部11c1は、m個のビット値演算回路11c11,11c12,…,11c1mを有する。
ビット値演算回路11c11は、index=1のビットが変化することによるイジングモデルのエネルギー変化を算出し、熱励起エネルギーと、その算出したエネルギー変化との大小関係に基づいて、更新を許容するか否かを判定する。そして、ビット値演算回路11c11は、フラグ情報と、そのビットの更新後の値(index=1のビットの更新が許容された場合)とを出力する。なお、ビット値演算回路11c11は、index=1のビットの更新を許容しないと判定した場合には、現在の(更新前の)index=1のビットの値を出力する。ビット値演算回路11c12〜11c1mは、index=2〜Nのビットについて、ビット値演算回路11c11と同様の処理を行う。
ビット値演算回路11c11〜11c1mの回路例については後述する。
選択回路部11d1は、フラグ情報に基づいて、1つの許容ビットを選択し、選択した許容ビットについてのフラグ情報、更新後の値及び、その許容ビットを識別する識別情報を含む状態信号を出力する。選択回路部11d1の例については後述する。
最適化装置11a1〜11anのうち、最適化装置11a1以外も最適化装置11a1と同様の要素を有し、互いに異なる重み係数群に基づいて、状態信号をそれぞれ出力する。
たとえば、最適化装置11anの記憶部11bnは、index=k〜Nのビットに関する重み係数群を記憶している。重み係数Wk1,Wk2,…,WkNは、index=kのビットに関する重み係数群、重み係数Wk+1,1,Wk+1,2,…,Wk+1,Nは、index=k+1のビットに関する重み係数群である。また、重み係数WN1,WN2,…,WNNは、index=Nのビットに関する重み係数群である。
ビット値演算回路部11cnは、ビット値演算回路11cn1,11cn2,…,11cnmを有する。そして、ビット値演算回路部11cnは、ビット値演算回路部11c1と同様の処理により、index=k〜Nのビットのそれぞれについてのフラグ情報と、index=k〜Nのビットのうち許容ビットの更新後の値と、を出力する。
選択回路部11dnは、フラグ情報に基づいて、1つの許容ビットを選択し、選択した許容ビットについてのフラグ情報、更新後の値及び、その許容ビットを識別する識別情報を含む状態信号を出力する。
制御部12は、制御装置13(たとえば、PC(Personal Computer))との間で情報の送受信を行う。たとえば、制御部12は、制御装置13からイジングモデルを表現する重み係数やバイアス係数を受け、重み係数を記憶部11b1〜11bnに記憶し、バイアス係数をビット値演算回路部11c1〜11cnが計算するローカルフィールドの初期値に設定する。
また、制御部12は、制御装置13から、アニーリング条件(温度パラメータTの最大値、最小値、温度パラメータTの値の下げ方についての情報など)を受け、アニーリング条件に基づいて、ビット値演算回路部11c1〜11cnに温度パラメータTを設定する。制御部12は、アニーリング条件に基づいて、温度パラメータTの値を徐々に小さくしていく。また、制御部12は、たとえば、温度パラメータTの値を所定回数、小さくした場合(または温度パラメータTが最小値に達した場合)の状態保持部12bに保持されている各ビットの値を解として制御装置13に送信する。
図1の最適化システム10の例では、制御部12は、選択回路部12aと状態保持部12bが含まれる。
選択回路部12aは、選択回路部11d1〜11dnがそれぞれ出力する状態信号を受け、状態信号に含まれるフラグ情報に基づいて更新ビットを決定し、更新ビットの値と、更新ビットのindexとを、最適化装置11a1〜11anのそれぞれに供給する。図1の例では、選択回路部12aは、index=iのビットの値(変数x)及びindex=iの他に、フラグ情報(flg)についてもビット値演算回路部11c1〜11cnに供給している。
状態保持部12bは、各ビットの値を保持し、選択回路部12aが出力するビットの更新後の値により、保持内容を更新する。
制御部12は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGAなどの特定用途の電子回路にて実現できる。なお、制御部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサを含んでいてもよい。その場合、プロセッサは、図示しないメモリに記憶されたプログラムを実行することで、上記のような重み係数の記憶制御や温度パラメータTの制御を行う。また、重み係数を設定する機能や温度パラメータTを制御する機能は、制御装置13に含まれていてもよい。
なお、選択回路部12aは、最適化装置11a1〜11anの数が増えても、比較的小さな回路規模で実現できる。そのため、選択回路部12aは、最適化装置11a1〜11anの何れか1つに設けられていてもよい。状態保持部12bについても最適化装置11a1〜11anの何れか1つに設けられていてもよい。また、選択回路部12aや状態保持部12bは、最適化装置11a1〜11an及び制御部12とは独立に設けられていてもよい。また、重み係数の記憶制御や温度パラメータTの制御は、最適化装置11a1〜11anのそれぞれに設けられた制御部が行ってもよい。
(ビット値演算回路の一例)
図2は、ビット値演算回路の一例を示す図である。図2では、図1に示したビット値演算回路11c11の例が示されている。図1に示した他のビット値演算回路についても同様の回路により実現できる。
ビット値演算回路11c11は、ΔE計算部20、状態遷移判定部21、ビット更新部22を有する。
ΔE計算部20は、選択回路20a,20b、乗算器20c、加算器20d、レジスタ20e、乗算器20f、選択回路20gを有する。
選択回路20aは、図1に示した選択回路部12aから供給されるindex=iに基づき、記憶部11b1に格納されている重み係数W1i(i=1〜N)のうち1つを選択して出力する。
たとえば、index=Nが選択回路20aに入力されたとき、選択回路20aは、重み係数W1Nを選択する。
選択回路20bは、式(3)のΔxの演算を実現するものである。前述のように、変数xが1から0に変化するとき、Δxは−1となり、変数xが0から1に変化するとき、Δxは1となる。選択回路20bは、選択回路部12aから供給される変数x(index=iのビットの値の更新値)が0のときには、−1を選択して出力し、変数xが1のときには、1を選択して出力する。
乗算器20cは、選択回路20aが出力する重み係数W1iと、選択回路20bが出力する値との積を出力する。
加算器20dは、乗算器20cが出力する値と、レジスタ20eに格納されている値とを加算して出力する。
レジスタ20eは、図示しないクロック信号に同期して、加算器20dが出力する値(ローカルフィールドh)を取り込む。レジスタ20eは、たとえば、フリップフロップである。なお、レジスタ20eに格納されるローカルフィールドhの初期値はバイアス係数bである。
乗算器20fは、レジスタ20eが出力するローカルフィールドhと選択回路20gが出力する値との積を出力する。この積が、エネルギー変化ΔEである。
選択回路20gは、Δxの演算を実現するものである。選択回路20gは、変数x1a(index=1のビットが変化した場合の値)が0のときは、1を出力し、変数x1aが1のときは−1を出力する。
状態遷移判定部21は、符号反転部21a、オフセット加算部21b、乱数発生回路21c、選択法則適用部21d、乗算器21e、比較回路21fを有する。
符号反転部21aは、エネルギー変化ΔEに−1を掛けて符号を反転させる。
オフセット加算部21bは、符号反転部21aの出力値(−ΔE)に、オフセット値を加える。オフセット加算部21bは、前述の選択回路部12aから供給されるflgが、状態遷移を許容しないことを示すとき(つまり状態遷移が生じないとき)、オフセット値を増加していく。一方、オフセット加算部21bは、flgが、状態遷移を許容することを示すとき(つまり状態遷移が生じるとき)には、オフセット値を0にする。オフセット値が大きくなると状態遷移が許容されやすくなり、現在の状態が局所解にある場合、その局所解からの脱出が促進される。
乱数発生回路21cは、0以上、1以下の一様乱数rを発生する。
選択法則適用部21dは、シミュレーテッド・アニーリングを行うための選択法則(メトロポリス法またはギブス法)に基づいた値を出力する。
シミュレーテッド・アニーリングが行われる場合、あるエネルギー変化ΔEを引き起こす状態遷移の許容確率A(ΔE,T)を以下の式(4)のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。
Figure 2020027426
式(4)においてTは、前述の温度パラメータTである。
式(4)で表される許容確率A(ΔE,T)を用いた場合、十分な反復後に定常状態に達したとすると、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布にしたがう。そして、高い温度から徐々に下げていくとエネルギーの低い状態の占有確率が増加するため、十分温度が下がるとエネルギーの低い状態が得られるはずである。この様子が材料を焼き鈍したときの状態変化とよく似ているため、この方法はシミュレーテッド・アニーリングと呼ばれるのである。このとき、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
許容確率A(ΔE,T)でエネルギー変化ΔEを引き起こす状態遷移を許容することを示すフラグ情報(=1)を出力する回路は、式(4)のf(−ΔE/T)と、一様乱数rとの比較結果に基づいた値を出力する比較器によって実現できる。
ただ、次のような変形を行っても同じ機能が実現できる。2つの数に同じ単調増加関数を作用させても大小関係は変化しない。したがって比較器の2つの入力に同じ単調増加関数を作用させても比較器の出力は変わらない。たとえば、f(−ΔE/T)に作用させる単調増加関数としてf(−ΔE/T)の逆関数f−1(−ΔE/T)、一様乱数rに作用させる単調増加関数としてf−1(−ΔE/T)の−ΔE/Tをrとしたf−1(r)を用いることができる。その場合、上記の比較器と同様の機能を有する回路は、−ΔE/Tがf−1(r)より大きいとき1を出力する回路でよいことがわかる。さらに温度パラメータTが正であることから、その回路は、−ΔEがT・f−1(r)より大きいとき1を出力する回路でよい。
選択法則適用部21dは、入力される一様乱数rを上記のf−1(r)の値に変換する変換テーブルを用いて、f−1(r)の値を出力する。メトロポリス法が適用される場合、f−1(r)は、log(r)である。変換テーブルは、たとえば、RAM(Random Access Memory)、フラッシュメモリなどのメモリに記憶されている。
乗算器21eは、制御部12から供給される温度パラメータTと、f−1(r)との積(T・f−1(r))を出力する。T・f−1(r)は、熱励起エネルギーに相当する。
比較回路21fは、オフセット加算部21bによる加算結果と、T・f−1(r)とを比較し、加算結果が、T・f−1(r)より大きい場合、flg=1を出力し、T・f−1(r)より小さい場合、flg=0を出力する。
ビット更新部22は、選択回路22a、レジスタ22b、インバータ回路22cを有している。
選択回路22aは、flg=0のときは、変数x(index=1のビットの現在の値)を選択して出力し、flg=1のときはインバータ回路22cの出力値(前述の変数x1aに相当する)を選択して出力する。変数xとして、たとえば、図1に示した状態保持部12bに保持されている値が用いられる。
レジスタ22bは、たとえば、フリップフロップであり、図示しないクロック信号に同期して選択回路22aが出力する値を取り込み、その値を変数xとして出力する。レジスタ22bに格納される値の初期値は、たとえば、変数xの初期値である。
インバータ回路22cは、レジスタ22bの出力値を反転して(0から1または1から0へ変えて)出力する。なお、このインバータ回路22cの出力値を、ΔE計算部20の選択回路20gに供給される選択信号である変数x1aとして用いることができる。
このようなビット更新部22では、flg=0のときは、現在の変数xが出力され、flg=1のときは、更新後の変数x=x1aが出力される。
(選択回路部の一例)
図3は、選択回路部の一例を示す図である。
選択回路部11d1は、乱数ビット発生回路30a1,30a2,…,30apと、複数段にわたってツリー状に接続された複数の選択回路を有する。
乱数ビット発生回路30a1〜30apのそれぞれは、1ビットの乱数を出力する。
初段の選択回路31a1,31a2,31a3,31a4,…,31aqのそれぞれは、ビット値演算回路11c11〜11c1mのそれぞれが出力する変数xとflg(i=1〜m)による組を2組ずつ入力する。たとえば、選択回路31a1には、ビット値演算回路11c11が出力する変数xとflgによる組と、ビット値演算回路11c12が出力する変数xとflgによる組が入力される。また、選択回路31a2には、変数xとflgによる組と変数xとflgによる組が入力され、選択回路31a3には、変数xとflgによる組と変数xとflgによる組が入力される。さらに、選択回路31a4には、変数xとflgによる組と変数xとflgによる組が入力され、選択回路31aqには、変数xm−1とflgm−1による組と変数xとflgによる組が入力される。
そして選択回路31a1〜31aqのそれぞれは、入力した2組の変数xとflgと、乱数ビット発生回路30a1が出力する1ビット乱数に基づいて、一方の組の変数xとflgを選択する。また、選択回路31a1〜31aqのそれぞれは、どちらの組の変数xとflgを選択したかを示す1ビットの識別値を生成し、選択した変数xとflgと識別値とを含む状態信号を出力する。なお、初段の選択回路31a1〜31aqの数は、ビット値演算回路11c11〜11c1mの数の1/2、つまり、m/2である。
2段目の選択回路31b1,31b2,…,31brのそれぞれは、選択回路31a1〜31aqが出力する状態信号を2つずつ入力する。たとえば、選択回路31b1には、選択回路31a1,31a2が出力する状態信号が入力され、選択回路31b2には、選択回路31a3,31a4が出力する状態信号が入力される。
そして、選択回路31b1〜31brのそれぞれは、2つの状態信号と、乱数ビット発生回路30a2が出力する1ビット乱数に基づいて、2つの状態信号の何れか一方を選択する。また、選択回路31b1〜31brのそれぞれは、選択した状態信号に含まれる識別値の最上位ビットとして、何れの状態信号を選択したかを示す1ビットの値を加えて、選択した状態信号を出力する。
3段目以降の選択回路においても同様の処理が行われ、各段の選択回路で1ビットずつ識別値のビット幅が増えていき、最後段の選択回路31pから、選択回路部11d1の出力である状態信号が出力される。
選択回路部11d1〜11dnのうち、選択回路部11d1以外も同様の回路構成である。
また、選択回路部12aも選択回路部11d1と同様の回路構成であり、それぞれ1ビットの乱数を出力する乱数ビット発生回路32a1〜32asと、複数段にわたってツリー状に接続された複数の選択回路を有する。
初段の選択回路33a1〜33atのそれぞれは、選択回路部11d1〜11dnが出力するn個の状態信号を2つずつ入力する。そして選択回路33a1〜33atのそれぞれは、2つの状態信号と、乱数ビット発生回路32a1が出力する1ビット乱数に基づいて、2つの状態信号の何れか一方を選択する。また、選択回路33a1〜33atのそれぞれは、選択した状態信号に含まれる識別値の最上位ビットとして、何れの状態信号を選択したかを示す1ビットの値を加えて、選択した状態信号を出力する。なお、初段の選択回路33a1〜33atの数は、n/2である。
2段目以降の選択回路においても同様の処理が行われ、各段の選択回路で1ビットずつ識別値のビット幅が追加されていき、最後段の選択回路33sから、選択回路部12aの出力である状態信号が出力される。選択回路部12aが出力する状態信号に含まれる識別値が、2進数で表された更新ビットのindexである。
図4は、選択回路の一例を示す図である。図4では、図3の選択回路31b1の例が示されている。
選択回路31b1は、OR(論理和)回路40、NAND(否定論理積)回路41、選択回路42,43,44を有する。
OR回路40は、前段の選択回路31a1が出力する状態信号staに含まれるフラグ情報(flga)と、前段の選択回路31a2が出力する状態信号stbに含まれるフラグ情報(flgb)とを入力する。そして、OR回路40は、flga,flgbの何れか一方または両方が1ならば1を出力し、flga,flgbの両方が0ならば、0を出力する。OR回路40の出力が、選択回路31b1が出力する状態信号stcに含まれるフラグ情報(flgc)となる。
NAND回路41は、flga,flgbを入力し、flgaとflgbの否定論理積を出力する。
選択回路42は、NAND回路41の出力が0のときは、乱数ビット発生回路30a2が出力する乱数(0または1)を選択して出力し、NAND回路41の出力が1のときは、flgbの値を選択して出力する。
選択回路43は、状態信号staに含まれる識別値(ida)と状態信号stbに含まれる識別値(idb)を入力する。選択回路43は、選択回路42の出力が0のときは、idaの値を選択して出力し、選択回路42の出力が1のときは、idbの値を選択して出力する。選択回路43が出力するidaまたはidbに、最上位ビットとして選択回路42が出力する0または1の1ビットの値を追加したものが、状態信号stcに含まれる識別値(idc)となる。
選択回路44は、状態信号staに含まれる変数xと状態信号stbに含まれる変数xを入力する。選択回路44は、選択回路42の出力が0のときは、変数xを選択して出力し、選択回路42の出力が1のときは、変数xを選択して出力する。選択回路44が出力する変数xまたは変数xが、状態信号stcに含まれる変数xとなる。
図3に示した、選択回路31b2〜31brや3段目以降の選択回路、選択回路部12aに含まれる各選択回路も、選択回路31b1と同様の回路構成で実現できる。
図3に示した選択回路部11d1の初段の選択回路31a1〜31aqも、図4に示した選択回路31b1の回路構成とほぼ同様の回路構成で実現できるが、選択回路43はない。
なお、上記の説明では、選択回路部11d1〜11dn,12aによってindexが生成される例を示したがこれに限定されない。たとえば、ビット値演算回路11c11〜11cnmのそれぞれにindexを記憶する記憶部(たとえば、レジスタ)がある場合、選択回路部11d1〜11dnは、各記憶部からindexを読み出す。その場合、選択回路部11d1〜11dn,12aに含まれる複数の選択回路のそれぞれは、たとえば、図4において、選択回路43の出力に1ビットの値を加えずにidcを生成するような回路構成となる。そして、ida,idbが、互いに異なるビットのindexを表し、idcが、互いに異なるビットの何れか一方のindexを表すことになる。
以下、第1の実施の形態の最適化システム10の動作例を示す図である。
図5は、第1の実施の形態の最適化システムの動作の一例の流れを示すフローチャートである。
まず、制御部12は、制御装置13から受けた全重み係数を、前述のようにn(n≧N/W)個の重み係数群に分割して、最適化装置11a1〜11anの記憶部11b1〜11bnに記憶する(ステップS1)。
また、制御部12は、制御装置13から受けたアニーリング条件に基づいて、ビット値演算回路部11c1〜11cnに温度パラメータTの初期値を設定する(ステップS2)。なお、制御部12は、制御装置13から受けたバイアス係数を、ビット値演算回路部11c1〜11cnに設定してもよい。
ビット値演算回路11c11〜11cnmのそれぞれは、前述の方法により、ローカルフィールドhを計算するとともに(ステップS3)、エネルギー変化ΔEを計算する(ステップS4)。
また、ビット値演算回路11c11〜11cnmのそれぞれは、計算したエネルギー変化ΔEの符号を反転させた値に対して、オフセット値を加算する(ステップS5)。
そして、ビット値演算回路11c11〜11cnmのそれぞれと、選択回路部11d1〜11dn,12aによる前述の処理により、更新ビットの選択が行われる(ステップS6)。
そして、選択回路部12aは、更新ビットの値(変数x)と、更新ビットのindex=iと、flgとを、全最適化装置(最適化装置11a1〜11an)に供給する(ステップS7)。
また、状態保持部12bは、選択回路部12aが出力する変数xにより、保持内容である状態を更新する(ステップS8)。
制御部12は、ステップS3〜S8の更新処理が所定回数N1、繰り返されたか否かを判定する(ステップS9)。更新処理が所定回数N1、繰り返されていない場合には、ステップS3〜S8の更新処理が繰り返される。
更新処理が所定回数N1、繰り返された場合、制御部12は、温度パラメータの変更回数(温度変更回数)が、所定回数N2に達したか否かを判定する(ステップS10)。
温度変更回数が所定回数N2に達していない場合、制御部12は、温度パラメータを変更する(温度を下げる)(ステップS11)。所定回数N1,N2、温度パラメータの値の変更の仕方(一度に値をどのくらい小さくするかなど)は、アニーリング条件に基づいて決定される。ステップS11の処理後、ステップS3からの処理が繰り返される。
温度変更回数が所定回数N2に達している場合、制御部12は、そのとき状態保持部12bに保持されている状態を、解(計算結果)として制御装置13に送信(出力)する(ステップS12)。
以上のような第1の実施の形態の最適化システム10では、全ビットについての重み係数が最適化装置11a1〜11anに分散して保持されている。そして、保持した重み係数を用いて最適化装置11a1〜11anが決定した許容ビットから選択回路部12aが更新ビットを選択し、更新ビットの値やindexを最適化装置11a1〜11anに供給する。これにより、ビット数が多くなる大規模な問題を計算する際にも、外部メモリ(たとえば、制御装置13内のメモリ)から重み係数を部分的に読み出しながら計算を行うようなことが不要で、メモリアクセスが減るため、計算速度の低下を抑制できる。また、各最適化装置間での重み係数の移動がないため、最適化装置間での通信による計算速度の低下も抑制できる。
(第2の実施の形態)
図6は、第2の実施の形態の最適化システムの一例を示す図である。図6において、図1に示した要素と同じ要素については同一符号が付されている。
第2の実施の形態の最適化システム50において、最適化装置51a1〜51anに含まれる選択回路部51b1〜51bnと、制御部52に含まれる選択回路部52aは、双方向のパスを有している。なお、選択回路部52aは、最適化装置51a1〜51anの何れか1つに含まれていてもよいし、最適化装置51a1〜51an及び制御部52とは独立に設けられていてもよい。
選択回路部52aは、第1の実施の形態の最適化システム10の選択回路部52aと同様に、更新ビットの値(変数x)、index=i、flgを最適化装置51a1〜51anに供給する。ただし、選択回路部52aは、選択回路部52a内に設けられたパスを使用して、変数x、index=i、flgを最適化装置51a1〜51anに供給する。
選択回路部51b1〜51bnは、選択回路部11d1〜11dnと同様の機能を有するとともに、選択回路部52aから変数x、index=i、flgを受ける。そして、選択回路部51b1〜51bnは、それらを選択回路部51b1〜51bn内に設けられたパスを使用して、ビット値演算回路部11c1〜11cnに供給する。
たとえば、選択回路部51b1は、選択回路部52aから受けた変数x、index=i、flgを、選択回路部51b1内に設けられたパスを使用して、ビット値演算回路11c11〜11c1mのそれぞれに供給する。
なお、第2の実施の形態の最適化システム50の全体の動作の流れは、図5に示した第1の実施の形態の最適化システム10の動作の流れと同じである。
第2の実施の形態の最適化システム50では、選択回路部51b1〜51bnと、選択回路部52a内に設けられたパスを用いて、変数x、index=i、flgがビット値演算回路部11c1〜11cnに供給される。これにより、第1の実施の形態の最適化システム10のように、選択回路部12aが、変数x、index=i、flgを、ビット値演算回路部11c1〜11cnにブロードキャストするよりも、配線リソースの増加を抑制できる。
第2の実施の形態の最適化システム50のその他の効果については、第1の実施の形態の最適化システム10の効果と同じである。
ところで、上記の第1及び第2の実施の形態の最適化システム10,50において制御部12,52の重み係数の記憶制御や温度パラメータTの制御を行う機能は、たとえば、PCなどの制御装置内のプロセッサが制御プログラムを実行することで実現してもよい。
図7は、制御装置のハードウェア例を示す図である。
制御装置60は、CPU61、RAM62、HDD(Hard Disk Drive)63、画像信号処理部64、入力信号処理部65、媒体リーダ66、通信インタフェース67及びインタフェース68を有する。上記ユニットは、バスに接続されている。
CPU61は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU61は、HDD63に記憶されたプログラム(たとえば、前述の制御プログラム)やデータの少なくとも一部をRAM62にロードし、プログラムを実行する。なお、CPU61は複数のプロセッサコアを備えてもよく、制御装置60は複数のプロセッサを備えてもよく、前述の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。
RAM62は、CPU61が実行するプログラムやCPU61が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、制御装置60は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD63は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、重み係数の記憶制御や温度パラメータTの制御を行う機能を制御装置60に実行させる制御プログラムが含まれる。なお、制御装置60は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部64は、CPU61からの命令にしたがって、制御装置60に接続されたディスプレイ64aに画像(たとえば、最適化問題の計算結果を表す画像)を出力する。ディスプレイ64aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部65は制御装置60に接続された入力デバイス65aから入力信号を取得し、CPU61に出力する。入力デバイス65aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、制御装置60に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ66は、記録媒体66aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体66aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ66は、たとえば、記録媒体66aから読み取ったプログラムやデータを、RAM62やHDD63などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU61によって実行される。なお、記録媒体66aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体66aやHDD63を、コンピュータ読み取り可能な記録媒体ということがある。
通信インタフェース67は、ネットワーク67aに接続され、ネットワーク67aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース67は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
インタフェース68は、最適化装置68a1〜68anと通信を行うインタフェースである。最適化装置68a1〜68anは、たとえば、図1に示した最適化装置11a1〜11anまたは図6に示した最適化装置51a1〜51anである。
図8は、制御装置による最適化システムの制御方法の流れを示すフローチャートである。
制御装置60は、全重み係数を、前述のようにn(n≧N/W)個の重み係数群に分割して、最適化装置68a1〜68anのそれぞれの記憶部に記憶する(ステップS20)。
また、制御装置60は、最適化装置68a1〜68anに温度パラメータTの初期値を送信する(ステップS21)。
その後、制御装置60は、たとえば、最適化装置68a1〜68anが前述の更新処理を行うたびに送信する信号を受信し、更新処理が所定回数N1、繰り返されたか否かを判定する(ステップS22)。更新処理が所定回数N1、繰り返されていない場合には、ステップS22の処理が繰り返される。
更新処理が所定回数N1、繰り返された場合、制御装置60は、温度パラメータTの変更回数(温度変更回数)が、所定回数N2に達したか否かを判定する(ステップS23)。
温度変更回数が所定回数N2に達していない場合、制御装置60は、温度パラメータTを変更する(温度を下げる)(ステップS24)。ステップS24の処理では、制御装置60は、前回送信した値よりも小さい温度パラメータTの値を、最適化装置68a1〜68anに送信する。所定回数N1,N2、温度パラメータの値の変更の仕方(一度に値をどのくらい小さくするかなど)は、アニーリング条件に基づいて決定される。ステップS24の処理後、ステップS22からの処理が繰り返される。
温度変更回数が所定回数N2に達している場合、制御装置60は、そのときの各ビットの値(変数x(i=1〜N))を、たとえば、図1に示した状態保持部12bから、最適化問題の計算結果として取得する(ステップS25)。
その後、制御装置60は、受信した計算結果を、たとえば、図7に示したディスプレイ64aに表示し(ステップS26)、最適化システムの制御を終える。
なお、前述のように、上記の制御装置60の処理内容は、コンピュータにプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体66a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVD及びDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD63)にプログラムをコピーして実行してもよい。
以上、実施の形態に基づき、本発明の最適化システム、最適化システムの制御方法及び最適化システムの制御プログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化システム
11a1〜11an 最適化装置
11b1〜11bn 記憶部
11c1〜11cn ビット値演算回路部
11c11〜11cnm ビット値演算回路
11d1〜11dn,12a 選択回路部
12 制御部
12b 状態保持部
13 制御装置

Claims (5)

  1. 計算対象の問題を変換したイジングモデルに含まれる全スピンに対応する全ビットの間の相互作用の大きさを示す複数の重み係数を、2つ以上のビットに関する重み係数をそれぞれ含むように分割した、n(nは2以上の整数)個の重み係数群のうちの1つの重み係数群を記憶する記憶部と、
    前記1つの重み係数群と、前記全ビットのうち更新された更新ビットの値と、前記更新ビットを識別する第1の識別情報に基づいて、前記2つ以上のビットの何れか1つが変化することによる前記イジングモデルのエネルギー変化を前記2つ以上のビットのそれぞれについて算出し、乱数と温度パラメータとに基づいて決定される熱励起エネルギーと、前記エネルギー変化との大小関係に基づいて、前記2つ以上のビットのそれぞれについて更新を許容するか否かを判定し、更新を許容するか否かの判定結果を示すフラグ情報と、前記2つ以上のビットのうち更新が許容された許容ビットの更新後の値を出力するビット値演算回路部と、
    前記フラグ情報に基づいて、1つの前記許容ビットを選択し、選択した前記許容ビットについての前記フラグ情報、前記更新後の値及び、選択した前記許容ビットを識別する第2の識別情報と、を含む状態信号を出力する第1の選択回路部と、
    をそれぞれが有し、互いに異なる前記1つの重み係数群に基づいて、前記状態信号をそれぞれ出力するn個の最適化装置と、
    前記n個の最適化装置の前記第1の選択回路部がそれぞれ出力する前記状態信号に含まれる前記フラグ情報に基づいて前記更新ビットを決定し、前記更新ビットの値と、前記更新ビットを識別する前記第1の識別情報を、前記n個の最適化装置のそれぞれに供給する第2の選択回路部と、
    を有する最適化システム。
  2. 前記nは、前記全ビットの数の二乗を、前記n個の最適化装置の前記記憶部がそれぞれ記憶可能な前記重み係数の数の上限で割った値以上であり、
    前記n個の最適化装置の前記記憶部は、前記全ビットの数を前記nで割った数のビットに関する前記重み係数を含む前記1つの重み係数群をそれぞれ記憶する、
    請求項1に記載の最適化システム。
  3. 前記第2の選択回路部は、前記更新ビットの値と前記第1の識別情報を、前記第2の選択回路部に設けられた第1のパスを介して、前記n個の最適化装置のそれぞれの前記第1の選択回路部に供給し、
    前記n個の最適化装置のそれぞれの前記第1の選択回路部は、前記第2の選択回路部から供給された前記更新ビットの値と前記第1の識別情報を、前記第1の選択回路部に設けられた第2のパスを介して、自身と同じ最適化装置に含まれる前記ビット値演算回路部に供給する、
    請求項1または2に記載の最適化システム。
  4. 計算対象の問題を変換したイジングモデルに含まれる全スピンに対応する全ビットの間の相互作用の大きさを示す複数の重み係数を、2つ以上のビットに関する重み係数をそれぞれ含むように分割した、n(nは2以上の整数)個の重み係数群のうちの1つの重み係数群を記憶する記憶部と、前記1つの重み係数群と、前記全ビットのうち更新された更新ビットの値と、前記更新ビットを識別する第1の識別情報に基づいて、前記2つ以上のビットの何れか1つが変化することによる前記イジングモデルのエネルギー変化を前記2つ以上のビットのそれぞれについて算出し、乱数と温度パラメータとに基づいて決定される熱励起エネルギーと、前記エネルギー変化との大小関係に基づいて、前記2つ以上のビットのそれぞれについて更新を許容するか否かを判定し、更新を許容するか否かの判定結果を示すフラグ情報と、前記2つ以上のビットのうち更新が許容された許容ビットの更新後の値を出力するビット値演算回路部と、前記フラグ情報に基づいて、1つの前記許容ビットを選択し、選択した前記許容ビットについての前記フラグ情報、前記更新後の値及び、選択した前記許容ビットを識別する第2の識別情報と、を含む状態信号を出力する第1の選択回路部と、をそれぞれが有し、互いに異なる前記1つの重み係数群に基づいて、前記状態信号をそれぞれ出力するn個の最適化装置と、
    前記n個の最適化装置の前記第1の選択回路部がそれぞれ出力する前記状態信号に含まれる前記フラグ情報に基づいて前記更新ビットを決定し、前記更新ビットの値と、前記更新ビットを識別する前記第1の識別情報を、前記n個の最適化装置のそれぞれに供給する第2の選択回路部と、
    を有する最適化システムに対して、
    制御装置が、前記複数の重み係数を前記n個の重み係数群に分割し、分割した前記n個の重み係数群のそれぞれを、前記n個の最適化装置のうち、互いに異なる最適化装置の前記記憶部に記憶し、
    前記制御装置が、前記温度パラメータの大きさを制御する、
    最適化システムの制御方法。
  5. 計算対象の問題を変換したイジングモデルに含まれる全スピンに対応する全ビットの間の相互作用の大きさを示す複数の重み係数を、2つ以上のビットに関する重み係数をそれぞれ含むように分割した、n(nは2以上の整数)個の重み係数群のうちの1つの重み係数群を記憶する記憶部と、前記1つの重み係数群と、前記全ビットのうち更新された更新ビットの値と、前記更新ビットを識別する第1の識別情報に基づいて、前記2つ以上のビットの何れか1つが変化することによる前記イジングモデルのエネルギー変化を前記2つ以上のビットのそれぞれについて算出し、乱数と温度パラメータとに基づいて決定される熱励起エネルギーと、前記エネルギー変化との大小関係に基づいて、前記2つ以上のビットのそれぞれについて更新を許容するか否かを判定し、更新を許容するか否かの判定結果を示すフラグ情報と、前記2つ以上のビットのうち更新が許容された許容ビットの更新後の値を出力するビット値演算回路部と、前記フラグ情報に基づいて、1つの前記許容ビットを選択し、選択した前記許容ビットについての前記フラグ情報、前記更新後の値及び、選択した前記許容ビットを識別する第2の識別情報と、を含む状態信号を出力する第1の選択回路部と、をそれぞれが有し、互いに異なる前記1つの重み係数群に基づいて、前記状態信号をそれぞれ出力するn個の最適化装置と、
    前記n個の最適化装置の前記第1の選択回路部がそれぞれ出力する前記状態信号に含まれる前記フラグ情報に基づいて前記更新ビットを決定し、前記更新ビットの値と、前記更新ビットを識別する前記第1の識別情報を、前記n個の最適化装置のそれぞれに供給する第2の選択回路部と、
    を有する最適化システムに対して、
    前記複数の重み係数を前記n個の重み係数群に分割し、分割した前記n個の重み係数群のそれぞれを、前記n個の最適化装置のうち、互いに異なる最適化装置の前記記憶部に記憶し、
    前記温度パラメータの大きさを制御する、
    処理をコンピュータに実行させる最適化システムの制御プログラム。
JP2018151808A 2018-08-10 2018-08-10 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム Active JP7100254B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018151808A JP7100254B2 (ja) 2018-08-10 2018-08-10 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
US16/518,103 US11468287B2 (en) 2018-08-10 2019-07-22 Information processing system, information processing apparatus, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018151808A JP7100254B2 (ja) 2018-08-10 2018-08-10 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム

Publications (2)

Publication Number Publication Date
JP2020027426A true JP2020027426A (ja) 2020-02-20
JP7100254B2 JP7100254B2 (ja) 2022-07-13

Family

ID=69406102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018151808A Active JP7100254B2 (ja) 2018-08-10 2018-08-10 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム

Country Status (2)

Country Link
US (1) US11468287B2 (ja)
JP (1) JP7100254B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6788117B2 (ja) * 2016-12-05 2020-11-18 1キュービー インフォメーション テクノロジーズ インコーポレイテッド1Qb Information Technologies Inc. 横磁場量子イジング模型の熱力学的特性を推定するための方法
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7137064B2 (ja) * 2018-10-19 2022-09-14 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7174244B2 (ja) * 2018-12-26 2022-11-17 富士通株式会社 最適化装置及び最適化装置の制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200517A (ja) * 1993-12-29 1995-08-04 Toshiba Corp 並列型確率的最適化法
JP2017219948A (ja) * 2016-06-06 2017-12-14 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP2018041351A (ja) * 2016-09-09 2018-03-15 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP2018063626A (ja) * 2016-10-14 2018-04-19 富士通株式会社 最適化装置及び最適化装置の制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243599A (en) 1991-06-05 1993-09-07 International Business Machines Corporation Tree-type multiplexers and methods for configuring the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200517A (ja) * 1993-12-29 1995-08-04 Toshiba Corp 並列型確率的最適化法
JP2017219948A (ja) * 2016-06-06 2017-12-14 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP2018041351A (ja) * 2016-09-09 2018-03-15 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP2018063626A (ja) * 2016-10-14 2018-04-19 富士通株式会社 最適化装置及び最適化装置の制御方法

Also Published As

Publication number Publication date
JP7100254B2 (ja) 2022-07-13
US20200050921A1 (en) 2020-02-13
US11468287B2 (en) 2022-10-11

Similar Documents

Publication Publication Date Title
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7100254B2 (ja) 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
JP7071638B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7093009B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7185140B2 (ja) 最適化装置及び最適化装置の制御方法
JP7100257B2 (ja) 最適化装置及び最適化装置の制御方法
JP2014199545A (ja) プログラム、並列演算方法および情報処理装置
EP3885999A1 (en) Optimization apparatus, optimization method, and program
JP7137064B2 (ja) 最適化装置及び最適化装置の制御方法
JP2020204928A (ja) 最適化装置および最適化方法
JPWO2020202312A1 (ja) 情報処理装置、演算装置、及び情報処理方法
WO2021220445A1 (ja) 演算システム、情報処理装置、および最適解探索処理方法
JP7201911B2 (ja) 最適化装置および最適化装置の制御方法
JP7111966B2 (ja) 最適化装置及び最適化装置の制御方法
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JPWO2020054062A1 (ja) 最適化装置および最適化装置の制御方法
US20210173978A1 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
US20240111833A1 (en) Data processing apparatus and data processing method
JP2023028347A (ja) プログラム、データ処理方法及びデータ処理装置
JP2021131723A (ja) 情報処理方法、情報処理装置及びプログラム
JP2023024085A (ja) プログラム、データ処理方法及びデータ処理装置
JP2023001644A (ja) データ処理装置、プログラム及びデータ処理方法
JP2022158585A (ja) 最適化プログラム、最適化方法及び最適化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210524

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220523

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: 20220531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220613

R150 Certificate of patent or registration of utility model

Ref document number: 7100254

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150