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

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

Info

Publication number
JP2020064536A
JP2020064536A JP2018197199A JP2018197199A JP2020064536A JP 2020064536 A JP2020064536 A JP 2020064536A JP 2018197199 A JP2018197199 A JP 2018197199A JP 2018197199 A JP2018197199 A JP 2018197199A JP 2020064536 A JP2020064536 A JP 2020064536A
Authority
JP
Japan
Prior art keywords
bit
value
bits
identification information
group
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
JP2018197199A
Other languages
English (en)
Other versions
JP7193708B2 (ja
Inventor
浩一 神田
Koichi Kanda
浩一 神田
田村 泰孝
Yasutaka Tamura
泰孝 田村
秀敏 松村
Hidetoshi Matsumura
秀敏 松村
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 JP2018197199A priority Critical patent/JP7193708B2/ja
Priority to EP19202788.6A priority patent/EP3640860A1/en
Priority to US16/654,585 priority patent/US11188044B2/en
Priority to CN201910982755.9A priority patent/CN111078621B/zh
Publication of JP2020064536A publication Critical patent/JP2020064536A/ja
Application granted granted Critical
Publication of JP7193708B2 publication Critical patent/JP7193708B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • 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/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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
    • 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)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Operations Research (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】1−hot制約をもつ最適化問題の計算時間を短縮する。【解決手段】複数の算出回路(ΔE算出回路11p1〜11pnを含む)は、イジングモデルのビットをグループ分けした各グループの複数ビットのうち、値が1のビットについてのローカルフィールド値(hi)と、値が0のビットについてのローカルフィールド値(hj)と、重み値(Wij)とに基づいて、両ビットが変化することによるエネルギー変化(ΔEj)をそれぞれ算出し、選択回路12は、熱励起エネルギーと各ΔEjとの大小関係に基づいて、各グループに含まれる、値が0のビットのうち、値の更新を許容する1つを識別する識別情報(l)を出力し、識別情報計算部13は、lに基づいて更新が許容された値が0のビットが属すグループを検出し、そのグループに属す、値が1のビットを識別する識別情報(k)を出力し、更新部14は、k,lで識別される2ビットの値を更新する。【選択図】図1

Description

本発明は、最適化装置及び最適化装置の制御方法に関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
最適化装置は、たとえば、ニューラルネットワークを用いてモデル化することもできる。その場合、イジングモデルに含まれる複数のスピンに対応した複数のビットのそれぞれが、他のビットの値と、他のビットと自身のビットとの相互作用の大きさを示す重み値(結合係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、シミュレーテッド・アニーリングなどの確率的探索法により、上記のようなエネルギー関数(コスト関数、目的関数とも呼ばれる)の値(以下エネルギーという)の最小値が得られる状態(各ビットの値の組み合わせ)を、解として求める。
従来、デジタル回路を用いてシミュレーテッド・アニーリングを行うことでエネルギーが最小となる状態を計算する最適化装置がある(たとえば、特許文献1参照)。従来の最適化装置は、一度に1つのビットの値だけ変化するとしてエネルギー変化を計算し、そのエネルギー変化に対して温度に対応するノイズ値を加えた値に応じてビットの変化を許容するか否かを決定する。エネルギーが増加するビットの値の変化も所定の確率で許容され、温度が低くなるにつれてその確率は低くなる。
ところで、最適化問題には、それぞれ複数のビットを含む複数のグループのそれぞれにおいて、値が1となるビットの数を1つのみとする制約(1−hot制約)をもつものがある。たとえば、多くのスケジューリング問題(巡回セールスマン問題、配車計画問題など)や、ナップザック問題、ビンパッキング問題などは、1−hot制約をもつ。
特開2018−041351号公報 国際公開第2017/056366号 国際公開第2017/056367号 国際公開第2017/056368号
上記のように、従来の最適化装置では一度に変化するビットの数は1つである。つまり、従来の最適化装置は、ハミング距離=1の状態遷移を繰り返しながらエネルギーが最小となる基底状態の探索を行う。そのため、従来の最適化装置では、1−hot制約を満たさない状態への遷移も発生し、遷移が起こりうる状態の数(探索空間)が1−hot制約を満たす状態の数よりも大きい。また、1−hot制約項のために生じるエネルギー障壁のために状態遷移に時間がかかる。以上のことから、従来の最適化装置では、1−hot制約をもつ最適化問題の計算(基底状態の探索)に時間がかかるという問題がある。
1つの側面では、本発明は、1−hot制約をもつ最適化問題の計算時間を短縮可能な最適化装置及び最適化装置の制御方法を提供することを目的とする。
1つの実施態様では、計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビットについて、前記複数のビットが複数のグループに分けられた場合における前記複数のグループのそれぞれに含まれる複数個のビットのうち、値が1である第1のビットについての第1のローカルフィールド値と、値が0である第2のビットについての第2のローカルフィールド値と、記憶部に保持される前記第1のビットと前記第2のビットとの間の相互作用の大きさを示す重み値とに基づいて、前記第1のビットの値が1から0に変化するとともに前記第2のビットの値が0から1に変化することによる前記イジングモデルの第1のエネルギー変化を、それぞれ算出する複数の算出回路と、入力される温度パラメータと、乱数とに基づいて決定される熱励起エネルギーと、前記複数の算出回路がそれぞれ出力する前記第1のエネルギー変化との大小関係に基づいて、前記複数のグループのそれぞれに含まれる前記第2のビットのうち、0から1への値の更新を許容する1つの前記第2のビットを識別する第1のビット識別情報を出力する選択回路と、前記選択回路が出力する前記第1のビット識別情報に基づいて、更新が許容された前記第2のビットが属す第1のグループを検出し、前記第1のグループに属す前記第1のビットを識別する第2のビット識別情報を出力する識別情報計算部と、前記識別情報計算部が出力する前記第2のビット識別情報に基づいて、前記第1のグループに属す前記第1のビットの値を1から0に更新するとともに、前記第1のビット識別情報に基づいて、更新が許容された前記第2のビットの値を0から1に更新する更新部と、を有する最適化装置が提供される。
また、1つの実施態様では、最適化装置の制御方法が提供される。
1つの側面では、1−hot制約をもつ最適化問題の計算時間を短縮できる。
第1の実施の形態の最適化装置の一例を示す図である。 最適化装置の変形例を示す図である。 第2の実施の形態の最適化装置の一例を示す図である。 ΔE算出部の一例を示す図である。 グループインデックスの値の例を示す図である。 h伝搬制御部の一例を示す図である。 制御信号生成回路の一例を示す図である。 h伝搬制御部の他の例を示す図である。 制御信号生成部が出力する制御信号の例を示す図である。 ΔE算出回路による処理例を示す図である。 選択回路の一例を示す図である。 識別情報計算部の一例を示す図である。 インデックス、グループインデックス、選択回路の出力及び更新前の状態変数の一例を示す図である。 識別情報計算部の他の例を示す図である。 第2の実施の形態の最適化装置の一例の処理の流れを示すフローチャートである。 初期設定処理の一例の流れを示すフローチャートである。 第2の実施の形態の最適化装置を用いた場合の計算短縮効果を表すシミュレーション結果を示す図である。 1−hot制約対応機能を無効にする構成を有する最適化装置におけるh伝搬制御部の第1の例を示す図である。 1hotENに基づいた制御信号を生成する制御信号生成回路の一例を示す図である。 1−hot制約対応機能を無効にする構成を有する最適化装置におけるh伝搬制御部の第2の例を示す図である。 1−hot制約対応機能を無効にする構成を有する最適化装置におけるΔE算出回路の例を示す図である。 1−hot制約対応機能を無効にする構成を有する最適化装置における識別情報計算部の例を示す図である。 シャッフル処理を含む最適化装置の一例の処理の流れを示すフローチャートである。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
以下に示す最適化装置は、1−hot制約を満たす状態以外の状態の探索を除外することで、1−hot制約をもつ最適化問題の計算時間を短縮するものである。
イジングモデルに含まれる複数のスピン(スピン数=N)に対応するN個のビットの値を、状態変数であるx〜xで表す場合、たとえば、以下の式(1)の各{}内のグループで値が1になる状態変数の数が1つのみであるときに1−hot制約が満たされる。
Figure 2020064536
たとえば、あるグループ内にx,x,xの3つの状態変数がある場合、{x,x,x}={1,0,0},{0,1,0},{0,0,1}という状態は、1−hot制約を満たす。一方、{x,x,x}={0,0,0},{1,1,0},{1,0,1},{0,1,1}{1,1,1}という状態は、1−hot制約を満たさない。1−hot制約を満たすある状態から、1−hot制約を満たす別の状態に遷移させるためには、最適化装置は、1回の状態更新処理において2ビットの値を変化させることになる。つまり、最適化装置は、ハミング距離=2の状態遷移を発生させることになる。
1−hot制約は、以下の式(2)で表すことができる。
Figure 2020064536
式(2)において、Gはグループの数(2以上の整数)、mは、グループjに属する状態変数の数である。
1−hot制約を考慮した最適化問題のエネルギー関数は、以下の式(3)のように表すことができる。
Figure 2020064536
式(3)において、右辺の1項目はコスト関数、2項目は1−hot制約を考慮した1−hot制約項、3項目以降はその他の制約を考慮した制約項(この中に別の1−hot制約項が含まれている場合もある)を表す。1−hot制約が満たされない場合に、エネルギーが小さくなる、ということが起きないように、λ(制約重み)として十分大きな値が用いられることになる。
一方、重み値を用いたイジング型のエネルギー関数E(x)は、たとえば、以下の式(4)で定義される。
Figure 2020064536
右辺の1項目は、イジングモデルに含まれる全ビットから選択可能な2つのビットの全組み合わせについて、漏れと重複なく、2つのビットの値(0または1)と重み値との積を積算したものである。xは、インデックス(ビット識別情報)=iのビットの値を表す状態変数、xは、インデックス=jのビットの値を表す状態変数であり、Wijは、インデックス=i,jのビットの相互作用の大きさを示す重み値である。なお、Wii=0である。また、Wij=Wjiであることが多い(つまり、重み値による係数行列は対称行列である場合が多い)。
右辺の2項目は、全ビットのそれぞれのバイアス値とビットの値との積の総和を求めたものである。bは、インデックス=iのビットのバイアス値を示している。
1−hot制約を満たす状態以外についても探索が行われる場合、式(4)のWijを表現するためのビット数は、式(3)のλの値が大きいほど大きくなる。λは、たとえば、上記のN(問題のサイズに相当する)や、Wijとのバランスをみて決定される。たとえば、最初はWijの最大値の10倍程度のλを用いてWijやbが計算され、エネルギーの最小化が行われる。収束解が1−hot制約を満たしていなければ、1−hot制約を満たすようになるまで、λの値が増加される。
一方、1−hot制約を満たす状態のみの探索が行われる場合、式(3)の右辺の2項目の1−hot制約項をなくせるため、Wijを表現するためのビット数を少なくできる。
ところで、式(4)において、xの値が変化して1−xとなると、xの増加分は、Δx=(1−x)−x=1−2xと表せる。この値の変化に伴うエネルギー変化(ΔE)は、以下の式(5)で表される。
Figure 2020064536
式(5)において、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が両方変化したときのエネルギー変化は、以下の式(6)で表せる。
Figure 2020064536
前述のように、1−hot制約を満たすある状態から、1−hot制約を満たす別の状態に遷移するには、2ビットの値を変化させることになる。インデックス=iのビットの値が1から0に変化するとともにインデックス=jのビットの値が0から1に変化する場合のエネルギー変化をΔEと表記すると、Δx=−1、Δx=1であるため、式(6)から、ΔEは以下の式(7)で表せる。
Figure 2020064536
以下に示す最適化装置は、式(7)で表されるエネルギー変化の計算を行う回路を含む。
(第1の実施の形態)
図1は、第1の実施の形態の最適化装置の一例を示す図である。
最適化装置10は、ΔE算出回路11p1,11p2,…,11pn、選択回路12、識別情報計算部13、更新部14を有する。
なお、図1では、N個のビットがG個のグループに分けられた場合におけるp番目のグループpに含まれる複数個(n個)のビットの間でハミング距離=2の状態遷移が生じることによるエネルギー変化を計算するΔE算出回路11p1〜11pnが示されている。他のグループについてもΔE算出回路11p1〜11pnと同様のΔE算出回路が設けられるが、図1では図示が省略されている。また、図1では、ローカルフィールド値を計算する回路なども図示が省略されている。なお、図1の例では3つ以上のΔE算出回路11p1〜11pnが示されているが、グループpに含まれるビットの数が2つである場合にはΔE算出回路は2つとなる。
グループpが1−hot制約を満たしているとき、グループpに含まれるn個のビットのうち、1つのビットの値が1であり、他のビットの値は0である。
以下、n個のビットの値を示すxp1,…,xpnのうち、値が1であるものをx、値が0であるものをxと表記することにする。また、値が1であるビットについてのローカルフィールド値をh、値が0のビットについてのローカルフィールド値をhと表記する。
図1の例では、ΔE算出回路11p2〜11pnは、h,hとWijに基づいて、xが1から0に変化するとともに、xが0から1に変化することによるΔEを、式(7)に基づいて算出する。Wijは、ΔE算出回路11p2〜11pnにおける記憶部11p2a〜11pnaに記憶されている。
なお、ハミング距離=2の状態遷移には、xが1から0に変化し、さらに0から1に変化する遷移もある。しかし状態としては何も変化していないことになるため、計算時間を短縮する上で、このような状態遷移が発生することは望ましくない。図1の例では、ΔE算出回路11p1には1つのhが供給される。また、ΔE算出回路11p1は、Wii(=0)を記憶する記憶部11p1aを有する。
このようなΔE算出回路11p1が、hとWiiに基づいて、xが上記のように2回変化するときのΔEを計算する場合、i=jとしたときの式(7)を計算することになり、ΔE=0となる。ΔE=0の場合、後述の選択回路12の処理により、xが2回変化する上記の状態遷移が許容される可能性がある。選択回路12では、エネルギー変化が正の大きな値になるほど、そのエネルギー変化を引き起こす状態遷移の許容確率が下がる。そのため、1つのhが供給されるΔE算出回路11p1は、所定の正の値(図1では「ΔEmax」と表記されている)を出力するように更新部14によって制御される。ΔEmaxは、たとえば、最適化装置10が生成できる正の最大値である。たとえば、最適化装置10が26ビットの値を生成できる場合、正の最大値は、2の補数で表現した場合、01…1(1の数が25個)となる。
ΔE算出回路11p1には、更新部14から制御信号EN(たとえば、1)が供給され、ΔE算出回路11p1は、上記のようなΔEmaxを出力する。一方、ΔE算出回路11p2〜11pnには、更新部14から制御信号EN(たとえば、0)が供給され、ΔE算出回路11p2〜11pnは、式(7)で表されるΔEを計算する。
なお、記憶部11p1a〜11pnaは、たとえば、レジスタやSRAM(Static Random Access Memory)などを用いて実現される。
選択回路12は、熱励起エネルギーと、複数のΔE算出回路がそれぞれ出力するエネルギー変化との大小関係に基づいて、グループ1〜Gのそれぞれに含まれる値が0のビットのうち、0から1への値の更新を許容する1つを識別するインデックスを出力する。熱励起エネルギーは、乱数と、図示しない制御部から入力される温度パラメータ(T)に基づいて決定される。
シミュレーテッド・アニーリングが行われる場合、Tは、たとえば、制御部によって、イジングモデルの状態を更新する処理が、所定回数繰り返されるごとに、値が小さくなるように制御される。なお、上記のような選択回路12の機能を実行する回路例については後述する。
識別情報計算部13は、選択回路12が出力するインデックスに基づいて、更新が許容されたビットが属するグループを検出し、検出したグループに属す値が1のビットを識別するインデックスを出力する。識別情報計算部13は、たとえば、論理回路またはテーブルデータを用いてグループの検出やインデックスの生成を行う。論理回路を用いる例や、テーブルデータを用いる例については後述する。
なお、以下では、選択回路12及び識別情報計算部13が出力する値が0のビットのインデックスをl、識別情報計算部13が出力する値が1のビットのインデックスをkとする。図1の例では、識別情報計算部13は、インデックス=lも出力しているが、選択回路12が出力するインデックス=lが直接、更新部14に供給される場合には、識別情報計算部13は、インデックス=lを出力しなくてもよい。
更新部14は、N個のビットの値(x〜x)を保持する記憶部14aを有している。記憶部14aは、たとえば、レジスタやSRAMなどを用いて実現される。更新部14は、識別情報計算部13が出力するインデックス=kによって識別されるビットの値を1から0に更新するとともに、インデックス=lによって識別されるビットの値を0から1に更新する。また、更新部14は、x〜xに基づいて、上記のような制御信号EN,ENを出力する。
なお、図1では図示が省略されているが、インデックス=k,lは、さらに、h,hを更新するために用いられる。また、識別情報計算部13は、検出したグループを識別するグループ識別情報(グループインデックス)を出力してもよい。グループインデックスは、たとえば、Wijを更新する際に用いられる。これらの処理については後述する。
以下、最適化装置10の動作例を説明する。
まず、初期設定が行われる。初期設定は、たとえば、図示しない制御部の制御のもとx〜xを全て0に設定した後に、各グループにおいて、1つのビットの値を1に設定し、他のビットの値を0に設定する処理やローカルフィールド値の初期値の設定を含む。さらに、初期設定として、記憶部11p1a〜11pnaに重み値を記憶する処理や、設定された各ビットの値に基づいたローカルフィールド値の更新処理などが行われる。
そして、ΔE算出回路11p1〜11pnは、上記のようなΔEmaxの出力や、ΔEの計算を行い、選択回路12は、0から1への値の更新を許容する1つを識別するインデックスを出力する。
たとえば、選択回路12が出力するインデックス=lが、値が0であるビットのインデックス=pnと一致する場合、識別情報計算部13は、インデックス=lに基づいて、グループpを検出する。そして、識別情報計算部13は、グループpにおいて、値が1であるビットのインデックス=p1を、インデックス=kとして出力する。
更新部14は、インデックス=k,lを受けて、xp1を1から0に更新し、xpnを0から1に更新する。これによって、1−hot制約を満たした状態間での遷移が可能となる。
なお、xp1が1から0に更新され、xpnが0から1に更新された場合、xpn=xとなり、xp1〜xpnのうち、xpn以外の状態変数がxとなる。このため、インデックス=pnのビットについてのローカルフィールド値(インデックス=k,lに基づいて更新されたもの)がhとなる。そして、インデックス=p1〜p(n−1)のビットについてのローカルフィールド値(インデックス=k,lに基づいて更新されたもの)がhとなる。
これにより、ΔE算出回路11pnには、インデックス=pnのビットについてのhが供給されることになる。そして、ΔE算出回路11p1〜11pnのうちΔE算出回路11pn以外には、インデックス=p1〜p(n−1)のビットの何れかについてのh以外に、hが供給される。
上記のように、ΔE算出回路11p1〜11pnのうち、h,hが供給されるΔE算出回路は、グループpに属すビットの値が更新されるたびに変わる。また、記憶部11p1a〜11pnaに記憶される重み値も更新される。なお、このようなローカルフィールド値の供給先の変更を制御する構成や、重み値を更新する構成については後述する。
これにより、ΔE算出回路11pnが前述のΔEmaxを出力し、ΔE算出回路11p1〜11pnのうち、ΔE算出回路11pn以外は、ΔEを計算することになる。その後、選択回路12、識別情報計算部13、更新部14にて上記と同様の処理が行われる。このような状態更新処理が所定の繰り返し回数、繰り返されたのちに得られた状態(x〜x)が、最適化問題に対する解として出力される。
なお、更新部14は、インデックス=k,lに対応するΔEに基づいてエネルギーを更新するとともに、各更新時点での最小エネルギーとその最小エネルギーが得られたときの状態(最小エネルギー時の状態)とを保持するようにしてもよい。その場合、更新部14は、状態更新処理が所定の繰り返し回数、繰り返されたときに保持している最小エネルギー時の状態を、解として出力してもよい。
以上のように、第1の実施の形態の最適化装置10によれば、各グループ内で値が1である1つのビットと値が0である1つのビットがともに変化するときのエネルギー変化に基づいて、どの2つのビットの遷移を許容するか決定する。そして、決定した2つのビットの値が更新される。これによって、1−hot制約を満たさない状態遷移が抑制され、探索空間を小さくできる。このため、基底状態の探索を高速化することができる。
たとえば、N=1024で、xからx1024まで、全状態変数が順番に4変数ごとのグループに分かれている場合、全状態数が21024、すなわちほぼ10307であるのに対して、1−hot制約を満たす状態数は4256、すなわちほぼ10154となる。つまり、21024の状態を探索する場合に比べて、探索する状態数が1/10153と少なくなる。
また、最適化装置10によれば、式(3)の右辺の2項目の1−hot制約項をなくせるため、1−hot制約項のために生じるエネルギー障壁を小さくでき、状態遷移の時間を短縮できる。
また、前述のように式(3)の右辺の2項目の1−hot制約項をなくせるため、重み値を表現するためのビット数を減らせることができ、重み値を記憶しておくためのハードウェア量を削減できる。
たとえば、最適化装置10が交通量最適化問題を計算するとき、N=16、λ=100とした場合、重み値の範囲は、4≦Wij≦214となる。これに対して、式(3)の右辺の2項目の1−hot制約項をなくせる場合(つまりλ=0の場合)、重み値の範囲は、4≦Wij≦14となる。つまり、重み値を表現するためのビット数を、8ビットから4ビットに減少させることができる。また、問題の規模が大きくなって、たとえば、N=1024、λ=10000である場合、重み値の範囲は、4≦Wij≦20108となる。これに対して、λ=0の場合、重み値の範囲は、4≦Wij≦108となる。つまり、重み値を表現するためのビット数を、16ビットから7ビットに減少させることができる。
このように、問題の規模が大きくなるほど、重み値のビット数の削減効果はより顕著となる。
なお、同じ状態変数が複数の1−hot制約項に現れる場合、上記の最適化装置10により、全ての1−hot制約項がエネルギー関数から除かれるわけではない。たとえば、巡回セールスマン問題のエネルギー関数は、E(x)=αD+λ+λと表せる。D、P、Pは、それぞれ以下の式(8)、式(9)、式(10)のように表せる。
Figure 2020064536
Figure 2020064536
Figure 2020064536
式(8)において、s(t,c)は、時刻tに都市cを訪れた場合に1、それ以外の場合に0になる関数であり、d(c,c)は、都市cと都市cの間の距離であり、s((t+1)%N,c)は、時刻t+1をNで割った余りの時刻に、都市cを訪れた場合に1、それ以外の場合に0になる関数である。
式(9)、式(10)において、s(t,c)は、時刻tに都市cを訪れた場合に1、それ以外の場合に0になる関数である。都市c,c,cは、0からN−1の値で表され、時刻tも0からN−1の値で表される。
式(9)、式(10)は、それぞれ1−hot制約項である。最適化装置10では、この2つの1−hot制約項のうち、一方を削除できる。これにより、エネルギー関数は、E(x)=αD+λ、または、E(x)=αD+λとすることができる。
(変形例)
ところで、式(4)のWijにおいて、x,xが同じ1−hot制約を満たすべき同一グループに属す2つのビットの値の場合、xまたはxが0であるため(図1の例ではx=1、x=0)、Wij=0となる。つまり、Wijはエネルギーに寄与しない。このため、Wij=0とすることもできる。
図2は、最適化装置の変形例を示す図である。図2において、図1に示した要素と同じ要素については同一符号が付されている。
最適化装置10aにおいて、ΔE算出回路11pa1,11pa2,…,11panは、図1に示したΔE算出回路11p1〜11pnと異なり、WiiやWijを記憶する記憶部11p1a〜11pnaを有さない。ΔE算出回路11pa1は、ΔE算出回路11p1と同様にΔEmaxを出力するが、ΔE算出回路11pa2〜11panは、ΔE算出回路11p2〜11pnと異なり、h−hの計算を行う。
(第2の実施の形態)
図3は、第2の実施の形態の最適化装置の一例を示す図である。
最適化装置20は、ΔE算出部21、選択回路22、識別情報計算部23、更新部24、制御部25を有する。
ΔE算出部21は、前述のG個のグループのそれぞれにおいて、ハミング距離=2の状態遷移によって1−hot制約を満たすある状態から1−hot制約を満たす別の状態に遷移するときのエネルギー変化(ΔE〜ΔE)を算出する。
選択回路22は、熱励起エネルギーと、ΔE〜ΔEとの大小関係に基づいて、グループ1〜Gのそれぞれに含まれる値が0のビットのうち、0から1への値の更新を許容する1つを識別するインデックス=lを出力する。熱励起エネルギーは、乱数と、制御部25から入力されるTに基づいて決定される。なお、熱励起エネルギーと、ΔE〜ΔEとの大小関係によっては、値が0のビットのうち1つも更新が許容されない場合がある。以下では、選択回路22は、インデックス=lとともに、更新が許容されたか否かを示すフラグを出力するものとする。
識別情報計算部23は、選択回路22が出力するインデックス=lとフラグに基づいて、更新が許容されたビットが属するグループを検出する。そして、識別情報計算部23は、検出したグループに属す値が1のビットを識別するインデックスと、検出したグループを識別するグループインデックス=gを出力する。以下では、識別情報計算部23は、選択回路22から供給されるインデックス=lとフラグについても出力するものとする。インデックス=k,lは、ΔE算出部21に供給され、エネルギー変化を計算するために用いられる各ビットについてのローカルフィールド値を更新する際に用いられる。また、グループインデックス=gも、ΔE算出部21に供給され、ΔE算出部21に含まれる複数のΔE算出回路のそれぞれに保持される重み値を更新する際などに用いられる。
なお、フラグが更新を許容しないことを示す値である場合、識別情報計算部23は、たとえば、インデックス=k,l、グループインデックス=gを無効な値(たとえば、0)とする。
更新部24は、N個のビットの値(x〜x)を保持する記憶部24aを有している。記憶部24aは、たとえば、レジスタやSRAMなどを用いて実現される。更新部24は、フラグが更新を許容する旨の値である場合、識別情報計算部23が出力するインデックス=kによって識別されるビットの値を1から0に更新するとともに、インデックス=lによって識別されるビットの値を0から1に更新する。なお、更新部24は、インデックス=k,lに対応するエネルギー変化に基づいてエネルギーを更新するとともに、各更新時点での最小エネルギーとその最小エネルギーが得られたときの状態(最小エネルギー時の状態)とを保持するようにしてもよい。また、更新部24は、制御信号ENをΔE算出部21に供給するとともに、x〜xをΔE算出部21に供給する。制御信号ENや、x〜xを用いたΔE算出部21の処理の例については後述する。
制御部25は、最適化装置20の後述する初期設定処理を行う。また、制御部25は、イジングモデルの状態を更新する処理が所定回数繰り返されるごとに、たとえば、制御装置26によって指定される温度スケジュールにしたがってTの値を小さくしていく。
さらに、制御部25は、状態更新処理が所定の繰り返し回数、繰り返されたのちに、記憶部24aに保持されている状態(x〜x)を取得し、たとえば、最適化問題に対する解として制御装置26に送信する。なお、制御部25は、更新部24の記憶部24aが、最小エネルギーや最小エネルギー時の状態を保持している場合には、状態更新処理が所定の繰り返し回数、繰り返されたのちに、それらの情報を取得して、制御装置26に送信してもよい。
制御部25は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路にて実現できる。なお、制御部25は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサであってもよい。その場合、プロセッサは、図示しないメモリに記憶されたプログラムを実行することで、上記の処理を行う。
(ΔE算出部21の例)
図4は、ΔE算出部の一例を示す図である。
ΔE算出部21は、記憶部21a、選択回路21b1〜21bN、保持部21c1〜21cN、一致検出部21d1〜21dN、スイッチ21e1〜21eN、h更新回路21f1〜21fN、h伝搬制御部21g、ΔE算出回路21h1〜21hNを有する。
記憶部21aは、イジングモデルに含まれる全スピンに対応する全ビットの間の相互作用の大きさを示す重み値(W11〜WNN)を格納している。W11〜WNNは、初期設定処理時に、制御部25によって記憶部21aに記憶される。記憶部21aは、たとえば、レジスタやSRAMなどを用いて実現される。
選択回路21b1〜21bNのそれぞれは、識別情報計算部23が出力するインデックス=k,lに基づいて、記憶部21aに格納されている重み値のうち、2つを選択して出力する。たとえば、選択回路21biはW1i〜WNiの中から、Wki,Wliを選択して出力する。なお、インデックス=k,lのうち、kが先に選択回路21biに供給される場合、選択回路21biは、Wkiを先に出力し、lが先に選択回路21biに供給される場合、選択回路21biは、Wliを先に出力する。同様に選択回路21bjはW1j〜WNjの中から、Wkj,Wljを選択して出力する。
保持部21c1〜21cNのそれぞれは、グループインデックス(g〜g)のうちの1つを保持する。たとえば、保持部21ciは、インデックス=iのビットが属すグループを識別するgを保持する。保持部21cjは、インデックス=jのビットが属すグループを識別するgを保持する。
図5は、グループインデックスの値の例を示す図である。
図5の例では、インデックスが1,2,…,sのビットが属すグループ1のグループインデックスは1であり、インデックスがs+1,s+2,…,sのビットが属すグループ2のグループインデックスは2である。また、インデックスがsG−1+1,sG−1+2,…,Nのビットが属すグループGのグループインデックスはGである。
このように、インデックスが小さいビットが属すグループのグループインデックスほど、小さい値が割当てられる。
保持部21c1〜21cNの全体の記憶容量は、Nによって決まる。保持部21c1〜21cNのそれぞれは、たとえば、レジスタやSRAMを用いて実現される。
図4において、一致検出部21d1〜21dNとスイッチ21e1〜21eNとを含む回路部は以下のような機能を有する。
一致検出部21d1〜21dNのそれぞれは、識別情報計算部23から供給されるグループインデックス=gと、g〜gの何れかが一致している場合には、1を出力し、一致していない場合には0を出力する。たとえば、一致検出部21diは、g=gの場合には1を出力し、g≠gの場合には0を出力する。一致検出部21djは、g=gの場合には1を出力し、g≠gの場合には0を出力する。一致検出部21d1〜21dNのそれぞれは、たとえば、複数のExNOR(排他的否定論理和)回路と1つのAND(論理積)回路とを用いて実現される。たとえば、複数のExNOR回路のそれぞれは、入力される2つのグループインデックスの対応するビットの値を1ビットずつ入力し、両ビットが一致している場合に1を出力する。そして、AND回路は、複数のExNOR回路の出力が全て1の場合に1を出力する。
スイッチ21e1〜21eNのそれぞれは、オン状態のときに、選択回路21b1〜21bNの何れかが出力する重み値をΔE算出回路21h1〜21hNの記憶部21h1a〜21hNaの何れかに供給する。スイッチ21e1〜21eNのそれぞれは、一致検出部21d1〜21dNの何れかが出力する値が1の場合にオン状態となる。たとえば、スイッチ21eiは、一致検出部21diが1を出力する場合にオン状態となり、選択回路21biが出力する重み値をΔE算出回路21hiの記憶部21hiaに供給する。スイッチ21ejは、一致検出部21djが1を出力する場合にオン状態となり、選択回路21bjが出力する重み値をΔE算出回路21hjの記憶部21hjaに供給する。スイッチ21e1〜21eNのそれぞれは、たとえば、トライステートバッファである。
h更新回路21f1〜21fNのそれぞれは、図示を省略しているが保持部(たとえば、レジスタ)を有し、h〜hの何れかの保持及び更新を行う。たとえば、h更新回路21fiは、選択回路21biが選択したWki,Wliを用いて、h−Wki+Wliを計算することで、hを更新する。h更新回路21fjは、選択回路21bjが選択したWkj,Wljを用いて、h−Wkj+Wljを計算することで、hを更新する。h〜hの初期値は、たとえば、バイアス値(b〜b)であり、初期設定処理時に、制御部25によって設定される。h更新回路21f1〜21fNは、たとえば、加算器や減算器を用いて実現される。
h伝搬制御部21gは、x〜xとg〜gとに基づいて、値が1であるビットについてのローカルフィールド値の伝搬先(供給先)を制御する。たとえば、値が1であるインデックス=iのビットと値が0であるインデックス=jのビットが同じグループに属す場合、h伝搬制御部21gは、h更新回路21fiが出力するhをΔE算出回路21hiに伝搬するとともに、hが供給されるΔE算出回路21hjにも伝搬する。
図6は、h伝搬制御部の一例を示す図である。
h伝搬制御部21gは、スイッチ30a1,30a2,30a3,…,30a(N−1),30aN、制御信号生成回路30b1,30b2,30b3,…,30b(N−1)、スイッチ30c1,30c2,30c3,…,30c(N−1)を有する。
スイッチ30a1〜30aNのそれぞれには、x〜xの何れかが入力され、入力された状態変数が1の場合にオンし、0の場合にオフする。スイッチ30a1〜30aNのそれぞれの一方の端子には、h,h,h,…,hN−1,hの何れかが入力され、他方の端子は、ΔE算出回路21h1,21h2,21h3,…,21h(N−1),21hNの何れかに接続されている。たとえば、スイッチ30a1の一方の入力端子には、hが入力され、xが1の場合には、スイッチ30a1がオンし、hがΔE算出回路21h1に供給される。
制御信号生成回路30b1〜30b(N−1)のそれぞれは、入力端子IN1,IN2と出力端子OUTを有する。入力端子IN1,IN2には、インデックスが隣接する2つのビットのそれぞれが属すグループのグループインデックスが入力され、両グループインデックスが一致する場合に、出力端子OUTから1が出力される。
図7は、制御信号生成回路の一例を示す図である。
図7には、図6の制御信号生成回路30b1〜30b(N−1)のうちのi番目の制御信号生成回路30biの例が示されている。
制御信号生成回路30biは、t個のExNOR回路31a1〜31at、AND回路31bを有する。tは、グループインデックスを表現するためのビット数の最大値である。N=1024の場合、tは最大で10である。ExNOR回路31a1〜31atのそれぞれは、入力される2つのグループインデックスの対応するビットの値を1ビットずつ入力し、両ビットが一致している場合に1を出力する。たとえば、ExNOR回路31a1は、g,gi+1の最下位ビットg<1>,gi+1<1>を入力し、両ビットが一致している場合には、1を出力する。ExNOR回路31atは、g,gi+1の最上位ビットg<t>,gi+1<t>を入力し、両ビットが一致している場合には、1を出力する。
AND回路31bは、ExNOR回路31a1〜31atの出力が全て1の場合に1を出力し、ExNOR回路31a1〜31atの出力に1つでも0がある場合に0を出力する。
図6のスイッチ30c1〜30c(N−1)のそれぞれは、スイッチ30a1〜30aNのうち、隣接する何れか2つのスイッチの他方の端子(ΔE算出回路に接続される側)の間に接続されている。また、スイッチ30c1〜30c(N−1)のそれぞれは、制御信号生成回路30b1〜30b(N−1)の何れかが出力する値が1の場合にオンする。
たとえば、スイッチ30c1は、スイッチ30a1,30a2の他方の端子の間に接続されており、制御信号生成回路30b1が1を出力した場合にオンする。
スイッチ30a1〜30aN,30c1〜30c(N−1)のそれぞれは、たとえば、トランスファーゲートである。
図6に示すようなh伝搬制御部21gでは、たとえば、インデックス=1〜3のビットが同じグループに属し、x=1、x,x=0の場合、スイッチ30a1,30a3はオフし、スイッチ30a2はオンする。また、g=g=gであるため、制御信号生成回路30b1,30b2は1を出力し、スイッチ30c1,30c2がオンする。これにより、hが、スイッチ30a2を介してΔE算出回路21h2に供給されるとともに、スイッチ30c1を介してΔE算出回路21h1に供給され、スイッチ30c2を介してΔE算出回路21h3に供給される。
なお、インデックス=4のビットが、インデックス=1〜3のビットと異なるグループに属す場合、g≠gとなるため、制御信号生成回路30b3は0を出力し、スイッチ30c3はオフする。
図8は、h伝搬制御部の他の例を示す図である。
図8では、h伝搬制御部21gaの一部(インデックス=j−1,j,j+1,iのビットについてのhj−1,h,hj+1,hの伝搬制御を行う部分)が示されている。h伝搬制御部21gaは、トライステートバッファ32a1,32a2,32a3,32a4,32b1,32b2,32b3,32b4、制御信号生成部32cを有する。
トライステートバッファ32a1〜32a4のそれぞれの入力端子にはhj−1,h,hj+1,hの何れかが入力される。トライステートバッファ32a1〜32a4のそれぞれの出力端子は、ΔE算出回路21h(j−1),21hj,21h(j+1),21hiの何れかに接続されている。トライステートバッファ32a1〜32a4のそれぞれは、制御信号としてxj−1,x,xj+1,xの何れかを受け、制御信号が1の場合、入力端子に入力されるローカルフィールド値を出力し、制御信号が0の場合、出力端子をハイインピーダンス状態とする。
トライステートバッファ32b1の入力端子とトライステートバッファ32b2の出力端子は、トライステートバッファ32a1の出力端子及びΔE算出回路21h(j−1)に接続されている。トライステートバッファ32b1の出力端子とトライステートバッファ32b2の入力端子は、トライステートバッファ32a2の出力端子及びΔE算出回路21hjに接続されている。トライステートバッファ32b3の入力端子とトライステートバッファ32b4の出力端子は、トライステートバッファ32a2の出力端子及びΔE算出回路21hjに接続されている。トライステートバッファ32b3の出力端子とトライステートバッファ32b4の入力端子は、トライステートバッファ32a3の出力端子及びΔE算出回路21h(j+1)に接続されている。トライステートバッファ32b1は、制御信号CNTj−1,jを受け、トライステートバッファ32b2は、制御信号CNTj,j−1を受ける。トライステートバッファ32b3は、制御信号CNTj,j+1を受け、トライステートバッファ32b4は、制御信号CNTj+1,jを受ける。そして、トライステートバッファ32b1〜32b4のそれぞれは、これらの制御信号が1の場合、入力信号を出力端子から出力し、制御信号が0の場合、出力端子をハイインピーダンス状態とする。
制御信号生成部32cは、g〜g、x〜xに基づいて、制御信号CNT(CNTj−1,j,CNTj,j−1,CNTj,j+1,CNTj+1,jを含む)を生成する。制御信号生成部32cは、たとえば、以下のような関係にしたがって制御信号を出力する論理回路である。
図9は、制御信号生成部が出力する制御信号の例を示す図である。
なお、インデックス=iは、値が1であるビットのインデックスであり、インデックス=jは、値が0であるビットのインデックスである。DIR(j)は、i>jの場合に0、i=jの場合に1、i<jの場合に2となる変数である。
インデックス=j−1,j,j+1のビットが同じグループに属し(gj−1=g=gj+1)、DIR(j)=0の場合、制御信号CNTj−1,j,CNTj,j+1は0となり、制御信号CNTj,j−1,CNTj+1,jは1となる。このため、図8において、hが、トライステートバッファ32b4を介して、ΔE算出回路21hjに供給されるとともに、トライステートバッファ32b2を介して、ΔE算出回路21h(j−1)に供給される。
j−1=g=gj+1、DIR(j)=1の場合、制御信号CNTj−1,j,CNTj+1,jは0となり、制御信号CNTj,j−1,CNTj,j+1は1となる。この場合は、図8において、h=hになり、hはトライステートバッファ32b3を介して、ΔE算出回路21h(j+1)に供給されるとともに、トライステートバッファ32b2を介して、ΔE算出回路21h(j−1)に供給される。
j−1=g=gj+1、DIR(j)=2の場合、制御信号CNTj,j−1,CNTj+1,jは0となり、制御信号CNTj−1,j,CNTj,j+1は1となる。このため、図8において、hが、トライステートバッファ32b1を介して、ΔE算出回路21hjに供給されるとともに、トライステートバッファ32b3を介して、ΔE算出回路21h(j+1)に供給される。
インデックス=j−1,jのビットが異なるグループに属し(gj−1≠g)、インデックス=j,j+1のビットが同じグループに属す場合(g=gj+1)は、以下のようになる。DIR(j)=0の場合、制御信号CNTj−1,j,CNTj,j−1,CNTj,j+1は0となり、制御信号CNTj+1,jは1となる。このため、hが、トライステートバッファ32b4を介して、ΔE算出回路21hjに供給される。DIR(j)=1の場合、制御信号CNTj−1,j,CNTj,j−1,CNTj+1,jは0となり、制御信号CNTj,j+1は1となる。この場合は、図8において、h=hになり、hが、トライステートバッファ32b3を介して、ΔE算出回路21h(j+1)に供給される。gj−1≠g、g=gj+1及びDIR(j)=2というケースは、インデックス=i,jのビットが別グループになり、グループ内に値が1のビットが存在しないことになるため、1−hot制約を満たす状態間での遷移を行う最適化装置20では起こり得ない。
同様に、インデックス=j−1,jのビットが同じグループに属し(gj−1=g)、インデックス=j,j+1のビットが異なるグループに属し(g≠gj+1)、DIR(j)=0というケースも起こり得ない。gj−1=g、g≠gj+1及びDIR(j)=1の場合、制御信号CNTj−1,j,CNTj+1,j,CNTj,j+1は0となり、制御信号CNTj,j−1は1となる。この場合は、図8において、h=hになり、hが、トライステートバッファ32b2を介して、ΔE算出回路21h(j−1)に供給される。gj−1≠g、g=gj+1及びDIR(j)=2の場合、制御信号CNTj,j−1,CNTj+1,j,CNTj,j+1は0となり、制御信号CNTj−1,jは1となる。この場合は、hが、トライステートバッファ32b1を介して、ΔE算出回路21hjに供給される。
なお、インデックス=j−1,j,j+1のビットが異なるグループに属する(gj−1≠g≠gj+1)というケースは、DIR(j)の値によらず(図9中の「φ」はドントケアを示す)、インデックス=i,jのビットが別グループになるため起こり得ない。
図4の説明に戻る。ΔE算出回路21h1〜21hNは、ローカルフィールド値と重み値とを用いて、ハミング距離=2の状態遷移によって1−hot制約を満たすある状態から1−hot制約を満たす別の状態に遷移するときのΔE〜ΔEを算出する。
ΔE算出回路21h1〜21hNのそれぞれには、h更新回路21f1〜21fNの何れかから、h〜hの何れかが直接供給される。さらに、値が0のビットについてのローカルフィールド値がh更新回路21f1〜21fNの何れかから供給されるΔE算出回路には、h伝搬制御部21gによって、そのビットと同じグループに属す値が1のビットについてのローカルフィールド値が伝搬される。
また、ΔE算出回路21h1〜21hNは、式(7)の計算をするための重み値を保持する記憶部21h1a〜21hNaを有する。
図10は、ΔE算出回路による処理例を示す図である。
あるグループにおいて、値が0であるビットについてのhがh更新回路21fjから直接供給されるΔE算出回路21hjには、h伝搬制御部21gにより、そのビットと同じグループに属す値が1のビットについてのhが伝搬される。また、ΔE算出回路21hjの記憶部21hjaには、重み値Wijが保持されている。Wijは、スイッチ21ejがオン状態のときに、選択回路21bjが出力した重み値である。hの更新を行うために記憶部21aから読み出された重み値のうち、ΔEの算出に用いるWijが記憶部21hjaに記憶されるため、ΔEの算出の際にWijを再度、記憶部21aから読み出さなくてよい。
ΔE算出回路21hjは、h,hとWijに基づいて、xが1から0に変化するとともに、xが0から1に変化することによるΔEを、式(7)に基づいて算出する。
ΔE算出回路21hiには、hが供給され、記憶部21hiaには、重み値Wiiが保持される。第1の実施の形態の最適化装置10の説明の際に示したように、同一ビットによるハミング距離=2の状態遷移を避けるため、ΔE算出回路21hiは、制御信号EN=1によって、所定の正の値であるΔEmaxを出力するように制御されている。ΔEmaxは、たとえば、最適化装置20が生成できる正の最大値である。なお、ΔE算出回路21hjには、制御信号EN=0が供給されており、ΔEmaxを出力する機能は無効になっている。つまり、値が1であるビットについてのhを直接受けるΔE算出回路21hiには、制御信号EN=1が供給され、値が0であるビットについてのhを直接受けるΔE算出回路21hjには、制御信号EN=0が供給される。制御信号EN,ENは、更新部24によってx〜xに基づいて生成される。
(選択回路22の一例)
図11は、選択回路の一例を示す図である。
選択回路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)を以下の式(11)、式(12)のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。
Figure 2020064536
Figure 2020064536
式(11)、式(12)においてTは、前述の温度パラメータである。
式(11)で表される許容確率A(ΔE,T)を用いた場合、十分な反復後に定常状態に達したとすると、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布にしたがう。そして、高い温度から徐々に下げていくとエネルギーの低い状態の占有確率が増加するため、十分温度が下がるとエネルギーの低い状態が得られるはずである。この様子が材料を焼き鈍したときの状態変化とよく似ているため、この方法はシミュレーテッド・アニーリングと呼ばれるのである。このとき、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
許容確率A(ΔE,T)でΔEを引き起こす状態遷移を許容することを示すフラグ(=1)を出力する回路は、式(11)、式(12)の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についても、図11に示すような回路を用いて実現できる。
(識別情報計算部23の一例)
図12は、識別情報計算部の一例を示す図である。
図12の例では、識別情報計算部23は、テーブル23a,23bを用いて、グループインデックスであるgや値が1であるビットのインデックスであるkを出力する。テーブル23a,23bは、たとえば、RAM、フラッシュメモリなどのメモリに記憶されている。
テーブル23aは、N個のビットのそれぞれが属すグループのグループインデックスを小さい順に並べたものである。
識別情報計算部23は、選択回路22がインデックス=lとして出力する、l番目のビットの値が1で、他のビットの値が0であるNビット値を、テーブル23aのグループインデックスにアクセスするためのアドレスとして用いる。l番目のビットの値が1である場合に、テーブル23aにおいて、l番目のグループインデックス=gが出力される。
テーブル23bは、G個のグループのそれぞれにおいて、値が1であるビットのインデックスを小さい順に並べたものである。図12の例では、グループインデックス=1のグループに属す値が1であるビットのインデックスはsであり、グループインデックス=Gのグループに属す値が1であるビットのインデックスはNである。また、グループインデックス=gのグループに属す値が1であるビットのインデックスはkである。
識別情報計算部23は、テーブル23aを用いて出力したグループインデックス=gを、テーブル23bのインデックスにアクセスするためのアドレスとして用いる。識別情報計算部23は、テーブル23aに配列されているインデックスのうち、g番目のインデックス=kを出力する。
なお、テーブル23bは、状態更新処理が行われるたびに更新される。
以下、識別情報計算部23の他の例を説明する。
図13は、インデックス、グループインデックス、選択回路の出力及び更新前の状態変数の一例を示す図である。
インデックス=k,lのビットは、グループインデックス=gのグループgに属している。選択回路22は、l番目のビットの値が1で、他のビットの値が0であるNビット値をインデックス=lとして出力している。インデックス=1〜Nのそれぞれに対応するグループインデックスと選択回路22が出力するNビット値のうちの1ビットとの積を積算することで、グループインデックス=gが得られる。すなわち、gは以下の式(13)で表せる。
Figure 2020064536
式(13)において、slは、選択回路22が出力するNビット値のうちのi番目のビットの値であり、gは、g〜gうち、i番目のグループインデックスである。
一方、インデックスkは、以下の式(14)で表せる。
Figure 2020064536
式(14)において、qは、g=gのときに1、g≠gのときに0となる変数である。
式(13)、式(14)は、たとえば、以下のような論理回路により計算できる。
図14は、識別情報計算部の他の例を示す図である。
識別情報計算部23は、AND回路23c1,23c2,…,23cN、OR(論理和)回路23dを有する。また、識別情報計算部23は、ExNOR回路23e1,23e2,…,23eN、AND回路23f1,23f2,…,23fN、乗算器23g1,23g2,…,23gN、加算器23hを有する。
AND回路23c1〜23cNとOR回路23dにより、上記の式(13)で表せるグループインデックス=gが計算される。
AND回路23c1〜23cNのそれぞれは、式(13)のsl・g(i=1〜N)を出力する。
OR回路23dは、AND回路23c1〜23cNの出力値の論理和であるgを出力する。
ExNOR回路23e1〜23eN、AND回路23f1〜23fN、乗算器23g1〜23gN、加算器23hにより、上記の式(14)で表せるインデックス=kが計算される。
ExNOR回路23e1〜23eNは、式(14)のq(i=1〜N)を出力する。
AND回路23f1〜23fNは、式(14)のq・xを出力する。
乗算器23g1〜23gNは、式(14)のi(q・x)を出力する。なお、1〜NであるiはlogNビットで表される。
加算器23hは、乗算器23g1〜23gNの出力値を加算することで、インデックス=kを出力する。
なお、識別情報計算部23は、選択回路22が出力したフラグやインデックス=lも出力する。たとえば、識別情報計算部23は、まず、フラグとインデックス=kを出力し、その後、フラグとインデックス=lをグループインデックス=gとともに出力してもよい。
なお、図1に示した第1の実施の形態の最適化装置10の識別情報計算部13についても、図13に示したテーブル23a,23bまたは、図14に示した回路を用いて、インデックス=kやグループインデックス=gを出力してもよい。
(最適化装置20の全体動作例)
図15は、第2の実施の形態の最適化装置の一例の処理の流れを示すフローチャートである。
また、図16は、初期設定処理の一例の流れを示すフローチャートである。
図15のステップS1の初期設定処理は、たとえば、図16に示すような処理を含む。 制御部25は、制御装置26から受信したW11〜WNNをΔE算出部21の記憶部21aに記憶する(ステップS20)。
また、制御部25は、制御装置26から受信したh〜hの初期値(たとえば、バイアス値)をΔE算出部21のh更新回路21f1〜21fNに設定する(ステップS21)。
さらに、制御部25は、制御装置26から受けたアニーリング条件に基づいて、選択回路22に温度パラメータTの初期値を設定する(ステップS22)。
また、制御部25は、x〜x(全て0)を、記憶部24aに記憶するとともに(ステップS23)、g〜gを保持部21c1〜21cNに設定する(ステップS24)。
その後、制御部25は、変数gをg=1とする(ステップS25)。そして、制御部25は、乱数を用いてg=gのグループに属す1つのビットのインデックス=lgを選択するとともに、x〜xのうち、xlgを1に更新し、記憶部24aに記憶する(ステップS26)。
また、制御部25は、xlgの更新に伴ってh〜hを更新する(ステップS27)。xlgが0から1に変化するときのh(i=1〜N)の変化分は、+Wlg,iであるため、hは、h=h+Wlg,iと更新される。更新されたh〜hは、h更新回路21f1〜21fN内の図示しない保持部に記憶される。
その後、制御部25は、ΔE算出回路21h1〜21hNのうち、g=gのグループに属すビットについてのローカルフィールド値が供給されるΔE算出回路の記憶部にWlg,j(jはgのグループ内のビットのインデックス)を記憶する(ステップS28)。
次に、制御部25は、g=Gであるか否かを判定し(ステップS29)、g=Gである場合には、初期設定処理を終了し、g=Gでない場合には、g=g+1とし(ステップS30)、ステップS26からの処理を繰り返す。
なお、識別情報計算部23が図12に示したようなテーブル23bを用いる場合、制御部25は、ステップS26の処理を行うたびに得られるインデックス=lgを、配列していくことで、テーブル23bを作成できる。
なお、初期設定処理における処理の順序は、上記の例に限定されるわけではなく、適宜順番を入れ替えてもよい。
上記のような初期設定処理が終了した後、h伝搬制御部21gは、x〜xとg〜gとに基づいて、h〜hをΔE算出回路21h1〜21hNに供給する(ステップS2)。たとえば、値が1であるインデックス=iのビットと値が0であるインデックス=jのビットが同じグループに属す場合、h伝搬制御部21gは、h更新回路21fiが出力するhをΔE算出回路21hiに供給するとともに、ΔE算出回路21hjにも供給する。
その後、ΔE算出回路21h1〜21hNによる前述したようなΔE〜ΔEの計算が行われる(ステップS3)。そして、図11に示したような選択回路22において、オフセット値の加算が行われたのち(ステップS4)、インデックス=lの選択が行われる(ステップS5)。識別情報計算部23は、前述の処理により、インデックス=kとグループインデックス=gを出力する(ステップS6)。なお、識別情報計算部23が、図11に示したようなテーブル23bを用いる場合、識別情報計算部23は、インデックス=kをテーブル23bから読み出した後に、同じ記憶領域に、インデックス=lを上書きする。
その後、更新部24は、記憶部24aに記憶されているインデックス=kのビットの値(x)を1から0に更新するとともに、h更新回路21f1〜21fNは、xの更新に伴ってh〜hを更新する(ステップS7)。
さらに、更新部24は、記憶部24aに記憶されているインデックス=lのビットの値(x)を0から1に更新するとともに、h更新回路21f1〜21fNは、xの更新に伴ってh〜hを更新する。さらに、ΔE算出部21は、gのグループに属すビットについてのローカルフィールド値が供給されるΔE算出回路の記憶部に記載される重み値を更新する(ステップS8)。たとえば、識別情報計算部23がインデックス=lを出力した場合、図4に示した選択回路21bjは、Wljを出力する。g=gである場合、このWljがΔE算出回路21hjに供給される。図10に示したΔE算出回路21hjの記憶部21hjaにWkjが記憶されている場合、WkjはWljに更新される。
その後、制御部25は、状態の更新処理回数が、所定回数N1に達したか否か判定する(ステップS9)。更新処理回数が所定回数N1に達していない場合には、ステップS2〜S8の処理が繰り返される。
更新処理回数が所定回数N1に達した場合、制御部25は、Tの変更回数(温度変更回数)が、所定回数N2に達したか否かを判定する(ステップS10)。
温度変更回数が所定回数N2に達していない場合、制御部25は、Tを変更する(温度を下げる)(ステップS11)。所定回数N1,N2、Tの値の変更の仕方(一度に値をどのくらい小さくするかなど)は、アニーリング条件に基づいて決定される。ステップS11の処理後、ステップS2からの処理が繰り返される。
温度変更回数が所定回数N2に達している場合、制御部25は、そのときの各ビットの値(変数x(i=1〜N))を記憶部24aから取得して、解(計算結果)として制御装置26に送信(出力)する(ステップS12)。なお、制御部25には、表示装置が接続されていてもよい。その場合、制御部25は、表示装置に、計算結果が表示されるようにしてもよい。
また、更新部24が、インデックス=k,lに対応するエネルギー変化に基づいてエネルギーを更新するとともに、各更新時点での最小エネルギーとその最小エネルギーが得られたときの状態(最小エネルギー時の状態)とを保持するようにしてもよい。その場合、制御部25は、温度変更回数が所定回数N2に達したときに、更新部14が保持している最小エネルギー時の状態を取得して、解として出力してもよい。
なお、上記の処理の順序は、上記の例に限定されるわけではなく、適宜順番を入れ替えてもよい。たとえば、ステップS7,S8の処理の順序は逆であってもよい。
以上のような、第2の実施の形態の最適化装置20においても、第1の実施の形態の最適化装置10と同様の効果が得られる。
図17は、第2の実施の形態の最適化装置を用いた場合の計算短縮効果を表すシミュレーション結果を示す図である。
横軸は状態の更新処理の繰り返し回数を表し、縦軸は正解に達したレプリカ数(最適化装置20の数)を表す。
計算対象の問題は、車が32台、ルート数が32本の(1024ビットのイジングモデルで表せる)交通量最適化問題である。
図17には、比較のために、第2の実施の形態の最適化装置20を用いた場合のシミュレーション結果40とともに、ハミング距離=1の遷移を繰り返しながらエネルギーを最小化する従来の最適化装置を用いた場合のシミュレーション結果41が示されている。
図17のように、第2の実施の形態の最適化装置20では、従来の最適化装置と比較して解の収束時間が1000倍以上短くなる。たとえば、正解に達したレプリカ数=15の場合、1830倍の高速化が得られている。
また、上記の交通量最適化問題の例では、式(3)に示した右辺の2項目の1−hot制約項を削除できることにより、重み値のビット数を、16ビットから7ビットに低減できる。このため、重み値を記憶する記憶部21aのハードウェア量を、1−hot制約項を有する場合に比べて、50%以上削減できる。最適化装置20の全体のハードウェア量に対して、記憶部21aの占める割合は大きいため(従来の最適化装置では80%以上)、重み値のビット数を低減できることによる効果は大きい。
(変形例)
第2の実施の形態の最適化装置20は、1−hot制約を満たす状態間での状態遷移を行うものであったが、従来の最適化装置のようにハミング距離=1の状態遷移を行う機能を有していてもよい。この場合、最適化装置20には、1−hot制約を満たす状態間での状態遷移を行う機能(以下、1−hot制約対応機能という)を無効にして、ハミング距離=1の状態遷移を行う機能を実行する構成が追加されることになる。
図18は、1−hot制約対応機能を無効にする構成を有する最適化装置におけるh伝搬制御部の第1の例を示す図である。図18において、図6に示した要素と同じ要素には、同一符号が付されている。
図18には、スイッチ30a2,30a3の制御信号を生成するOR回路50,51が示されている。OR回路50の一方の入力端子には、1hotENの値(1か0)が反転して(1から0または0から1に変化して)入力される。OR回路50の他方の入力端子には、xが入力される。OR回路51の一方の入力端子には、1hotENの値が反転して入力され、OR回路51の他方の入力端子には、xが入力される。
1hotENは、1−hot制約対応機能を有効にするか否かを示すイネーブル信号である。以下では、1hotEN=1の場合、上記機能が有効になり、1hotEN=0の場合、上記機能が無効になり、ハミング距離=1の状態遷移が行われるものとする。1hotENは、たとえば、図3に示した制御部25が出力する。
OR回路50は、1hotEN=1の場合、xを制御信号として出力し、1hotEN=0の場合、xによらずに1を出力し、スイッチ30a2をオンする。OR回路51は、1hotEN=1の場合、xを制御信号として出力し、1hotEN=0の場合、xによらずに1を出力し、スイッチ30a3をオンする。
図6に示したスイッチ30a1〜30aNのうち、スイッチ30a2,30a3以外のスイッチに対しても、図18に示したようなOR回路50,51と同様なOR回路により制御信号が供給される。
また、図18では、図6に示した制御信号生成回路30b2の代わりに、制御信号生成回路30b2xが示されている。制御信号生成回路30b2xは、g,gが入力されるとともに、1hotENが入力される。制御信号生成回路30b2xは、1hotENが1、g=gの場合、1を出力し、スイッチ30c2をオンさせ、1hotENが1、g≠gの場合、0を出力し、スイッチ30c2をオフさせ、制御信号生成回路30b2xは、1hotENが0の場合、gとgの関係によらず、0を出力し、スイッチ30c2をオフする。
図19は、1hotENに基づいた制御信号を生成する制御信号生成回路の一例を示す図である。図19において、図7に示した要素と同じ要素には、同一符号が付されている。
図19に示した制御信号生成回路30bixのAND回路52は、図7に示した制御信号生成回路30biのAND回路31bと異なり、ExNOR回路31a1〜31atの出力を入力するとともに、1hotENを入力する。そのため、AND回路52は、1hotENが=0の場合には、ExNOR回路31a1〜31atの出力によらずに、0を出力する。
図6に示したスイッチ30c1〜30cN(N−1)のそれぞれに対して、図19に示したような制御信号生成回路30bixにより制御信号が供給される。
図20は、1−hot制約対応機能を無効にする構成を有する最適化装置におけるh伝搬制御部の第2の例を示す図である。図20において、図8に示した要素と同じ要素には、同一符号が付されている。
図20には、トライステートバッファ32a1,32a2の制御信号を生成するOR回路53,54、トライステートバッファ32b1,32b2の制御信号を生成するAND回路55,56が示されている。
OR回路53の一方の入力端子には、1hotENの値が反転して入力される。OR回路53の他方の入力端子には、xj−1が入力される。OR回路54の一方の入力端子には、1hotENの値が反転して入力され、OR回路54の他方の入力端子には、xが入力される。
OR回路53は、1hotEN=1の場合、xj−1を制御信号として出力し、1hotEN=0の場合、xj−1によらずに1を出力する。OR回路53の出力が1のとき、トライステートバッファ32a1は、hj−1を出力する。OR回路53の出力が0のとき、トライステートバッファ32a1の出力端子はハイインピーダンス状態となる。OR回路54は、1hotEN=1の場合、xを制御信号として出力し、1hotEN=0の場合、xによらずに1を出力する。OR回路54の出力が1のとき、トライステートバッファ32a2は、hを出力する。OR回路54の出力が0のとき、トライステートバッファ32a2の出力端子はハイインピーダンス状態となる。
図8に示したトライステートバッファ32a3,32a4に対しても、図20に示したようなOR回路53,54と同様なOR回路により制御信号が供給される。
AND回路55の一方の入力端子には、1hotENが入力され、他方の入力端子には、制御信号CNTj−1,jが入力される。AND回路56の一方の入力端子には、1hotENが入力され、他方の入力端子には、制御信号CNTj,j−1が入力される。
AND回路55は、1hotEN=1の場合、制御信号CNTj−1,jを出力し、1hotEN=0の場合、制御信号CNTj−1,jによらずに0を出力する。AND回路55の出力が1のとき、トライステートバッファ32b1は入力信号を出力端子から出力する。AND回路55の出力が0のとき、トライステートバッファ32b1の出力端子はハイインピーダンス状態となる。AND回路56は、1hotEN=1の場合、制御信号CNTj,j−1を出力し、1hotEN=0の場合、制御信号CNTj,j−1によらずに0を出力する。AND回路56の出力が1のとき、トライステートバッファ32b2は入力信号を出力端子から出力する。AND回路56の出力が0のとき、トライステートバッファ32b2の出力端子はハイインピーダンス状態となる。
図8に示したトライステートバッファ32b3,32b4に対しても、図20に示したようなAND回路55,56と同様なAND回路により制御信号が供給される。
以上のような要素を、h伝搬制御部21gまたはh伝搬制御部21gaに加えることで、1hotEN=0の場合、ΔE算出回路21h1〜21hNのそれぞれには、対応する1つのローカルフィールド値が供給されることになる。たとえば、ΔE算出回路21hjには、hが供給され、hは供給されない。
図21は、1−hot制約対応機能を無効にする構成を有する最適化装置におけるΔE算出回路の例を示す図である。
ΔE算出回路21hjxは、図10に示したΔE算出回路21hjに対応するものである。ΔE算出回路21hjと異なり、ΔE算出回路21hjxには、1hotENとxが供給される。なお、1hotEN=0の場合には、h,hのうち、hは供給されない。
このようなΔE算出回路21hjxは、1hotEN=0の場合、xが変化することによるΔEを算出する。ΔE算出回路21hjxは、xが0から1に変化する場合(現在のxが0の場合)、ΔE=−hを出力し、xが1から0に変化する場合(現在のxが1の場合)、ΔE=+hを出力する。ΔE算出回路21hjxは、1hotEN=1の場合、ΔE=h−h+Wijを出力する。
図4に示したΔE算出回路21h1〜21hNのそれぞれについても、図21に示すような構成となる。
図22は、1−hot制約対応機能を無効にする構成を有する最適化装置における識別情報計算部の例を示す図である。
識別情報計算部23xは、図3に示した識別情報計算部23と異なり、1hotENを受ける。識別情報計算部23xは、1hotEN=1の場合、インデックス=lに基づいて、インデックス=kとグループインデックス=gを出力し、1hotEN=0の場合、インデックス=kとグループインデックス=gとして、たとえば、0を出力する。
選択回路22が出力するインデックス=lは、1hotENの値によらず、ΔE算出部21と更新部24に供給される。
なお、1hotEN=0の場合、識別情報計算部23xはグループインデックス=gとして、たとえば、0を出力するため、図4の一致検出部21d1〜21dNは常に0を出力する。このため、スイッチ21e1〜21eNは、常にオフ状態となり、ΔE算出回路21h1〜21hNの記憶部21h1a〜21hNaには、重み値は記憶されない。なお、1hotEN=0の場合、識別情報計算部23xが出力するgは、0でなくてもよく、1〜G以外の値であればよい。
以上のように第2の実施の形態の最適化装置20に対して、上記のような変形を行うことで、計算対象の問題に応じて1−hot制約対応機能を無効にして、ハミング距離=1の状態遷移を行う機能を実行することが可能になる。
1−hot制約対応機能が無効の場合、選択回路22に供給されるΔE〜ΔEのそれぞれは、N個のビットのうちの何れか1つが変化することによるエネルギー変化を表す。そして、選択回路22は、前述の熱励起エネルギーとΔE〜ΔEとの大小関係に基づいて、N個のビットのうちで更新を許容する1つのビットを識別するインデックスを出力する。更新部24は、そのインデックスで識別されるビットの値を更新する。
ところで、上記の説明では、たとえば、図13に示したように、小さいインデックスで識別されるビットほど、小さいグループインデックスのグループに属するようにしていたが、これに限定されない。たとえば、一端、インデックスの小さい順に配列したビットの並びを、グループ内またはグループ同士でシャッフルしてもよい。
図23は、シャッフル処理を含む最適化装置の一例の処理の流れを示すフローチャートである。
制御部25によって、ビットの並びをシャッフルする処理(ステップS1a)は、たとえば、図15に示した初期設定処理の前に行われる。ビットの並びをシャッフルした場合、それに応じて記憶部21aに記憶する重み値の並びもシャッフルすることになるためである。
以上、実施の形態に基づき、本発明の最適化装置及び最適化装置の制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化装置
11p1〜11pn ΔE算出回路
12 選択回路
13 識別情報計算部
14 更新部
14a 記憶部

Claims (7)

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

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018197199A JP7193708B2 (ja) 2018-10-19 2018-10-19 最適化装置及び最適化装置の制御方法
EP19202788.6A EP3640860A1 (en) 2018-10-19 2019-10-11 Optimization device and control method of optimization device
US16/654,585 US11188044B2 (en) 2018-10-19 2019-10-16 Optimization device and control method of optimization device
CN201910982755.9A CN111078621B (zh) 2018-10-19 2019-10-16 优化装置及优化装置的控制方法

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2020064536A true JP2020064536A (ja) 2020-04-23
JP7193708B2 JP7193708B2 (ja) 2022-12-21

Family

ID=68280876

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US11188044B2 (ja)
EP (1) EP3640860A1 (ja)
JP (1) JP7193708B2 (ja)
CN (1) CN111078621B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4375831A1 (en) 2022-11-28 2024-05-29 Fujitsu Limited Data processing apparatus, program, and data processing method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526336B2 (en) * 2021-03-15 2022-12-13 Fujitsu Limited Community-oriented, cloud-based digital annealing platform
CN115031357B (zh) * 2022-05-10 2023-05-30 南京信息工程大学 一种适用于不同类型故障特征的基于投票策略的故障诊断方法

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 (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3861157B2 (ja) * 2004-02-27 2006-12-20 国立大学法人広島大学 参照データ最適化装置とパターン認識システム
US7533068B2 (en) * 2004-12-23 2009-05-12 D-Wave Systems, Inc. Analog processor comprising quantum devices
WO2007006144A1 (en) * 2005-07-11 2007-01-18 D-Wave Systems Inc. Systems, methods and apparatus for factoring numbers
US11276009B2 (en) * 2015-08-07 2022-03-15 University Of Southern California Using noise to speed convergence of simulated annealing and Markov Monte Carlo estimations
US20180285787A1 (en) 2015-09-30 2018-10-04 Nec Corporation Optimization system, optimization method, and optimization program
JPWO2017056367A1 (ja) 2015-09-30 2018-08-16 日本電気株式会社 情報処理システム、情報処理方法および情報処理用プログラム
WO2017056366A1 (ja) 2015-09-30 2017-04-06 日本電気株式会社 最適化システム、最適化方法および最適化プログラム
JP6468247B2 (ja) * 2016-06-06 2019-02-13 富士通株式会社 イジング装置及びイジング装置の制御方法
JP6623947B2 (ja) * 2016-06-17 2019-12-25 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6773970B2 (ja) 2016-09-09 2020-10-21 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

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, JPN6022016547, 31 August 1994 (1994-08-31), pages 966 - 975, ISSN: 0004766104 *
塚本 三六, 外3名: ""組み合わせ最適化問題向けハードウェアの高速化アーキテクチャー"", FUJITSU [ONLINE], vol. 68, no. 5, JPN6022016548, September 2017 (2017-09-01), pages 8 - 14, ISSN: 0004766103 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4375831A1 (en) 2022-11-28 2024-05-29 Fujitsu Limited Data processing apparatus, program, and data processing method

Also Published As

Publication number Publication date
JP7193708B2 (ja) 2022-12-21
CN111078621B (zh) 2023-08-11
EP3640860A1 (en) 2020-04-22
US11188044B2 (en) 2021-11-30
US20200125047A1 (en) 2020-04-23
CN111078621A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
CN111078621B (zh) 优化装置及优化装置的控制方法
US11422515B2 (en) Optimization device and method for controlling optimization device
CN111077768B (zh) 优化装置及优化装置的控制方法
US11244026B2 (en) Optimization problem arithmetic method and optimization problem arithmetic device
JP7100257B2 (ja) 最適化装置及び最適化装置の制御方法
JP7068575B2 (ja) 最適化システム、最適化装置及び最適化システムの制御方法
JP2020204929A (ja) サンプリング装置およびサンプリング方法
JP2020204928A (ja) 最適化装置および最適化方法
CN112381209A (zh) 一种模型压缩方法、系统、终端及存储介质
CN110009048B (zh) 一种神经网络模型的构建方法以及设备
JPWO2020054062A1 (ja) 最適化装置および最適化装置の制御方法
US7734456B2 (en) Method and apparatus for priority based data processing
US11409836B2 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US11886780B2 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
Cortés-Antonio et al. Design and implementation of differential evolution algorithm on FPGA for double-precision floating-point representation
US20200089475A1 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
EP4148628A1 (en) Data processing apparatus, data processing method, and data processing program
CN116415103B (zh) 一种数据处理的方法、装置、存储介质以及电子设备
JP2024062514A (ja) データ処理装置、データ処理方法およびプログラム
JP2023073842A (ja) 最適化方法、情報処理装置、及び、情報処理システム
CN113283609A (zh) 信息处理方法、信息处理设备和信息处理程序

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221121

R150 Certificate of patent or registration of utility model

Ref document number: 7193708

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150