[go: up one dir, main page]

JP7137064B2 - 最適化装置及び最適化装置の制御方法 - Google Patents

最適化装置及び最適化装置の制御方法 Download PDF

Info

Publication number
JP7137064B2
JP7137064B2 JP2018197198A JP2018197198A JP7137064B2 JP 7137064 B2 JP7137064 B2 JP 7137064B2 JP 2018197198 A JP2018197198 A JP 2018197198A JP 2018197198 A JP2018197198 A JP 2018197198A JP 7137064 B2 JP7137064 B2 JP 7137064B2
Authority
JP
Japan
Prior art keywords
value
bits
bit
identification information
calculation
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
JP2018197198A
Other languages
English (en)
Other versions
JP2020064535A (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 JP2018197198A priority Critical patent/JP7137064B2/ja
Priority to EP19202171.5A priority patent/EP3640859A1/en
Priority to US16/597,942 priority patent/US11475346B2/en
Priority to CN201910983160.5A priority patent/CN111077768B/zh
Publication of JP2020064535A publication Critical patent/JP2020064535A/ja
Application granted granted Critical
Publication of JP7137064B2 publication Critical patent/JP7137064B2/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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • 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)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Automation & Control Theory (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、最適化装置及び最適化装置の制御方法に関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
最適化装置は、たとえば、ニューラルネットワークを用いてモデル化することもできる。その場合、イジングモデルに含まれる複数のスピンに対応した複数のビットのそれぞれが、他のビットの値と、他のビットと自身のビットとの相互作用の大きさを示す重み値(結合係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、シミュレーテッド・アニーリングなどの確率的探索法により、上記のようなエネルギー関数(コスト関数、目的関数とも呼ばれる)の値(以下エネルギーという)の最小値が得られる状態(各ビットの値の組み合わせ)を、解として求める。
従来、デジタル回路を用いてシミュレーテッド・アニーリングを行うことでエネルギーが最小となる状態を計算する最適化装置がある(たとえば、特許文献1参照)。従来の最適化装置は、一度に1つのビットの値だけ変化するとしてエネルギー変化を計算し、そのエネルギー変化に対して温度に対応するノイズ値を加えた値に応じてビットの変化を許容するか否かを決定する。エネルギーが増加するビットの値の変化も所定の確率で許容され、温度が低くなるにつれてその確率は低くなる。
ところで、最適化問題には、全ビットの中で値が1になるビットの数をk(>1)個とする制約(k-hot制約)をもつものがある。たとえば、多くのパーティショニング問題(グラフ分割問題など、与えられたN個の選択肢から最適なk個を選ぶ、という問題)、交通量最適化問題などは、k-hot制約をもつ。
特開2018-041351号公報 特開2016-103282号公報 特開平10-247186号公報 特開平8-50572号公報
上記のように、従来の最適化装置では一度に変化するビットの数は1つである。つまり、従来の最適化装置は、ハミング距離=1の状態遷移を繰り返しながらエネルギーが最小となる基底状態の探索を行う。そのため、従来の最適化装置では、k-hot制約を満たさない状態への遷移も発生し、遷移が起こりうる状態の数(探索空間)がk-hot制約を満たす状態の数よりも大きい。また、k-hot制約項のために生じるエネルギー障壁のために状態遷移に時間がかかる。以上のことから、従来の最適化装置では、k-hot制約をもつ最適化問題の計算(基底状態の探索)に時間がかかるという問題がある。
1つの側面では、本発明は、k-hot制約をもつ最適化問題の計算時間を短縮可能な最適化装置及び最適化装置の制御方法を提供することを目的とする。
1つの実施態様では、計算対象の問題を変換したイジングモデルに含まれるN個(N>2)のスピンに対応するN個のビットのうち、値が1であるk個(k>1)の第1のビットの何れかについての第1のローカルフィールド値と、生成した第1の乱数に基づいて選択した値が0である第2のビットについての第2のローカルフィールド値と、第1の記憶部に保持される前記k個の第1のビットの何れかと前記第2のビットとの間の相互作用の大きさを示す第1の重み値とに基づいて、前記k個の第1のビットの何れかの値と前記第2のビットの値とがそれぞれ変化することによる前記イジングモデルの第1のエネルギー変化をそれぞれ算出するk個の第1の算出回路と、前記N個のビットのうち、値が0である(N-k)個の第3のビットの何れかについての第3のローカルフィールド値と、生成した第2の乱数に基づいて選択した値が1である第4のビットについての第4のローカルフィールド値と、第2の記憶部に保持される前記(N-k)個の第3のビットと前記第4のビットとの間の相互作用の大きさを示す第2の重み値とに基づいて、前記(N-k)個の第3のビットの何れかの値と前記第4のビットの値とがそれぞれ変化することによる前記イジングモデルの第2のエネルギー変化をそれぞれ算出する(N-k)個の第2の算出回路と、入力される温度パラメータと、乱数とに基づいて決定される熱励起エネルギーと、前記k個の第1の算出回路がそれぞれ出力する前記第1のエネルギー変化と、前記(N-k)個の第2の算出回路がそれぞれ出力する前記第2のエネルギー変化とのそれぞれの大小関係に基づいて、値の更新を許容するビットを識別する第1のビット識別情報を出力する選択回路と、前記第1のビット識別情報に対応するビットの値に基づいて、前記第2のビットを識別する第2のビット識別情報、または、前記第4のビットを識別する第3のビット識別情報の何れかを出力する識別情報計算部と、前記第1のビット識別情報、及び、前記識別情報計算部が出力する前記第2のビット識別情報、または、前記第3のビット識別情報に基づいて、前記第1のビット識別情報に対応するビットの値、及び、前記第2のビット識別情報に対応するビットの値、または、前記第3のビット識別情報に対応するビットの値をそれぞれ更新する更新部と、を有する最適化装置が提供される。
また、1つの実施態様では、最適化装置の制御方法が提供される。
1つの側面では、k-hot制約をもつ最適化問題の計算時間を短縮できる。
第1の実施の形態の最適化装置の一例を示す図である。 第2の実施の形態の最適化装置の一例を示す図である。 ΔE算出部の一例を示す図である。 h伝搬制御部の一例を示す図である。 h伝搬制御部の他の例を示す図である。 選択回路の一例を示す図である。 識別情報計算部の一例を示す図である。 第2の実施の形態の最適化装置の一例の処理の流れを示すフローチャートである。 第2の実施の形態の最適化装置を用いた場合の計算短縮効果を表すシミュレーション結果を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
以下に示す最適化装置は、k-hot制約を満たす状態以外の状態の探索を除外することで、k-hot制約をもつ最適化問題の計算時間を短縮するものである。
計算対象の問題を変換したイジングモデルに含まれる複数のスピン(スピン数=N(N>2))に対応するN個のビットの値を、状態変数であるx~xで表す場合、値が1になる状態変数の数がk(>1)個であるときにk-hot制約が満たされる。
たとえば、説明を簡略化するためにN=3、k=2とした場合、(x,x,x)=(0,1,1),(1,0,1),(1,1,0)という状態は、2-hot制約を満たす。一方、(x,x,x)=(0,0,0),(0,0,1),(0,1,0),(1,0,0),(1,1,1)という状態は、2-hot制約を満たさない。
k-hot制約を満たすある状態から、k-hot制約を満たす別の状態に遷移させるためには、最適化装置は、1回の状態更新処理において値が1のビットと値が0のビットをそれぞれ1つずつ変化させることになる。つまり、最適化装置は、ハミング距離=2の状態遷移を発生させることになる。
k-hot制約は、以下の式(1)で表すことができる。
Figure 0007137064000001
は、インデックス(ビット識別情報)=iに対応するビットの値を表す状態変数である。
k-hot制約を考慮した最適化問題のエネルギー関数は、以下の式(2)のように表すことができる。
Figure 0007137064000002
式(2)において、右辺の1項目はコスト関数、2項目はk-hot制約を考慮したk-hot制約項、3項目以降はその他の制約を考慮した制約項を表す。k-hot制約が満たされない場合に、エネルギーが小さくなる、ということが起きないように、λ(制約重み)として十分大きな値が用いられることになる。
一方、重み値を用いたイジング型のエネルギー関数E(x)は、たとえば、以下の式(3)で定義される。
Figure 0007137064000003
右辺の1項目は、イジングモデルに含まれる全ビットから選択可能な2つのビットの全組み合わせについて、漏れと重複なく、2つのビットの値(0または1)と重み値との積を積算したものである。xは、インデックス=jに対応するビットの値を表す状態変数であり、Wijは、インデックス=i,jに対応するビットの相互作用の大きさを示す重み値である。なお、Wii=0である。また、Wij=Wjiであることが多い(つまり、重み値による係数行列は対称行列である場合が多い)。
右辺の2項目は、全ビットのそれぞれのバイアス値とビットの値との積の総和を求めたものである。bは、インデックス=iに対応するビットのバイアス値を示している。
k-hot制約を満たす状態以外についても探索が行われる場合、式(3)のWijを表現するためのビット数は、式(2)のλの値が大きいほど大きくなる。λは、たとえば、上記のN(問題のサイズに相当する)や、Wijとのバランスをみて決定される。たとえば、最初はWijの最大値の10倍程度のλを用いてWijやbが計算され、エネルギーの最小化が行われる。収束解がk-hot制約を満たしていなければ、k-hot制約を満たすようになるまで、λの値が増加される。
一方、k-hot制約を満たす状態のみの探索が行われる場合、式(2)の右辺の2項目のk-hot制約項をなくせるため、Wijを表現するためのビット数を少なくできる。
ところで、式(3)において、xの値が変化して1-xとなると、xの増加分は、Δx=(1-x)-x=1-2xと表せる。この値の変化に伴うエネルギー変化(ΔE)は、以下の式(4)で表される。
Figure 0007137064000004
式(4)において、xが1から0に変化するとき、Δxは-1となり、xが0から1に変化するとき、Δxは1となる。なお、hはローカルフィールド値(局所場)と呼ばれ、Δxに応じてhに符号(+1または-1)を乗じたものがΔEである。
が0から1に変化するときのhの変化分は、Δh (j)=+Wij、xが1から0に変化するときのhの変化分は、Δh (j)=-Wijである。同様に、xが変化したときのインデックス=jに対応するビットについてのhの変化分は、Δh (i)=Δxij、と表せる。
したがって、x,xが両方変化したときのエネルギー変化は、以下の式(5)で表せる。
Figure 0007137064000005
前述のように、k-hot制約を満たすある状態から、k-hot制約を満たす別の状態に遷移するには、値が1のビットと値が0のビットをそれぞれ1つずつ変化させることになる。インデックス=iに対応するビットの値が1から0に変化するとともにインデックス=jに対応するビットの値が0から1に変化する場合のエネルギー変化をΔEと表記すると、Δx=-1、Δx=1であるため、式(5)からΔEは以下の式(6)で表せる。
Figure 0007137064000006
以下に示す最適化装置は、式(6)で表されるエネルギー変化の計算を行う回路を含む。
(第1の実施の形態)
図1は、第1の実施の形態の最適化装置の一例を示す図である。
最適化装置10は、N個のΔE算出回路(たとえば、図1のΔE算出回路11i,11j,11Nを含む)、選択回路12、識別情報計算部13、更新部14、乱数生成回路15a,15bを有する。
N個のΔE算出回路のうち、k個(k>1)のΔE算出回路(図1の例ではΔE算出回路11i,11Nなど)は、以下のような処理を行う。
k個のΔE算出回路のそれぞれには、N個のビットのうち、値が1であるk個のビットの何れかについてのローカルフィールド値(たとえば、h,h)が供給される。さらにk個のΔE算出回路のそれぞれには、生成した乱数(n)に基づいて選択した値が0であるビット(インデックス=nに対応するビット)についてのローカルフィールド値(h)が供給される。なお、図1では、ローカルフィールド値を計算する回路や、ローカルフィールド値のΔE算出回路への伝搬制御を行う回路などについては、図示が省略されている。
また、k個のΔE算出回路のそれぞれは、k個のビットの何れかと、インデックス=nに対応するビットとの間の相互作用の大きさを示す重み値を記憶する記憶部(たとえば、記憶部11ia,11Na)を有する。そして、k個のΔE算出回路のそれぞれは、供給される2つのローカルフィールド値と重み値とに基づいて、k個のビットの何れかと、インデックス=nに対応するビットの値がそれぞれ変化することによるイジングモデルのエネルギー変化を算出する。
たとえば、k個のΔE算出回路のうちの1つであるΔE算出回路11iには、値が1であるインデックス=iに対応するビットについてのhと、hが供給される。また、ΔE算出回路11iの記憶部11iaは、Wniを記憶する。そして、ΔE算出回路11iは、h,h,Wniに基づいて、インデックス=iに対応するビットと、インデックス=nに対応するビットとがそれぞれ変化することによるエネルギー変化(ΔE)を算出する。ΔEは、式(6)において、h=h、Wij=Wni(ただし、Wni=Win)の場合であるから、ΔE=h-h+Wniと表せる。
同様に、k個のΔE算出回路のうちの1つであるΔE算出回路11Nには、値が1であるインデックス=Nに対応するビットについてのhと、hが供給される。また、ΔE算出回路11Nの記憶部11Naは、WnNを記憶する。そして、ΔE算出回路11Nは、h、h、WnNに基づいて、インデックス=Nに対応するビットと、インデックス=nに対応するビットとがそれぞれ変化することによるエネルギー変化(ΔE)を算出する。ΔEは、式(6)において、h=h、Wij=WnN(ただし、WnN=WNn)の場合であるから、ΔE=h-h+WnNと表せる。
一方、N個のΔE算出回路のうち、(N-k)個のΔE算出回路(図1の例ではΔE算出回路11jなど)は、以下のような処理を行う。
(N-k)個のΔE算出回路のそれぞれには、N個のビットのうち、値が0であるビットについてのローカルフィールド値(たとえば、h)が供給される。さらに、(N-k)個のΔE算出回路のそれぞれには、生成した乱数(m)に基づいて選択した値が1であるビット(インデックス=mに対応するビット)についてのローカルフィールド値(h)が供給される。なお、mは、nとは異なるシードを用いて生成される乱数である。
また、(N-k)個のΔE算出回路のそれぞれは、値が0の(N-k)個のビットの何れかと、インデックス=mに対応するビットとの間の相互作用の大きさを示す重み値を記憶する記憶部(たとえば、記憶部11ja)を有する。そして、(N-k)個のΔE算出回路のそれぞれは、供給される2つのローカルフィールド値と重み値とに基づいて、(N-k)個のビットの何れかと、インデックス=mに対応するビットとがそれぞれ変化することによるイジングモデルのエネルギー変化を算出する。
たとえば、ΔE算出回路11jには、値が0であるインデックス=jに対応するビットについてのhと、hが供給される。また、ΔE算出回路11jの記憶部11jaは、Wmjを記憶する。そして、ΔE算出回路11jは、h、h、Wmjに基づいて、インデックス=jに対応するビットと、インデックス=mに対応するビットとがそれぞれ変化することによるエネルギー変化(ΔE)を算出する。ΔEは、式(6)において、h=h、Wij=Wmjの場合であるから、ΔE=-h+h+Wmjと表せる。
なお、N個のΔE算出回路は、たとえば、加算器や減算器を用いて実現される。また、ΔE算出回路が有する記憶部は、たとえば、レジスタやSRAM(Static Random Access Memory)などを用いて実現される。
選択回路12は、熱励起エネルギーと、N個のΔE算出回路がそれぞれ出力するエネルギー変化との大小関係に基づいて、値の更新を許容するビットを識別するインデックス=lを出力する。熱励起エネルギーは、乱数と、図示しない制御部から入力される温度パラメータ(T)に基づいて決定される。
シミュレーテッド・アニーリングが行われる場合、Tは、たとえば、制御部によって、イジングモデルの状態を更新する処理が、所定回数繰り返されるごとに、値が小さくなるように制御される。なお、上記のような選択回路12の機能を実行する回路例については後述する。
識別情報計算部13は、選択回路12が出力するインデックス=lに対応するビットの値(x)に基づいて、インデックス=mまたはインデックス=nの何れかを出力する。m,nは、乱数生成回路15a,15bから供給される。xが0である場合、値が1であるビットのインデックス=mが出力される。xが1である場合、値が0であるビットのインデックス=nが出力される。識別情報計算部13は、たとえば、セレクタによって実現できる。
なお、図1の例では、識別情報計算部13は、インデックス=lも出力しているが、選択回路12が出力するインデックス=lが直接、更新部14に供給される場合には、識別情報計算部13は、インデックス=lを出力しなくてもよい。
更新部14は、N個のビットの値(x~x)の値を保持する記憶部14aを有している。記憶部14aは、たとえば、レジスタやSRAMなどを用いて実現される。更新部14は、インデックス=l、及び、インデックス=mまたはインデックス=nに基づいて、x及び、インデックス=mに対応するビットの値(x)またはインデックス=nに対応するビットの値(x)をそれぞれ更新する。
なお、図1では図示が省略されているが、インデックス=l,m,nは、さらに、各ビットについてのローカルフィールド値を更新するために用いられる。
乱数生成回路15aは、x~xに基づいて、N個のビットのうち、値が0のビットのインデックスの1つである乱数(n)を出力する。乱数生成回路15aは、たとえば、x~xのうち、値が0である(N-k)個のビットのインデックスを出力する回路と、出力された(N-k)個のインデックスのうちの何れか1つを、乱数を用いて選択する回路と、その乱数を生成する回路により実現される。乱数を生成する回路としては、たとえば、LFSR(Linear Feedback Shift Register)がある。
乱数生成回路15bは、x~xに基づいて、N個のビットのうち、値が1のビットのインデックスの1つである乱数(m)を出力する。乱数生成回路15bは、たとえば、x~xのうち、値が1であるk個のビットのインデックスを出力する回路と、出力されたk個のインデックスのうちの何れか1つを、乱数を用いて選択する回路と、その乱数を生成する回路により実現される。
以下、最適化装置10の動作例を説明する。
まず、初期設定が行われる。初期設定は、たとえば、図示しない制御部の制御のもとx~xを全て0に設定した後に、乱数を用いて、k個のビットの値を1に設定し、その他のビットの値を0に設定する処理やローカルフィールド値の初期設定を含む。
その後、乱数生成回路15a,15bは、n,mを出力する。これによって、図1では図示が省略されているが、hを更新する回路から、k個のΔE算出回路に対してhが供給され、hを更新する回路から、N-k個のΔE算出回路に対してhが供給される。
また、全ての重み値を記憶している記憶部(図示せず)から、値が1のビットのそれぞれと、インデックス=nに対応するビットとの間の相互作用の大きさを示す重み値のそれぞれが、k個のΔE算出回路のうち、対応するΔE算出回路の記憶部に供給される。たとえば、図1に示すようにWniは、ΔE算出回路11iの記憶部11iaに供給され、WnNは、ΔE算出回路11Nの記憶部11Naに供給される。
また、全ての重み値を記憶している記憶部から、値が0のビットのそれぞれと、インデックス=mに対応するビットとの間の相互作用の大きさを示す重み値のそれぞれが、(N-k)個のΔE算出回路のうち、対応するΔE算出回路の記憶部に供給される。たとえば、図1に示すようにWmjは、ΔE算出回路11jの記憶部11jaに供給される。
そして、k個のΔE算出回路と(N-k)個のΔE算出回路は、前述のようなエネルギー変化を算出し、選択回路12は、N個のビットの中から、値の更新を許容するビットを識別するインデックス=1を出力する。
識別情報計算部13は、xが0である場合、乱数生成回路15bから供給されるmをインデックスとして出力し、xが1である場合、乱数生成回路15aから供給されるnを、インデックスとして出力する。
更新部14は、インデックス=l、及び、インデックス=mまたはインデックス=nに基づいて、x及び、xまたはxをそれぞれ更新する。
図1には、状態の更新例が示されている。たとえば、初期設定処理により、x~xのうち、x,xを含むk個が1、x,xを含む(N-k)個が0である状態(初期状態)となっている。選択回路12が出力するインデックス=lがインデックス=iと等しい場合、識別情報計算部13は、xが1であるため、nをインデックスとして出力する。n=1である場合、更新部14は、xを0から1に更新するとともに、xを1から0に更新する。インデックス=lがインデックス=jと等しい場合、識別情報計算部13は、xが0であるため、mをインデックスとして出力する。m=Nの場合、更新部14は、xを1から0に更新するとともに、xを0から1に更新する。
何れの場合も、値が1である1つのビットと、値が0である1つのビットとがそれぞれ更新されるため、更新後の状態もk-hot制約を満たす。このように、k-hot制約を満たした状態間での遷移が可能となる。
なお、xが1から0に更新された場合、ΔE算出回路11iは、(N-k)個のΔE算出回路の1つとなる。そして、乱数生成回路15a,15bにて新たにn,mが生成された後、ΔE算出回路11iにはhが供給され、記憶部11iaにはWmiが記憶される。また、xが0から1に更新された場合、ΔE算出回路11jは、k個のΔE算出回路の1つとなる。そして、乱数生成回路15a,15bにて新たにn,mが出力された後、ΔE算出回路11jにはhが供給され、記憶部11jaにはWnjが記憶される。
上記のように、N個のΔE算出回路のうち、h,hが供給されるΔE算出回路は、x~xが更新されるたびに変わる。また、ΔE算出回路内の記憶部に記憶される重み値も更新される。
,hの供給先の変更や、重み値の更新が行われた後、同様に、N個のΔE算出回路にてエネルギー変化が計算される。その後、選択回路12、識別情報計算部13、更新部14にて上記と同様の処理が行われる。このような状態更新処理が所定の繰り返し回数、繰り返されたのちに得られた状態(x~x)が、たとえば、最適化問題に対する解として出力される。
なお、更新部14は、x及び、xまたはxが変化することによるエネルギー変化に基づいてエネルギーを更新してもよい。また、更新部14は、各更新時点での最小エネルギーとその最小エネルギーが得られたときの状態(最小エネルギー時の状態)とを保持するようにしてもよい。その場合、更新部14は、状態更新処理が所定の繰り返し回数、繰り返されたときに保持している最小エネルギー時の状態を、解として出力してもよい。
以上のように、第1の実施の形態の最適化装置10は、全ビット(N個のビット)の中で、値が0と1のビットがそれぞれ1つずつ共に変化するときのエネルギー変化に基づいて、どの2つのビットの遷移を許容するかを決定する。そして最適化装置10は、一度の状態更新処理において、その決定した2つのビットの値を更新する。これによって、k-hot制約を満たさない状態遷移が抑制され、探索空間を小さくできる。このため、基底状態の探索を高速化することができる。
たとえば、N=1024で、k=32の場合、全状態数が21024、すなわちほぼ10307であるのに対して、k-hot制約を満たす状態数は、1024!/(1024-32)!(“!”は階乗を表す)、すなわちほぼ1096となる。つまり、21024の状態を探索する場合に比べて、探索する状態数が1/10211と少なくなる。
また、最適化装置10によれば、式(2)の右辺の2項目のk-hot制約項をなくせるため、k-hot制約項のために生じるエネルギー障壁を小さくでき、状態遷移の時間を短縮できる。
また、前述のように式(2)の右辺の2項目のk-hot制約項をなくせるため、重み値を表現するためのビット数を減らせることができ、重み値を記憶しておくためのハードウェア量を削減できる。
たとえば、最適化装置10が交通量最適化問題を計算するとき、N=16、λ=100とした場合、重み値の範囲は、4≦Wij≦214となる。これに対して、式(2)の右辺の2項目のk-hot制約項をなくせる場合(つまりλ=0の場合)、重み値の範囲は、4≦Wij≦14となる。つまり、重み値を表現するためのビット数を、8ビットから4ビットに減少させることができる。また、問題の規模が大きくなって、たとえば、N=1024、λ=10000である場合、重み値の範囲は、4≦Wij≦20108となる。これに対して、λ=0の場合、重み値の範囲は、4≦Wij≦108となる。つまり、重み値を表現するためのビット数を、16ビットから7ビットに減少させることができる。
このように、問題の規模が大きくなるほど、重み値のビット数の削減効果はより顕著となる。
なお、N-k>2またはk>2である場合、(N-k)k>Nとなり、k-hot制約を満たす状態は、一般的にNよりも大きい。しかし、上記の最適化装置10では、乱数であるn,mを用いて、N通りの状態遷移候補から1つの状態遷移が実施されるため、Nビットに対応した最適化装置10を用いた処理が可能である。
(第2の実施の形態)
図2は、第2の実施の形態の最適化装置の一例を示す図である。
最適化装置20は、ΔE算出部21、選択回路22、識別情報計算部23、更新部24、乱数生成回路25a,25b、制御部26を有する。
ΔE算出部21は、ハミング距離=2の状態遷移によってk-hot制約を満たすある状態からk-hot制約を満たす別の状態に遷移するときのエネルギー変化(ΔE~ΔE)を算出する。
選択回路22は、熱励起エネルギーと、ΔE~ΔEとの大小関係に基づいて、N個のビットのうち、値の更新を許容する1つのビットを識別するインデックス=lを出力する。熱励起エネルギーは、乱数と、制御部26から入力されるTに基づいて決定される。なお、熱励起エネルギーと、ΔE~ΔEとの大小関係によっては、N個のビットのうち、1つも更新が許容されない場合がある。選択回路22は、更新が許容されたか否かを示すフラグについても出力するものとする。
識別情報計算部23は、選択回路22が出力するインデックス=lに対応するビットの値(x)に基づいて、インデックス=mまたはインデックス=nの何れかを出力する。n,mは、乱数生成回路25a,25bから供給される。xが0である場合、値が1であるビットのインデックス=mが出力される。xが1である場合、値が0であるビットのインデックス=nが出力される。以下では、識別情報計算部23は、選択回路22から供給されるインデックス=lとフラグについても出力するものとする。インデックス=l,m,nは、ΔE算出部21に供給され、エネルギー変化を計算するために用いられる各ビットについてのローカルフィールド値を更新する際に用いられる。
なお、フラグが更新を許容しないことを示す値である場合、識別情報計算部23は、たとえば、インデックス=l,m,nを無効な値(たとえば、0)とする。
更新部24は、N個のビットの値(x~x)の値を保持する記憶部24aを有している。記憶部24aは、たとえば、レジスタやSRAMなどを用いて実現される。更新部24は、フラグが更新を許容する旨の値である場合、x及び、xまたはxをそれぞれ更新する。なお、更新部24は、x及び、xまたはxが変化することによるエネルギー変化に基づいてエネルギーを更新してもよい。また、更新部24は、各更新時点での最小エネルギーとその最小エネルギーが得られたときの状態(最小エネルギー時の状態)とを保持するようにしてもよい。また、更新部24は、x~xをΔE算出部21に供給する。x~xを用いたΔE算出部21の処理の例については後述する。
乱数生成回路25aは、x~xに基づいて、N個のビットのうち、値が0のビットのインデックスの1つである乱数(n)を出力する。乱数生成回路25aは、たとえば、x~xのうち、値が0である(N-k)個のビットのインデックスを出力する回路と、出力された(N-k)個のインデックスのうちの何れか1つを、乱数を用いて選択する回路と、その乱数を生成する回路により実現される。乱数を生成する回路としては、たとえば、LFSRがある。
乱数生成回路25bは、x~xに基づいて、N個のビットのうち、値が1のビットのインデックスの1つである乱数(m)を出力する。乱数生成回路25bは、たとえば、x~xのうち、値が1であるk個のビットのインデックスを出力する回路と、出力されたk個のインデックスのうちの何れか1つを、乱数を用いて選択する回路と、その乱数を生成する回路により実現される。
制御部26は、最適化装置20の後述する初期設定処理を行う。また、制御部26は、イジングモデルの状態を更新する処理が所定回数繰り返されるごとに、たとえば、制御装置27によって指定される温度スケジュールにしたがってTの値を小さくしていく。
さらに、制御部26は、状態更新処理が所定の繰り返し回数、繰り返されたのちに、記憶部24aに保持されている状態(x~x)を取得し、たとえば、最適化問題に対する解として制御装置27に送信する。なお、制御部26は、更新部24の記憶部24aが、最小エネルギーや最小エネルギー時の状態を保持している場合には、状態更新処理が所定の繰り返し回数、繰り返されたのちに、それらの情報を取得して、制御装置27に送信してもよい。
制御部26は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路にて実現できる。なお、制御部26は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサであってもよい。その場合、プロセッサは、図示しないメモリに記憶されたプログラムを実行することで、上記の処理を行う。
(ΔE算出部21の例)
図3は、ΔE算出部の一例を示す図である。
ΔE算出部21は、記憶部21a、選択回路21b1~21bN,21c1~21cN、h更新回路21d1~21dN、h伝搬制御部21e、ΔE算出回路21f1~21fNを有する。
記憶部21aは、イジングモデルに含まれる全スピンに対応する全ビットの間の相互作用の大きさを示す重み値(W11~WNN)を格納している。W11~WNNは、初期設定処理時に、制御部26によって記憶部21aに記憶される。記憶部21aは、たとえば、レジスタやSRAMなどを用いて実現される。
選択回路21b1~21bNのそれぞれは、識別情報計算部23が出力するインデックス=l及び、インデックス=mまたはインデックス=nに基づいて、記憶部21aに格納されている重み値のうち、2つを選択して出力する。
たとえば、選択回路21biはW1i~WNiの中から、Wli及び、WmiまたはWniを選択して出力する。なお、インデックス=l及び、インデックス=mまたはインデックス=nのうち、lが先に選択回路21biに供給される場合、選択回路21biは、WliをWmiまたはWniよりも先に出力する。mまたはnが先に選択回路21biに供給される場合、選択回路21biは、WmiまたはWniをWよりも先に出力する。同様に選択回路21bjはW1j~WNjの中から、Wlj及び、WmjまたはWnjを選択して出力する。
選択回路21c1~21cNのそれぞれは、1~Nのインデックスの何れかに対応するビットの値(x~x)とn,mとを選択信号として入力する。そして、選択回路21c1~21cNのそれぞれは、入力したビットの値が0であればそのビットと、インデックス=mに対応するビットとの間の相互作用の大きさを示す重み値を選択する。また、選択回路21c1~21cNのそれぞれは、入力したビットの値が1であればそのビットと、インデックス=nに対応するビットとの間の相互作用の大きさを示す重み値を選択する。そして、選択回路21c1~21cNのそれぞれは、選択した重み値を、ΔE算出回路21f1~21fNの記憶部21f1a~21fNaの何れかに供給する。
たとえば、選択回路21ciは、xが0であれば、W1i~WNiの中からWmiを選択してΔE算出回路21fiの記憶部21fiaに供給し、xが1であれば、W1i~WNiの中からWniを選択して記憶部21fiaに供給する。選択回路21cjは、xが0であれば、W1j~WNjの中からWmjを選択してΔE算出回路21fjの記憶部21fjaに供給し、xが1であれば、W1j~WNjの中からWnjを選択して記憶部21fjaに供給する。
h更新回路21d1~21dNのそれぞれは、図示を省略しているが保持部(たとえば、レジスタ)を有し、h~hの何れかの保持及び更新を行う。
たとえば、h更新回路21diは、選択回路21biが選択したWli及び、WmiまたはWniを用いて、hを更新する。選択回路21biがWliとWmiを選択する場合(x=0の場合)、h更新回路21diは、h-Wmi+Wliを計算することで、hを更新する。選択回路21biがWliとWniを選択する場合(x=1の場合)、h更新回路21diは、h-Wli+Wniを計算することで、hを更新する。h更新回路21djは、選択回路21bjが選択したWlj及び、WmjまたはWnjを用いて、hを更新する。選択回路21bjがWljとWmjを選択する場合(x=0の場合)、h更新回路21djは、h-Wmj+Wljを計算することで、hを更新する。選択回路21bjがWljとWnjを選択する場合(x=1の場合)、h更新回路21djは、h-Wlj+Wnjを計算することで、hを更新する。
~hの初期値は、たとえば、バイアス値(b~b)であり、初期設定処理時に、制御部26によって設定される。h更新回路21d1~21dNは、たとえば、加算器や減算器を用いて実現される。
また、h更新回路21d1~21dNのそれぞれは、更新するローカルフィールド値がどのビットについてのものであるかを示すインデックスを保持しており、そのインデックスを出力する。
h伝搬制御部21eは、x~x、インデックス=1~N、及び、乱数生成回路25a,25bが出力するm,nに基づいて、h,hの伝搬先(供給先)を制御する。
図4は、h伝搬制御部の一例を示す図である。
図4では、h伝搬制御部21eの一部(インデックス=i,m,nに対応するビットについてのh,h,hの伝搬制御を行う部分)が示されている。h伝搬制御部21eは、ExNOR(排他的否定論理和)回路30i,30m,30n,31i,31m,31n、スイッチ32i,32m,32n,33i,33m,33n、セレクタ34i、h伝搬バス35、h伝搬バス36を有する。
ExNOR回路30i,31iの一方の入力端子には、インデックス=iが入力され、ExNOR回路30m,31mの一方の入力端子には、インデックス=mが入力され、ExNOR回路30n,31nの一方の入力端子には、インデックス=nが入力される。ExNOR回路30i,30m,30nの他方の入力端子には、乱数生成回路25bが出力するmが入力され、ExNOR回路31i,31m,31nの他方の入力端子には、乱数生成回路25aが出力するnが入力される。
スイッチ32i,33iの一方の端子にはhが供給され、スイッチ32m,33mの一方の端子にはhが供給され、スイッチ32n,33nの一方の端子にはhが供給される。スイッチ32i,32m,32nの他方の端子はh伝搬バス35に接続され、スイッチ33i,33m,33nの他方の端子はh伝搬バス36に接続されている。
スイッチ32iは、ExNOR回路30iが出力する制御信号が1の場合にオンし、制御信号が0の場合にオフする。スイッチ33iは、ExNOR回路31iが出力する制御信号が1の場合にオンし、制御信号が0の場合にオフする。スイッチ32mは、ExNOR回路30mが出力する制御信号が1の場合にオンし、制御信号が0の場合にオフする。スイッチ33mは、ExNOR回路31mが出力する制御信号が1の場合にオンし、制御信号が0の場合にオフする。スイッチ32nは、ExNOR回路30nが出力する制御信号が1の場合にオンし、制御信号が0の場合にオフする。スイッチ33nは、ExNOR回路31nが出力する制御信号が1の場合にオンし、制御信号が0の場合にオフする。
スイッチ32i,32m,32n,33i,33m,33nは、たとえば、トランスファーゲートである。
セレクタ34iの一方の入力端子はh伝搬バス35に接続され、他方の入力端子はh伝搬バス36に接続されている。セレクタ34iの出力端子はΔE算出回路21hiに接続されている。セレクタ34iは、選択信号として供給されるxが0の場合、h伝搬バス35に伝搬されるローカルフィールド値を出力し、xが1の場合、h伝搬バス36に伝搬されるローカルフィールド値を出力する。なお、図4では図示が省略されているが、セレクタ34iと同様のセレクタがΔE算出回路21hi以外の各ΔE算出回路にも接続されている。
このようなh伝搬制御部21eでは、乱数生成回路25bからmが入力されると、ExNOR回路30mは、両入力が等しいため、1を出力する。これにより、スイッチ32mはオンし、hがh伝搬バス35に伝搬される。また、乱数生成回路25aからnが入力されると、ExNOR回路31nは、両入力が等しいため、1を出力する。これにより、スイッチ33nはオンし、hがh伝搬バス36に伝搬される。ExNOR回路30i,30n,31i,31mは、両入力が異なるため、0を出力する。これにより、スイッチ32i,32n,33i,33mはオフする。セレクタ34iに供給されるxが0の場合、hがΔE算出回路21hiに供給され、xが1の場合、hがΔE算出回路21hiに供給される。
図5は、h伝搬制御部の他の例を示す図である。
図5に示すh伝搬制御部21eaは、図4に示したスイッチ32i,32m,32n,33i,33m,33nの代わりに、トライステートバッファ32ia,32ma,32na,33ia,33ma,33naが用いられている。トライステートバッファ32ia,32ma,32na,33ia,33ma,33naのそれぞれは、制御信号が1の場合に、入力信号(ローカルフィールド値)を出力し、制御信号が0の場合は、出力端子をハイインピーダンス状態とする。その他のh伝搬制御部21eaの動作については、図4に示したh伝搬制御部21eの動作と同じである。
図3の説明に戻る。ΔE算出回路21f1~21fNは、ローカルフィールド値と重み値とを用いて、ハミング距離=2の状態遷移によってk-hot制約を満たすある状態からk-hot制約を満たす別の状態に遷移するときのΔE~ΔEを算出する。
ΔE算出回路21f1~21fNのそれぞれには、h更新回路21d1~21dNの何れかから、h~hの何れかが直接供給される。さらに、値が0のビットについてのローカルフィールド値がh更新回路21d1~21dNの何れかから供給されるΔE算出回路には、h伝搬制御部21eによってhが供給される。また、値が1のビットについてのローカルフィールド値がh更新回路21d1~21dNの何れかから供給されるΔE算出回路には、h伝搬制御部21eによってhが供給される。また、ΔE算出回路21f1~21fNのそれぞれには、x~xの何れかが供給される。
また、ΔE算出回路21f1~21fNは、式(6)の計算をするための重み値を保持する記憶部21f1a~21fNaを有する。記憶部21f1a~21fNaに保持される重み値は、前述の選択回路21c1~21cNによって選択される。
たとえば、xが1から0に更新され、xが0から1に更新される場合、ΔEは、式(6)において、h=h、Wij=Wni(ただし、Wni=Win)の場合であるため、ΔE=h-h+Wniと表せる。一方、xが0から1に更新され、xが1から0に更新される場合、ΔEは、式(6)において、h=h、h=hの場合であるため、ΔE=-h+h+Wmiと表せる。
このため、ΔE算出回路21fiは、現在のxが1の場合、ΔE=h-h+Wniを出力し、現在のxが0の場合、ΔE=-h+h+Wmiを出力する。
ΔE算出回路21f1~21fNは、たとえば、加算器、減算器、セレクタを用いて実現される。また、記憶部21f1a~21fNaは、たとえば、レジスタやSRAMなどを用いて実現される。
(選択回路22の一例)
図6は、選択回路の一例を示す図である。
選択回路22は、符号反転部22a、オフセット加算部22b、乱数発生回路22c、選択法則適用部22d、乗算器22e、比較部22f、セレクタ22gを有する。
符号反転部22aは、ΔE,ΔE,…,ΔEのそれぞれに-1を掛けて符合を反転させる。
オフセット加算部22bは、符号反転部22aの出力値(-ΔE~-ΔE)のそれぞれに、オフセット値を加える。オフセット加算部22bは、後述するセレクタ22gが出力するフラグが更新を許容しないことを示すとき(つまり状態遷移が生じないとき)、オフセット値を増加していく。一方、オフセット加算部22bは、フラグが、更新を許容することを示すとき(つまり状態遷移が生じるとき)には、オフセット値を0にする。オフセット値が大きくなると状態遷移が許容されやすくなり、現在の状態が局所解にある場合、その局所解からの脱出が促進される。
乱数発生回路22cは、0以上、1以下の一様乱数(r)を発生する。
選択法則適用部22dは、シミュレーテッド・アニーリングを行うための選択法則(メトロポリス法またはギブス法)に基づいた値を出力する。
シミュレーテッド・アニーリングが行われる場合、あるエネルギー変化を引き起こす状態遷移の許容確率A(ΔE,T)を以下の式(7)、式(8)のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。
Figure 0007137064000007
Figure 0007137064000008
式(7)、式(8)においてTは、前述の温度パラメータである。
式(7)で表される許容確率A(ΔE,T)を用いた場合、十分な反復後に定常状態に達したとすると、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布にしたがう。そして、高い温度から徐々に下げていくとエネルギーの低い状態の占有確率が増加するため、十分温度が下がるとエネルギーの低い状態が得られるはずである。この様子が材料を焼き鈍したときの状態変化とよく似ているため、この方法はシミュレーテッド・アニーリングと呼ばれるのである。このとき、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
許容確率A(ΔE,T)でΔEを引き起こす状態遷移を許容することを示すフラグ(=1)を出力する回路は、式(7)、式(8)のf(-ΔE/T)と、一様乱数rとの比較結果に基づいた値を出力する比較器によって実現できる。
ただ、次のような変形を行っても同じ機能が実現できる。2つの数に同じ単調増加関数を作用させても大小関係は変化しない。したがって比較器の2つの入力に同じ単調増加関数を作用させても比較器の出力は変わらない。たとえば、f(-ΔE/T)に作用させる単調増加関数としてf(-ΔE/T)の逆関数f-1(-ΔE/T)、一様乱数に作用させる単調増加関数としてf-1(-ΔE/T)の-ΔE/Tをrとしたf-1(r)を用いることができる。その場合、上記の比較器と同様の機能を有する回路は、-ΔE/Tがf-1(r)より大きいとき1を出力する回路でよいことがわかる。さらにTが正であることから、その回路は、-ΔEがT・f-1(r)より大きいとき1を出力する回路でよい。
選択法則適用部22dは、入力される一様乱数を上記のf-1(r)の値に変換する変換テーブルを用いて、f-1(r)の値を出力する。メトロポリス法が適用される場合、f-1(r)は、log(r)である。変換テーブルは、たとえば、RAM(Random Access Memory)、フラッシュメモリなどのメモリに記憶されている。
乗算器22eは、Tと、f-1(r)との積(T・f-1(r))を出力する。T・f-1(r)は、熱励起エネルギーに相当する。
比較部22fは、ΔE~ΔEのそれぞれについてのオフセット加算部22bによる加算結果と、T・f-1(r)とを比較し、T・f-1(r)より大きい加算結果に対するフラグとして、1を出力する。また、比較部22fは、T・f-1(r)以下の加算結果に対するフラグとして、0を出力する。
セレクタ22gは、ΔE~ΔEのそれぞれについてのフラグに基づいて、更新が許容されたビットのインデックス=lとフラグを出力する。更新が許容されたビットが複数ある場合、乱数に基づいて、そのうちの1つのビットのインデックスが、インデックス=lとして出力される。更新が許容されたビットがない場合についても、何れかのビットのインデックスが出力される。その場合、セレクタ22gが出力するフラグは0となる。
たとえば、セレクタ22gは、インデックス=lとして、l番目のビットの値が1で、他のビットの値が0であるNビット値を出力する。
なお、図1に示した第1の実施の形態の最適化装置10の選択回路12についても、図6に示すような回路を用いて実現できる。
(識別情報計算部23の一例)
図7は、識別情報計算部の一例を示す図である。
識別情報計算部23は、セレクタ23aにより実現できる。セレクタ23aの一方の入力端子には、乱数生成回路25bよりmが入力され、他方の入力端子には、乱数生成回路25aよりnが入力される。セレクタ23aは、更新部24から供給されるxが0である場合、mを出力し、xが1である場合、nを出力する。
(最適化装置20の全体動作例)
図8は、第2の実施の形態の最適化装置の一例の処理の流れを示すフローチャートである。
まず、制御部26は、最適化装置20の初期設定処理を行う(ステップS1)。初期設定処理として、たとえば、以下の処理が行われる。制御部26は、制御装置27から受信したW11~WNNをΔE算出部21の記憶部21aに記憶する。また、制御部26は、制御装置27から受信したh~hの初期値(たとえば、バイアス値)をΔE算出部21のh更新回路21d1~21dNに設定する。さらに、制御部26は、制御装置27から受けたアニーリング条件に基づいて、選択回路22に温度パラメータの初期値を設定する。また、制御部26は、x~x(全て0)を、記憶部24aに記憶する。その後、制御部26は、乱数を用いて、x~xのうちk個の値を1とする。たとえば、制御部26は、更新部24にk個の状態変数を1つずつ0から1に更新させ、それに伴いh更新回路21d1~21dNにh~hを更新させる。なお、制御部26が、h~hを更新して、更新後のh~hをh更新回路21d1~d1dNに設定してもよい。
上記のような初期設定処理が終了した後、乱数生成回路25a,25bは、x~xに基づいて、n,mを生成する(ステップS2)。
ΔE算出部21の選択回路21c1~21cNは、x~xとn,mに基づいて、ΔE~ΔEの計算に用いられる重み値を選択して、記憶部21f1a~21fNaに供給する(ステップS3)。
ΔE算出部21のh伝搬制御部21eは、x~x、インデックス=1~N、及び、乱数生成回路25a,25bが出力するm,nに基づいて、h,hの伝搬を行う(ステップS4)。前述のh伝搬制御部21eの処理により、ΔE算出回路21f1~21fNのうち、値が0であるビットについてのローカルフィールド値がh更新回路21d1~d1dNの何れかから直接供給されるΔE算出回路には、h伝搬制御部21eによってhが供給される。また、値が1であるビットについてのローカルフィールド値がh更新回路21d1~d1dNの何れかから直接供給されるΔE算出回路には、h伝搬制御部21eによってhが供給される。
その後、ΔE算出回路21f1~21fNによる前述したようなΔE~ΔEの計算が行われる(ステップS5)。そして、図6に示したような選択回路22において、オフセット値の加算が行われたのち(ステップS6)、インデックス=lの選択が行われる(ステップS7)。識別情報計算部23は、前述の処理により、xに応じて、インデックス=mまたはインデックス=nを出力する(ステップS8)。
その後、更新部24は、記憶部24aに記憶されているx及び、xまたはxを更新し(ステップS9)、ΔE算出部21のh更新回路21d1~21dNは、x及び、xまたはxの更新に伴ってh~hを更新する(ステップS10)。
その後、制御部26は、状態の更新処理回数が、所定回数N1に達したか否か判定する(ステップS11)。更新処理回数が所定回数N1に達していない場合には、ステップS2~S10の処理が繰り返される。
更新処理回数が所定回数N1に達した場合、制御部26は、Tの変更回数(温度変更回数)が、所定回数N2に達したか否かを判定する(ステップS12)。
温度変更回数が所定回数N2に達していない場合、制御部26は、Tを変更する(温度を下げる)(ステップS13)。所定回数N1,N2、Tの値の変更の仕方(一度に値をどのくらい小さくするかなど)は、アニーリング条件に基づいて決定される。ステップS13の処理後、ステップS2からの処理が繰り返される。
温度変更回数が所定回数N2に達している場合、制御部26は、そのときの各ビットの値(変数x(i=1~N))を記憶部24aから取得して、解(計算結果)として制御装置27に送信(出力)する(ステップS14)。なお、制御部26には、表示装置が接続されていてもよい。その場合、制御部26は、表示装置に、計算結果が表示されるようにしてもよい。
また、更新部24が、インデックス=lとインデックス=mまたはインデックス=nに対応する2つのビットの値が変化することによるエネルギー変化に基づいてエネルギーを更新してもよい。また、更新部24は、各更新時点での最小エネルギーとその最小エネルギーが得られたときの状態(最小エネルギー時の状態)とを保持するようにしてもよい。その場合、制御部26は、温度変更回数が所定回数N2に達したときに、更新部24が保持している最小エネルギー時の状態を取得して、解として出力してもよい。
以上のような、第2の実施の形態の最適化装置20においても、第1の実施の形態の最適化装置10と同様の効果が得られる。
図9は、第2の実施の形態の最適化装置を用いた場合の計算短縮効果を表すシミュレーション結果を示す図である。
横軸は状態の更新処理の繰り返し回数を表し、縦軸は正解に達したレプリカ数(最適化装置20の数)を表す。
計算対象の問題は、車が8台、ルート数が8本の(64ビットのイジングモデルで表せる)交通量最適化問題である。
図9には、比較のために、第2の実施の形態の最適化装置20を用いた場合のシミュレーション結果40とともに、ハミング距離=1の遷移を繰り返しながらエネルギーを最小化する従来の最適化装置を用いた場合のシミュレーション結果41が示されている。
図9のように、第2の実施の形態の最適化装置20では、従来の最適化装置と比較して解の収束時間が100倍以上短くなる。
以上、実施の形態に基づき、本発明の最適化装置及び最適化装置の制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化装置
11i,11j,11N ΔE算出回路
11ia,11ja,11Na,14a 記憶部
12 選択回路
13 識別情報計算部
14 更新部
15a,15b 乱数生成回路

Claims (5)

  1. 計算対象の問題を変換したイジングモデルに含まれるN個(N>2)のスピンに対応するN個のビットのうち、値が第1の値であるk個(k>1)の第1のビットの何れかについての第1のローカルフィールド値と、生成した第1の乱数に基づいて選択した値が第2の値である第2のビットについての第2のローカルフィールド値と、第1の記憶部に保持される前記k個の第1のビットの何れかと前記第2のビットとの間の相互作用の大きさを示す第1の重み値とに基づいて、前記k個の第1のビットの何れかの値と前記第2のビットの値とがそれぞれ変化することによる前記イジングモデルの第1のエネルギー変化をそれぞれ算出するk個の第1の算出回路と、
    前記N個のビットのうち、値が前記第2の値である(N-k)個の第3のビットの何れかについての第3のローカルフィールド値と、生成した第2の乱数に基づいて選択した値が前記第1の値である第4のビットについての第4のローカルフィールド値と、第2の記憶部に保持される前記(N-k)個の第3のビットと前記第4のビットとの間の相互作用の大きさを示す第2の重み値とに基づいて、前記(N-k)個の第3のビットの何れかの値と前記第4のビットの値とがそれぞれ変化することによる前記イジングモデルの第2のエネルギー変化をそれぞれ算出する(N-k)個の第2の算出回路と、
    入力される温度パラメータと、乱数とに基づいて決定される熱励起エネルギーと、前記k個の第1の算出回路がそれぞれ出力する前記第1のエネルギー変化と、前記(N-k)個の第2の算出回路がそれぞれ出力する前記第2のエネルギー変化とのそれぞれの大小関係に基づいて、値の更新を許容するビットを識別する第1のビット識別情報を出力する選択回路と、
    前記第1のビット識別情報に対応するビットの値に基づいて、前記第2のビットを識別する第2のビット識別情報、または、前記第4のビットを識別する第3のビット識別情報の何れかを出力する識別情報計算部と、
    前記第1のビット識別情報、及び、前記識別情報計算部が出力する前記第2のビット識別情報、または、前記第3のビット識別情報に基づいて、前記第1のビット識別情報に対応するビットの値、及び、前記第2のビット識別情報に対応するビットの値、または、前記第3のビット識別情報に対応するビットの値をそれぞれ更新する更新部と、
    を有する最適化装置。
  2. 前記N個のビットのうちk個が、値が前記第1の値である前記k個の第1のビット、前記N個のビットのうちの(N-k)個が、値が前記第2の値である前記(N-k)個の第3のビットとして初期設定される、請求項1に記載の最適化装置。
  3. 前記第1の乱数と、前記第2の乱数と、前記N個のビットの値と、前記N個のビットのそれぞれを識別するビット識別情報とに基づいて、前記第2のローカルフィールド値を、前記k個の第1の算出回路のそれぞれに伝搬し、前記第4のローカルフィールド値を、前記(N-k)個の第2の算出回路に伝搬する伝搬制御部を有する請求項1または2に記載の最適化装置。
  4. 前記第1の乱数と、前記第2の乱数と、前記N個のビットの何れかの値とに基づいて、前記第1の重み値を前記第1の記憶部に供給し、前記第2の重み値を前記第2の記憶部にそれぞれ供給する複数の選択回路を有する、請求項1乃至3の何れか一項に記載の最適化装置。
  5. 計算対象の問題を変換したイジングモデルに含まれるN個(N>2)のスピンに対応するN個のビットのうち、値が第1の値であるk個(k>1)の第1のビットの何れかについての第1のローカルフィールド値と、生成した第1の乱数に基づいて選択した値が第2の値である第2のビットについての第2のローカルフィールド値と、第1の記憶部に保持される前記k個の第1のビットの何れかと前記第2のビットとの間の相互作用の大きさを示す第1の重み値とに基づいて、前記k個の第1のビットの何れかの値と前記第2のビットの値とがそれぞれ変化することによる前記イジングモデルの第1のエネルギー変化をそれぞれ算出するk個の第1の算出回路と、前記N個のビットのうち、値が前記第2の値である(N-k)個の第3のビットの何れかについての第3のローカルフィールド値と、生成した第2の乱数に基づいて選択した値が前記第1の値である第4のビットについての第4のローカルフィールド値と、第2の記憶部に保持される前記(N-k)個の第3のビットと前記第4のビットとの間の相互作用の大きさを示す第2の重み値とに基づいて、前記(N-k)個の第3のビットの何れかの値と前記第4のビットの値とがそれぞれ変化することによる前記イジングモデルの第2のエネルギー変化をそれぞれ算出する(N-k)個の第2の算出回路と、入力される温度パラメータと、乱数とに基づいて決定される熱励起エネルギーと、前記k個の第1の算出回路がそれぞれ出力する前記第1のエネルギー変化と、前記(N-k)個の第2の算出回路がそれぞれ出力する前記第2のエネルギー変化とのそれぞれの大小関係に基づいて、値の更新を許容するビットを識別する第1のビット識別情報を出力する選択回路と、前記第1のビット識別情報に対応するビットの値に基づいて、前記第2のビットを識別する第2のビット識別情報、または、前記第4のビットを識別する第3のビット識別情報の何れかを出力する識別情報計算部と、前記第1のビット識別情報、及び、前記識別情報計算部が出力する前記第2のビット識別情報、または、前記第3のビット識別情報に基づいて、前記第1のビット識別情報に対応するビットの値、及び、前記第2のビット識別情報に対応するビットの値、または、前記第3のビット識別情報に対応するビットの値をそれぞれ更新する更新部と、制御部と、を有する最適化装置における前記制御部が、
    前記N個のビットのうちk個が、値が前記第1の値である前記k個の第1のビット、前記N個のビットのうちの(N-k)個が、値が前記第2の値である前記(N-k)個の第のビットとなるように、初期設定を行い、
    前記温度パラメータの大きさを制御する、
    最適化装置の制御方法。
JP2018197198A 2018-10-19 2018-10-19 最適化装置及び最適化装置の制御方法 Active JP7137064B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018197198A JP7137064B2 (ja) 2018-10-19 2018-10-19 最適化装置及び最適化装置の制御方法
EP19202171.5A EP3640859A1 (en) 2018-10-19 2019-10-09 Optimization device and control method of optimization device
US16/597,942 US11475346B2 (en) 2018-10-19 2019-10-10 Optimization device and control method of optimization device
CN201910983160.5A CN111077768B (zh) 2018-10-19 2019-10-16 优化装置及优化装置的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018197198A JP7137064B2 (ja) 2018-10-19 2018-10-19 最適化装置及び最適化装置の制御方法

Publications (2)

Publication Number Publication Date
JP2020064535A JP2020064535A (ja) 2020-04-23
JP7137064B2 true JP7137064B2 (ja) 2022-09-14

Family

ID=68242441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018197198A Active JP7137064B2 (ja) 2018-10-19 2018-10-19 最適化装置及び最適化装置の制御方法

Country Status (4)

Country Link
US (1) US11475346B2 (ja)
EP (1) EP3640859A1 (ja)
JP (1) JP7137064B2 (ja)
CN (1) CN111077768B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7518379B2 (ja) 2020-10-09 2024-07-18 富士通株式会社 最適化装置、最適化プログラム、および最適化方法
JP7590642B2 (ja) * 2020-12-01 2024-11-27 富士通株式会社 最適化装置及び最適化方法
JP7524754B2 (ja) 2020-12-15 2024-07-30 富士通株式会社 最適化装置、最適化プログラム、及び最適化方法
CN114626536B (zh) * 2022-02-21 2024-08-02 华南理工大学 一种处理组合优化问题的电路
CN115858999B (zh) * 2023-02-07 2023-04-25 华南理工大学 一种基于改进模拟退火算法的组合优化问题处理电路

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018063626A (ja) 2016-10-14 2018-04-19 富士通株式会社 最適化装置及び最適化装置の制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0850572A (ja) 1994-03-18 1996-02-20 Ricoh Co Ltd ニューロン素子およびそれを用いたニューラルネットワークおよび情報処理装置並びに連想記憶装置および問題解決装置
JPH10247186A (ja) 1997-03-05 1998-09-14 Hitachi Cable Ltd 高速最適化回路
JP6269186B2 (ja) * 2014-03-07 2018-01-31 富士通株式会社 分類方法、分類装置および分類プログラム
US9881256B2 (en) * 2014-08-22 2018-01-30 D-Wave Systems Inc. Systems and methods for problem solving, useful for example in quantum computing
JP5865457B1 (ja) 2014-08-29 2016-02-17 株式会社日立製作所 情報処理システム及び管理装置
CN108093667B (zh) * 2015-05-05 2020-02-21 Abb瑞士股份有限公司 针对电气转换器的混合控制方法
US11062227B2 (en) * 2015-10-16 2021-07-13 D-Wave Systems Inc. Systems and methods for creating and using quantum Boltzmann machines
JP6207584B2 (ja) 2015-12-25 2017-10-04 株式会社日立製作所 情報処理システム及び管理装置
JP6468247B2 (ja) * 2016-06-06 2019-02-13 富士通株式会社 イジング装置及びイジング装置の制御方法
JP6623947B2 (ja) * 2016-06-17 2019-12-25 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6773970B2 (ja) 2016-09-09 2020-10-21 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP7071638B2 (ja) * 2018-07-31 2022-05-19 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7100254B2 (ja) * 2018-08-10 2022-07-13 富士通株式会社 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
JP7093009B2 (ja) * 2018-08-30 2022-06-29 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7100257B2 (ja) * 2018-10-04 2022-07-13 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7108186B2 (ja) * 2018-11-27 2022-07-28 富士通株式会社 最適化装置及び最適化装置の制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018063626A (ja) 2016-10-14 2018-04-19 富士通株式会社 最適化装置及び最適化装置の制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
中村 孝, 外2名,"連動式状態遷移ニューラルネットワークによる大域的0-1組合せ最適化",計測自動制御学会論文集,Vol.30, No.8,1994年08月31日,pp.966-975,ISSN 0453-4654
塚本 三六, 外3名,"組み合わせ最適化問題向けハードウェアの高速化アーキテクチャー",FUJITSU [online],Vol.68, No.5,2017年09月,pp.8-14,[2022年4月21日検索], インターネット<URL : https://www.fujitsu.com/jp/documents/about/resources/publications/magazine/backnumber/vol68-5/paper02.pdf>

Also Published As

Publication number Publication date
US11475346B2 (en) 2022-10-18
CN111077768B (zh) 2023-03-28
US20200125984A1 (en) 2020-04-23
JP2020064535A (ja) 2020-04-23
CN111077768A (zh) 2020-04-28
EP3640859A1 (en) 2020-04-22

Similar Documents

Publication Publication Date Title
JP7137064B2 (ja) 最適化装置及び最適化装置の制御方法
JP7323777B2 (ja) 最適化装置および最適化方法
US10885147B2 (en) Optimization apparatus and control method thereof
JP7193708B2 (ja) 最適化装置及び最適化装置の制御方法
JP6465092B2 (ja) 最適化装置及び最適化装置の制御方法
CN111008696B (zh) 优化装置和控制优化装置的方法
JP7410395B2 (ja) 最適化装置及び最適化方法
US11093817B2 (en) Information processing device and information processing method
US11645496B2 (en) Optimization apparatus and optimization apparatus control method
JP7185140B2 (ja) 最適化装置及び最適化装置の制御方法
US11372034B2 (en) Information processing device
JP2020086821A (ja) 最適化装置および最適化装置の制御方法
JP2019016077A (ja) 最適化装置及び最適化装置の制御方法
CN113283046A (zh) 优化装置、优化方法和记录介质
JP7512631B2 (ja) イジングマシンデータ入力機器、及びイジングマシンにデータを入力する方法
JP2019185602A (ja) 最適化装置及び最適化装置の制御方法
JP7174244B2 (ja) 最適化装置及び最適化装置の制御方法
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JPWO2020054062A1 (ja) 最適化装置および最適化装置の制御方法
Kagawa et al. High‐throughput FPGA implementation for quadratic unconstrained binary optimization
JP7111966B2 (ja) 最適化装置及び最適化装置の制御方法
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
JP2018206078A (ja) 並列処理装置、並列演算方法、及び並列演算プログラム
US20220414461A1 (en) Inference method, information processing apparatus, and computer-readable recording medium
JP2019160293A (ja) 最適化装置及び最適化装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210709

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210715

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220706

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7137064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150