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

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

Info

Publication number
JP7111966B2
JP7111966B2 JP2018164430A JP2018164430A JP7111966B2 JP 7111966 B2 JP7111966 B2 JP 7111966B2 JP 2018164430 A JP2018164430 A JP 2018164430A JP 2018164430 A JP2018164430 A JP 2018164430A JP 7111966 B2 JP7111966 B2 JP 7111966B2
Authority
JP
Japan
Prior art keywords
bits
weighting factor
update
weighting
bit
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
JP2018164430A
Other languages
English (en)
Other versions
JP2020038435A (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 JP2018164430A priority Critical patent/JP7111966B2/ja
Publication of JP2020038435A publication Critical patent/JP2020038435A/ja
Application granted granted Critical
Publication of JP7111966B2 publication Critical patent/JP7111966B2/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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、最適化装置及び最適化装置の制御方法に関する。
従来、ノイマン型コンピュータが不得意とする多変数の最適化問題を、イジング型のエネルギー関数を用いた最適化装置(イジングマシンまたはボルツマンマシンと呼ばれる場合もある)によって計算する方法がある。最適化装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
最適化装置は、たとえば、ニューラルネットワークを用いて問題をモデル化することもできる。その場合、イジングモデルに含まれる複数のスピンに対応した複数のビットのそれぞれが、他のビットの値と、他のビットと自身のビットとの相互作用の大きさを示す重み係数(結合係数とも呼ばれる)とに応じて0または1を出力するニューロンとして機能する。最適化装置は、たとえば、シミュレーテッド・アニーリングなどの確率的探索法により、イジングモデルのエネルギー関数の値(以下エネルギーという)の最小値が得られる各ニューロンの状態の組み合わせを、解として求める。
従来、デジタル回路を用いてシミュレーテッド・アニーリングを行うことでエネルギーが最小となる各ビットの値の組み合わせを計算する最適化装置がある(たとえば、特許文献1参照)。
ところで、問題の規模の増大に応じてビット数が増えると重み係数の数も増加する。たとえば、ビット数が10倍になると、全ビット間の相互作用を考慮する場合、重み係数の数は100倍となる。そのため、従来の最適化装置(たとえば、1チップの半導体集積回路)では内部の記憶部に重み係数を記憶しきれなくなる場合がある。このため、最適化装置の外部の記憶装置に重み係数を記憶しておく方法がある。
特開2017-219948号公報 特開平5-250346号公報 特開2016-51350号公報 特開2010-108204号公報 特開2011-70253号公報
しかしながら、最適化装置の外部の記憶装置からの重み係数の読み出しにかかる時間によって、計算速度が低下してしまう問題があった。
1つの側面では、本発明は、計算速度の低下を抑制可能な最適化装置、最適化装置の制御方法を提供することを目的とする。
1つの実施態様では、記憶装置に接続される最適化装置において、最適化問題を変換したイジングモデルの全スピンに対応する全ビットの間の相互作用の大きさを示す、前記記憶装置に記憶された全重み係数のうち、前記全ビットの一部である複数のビットに関する第1の重み係数群を記憶する記憶部と、前記第1の重み係数群と、前記複数のビットのうちで値が更新されたビットの情報に基づいて、前記複数のビットのそれぞれの値が変化することによる前記イジングモデルのエネルギー変化を、前記複数のビットのそれぞれについて計算する処理と、前記エネルギー変化に基づいて、前記複数のビットのうちの1つの更新を確率的に許容する処理とを含む、更新判定処理を繰り返すことで、前記イジングモデルの基底状態の探索を行う演算回路と、前記更新判定処理が所定回数繰り返された場合、前記複数のビットに含まれないビットに関する第2の重み係数群を前記記憶装置から読み出し、前記第2の重み係数群を含むように前記記憶部に記憶されている前記第1の重み係数群の一部を更新し、更新後の前記第1の重み係数群を用いた前記更新判定処理を前記演算回路に行わせる制御部と、を有する最適化装置が提供される。
また、1つの実施態様では、最適化装置の制御方法が提供される。
1つの側面では、計算速度の低下を抑制できる。
第1の実施の形態の最適化装置の一例を示す図である。 第1の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。 記憶部に記憶される重み係数群の更新例を示す図である。 比較例の最適化装置の動作の一例の流れを示すフローチャートである。 第2の実施の形態の最適化装置の一例を示す図である。 ΔE計算回路と更新判定回路の一例を示す図である。 重み係数群の更新例を示す図である。 重み係数群の更新がある回数行われた後の記憶部の記憶例を示す図である。 問題規模と処理時間との関係を表すシミュレーション結果の一例を示す図である。 トライアル数と処理時間との関係を表すシミュレーション結果の一例を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
以下に示す最適化装置は、計算対象の最適化問題を変換したイジングモデルの全スピンに対応する全ビットのそれぞれの値の組み合わせのうち、エネルギー関数が最小値となるときの各ビットの値(イジングモデルの基底状態)を探索するものである。
イジング型のエネルギー関数E(x)は、たとえば、以下の式(1)で定義される。
Figure 0007111966000001
右辺の1項目は、イジングモデルの全ビットの全組み合わせについて、漏れと重複なく、2つのビットの値(0または1)と重み係数との積を積算したものである。xは、i番目のビットの値を表す変数(状態変数とも呼ばれる)、xは、j番目のビットの値を表す変数であり、Wijは、i番目とj番目のビットの相互作用の大きさを示す重み係数である。なお、Wii=0である。また、Wij=Wjiであることが多い(つまり、重み係数による係数行列は対称行列である場合が多い)。また重み係数Wijは、所定のビット幅(たとえば、16ビット、32ビット、64ビット、128ビットなど)をもつ。
右辺の2項目は、全ビットのそれぞれのバイアス係数とビットの値を表す変数との積の総和を求めたものである。bは、i番目のビットのバイアス係数を示している。
また、変数xが変化して1-xとなると、変数xの増加分は、Δx=(1-x)-x=1-2xと表せる。スピン反転(ビットの値の変化)に伴うエネルギー変化ΔEは、以下の式(2)で表される。
Figure 0007111966000002
式(2)において、変数xが1から0に変化するとき、Δxは-1となり、変数xが0から1に変化するとき、Δxは1となる。なお、hはローカルフィールド(局所場)と呼ばれ、Δxに応じてローカルフィールドhに符号(+1または-1)を乗じたものがエネルギー変化ΔEである。
また、変数xが0から1に変化したときのローカルフィールドhの変化分Δhは、+Wij、変数xが1から0に変化したときの変化分Δhは、-Wijと表せる。
(第1の実施の形態)
図1は、第1の実施の形態の最適化装置の一例を示す図である。
第1の実施の形態の最適化装置10は記憶装置11に接続されている。
最適化装置10は、たとえば、1チップの半導体集積回路(たとえば、FPGA(Field Programmable Gate Array)など)である。
記憶装置11は、全重み係数、バイアス係数などのデータを記憶する。記憶装置11は、SDRAM(Synchronous Dynamic Random Access Memory)などの揮発性の記憶装置、または、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)やHDD(Hard Disk Drive)などの不揮発性の記憶装置である。
最適化装置10は、記憶部10a、演算回路10b、制御部10cを有する。
イジングモデルのビット数が多くなると、記憶容量が小さい記憶部10aでは、全重み係数を保持しきれなくなる。ビット数が10倍になると、全ビット間の相互作用を考慮する場合、重み係数の数は100倍となる。たとえば、あるビット数の重み係数を保持するために16MBの記憶容量を要する場合、そのビット数が10倍になると、1.6GBの記憶容量を要することになり、1チップに搭載できる記憶部10aの記憶容量を大幅に超えてしまう。
そこで、記憶部10aは、記憶装置11に記憶された全重み係数のうち、全ビットの一部のビット(複数のビット)に関する重み係数群を記憶する。記憶部10aの記憶容量は、記憶装置11の記憶容量よりも小さいが、記憶部10aから重み係数を読み出す時間は、記憶装置11から重み係数を読み出す時間よりも短い(たとえば、1/100~1/10程度)。記憶部10aは、たとえば、レジスタまたはSRAM(Static Random Access Memory)などである。
演算回路10bは、記憶部10aに記憶されている重み係数群と、上記複数ビットのうちで値が更新されたビット(更新ビット)の情報に基づいて、複数のビットのそれぞれの値が変化することによるイジングモデルのエネルギー変化を計算する。エネルギー変化は、複数のビットのそれぞれについて計算される。そして、演算回路10bは、計算したエネルギー変化に基づいて、複数のビットのうちの1つの更新を確率的に許容する処理を行う。演算回路10bは、上記のようなエネルギー変化を計算する処理と、複数ビットのうちの1つの更新を確率的に許容する処理とを含む更新判定処理を繰り返すことで、イジングモデルの基底状態の探索を行う。
たとえば、演算回路10bは、温度パラメータと乱数とから決定される熱励起エネルギー(熱雑音)と、あるビットが変化することによるエネルギー変化との大小関係に基づいて、そのビットの更新を許容するか否かを判定する。また、演算回路10bは、更新が許容されるビットが複数ある場合には、乱数を用いて、そのうちの1つを決定する。また、シミュレーテッド・アニーリングが行われる場合、温度パラメータは、たとえば、制御部10cによって、所定の更新判定処理回数ごとに、値が小さくなるように制御される。
制御部10cは、上記の更新判定処理が所定回数繰り返された場合、上記複数ビットに含まれないビットに関する重み係数群を記憶装置11から読み出し、読み出した重み係数群を含むように、記憶部10aに記憶されている重み係数群の一部を更新する。そして制御部10cは、更新後の重み係数群を用いた上記の更新判定処理を演算回路10bに行わせる。
図2は、第1の実施の形態の最適化装置の動作の一例の流れを示すフローチャートである。
まず、制御部10cは、記憶装置11に対して、記憶部10aに記憶する重み係数群Wklを指定し(ステップS1)、重み係数群Wklを記憶装置11から読み出して、記憶部10aに記憶する(ステップS2)。重み係数群Wklは、全ビットの一部である複数のビットに関する重み係数群である。
演算回路10bは、重み係数群Wklの範囲(上記複数のビットの範囲)で、更新ビットを選択する(ステップS3)。そして、演算回路10bは、重み係数群Wklと、更新ビットの情報に基づいて、複数のビットのそれぞれの値が変化することによるイジングモデルのエネルギー変化を計算する(ステップS4)。
演算回路10bは、計算したエネルギー変化に基づいて、複数のビットのうちの1つの更新を確率的に許容する処理を行い、更新を許容するビットの有無を判定する(ステップS5)。更新を許容するビットがある場合、演算回路10bは、そのビットの値を更新する(0から1または1から0に変化させる)ことで、イジングモデルの状態を更新する(ステップS6)。
ステップS6の処理後、または、ステップS5の処理において、更新を許容するビットがない場合、演算回路10bまたは制御部10cは、更新判定処理回数c1が所定の回数Nに達したか否かを判定する(ステップS7)。更新判定処理回数c1が、回数Nに達していない場合、ステップS3では、ステップS6の処理で変化したビットが更新ビットとして選択され、その後ステップS4からの処理が繰り返される。
更新判定処理回数c1が、回数Nに達した場合、演算回路10bまたは制御部10cは、重み係数群Wklの更新回数c2が所定の回数Mに達したか否かを判定する(ステップS8)。なお、更新判定処理回数c1が、回数Nに達した場合、更新判定処理回数c1は0にリセットされる。
重み係数群Wklの更新回数c2が回数Mに達していない場合、制御部10cは、ステップS1の処理に戻り、記憶装置11に対して、次に記憶部10aに記憶する重み係数群Wklを指定する。そして、制御部10cは、ステップS2の処理において、記憶部10aに記憶する重み係数群Wklを更新する。その後、ステップS3からの処理が繰り返される。
なお、ある複数のビットに関する重み係数群Wklの更新の際、重み係数群Wklの一部が、その複数のビットに含まれないビットに関する重み係数群によって更新される。このため、記憶装置11から新たに読み出す重み係数群は、重み係数群Wklよりも少なくてよい。
重み係数群Wklの更新回数c2が回数Mに達した場合、制御部10cは、イジングモデルの全ビットの値で表される状態を、たとえば、演算回路10b内の図示しないレジスタから取得し、最適化装置10の外部に出力し(ステップS9)、処理を終える。
図3は、記憶部に記憶される重み係数群の更新例を示す図である。
更新回数c2=0のとき、図3の例では、1~3番目のビットに関する重み係数群が重み係数群Wklとして記憶部10aに記憶されている。
更新回数c2=1のとき、たとえば、2~4番目のビットに関する重み係数群が記憶部10aに記憶されるように、重み係数群Wklが更新される。この場合、制御部10cは、4番目のビットに関する重み係数W41,W42,…,W4nだけを記憶装置11から読み出し、1番目のビットに関する重み係数W11,W12,…,W1nの代りに記憶部10aに記憶すればよい。
回数Mは、更新回数c2がMに達した場合に、n番目のビットに関する重み係数Wn1,Wn2,…,Wnnを含む重み係数群を用いた更新判定処理が行われるように、設定される。
なお、上記ステップS1~S8の処理を、所定回数、繰り返した後に、ステップS9の処理が行われるようにしてもよい。
(比較例)
図4は、比較例の最適化装置の動作の一例の流れを示すフローチャートである。
図4では、第1の実施の形態の最適化装置10に対する比較例として、単に、記憶装置(外部メモリ)に記憶された全重み係数の一部を記憶する記憶部(内部メモリ)を備えた、最適化装置の動作例が示されている。
比較例の最適化装置では、全ビットの範囲で更新ビットが選択される(ステップS10)。そして、その更新ビットの情報に基づいて、全ビットのそれぞれの値が変化することによるイジングモデルのエネルギー変化の計算が可能か否か判定される(ステップS11)。
計算が可能ではない場合(計算に用いる重み係数Wijが内部メモリにない場合)、外部メモリから計算に用いる重み係数Wijが読み出される(ステップS12)。ステップS11の処理で計算が可能と判定された場合、またはステップS12の処理後、エネルギー変化の計算が行われる(ステップS13)。その後、計算したエネルギー変化に基づいて、全ビットのうちの1つの更新を確率的に許容する処理が行われ、更新を許容するビットの有無が判定される(ステップS14)。更新を許容するビットがある場合、そのビットの値を0から1または1から0に変化させることで、イジングモデルの状態が更新される(ステップS15)。
ステップS15の処理後、または、ステップS14の処理において、更新を許容するビットがない場合、更新判定処理回数c3が所定の回数N1に達したか否かが判定される(ステップS16)。更新判定処理回数c3が、回数N1に達していない場合、ステップS10では、ステップS15の処理で変化したビットが更新ビットとして選択され、その後ステップS11からの処理が繰り返される。
更新判定処理回数c3が、回数N1に達した場合、イジングモデルの全ビットの値で表される状態が、比較例の最適化装置の外部に出力され(ステップS17)、処理が終わる。
このような比較例の最適化装置では、選択される更新ビットによっては、内部メモリに記憶されている重み係数だけではエネルギー変化を計算できない場合があり、重み係数の外部メモリからの読み出し頻度が増加する。
これに対し最適化装置10は、記憶部10aに記憶した一部のビットに関する重み係数群を用いて、その一部のビットから更新ビットを選択する更新判定処理を所定回数行った後に、重み係数群を別のビットに関する重み係数群を含むように更新する。これにより、記憶装置11からの重み係数の読み出しの頻度を抑えられ、読み出しにかかる時間による計算速度の低下を抑制できる。
また、第1の実施の形態の最適化装置10は、記憶部10aに記憶された重み係数群の更新の際、全てを別のビットに関する重み係数群に変更するのではなく、一部を別のビットに関する重み係数群を含むように変更する。重み係数群の更新の際、全てを別のビットに関する重み係数群に変更した場合、更新前の重み係数群を用いて更新判定処理が行われるビットと、更新後の重み係数群を用いて更新判定処理が行われるビットとの間の相互作用の影響が基底状態の探索に考慮されなくなる。この場合、解の精度が悪化する可能性がある。上記のように、重み係数群の更新の際、一部を別のビットに関する重み係数群を含むように変更することで、相互作用の影響が考慮されなくなるビット対を少なくでき、解の精度が悪化することを抑制できる。また、記憶装置11から読み出すデータ量も少なくできる。また、記憶部10aに記憶された複数ビットに関する重み係数群のうち、1つのビットに関する重み係数群を、上記複数ビットに含まれない1つのビットに関する重み係数群に更新することで、相互作用の影響が考慮されなくなるビット対をより少なくでき、解の精度が悪化することをより抑制できる。
(第2の実施の形態)
図5は、第2の実施の形態の最適化装置の一例を示す図である。
第2の実施の形態の最適化装置20は、たとえば、1チップの半導体集積回路(たとえば、FPGAなど)である。最適化装置20は記憶装置30に接続されている。
記憶装置30は、全重み係数、バイアス係数などのデータを記憶する。記憶装置30は、SDRAMなどの揮発性の記憶装置、または、フラッシュメモリ、EEPROMやHDDなどの不揮発性の記憶装置である。
最適化装置20は、記憶部21、演算回路22、制御部23を有する。
記憶部21は、記憶装置30に記憶された全重み係数のうち、全ビットの一部である複数のビットに関する重み係数群を記憶する。図5の例では、記憶部21は、n個のビットのうち、1番目からk番目のビットに関する重み係数群を記憶している。記憶部21の記憶容量は、記憶装置30の記憶容量よりも小さい。記憶部21は、レジスタまたはSRAMなどである。
演算回路22は、選択回路22a、ΔE計算回路22b1,22b2,…,22bn、更新判定回路22c1,22c2,…,22cn、判定結果変更回路22d1,22d2,…,22dn、更新ビット選択回路22e、オフセット生成回路22fを有する。さらに、演算回路22は、状態更新回路22g、カウンタ22h、比較回路22iを有する。
選択回路22aは、更新ビット選択回路22eが出力する識別番号idに基づいて、使用する重み係数を選択して、選択した重み係数を記憶部21から読み出し、ΔE計算回路22b1~22bnに供給する。さらに、選択回路22aは、記憶部21に記憶されている重み係数群がどの複数のビットに関するものかを示す識別番号idwを受ける。そして、選択回路22aは、識別番号idwに基づいて、上記複数のビットに含まれないビットについての、更新判定回路22c1~22cnの判定結果を、更新を許容しないことを示す値に変更するための信号を出力する。
たとえば、図5の例では、記憶部21には、1~k番目のビットに関する重み係数群が記憶されているため、選択回路22aは、識別番号idwとして1を受ける。なお、この場合、識別番号idwは、1番目のビットだけではなく、k番目のビットまでを示す。kの数は、記憶部21の記憶容量Mと全ビットの数nと重み係数のデータ量Mから決定され、k≦M/(n・M)で表される。kはとり得る自然数の中で最大値である場合、最も効率よく演算可能であるが、この限りではない。
ΔE計算回路22b1~22bnは、選択回路22aから供給される重み係数と、更新ビットの値(図5の例では、i番目のビットの値を表す変数x)に基づいて、n個のビットのそれぞれの値が変化することによるイジングモデルのエネルギー変化を計算する。図5の例では、n個のビットのそれぞれの値は変数x,x,…,xで示されている。ΔE計算回路22b1~22bnの回路例については後述する。
更新判定回路22c1~22cnは、ΔE計算回路22b1~22bnが計算したエネルギー変化、熱励起エネルギー(温度パラメータTと乱数とから決定される)、オフセット値offに基づいて、各ビットの更新を許容するか否かを判定する。更新判定回路22c1~22cnの回路例については後述する。
判定結果変更回路22d1~22dnは、選択回路22aが出力する信号に基づいて、更新判定回路22c1~22cnが出力する各ビットについての判定結果を出力するか、判定結果を、更新を許容しないことを示す値に変更して出力する。判定結果変更回路22d1~22dnは、それぞれ乗算器によって実現できる。以下では、更新を許容することを示す判定結果の値を1、更新を許容しないことを示す判定結果の値を0とする。この場合、判定結果変更回路22d1~22dnのうち、選択回路22aから0が供給されるものは、0を出力する。
更新ビット選択回路22eは、判定結果変更回路22d1~22dnのそれぞれが出力する判定結果に基づいて、更新を許容するビットが複数ある場合、そのうちの1つを識別する識別番号idを出力する。なお、判定結果変更回路22d1~22dnのそれぞれが出力する判定結果が全て0の場合でも、何れかのビットの識別番号idが出力される。また、更新ビット選択回路22eは、識別番号idで識別されるビットについての更新を許容するか否かの判定結果をフラグfgとして出力する。さらに、更新ビット選択回路22eは、1つのビットの識別番号idを出力するたびに、トリガ信号trgをカウンタ22hに供給する。
オフセット生成回路22fは、更新判定回路22c1~22cnに供給するオフセット値offを生成する。オフセット生成回路22fは、更新ビット選択回路22eが出力するフラグfgが、0の場合、オフセット値offを増加する。一方、オフセット生成回路22fは、フラグfgが、1の場合、オフセット値offを0にリセットする。オフセット値offが大きくなるとビットの更新が許容されやすくなり、現在の状態が局所解にある場合、その局所解からの脱出が促進される。
状態更新回路22gは、フラグfgが1の場合、更新ビット選択回路22eが出力した識別番号idで識別されるビットの値を1から0または0から1に更新する。状態更新回路22gは、記憶部(たとえば、レジスタ)を有しており、n個のビットの値を保持している。
カウンタ22hは、更新判定処理回数c1をカウントする。カウンタ22hは、更新ビット選択回路22eがトリガ信号trgを出力するたびに、更新判定処理回数c1をカウントアップする。また、カウンタ22hは、比較回路22iが1を出力するたびに、更新判定処理回数c1を0にリセットする。
比較回路22iは、カウンタ22hの計数値である更新判定処理回数c1と所定の回数Nとを比較し、更新判定処理回数c1が、回数Nに達するまでは0を出力し、回数Nに達した場合に、1を出力する。
制御部23は、コントローラ23a、カウンタ23b、比較回路23cを有する。
コントローラ23aは、まず、記憶装置30から、1番目のビットからk番目のビットに関する重み係数を読み出して、記憶部21に記憶する。そして、コントローラ23aは、上記の更新判定処理回数c1が回数N1に達するたびに、記憶部21に記憶されているk個のビットに関する重み係数群のうちの一部を、k個のビットに含まれないビットに関する重み係数群で更新する。たとえば、コントローラ23aは、更新判定処理回数c1が回数N1に達するたびに、k個のビットよりも識別番号が大きいビットのうち、最も識別番号が小さいビットに関する重み係数群を、記憶装置30から読み出す。そして、コントローラ23aは、記憶部21に記憶されているk個のビットに関する重み係数群のうちの識別番号が一番小さいビットに関する重み係数群を、読み出した重み係数群で更新(上書き)する。
また、コントローラ23aは、上記の識別番号idwとして、上記のk個のビットの識別番号のうち、最小の識別番号を出力する。
なお、コントローラ23aは、エネルギー変化を計算するためのローカルフィールドの初期値(たとえば、バイアス係数b)を、たとえば、記憶装置30から受け、ΔE計算回路22b1~22bnに対して、設定してもよい。
また、コントローラ23aは、所定のアニーリング条件(温度パラメータTの最大値、最小値、温度パラメータTの値の下げ方についての情報など)に基づいて、更新判定回路22c1~22cnに対して温度パラメータTを設定する。コントローラ23aは、アニーリング条件に基づいて、温度パラメータTの値を徐々に小さくしていく。また、コントローラ23aは、比較回路23cが1を出力した場合、状態更新回路22gに保持されている各ビットの値を解として、たとえば、記憶装置30に出力する。
コントローラ23aは、たとえば、ASIC(Application Specific Integrated Circuit)やFPGAなどの特定用途の電子回路にて実現できる。なお、コントローラ23aは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサであってもよい。その場合、プロセッサは、メモリ(たとえば、記憶部21)に記憶されたプログラムを実行することで、上記のようなコントローラ23aの処理を行う。
カウンタ23bは、記憶部21に記憶する重み係数群Wklの更新回数c2をカウントする。カウンタ23bは、比較回路22iが1を出力するたびに、更新回数c2をカウントアップする。また、カウンタ23bは、比較回路23cが1を出力すると、更新回数c2を0にリセットする。
比較回路23cは、カウンタ23bの計数値である更新回数c2と所定の回数Mとを比較し、更新回数c2が、回数Mに達するまでは0を出力し、回数Mに達した場合に、1を出力する。回数Mは、更新回数c2がMに達した場合に、n番目のビットに関する重み係数Wn1,Wn2,…,Wnnを含む重み係数群を用いた更新判定処理が行われるように、設定される。
なお、カウンタ23bや比較回路23cは、演算回路22に含まれていてもよい。
(ΔE計算回路と更新判定回路の一例)
図6は、ΔE計算回路と更新判定回路の一例を示す図である。
図6では、図5に示したΔE計算回路22b1と更新判定回路22c1の例が示されている。図5に示した他のΔE計算回路22b2~22bn、更新判定回路22c2~22cnについても図6と同様の回路により実現できる。
ΔE計算回路22b1は、選択回路40、乗算器41、加算器42、レジスタ43、乗算器44、選択回路45を有する。
選択回路40は、更新ビットの値の変化分の演算を実現するものである。i番目(id=i)のビットが更新ビットである場合、その値を示す変数xが1から0に変化するとき、変化分Δxは-1となり、変数xが0から1に変化するとき、Δxは1となる。選択回路40は、状態更新回路22gから供給される変数x(i番目のビットの値の更新後の値)が0のときには、-1を選択して出力し、変数xが1のときには、1を選択して出力する。
乗算器41は、選択回路22aが出力する重み係数と、選択回路40が出力する値との積を出力する。図6の例では、id=iの場合の例が示されており、乗算器41には、1番目のビットとi番目のビットとの間の相互作用の大きさを表す重み係数W1iが入力されている。乗算器41の出力は、変数xが変化したことによるローカルフィールドhの変化分Δhを表す。
加算器42は、乗算器41が出力する値と、レジスタ43に格納されている値とを加算して出力する。
レジスタ43は、図示しないクロック信号に同期して、加算器42が出力する値(ローカルフィールドh)を取り込む。レジスタ43は、たとえば、フリップフロップである。なお、レジスタ43に格納されるローカルフィールドhの初期値は、たとえば、バイアス係数bである。
乗算器44は、レジスタ43が出力するローカルフィールドhと選択回路45が出力する値との積を出力する。この積が、エネルギー変化ΔEである。
選択回路45は、Δxの演算を実現するものである。選択回路45は、状態更新回路22gから供給される現在の1番目のビットの値を示す変数xが0のときは、-1を出力し、変数xが1のときは1を出力する。
更新判定回路22c1は、符号反転部50、加算器51、乱数発生回路52、選択法則適用部53、乗算器54、比較回路55を有する。
符号反転部50は、ΔE計算回路22b1が出力するエネルギー変化ΔEに-1を掛けて符号を反転させる。
加算器51は、符号反転部50の出力値に、オフセット生成回路22fが生成するオフセット値offを加える。
乱数発生回路52は、0以上、1以下の一様乱数rを発生する。
選択法則適用部53は、シミュレーテッド・アニーリングを行うための選択法則(メトロポリス法またはギブス法)に基づいた値を出力する。
シミュレーテッド・アニーリングが行われる場合、あるエネルギー変化ΔEを引き起こす状態遷移の許容確率A(ΔE,T)を以下の式(3)のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。
Figure 0007111966000003
式(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の選択法則適用部53は、入力される一様乱数rを上記のf-1(r)の値に変換する変換テーブルを用いて、f-1(r)の値を出力する。メトロポリス法が適用される場合、f-1(r)は、log(r)である。変換テーブルは、たとえば、RAM(Random Access Memory)、フラッシュメモリなどのメモリに記憶されている。
乗算器54は、コントローラ23aから供給される温度パラメータTと、f-1(r)との積(T・f-1(r))を出力する。T・f-1(r)は、熱励起エネルギーに相当する。
比較回路55は、加算器51による加算結果と、T・f-1(r)とを比較し、加算結果がT・f-1(r)より大きい場合、1番目のビットの更新(状態遷移)を許容するか否かの判定結果として1(更新を許容することを示す値)を出力する。また、比較回路55は、加算結果がT・f-1(r)より小さい場合、判定結果として0(更新を許容しないことを示す値)を出力する。
(最適化装置20の動作例)
第2の実施の形態の最適化装置20の動作の流れは、図2に示したフローチャートと同様である。
図2のステップS1,S2に相当する処理として、コントローラ23aは、記憶装置30に対して、記憶部21に記憶する重み係数群Wklを指定し、重み係数群Wklを記憶部21に記憶する。
そして、ステップS3に相当する処理として、演算回路22は、重み係数群Wklの範囲で、更新ビットを選択する。この処理を行うために、前述のように、コントローラ23aは、識別番号idwを出力する。たとえば、図5に示されているように記憶部21に、1番目からk番目のビットに関する重み係数群が記憶されている場合、コントローラ23aは、識別番号idwとして1を出力する。このとき、選択回路22aは、判定結果変更回路22d1~22dnのうち、1~k番目のビットに関する判定結果を入力する判定結果変更回路に対しては、1を供給する。また、選択回路22aは、k+1~n番目のビットに関する判定結果を入力する判定結果変更回路に対しては、0を供給する。これにより、k+1~n番目のビットに関する判定結果は、全て0になる。更新ビット選択回路22eは、判定結果が1になるビットから更新ビットを選択するため、k+1~n番目のビットは、更新ビットとして選択されず、1~k番目のビットの中から更新ビットが選択される。つまり、記憶部21に記憶されている重み係数群Wklの範囲で、更新ビットが選択される。
ステップS4に相当する処理として、演算回路22は、重み係数群Wklと、更新ビットの情報(識別番号idや更新後の値)に基づいて、k個のビットのそれぞれの値が変化することによるイジングモデルのエネルギー変化を計算する。この処理は、演算回路22のΔE計算回路22b1~22bnを用いて行われる。
ステップS5に相当する処理として、演算回路22は、計算したエネルギー変化に基づいて、複数のビットのうちの1つの更新を確率的に許容する処理を行い、更新を許容するビットの有無を判定する。この処理は、演算回路22の更新判定回路22c1~22cn、更新ビット選択回路22eを用いて行われる。
ステップS6に相当する処理として、演算回路22の状態更新回路22gは、更新を許容するビットがある場合、そのビットの値を0から1または1から0に変化させることで、イジングモデルの状態を更新する。
ステップS7に相当する処理として、演算回路22のカウンタ22hと比較回路22iにより、更新判定処理回数c1が所定の回数Nに達したか否かが判定される。
また、ステップS8に相当する処理として、制御部23のカウンタ23bと比較回路23cにより、重み係数群Wklの更新回数c2が所定の回数Mに達したか否かが判定される。
更新判定処理回数c1が所定の回数Nに達し、重み係数群Wklの更新回数c2が回数Mに達していない場合、コントローラ23aは、再度、ステップS1,S2に相当する処理を行う。すなわち、コントローラ23aは、記憶装置30に対して、次に記憶部21に記憶する重み係数群Wklを指定し、記憶部21に記憶する重み係数群Wklを更新する。その後、ステップS3に相当する処理が再び行われる。
図7は、重み係数群の更新例を示す図である。
更新回数c2=0のとき、記憶部21には、コントローラ23aによって記憶装置30から読み出された1~k番目のビットに関する重み係数群が、重み係数群Wklとして記憶されている。
1回目の更新の際(更新回数c2=1)には、2~k+1番目のビットに関する重み係数群が記憶部21に記憶されるように、重み係数群Wklが更新される。この場合、コントローラ23aは、k+1番目のビットに関する重み係数W(k+1)1,W(k+2)2,…,W(k+1)nだけを記憶装置30から読み出し、1番目のビットに関する重み係数W11,W12,…,W1nの代りに記憶部21に記憶すればよい。
図8は、重み係数群の更新がある回数行われた後の記憶部の記憶例を示す図である。
図8には、記憶部21に重み係数群Wklとして、p~q番目のビット(k個のビット)に関する重み係数群が記憶されている。この場合、コントローラ23aは、識別番号idwとしてpを出力する。そして、選択回路22aは、判定結果変更回路22d1~22dnのうち、p~q番目のビットに関する判定結果を入力する判定結果変更回路22dp,…,22di,…,22dqに対しては、1を供給する。また、選択回路22aは、その他のビットに関する判定結果を入力する判定結果変更回路に対しては、0を供給する。これにより、p~q番目のビット以外のビットに関する判定結果は、全て0になる。更新ビット選択回路22eは、判定結果が1になるビットから更新ビットを選択するため、p~q番目のビット以外のビットは、更新ビットとして選択されず、p~q番目のビットの中から更新ビットが選択される。
たとえば、p<i<qであるi番目のビットが更新ビットとして選択された場合、選択回路22aには識別番号id=iが入力される。このとき、選択回路22aは、ΔE計算回路22bpには重み係数Wpiを選択して供給し、ΔE計算回路22biには重み係数Wiiを選択して供給し、ΔE計算回路22bqには重み係数Wqiを選択して供給する。
そして、ΔE計算回路22bpは、重み係数Wpiと、i番目のビットの更新後の値を示す変数xに基づいて、p番目のビットの値を示す変数xが変化することによるイジングモデルのエネルギー変化を計算する。ΔE計算回路22biは、重み係数Wiiと、i番目のビットの更新後の値を示す変数xに基づいて、変数xがさらに変化することによるイジングモデルのエネルギー変化を計算する。ΔE計算回路22bqは、重み係数Wqiと、i番目のビットの更新後の値を示す変数xに基づいて、q番目のビットの値を示す変数xが変化することによるイジングモデルのエネルギー変化を計算する。
更新判定回路22cpは、ΔE計算回路22bpが計算したエネルギー変化と、熱励起エネルギーと、オフセット値offに基づいて、p番目のビットの更新を許容するか否かを判定する。更新判定回路22ciは、ΔE計算回路22biが計算したエネルギー変化と、熱励起エネルギーと、オフセット値offに基づいて、i番目のビットの更新を許容するか否かを判定する。更新判定回路22cqは、ΔE計算回路22bqが計算したエネルギー変化と、熱励起エネルギーと、オフセット値offに基づいて、q番目のビットの更新を許容するか否かを判定する。
重み係数群Wklの更新回数c2が回数Mに達した場合、コントローラ23aは、ステップS9に相当する処理として、イジングモデルの全ビットの値で表される状態を、たとえば、状態更新回路22g内の図示しないレジスタから取得する。そして、コントローラ23aは、取得した状態を最適化装置20の外部に出力し、処理を終える。
上記のような第2の実施の形態の最適化装置20によれば、第1の実施の形態の最適化装置10と同様の効果が得られる。
図9は、問題規模と処理時間との関係を表すシミュレーション結果の一例を示す図である。図9において、横軸はある問題の規模(ビット数n)を表し、縦軸は処理時間(s(秒))を表している。
シミュレーション条件は以下の通りである。記憶部21(内部メモリ)から重み係数を読み出すためのアクセス時間は10ns、記憶装置30(外部メモリ)から重み係数を読み出すためのアクセス時間は100nsである。トライアル数(N×M回)は、1000000回、1回の更新判定処理にかかる時間は5ns、結合数は全結合(つまり、重み係数の数はn)、記憶部21の記憶容量は2MB、各重み係数のビット幅は16ビットである。
図9には、第2の実施の形態の最適化装置20を用いたシミュレーション結果60が示されている。さらに、図9には、図4に示した処理を行う最適化装置(一部の重み係数群を内部メモリに保持するが、エネルギー変化の計算に用いる重み係数がない場合にはその都度外部メモリから重み係数を読み出すもの)を用いたシミュレーション結果61が示されている。
シミュレーション結果60に示されるように、最適化装置20を用いた場合、問題の規模が増加しても処理時間の増加は少ない。図4に示した処理を行う最適化装置を用いたシミュレーション結果61とシミュレーション結果60とを比較した場合、最適化装置20は、問題規模の増加の影響をほとんど受けないとみなせる。
図10は、トライアル数と処理時間との関係を表すシミュレーション結果の一例を示す図である。図10において、横軸はトライアル数を表し、縦軸は処理時間(s(秒))を表している。
シミュレーション条件は以下の通りである。記憶部21(内部メモリ)から重み係数を読み出すためのアクセス時間は10ns、記憶装置30(外部メモリ)から重み係数を読み出すためのアクセス時間は100nsである。問題の規模はn=10000ビット、1回の更新判定処理にかかる時間は5ns、結合数は全結合(つまり、重み係数の数は10000)、記憶部21の記憶容量は2MB、各重み係数のビット幅は16ビットである。
図10には、第2の実施の形態の最適化装置20を用いたシミュレーション結果62が示されている。さらに、図10には、図4に示した処理を行う最適化装置を用いたシミュレーション結果63が示されている。
シミュレーション結果62に示されるように、最適化装置20を用いた場合、トライアル数が増加に対する処理時間の増加は、図4に示した処理を行う最適化装置を用いた場合と比べて小さいことが確認できる。
以上、実施の形態に基づき、本発明の最適化装置及び最適化装置の制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化装置
10a 記憶部
10b 演算回路
10c 制御部
11 記憶装置

Claims (4)

  1. 記憶装置に接続される最適化装置において、
    最適化問題を変換したイジングモデルの全スピンに対応する全ビットの間の相互作用の大きさを示す、前記記憶装置に記憶された全重み係数のうち、前記全ビットの一部である複数のビットに関する第1の重み係数群を記憶する記憶部と、
    前記第1の重み係数群と、前記複数のビットのうちで値が更新されたビットの情報に基づいて、前記複数のビットのそれぞれの値が変化することによる前記イジングモデルのエネルギー変化を、前記複数のビットのそれぞれについて計算する処理と、前記エネルギー変化に基づいて、前記複数のビットのうちの1つの更新を確率的に許容する処理とを含む、更新判定処理を繰り返すことで、前記イジングモデルの基底状態の探索を行う演算回路と、
    前記更新判定処理が所定回数繰り返された場合、前記複数のビットに含まれないビットに関する第2の重み係数群を前記記憶装置から読み出し、前記第2の重み係数群を含むように前記記憶部に記憶されている前記第1の重み係数群の一部を更新し、更新後の前記第1の重み係数群を用いた前記更新判定処理を前記演算回路に行わせる制御部と、
    を有する最適化装置。
  2. 前記制御部は、前記記憶部に記憶されている前記第1の重み係数群の一部を更新するときに、前記複数のビットのうち、識別番号が一番小さい1つのビットに関する第3の重み係数群を、前記複数のビットよりも識別番号が大きいビットのうち、最も識別番号が小さい1つのビットに関する前記第2の重み係数群に更新する、
    請求項1に記載の最適化装置。
  3. 前記演算回路は、
    前記全ビットのそれぞれが変化することによる前記エネルギー変化を、それぞれ計算する複数のエネルギー変化計算回路と、
    前記複数のエネルギー変化計算回路のそれぞれが計算した前記エネルギー変化に基づいて、前記全ビットのそれぞれについて、更新を許容するか否かの判定結果を出力する複数の更新判定回路と、
    前記全ビットのうち、前記複数のビットに含まれないビットについての前記判定結果を、更新を許容しないことを示す値に変更する複数の判定結果変更回路と、
    を有する請求項1に記載の最適化装置。
  4. 最適化問題を変換したイジングモデルの全スピンに対応する全ビットの間の相互作用の大きさを示す、記憶装置に記憶された全重み係数のうち、前記全ビットの一部である複数のビットに関する第1の重み係数群を記憶する記憶部と、
    前記第1の重み係数群と、前記複数のビットのうちで値が更新されたビットの情報に基づいて、前記複数のビットのそれぞれの値が変化することによる前記イジングモデルのエネルギー変化を、前記複数のビットのそれぞれについて計算する処理と、前記エネルギー変化に基づいて、前記複数のビットのうちの1つの更新を確率的に許容する処理とを含む、更新判定処理を繰り返すことで、前記イジングモデルの基底状態の探索を行う演算回路と、
    制御部と、
    を有し、前記記憶装置に接続された最適化装置における前記制御部が、
    前記更新判定処理が所定回数繰り返された場合、前記複数のビットに含まれないビットに関する第2の重み係数群を前記記憶装置から読み出し、
    前記第2の重み係数群を含むように前記記憶部に記憶されている前記第1の重み係数群の一部を更新し、更新後の前記第1の重み係数群を用いた前記更新判定処理を前記演算回路に行わせる、
    最適化装置の制御方法。
JP2018164430A 2018-09-03 2018-09-03 最適化装置及び最適化装置の制御方法 Active JP7111966B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018164430A JP7111966B2 (ja) 2018-09-03 2018-09-03 最適化装置及び最適化装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018164430A JP7111966B2 (ja) 2018-09-03 2018-09-03 最適化装置及び最適化装置の制御方法

Publications (2)

Publication Number Publication Date
JP2020038435A JP2020038435A (ja) 2020-03-12
JP7111966B2 true JP7111966B2 (ja) 2022-08-03

Family

ID=69737947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018164430A Active JP7111966B2 (ja) 2018-09-03 2018-09-03 最適化装置及び最適化装置の制御方法

Country Status (1)

Country Link
JP (1) JP7111966B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7410394B2 (ja) 2020-03-26 2024-01-10 富士通株式会社 最適化装置及び最適化方法
US11562211B2 (en) * 2020-04-15 2023-01-24 Fujitsu Limited System local field matrix updates
JP2023149806A (ja) * 2022-03-31 2023-10-16 富士通株式会社 情報処理装置、情報処理方法およびプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5864684B1 (ja) 2014-08-29 2016-02-17 株式会社日立製作所 半導体装置
US20170323195A1 (en) 2016-05-09 2017-11-09 1Qb Information Technologies Inc. Method and system for improving a policy for a stochastic control problem
JP2017219952A (ja) 2016-06-06 2017-12-14 富士通株式会社 イジング装置及びイジング装置の制御方法
JP2017219948A (ja) 2016-06-06 2017-12-14 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
US20180089557A1 (en) 2016-09-26 2018-03-29 Intel Corporation Programmable neuron core with on-chip learning and stochastic time step control

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04583A (ja) * 1990-04-17 1992-01-06 Seiko Epson Corp 神経網計算機

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5864684B1 (ja) 2014-08-29 2016-02-17 株式会社日立製作所 半導体装置
JP2016051349A (ja) 2014-08-29 2016-04-11 株式会社日立製作所 半導体装置
US20170323195A1 (en) 2016-05-09 2017-11-09 1Qb Information Technologies Inc. Method and system for improving a policy for a stochastic control problem
JP2017219952A (ja) 2016-06-06 2017-12-14 富士通株式会社 イジング装置及びイジング装置の制御方法
JP2017219948A (ja) 2016-06-06 2017-12-14 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
US20180089557A1 (en) 2016-09-26 2018-03-29 Intel Corporation Programmable neuron core with on-chip learning and stochastic time step control

Also Published As

Publication number Publication date
JP2020038435A (ja) 2020-03-12

Similar Documents

Publication Publication Date Title
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7111966B2 (ja) 最適化装置及び最適化装置の制御方法
JP7100257B2 (ja) 最適化装置及び最適化装置の制御方法
JP7071638B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP6892599B2 (ja) 最適化装置及び最適化装置の制御方法
JP7007585B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7093009B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7137064B2 (ja) 最適化装置及び最適化装置の制御方法
JP7053995B2 (ja) 最適化装置及び最適化装置の制御方法
JP7248907B2 (ja) 最適化装置および最適化装置の制御方法
JP7174244B2 (ja) 最適化装置及び最適化装置の制御方法
JP6923790B2 (ja) 最適化装置及び最適化装置の制御方法
Prellberg et al. Lamarckian evolution of convolutional neural networks
JP2020204928A (ja) 最適化装置および最適化方法
JP7267966B2 (ja) 情報処理装置及び情報処理方法
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP2020027426A (ja) 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
Lu et al. Adaptive online data-driven closed-loop parameter control strategy for swarm intelligence algorithm
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
JP7208529B2 (ja) 最適化装置及び最適化方法
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
Kirui et al. Scentrees. jl: A julia package for generating scenario trees and scenario lattices for multistage stochastic programming
WO2021044516A1 (ja) 演算装置、演算方法、及び、プログラムが格納された非一時的なコンピュータ可読媒体
US11886780B2 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
JP2020064536A (ja) 最適化装置及び最適化装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210610

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210614

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220506

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220704

R150 Certificate of patent or registration of utility model

Ref document number: 7111966

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150