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

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

Info

Publication number
JP2020035179A
JP2020035179A JP2018161212A JP2018161212A JP2020035179A JP 2020035179 A JP2020035179 A JP 2020035179A JP 2018161212 A JP2018161212 A JP 2018161212A JP 2018161212 A JP2018161212 A JP 2018161212A JP 2020035179 A JP2020035179 A JP 2020035179A
Authority
JP
Japan
Prior art keywords
neuron
state
update
circuit
energy
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
JP2018161212A
Other languages
English (en)
Other versions
JP7093009B2 (ja
Inventor
純平 小山
Junpei Koyama
純平 小山
田村 泰孝
Yasutaka Tamura
泰孝 田村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018161212A priority Critical patent/JP7093009B2/ja
Priority to US16/521,680 priority patent/US11645496B2/en
Publication of JP2020035179A publication Critical patent/JP2020035179A/ja
Application granted granted Critical
Publication of JP7093009B2 publication Critical patent/JP7093009B2/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/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

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

Abstract

【課題】3値以上の値をもつ変数を扱う最適化装置の回路規模の増大を抑制する。【解決手段】算出回路11b1〜11bNは、それぞれm値(mは3以上の正の整数)の変数を用いて状態が表される複数のニューロンのうち、状態が更新された第1のニューロンの状態変化方向と、第1のニューロンと第2のニューロンとの間の相互作用の大きさを示す重み係数と、に基づいて、第2のニューロンの状態が、正負両方向に2n(nは0以上の整数)変化することによる2つのエネルギー変化を算出する。状態遷移判定回路11c1〜11cNは、熱励起エネルギーと、上記2つのエネルギー変化との大小関係に基づいて、2つのエネルギー変化をもたらす第2のニューロンの状態の更新をそれぞれ許容するか否かを判定し、更新を許容するか否かの判定結果を出力するとともに、第2のニューロンの状態が上限値を超えるまたは下限値を下回る更新を制限する。【選択図】図1

Description

本発明は、最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムに関する。
従来、ノイマン型コンピュータが不得意とする多変数の最適化問題を、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)によって計算する方法がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
最適化装置は、たとえば、ニューラルネットワークを用いて問題をモデル化することもできる。その場合、イジングモデルに含まれる複数のスピンに対応した複数のビットのそれぞれが、他のビットの値と、他のビットと自身のビットとの相互作用の大きさを示す重み値(結合係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、シミュレーテッド・アニーリングなどの確率的探索法により、イジングモデルのエネルギー関数の値(以下エネルギーという)の最小値が得られる各ニューロンの状態の組み合わせを、解として求める。
従来、デジタル回路を用いてシミュレーテッド・アニーリングを行うことでエネルギーが最小となる各ニューロンの状態の組み合わせを計算する最適化装置がある(たとえば、特許文献1参照)。
特開2018−041351号公報 特開2016−051314号公報 特開2006−072691号公報
ところで、最適化問題の中には、整数計画問題などのように、変数が0と1の2値ではなく3値以上の値をとるものも多い。
しかし、従来の最適化装置で3値以上の値をもつ変数を用いてニューロンの状態を表す場合、1つの変数を複数ビットを用いて表現することにより、ニューロンの状態を更新するか否かを決めるイジングモデルのエネルギー変化を算出するための回路規模が増大してしまう問題がある。
1つの側面では、本発明は、3値以上の値をもつ変数を扱う最適化装置の回路規模の増大を抑制可能な最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムを提供することを目的とする。
1つの実施態様では、計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応し、それぞれm値(mは3以上の正の整数)の変数を用いて状態が表される複数のニューロンのうち、状態が更新された第1のニューロンの状態変化方向と、前記第1のニューロンと第2のニューロンとの間の相互作用の大きさを示す重み係数と、に基づいて、前記第2のニューロンの状態が、正負両方向に2(nは0以上の整数)変化することによる前記イジングモデルの2つのエネルギー変化を算出する算出回路と、乱数と温度パラメータとに基づいて決定される熱励起エネルギーと、前記2つのエネルギー変化との大小関係に基づいて、前記2つのエネルギー変化をもたらす前記第2のニューロンの状態の更新をそれぞれ許容するか否かを判定し、更新を許容するか否かの判定結果を出力するとともに、前記第2のニューロンの状態が上限値を超えるまたは下限値を下回る更新を制限する状態遷移判定回路と、をそれぞれが有し、互いに異なる前記第2のニューロンについての前記判定結果をそれぞれ出力する複数のイジング装置と、前記複数のイジング装置のそれぞれが出力する前記判定結果に基づいて、更新を許容する前記第2のニューロンを1つ選択するとともに、前記状態変化方向を選択する更新ニューロン選択回路と、前記更新ニューロン選択回路が選択した前記第2のニューロンの状態を、前記状態変化方向に基づいて更新する状態更新回路と、を有する最適化装置が提供される。
また、1つの実施態様では、最適化装置の制御方法が提供される。また、1つの実施態様では、最適化装置の制御プログラムが提供される。
1つの側面では、本発明は、3値以上の値をもつ変数を扱う最適化装置の回路規模の増大を抑えることができる。
第1の実施の形態の最適化装置の一例を示す図である。 第1の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 第2の実施の形態の最適化装置の一例を示す図である。 1つ目のΔE変更部の一例を示す図である。 2つ目のΔE変更部の一例を示す図である。 遷移可否決定部の一例を示す図である。 第2の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 第3の実施の形態の最適化装置の一例を示す図である。 1つ目の定義域確認部の一例を示す図である。 2つ目の定義域確認部の一例を示す図である。 第3の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 第4の実施の形態の最適化装置の一例を示す図である。 ローカルフィールド更新部においてシフト動作が行われる部分の例を示す図である。 第4の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 制御装置のハードウェア例を示す図である。 制御装置による最適化装置の制御方法の一例の流れを示すフローチャートである。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
以下に示す最適化装置は、計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のニューロンのそれぞれの状態の組み合わせのうち、エネルギー関数が最小値となるときの状態の組み合わせを探索するものである。各ニューロンは、m値(mは3以上の整数)の変数を用いて状態が表される。また、変数は所定のビット幅をもち、変化する際には、正または負方向に2(nは0以上の整数)変化するものとする。
イジング型のエネルギー関数E(x)は、たとえば、以下の式(1)で定義される。
Figure 2020035179
右辺の1項目は、全ニューロンから選択可能な2つのニューロンの全組み合わせについて、漏れと重複なく、2つのニューロンの状態と結合係数との積を積算したものである。xは、i番目のニューロンの状態を表す変数(状態変数とも呼ばれる)、xは、j番目のニューロンの状態を示す変数であり、Wijは、i番目とj番目のニューロンの相互作用の大きさを示す重み係数である。なお、Wii=0である。また、Wij=Wjiであることが多い(つまり、重み係数による係数行列は対称行列である場合が多い)。また重み係数Wijは、所定のビット幅(たとえば、16ビット、32ビット、64ビット、128ビットなど)をもつ。
右辺の2項目は、全ニューロンのそれぞれのバイアス係数とニューロンの状態を表す変数との積の総和を求めたものである。bは、i番目のニューロンのバイアス係数を示している。
また、変数xがm値の場合、変数xが上限または下限に達していない場合、変数xの変化分Δxは、±2である。
変数xの正方向及び負方向の変化に伴うエネルギー変化ΔEi±は、以下の式(2)で表される。
Figure 2020035179
式(2)のようにエネルギー変化ΔEi±は、i番目のニューロンの状態変化方向(正または負)によって、2つの値をもつ。
なお、式(2)において、hはローカルフィールド(局所場)と呼ばれる。
(第1の実施の形態)
図1は、第1の実施の形態の最適化装置の一例を示す図である。
第1の実施の形態の最適化装置10は、N個のニューロンに関する計算を行うN個のイジング装置11a1,11a2,…,11aN、更新ニューロン選択回路12、状態更新回路13、制御部14を有する。イジング装置11a1〜11aNのそれぞれは、1チップの半導体集積回路であってもよいし、1チップの半導体集積回路の中に、イジング装置11a1〜11aNが含まれていてもよい。
イジング装置11a1は、N個のニューロンのうち、1番目のニューロン(識別情報ID=1のニューロン)に関する計算を行う。イジング装置11a1は、算出回路11b1、状態遷移判定回路11c1を有する。
算出回路11b1は、N個のニューロンのうち、状態が更新されたニューロンの状態変化方向DRとそのニューロンの識別情報IDとを更新ニューロン選択回路12から受ける。そして、算出回路11b1は、識別情報IDで識別されるニューロンと1番目のニューロンとの間の相互作用の大きさを示す重み係数と、状態変化方向DRに基づいて、エネルギー変化ΔE1+,ΔE1−を算出する。エネルギー変化ΔE1+,ΔE1−は、1番目のニューロンの状態が、正負両方向に2変化することによるイジングモデルの2つのエネルギー変化である。
図1の例では、算出回路11b1は、レジスタ11b11、ローカルフィールド更新部11b12、エネルギー変化算出部11b13を有する。
レジスタ11b11は、N個の重み係数W11,W12,…,W1Nを記憶する。なお、重み係数W11,W12,…,W1Nは、SRAM(Static Random Access Memory)などのメモリに記憶されていてもよい。なお、全ての重み係数W11〜WNNが1つのメモリに記憶されていてもよい。
ローカルフィールド更新部11b12は、状態が更新されたニューロンの識別情報IDから、そのニューロンと1番目のニューロンとの間の相互作用の大きさを示す重み係数を選択する。そして、ローカルフィールド更新部11b12は、選択した重み係数と、状態が更新されたニューロンの状態変化方向DRに基づいて、ローカルフィールドhを更新する。なお、ローカルフィールドhの初期値は、たとえば、バイアス係数bである。
ニューロン(j番目のニューロン)の状態が、正方向に2変化したときのローカルフィールドhの変化分は、+21j、負方向に2変化したときのローカルフィールドhの変化分は、−21jと表せる。
したがって、ローカルフィールド更新部11b12は、重み係数W1jをnビット左シフトした値を、現在のローカルフィールドhに対して、状態変化方向DRに応じて加算するか減算することで、ローカルフィールドhを更新することができる。このような、ローカルフィールド更新部11b12は、たとえば、セレクタ、加算器(または減算器)、シフト演算回路を用いて実現できる。なお、n=0の場合には、シフト演算回路は不要である。
エネルギー変化算出部11b13は、式(2)に基づいて、エネルギー変化ΔE1+,ΔE1−を算出する。エネルギー変化算出部11b13は、たとえば、シフト演算回路、符号反転回路を用いて実現できる。なお、n=0の場合には、シフト演算回路は不要である。
状態遷移判定回路11c1は、熱励起エネルギーと、エネルギー変化ΔE1+,ΔE1−との大小関係に基づいて、エネルギー変化ΔE1+,ΔE1−をもたらす1番目のニューロンの状態の更新をそれぞれ許容するか否かを判定する。そして、状態遷移判定回路11c1は、更新を許容するか否かの判定結果を出力する。また、状態遷移判定回路11c1は、1番目のニューロンの状態が上限値を超えるまたは下限値を下回る更新を制限する。つまり、状態遷移判定回路11c1は、1番目のニューロンの状態の定義域外となる更新が生じないようにする。なお、各ニューロンの状態を表す変数の定義域は、たとえば、問題の種類や最適化装置10のハードウェア上の制約などによって決定される。
熱励起エネルギーは、たとえば、後述の乱数発生回路が生成した乱数と、制御部14から入力される温度パラメータTとに基づいて決定される。
また、上限値や下限値を含む制限情報LMTは、制御部14から供給される。状態遷移判定回路11c1は、1番目のニューロンの状態が、正または負方向に2変化することにより上限値を超えるまたは下限値を下回る場合、たとえば、エネルギー変化ΔE1+またはエネルギー変化ΔE1−を、十分に大きな所定の正の値に変更する。これによって、状態遷移判定回路11c1は、1番目のニューロンの状態の更新が許容されないようにする。この所定の正の値は、たとえば、エネルギー変化を所定の正の値に変更したときの、更新を許容するか否かの判定結果の値の検出結果に基づいて決定されるようにしてもよい。
また、状態遷移判定回路11c1は、1番目のニューロンの状態が、正または負方向に2変化することにより上限値を超えるまたは下限値を下回る場合、更新を許容するか否かの判定結果を、更新を許容しないことを示す値に変更してもよい。
このような状態遷移判定回路11c1の回路例については、第2の実施の形態以降において説明する。
他のイジング装置11a2〜11aNについても、2〜N番目のニューロンに関して、イジング装置11a1と同様の処理を行う。
たとえば、イジング装置11a2の算出回路11b2は、レジスタ11b21、ローカルフィールド更新部11b22、エネルギー変化算出部11b23を有する。レジスタ11b21は、N個の重み係数W21,W22,…,W2Nを記憶する。ローカルフィールド更新部11b22は、状態が更新されたニューロンの識別情報IDから、そのニューロンと2番目のニューロンとの間の相互作用の大きさを示す重み係数を選択する。そして、ローカルフィールド更新部11b22は、選択した重み係数と、状態が更新されたニューロンの状態変化方向DRに基づいて、ローカルフィールドhを更新する。エネルギー変化算出部11b23は、式(2)に基づいて、エネルギー変化ΔE2+,ΔE2−を算出する。そしてイジング装置11a2の状態遷移判定回路11c2は、熱励起エネルギーと、エネルギー変化ΔE2+,ΔE2−との大小関係に基づいて、エネルギー変化ΔE2+,ΔE2−をもたらす2番目のニューロンの状態の更新をそれぞれ許容するか否かを判定する。そして、状態遷移判定回路11c2は、更新を許容するか否かの判定結果を出力する。また、状態遷移判定回路11c2は、2番目のニューロンの状態が上限値を超えるまたは下限値を下回る更新を制限する。
イジング装置11aNの算出回路11bNは、レジスタ11bN1、ローカルフィールド更新部11bN2、エネルギー変化算出部11bN3を有する。レジスタ11bN1は、N個の重み係数WN1,WN2,…,WNNを記憶する。ローカルフィールド更新部11bN2は、更新ニューロンの識別情報IDから、状態が更新されたニューロンとN番目のニューロンとの間の相互作用の大きさを示す重み係数を選択する。そして、ローカルフィールド更新部11bN2は、選択した重み係数と、状態が更新されたニューロンの状態変化方向DRに基づいて、ローカルフィールドhを更新する。エネルギー変化算出部11bN3は、式(2)に基づいて、エネルギー変化ΔEN+,ΔEN−を算出する。そしてイジング装置11aNの状態遷移判定回路11cNは、熱励起エネルギーと、エネルギー変化ΔEN+,ΔEN−との大小関係に基づいて、エネルギー変化ΔEN+,ΔEN−をもたらすN番目のニューロンの状態の更新をそれぞれ許容するか否かを判定する。そして、状態遷移判定回路11cNは、更新を許容するか否かの判定結果を出力する。また、状態遷移判定回路11cNは、N番目のニューロンの状態が上限値を超えるまたは下限値を下回る更新を制限する。
更新ニューロン選択回路12は、イジング装置11a1〜11aNのそれぞれが出力する判定結果に基づいて、更新を許容するニューロンを1つ選択するとともに、状態変化方向DRを選択する。更新ニューロン選択回路12は選択した更新を許容するニューロンの識別情報IDと、状態変化方向DRを出力する。
状態更新回路13は、更新ニューロン選択回路12が選択したニューロンの状態を、状態変化方向DRに基づいて正または負方向に2、変化(更新)させる。状態更新回路13は、記憶部(たとえば、レジスタ)を有しており、N個のニューロンの状態を保持している。
制御部14は、制御装置15(たとえば、PC(Personal Computer))との間で情報の送受信を行う。たとえば、制御部14は、制御装置15からイジングモデルを表現する重み係数Wijを受け、イジング装置11a1〜11aNに対して、重み係数ijを設定する(レジスタ11b11〜11bN1に記憶する)。また、制御部14は、ローカルフィールドhの初期値(たとえば、バイアス係数b)を制御装置15から受け、イジング装置11a1〜11aNに対して、設定してもよい。
また、制御部14は、制御装置15から、アニーリング条件(温度パラメータTの最大値、最小値、温度パラメータTの値の下げ方についての情報など)を受け、アニーリング条件に基づいて、イジング装置11a1〜11aNに対して、温度パラメータTを設定する。制御部14は、アニーリング条件に基づいて、温度パラメータTの値を徐々に小さくしていく。また、制御部14は、前述の制限情報LMTを制御装置15から受け、イジング装置11a1〜11aNに対して、各ニューロンの状態の上限値と下限値を含む制限情報LMTを設定する。また、制御部14は、たとえば、温度パラメータTの値を所定回数、小さくした場合(または温度パラメータTが最小値に達した場合)の状態更新回路13に保持されている各ニューロンの状態を解として制御装置15に送信する。
制御部14は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGAなどの特定用途の電子回路にて実現できる。なお、制御部14は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサであってもよい。その場合、プロセッサは、図示しないメモリに記憶されたプログラムを実行することで、上記のような制御部14の処理を行う。制御部14の機能は、制御装置15に含まれていてもよい。
以下、第1の実施の形態の最適化装置10の動作例を示す。
図2は、第1の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
まず、制御部14は、制御装置15から受けた重み係数Wij、ローカルフィールドhの初期値、温度パラメータTの初期値、制限情報LMTを、イジング装置11a1〜11aNに設定する(ステップS1)。
ローカルフィールド更新部11b12〜11bN2は、2回目以降の更新処理では前述の処理により、ローカルフィールドhを更新する(ステップS2)。
エネルギー変化算出部11b13〜11bN3のそれぞれは、式(2)に基づいて、2つのエネルギー変化ΔEi+,ΔEi−を算出する(ステップS3)。
状態遷移判定回路11c1〜11cNのそれぞれは、前述の処理により、エネルギー変化ΔEi+,ΔEi−をもたらす各ニューロンの状態の更新をそれぞれ許容するか否かを判定する(ステップS4)。また、ステップS4の処理では、状態遷移判定回路11c1〜11cNのそれぞれは、前述の処理により、各ニューロンの状態が定義域外となる更新を制限する。
更新ニューロン選択回路12は、イジング装置11a1〜11aNのそれぞれが出力する判定結果に基づいて、更新を許容するニューロンを1つ選択するとともに、状態変化方向DRを選択する(ステップS5)。
状態更新回路13は、更新ニューロン選択回路12が選択したニューロンの状態を、状態変化方向DRに基づいて更新する(ステップS6)。
制御部14は、ステップS2〜S6の更新処理が所定回数N1、繰り返されたか否かを判定する(ステップS7)。更新処理が所定回数N1、繰り返されていない場合には、ステップS2〜S6の更新処理が繰り返される。
更新処理が所定回数N1、繰り返された場合、制御部14は、温度パラメータTの変更回数(温度変更回数)が、所定回数N2に達したか否かを判定する(ステップS8)。
温度変更回数が所定回数N2に達していない場合、制御部14は、温度パラメータTを変更する(温度を下げる)(ステップS9)。所定回数N1,N2、温度パラメータTの値の変更の仕方(一度に値をどのくらい小さくするかなど)は、アニーリング条件に基づいて決定される。ステップS9の処理後、ステップS2からの処理が繰り返される。
温度変更回数が所定回数N2に達している場合、制御部14は、そのとき状態更新回路13に保持されている各ニューロンの状態を、解(計算結果)として制御装置15に送信(出力)する(ステップS10)。
以上のような第1の実施の形態の最適化装置10では、3値以上の値をもつ各ニューロンの状態の許容する変化を±2(nは0以上の整数)とすることで、イジングモデルのエネルギー変化を算出する回路の構成が簡素化され回路規模の増大を抑えられる。また、小さい回路規模で、3値以上の値をもつニューロンの状態を扱えることで、最適化装置10によって解くことができる問題の範囲を広げることができる。
なお、ニューロンごとに、nの値は異なっていてもよい。
(第2の実施の形態)
図3は、第2の実施の形態の最適化装置の一例を示す図である。図3において、図1に示した第1の実施の形態の最適化装置10の要素と同じ要素については同一符号が付されている。
第2の実施の形態の最適化装置20において、イジング装置21a1の状態遷移判定回路21b1は、ΔE変更部21b11,21b12、遷移可否決定部21b13,21b14を有する。
ΔE変更部21b11は、変数xが+2変化することにより上限値を超える場合、エネルギー変化ΔE1+を所定の正の値ΔEmaxに変更する。
ΔE変更部21b12は、変数xが−2変化することにより下限値を下回る場合、エネルギー変化ΔE1−を所定の正の値ΔEmaxに変更する。
正の値ΔEmaxは、この値が遷移可否決定部21b13,21b14に供給された場合に、変数xの更新が許容される確率がほぼゼロになるように、十分大きな値である。
図4は、1つ目のΔE変更部の一例を示す図である。図4では、ΔE変更部21b11の例が示されている。
ΔE変更部21b11は、2加算部30、比較回路31、セレクタ32を有する。
加算部30は、状態更新回路13から供給される現在の変数xに2を加算する。
比較回路31は、制限情報LMTに含まれる変数xの上限値x1maxと、2加算部30における加算結果とを比較する。そして、比較回路31は、加算結果が上限値x1maxを超える場合には1を出力し、それ以外の場合には0を出力する。
セレクタ32は、エネルギー変化ΔE1+と、制限情報LMTに含まれる正の値ΔEmaxを入力し、比較回路31の出力が1の場合には、正の値ΔEmaxを出力し、比較回路31の出力が0の場合には、エネルギー変化ΔE1+を出力する。
図5は、2つ目のΔE変更部の一例を示す図である。図5では、ΔE変更部21b12の例が示されている。
ΔE変更部21b12は、2減算部33、比較回路34、セレクタ35を有する。
減算部33は、状態更新回路13から供給される現在の変数xから2を減算する。
比較回路34は、制限情報LMTに含まれる変数xの下限値x1minと、2減算部33における減算結果とを比較する。そして、比較回路34は、減算結果が下限値x1minを下回る場合には1を出力し、それ以外の場合には0を出力する。
セレクタ35は、エネルギー変化ΔE1−と、制限情報LMTに含まれる所定の正の値ΔEmaxを入力し、比較回路34の出力が1の場合には、正の値ΔEmaxを出力し、比較回路34の出力が0の場合には、エネルギー変化ΔE1−を出力する。
図3の遷移可否決定部21b13は、エネルギー変化ΔE1+または正の値ΔEmaxと、熱励起エネルギーとの大小関係に基づいて、エネルギー変化ΔE1+をもたらす1番目のニューロンの状態の更新を許容するか否かを判定する。
遷移可否決定部21b14は、エネルギー変化ΔE1−または正の値ΔEmaxと、熱励起エネルギーとの大小関係に基づいて、エネルギー変化ΔE1−をもたらす1番目のニューロンの状態の更新を許容するか否かを判定する。
図6は、遷移可否決定部の一例を示す図である。
遷移可否決定部21b13は、符号反転部40、加算器41、乱数発生回路42、選択法則適用部43、乗算器44、比較回路45を有する。
符号反転部40は、ΔE変更部21b11が出力するエネルギー変化ΔE1+または正の値ΔEmaxに−1を掛けて符合を反転させる。
加算器41は、符号反転部40の出力値に、後述するオフセット生成回路23が生成するオフセット値offを加える。
乱数発生回路42は、0以上、1以下の一様乱数rを発生する。
選択法則適用部43は、シミュレーテッド・アニーリングを行うための選択法則(メトロポリス法またはギブス法)に基づいた値を出力する。
シミュレーテッド・アニーリングが行われる場合、あるエネルギー変化ΔEを引き起こす状態遷移の許容確率A(ΔE,T)を以下の式(3)のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。
Figure 2020035179
式(3)においてTは、前述の温度パラメータTである。
式(3)で表される許容確率A(ΔE,T)を用いた場合、十分な反復後に定常状態に達したとすると、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布にしたがう。そして、高い温度から徐々に下げていくとエネルギーの低い状態の占有確率が増加するため、十分温度が下がるとエネルギーの低い状態が得られるはずである。この様子が材料を焼き鈍したときの状態変化とよく似ているため、この方法はシミュレーテッド・アニーリングと呼ばれるのである。このとき、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
許容確率A(ΔE,T)でエネルギー変化ΔEを引き起こす状態遷移を許容することを示すフラグ情報(=1)を出力する回路は、式(3)の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を出力する回路でよい。
図6の選択法則適用部43は、入力される一様乱数rを上記のf−1(r)の値に変換する変換テーブルを用いて、f−1(r)の値を出力する。メトロポリス法が適用される場合、f−1(r)は、log(r)である。変換テーブルは、たとえば、RAM(Random Access Memory)、フラッシュメモリなどのメモリに記憶されている。
乗算器44は、制御部14から供給される温度パラメータTと、f−1(r)との積(T・f−1(r))を出力する。T・f−1(r)は、熱励起エネルギーに相当する。
比較回路45は、加算器41による加算結果と、T・f−1(r)とを比較し、加算結果が、T・f−1(r)より大きい場合、フラグ情報FLG1+として1を出力し、T・f−1(r)より小さい場合、フラグ情報FLG1+として0を出力する。
遷移可否決定部21b14についても遷移可否決定部21b13と同様の回路構成となる。
イジング装置21a1〜21aNのうち、イジング装置21a1以外についても、イジング装置21a1と同様の構成を有し、2〜N番目のニューロンに対して同様の処理を行う。
たとえば、イジング装置21aNの状態遷移判定回路21bNは、ΔE変更部21bN1,21bN2、遷移可否決定部21bN3,21bN4を有する。
ΔE変更部21bN1は、変数xが+2変化することにより上限値を超える場合、エネルギー変化ΔEN+を所定の正の値ΔEmaxに変更する。
ΔE変更部21bN2は、変数xが−2変化することにより下限値を下回る場合、エネルギー変化ΔEN−を所定の正の値ΔEmaxに変更する。
遷移可否決定部21bN3は、エネルギー変化ΔEN+または正の値ΔEmaxと、熱励起エネルギーとの大小関係に基づいて、エネルギー変化ΔEN+をもたらすN番目のニューロンの状態の更新を許容するか否かを判定する。
遷移可否決定部21bN4は、エネルギー変化ΔEN−または正の値ΔEmaxと、熱励起エネルギーとの大小関係に基づいて、エネルギー変化ΔEN−をもたらすN番目のニューロンの状態の更新を許容するか否かを判定する。
更新ニューロン選択回路22は、図1に示した更新ニューロン選択回路12と同様に、イジング装置21a1〜21aNのそれぞれが出力する判定結果(フラグ情報)に基づいて、更新を許容するニューロンを1つ選択するとともに、状態変化方向DRを選択する。そして、更新ニューロン選択回路22は選択した更新を許容するニューロンの識別情報IDと、状態変化方向DRを出力する。第2の実施の形態の最適化装置20では、更新ニューロン選択回路22は、さらに、選択した更新を許容するニューロンについてのフラグ情報FLGについても出力する。
第2の実施の形態の最適化装置20は、オフセット値offを生成するオフセット生成回路23を有する。オフセット生成回路23は、更新ニューロン選択回路22から供給されるフラグ情報FLGが、状態遷移を許容しないことを示すとき(つまり状態遷移が生じないとき)、オフセット値offを増加していく。一方、オフセット生成回路23は、フラグ情報FLGが、状態遷移を許容することを示すとき(つまり状態遷移が生じるとき)には、オフセット値offを0にリセットする。オフセット値offが大きくなると状態遷移が許容されやすくなり、現在の状態が局所解にある場合、その局所解からの脱出が促進される。
以下、第2の実施の形態の最適化装置20の動作例を示す。
図7は、第2の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
まず、制御部14は、制御装置15から受けた重み係数Wij、ローカルフィールドhの初期値、温度パラメータTの初期値、制限情報LMTを、イジング装置21a1〜21aNに設定する(ステップS20)。第2の実施の形態の最適化装置20において、制限情報LMTは、正の値ΔEmaxと、各変数xの定義域(上限値と下限値)を含む。
ステップS21,S22の処理は、図2に示したステップS2,S3の処理と同じである。
ステップS22の処理後、状態遷移判定回路21b1〜21bNのそれぞれは、更新する場合に定義域外となる変数xについてのエネルギー変化ΔEi+またはエネルギー変化ΔEi−を正の値ΔEmaxに変更する(ステップS23)。
そして、状態遷移判定回路21b1〜21bNのそれぞれは、エネルギー変化ΔEi+,ΔEi−をもたらす各ニューロンの状態の更新をそれぞれ許容するか否かを判定する(ステップS24)。ステップS24の処理には、前述のオフセット値offの加算処理なども含まれる。
以降のステップS25〜S30の処理は、図2に示したステップS5〜S10の処理と同じである。
以上のような第2の実施の形態の最適化装置20では、第1の実施の形態の最適化装置10と同様の効果が得られる。また、最適化装置20は、更新する場合に定義域外となる変数xについてのエネルギー変化ΔEi+またはエネルギー変化ΔEi−を、正の値ΔEmaxに変更することで、変数xが定義域外となる更新が抑制される。
(第3の実施の形態)
図8は、第3の実施の形態の最適化装置の一例を示す図である。図8において、図1、図3に示した最適化装置10,20の要素と同じ要素については同一符号が付されている。
第3の実施の形態の最適化装置50において、イジング装置51a1の状態遷移判定回路51b1は、遷移可否決定部51b11,51b12、定義域確認部51b13,51b14を有する。
遷移可否決定部51b11は、エネルギー変化ΔE1+と、熱励起エネルギーとの大小関係に基づいて、エネルギー変化ΔE1+をもたらす1番目のニューロンの状態の更新を許容するか否かを判定する。
遷移可否決定部51b12は、エネルギー変化ΔE1−と、熱励起エネルギーとの大小関係に基づいて、エネルギー変化ΔE1−をもたらす1番目のニューロンの状態の更新を許容するか否かを判定する。
遷移可否決定部51b11,51b12の回路構成は、図6に示した遷移可否決定部21b13の回路構成と同じである。
定義域確認部51b13は、変数xが+2変化することにより上限値を超える場合、更新を許容するか否かの判定結果を示すフラグ情報を0(更新を許容しないことを示す)にする。
定義域確認部51b14は、変数xが−2変化することにより下限値を下回る場合、更新を許容するか否かの判定結果を示すフラグ情報を0にする。
図9は、1つ目の定義域確認部の一例を示す図である。図9では、定義域確認部51b13の例が示されている。
定義域確認部51b13は、2加算部60、比較回路61、AND(論理積)回路62を有する。
加算部60は、状態更新回路13から供給される現在の変数xに2を加算する。
比較回路61は、制限情報LMTに含まれる変数xの上限値x1maxと、2加算部60における加算結果とを比較する。そして、比較回路61は、加算結果が上限値x1maxを超える場合には0を出力し、それ以外の場合には1を出力する。
AND回路62の一方の入力端子には、遷移可否決定部51b11が出力するフラグ情報FLG1aが入力され、他方の入力端子には、比較回路61の出力が入力される。そして、AND回路62は、比較回路61の出力が1の場合には、フラグ情報FLG1aの値(0または1)を出力し、比較回路61の出力が0の場合には、フラグ情報FLG1aの値によらず0を出力する。
図10は、2つ目の定義域確認部の一例を示す図である。図10では、定義域確認部51b14の例が示されている。
定義域確認部51b14は、2減算部63、比較回路64、AND回路65を有する。
減算部63は、状態更新回路13から供給される現在の変数xから2を減算する。
比較回路64は、制限情報LMTに含まれる変数xの下限値x1minと、2減算部63における減算結果とを比較する。そして、比較回路64は、減算結果が下限値x1minを下回る場合には0を出力し、それ以外の場合には1を出力する。
AND回路65の一方の入力端子には、遷移可否決定部51b12が出力するフラグ情報FLG1bが入力され、他方の入力端子には、比較回路64の出力が入力される。そして、AND回路65は、比較回路64の出力が1の場合には、フラグ情報FLG1bの値(0または1)を出力し、比較回路64の出力が0の場合には、フラグ情報FLG1bの値によらず0を出力する。
イジング装置51a1〜51aNのうち、イジング装置51a1以外についても、イジング装置51a1と同様の構成を有し、2〜N番目のニューロンに対して同様の処理を行う。
たとえば、イジング装置51aNの状態遷移判定回路51bNは、遷移可否決定部51bN1,51bN2、定義域確認部51bN3,51bN4を有する。
遷移可否決定部51bN1は、エネルギー変化ΔEN+と、熱励起エネルギーとの大小関係に基づいて、エネルギー変化ΔEN+をもたらすN番目のニューロンの状態の更新を許容するか否かを判定する。
遷移可否決定部51bN2は、エネルギー変化ΔEN−と、熱励起エネルギーとの大小関係に基づいて、エネルギー変化ΔEN−をもたらすN番目のニューロンの状態の更新を許容するか否かを判定する。
定義域確認部51bN3は、変数xが+2変化することにより上限値を超える場合、更新を許容するか否かの判定結果を示すフラグ情報を0にする。
定義域確認部51bN4は、変数xが−2変化することにより下限値を下回る場合、更新を許容するか否かの判定結果を示すフラグ情報を0にする。
以下、第3の実施の形態の最適化装置50の動作例を示す。
図11は、第3の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
まず、制御部14は、制御装置15から受けた重み係数Wij、ローカルフィールドhの初期値、温度パラメータTの初期値、制限情報LMTを、イジング装置51a1〜51aNに設定する(ステップS40)。第3の実施の形態の最適化装置50において、制限情報LMTは、各変数xの定義域(上限値と下限値)を含む。
ステップS41,S42の処理は、図2に示したステップS2,S3の処理と同じである。
ステップS42の処理後、状態遷移判定回路51b1〜51bNのそれぞれは、エネルギー変化ΔEi+,ΔEi−をもたらす各ニューロンの状態の更新をそれぞれ許容するか否かを判定する(ステップS43)。ステップS43の処理には、前述のオフセット値offの加算処理なども含まれる。
その後、状態遷移判定回路51b1〜51bNのそれぞれは、更新する場合に定義域外となる変数xについてのフラグ情報を0にする(ステップS44)。
以降のステップS45〜S50の処理は、図2に示したステップS5〜S10の処理と同じである。
以上のような第3の実施の形態の最適化装置50では、第1の実施の形態の最適化装置10と同様の効果が得られる。また、最適化装置50は、更新する場合に定義域外となる変数xについてのフラグ情報を0にすることで、変数xが定義域外となる更新が確実に抑制される。
(第4の実施の形態)
図12は、第4の実施の形態の最適化装置の一例を示す図である。図12において、図1、図3、図8に示した最適化装置10,20,50の要素と同じ要素については同一符号が付されている。
第4の実施の形態の最適化装置70は、算出回路71b1〜71bNや状態更新回路72に供給するシフト量n1〜nNを保持するシフト量保持部73a1〜73aNを有する。シフト量n1〜nNは、N個のニューロンのそれぞれの状態の変化幅を決める値であり、0以上の値である。たとえば、1番目のニューロンの状態の変化幅は±2n1、N番目のニューロンの状態の変化幅は±2nNと表せる。シフト量n1〜nNはそれぞれ異なっていてもよい。
シフト量保持部73a1〜73aNは、たとえば、レジスタやSRAMなどである。
イジング装置71a1〜71aNの算出回路71b1〜71bNに含まれるローカルフィールド更新部71b11〜71bN1のそれぞれには、シフト量n1〜nNが供給される。そして、ローカルフィールド更新部71b11〜71bN1のそれぞれは、状態が更新されたニューロンについてのシフト量を用いて、ローカルフィールドを更新する。
図13は、ローカルフィールド更新部においてシフト動作が行われる部分の例を示す図である。図13では、ローカルフィールド更新部71b11〜71bN1のうち、i番目のニューロンについてのローカルフィールドを更新するローカルフィールド更新部71bi1の一部が示されている。
ローカルフィールド更新部71bi1は、不一致回路80、選択回路81、シフト演算回路82を有する。
不一致回路80は、i番目のニューロンの識別情報ID(=i)と、状態が更新されたニューロンの識別情報ID(=j)とが不一致の場合に、1を出力し、一致している場合に0を出力する。
たとえば、不一致回路80は、i番目のニューロンとj番目のニューロンの識別情報IDを1ビットずつ比較し、全てのビットが一致している場合に0を出力し、それ以外の場合には1を出力する。
図13には、不一致回路80の回路例が示されている。不一致回路80は、k個のExOR(排他的論理和)回路80a1,80a2,…,80akと、複数のOR(論理和)回路(たとえば、OR回路80b1〜80bm,80c)を有する。
ExOR回路80a1〜80akは、それぞれkビットからなるi番目のニューロンとj番目のニューロンの識別情報IDを1ビットずつ比較し、両者が一致していれば0を出力し、異なっていれば1を出力する。たとえば、ExOR回路80a1は、i番目のニューロンとj番目のニューロンのそれぞれの識別情報IDの最下位ビット(iとj)同士を比較し、両者が一致していれば0を出力し、異なっていれば1を出力する。ExOR回路80akは、i番目のニューロンとj番目のニューロンのそれぞれの識別情報IDの最上位ビット(iとj)同士を比較し、両者が一致していれば0を出力し、異なっていれば1を出力する。
OR回路80b1〜80bmは、ExOR回路80a1〜80akの出力を2つずつ受け、両者の論理和を出力する。たとえば、OR回路80b1は、ExOR回路80a1,80a2の出力を受け、両者の論理和を出力する。
図示が省略されているが、OR回路80b1〜80bmの出力は、2つずつ次の段の複数のOR回路の何れかに入力され、またその段の複数のOR回路の出力が2つずつ、次の段の複数のOR回路の何れかに入力される、という処理がkの値に応じて繰り返される。そして、最後段のOR回路80cの出力が、不一致回路80の出力となる。
選択回路81は、不一致回路80の出力が1の場合に、重み係数Wijを選択して出力し、不一致回路80の出力が0の場合に、0を選択して出力する。
シフト演算回路82は、選択回路81の出力が0の場合には0を出力し、選択回路81の出力が重み係数Wijの場合には、重み係数Wijをnjビット分、左シフトした値(Wij*(1<<nj)=2njij)を出力する。状態変化方向DRに応じて、2njijに対し1または−1を掛けたものが、ローカルフィールドhの変化分となる。
図12において、イジング装置71a1〜71aNの算出回路71b1〜71bNに含まれるエネルギー変化算出部71b12〜71bN2のそれぞれには、シフト量n1〜nNのうち何れか1つが供給される。たとえば、エネルギー変化算出部71b12は、シフト量n1を受け、式(2)より、ΔE1+=−2n1、ΔE1−=2n1を算出する。エネルギー変化算出部71bN2は、シフト量nNを受け、式(2)より、ΔEN+=−2nN、ΔEN−=2nNを算出する。
状態遷移判定回路71c1〜71cNは、第2の実施の形態の最適化装置20の状態遷移判定回路21b1〜21bNまたは第3の実施の形態の最適化装置50の状態遷移判定回路51b1〜51bNとほぼ同じである。ただ、ΔE変更部21b11,21b12〜21bN1,21bN2や、定義域確認部51b13,51b14〜51bN3,51bN4では、前述のように現在のニューロンの状態に対して、2の加算または減算が行われる(図4、図5、図9、図10参照)。このため、状態遷移判定回路71c1〜71cNのそれぞれには、シフト量nとして、シフト量n1〜nNのうちの何れか1つが供給される。
状態更新回路72には、シフト量n1〜nNが供給され、更新ニューロン選択回路22が出力した識別情報IDに対応するシフト量を1つ選択する。そして、状態更新回路72は、選択したシフト量(以下ではnsとする)と、状態変化方向DRに基づいて、識別情報IDで表されるニューロンの状態を、正または負方向に2ns、変化させる。
制御部74は、制御部14と同様の機能を有するとともに、シフト量保持部73a1〜73aNに、シフト量n1〜nNを設定する。制御部74は、ニューロンの状態の更新処理の際にシフト量n1〜nNを変化させてもよい。これにより最適解への収束速度を制御することができる。たとえば、制御部74は、全ニューロンの状態が所定回数の更新処理を行っても変化しない場合(現在の状態が局所解にある場合)、シフト量n1〜nNを大きくすることで、エネルギー変化の絶対値が大きくなり、局所解からの脱出が促進される。これにより、収束速度を加速させることができる。
以下、第4の実施の形態の最適化装置70の動作例を示す。
図14は、第4の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
まず、制御部74は、制御装置15から受けた重み係数Wij、ローカルフィールドhの初期値、温度パラメータTの初期値、制限情報LMTをイジング装置71a1〜71aNに対して設定する。また、制御部74は、制御装置15から受けたシフト量n1〜nNを、シフト量保持部73a1〜73aNに対して設定する(ステップS60)。その後のステップS61〜S69の処理は、設定されたシフト量n1〜nNが用いられる点以外、図2に示したステップS2〜S10と同じである。なお、制御部74は、たとえば、ステップS68の処理後などに、シフト量n1〜nNの大きさを変更してもよい。
以上のような第4の実施の形態の最適化装置70では、第1の実施の形態の最適化装置10と同様の効果が得られる。また、最適化装置70では、制御部74がN個のニューロンのそれぞれについてのシフト量n1〜nNを、個々に設定するため、状態の変化幅をニューロンごとに変えることができる。また、制御部74は、ニューロンの状態の更新処理の際にシフト量n1〜nNを変化させることもできるようになり、最適解への収束速度を制御することができる。
ところで、上記の第1乃至第4の実施の形態の最適化装置10,20,50,70において制御部14,74の機能は、たとえば、PCなどの制御装置内のプロセッサが制御プログラムを実行することで実現してもよい。
図15は、制御装置のハードウェア例を示す図である。
制御装置90は、CPU91、RAM92、HDD(Hard Disk Drive)93、画像信号処理部94、入力信号処理部95、媒体リーダ96、通信インタフェース97及びインタフェース98を有する。上記ユニットは、バスに接続されている。
CPU91は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU91は、HDD93に記憶されたプログラムやデータの少なくとも一部をRAM92にロードし、プログラムを実行する。なお、CPU91は複数のプロセッサコアを備えてもよく、制御装置90は複数のプロセッサを備えてもよく、最適化装置98aの制御を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。
RAM92は、CPU91が実行するプログラムやCPU91が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、制御装置90は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD93は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、重み係数や制限情報LMTなどの設定や温度パラメータTの制御を行う機能を制御装置90に実行させる制御プログラムが含まれる。なお、制御装置90は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部94は、CPU91からの命令にしたがって、制御装置90に接続されたディスプレイ94aに画像(たとえば、最適化問題の計算結果を表す画像)を出力する。ディスプレイ94aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部95は制御装置90に接続された入力デバイス95aから入力信号を取得し、CPU91に出力する。入力デバイス95aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、制御装置90に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ96は、記録媒体96aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体96aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ96は、たとえば、記録媒体96aから読み取ったプログラムやデータを、RAM92やHDD93などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU91によって実行される。なお、記録媒体96aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体96aやHDD93を、コンピュータ読み取り可能な記録媒体ということがある。
通信インタフェース97は、ネットワーク97aに接続され、ネットワーク97aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース97は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
インタフェース98は、最適化装置98aと通信を行うインタフェースである。最適化装置98aは、たとえば、第1乃至第4の実施の形態の最適化装置10,20,50,70から制御部14,74を除いたものである。
図16は、制御装置による最適化装置の制御方法の一例の流れを示すフローチャートである。
制御装置90は、制御部74は、最適化装置98aに対して、重み係数Wij、ローカルフィールドhの初期値、温度パラメータTの初期値、制限情報LMTの設定を行う。また、制御装置90は、最適化装置98aが図12に示したようなシフト量保持部73a1〜73aNを含む場合、シフト量n1〜nNの設定を行う(ステップS70)。
その後、制御装置90は、たとえば、最適化装置98aが前述の更新処理を行うたびに送信する信号を受信し、更新処理が所定回数N1、繰り返されたか否かを判定する(ステップS71)。更新処理が所定回数N1、繰り返されていない場合には、ステップS71の処理が繰り返される。
更新処理が所定回数N1、繰り返された場合、制御装置90は、温度パラメータTの変更回数(温度変更回数)が、所定回数N2に達したか否かを判定する(ステップS72)。
温度変更回数が所定回数N2に達していない場合、制御装置90は、温度パラメータTを変更する(温度を下げる)(ステップS73)。ステップS73の処理では、制御装置90は、前回送信した値よりも小さい温度パラメータTの値を、最適化装置98aに送信する。所定回数N1,N2、温度パラメータTの値の変更の仕方(一度に値をどのくらい小さくするかなど)は、アニーリング条件に基づいて決定される。ステップS73の処理後、ステップS71からの処理が繰り返される。なお、制御装置90は、たとえば、ステップS73の処理後などに、シフト量n1〜nNの大きさを変更してもよい。
温度変更回数が所定回数N2に達している場合、制御装置90は、そのときの各ニューロンの状態(変数x(i=1〜N))を、たとえば、図1に示した状態更新回路13内の記憶部から、最適化問題の計算結果として取得する(ステップS74)。
その後、制御装置90は、受信した計算結果を、たとえば、図15に示したディスプレイ94aに表示し(ステップS75)、最適化装置98aの制御を終える。
なお、前述のように、上記の制御装置90の処理内容は、コンピュータにプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体96a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVD及びDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD93)にプログラムをコピーして実行してもよい。
以上、実施の形態に基づき、本発明の最適化装置、最適化装置の制御方法及び最適化装置の制御プログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化装置
11a1〜11aN イジング装置
11b1〜11bN 算出回路
11b11〜11bN1 レジスタ
11b12〜11bN2 ローカルフィールド更新部
11b13〜11bN3 エネルギー変化算出部
11c1〜11cN 状態遷移判定回路
12 更新ニューロン選択回路
13 状態更新回路
14 制御部
20 制御装置

