JP7071638B2 - 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム - Google Patents

最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム Download PDF

Info

Publication number
JP7071638B2
JP7071638B2 JP2018143479A JP2018143479A JP7071638B2 JP 7071638 B2 JP7071638 B2 JP 7071638B2 JP 2018143479 A JP2018143479 A JP 2018143479A JP 2018143479 A JP2018143479 A JP 2018143479A JP 7071638 B2 JP7071638 B2 JP 7071638B2
Authority
JP
Japan
Prior art keywords
bits
value
local field
update
calculation circuits
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.)
Active
Application number
JP2018143479A
Other languages
English (en)
Other versions
JP2020021209A (ja
Inventor
泰孝 田村
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 JP2018143479A priority Critical patent/JP7071638B2/ja
Priority to US16/513,785 priority patent/US11475099B2/en
Publication of JP2020021209A publication Critical patent/JP2020021209A/ja
Application granted granted Critical
Publication of JP7071638B2 publication Critical patent/JP7071638B2/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • 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
    • 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

Landscapes

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

Description

本発明は、最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムに関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
最適化装置は、たとえば、ニューラルネットワークを用いてモデル化することもできる。その場合、イジングモデルに含まれる複数のスピンに対応した複数のビットのそれぞれが、他のビットの値と、他のビットと自身のビットとの相互作用の大きさを示す重み値(結合係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、シミュレーテッド・アニーリングなどの確率的探索法により、上記のようなエネルギー関数(コスト関数、目的関数とも呼ばれる)の値(以下エネルギーという)の最小値が得られる各ビットの値の組み合わせを、解として求める。
従来、デジタル回路を用いてシミュレーテッド・アニーリングを行うことでエネルギーが最小となる各ビットの値の組み合わせを計算する最適化装置がある(たとえば、特許文献1,2及び非特許文献1参照)。従来の最適化装置は、一度に1ビットだけ変化するとしてエネルギー変化を計算し、そのエネルギー変化に対して温度に対応するノイズ値を加えた値に応じてビットの変化を許容するか否かを決定する。エネルギーが増加するビットの変化も所定の確率で許容され、温度が低くなるにつれてその確率は低くなる。
特開2017-219948号公報 特開2018-041351号公報
Satoshi Matsubara et al., "Ising-Model Optimizer with Parallel-Trial Bit-Sieve Engine", CISIS-2017, Pages 432-438
しかしながら、従来の最適化装置は、一度に1ビットだけ変化を許容して確率的探索を行う。そのため、温度が低くなるアニーリング終盤のように、変化するビットが得られる確率が小さい状況では、最適解の探索速度が低下する問題がある。
1つの側面では、本発明は、最適解の探索速度の低下を抑制する最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムを提供することを目的とする。
1つの実施態様では、計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビットのうち、n(nは2以上の整数)個のビットの各々についての第1のローカルフィールド値と、前記n個のビットの各々の値と、前記n個のビットの間の相互作用の大きさを示す重み値と、に基づいて、前記n個のビットの値が変化することによる前記イジングモデルの第1のエネルギー変化を、それぞれ算出する複数の第1の算出回路と、入力される温度パラメータと、乱数とに基づいて決定される熱励起エネルギーと、前記複数の第1の算出回路がそれぞれ出力する前記第1のエネルギー変化との大小関係に基づいて、更新を許容する前記n個のビットを選択し、選択した前記n個のビットの第1の識別情報を出力する更新ビット選択回路と、前記更新ビット選択回路が出力する前記第1の識別情報により識別される前記n個のビットの値を変化させるとともに、前記n個のビットの値の変化に基づいて、前記第1のローカルフィールド値を含む前記複数のビットの各々についての第2のローカルフィールド値を更新する更新回路と、を有する最適化装置が提供される。
また、1つの実施態様では、最適化装置の制御方法が提供される。また、1つの実施態様では、最適化装置の制御プログラムが提供される。
1つの側面では、最適解の探索速度の低下を抑制することが可能となる。
第1の実施の形態の最適化装置の一例を示す図である。 更新ビット選択回路の一例を示す図である。 :1セレクタの一例を示す図である。 第1の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 第2の実施の形態の最適化装置の一例を示す図である。 ハミング距離が3の近傍状態のエネルギー変化を算出する演算部の一例を示す図である。 第3の実施の形態の最適化装置におけるN:1セレクタの一例を示す図である。 第4の実施の形態の最適化装置の一例を示す図である。 第4の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 制御装置のハードウェア例を示す図である。 制御装置による最適化装置の制御方法の流れを示すフローチャートである。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
以下に示す最適化装置は、イジングモデルに含まれる複数のスピンに対応する複数のビットの各々の値の現在の組み合わせ(現在の状態)に対して、ハミング距離がn(nは2以上の正の整数)の近傍状態の探索を可能とするものである。
なお、最適化装置は、イジングモデルの基底状態(イジング型のエネルギー関数が最小値となるときの各ビットの値)を探索することで、巡回セールスマン問題などの最適化問題を計算する。イジング型のエネルギー関数E(x)は、たとえば、以下の式(1)で定義される。
Figure 0007071638000001
右辺の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 0007071638000002
式(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が変化したときのj番目のビットについてのローカルフィールドhの変化分は、Δh (i)=Δxij、と表せる。
したがって、変数x,xの値が順に変化したときの(ハミング距離が2の近傍状態の)エネルギー変化は、以下の式(3)で表せる。なお、Wij=Wjiが成立する場合において、エネルギー変化は変数x,xが変化する順番には依存しない。したがって変数x,xの順で変化した場合も変数x,xの順で変化した場合も同じエネルギー変化が得られるが、その後の選択操作が確率的な動作であるためエネルギー変化が同じでも別の事象として取り扱う。
Figure 0007071638000003
以下では、まず、ハミング距離が2の近傍状態の探索を可能とする第1の実施の形態の最適化装置を説明する。
(第1の実施の形態)
図1は、第1の実施の形態の最適化装置の一例を示す図である。
最適化装置10は、演算部11、更新ビット選択回路12、更新回路13を有する。
演算部11は、N個のビットの値(変数x,x,…,x)と各ビットについてのローカルフィールドh,h,…,hを保持する保持部11aと、マトリクス状に配置されたN×N個の算出回路を有する。Nは、計算対象の問題を変換したイジングモデルに含まれるスピン数に対応したビット数である。
保持部11aは、たとえば、レジスタやSRAM(Static Random Access Memory)などである。
N×N個の算出回路のうち、マトリクスの対角部分に配置されている算出回路11b1,11b2,…,11bNは、現在の状態からハミング距離が1の近傍状態に遷移した場合のエネルギー変化を算出する。
たとえば、算出回路11b1は、1番目のビット(変数x)の値と1番目のビットについてのローカルフィールドhの値に基づいて、式(2)により、変数xが変化することによるイジングモデルのエネルギー変化ΔEを算出する。算出回路11b1は、たとえば、変化前の変数xが1のとき、ローカルフィールドhに+1を掛けた値をエネルギー変化ΔEとして出力し、変化前の変数xが0のとき、ローカルフィールドhに-1を掛けた値をエネルギー変化ΔEとして出力する。算出回路11b1は、変化前の変数xの値に応じて、ローカルフィールドhに+1を掛けるか-1を掛けるか選択するセレクタと乗算器を用いて実現できる。算出回路11b2~11bNについても同様である。
なお、最適化装置10が常にハミング距離=2の近傍状態の探索を行う場合には、算出回路11b1~11bNはなくてもよい。
N×N個の算出回路のうち、算出回路11b1~11bN以外の算出回路(算出回路11c1,11c2,11c3,11c4,11c5,11c6など)は、現在の状態からハミング距離が2の近傍状態に遷移した場合のエネルギー変化を算出する。
たとえば、算出回路11c1は、1番目のビットと2番目のビット(変数x,x)の値が順に変化することによるイジングモデルのエネルギー変化ΔE12を算出する。算出回路11c1は、変数x,xと1番目のビットと2番目のビットについてのローカルフィールドh,hの値と、重み値W12に基づいて、式(3)により、変数xと変数xが順に変化することによるイジングモデルのエネルギー変化ΔE12を算出する。重み値W12は、算出回路11c1内の記憶部11c11(レジスタやSRAMなど)に記憶されている。
算出回路11c1は、たとえば、変化前の変数xが1のとき、ローカルフィールドhに+1を掛け、変化前の変数xが0のとき、ローカルフィールドhに-1を掛けることで、-Δxを計算する。同様に、算出回路11c1は、変化前の変数xが1のとき、ローカルフィールドhに+1を掛け、変化前の変数xが0のとき、ローカルフィールドhに-1を掛けることで、-Δxを計算する。さらに、算出回路11c1は、変化前の変数x,xの値に応じて、重み値W12に-1か+1を掛ける。そして、算出回路11c1は、3つの乗算結果を加算することで、ΔE12を算出する。このような算出回路11c1は、セレクタと乗算器と加算器を用いて実現できる。他の算出回路(算出回路11c2~11c6など)についても同様である。
なお、上記のN×N個の算出回路の配置は、あくまで一例である。たとえば、算出回路11b1~11bNは、マトリクスの対角部分に配置されていなくてもよく、一行または一列に揃えて配置されていてもよい。
更新ビット選択回路12は、温度パラメータTと、N×N個の算出回路がそれぞれ出力するエネルギー変化ΔE,ΔE12,…,ΔEを入力する。そして、更新ビット選択回路12は、温度パラメータTと乱数とに基づいて決定される熱励起エネルギーと、エネルギー変化ΔE,ΔE12,…,ΔEとの大小関係に基づいて、更新を許容する2つのビット(または1つのビット)を選択する。さらに、更新ビット選択回路12は、選択した2つのビット(または1つのビット)の識別情報を出力する。更新ビット選択回路12の例については後述する。
更新回路13は、更新ビット選択回路12が出力する識別情報により識別される2つのビットの値を順に変化させるとともに、2つのビットの値の変化に基づいて、ローカルフィールドh~hの値を更新する。なお、更新回路13は、更新ビット選択回路12が出力する識別情報が1つのビットに関するものである場合、その識別情報により識別される1つのビットの値を変化させ、そのビットの値の変化に基づいて、ローカルフィールドh~hの値を更新する。更新後の各値は、保持部11aに保持される。
たとえば、更新ビット選択回路12がk番目のビットとl番目のビットを識別する識別情報を出力した場合、更新回路13は、以下のように2つのビットの値を順に変化させるとともに、ローカルフィールドh~hの値を更新する。
k≠lの場合、更新回路13は、k番目のビット(変数x)の値を1-xに変える。そして、更新回路13は、ローカルフィールドh(i=1,2,…,N(ただしi≠k))を、h+Wki・Δxに更新する(Δx=1-2x)。また、更新回路13は、l番目のビット(変数x)の値を1-xに変える。そして、更新回路13は、更新されたローカルフィールドh(i=1~N(ただしi≠l))を、さらに、h+Wli・Δxに更新する(Δx=1-2x)。
k=lの場合、更新回路13は、変数xを1-xに変える。そして、更新回路13は、ローカルフィールドh(i=1~N(ただしi≠k))を、h+Wki・Δxに更新する。
このような各ローカルフィールドh(i=1~N)を計算する処理は、以下の式(4)で表されるように、並列処理が可能である。
Figure 0007071638000004
なお、更新回路13は、上記のような更新処理を行うために、たとえば、現在の変数x(i=1~N)とローカルフィールドhの値を、保持部11aから取得し、重み値Wki,Wliを、算出回路内の記憶部(たとえば、記憶部11c11)から取得する。更新回路13は、セレクタと乗算器と加算器を用いて実現できる。
制御部14は、最適化装置10の外部の制御装置20(たとえば、PC(Personal Computer))との間で情報の送受信を行う。たとえば、制御部14は、制御装置20からイジングモデルを表現する重み値Wijやバイアス係数bを受け、重み値Wijを演算部11の算出回路11c1の記憶部11c11などに記憶する。また、制御部14は、変数x(i=1~N)の初期値(たとえば、全て0)を保持部11aに設定するとともに、変数xの初期値と重み値Wijとバイアス係数bに基づいてローカルフィールドhの初期値を計算し、保持部11aに設定してもよい。また、制御部14は、制御装置20から、アニーリング条件(温度パラメータTの最大値、最小値、温度パラメータTの値の下げ方についての情報など)を受け、アニーリング条件に基づいて、更新ビット選択回路12に温度パラメータTを設定する。制御部14は、アニーリング条件に基づいて、温度パラメータTの値を徐々に小さくしていく。また、制御部14は、温度パラメータTの値を所定回数、小さくした場合(または温度パラメータTが最小値に達した場合)の各ビットの値(変数x(i=1~N))を保持部11aから取得し、解として制御装置20に送信する。
制御部14は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路にて実現できる。なお、制御部14は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサであってもよい。その場合、プロセッサは、図示しないメモリに記憶されたプログラムを実行することで、上記の処理を行う。また、制御部14の機能は、制御装置20に含まれていてもよい。
図2は、更新ビット選択回路の一例を示す図である。
更新ビット選択回路12は、符号反転部12a、オフセット加算部12b、乱数発生回路12c、選択法則適用部12d、乗算器12e、比較部12f、セレクタ12gを有する。
符号反転部12aは、エネルギー変化ΔE,ΔE12,…,ΔEのそれぞれに-1を掛けて符合を反転させる。
オフセット加算部12bは、符号反転部12aの出力値(-ΔE,-ΔE12,…,-ΔE)のそれぞれに、オフセット値を加える。オフセット加算部12bは、後述するセレクタ12gが出力するステータス信号に含まれるフラグが、状態遷移を許容しないことを示すとき(つまり状態遷移が生じないとき)、オフセット値を増加していく。一方、オフセット加算部12bは、フラグが、状態遷移を許容することを示すとき(つまり状態遷移が生じるとき)には、オフセット値を0にする。オフセット値が大きくなると状態遷移が許容されやすくなり、現在の状態が局所解にある場合、その局所解からの脱出が促進される。
乱数発生回路12cは、0以上、1以下の一様乱数rを発生する。
選択法則適用部12dは、シミュレーテッド・アニーリングを行うための選択法則(メトロポリス法またはギブス法)に基づいた値を出力する。
シミュレーテッド・アニーリングが行われる場合、あるエネルギー変化ΔEを引き起こす状態遷移の許容確率A(ΔE,T)を以下の式(5)のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。
Figure 0007071638000005
式(5)においてTは、前述の温度パラメータTである。
式(5)で表される許容確率A(ΔE,T)を用いた場合、十分な反復後に定常状態に達したとすると、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布にしたがう。そして、高い温度から徐々に下げていくとエネルギーの低い状態の占有確率が増加するため、十分温度が下がるとエネルギーの低い状態が得られるはずである。この様子が材料を焼き鈍したときの状態変化とよく似ているため、この方法はシミュレーテッド・アニーリングと呼ばれるのである。このとき、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
許容確率A(ΔE,T)でエネルギー変化ΔEを引き起こす状態遷移を許容することを示すフラグ(=1)を出力する回路は、式(5)の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を出力する回路でよい。
選択法則適用部12dは、入力される一様乱数rを上記のf-1(r)の値に変換する変換テーブルを用いて、f-1(r)の値を出力する。メトロポリス法が適用される場合、f-1(r)は、log(r)である。変換テーブルは、たとえば、RAM(Random Access Memory)、フラッシュメモリなどのメモリに記憶されている。
乗算器12eは、制御部14から供給される温度パラメータTと、f-1(r)との積(T・f-1(r))を出力する。T・f-1(r)は、熱励起エネルギーに相当する。
比較部12fは、エネルギー変化ΔE,ΔE12,…,ΔEのそれぞれについてのオフセット加算部12bによる加算結果と、T・f-1(r)とを比較し、T・f-1(r)より大きい加算結果に対するフラグとして、1を出力する。また、比較部12fは、T・f-1(r)より小さい加算結果に対するフラグとして、0を出力する。
セレクタ12gは、エネルギー変化ΔE,ΔE12,…,ΔEのそれぞれについてのフラグに基づいて、状態遷移が許容された2つのビット(または1つのビット)の識別情報とフラグを含むステータス信号を出力する。このようなセレクタ12gは、N:1セレクタにより実現される。なお、エネルギー変化ΔE,ΔE12,…,ΔEのそれぞれについてのフラグが全て0である場合には、セレクタ12gが出力するステータス信号に含まれるフラグも0である。
図3は、N:1セレクタの一例を示す図である。
:1セレクタであるセレクタ12gは、N個のN:1セレクタ12ga1,12ga2,…,12gaNと、1つのN:1セレクタ12gbを有する。
N:1セレクタ12ga1~12gaNのそれぞれは、N個のフラグを受ける。たとえば、N:1セレクタ12ga1は、エネルギー変化ΔE,ΔE21,…,ΔEN1についてのフラグfg,fg21,…,fgN1を受ける。そして、N:1セレクタ12ga1は、フラグfg~fgN1のうち、値が1であるフラグを優先的に1つ選択し、選択したフラグとそのフラグに対応した識別情報を出力する。つまり、識別情報は、N:1セレクタ12ga1により生成される。このように識別情報を生成するN:1セレクタの例については、たとえば、特許文献2に開示されている。N:1セレクタ12ga2~12gaNについても同様である。
N:1セレクタ12gbは、N:1セレクタ12ga1~12gaNが出力するフラグと識別情報とを受け、値が1であるフラグを優先的に1つ選択する。そして、N:1セレクタ12gbは、選択したフラグfgklとフラグfgklに対応した識別情報(index(k,l))を含むステータス信号(status)を出力する。
以下、第1の実施の形態の最適化装置10の動作例を示す図である。
図4は、第1の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
まず、制御部14は、制御装置20から受けた重み値Wijを演算部11の算出回路11c1の記憶部11c11などに記憶する(ステップS1)。
また、制御部14は、制御装置20から受けたアニーリング条件に基づいて、更新ビット選択回路12に温度パラメータTの初期値を設定する(ステップS2)。
N×Nの算出回路の各々は、自身が担当するエネルギー変化の計算に用いる変数xとローカルフィールドhの値を、保持部11aから読み出す(ステップS3)。
そして、N×Nの算出回路の各々は、前述のように、エネルギー変化ΔEij、またはエネルギー変化ΔEを計算する(ステップS4)。
更新ビット選択回路12は、N×Nの算出回路の各々から、エネルギー変化ΔEij、またはエネルギー変化ΔEを受け、それらの符号を反転させた値に対して、オフセット値を加算する(ステップS5)。
そして、更新ビット選択回路12は、前述の処理により、状態遷移を許容するビットを識別する識別情報(index(k,l))を選択する(ステップS6)。
更新回路13は、更新ビット選択回路12が選択し、出力した識別情報により識別される2つまたは1つのビット(変数x(i=k,l))の値を変化させる。また、更新回路13は、その変化に基づいて、ローカルフィールドh(i=1~N)の値を、前述の処理により更新する(ステップS7)。
更新後の変数xとローカルフィールドhの各値は、保持部11aに書き込まれる(ステップS8)。
制御部14は、ステップS3~S8の更新処理が所定回数N1、繰り返されたか否かを判定する(ステップS9)。更新処理が所定回数N1、繰り返されていない場合には、ステップS3~S8の更新処理が繰り返される。
更新処理が所定回数N1、繰り返された場合、制御部14は、温度パラメータの変更回数(温度変更回数)が、所定回数N2に達したか否かを判定する(ステップS10)。
温度変更回数が所定回数N2に達していない場合、制御部14は、温度パラメータを変更する(温度を下げる)(ステップS11)。所定回数N1,N2、温度パラメータの値の変更の仕方(一度に値をどのくらい小さくするかなど)は、アニーリング条件に基づいて決定される。ステップS11の処理後、ステップS3からの処理が繰り返される。
温度変更回数が所定回数N2に達している場合、制御部14は、そのときの各ビットの値(変数x(i=1~N))を保持部11aから取得して、解(計算結果)として制御装置20に送信(出力)する(ステップS12)。
以上のような第1の実施の形態の最適化装置10によれば、2つのビットの値が順に変化することによるエネルギー変化に基づいて、2つのビットの値の更新の可否を決定するため、ハミング距離が2の近傍状態の探索が可能となる。これにより、温度が低くなるアニーリング終盤のように、変化するビットが得られる確率が小さい状況でも、最適解の探索速度が低下することを抑制できる。また、探索速度の低下を抑制できることにより、上記のように更新処理回数や温度変更回数などが決まっている場合には、それらの回数の範囲内で得られる解の正解率を高めることができる。
また、重み値Wijは、記憶部11c11などとは別のメモリに記憶しておいてもよいが、エネルギー変化ΔEijを算出する回路内の記憶部11c11などに記憶しておくことで、エネルギー変化ΔEijを算出する際のメモリアクセスを減らすことができる。
(第2の実施の形態)
前述のようにN×N個の算出回路のうち、対角部分以外の算出回路は、2つのビットが順に変化するときのエネルギー変化ΔEijを算出する。このエネルギー変化ΔEijを計算する途中に、対角部分以外の算出回路は、まず1つのビットが変化したときのローカルフィールドの値を算出することもできる。i番目のビット(変数x)の値が変化したときの、各ビットについてのローカルフィールドh (i),h (i),…,h (i)の値は、以下の式(6)のように表せる。
Figure 0007071638000006
以下に示す第2の実施の形態の最適化装置のN×N個の算出回路は、上記のローカルフィールドh (i),h (i),…,h (i)(i=1~N)の値を算出する機能を有する。
図5は、第2の実施の形態の最適化装置の一例を示す図である。図5において、図1に示した要素と同じ要素については同一符号が付されている。
第2の実施の形態の最適化装置30は、演算部31と更新回路32が、第1の実施の形態の最適化装置10と異なっている。
最適化装置30において、演算部31のN×N個の算出回路は、ローカルフィールドh (i),h (i),…,h (i)の値を算出し、さらにローカルフィールドh (i),h (i),…,h (i)の値から、エネルギー変化ΔE,ΔE12,…,ΔEを算出する。
N×N個の算出回路のうち、マトリクスの対角部分に配置されている算出回路31a1,31a2,…,31aNは、ローカルフィールドh (1),h (2),…,h (N)の値を出力する。重み値Wii=0であるため、式(6)より、ローカルフィールドh (1),h (2),…,h (N)の値は、算出回路31a1,31a2,…,31aNが保持部11aから読み出した現在のローカルフィールドh,h,…,hの値と同じである。このため、算出回路31a1,31a2,…,31aNは、第1の実施の形態の最適化装置10における算出回路11b1,11b2,…,11bNと同様に、ローカルフィールドhの値と、変数xの値に基づいて、エネルギー変化ΔEを算出する。
なお、最適化装置30が常にハミング距離=2の近傍状態の探索を行う場合には、算出回路31a1~31aNはなくてもよい。
N×N個の算出回路のうち、算出回路31a1~31aN以外(算出回路31b1,31b2,31b3,31b4,31b5,31b6など)は、ローカルフィールドh (i)(i≠j)の値を算出する。
たとえば、算出回路31b1は、保持部11aから読み出した変数xの値に応じて+1または-1となるΔxを、記憶している重み値W12に掛けることで、Δx12を求める。さらに、算出回路31b1は、保持部11aから読み出したローカルフィールドhの値に、Δx12を加算することで、ローカルフィールドh (1)の値を算出する。
また、N×N個の算出回路のうち、算出回路31a1~31aN以外は、ローカルフィールドh (i)(i≠j),h、変数x,xの値から、以下の式(7)により、エネルギー変化ΔEij(i≠j)を算出する。
ΔEij=-Δx-Δx (i) (7)
たとえば、算出回路31b1は、保持部11aから読み出したローカルフィールドhの値に-Δxを掛け、-Δxを求める。さらに、算出回路31b1は、保持部11aから読み出した変数xの値に応じて+1または-1となる-Δxを、算出したローカルフィールドh (1)の値に掛けることで、-Δx (1)を求める。そして、算出回路31b1は、-Δxと-Δx (1)を加算することで、エネルギー変化ΔE12を算出する。
このような算出回路31b1は、セレクタと乗算器と加算器を用いて実現できる。他の算出回路(算出回路31b2~31b6など)についても同様である。
更新回路32は、第1の実施の形態の最適化装置30の更新回路13と同様に、更新ビット選択回路12が出力する識別情報により識別されるビットの値を変化させるとともに、ローカルフィールドh~hの値を更新する。
ただ、更新回路32は、識別情報に基づいて、N×N個の算出回路が算出したローカルフィールドh (i),h (i),…,h (i)(i=1~N)の値の何れかを選択し、選択した値を用いて、ローカルフィールドh~hの値を更新する。
たとえば、更新ビット選択回路12がk番目のビットとl番目のビットを識別する識別情報を出力した場合、更新回路32は、以下のように2つのビットの値を順に変化させるとともに、ローカルフィールドh~hの値を更新する。
k≠lの場合、更新回路32は、k番目のビット(変数x)の値を1-xに変え、l番目のビット(変数x)の値を1-xに変える。また、更新回路32は、ローカルフィールドh(i=1,2,…,N)を、h (k)+Wli・Δxに更新する(Δx=1-2x)。
k=lの場合、更新回路32は、変数xを1-xに変える。そして、更新回路32は、ローカルフィールドhを、h (k)に更新する。
更新回路32は、上記のような更新処理を行う際に、ローカルフィールドh (i),h (i),…,h (i)の値を用いるため、重み値Wkiの読み出しが不要になり、第1の実施の形態の最適化装置10よりも、メモリアクセスを減らすことができる。
第2の実施の形態の最適化装置30による計算処理の流れは、図4に示したような処理の流れとほぼ同様である。ただ、図4のステップS3とステップS4の処理の間に、上記のようなローカルフィールドh (i),h (i),…,h (i)を算出する処理が追加される。
以上のような第2の実施の形態の最適化装置30によれば、第1の実施の形態の最適化装置10と同様の効果が得られるとともに、上記のように、メモリアクセスを減らすことができる。
(第3の実施の形態)
上記の説明では、ハミング距離が2の近傍状態の探索を可能とする最適化装置10,30を説明したが、ハミング距離が3以上の近傍状態の探索を可能とする最適化装置に拡張することもできる。
変数x,x,x,…(i≠j≠k…)の値が順に変化する場合のエネルギー変化ΔEijk…は、以下の式(8)のように表せる。
ΔEijk…=-Δx-Δx (i)-Δx (ij)-… (8)
式(8)においてローカルフィールドh (i),h (ij)は、以下の式(9)により算出できる。
Figure 0007071638000007
なお、h (i)は、h (i)=h+Δxijと表せ、h (ij)は、h (ij)=h+Δxik+Δxjkと表せる。そのため、たとえば、変数x,x,xの値が順に変化したときの(ハミング距離が3の近傍状態の)エネルギー変化は、変化前の変数x,x,xの値と、重み値Wij,Wik,Wjk、ローカルフィールドh,h,hから算出できる。以下、ハミング距離が3の近傍状態のエネルギー変化を算出する演算部の一例を示す。
図6は、ハミング距離が3の近傍状態のエネルギー変化を算出する演算部の一例を示す図である。
演算部40は、各々エネルギー変化ΔE111~ΔENNNの何れかを算出するN個の算出回路を有し、たとえば、図6に示されているように、N個の算出回路は、3次元アレイ状に配置されている。
N個の算出回路群41a1,41a2,…,41aNのうち、算出回路群41a1は、変数x,x,xの値が順に変化したときのエネルギー変化ΔEij1をそれぞれ算出するN×N個の算出回路(算出回路41b1,41b2,41b3など)を有する。N×N個の算出回路には、最後に変化する変数xとローカルフィールドhの組のほか、1番目に変化する変数xとローカルフィールドhの組と、2番目に変化する変数xとローカルフィールドhの組が、図1に示したような保持部11aから読み出される。
たとえば、算出回路41b3は、変数x,x,xと、ローカルフィールドh,h,hの値を用いてエネルギー変化ΔE351を算出する。式(8)より、ΔE351=-Δx-Δx (3)-Δx (35)と表せ、h (3)は、h (3)=h+Δx35と表せ、h (35)は、h (35)=h+Δx31+Δx51と表せる。したがって、算出回路41b3は、重み値W31,W35,W51を保持しておけば、変数x,x,xと、ローカルフィールドh,h,hの値から、エネルギー変化ΔE351を算出することができる。
他の算出回路群41a2~41aNについてもそれぞれN×N個の算出回路を有し、エネルギー変化ΔEij2~ΔEijNを算出する。
なお、エネルギー変化ΔEijk(i=j=k)は、1つの変数xが1回だけ変化したときのエネルギー変化ΔEと同じであるため、エネルギー変化ΔEijk(i=j=k)を算出する算出回路は、エネルギー変化ΔE=-Δxを算出する回路でよい。たとえば、エネルギー変化ΔE111を算出する算出回路41b1は、ΔE=-Δxを算出する回路でよい。
また、エネルギー変化ΔEijk(i=j≠kまたはi≠j=k)は、1つの変数xが1回だけ変化したときのエネルギー変化ΔEと同じである。ハミング距離が1の近傍状態のエネルギー変化ΔEを算出する回路を既に設けている場合、エネルギー変化ΔEijk(i=j≠kまたはi≠j=k)を算出する算出回路の代りに、ハミング距離が2の近傍状態のエネルギー変化を算出する回路を設けてもよい。たとえば、エネルギー変化ΔE211を算出する算出回路41b2は、ΔE21=-Δx-Δx-Δx・Δx・W21を算出する回路でよい。
第3の実施の形態の最適化装置では、前述の更新ビット選択回路12の代りに、Nのエネルギー変化ΔEijk~ΔEijkと熱励起エネルギーとの大小関係に基づいて、更新を許容する3つのビットの識別情報を出力する更新ビット選択回路が用いられる。その更新ビット選択回路に含まれるセレクタとして、たとえば、以下のようなN:1セレクタが用いられる。
図7は、第3の実施の形態の最適化装置におけるN:1セレクタの一例を示す図である。
:1セレクタ50は、エネルギー変化ΔE111~ΔENNNのそれぞれを引き起こす状態遷移を許容するか否かを示すN個のフラグfg111~fgNNNのうち、値が1であるフラグを優先的に1つ選択する。そして、N:1セレクタ50は、選択したフラグfgijkと、フラグfgijkに対応した識別情報(index(i,j,k))を含むステータス信号(status)を出力する。
:1セレクタ50は、セレクタ群51a1,51a2,…,51aNとN:1セレクタ52を有する。
セレクタ群51a1~51aNのそれぞれは、N×Nのフラグのうち、値が1であるフラグを優先的に1つ選択し、選択したフラグとそのフラグに対応した識別情報を出力する。たとえば、セレクタ群51a1は、N:1セレクタ51b1,51b2,…,51bN,51cNを有する。
N:1セレクタ51b1~51bNのそれぞれは、N個のフラグのうち、値が1であるフラグを優先的に1つ選択し、選択したフラグとそのフラグに対応した識別情報を出力する。たとえば、N:1セレクタ51b1は、エネルギー変化ΔEi11(i=1~N)についてのフラグfgi11(i=1~N)のうち、値が1であるフラグを優先的に1つ選択し、選択したフラグとそのフラグに対応した識別情報を出力する。なお、フラグfgi11が全て0の場合には、出力されるフラグも0となる。
N:1セレクタ51cNは、N:1セレクタ51b1~51bNが出力したフラグのうち、値が1であるフラグを優先的に1つ選択し、選択したフラグとそのフラグに対応した識別情報を出力する。なお、N:1セレクタ51b1~51bNが出力したフラグが全て0である場合、出力されるフラグも0となる。
他のセレクタ群51a2~51aNもセレクタ群51a1と同様の構成である。
N:1セレクタ52は、セレクタ群51a1~51aNのそれぞれが出力するフラグのうち、値が1であるフラグを優先的に1つ選択し、選択したフラグfgijkとフラグfgijkに対応した識別情報(index(i,j,k))を含むステータス信号(status)を出力する。
図示を省略するが、第3の実施の形態の最適化装置における更新回路は、フラグfgijkが1の場合には、識別情報(index(i,j,k))により識別される変数x,x,xの値を変化させる。また、更新回路は、その変化に基づいて、ローカルフィールドh~hの値を更新する。
上記のような演算部40や、N:1セレクタ50を用いることで、ハミング距離が3の近傍状態の探索を可能とする最適化装置を実現することができる。説明を省略するが、上記と同様の拡張により、ハミング距離n=4以上の近傍状態の探索を可能とする最適化装置も実現できる。
なお、N(第3の実施の形態の最適化装置ではn=3)の算出回路は、順に変化するn個のビットのうち、n-1個のビットが順に変化するときのローカルフィールドの値を算出してもよい。
たとえば、第3の実施の形態の最適化装置のN個の算出回路は、式(9)で表される、ローカルフィールドh (ij),h (ij),…,h (ij)の値、すなわち、2つのビットが順に変化するときのローカルフィールドの値を算出してもよい。第2の実施の形態の最適化装置30の更新回路32と同様に、第3の実施の形態の最適化装置における更新回路(図示略)でも、ローカルフィールドh~hを更新する際にローカルフィールドh (ij)~h (ij)を用いることで、メモリアクセスを減らせる。
(第4の実施の形態)
図8は、第4の実施の形態の最適化装置の一例を示す図である。
第4の実施の形態の最適化装置60において、制御部61は、第1の実施の形態の制御部14と同様の機能を有するとともに、ハミング距離が2の近傍状態の探索機能をオンするかオフするか切り替える機能を有する。
たとえば、制御部61は、図8に示されているように、カウンタ61a、比較回路61b、クロックカウンタ61cを有する。
カウンタ61aは、更新ビット選択回路12が出力するフラグfgが1になる回数(更新回数)をカウントする。
比較回路61bは、カウンタ61aのカウント値が、制御装置20から供給される所定の閾値th以上の場合、ハミング距離が2の近傍状態の探索機能をオフする制御信号cntを演算部11に供給する。カウンタ61aのカウント値が、制御装置20から供給される所定の閾値thより小さい場合、ハミング距離が2の近傍状態の探索機能をオンする制御信号cntを演算部11に供給する。
クロックカウンタ61cは、クロック信号(図示略)をカウントし、所定カウント数ごとに、比較回路61bをイネーブル状態にするとともに、カウンタ61aのカウント値をリセットする。
つまり、制御部61は、所定期間におけるビットの更新回数が、閾値th以上である場合に、ハミング距離が2の近傍状態の探索機能をオフする。
制御信号cntは、たとえば、演算部11のN×N個の算出回路のうち、対角部分の算出回路11b1~11bN以外に供給される。そして、制御信号cntが、ハミング距離が2の近傍状態の探索機能をオフすることを指示するものである場合、エネルギー変化ΔEijを算出する機能が無効になる。この場合、ハミング距離が2の近傍状態の探索が行われず、ハミング距離が1の近傍状態の探索が行われる。
更新頻度が高い場合、ハミング距離が2の近傍状態の探索を行わなくても探索速度は悪化しない。そのため、上記のように、所定期間における更新回数が、閾値th以上の場合には、ハミング距離が2の近傍状態の探索機能をオフすることで、最適化装置60の消費電力を下げることが可能になる。
図9は、第4の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
ステップS20~S27の処理は、図4に示したステップS1~S8の処理と同じである。図9の例では、ステップS28の処理において、制御部61は、上記のような、ハミング距離が2の近傍状態の探索機能をオンするかオフするか切り替える処理を行う。なお、ステップS28の処理は、前述のように比較回路61bがイネーブル状態になると行われる処理であり、各繰り返し処理において毎回行われるわけではない。
ハミング距離が2の近傍状態の探索機能がオフする場合には、次回のステップS23の処理では、ΔEijの計算は行われない。
ステップS29~S32の処理は、図4に示したステップS9~S12の処理と同じである。
以上のような、第4の実施の形態の最適化装置60によれば、第1の実施の形態の最適化装置10と同様の効果が得られるとともに、上記のように所定期間における更新回数が、閾値th以上の場合には、消費電力を下げることが可能となる。
なお、上記のようなハミング距離が2の近傍状態の探索機能をオンするかオフするか切り替える機能を有する制御部61を、第2の実施の形態の最適化装置30に適用することも可能である。また、第3の実施の形態の最適化装置における図示しない制御部に、ハミング距離が3の近傍状態の探索機能をオンするかオフするか切り替える機能を持たせることも可能である。
ところで、上記の第1乃至第4の実施の形態の最適化装置(最適化装置10,30,60など)において制御部14,61は、前述のようにASICやFPGAなどの特定用途の電子回路、またはプロセッサであってもよいし、制御装置20に含まれていてもよい。
制御部14,61がPCなどの制御装置20に含まれる場合、制御部14,61の機能は、制御装置20内のプロセッサが制御プログラムを実行することで実現される。
図10は、制御装置のハードウェア例を示す図である。
制御装置70は、CPU71、RAM72、HDD(Hard Disk Drive)73、画像信号処理部74、入力信号処理部75、媒体リーダ76、通信インタフェース77及びインタフェース78を有する。上記ユニットは、バスに接続されている。
CPU71は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU71は、HDD73に記憶されたプログラム(たとえば、前述の制御プログラム)やデータの少なくとも一部をRAM72にロードし、プログラムを実行する。なお、CPU71は複数のプロセッサコアを備えてもよく、制御装置70は複数のプロセッサを備えてもよく、前述の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。
RAM72は、CPU71が実行するプログラムやCPU71が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、制御装置70は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD73は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、前述の制御部14,61の動作を制御装置70に実行させる制御プログラムが含まれる。なお、制御装置70は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部74は、CPU71からの命令にしたがって、制御装置70に接続されたディスプレイ74aに画像(たとえば、最適化問題の計算結果を表す画像)を出力する。ディスプレイ74aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部75は制御装置70に接続された入力デバイス75aから入力信号を取得し、CPU71に出力する。入力デバイス75aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、制御装置70に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ76は、記録媒体76aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体76aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ76は、たとえば、記録媒体76aから読み取ったプログラムやデータを、RAM72やHDD73などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU71によって実行される。なお、記録媒体76aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体76aやHDD73を、コンピュータ読み取り可能な記録媒体ということがある。
通信インタフェース77は、ネットワーク77aに接続され、ネットワーク77aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース77は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
インタフェース78は、最適化装置78aと通信を行うインタフェースである。前述の制御部14,61の機能を、制御装置70が行う場合、最適化装置78aは、たとえば、図1や図9に示した最適化装置10,60から、制御部14,61を除いた装置である。
図11は、制御装置による最適化装置の制御方法の流れを示すフローチャートである。
制御装置70は、重み値の設定を行う(ステップS40)。ステップS40の処理では、制御装置70は、最適化装置78aに重み値を送信し、図1に示した演算部11の対角部分以外の算出回路に、重み値を記憶させる。
また、制御装置70は、最適化装置78aに温度パラメータTの初期値を送信する(ステップS41)。
その後、制御装置70は、たとえば、最適化装置78aが前述の更新処理を行うたびに送信する信号を受信し、更新処理が所定回数N1、繰り返されたか否かを判定する(ステップS42)。更新処理が所定回数N1、繰り返されていない場合には、ステップS42の処理が繰り返される。
更新処理が所定回数N1、繰り返された場合、制御装置70は、温度パラメータTの変更回数(温度変更回数)が、所定回数N2に達したか否かを判定する(ステップS43)。
温度変更回数が所定回数N2に達していない場合、制御装置70は、温度パラメータTを変更する(温度を下げる)(ステップS44)。ステップS44の処理では、制御装置70は、前回送信した値よりも小さい温度パラメータTの値を、最適化装置78aに送信する。所定回数N1,N2、温度パラメータの値の変更の仕方(一度に値をどのくらい小さくするかなど)は、アニーリング条件に基づいて決定される。ステップS44の処理後、ステップS42からの処理が繰り返される。
温度変更回数が所定回数N2に達している場合、制御装置70は、そのときの各ビットの値(変数x(i=1~N))を最適化問題の計算結果として最適化装置78aから受信する(ステップS45)。
その後、制御装置70は、受信した計算結果を、たとえば、図10に示したディスプレイ74aに表示し(ステップS46)、最適化装置78aの制御を終える。
なお、前述のように、上記の制御装置70の処理内容は、コンピュータにプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体76a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVDおよびDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD53)にプログラムをコピーして実行してもよい。
以上、実施の形態に基づき、本発明の最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化装置
11 演算部
11a 保持部
11b1~11bN,11c1~11c6 算出回路
11c11 記憶部
12 更新ビット選択回路
13 更新回路
14 制御部
20 制御装置
~h ローカルフィールド
T 温度パラメータ
12,W1N,W21,W2N,WN1,WN2 重み値
~x 変数
ΔE,ΔE12~ΔE エネルギー変化

Claims (9)

  1. 計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビットのうち、n(nは2以上の整数)個のビットの各々についての第1のローカルフィールド値と、前記n個のビットの各々の値と、前記n個のビットの間の相互作用の大きさを示す重み値と、に基づいて、前記n個のビットの値が変化することによる前記イジングモデルの第1のエネルギー変化を、それぞれ算出する複数の第1の算出回路と、
    入力される温度パラメータと、乱数とに基づいて決定される熱励起エネルギーと、前記複数の第1の算出回路がそれぞれ出力する前記第1のエネルギー変化との大小関係に基づいて、更新を許容する前記n個のビットを選択し、選択した前記n個のビットの第1の識別情報を出力する更新ビット選択回路と、
    前記更新ビット選択回路が出力する前記第1の識別情報により識別される前記n個のビットの値を変化させるとともに、前記n個のビットの値の変化に基づいて、前記第1のローカルフィールド値を含む前記複数のビットの各々についての第2のローカルフィールド値を更新する更新回路と、
    を有する最適化装置。
  2. 前記複数の第1の算出回路のそれぞれは、前記重み値を記憶する記憶部を備えている、請求項1に記載の最適化装置。
  3. 前記複数のビットのうち、1つのビットについての第3のローカルフィールド値と、前記1つのビットの値と、前記1つのビットの値が変化するときの前記イジングモデルの第2のエネルギー変化を、それぞれ算出する複数の第2の算出回路を、有し、
    前記更新ビット選択回路は、前記複数の第1の算出回路がそれぞれ出力する前記第1のエネルギー変化と、前記複数の第2の算出回路がそれぞれ出力する前記第2のエネルギー変化と、前記熱励起エネルギーとの大小関係に基づいて、更新を許容する前記n個のビットまたは前記1つのビットを選択し、選択した前記n個のビットの前記第1の識別情報または前記1つのビットの第2の識別情報を出力し、
    前記更新回路は、前記第1の識別情報または前記第2の識別情報により識別される前記n個のビットまたは前記1つのビットの値を変化させるとともに、前記n個のビットまたは前記1つのビットの値の変化に基づいて、前記第1のローカルフィールド値または前記第3のローカルフィールド値を含む前記複数のビットの各々についての前記第2のローカルフィールド値を更新する、請求項1または2に記載の最適化装置。
  4. 所定期間における前記n個のビットの更新回数が閾値以上である場合、前記複数の第1の算出回路の機能をオフにする制御部を有する、請求項3に記載の最適化装置。
  5. 前記複数の第1の算出回路は、前記n個のビットの値が順に変化することによる前記イジングモデルの前記第1のエネルギー変化をそれぞれ算出し、
    前記更新回路は、前記更新ビット選択回路が出力する前記第1の識別情報により識別される前記n個のビットの値を順に変化させるとともに、順に変化した前記n個のビットの値の変化に基づいて、前記第1のローカルフィールド値を含む前記複数のビットの各々についての前記第2のローカルフィールド値を更新する、請求項1乃至4の何れか一項に記載の最適化装置。
  6. 前記複数の第1の算出回路は、前記n個のビットのうち、n-1個のビットが変化することによって得られる前記第1のローカルフィールド値の更新後の値をそれぞれ算出し、
    前記更新回路は、前記第1の識別情報に基づいて、前記複数の第1の算出回路がそれぞれ算出した前記更新後の値の何れかを選択し、選択した前記更新後の値を用いて前記第2のローカルフィールド値を更新する、
    請求項1乃至4の何れか一項に記載の最適化装置。
  7. 前記複数の第1の算出回路は、前記n個のビットのうち、n-1個のビットが順に変化することによって得られる前記第1のローカルフィールド値の更新後の値をそれぞれ算出する、
    請求項6に記載の最適化装置。
  8. 計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビットのうち、n(nは2以上の整数)個のビットの各々についての第1のローカルフィールド値と、前記n個のビットの各々の値と、前記n個のビットの間の相互作用の大きさを示す重み値と、に基づいて、前記n個のビットの値が変化することによる前記イジングモデルの第1のエネルギー変化を、それぞれ算出する複数の第1の算出回路と、
    入力される温度パラメータと、乱数とに基づいて決定される熱励起エネルギーと、前記複数の第1の算出回路がそれぞれ出力する前記第1のエネルギー変化との大小関係に基づいて、更新を許容する前記n個のビットを選択し、選択した前記n個のビットの第1の識別情報を出力する更新ビット選択回路と、
    前記更新ビット選択回路が出力する前記第1の識別情報により識別される前記n個のビットの値を変化させるとともに、前記n個のビットの値の変化に基づいて、前記第1のローカルフィールド値を含む前記複数のビットの各々についての第2のローカルフィールド値を更新する更新回路と、
    を有する最適化装置に対して、
    制御装置が、前記重み値を設定し、
    前記制御装置が、前記温度パラメータの大きさを制御する、
    最適化装置の制御方法。
  9. 計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビットのうち、n(nは2以上の整数)個のビットの各々についての第1のローカルフィールド値と、前記n個のビットの各々の値と、前記n個のビットの間の相互作用の大きさを示す重み値と、に基づいて、前記n個のビットの値が変化することによる前記イジングモデルの第1のエネルギー変化を、それぞれ算出する複数の第1の算出回路と、
    入力される温度パラメータと、乱数とに基づいて決定される熱励起エネルギーと、前記複数の第1の算出回路がそれぞれ出力する前記第1のエネルギー変化との大小関係に基づいて、更新を許容する前記n個のビットを選択し、選択した前記n個のビットの第1の識別情報を出力する更新ビット選択回路と、
    前記更新ビット選択回路が出力する前記第1の識別情報により識別される前記n個のビットの値を変化させるとともに、前記n個のビットの値の変化に基づいて、前記第1のローカルフィールド値を含む前記複数のビットの各々についての第2のローカルフィールド値を更新する更新回路と、
    を有する最適化装置に対して、
    前記重み値を設定し、
    前記温度パラメータの大きさを制御する、
    処理をコンピュータに実行させる最適化装置の制御プログラム。
JP2018143479A 2018-07-31 2018-07-31 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム Active JP7071638B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018143479A JP7071638B2 (ja) 2018-07-31 2018-07-31 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US16/513,785 US11475099B2 (en) 2018-07-31 2019-07-17 Optimization apparatus and method for controlling thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018143479A JP7071638B2 (ja) 2018-07-31 2018-07-31 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2020021209A JP2020021209A (ja) 2020-02-06
JP7071638B2 true JP7071638B2 (ja) 2022-05-19

Family

ID=69229703

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018143479A Active JP7071638B2 (ja) 2018-07-31 2018-07-31 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム

Country Status (2)

Country Link
US (1) US11475099B2 (ja)
JP (1) JP7071638B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7093009B2 (ja) * 2018-08-30 2022-06-29 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
EP3852025A4 (en) * 2018-09-14 2021-10-06 Fujitsu Limited OPTIMIZATION DEVICE AND CONTROL METHOD FOR OPTIMIZATION DEVICE
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7137064B2 (ja) * 2018-10-19 2022-09-14 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7417074B2 (ja) * 2020-02-19 2024-01-18 富士通株式会社 最適化装置、最適化方法及び最適化装置の制御プログラム
JP7410395B2 (ja) * 2020-03-26 2024-01-10 富士通株式会社 最適化装置及び最適化方法
US11562211B2 (en) * 2020-04-15 2023-01-24 Fujitsu Limited System local field matrix updates
JP2021174313A (ja) * 2020-04-27 2021-11-01 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP2023179912A (ja) 2022-06-08 2023-12-20 富士通株式会社 情報処理装置、情報処理方法およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015132883A1 (ja) 2014-03-04 2015-09-11 株式会社日立製作所 半導体装置および情報処理装置
JP2018041351A (ja) 2016-09-09 2018-03-15 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6659957B2 (ja) 2016-06-06 2020-03-04 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6979331B2 (ja) * 2017-10-30 2021-12-15 株式会社日立製作所 情報処理装置および情報処理方法
JP7100257B2 (ja) * 2018-10-04 2022-07-13 富士通株式会社 最適化装置及び最適化装置の制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015132883A1 (ja) 2014-03-04 2015-09-11 株式会社日立製作所 半導体装置および情報処理装置
JP2018041351A (ja) 2016-09-09 2018-03-15 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
US20180075342A1 (en) 2016-09-09 2018-03-15 Fujitsu Limited Information processing apparatus, ising unit, and information processing apparatus control method

Also Published As

Publication number Publication date
US20200042570A1 (en) 2020-02-06
US11475099B2 (en) 2022-10-18
JP2020021209A (ja) 2020-02-06

Similar Documents

Publication Publication Date Title
JP7071638B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7093009B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7100254B2 (ja) 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
JP7248907B2 (ja) 最適化装置および最適化装置の制御方法
US20210065087A1 (en) Information processing apparatus, combination optimization method, and computer-readable recording medium recording combination optimization program
JP7417074B2 (ja) 最適化装置、最適化方法及び最適化装置の制御プログラム
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP7111966B2 (ja) 最適化装置及び最適化装置の制御方法
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
He et al. The combination stretching function technique with simulated annealing algorithm for global optimization
JP2021131723A (ja) 情報処理方法、情報処理装置及びプログラム
US20220414184A1 (en) Data processing apparatus and data processing method
JP2020129209A (ja) 最適化方法、最適化プログラム、推論方法、および推論プログラム
US20240135151A1 (en) Data processing device, data processing method, and computer-readable recording medium storing data processing program
EP4361898A2 (en) Data processing device, data processing method, and data processing program
US20220405347A1 (en) Data processing apparatus, computer-readable recording medium storing program of processing data, and method of processing data
EP4068167A1 (en) Optimization program, optimization method, and optimization apparatus
Desai Optimization of Measurement Scheme for Neutral Atom Quantum Computers
JP2023024085A (ja) プログラム、データ処理方法及びデータ処理装置
JP2023028347A (ja) プログラム、データ処理方法及びデータ処理装置
JP2022165250A (ja) プログラム、データ処理方法及びデータ処理装置
JP2024049202A (ja) データ処理装置、プログラム及びデータ処理方法
JP2024030713A (ja) 温度調整プログラム、データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210408

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210413

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220323

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220418

R150 Certificate of patent or registration of utility model

Ref document number: 7071638

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150