Claims (7)

  1. 計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応し、それぞれm値(mは3以上の正の整数)の変数を用いて状態が表される複数のニューロンのうち、状態が更新された第1のニューロンの状態変化方向と、前記第1のニューロンと第2のニューロンとの間の相互作用の大きさを示す重み係数と、に基づいて、前記第2のニューロンの状態が、正負両方向に2(nは0以上の整数)変化することによる前記イジングモデルの2つのエネルギー変化を算出する算出回路と、
    乱数と温度パラメータとに基づいて決定される熱励起エネルギーと、前記2つのエネルギー変化との大小関係に基づいて、前記2つのエネルギー変化をもたらす前記第2のニューロンの状態の更新をそれぞれ許容するか否かを判定し、更新を許容するか否かの判定結果を出力するとともに、前記第2のニューロンの状態が上限値を超えるまたは下限値を下回る更新を制限する状態遷移判定回路と、
    をそれぞれが有し、互いに異なる前記第2のニューロンについての前記判定結果をそれぞれ出力する複数のイジング装置と、
    前記複数のイジング装置のそれぞれが出力する前記判定結果に基づいて、更新を許容する前記第2のニューロンを1つ選択するとともに、前記状態変化方向を選択する更新ニューロン選択回路と、
    前記更新ニューロン選択回路が選択した前記第2のニューロンの状態を、前記状態変化方向に基づいて更新する状態更新回路と、
    を有する最適化装置。
  2. 前記状態遷移判定回路は、前記第2のニューロンの状態が、正または負方向に前記2変化することにより前記上限値を超える、または前記下限値を下回る場合、前記2つのエネルギー変化のうち、前記上限値を超える、または前記下限値を下回る前記第2のニューロンの状態の変化による第1のエネルギー変化を、所定の正の値に変更した上で、前記第1のエネルギー変化をもたらす前記第2のニューロンの状態の更新を許容するか否かを判定する、
    請求項1に記載の最適化装置。
  3. 前記状態遷移判定回路は、前記第2のニューロンの状態が、正または負方向に前記2変化することにより前記上限値を超える、または前記下限値を下回る場合、前記2つのエネルギー変化をもたらす前記第2のニューロンの状態の更新をそれぞれ許容するか否かの前記判定結果のうち、前記上限値を超える、または前記下限値を下回る前記第2のニューロンの状態の変化による更新を許容するか否かの第1の判定結果を、更新を許容しないことを示す値に変更する、
    請求項1に記載の最適化装置。
  4. 前記算出回路は、前記第1のニューロンの状態が、正または負方向に前記2変化したときに、所定のビット幅をもつ前記重み係数を、前記nのビット数分、左シフトした値を用いて、前記2つのエネルギー変化を算出する、
    請求項1乃至3の何れか一項に記載の最適化装置。
  5. 前記複数のニューロンのそれぞれについての前記nの値を、個々に設定する制御部を有する、
    請求項1乃至4の何れか一項に記載の最適化装置。
  6. 計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応し、それぞれm値(mは3以上の正の整数)の変数を用いて状態が表される複数のニューロンのうち、状態が更新された第1のニューロンの状態変化方向と、前記第1のニューロンと第2のニューロンとの間の相互作用の大きさを示す重み係数と、に基づいて、前記第2のニューロンの状態が、正負両方向に2(nは0以上の整数)変化することによる前記イジングモデルの2つのエネルギー変化を算出する算出回路と、
    乱数と温度パラメータとに基づいて決定される熱励起エネルギーと、前記2つのエネルギー変化との大小関係に基づいて、前記2つのエネルギー変化をもたらす前記第2のニューロンの状態の更新をそれぞれ許容するか否かを判定し、更新を許容するか否かの判定結果を出力するとともに、前記第2のニューロンの状態が上限値を超えるまたは下限値を下回る更新を制限する状態遷移判定回路と、
    をそれぞれが有し、互いに異なる前記第2のニューロンについての前記判定結果をそれぞれ出力する複数のイジング装置と、
    前記複数のイジング装置のそれぞれが出力する前記判定結果に基づいて、更新を許容する前記第2のニューロンを1つ選択するとともに、前記状態変化方向を選択する更新ニューロン選択回路と、
    前記更新ニューロン選択回路が選択した前記第2のニューロンの状態を、前記状態変化方向に基づいて更新する状態更新回路と、
    を有する最適化装置に対して、
    制御装置が、前記重み係数、前記上限値及び前記下限値を設定し、
    前記制御装置が、前記温度パラメータの大きさを制御する、
    最適化装置の制御方法。
  7. 計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応し、それぞれm値(mは3以上の正の整数)の変数を用いて状態が表される複数のニューロンのうち、状態が更新された第1のニューロンの状態変化方向と、前記第1のニューロンと第2のニューロンとの間の相互作用の大きさを示す重み係数と、に基づいて、前記第2のニューロンの状態が、正負両方向に2(nは0以上の整数)変化することによる前記イジングモデルの2つのエネルギー変化を算出する算出回路と、
    乱数と温度パラメータとに基づいて決定される熱励起エネルギーと、前記2つのエネルギー変化との大小関係に基づいて、前記2つのエネルギー変化をもたらす前記第2のニューロンの状態の更新をそれぞれ許容するか否かを判定し、更新を許容するか否かの判定結果を出力するとともに、前記第2のニューロンの状態が上限値を超えるまたは下限値を下回る更新を制限する状態遷移判定回路と、
    をそれぞれが有し、互いに異なる前記第2のニューロンについての前記判定結果をそれぞれ出力する複数のイジング装置と、
    前記複数のイジング装置のそれぞれが出力する前記判定結果に基づいて、更新を許容する前記第2のニューロンを1つ選択するとともに、前記状態変化方向を選択する更新ニューロン選択回路と、
    前記更新ニューロン選択回路が選択した前記第2のニューロンの状態を、前記状態変化方向に基づいて更新する状態更新回路と、
    を有する最適化装置に対して、
    前記重み係数、前記上限値及び前記下限値を設定し、
    前記温度パラメータの大きさを制御する、
    処理をコンピュータに実行させる最適化装置の制御プログラム。
JP2018161212A 2018-08-30 2018-08-30 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム Active JP7093009B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018161212A JP7093009B2 (ja) 2018-08-30 2018-08-30 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US16/521,680 US11645496B2 (en) 2018-08-30 2019-07-25 Optimization apparatus and optimization apparatus control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018161212A JP7093009B2 (ja) 2018-08-30 2018-08-30 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2020035179A true JP2020035179A (ja) 2020-03-05
JP7093009B2 JP7093009B2 (ja) 2022-06-29

Family

ID=69641430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018161212A Active JP7093009B2 (ja) 2018-08-30 2018-08-30 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム

Country Status (2)

Country Link
US (1) US11645496B2 (ja)
JP (1) JP7093009B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113536229A (zh) * 2020-04-13 2021-10-22 富士通株式会社 采样装置、采样方法以及用于存储采样程序的存储介质
JP7472062B2 (ja) 2021-03-08 2024-04-22 株式会社東芝 計算装置、計算方法およびプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7137064B2 (ja) * 2018-10-19 2022-09-14 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7491032B2 (ja) * 2020-04-13 2024-05-28 富士通株式会社 最適化装置、最適化方法及び最適化プログラム
JP7326235B2 (ja) * 2020-08-13 2023-08-15 株式会社東芝 情報処理システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08287033A (ja) * 1995-04-11 1996-11-01 Nippon Telegr & Teleph Corp <Ntt> 離散型多値状態ニューラルネットワーク装置
JP2016051314A (ja) * 2014-08-29 2016-04-11 株式会社日立製作所 半導体装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4552024B2 (ja) 2004-09-02 2010-09-29 株式会社国際電気通信基礎技術研究所 画像解析装置、画像解析プログラム及び画像解析方法
JP6255087B2 (ja) * 2014-04-11 2017-12-27 大学共同利用機関法人情報・システム研究機構 イジングモデルの量子計算装置、イジングモデルの量子並列計算装置及びイジングモデルの量子計算方法
JP6476292B2 (ja) * 2015-06-09 2019-02-27 株式会社日立製作所 情報処理装置及びその制御方法
JP6691297B2 (ja) * 2016-07-13 2020-04-28 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6773970B2 (ja) 2016-09-09 2020-10-21 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6465092B2 (ja) * 2016-10-14 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7071638B2 (ja) * 2018-07-31 2022-05-19 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08287033A (ja) * 1995-04-11 1996-11-01 Nippon Telegr & Teleph Corp <Ntt> 離散型多値状態ニューラルネットワーク装置
JP2016051314A (ja) * 2014-08-29 2016-04-11 株式会社日立製作所 半導体装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
松田 聖: "量子化された慎重なニューロンとゆらぎ", 電子情報通信学会技術研究報告, vol. 第92巻, 第59号, JPN6022018158, 27 May 1992 (1992-05-27), JP, pages 33 - 40, ISSN: 0004772999 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113536229A (zh) * 2020-04-13 2021-10-22 富士通株式会社 采样装置、采样方法以及用于存储采样程序的存储介质
JP7472062B2 (ja) 2021-03-08 2024-04-22 株式会社東芝 計算装置、計算方法およびプログラム

Also Published As

Publication number Publication date
JP7093009B2 (ja) 2022-06-29
US20200074279A1 (en) 2020-03-05
US11645496B2 (en) 2023-05-09

Similar Documents

Publication Publication Date Title
JP2020035179A (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7071638B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP6465092B2 (ja) 最適化装置及び最適化装置の制御方法
US20180075342A1 (en) Information processing apparatus, ising unit, and information processing apparatus control method
JP6623947B2 (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7137064B2 (ja) 最適化装置及び最適化装置の制御方法
JP2017097585A (ja) 学習装置、プログラム及び学習方法
JP7100254B2 (ja) 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
US20190220732A1 (en) Optimization apparatus and control method thereof
JP6923790B2 (ja) 最適化装置及び最適化装置の制御方法
CN113536229A (zh) 采样装置、采样方法以及用于存储采样程序的存储介质
CN113283046A (zh) 优化装置、优化方法和记录介质
JP7111966B2 (ja) 最適化装置及び最適化装置の制御方法
US11562210B2 (en) Stochastically determining to accept a state transition for an optimization device
US20210173978A1 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
JP2007316731A (ja) Lsi設計支援装置
CN115577824A (zh) 数据处理设备、存储程序的计算机可读记录介质和方法
TW202405687A (zh) 神經網路的建模方法以及模擬方法
JP2023028347A (ja) プログラム、データ処理方法及びデータ処理装置
JP2022184426A (ja) データ処理装置、データ処理方法及びプログラム
JP2022136877A (ja) 最適化装置、最適化プログラムおよび最適化方法
CN117786275A (zh) 数据处理装置和数据处理方法
JP2006085426A (ja) カーネル関数処理装置、カーネル関数処理方法、カーネル関数処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210524

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210524

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220506

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220530

R150 Certificate of patent or registration of utility model

Ref document number: 7093009

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150