JP7339539B2 - 最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラム - Google Patents

最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラム Download PDF

Info

Publication number
JP7339539B2
JP7339539B2 JP2020004516A JP2020004516A JP7339539B2 JP 7339539 B2 JP7339539 B2 JP 7339539B2 JP 2020004516 A JP2020004516 A JP 2020004516A JP 2020004516 A JP2020004516 A JP 2020004516A JP 7339539 B2 JP7339539 B2 JP 7339539B2
Authority
JP
Japan
Prior art keywords
value
unit
energy
temperature setting
solution
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
JP2020004516A
Other languages
English (en)
Other versions
JP2021111270A (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 JP2020004516A priority Critical patent/JP7339539B2/ja
Priority to EP20213267.6A priority patent/EP3851953B1/en
Priority to US17/118,672 priority patent/US11514135B2/en
Priority to CN202011619643.6A priority patent/CN113128663A/zh
Publication of JP2021111270A publication Critical patent/JP2021111270A/ja
Application granted granted Critical
Publication of JP7339539B2 publication Critical patent/JP7339539B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/08Thermal analysis or thermal optimisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Algebra (AREA)
  • Geometry (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Operations Research (AREA)
  • Neurology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Probability & Statistics with Applications (AREA)
  • Feedback Control In General (AREA)
  • Complex Calculations (AREA)

Description

本発明は、最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラムに関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数(コスト関数や目的関数とも呼ばれる)を用いた最適化装置(イジングマシンやボルツマンマシンとも呼ばれる)がある。
上記の最適化装置による計算では、計算対象の問題は磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えられる。そして、疑似焼き鈍し法やレプリカ交換法(交換モンテカルロ法とも呼ばれる)などのマルコフ連鎖モンテカルロ法により、イジングモデルのエネルギーの基底状態(エネルギー関数の値が最小の状態)の探索が行われる。基底状態における各スピンの状態に対応した各ビット(以下、状態変数と呼ぶ場合もある)の値の組合せが、求めたい最適解である。
疑似焼き鈍し法やレプリカ交換法では、現在の状態を局所解から脱出させるためのノイズ値を生成するためのパラメータとして、温度が用いられる。疑似焼き鈍し法では、基底状態の探索時において、温度が最高温度から最低温度まで徐々に低くされていく。レプリカ交換法では、複数のレプリカのそれぞれに互いに異なる温度が設定され、基底状態の探索時において、所定の交換確率で、レプリカ間で状態(または温度)の交換が行われる。
また、デジタル回路を用いて疑似焼き鈍し法やレプリカ交換法を行うことでイジングモデルのエネルギー(エネルギー関数の値)が最小となる各ビットの値の組合せを計算する最適化装置が提案されている(たとえば、特許文献1,2参照)。提案の最適化装置は、一度に1ビットだけ変化するとしてエネルギー変化を計算し、温度に対応するノイズ値と計算したエネルギー変化との比較に応じて、そのビットの変化を許容するか否かを決定する。
なお、トンネル効果を用いて連続変数の最適化問題を解く際に、疑似焼き鈍し法を利用する手法も提案されている(たとえば、特許文献3参照)。
特開2018-5541号公報 特開2019-194765号公報 特開2019-159782号公報
上記のように温度を用いて基底状態の探索を行う最適化装置では、計算対象の問題ごとに適切な最高温度が異なる。最高温度が高すぎる場合、状態遷移(上記ビットの値の変化)が頻繁に起こりすぎる。一方、最高温度が低すぎる場合、状態が局所解から脱出できず、いずれの場合も状態が最適解へと収束することが困難になる。そのため、計算対象の問題に適応した最高温度を設定することが望まれる。
1つの側面では、本発明は、計算対象の問題に適応した最高温度を設定可能にする最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラムを提供することを目的とする。
1つの実施態様では、イジングモデルのエネルギーの基底状態の探索を、複数の温度値を用いて実行し、複数の解を出力する探索部と、前記探索部が出力する前記複数の解から第1の解と第2の解を選択し、前記第1の解のビット列のうち、前記第2の解のビット列とは異なる複数のビットの1つの値を変化させた場合に生じる前記イジングモデルの前記エネルギーの変化を計算する処理を、前記複数のビットのそれぞれについて順次行い、前記エネルギーの増加が複数回連続して生じる場合に、前記複数回において増加した前記エネルギーの合計値を算出し、前記合計値に基づいて前記複数の温度値の最大値を決定し、決定した前記最大値を前記探索部に対して設定する温度設定部と、を有する最適化装置が提供される。
また、1つの実施態様では、最適化装置の温度設定方法が提供される。
また、1つの実施態様では、最適化装置の温度設定プログラムが提供される。
1つの側面では、計算対象の問題に適応した最高温度を設定できる。
第1の実施の形態の最適化装置の一例を示す図である。 比較例の最適化装置を示す図である。 複数の局所解の例を示す図である。 ある局所解から別の局所解に遷移させるときのエネルギー遷移の一例を示す図である。 第2の実施の形態の最適化装置の一例を示す図である。 温度設定部の一例を示す図である。 連続増加分積算部とTmax計算部の一例を示す図である。 最適化装置の動作の一例の流れを示すフローチャートである。 Tmaxの計算方法の一例の流れを示すフローチャートである。 Tmax[k]の計算処理の一例の流れを示すフローチャートである。 スピングラス問題の計算時において、X[k+1]からX[k]に遷移させるときのエネルギー遷移の一例を示す図である。 正解が既知の100問のスピングラス問題を計算したときに得られるTmaxの例を示す図である。 複数種類の問題について正解に到達したレプリカ数の一例の結果を示す図である。 第3の実施の形態の最適化装置の一例を示す図である。 Tmax[k]の計算処理の一例の流れを示すフローチャートである。 cntpとエネルギーの山との関係の一例を示す図である。 コンピュータのハードウェアの一例を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の最適化装置の一例を示す図である。
また、図2は、比較例の最適化装置を示す図である。図2において、図1と同じ要素については同一符号が付されている。
まず、図2に示されている比較例の最適化装置10aを説明する。
最適化装置10aは、探索部11と温度設定部12aを有する。探索部11は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路にて実現できる。また、温度設定部12aは、たとえば、CPU(Central Processing Unit)などのプロセッサがプログラムを実行することによるソフトウェア処理にて実現できる。また、これに限らず、探索部11と温度設定部12aのそれぞれの一部またはすべてが、上記のような電子回路を用いて実現されるようにしてもよいし、一部またはすべてがソフトウェア処理にて実現されるようにしてもよい。後述する第1の実施の形態の最適化装置10における温度設定部12についても同様である。
探索部11は、計算対象の問題を変換したイジングモデルのエネルギーの基底状態の探索を、複数の温度値を用いて実行し、複数の解(以下、本明細書では局所解とするが局所解に限定されるわけではない)(X,X,…)を出力する。
複数の温度値は、最高温度に対応する最大温度値を上限とし、最低温度に対応する最小温度値を下限とする。探索部11において疑似焼き鈍し法による探索が行われる場合、温度値は、所定の温度変更スケジュールにしたがって、最大温度値から最小温度値まで徐々に小さくなるように制御される。探索部11においてレプリカ交換法による探索が行われる場合、最小温度値から最大温度値の範囲で、レプリカ数に応じた数の温度値が用いられる。
イジングモデルのエネルギーは、たとえば、以下の式(1)に示すようなエネルギー関数E(x)で定義される。
Figure 0007339539000001
右辺第1項は、イジングモデルに含まれる全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と重み係数との積を積算したものである。xは、i番目の状態変数である。xは、j番目の状態変数である。Wijは、i番目の状態変数とj番目の状態変数との間の重み(たとえば、結合の強さ)を示す重み係数である。
右辺第2項は、全状態変数のそれぞれのバイアス係数と状態変数の値との積の総和を求めたものである。bは、i番目の状態変数に対するバイアス係数を示している。
たとえば、イジングモデルにおけるスピンの「-1」は、状態変数の値「0」に対応する。イジングモデルにおけるスピンの「+1」は、状態変数の値「1」に対応する。このため、状態変数を、0または1の値をとるビットと呼ぶこともできる。
探索部11は、複数のビットの何れかのビットを変化させたときのエネルギー変化と、ノイズ値との比較結果に基づいて、そのビットの変化を許容するか否かを判定し、許容すると判定した場合には、ビットの値を変えることで、状態遷移を発生させる。ノイズ値は、上記の温度値や乱数に基づいて求められる。温度値が大きいほど、ノイズ値の振幅が大きくなる。
疑似焼き鈍し法が行われる場合、所定の温度変更スケジュールにしたがって、温度値が小さくなるように制御されるとともに、各温度値において上記のビットの変化を許容するか否かの判定や状態遷移などの処理が所定回数、繰り返される。そして、探索部11は、たとえば、最小温度値において所定回数の繰り返し処理の後に得られた状態(各状態変数の値)を局所解として出力する。その後、再び温度値を最大温度値に戻して同様の処理を繰り返す。これにより複数の局所解が得られる。なお、探索部11は、上記エネルギー変化とノイズ値との比較を所定回数行ってもビットの変化が許容されない場合、そのときの状態を局所解として出力してもよい。または、探索部11は、状態遷移が行われるたびにエネルギーを更新し、所定回数の繰り返し処理において得られたエネルギーのうち、最小値が得られたときの状態を局所解として出力してもよい。
レプリカ交換法が行われる場合、各レプリカに、最大温度値から最小温度値の間で互いに異なる温度値が設定される。そして、各レプリカにおいて、上記のビットの変化を許容するか否かの判定や状態遷移などの処理が繰り返されるとともに、所定の交換確率で、レプリカ間で状態(または温度)の交換が行われる。探索部11は、たとえば、各レプリカにおいて状態遷移が行われるたびにエネルギーを更新し、所定回数の繰り返し処理において得られたエネルギーのうち各レプリカにおいて最小値が得られたときの状態を、それぞれ局所解として出力する。
比較例の最適化装置10aにおいて温度設定部12aは、探索部11が出力する局所解であるX,X,…に基づいて、以下のように新たな最大温度値を決定し、これまで用いられていた最大温度値の代わりに探索部11に設定する。
,X,…がエネルギーの小さい順(昇順)に並んでいる場合、温度設定部12aは、エネルギーが小さい順に局所解を2つずつ選択する。X,X,…が昇順に並んでいない場合、温度設定部12aは、各局所解に対応したエネルギーも探索部11から取得し、取得したエネルギーに基づいて、局所解を昇順に配列する。なお、温度設定部12aは、取得した各局所解から、式(1)に基づいて各局所解に対応したエネルギーを算出してもよい。
図3は、複数の局所解の例を示す図である。横軸は状態を表し、縦軸はエネルギーを表す。局所解は、図3に示すようなエネルギーランドスケープの谷に位置するエネルギーをもつ状態であり、たとえば、Xc,Xdなどが局所解である。
温度設定部12aは、選択した2つの局所解の一方の局所解のビット列のうち、他方の局所解のビット列とは異なる複数のビットを抽出する。そして、温度設定部12aは、上記複数のビットを1つずつ変化(反転)させ、各変化に伴うエネルギーの変化(ΔE)を計算する。なお、温度設定部12aは、ビットを変化させる順序を、貪欲法(greedy algorithm)によって決めてもよいし、ランダムに決めてもよい。貪欲法では、温度設定部12aは、変化候補となるビットのうちΔEが最小になるビットを変化対象とする。
図2には、貪欲法により、Xcのビット列のうち、Xdのビット列とは異なる複数のビット(Xc’)を1ビットずつ変化させて、Xdの複数のビット(Xd’)と一致させることで、Xdに遷移させるときのエネルギー遷移の例が示されている。横軸は状態の一部(Xc’を1ビットずつ変化させたビット列)を表し、縦軸はエネルギーを表す。
温度設定部12aは、計算したΔEのうち、エネルギーの増加が最大となる値(Dmax)を用いて、以下の式(2)により、最大温度値(Tmaxa)を計算する。
Figure 0007339539000002
式(2)において、Aは、Dmaxのエネルギー増加を引き起こす状態遷移を受け入れる確率(遷移受入確率)である。Aは、予め温度設定部12aに設定されている。一例では、A=0.36785である(この場合、TmaxaはDmaxとほぼ同じ値となる)。log(A)はAの自然対数を表す。
温度設定部12aは、他の局所解のペアについても同様の処理を行い、たとえば、その中で最も大きいTmaxaを、探索部11に設定する。
探索部11は、設定されたTmaxaを新たな最大温度値として用い、上記のような基底状態の探索を繰り返す。
最大温度値として、このようなTmaxaを用いることで、探索部11において、図2のDmaxのようなエネルギー増加を引き起こす状態遷移についても所定の確率(たとえば、式(2)のA)で受け入れられ、状態が局所解から脱出することが促進される。
ところで、計算対象の問題(たとえば、スピングラス問題など)によっては、ある局所解から別の局所解に遷移させるときのエネルギー遷移が、エネルギーが連続して増加していくような遷移となる場合がある。
図4は、ある局所解から別の局所解に遷移させるときのエネルギー遷移の一例を示す図である。横軸はある局所解(Xa)からのハミング距離を表し、縦軸はエネルギーを表す。
図4の例では、XaとXbはmビット異なっており、貪欲法により、Xaのビット列のうちXbのビット列とは異なるmビットを1ビットずつ変化させて、Xbに遷移させるときのエネルギー遷移の例が示されている。図4のエネルギー遷移の例では、1ビットずつ変化させたときに、連続してエネルギーが増加している部分(1ビット変化後の状態がエネルギーの山を登り続ける部分)がある。
比較例の最適化装置10aの温度設定部12aは、前述のようにmビットを1ビットずつ変化させ、各変化に伴うΔEのうち、エネルギーの増加を最大とするDmaxに基づいて、Tmaxaが算出される。図4ではΔE4がDmaxである例が示されている。
しかし、Dmaxに基づいて計算されたTmaxaを用いた場合、Dmaxのようなエネルギー増加を引き起こす状態遷移を何度も繰り返さなければ、状態が図4に示すようなエネルギーの山を登り切れず、山を登り切れる確率がとても低くなってしまう。
つまり、比較例の最適化装置10aの温度設定部12aが決定するTmaxaでは、局所解を脱出するには低すぎる値となってしまう可能性がある。
これに対して、図1に示す第1の実施の形態の最適化装置10の温度設定部12は、以下に示すように最大温度値(Tmax)を決定することで、上記のような場合にも対処可能とする。
温度設定部12は、探索部11が出力するX,X,…から、2つずつ局所解を選択する。温度設定部12は、たとえば、前述の温度設定部12aと同様に、X,X,…をエネルギーの小さい順に2つずつ選択してもよい。
そして、温度設定部12は、選択した一方の局所解のビット列のうち、他方の局所解のビット列とは異なる複数のビットの1つの値を変化させた場合に生じるΔEを計算する処理を、複数のビットのそれぞれについて順次行う。さらに、温度設定部12は、前述の温度設定部12aとは異なり、エネルギーの増加が複数回連続して生じる場合に、その複数回において増加したエネルギーの合計値を算出する。温度設定部12は、その合計値に基づいて新たなTmaxを決定し、決定したTmaxを探索部11に対して設定する。
図1には、上記の図4と同様のエネルギー遷移の例が示されている。図1の例では、Xaがnビット変化するまではΔE>0であり、n+1ビット変化したときにΔEn+1<0となっている。つまり、エネルギーの増加がn回連続して生じている。この場合、温度設定部12は、n回において増加したエネルギーの合計値(Dsum=ΔE1+ΔE2+…+ΔEn)を算出する。
そして、温度設定部12は、たとえば、以下の式(3)により、Tmaxを算出する。
Figure 0007339539000003
最大温度値としてこのようなTmaxを用いることで、2つの局所解の間に複数回連続してエネルギーの増加がなければ越えられないような大きなエネルギーの山が存在する場合においても、比較的高い確率で、そのようなエネルギーの山を越えられるようになる。たとえば、式(2)のAで与えられる確率で上記のようなエネルギーの山を越えられるようになる。これにより、2つの局所解の間に上記のような大きなエネルギーの山が存在する問題(たとえば、スピングラス問題)であっても、その問題に適応した最高温度を設定できる。そのため、最適解が得られる可能性を高められる。
(第2の実施の形態)
図5は、第2の実施の形態の最適化装置の一例を示す図である。
第2の実施の形態の最適化装置20は、探索部21、温度設定部22、全体制御部23を有する。
探索部21は、たとえば、ASICやFPGAなどの特定用途の電子回路を用いて実現できる。また、温度設定部22や全体制御部23は、たとえば、CPUなどのプロセッサがプログラムを実行することによるソフトウェア処理にて実現できる。また、これに限らず、探索部21、温度設定部22、全体制御部23のそれぞれの一部またはすべてが、上記のような電子回路を用いて実現されるようにしてもよい。また、探索部21、温度設定部22、全体制御部23のそれぞれの一部またはすべてがソフトウェア処理にて実現されるようにしてもよい。
第2の実施の形態の最適化装置20では、探索部21は、レプリカ交換法により基底状態の探索を行う。
探索部21は、それぞれがレプリカに対応するレプリカ回路21a1,21a2,…,21aNを有する。さらに、探索部21は、温度制御部21bを有する。
レプリカ回路21a1~21aNには、互いに異なる温度値(T~T)が設定される。当初のT~Tは、たとえば、予め与えられるTmax及びTmin(最小温度値)に基づいて以下の式(4)、式(5)に基づいて定められる。
Figure 0007339539000004
Figure 0007339539000005
式(4)において、Tは、レプリカ回路21a1~21aNのうち、i番目のレプリカ回路に設定される温度値である。式(5)において、Nは、レプリカ回路21a1~21aNの数(レプリカ数)である。
レプリカ回路21a1~21aNのそれぞれは、式(1)で表されるエネルギー関数に基づく基底状態の探索を、たとえば、下記のような回路により実現する。以下では、レプリカ回路21a1を主に説明するが、レプリカ回路21a2~21aNも同様の回路構成により実現できる。
レプリカ回路21a1は、ΔE生成部30a1,30a2,…,30an、セレクタ部30b、状態保持部30c、E計算部30dを有する。
なお、図5は、ΔE生成部30a1~30anに対して、i番目のビットに対応することがわかりやすいように「ΔE」計算部のように添え字iを付して名称を表記している。各ビットは、indexと呼ばれる識別情報により識別される。たとえば、i番目のビットのindexは、iである。
あるレプリカ回路における状態に含まれる何れかのビットの値を変更するか否かの判定、及び変更する場合に該当のビットの値を変更する処理が、当該レプリカ回路による基底状態の探索処理の1回分の処理に相当する。当該1回分の処理は繰り返し実行される。レプリカ回路21a1~21aNにより並列に実行される当該1回分の処理の繰り返し数をイタレーション数と言うことがある。
1つのレプリカ回路は、ΔE生成部30a1~30an(それぞれが1ビットに関する演算を行う演算処理回路の一単位であり、「ニューロン」や「ニューロン回路」などと呼ばれることもある)を、n個有する。n個のΔE生成部30a1~30anが並列に、対応するビットに関する演算を行う。
ΔE生成部30a1~30anのそれぞれに対応するビットに関する演算は、そのビットの値を変化させた場合に生じるイジングモデルのエネルギー変化とノイズ値との比較結果に基づいて、そのビットの値の変化を許容するか否かを判定する演算処理である。index=iのビット(状態変数x)の値が変化して1-xとなる場合、xの変化分は、δx=(1-x)-x=1-2xと表せる。したがって、xの値の変化に伴うエネルギー変化(ΔE)は、式(1)から以下の式(6)で表せる。
Figure 0007339539000006
式(6)において、hは以下の式(7)で表せる。
Figure 0007339539000007
ΔE生成部30a1~30anのそれぞれは、xに対するhを保持し、式(6)に基づいて、xの値を変化させた場合のΔEを、hから求める。
以下では、主に、ΔE生成部30a1を例示して説明する。同名の構成であるΔE生成部30a2~30anも同様の機能である。
ここで、ΔE生成部30a1に対応するビットを自ビット、レプリカ回路21a1で演算されるそれ以外のビットを他ビットと称する。
ΔE生成部30a1は、自ビットと他ビットとの間の重み係数(W1j(j=1~n))を記憶する。W1jの添え字jは、自ビット(index=1のビット)を含む何れかのビットのindexを示す。なお、W11=0である。
ΔE生成部30a1は、W1jを用いて、式(7)に基づくhを計算する。
ΔE生成部30a1はhを用いて、式(6)に基づき、自ビットの値を変化させた場合に生じるΔEを生成する。ΔE生成部30a1は、たとえば、状態保持部30cから供給される自ビットの現在の値から、自ビットの値が0,1の何れに変化するかを判別してもよい。ΔE生成部30a1は、生成したΔEをセレクタ部30bに出力する。ΔE生成部30a1は、ΔEの符号を逆転した-ΔEを出力してもよい。本例では、ΔE生成部30a1は、-ΔEを出力するものとする。
セレクタ部30bは、ΔE生成部30a1から供給される-ΔEに応じて、反転させるビットのインデックスを出力する。たとえば、セレクタ部30bは、-ΔEと、レプリカ回路21a1に設定された温度値に対応するノイズ値との比較結果に応じて、自ビットの値の変化を許容するか否かを判定する。
ここで、自ビットの値の変化を許容するか否かの判定について説明する。
あるエネルギー変化(ΔE)を引き起こす状態遷移の許容確率(A(ΔE))は、メトロポリス法を用いる場合とギブス法を用いる場合とで異なり、以下の式(8)で表せる。
Figure 0007339539000008
ここで、βは温度値(T)の逆数(逆温度値)である。min演算子は、引数のうちの最小値を取ることを示す。以下、上記の両方法によるA(ΔE)をf(-ΔE/T)と表記する。
たとえば、f(-ΔE/T)の確率でΔEを引き起こす状態遷移を許容することを示すフラグを出力する回路は、f(-ΔE/T)と、区間[0,1)の値をとる一様乱数uとの比較に応じた値を出力する比較器により実現できる。
ただし、次のような変形を行っても同じ機能を実現可能である。2つの数に同じ単調増加関数を作用させても大小関係は変化しない。したがって、比較器の2つの入力に同じ単調増加関数を作用させても比較器の出力は変わらない。たとえば、f(-ΔE/T)に作用させる単調増加関数としてf(-ΔE/T)の逆関数f-1(-ΔE/T)、一様乱数uに作用させる単調増加関数としてf-1(-ΔE/T)の-ΔE/Tをuとしたf-1(u)を用いることができる。その場合、上記の比較器と同様の機能を有する回路は、-ΔE/Tがf-1(u)より大きいとき1を出力する回路でよい。さらに、Tが正であることから、ΔE生成部30a1は、-ΔEがT・f-1(u)以上のとき(あるいは、ΔEが-(T・f-1(u))以下のとき)、状態遷移を許容することを示すフラグを出力してもよい。
ΔE生成部30a1は、一様乱数uを生成し、上記のf-1(u)の値に変換する変換テーブルを用いて、f-1(u)の値を生成する。たとえば、メトロポリス法が適用される場合、f-1(u)=log(u)となり、判定式は、以下の式(9)で表せる。
Figure 0007339539000009
変換テーブルは、たとえば、レジスタに記憶される。ΔE生成部30a1は、Tと、f-1(u)との積(T・f-1(u))を生成し、-ΔEと比較する。ここで、T・f-1(u)が、前述のノイズ値である。ノイズ値は、熱ノイズあるいは熱励起エネルギーに相当する。ΔE生成部30a1は、-ΔE≧T・f-1(u)の場合に、状態遷移を許容することを示すフラグとしてf=1を出力する。ΔE生成部30a1は、-ΔE<T・f-1(u)の場合、f=0とする。f=0は、状態遷移を許容しないことを示す。
ΔE生成部30a1は、-ΔE≧T・f-1(u)を変形して、T・f-1(u)をΔEに加算して得られる評価値と閾値(たとえば0)との比較に応じて、状態遷移を許容するか否かを示すフラグを出力してもよい。
セレクタ部30bは、ΔE生成部30a1~30anのそれぞれが出力した上記フラグを受け付ける。セレクタ部30bは、ΔE生成部30a1~30anのそれぞれが出力したフラグに状態遷移を許容することを示すフラグがある場合、状態遷移を許容することを示す何れか1つのフラグを選択する。セレクタ部30bは、ΔE生成部30a1~30anのそれぞれが出力したフラグに状態遷移を許容することを示すフラグがない場合には、1つの所定のフラグを選択する。
セレクタ部30bは、選択したフラグと、そのフラグに対応するビットのindex=jとを含む更新信号(update)を状態保持部30cに出力する。
状態保持部30cは、たとえば、レジスタを有し、レプリカ回路21a1における状態(X(x,x,…,x))を保持する。また、状態保持部30cは、セレクタ部30bが出力するフラグとindexとを受け、たとえば、フラグが1の場合、indexに対応するビットの値を変更し、フラグが0の場合、何れのビットの値も変更しない。状態保持部30cは、現在のXをE計算部30dに出力する。また、状態保持部30cは、レプリカ回路21a1における所定回数または所定期間の探索処理の完了時のXを温度設定部22及び全体制御部23に出力する。また、状態保持部30cは、ΔE生成部30a1~30anのそれぞれに、index=jを出力する。
E計算部30dは、状態保持部30cが出力する現在のXに基づいて、レプリカ回路21a1におけるイジングモデルの現在のエネルギー(E)を計算する。Eは、式(1)に示したエネルギー関数で定義される。E計算部30dは、レプリカ回路21a1における所定回数または所定期間の探索処理が完了すると、計算したEを、温度制御部21b及び温度設定部22に出力する。
温度制御部21bは、T(T~Tの何れか)をレプリカ回路21a1~21aNのそれぞれが有する状態遷移判定回路に設定する。なお、温度制御部21bは、温度設定部22によってTmaxが設定された場合、予め設定されているTminと、そのTmaxに基づいて、式(4)、式(5)から、T~Tを計算してもよい。温度設定部22からT~Tが供給される場合、温度制御部21bは、供給されたT~Tをレプリカ回路21a1~21aNのそれぞれが有する状態遷移判定回路に設定する。
また、温度制御部21bは、レプリカ回路21a1~21aNにおけるTの交換(温度交換)を制御する。温度制御部21bは、以下の式(10)で表される交換確率(pij)に基づいて、温度値が隣接するレプリカ回路のペア(2つのレプリカ回路の組)に関し、温度交換を行うか否かをペアごとに判定する。
Figure 0007339539000010
式(10)において、Eは、レプリカ回路21a1~21aNのうち、i番目のレプリカ回路で得られた局所解に対応するエネルギーである。Eは、j番目のレプリカ回路で得られた局所解に対応するエネルギーである。Tは、i番目のレプリカ回路に設定されている温度値である。Tは、j番目のレプリカ回路に設定されている温度値である。kは、ボルツマン定数である。
温度制御部21bは、交換後の温度値を、レプリカ回路21a1~21aNのそれぞれに供給する。たとえば、温度制御部21bは、温度値の識別情報(温度インデックスまたは温度番号と言う)と、温度値とを対応付けた第1の対応情報を、温度制御部21bが有するレジスタに保持させる。たとえば、温度インデックスは、温度値の昇順に温度値に対応付けられる(温度インデックスが大きいほど温度値も大きい)。さらに、温度制御部21bは、たとえば、昇順に配列された温度インデックスとレプリカ回路21a1~21aNのそれぞれの識別番号とを対応付けた第2の対応情報を、温度制御部21bが有するレジスタに保持させる。この場合、第2の対応情報で隣接する温度インデックスに対応するレプリカ回路のペアは、設定された温度値が隣接することになる。温度制御部21bは、第1の対応情報及び第2の対応情報に基づいて、レプリカ回路21a1~21aNに対する温度交換を制御し、行われた交換に応じて、第2の対応情報を更新する。温度制御部21bは、第1の対応情報及び第2の対応情報に基づいて、レプリカ回路21a1~21aNのそれぞれに温度値を供給する。
ただし、温度制御部21bは、レプリカ回路21a1~21aNのそれぞれの識別番号と温度値とを対応付けた対応情報を保持し、当該対応情報を温度値でソートすることで、設定された温度値が隣接する探索部のペアを特定することもできる。
なお、上記の説明では探索部21は、レプリカ回路21a1~21aNの間で温度値を交換するものとしたが、式(10)の確率で、状態を交換するようにしてもよい。ただ、状態を交換するよりも、温度値を交換する方が、送受信する情報量が少なくて済む。
温度設定部22は、探索部21が出力するレプリカ回路21a1~21aNにおける局所解であるX~Xに基づいてTmaxを決定し、探索部21に設定する。なお、温度設定部22は、決定したTmaxと、予め設定されているTminに基づいて、式(4)、式(5)から、T~Tを計算し、計算したT~Tを探索部21に出力してもよい。温度設定部22によるTmaxの決定方法の例については後述する。
全体制御部23は、最適化装置20の全体の動作を制御する。全体制御部23は、最適化装置20の外部から起動信号の入力を受け付けると、温度制御部21bに起動信号を出力し、探索部21を起動させて、最適化問題に関する基底状態の探索処理を開始させる。全体制御部23は、探索部21による探索処理が終了すると、探索部21からX~Xを取得し、最適化問題に対する解を得る。たとえば、全体制御部23は、取得したX~Xのうち最低エネルギーに対応する状態を解とする。全体制御部23は、演算の終了を示す終了信号を最適化装置20の外部に出力する。終了信号は、演算により得られた解を示す情報を含み得る。たとえば、全体制御部23は、最適化装置20に接続された図示しない表示装置に、解を示す画像情報を出力し、解を示す画像情報を表示装置により表示させることで、得られた解の内容をユーザに提示してもよい。
なお、全体制御部23は、最適化装置20の外部から前述の問題情報(Wijやb)や状態の初期値などを受け付け、探索部21の各部(ΔE生成部30a1~30an、状態保持部30cなど)に設定してもよい。また、全体制御部23は、Tmaxの初期値やTminを、最適化装置20の外部から受け付け、温度制御部21bに設定してもよい。なお、これらの情報の設定を別の制御部が行ってもよい。
また、全体制御部23は、最適化装置20の外部からリセット信号の入力を受け付けると、探索部21及び温度設定部22が保持する情報をクリアする。
(温度設定部22の例)
図6は、温度設定部の一例を示す図である。
温度設定部22は、局所解選択部22a、連続増加分積算部22b、Tmax計算部22cを有する。
局所解選択部22aは、探索部21が出力するレプリカ回路21a1~21aNにおける局所解であるX~Xと、X~Xのそれぞれに対応するE~Eを取得する。なお、以下では、Nは3以上であるものとする。局所解選択部22aは、N個の局所解をエネルギーの小さい順(昇順)に並べ、エネルギーの小さい順に2つずつ選択する。なお、局所解選択部22aは、N個の局所解をすべて選択対象とするのではなく、エネルギーが小さい順にm(<N)個の局所解を選択対象としてもよい。なお、局所解選択部22aは、X~Xからランダムに2つずつ局所解を選択してもよく、その場合、E~Eを取得しなくてもよい。
連続増加分積算部22bは、選択された2つの局所解のうちの一方のビット列のうち、他方のビット列とは異なる複数のビット(以下集合Sという)の1つの値を変化させた場合に生じるΔEを計算する処理を、集合Sに属すビットのそれぞれについて順次行う。連続増加分積算部22bは、たとえば、前述の式(6)、式(7)により、ΔEを計算する。なお、式(6)、式(7)によりΔEの計算を行うための問題情報(Wijやb)は、たとえば、図示しない記憶部に予め記憶されており、連続増加分積算部22bは、問題情報をその記憶部から読み出してΔEを計算する。
ビットを変化させる順序を決める方法としては、貪欲法や、ランダムに決める方法がある。貪欲法を適用する場合、連続増加分積算部22bは、集合Sに属すビットのそれぞれについて、それらのビットが変化した場合のΔEを算出し、ΔEが最小となるビットを変化させる。
さらに、連続増加分積算部22bは、集合Sに属すビットのそれぞれを順次変化させたときに、エネルギーの増加が複数回連続して生じる場合、ΔEを積算していくことで、複数回において増加したエネルギーの合計値(Dsum)を算出する。
Tmax計算部22cは、局所解選択部22aが選択した各局所解のペアについて連続増加分積算部22bが算出したDsumと、所定の遷移受入確率(A)とに基づいて、式(3)により、Tmaxを計算する。そして、Tmax計算部22cは、各局所解のペアについて計算したTmaxのうち、最大のものを出力(探索部21に設定)する。
以下、貪欲法を適用する場合の、連続増加分積算部22bとTmax計算部22cの例を説明する。
図7は、連続増加分積算部とTmax計算部の一例を示す図である。
連続増加分積算部22bは、集合S抽出部22b1、ΔE計算部22b2、判定部22b3、ビット変更部22b4、フラグ値保持部22b5、積算部22b6、積算値保持部22b7を有する。
集合S抽出部22b1は、局所解選択部22aが選択した2つの局所解(以下X[k],X[k+1]という)の一方であるX[k+1]のビット列のうち、X[k]のビット列とは異なる複数のビットである集合Sを抽出する。kは、局所解を識別する識別番号である。kは、たとえば、0~N-2であり、X[0]~X[N-1]がエネルギーについて昇順である場合、X[k],X[k+1]は、kが大きくなるほどエネルギーが高い局所解であることを示す。
ΔE計算部22b2は、集合Sの他、X[k+1],Wij,bに基づいて、前述の式(6)、式(7)により、集合Sに属すビットのそれぞれについて、それらのビットが変化した場合のΔEを算出する。ΔE計算部22b2は、ビット変更部22b4によって集合Sに属すビットの何れかが変更されるたびに、変更済のビットを除いた他のビットについて同様の処理を繰り返す。
判定部22b3は、ΔE計算部22b2が算出したΔEに基づいて、ΔEが最小となるビットを選択するとともに、そのビットについてのindexをビット変更部22b4に出力する。さらに判定部22b3は、k=0のとき、最小となるΔEが0より大きい場合、エネルギーが増加しているか否かを示すフラグ値(以下faという)を、fa=1とし、フラグ値保持部22b5に保持させる。
判定部22b3は、k>0のとき、最小となるΔEが0より大きい場合、フラグ値保持部22b5に保持されているfaを参照し、fa=0であればfa=1に更新し、fa=1であればそのままfaを維持する。判定部22b3は、k>0のとき、最小となるΔEが0以下である場合、フラグ値保持部22b5に保持されているfaを参照し、fa=1であればfa=0に更新し、fa=0であればそのままfaを維持する。
また、判定部22b3は、最小となるΔEが0より大きい場合、そのΔEを積算部22b6に出力する。判定部22b3は、最小となるΔEが0以下の場合、その時点でのΔEの積算値が、積算値保持部22b7に保持されている、X[k],X[k+1]を用いた場合に得られる積算値のこれまでの最大値よりも大きい場合、その積算値で最大値を更新する。なお、積算値保持部22b7が、X[k],X[k+1]を用いた場合に得られる積算値の平均値を保持している場合、判定部22b3は今回得られた積算値で、その平均値を更新する。
ビット変更部22b4は、判定部22b3から供給されるindexに対応したビットの値を変更し、変更後の値とindexをΔE計算部22b2に出力する。
フラグ値保持部22b5は、上記のfaの値を保持する。
積算部22b6は、判定部22b3から供給されるΔEを積算して積算値保持部22b7に保持させる。
積算値保持部22b7は、ΔEの積算値及び積算値の最大値を保持する。また、積算値保持部22b7は、積算値の最大値を保持する代わりに、積算値の平均値を保持してもよい。積算値やその最大値または平均値は、たとえば、X[k],X[k+1]のkの値が変わるたびに更新される。
Tmax計算部22cは、Tmax[k]演算実行部22c1、Tmax[k]保持部22c2、Tmax選択部22c3を有する。
Tmax[k]演算実行部22c1は、X[k],X[k+1]を用いた場合の最大温度値(Tmax[k])の演算を実行する。Tmax[k]は、積算値保持部22b7に保持されている、そのkの値についてのΔEの積算値の最大値を、式(3)のDsumとして用いて計算することで得られる。
Tmax[k]保持部22c2は、Tmax[k]演算実行部22c1が計算したTmax[k]を保持する。
Tmax選択部22c3は、Tmax[k]保持部22c2に保持されている各kについてのTmax[k]のうち、最大の値のものをTmaxとして出力する。このため、Tmax[k]を、最大温度値の候補値と呼ぶこともできる。なお、Tmax選択部22c3は、Tmax[k]保持部22c2に保持されている各kについてのTmax[k]の平均値を計算し、計算した平均値をTmaxとして出力してもよい。
以下、最適化装置20の動作の一例の流れを説明する。
(最適化装置20の動作例)
図8は、最適化装置の動作の一例の流れを示すフローチャートである。
(S10)全体制御部23は、レプリカ回路21a1~21aNのそれぞれにおける探索処理の繰り返し回数(イタレーション数)を管理するカウンタの値を示す変数itに0を代入する(it=0)。
(S11)全体制御部23は、Wij,b、1回起動当たりのイタレーション数=m、Tminを探索部21に設定する。
(S12)全体制御部23または温度設定部22は、Tmaxを探索部21に設定する。Tmaxの初期値は、たとえば、全体制御部23によって探索部21に設定される。その後、局所解が探索部21から出力されるたびに、局所解に基づいて計算された新たなTmaxが温度設定部22によって設定される。
(S13)全体制御部23は、起動信号により探索部21を起動する。
(S14)全体制御部23は、探索部21による探索処理の終了を待機する。
(S15)温度設定部22は、N個の局所解を探索部21から取得する。
(S16)温度設定部22は、新規のTmaxの計算を行う。Tmaxの計算方法の流れについては後述する。
(S17)全体制御部23は、itにmを加算する(it=it+m)。
(S18)全体制御部23は、it>Mであるか否かを判定する。Mは、総イタレーション数である。it>Mの場合、処理が終了する。処理が終了すると、全体制御部23は、探索部21からX~Xを取得し、最適化問題に対する解を得る。たとえば、全体制御部23は、取得したX~Xのうち最低エネルギーに対応する状態を解とする。また、全体制御部23は、演算の終了を示す終了信号を最適化装置20の外部に出力する。it≦Mの場合、ステップS12からの処理が繰り返される。
ステップS12~S18で示されるように、温度設定部22は、新たに取得した局所解に基づいて新規のTmaxを計算し、探索部21に設定する処理を繰り返し行うことで、より適切なTmaxを探索部21に設定できる可能性がある。
図9は、Tmaxの計算方法の一例の流れを示すフローチャートである。
図8のステップS16の処理は、たとえば、図9のような処理の流れにより行われる。
(S20)温度設定部22の局所解選択部22aは、探索部21から取得した局所解(X~X)を、対応するエネルギー(E~E)の昇順にソートする。
(S21)局所解選択部22aは、kに0を代入する(k=0)。ここで、kは、前述したように、局所解を識別する識別番号である。
(S22)局所解選択部22aは、X[k]とX[k+1]とを選択する。
(S23)温度設定部22の連続増加分積算部22bとTmax計算部22cは、局所解選択部22aが選択したX[k],X[k+1]に基づいて、Tmax[k]を計算する。Tmax[k]の計算処理の流れについては後述する。
(S24)局所解選択部22aは、kをインクリメントする(k=k+1)。
(S25)局所解選択部22aは、kがN-1に等しい(k==N-1)か否かを判定する。kがN-1に等しい場合、ステップS26に処理が進む。kがN-1に等しくない場合、ステップS22からの処理が繰り返される。
(S26)温度設定部22のTmax計算部22cは、Tmax=max(Tmax[k])(k=0,1,…,N-2)を計算する。ここで、max(Tmax[k])は、最大温度値の候補値であるTmax[0],Tmax[1],…,Tmax[N-2]のうちの最大値を表す。そして、新規のTmaxの計算が終了する。なお、Tmax選択部22c3は、Tmax[0]~Tmax[N-2]の平均値をTmaxとしてもよい。
なお、ステップS26において、Tmax≦0の場合、Tmax計算部22cは、前回計算したTmaxを用いる(この場合、Tmaxの更新を行わないと考えてもよい)。
図10は、Tmax[k]の計算処理の一例の流れを示すフローチャートである。
図9のステップS23の処理は、たとえば、図10のような処理の流れにより行われる。
(S30)図7の連続増加分積算部22bの集合S抽出部22b1は、解C=X[k+1]とする。
(S31)連続増加分積算部22bの判定部22b3は、積算値保持部22b7に保持させるDsumを0とし、フラグ値保持部22b5に保持させるfaを0とする。
(S32)集合S抽出部22b1は、解CとX[k]間における前述の集合Sを抽出する。
(S33)連続増加分積算部22bのΔE計算部22b2は、前述の式(6)、式(7)により、集合Sに属すビットのそれぞれについて、それらのビットが変化した場合のΔEを算出する。
(S34)連続増加分積算部22bの判定部22b3は、ΔEが最小になるビットsを選択する。たとえば、集合Sに属す、すべてのビットに対してΔEが正となる場合には、連続増加分積算部22bは、最もエネルギーの増加の小さいビットsを選択する。判定部22b3は、D=dE[s]とする。ここで、dE[s]は、解Cにおけるビットsの変化に対するΔEを示す。
(S35)判定部22b3は、D>0であるか否かを判定する。D>0である場合、ステップS36に処理が進み、D>0ではない場合、ステップS40に処理が進む。
(S36)判定部22b3は、フラグ値保持部22b5に保持されているfaが1であるか否かを判定する。faが1である場合、ステップS37に処理が進み、faが1ではない場合、ステップS38に処理が進む。
(S37)積算部22b6は、積算値保持部22b7に保持されているDsumにDを加算する(Dsum=Dsum+D)。その後、ステップS43に処理が進む。
(S38)積算部22b6は、積算値保持部22b7に保持されているDsumにDを代入する(Dsum=D)。
(S39)判定部22b3は、faを1とする。その後、ステップS43に処理が進む。
(S40)判定部22b3は、フラグ値保持部22b5に保持されているfaが1であるか否かを判定する。faが1である場合、ステップS41に処理が進み、faが1ではない場合、ステップS43に処理が進む。
(S41)判定部22b3は、積算値保持部22b7に保持されている積算値の最大値を示すDsumpに、これまで得られているDsumpと現在のDsumのうち大きい方を代入する(Dsump=max(Dsump,Dsum))。なお、Dsumpは、これまで得られたDsumの平均値であってもよい。
(S42)判定部22b3は、faを0とする。その後、ステップS43に処理が進む。
(S43)ビット変更部22b4は、解Cのビットsの値を変更し、ΔE計算部22b2におけるΔEの計算対象である集合Sからビットsを除外させる。
(S44)判定部22b3は、集合Sが空集合(すなわち、S=={})であるか否かを判定する。集合Sが空集合の場合、ステップS45に処理が進む。集合Sが空集合でない場合、ステップS33からの処理が繰り返される。
(S45)Tmax計算部22cのTmax[k]演算実行部22c1は、Tmax[k]=Dsump/-log(A)を計算する。これにより、Tmax[k]の計算が終了する。
なお、図8~図10の各処理ステップの順序は上記の順序に限定されず、適宜入れ替えてもよい。
(効果)
図11は、スピングラス問題の計算時において、X[k+1]からX[k]に遷移させるときのエネルギー遷移の一例を示す図である。横軸はX[k+1]からのハミング距離を表し、縦軸はエネルギーを表す。問題の規模を示すビット数nは1024としている。
図11の例では、X[k+1]とX[k]は約470ビット異なっており、貪欲法により、これらのビットの集合を前述の集合Sとして1ビットずつ変化させて、X[k]に遷移させるときのエネルギー遷移の例が示されている。
図11のエネルギー遷移の例では、1ビットずつ変化させたときに、連続してエネルギーが増加している部分(状態がエネルギーの山を登り続ける部分)がある。
図2に示した方法のように、各ビット変化に伴うΔEのうち、エネルギー増加を最大とするDmaxに基づき最大温度値を計算する場合、状態が図11に示すようなエネルギーの山を登り切れる確率がとても低くなってしまう。Dmaxのようなエネルギー増加を引き起こす状態遷移を何度も繰り返さなければならないためである。つまり、図2に示した方法により計算される最大温度値では、局所解を脱出するには低すぎる値となってしまう可能性がある。
これに対して、第2の実施の形態の最適化装置20の温度設定部22は、上記のようにDsumpに基づいてTmaxを決定することで、上記のようなエネルギーの山に対応したTmaxを決定できる。つまり、X[k],X[k+1]の間に多数回連続してエネルギーの増加がなければ越えられないような大きなエネルギーの山が存在する場合においても、比較的高い確率(たとえば、式(2)のA)で、そのようなエネルギーの山を越えられるようになる。これにより、2つの局所解の間に上記のような大きなエネルギーの山が存在する問題(たとえば、スピングラス問題)であっても、その問題に適応したTmaxを設定できる。そのため、最適解が得られる可能性を高められる。
また、温度設定部22は、1つのTmax[k]をTmaxとするのではなく、N個の局所解から選択される複数の局所解ペアのそれぞれについて、最大温度値の候補値を算出し、それらの候補値の最大値、またはそれらの候補値の平均値をTmaxとする。これによって、計算対象の問題により適応したTmaxを設定できる。
図12は、正解が既知の100問のスピングラス問題を計算したときに得られるTmaxの例を示す図である。横軸は100問のスピングラフ問題の問題番号を表し、縦軸はTmaxを表す。
計算結果35aは、第2の実施の形態の最適化装置20の温度設定部22によるTmaxの計算結果を表している。計算結果35bは、最適化装置20の温度設定部22の代わりに、前述の比較例の最適化装置10aの温度設定部12aのようにDmaxに基づいて計算したTmaxの計算結果を表している。なお、計算結果35a,35bのそれぞれには、探索部21における総イタレーション数を2条件(10回と10回)、適用した場合の計算結果が重ね合わされている。
本願発明者が探索部21に設定した適切なTmaxの範囲(正解が得られたTmaxの範囲)は、Tmax=10~10の範囲であった。Dmaxを用いる手法では、計算結果35bのように、適切なTmaxの範囲よりも低い値が得られた。これに対して温度設定部22による手法では、計算結果35aのように、適切なTmaxの範囲に含まれる値が得られた。
図13は、複数種類の問題について正解に到達したレプリカ数の一例の結果を示す図である。横軸は各種の組合せ最適化問題を表し、縦軸は正解に到達したレプリカ数(レプリカ回路の数)を表す。なお、図13において実線は、第2の実施の形態の最適化装置20による手法を用いた場合の実験結果、点線は、前述の比較例のようにDmaxに基づいてTmaxを計算する手法を用いた場合の実験結果を表している。
「正解に到達した」とは、各問題について既知の最低エネルギーが得られたことをいう。実験条件として、総イタレーション回数=10、レプリカ回路21a1~21aNの個数=100を適用した。図13に示されている正解に到達したレプリカ数は、この条件で、10回試行を行ったときに正解に到達したレプリカ数の平均値である。各試行において、探索部21で用いられる一様乱数のシードは異なる。
計算対象の組合せ問題は、それぞれ2種類の、スピングラス問題、巡回セールスマン問題、グラフカット問題、分子類似性問題、二次割り当て問題である。
図13のように、第2の実施の形態の最適化装置20による手法を用いた場合、スピングラス問題1では、正解に到達したレプリカ数は、2.5個、スピングラス問題2では、正解に到達したレプリカ数は、68.6個であった。つまり、比較例の手法では解が得られないスピングラス問題についても解を得ることができた。また、他の問題についても比較例の手法とほぼ同等の結果が得られた。
(第3の実施の形態)
図14は、第3の実施の形態の最適化装置の一例を示す図である。図14では、図5に示した最適化装置20と同じ要素(探索部21や全体制御部23)については一部図示が省略されている。
第3の実施の形態の最適化装置40の温度設定部41は、局所解選択部41a、連続増加分積算部41b、Tmax計算部41cを有する。
温度設定部41の各部は、たとえば、ASICやFPGAなどの特定用途の電子回路を用いて実現できる。また、温度設定部41の各部は、たとえば、CPUなどのプロセッサがプログラムを実行することによるソフトウェア処理にて実現できる。また、これに限らず、温度設定部41が、上記のような電子回路と、プロセッサがプログラムを実行することによるソフトウェア処理の両方により実現されるようにしてもよい。
局所解選択部41aは、図6に示した温度設定部22の局所解選択部22aと同様の機能を実現する。すなわち、局所解選択部22aは、探索部21が出力するレプリカ回路21a1~21aNにおける局所解であるX~Xと、X~Xのそれぞれに対応するE~Eを取得する。そして、局所解選択部41aは、N個の局所解をエネルギーの小さい順(昇順)に並べ、エネルギーの小さい順に2つずつ選択する。なお、局所解選択部41aは、N個の局所解をすべて選択対象とするのではなく、エネルギーが小さい順にm(<N)個の局所解を選択対象としてもよい。
連続増加分積算部41bは、まず、図6に示した連続増加分積算部22bと同様に以下の処理を行う。連続増加分積算部41bは、選択された2つの局所解のうちの一方のビット列のうち、他方のビット列とは異なる複数のビット(以下集合Sという)の1つの値を変化させた場合に生じるΔEを計算する処理を、集合Sに属すビットのそれぞれについて順次行う。さらに、連続増加分積算部41bは、集合Sに属すビットのそれぞれを順次変化させたときに、エネルギーの増加が複数回連続して生じる場合、ΔEを積算していく。
ただ、連続増加分積算部41bは、図6に示した連続増加分積算部22bと異なり、エネルギーの増加が複数回連続して生じる場合、その回数(カウンタ値)を+1していくとともに、その複数回のエネルギー増加のうち、最大の増加値(DMAX)を保持する。連続増加分積算部41bは、エネルギーの連続増加が終わるたび、積算値保持部41b7に保持されている、X[k],X[k+1]を用いた場合に得られる積算値のこれまでの最大値よりも、そのときのΔEの積算値が大きい場合、その積算値で最大値を更新する。また、連続増加分積算部41bは、ΔEの積算値の最大値が得られたときのカウンタ値とDMAXを保持する。以下、最大の積算値が得られた場合の、カウンタ値をcntp、DMAXをDMAXpという。
Tmax計算部41cは、全局所解のペアについての連続増加分積算部41bによる処理の終了時に保持されているcntpとDMAXpと、所定の遷移受入確率(A)とに基づいて、以下の式(11)により、Tmaxを計算する。
Figure 0007339539000011
そして、Tmax計算部41cは、各局所解のペアについて計算したTmaxのうち、最大のものを出力(探索部21に設定)する。
図14には、連続増加分積算部41bとTmax計算部41cの一例が示されている。
連続増加分積算部41bは、図7に示した連続増加分積算部22bと同様に、集合S抽出部41b1、ΔE計算部41b2、判定部41b3、ビット変更部41b4、フラグ値保持部41b5、積算部41b6、積算値保持部41b7を有する。さらに、連続増加分積算部41bは、カウンタ41b8、DMAX保持部41b9、カウンタ値保持部41b10を有する。
集合S抽出部41b1は、図7の集合S抽出部22b1と同様に、局所解選択部41aが選択した2つの局所解(以下X[k],X[k+1]という)のX[k+1]のビット列のうち、X[k]のビット列とは異なる複数のビットである集合Sを抽出する。
ΔE計算部41b2は、図7のΔE計算部22b2と同様に、集合Sに属すビットのそれぞれについて、それらのビットが変化した場合のΔEを算出する。ΔE計算部41b2は、ビット変更部41b4によって集合Sに属すビットの何れかが変更されるたびに、変更済のビットを除いた他のビットについて同様の処理を繰り返す。
判定部41b3は、図7の判定部22b3と同様に、ΔE計算部41b2が算出したΔEに基づいて、ΔEが最小となるビットを選択するとともに、そのビットについてのindexをビット変更部41b4に出力する。また、判定部41b3は、判定部22b3と同様に、kとΔEの値に応じて、フラグ値保持部22b5に保持されているフラグ値(fa)を更新または維持する。また、判定部41b3は、最小となるΔEが0より大きい場合、そのΔEを積算部41b6に出力する。
さらに、判定部41b3は、判定部22b3と異なり、エネルギーの増加が連続して発生するたびに、カウンタ41b8にカウンタ値を+1させるカウントアップ信号を出力する。また、判定部41b3は、複数回連続するエネルギー増加のうち、最大の増加値であるDMAXをDMAX保持部41b9に保持させる。
また、判定部41b3は、エネルギーの連続増加が終わるたびに、そのときのΔEの積算値が、積算値保持部41b7に保持されている、X[k],X[k+1]を用いた場合に得られる積算値のこれまでの最大値よりも大きいか否かを判定する。そのときのΔEの積算値が、これまでの最大値よりも大きい場合、判定部41b3は、その積算値で、積算値保持部41b7に保持されている最大値を更新する。
また、判定部41b3は、上記最大値が得られたときのカウンタ値であるcntpをカウンタ値保持部41b10に保持させ、最大値が得られたときのDMAXであるDMAXpをDMAX保持部41b9に保持させる。
ビット変更部41b4は、図7のビット変更部22b4と同様に、判定部41b3から供給されるindexに対応したビットの値を変更し、変更後の値とindexをΔE計算部41b2に出力する。
フラグ値保持部41b5は、上記のfaの値を保持する。
積算部41b6は、図7の積算部22b6と同様に、判定部41b3から供給されるΔEを積算して積算値保持部41b7に保持させる。
積算値保持部41b7は、ΔEの積算値及び積算値の最大値を保持する。
カウンタ41b8は、判定部41b3がカウントアップ信号を出力するたびに、カウンタ値を+1する。
MAX保持部41b9は、判定部41b3から供給されるDMAXを保持するとともに、ΔEの積算値の最大値が得られたときのDMAXであるDMAXpを保持する。
カウンタ値保持部41b10は、ΔEの積算値の最大値が得られたときのカウンタ値であるcntpを保持する。
Tmax計算部41cは、Tmax[k]演算実行部41c1、Tmax[k]保持部41c2、Tmax選択部41c3を有する。
Tmax[k]演算実行部41c1は、X[k],X[k+1]を用いた場合の最大温度値(Tmax[k])の演算を実行する。Tmax[k]は、DMAX保持部41b9に保持されている、そのkについてのDMAXpと、カウンタ値保持部41b10に保持されている、そのkについてのcntpに基づいて、式(12)を計算することで得られる。
Tmax[k]保持部41c2は、Tmax[k]演算実行部41c1が計算したTmax[k]を保持する。
Tmax選択部41c3は、Tmax[k]保持部41c2に保持されている各kについてのTmax[k]のうち、最大の値のものをTmaxとして出力する。なお、Tmax選択部41c3は、Tmax[k]保持部22c2に保持されている各kについてのTmax[k]の平均値を計算し、計算した平均値をTmaxとして出力してもよい。
以下、第3の実施の形態の最適化装置40における、Tmax[k]の計算処理の一例の流れを説明する。その他の動作については、図8、図9に示した最適化装置20の処理と同様の処理となる。
図15は、Tmax[k]の計算処理の一例の流れを示すフローチャートである。
ステップS50の処理は、図10に示したステップS30の処理と同じであるため説明を省略する。
(S51)連続増加分積算部41bの判定部41b3は、積算値保持部41b7に保持させるΔEの積算値であるDsumとその最大値であるDsumpを0とする。さらに判定部41b3は、フラグ値保持部41b5に保持させるfa、DMAX保持部41b9に保持させるDMAX及びDMAXp、カウンタ41b8のカウンタ値であるcnt、カウンタ値保持部41b10に保持させる上記のcntpを0とする。
その後のステップS52~S56の処理は、図10に示したステップS32~S36の処理と同じであるため説明を省略する。
(S57)faが1である場合、積算部41b6は、積算値保持部41b7に保持されているΔEの積算値であるDsumに、D(解Cにおけるビットsの変化に対するΔE)を加算する(Dsum=Dsum+D)。また、判定部41b3は、DMAX保持部41b9に保持されているDMAXに、これまで得られているDMAXとDのうち大きい方を代入する(DMAX=max(DMAX,D))。さらに、判定部41b3は、カウントアップ信号を出力することで、カウンタ41b8にcntを+1させる(cnt=cnt+1)。その後、ステップS64に処理が進む。
(S58)積算部41b6は、積算値保持部41b7に保持されているDsumにDを代入する(Dsum=D)。また、判定部41b3は、DMAX保持部41b9に保持されているDMAXにDを代入する(DMAX=D)。さらに、判定部41b3は、カウンタ41b8にcntを0にさせる(cnt=0)。
(S59)判定部41b3は、faを1とする。その後、ステップS64に処理が進む。
(S60)判定部41b3は、フラグ値保持部41b5に保持されているfaが1であるか否かを判定する。faが1である場合、ステップS61に処理が進み、faが1ではない場合、ステップS64に処理が進む。
(S61)判定部41b3は、DsumがDsumpより大きいか否かを判定する。DsumがDsumpより大きい場合、ステップS62に処理が進み、DsumがDsump以下の場合、ステップS63に処理が進む。
(S62)判定部41b3は、積算値保持部41b7に保持されている積算値の最大値を示すDsumpに、Dsumを代入する(Dsump=Dsum)。さらに、判定部41b3は、DMAX保持部41b9に保持されているDMAXpをDMAXで更新する(DMAXp=DMAX)とともに、カウンタ値保持部41b10に保持されているcntpをcntで更新する(cntp=cnt)。
その後のステップS63~S65の処理は、図10のステップS42~S44の処理と同じであるため説明を省略する。
(S66)Tmax計算部41cのTmax[k]演算実行部41c1は、Tmax[k]=DMAXp/-log(A(1/cntp))を計算する。これにより、Tmax[k]の計算が終了する。
上記のような処理では、cntpは、状態がエネルギーの山を登り切るまでのエネルギーの連続増加回数に相当する。
図16は、cntpとエネルギーの山との関係の一例を示す図である。状態を局所解(X[k+1])から別の局所解(X[k])に遷移させるときのエネルギー遷移の一例が示されている。横軸はX[k+1]からのハミング距離を表し、縦軸はエネルギーを表す。
カウンタ41b8のカウンタ値(cnt)は、エネルギー増加が連続するたびにカウントアップされていく。図16の例では、cnt=nのときに、エネルギーの山を登り切れる。また、このときのエネルギー変化の積算値であるDsumが、図16の例の場合では、最大の積算値、Dsumpとなっている。このため、cnt=n=cntpとなっている。また、cnt=1~nの間のエネルギー増加の最大値が、DMAXpとなり、cntpとDMAXpとに基づいてTmax[k]が算出される。
上記のような式によりTmax[k]を算出することで、cntpの値に基づいて、Aが補正され、DMAXpのエネルギー変化を引き起こす状態遷移の受け入れ確率が得られる。cntpの値が大きいほどエネルギーの山を登り切るために、その受け入れ確率が上がる。これにより、Tmax計算部41cから、エネルギーの山に対応したTmaxが出力される。
つまり、X[k],X[k+1]の間に多数回連続してエネルギーの増加がなければ越えられないような大きなエネルギーの山が存在する場合においても、比較的高い確率で、そのようなエネルギーの山を越えられるようになる。これにより、2つの局所解の間に上記のような大きなエネルギーの山が存在する問題(たとえば、スピングラス問題)であっても、その問題に適応したTmaxを設定できる。そのため、解が得られる可能性を高められる。
(コンピュータのハードウェア例)
上記の第1乃至第3の実施の形態の最適化装置10,20,40のそれぞれは、前述のように、プロセッサがプログラムを実行することによるソフトウェア処理によって実現できる。その場合、最適化装置10,20,40またはそれらの一部(たとえば、温度設定部22,41、全体制御部23)は、以下に示すようなハードウェアを有するコンピュータであってもよい。
図17は、コンピュータのハードウェアの一例を示す図である。
コンピュータ50は、CPU51、RAM(Random Access Memory)52、HDD(Hard Disk Drive)53、画像信号処理部54、入力信号処理部55、媒体リーダ56及び通信インタフェース57を有する。上記ユニットは、バスに接続されている。
CPU51は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU51は、HDD53に記憶されたプログラムやデータの少なくとも一部をRAM52にロードし、プログラムを実行する。なお、CPU51は複数のプロセッサコアを備えてもよく、コンピュータ50は複数のプロセッサを備えてもよく、前述の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
RAM52は、CPU51が実行するプログラムやCPU51が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、コンピュータ50は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD53は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、前述の温度設定部22,41の処理を実行するための温度設定プログラムなどが含まれる。なお、コンピュータ50は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部54は、CPU51からの命令にしたがって、コンピュータ50に接続されたディスプレイ54aに画像を出力する。ディスプレイ54aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部55は、コンピュータ50に接続された入力デバイス55aから入力信号を取得し、CPU51に出力する。入力デバイス55aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、コンピュータ50に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ56は、記録媒体56aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体56aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ56は、たとえば、記録媒体56aから読み取ったプログラムやデータを、RAM52やHDD53などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU51によって実行される。なお、記録媒体56aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体56aやHDD53を、コンピュータ読み取り可能な記録媒体ということがある。
通信インタフェース57は、ネットワーク57aに接続され、ネットワーク57aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース57は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
前述の最適化装置10,20,40の処理内容は、上記のようなコンピュータ50にプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体56a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVD及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD53)にプログラムをコピーして実行してもよい。
以上、実施の形態に基づき、本発明の最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 最適化装置
11 探索部
12 温度設定部

Claims (6)

  1. イジングモデルのエネルギーの基底状態の探索を、複数の温度値を用いて実行し、複数の解を出力する探索部と、
    前記探索部が出力する前記複数の解から第1の解と第2の解を選択し、前記第1の解のビット列のうち、前記第2の解のビット列とは異なる複数のビットの1つの値を変化させた場合に生じる前記イジングモデルの前記エネルギーの変化を計算する処理を、前記複数のビットのそれぞれについて順次行い、前記エネルギーの増加が複数回連続して生じる場合に、前記複数回において増加した前記エネルギーの合計値を算出し、前記合計値に基づいて前記複数の温度値の最大値を決定し、決定した前記最大値を前記探索部に対して設定する温度設定部と、
    を有する最適化装置。
  2. 前記温度設定部は、所定の確率値の対数で前記合計値を除算した値に基づいて前記最大値を決定する、請求項1に記載の最適化装置。
  3. 前記温度設定部は、
    前記エネルギーの増加が連続して生じる回数を計数し、
    前記第1の解と前記第2の解についての前記合計値が最大となる場合の、前記回数の計数値と、複数回連続して生じた前記エネルギーの増加のうちの最大の増加値とを保持し、
    所定の確率を底、前記計数値の逆数をべき指数とした値の対数で、前記最大の増加値を除算した値に基づいて、前記最大値を決定する、
    請求項1に記載の最適化装置。
  4. 前記温度設定部は、3つ以上である前記複数の解から選択される複数の解ペアのそれぞれについて、前記最大値の候補値を算出し、
    前記探索部に対して設定される前記最大値は、前記複数の解ペアのそれぞれについて算出された前記候補値のうちの、最大の値である、
    請求項1乃至3の何れか一項に記載の最適化装置。
  5. イジングモデルのエネルギーの基底状態の探索を、複数の温度値を用いて実行して複数の解を出力する探索部から、温度設定部が、前記複数の解を取得し、
    前記温度設定部は、前記複数の解から第1の解と第2の解を選択し、
    前記温度設定部は、前記第1の解のビット列のうち、前記第2の解のビット列とは異なる複数のビットの1つの値を変化させた場合に生じる前記イジングモデルの前記エネルギーの変化を計算する処理を、前記複数のビットのそれぞれについて順次行い、
    前記温度設定部は、前記エネルギーの増加が複数回連続して生じる場合に、前記複数回において増加した前記エネルギーの合計値を算出し、
    前記温度設定部は、前記合計値に基づいて前記複数の温度値の最大値を決定し、
    前記温度設定部は、決定した前記最大値を前記探索部に対して設定する、
    最適化装置の温度設定方法。
  6. イジングモデルのエネルギーの基底状態の探索を、複数の温度値を用いて実行して複数の解を出力する探索部から、前記複数の解を取得し、
    前記複数の解から第1の解と第2の解を選択し、
    前記第1の解のビット列のうち、前記第2の解のビット列とは異なる複数のビットの1つの値を変化させた場合に生じる前記イジングモデルの前記エネルギーの変化を計算する処理を、前記複数のビットのそれぞれについて順次行い、
    前記エネルギーの増加が複数回連続して生じる場合に、前記複数回において増加した前記エネルギーの合計値を算出し、
    前記合計値に基づいて前記複数の温度値の最大値を決定し、
    決定した前記最大値を前記探索部に対して設定する、
    処理をコンピュータに実行させる、最適化装置の温度設定プログラム。
JP2020004516A 2020-01-15 2020-01-15 最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラム Active JP7339539B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020004516A JP7339539B2 (ja) 2020-01-15 2020-01-15 最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラム
EP20213267.6A EP3851953B1 (en) 2020-01-15 2020-12-11 Optimization apparatus, temperature setting method, and temperature setting program
US17/118,672 US11514135B2 (en) 2020-01-15 2020-12-11 Optimization apparatus, temperature setting method, and non-transitory computer-readable storage medium
CN202011619643.6A CN113128663A (zh) 2020-01-15 2020-12-30 优化装置、温度设置方法和温度设置程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020004516A JP7339539B2 (ja) 2020-01-15 2020-01-15 最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラム

Publications (2)

Publication Number Publication Date
JP2021111270A JP2021111270A (ja) 2021-08-02
JP7339539B2 true JP7339539B2 (ja) 2023-09-06

Family

ID=73834176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020004516A Active JP7339539B2 (ja) 2020-01-15 2020-01-15 最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラム

Country Status (4)

Country Link
US (1) US11514135B2 (ja)
EP (1) EP3851953B1 (ja)
JP (1) JP7339539B2 (ja)
CN (1) CN113128663A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
TWI790160B (zh) * 2022-01-24 2023-01-11 旺宏電子股份有限公司 記憶體裝置及其操作方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018005541A (ja) 2016-07-01 2018-01-11 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP2018063626A (ja) 2016-10-14 2018-04-19 富士通株式会社 最適化装置及び最適化装置の制御方法
JP2019160169A (ja) 2018-03-16 2019-09-19 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2020173579A (ja) 2019-04-10 2020-10-22 富士通株式会社 最適化システムおよび最適化システムの制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915355A (zh) * 2012-10-11 2013-02-06 李英明 一种基于和声搜索和模拟退火的多处理机任务调度的方法
JP6445246B2 (ja) * 2014-03-27 2018-12-26 株式会社日立製作所 情報処理装置及び情報処理方法
US11113620B2 (en) * 2015-12-30 2021-09-07 Google Llc Enhancing simulated annealing with quantum annealing
JP6524933B2 (ja) * 2016-02-03 2019-06-05 富士通株式会社 ボルツマンマシン、ボルツマンマシンの制御方法及びボルツマンマシンを有する情報処理装置
JP6465223B1 (ja) * 2018-02-01 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP6993909B2 (ja) 2018-03-13 2022-01-14 株式会社デンソー 連続最適化問題の大域的探索装置及びプログラム
JP7004906B2 (ja) 2018-05-01 2022-01-21 富士通株式会社 最適化装置及び最適化装置の制御方法
CN110147888B (zh) * 2018-10-25 2023-06-20 腾讯科技(深圳)有限公司 基于教与学算法求解多目标优化问题的方法、装置和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018005541A (ja) 2016-07-01 2018-01-11 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP2018063626A (ja) 2016-10-14 2018-04-19 富士通株式会社 最適化装置及び最適化装置の制御方法
JP2019160169A (ja) 2018-03-16 2019-09-19 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2020173579A (ja) 2019-04-10 2020-10-22 富士通株式会社 最適化システムおよび最適化システムの制御方法

Also Published As

Publication number Publication date
EP3851953B1 (en) 2022-04-20
US20210216608A1 (en) 2021-07-15
CN113128663A (zh) 2021-07-16
US11514135B2 (en) 2022-11-29
JP2021111270A (ja) 2021-08-02
EP3851953A1 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7248907B2 (ja) 最適化装置および最適化装置の制御方法
US11599073B2 (en) Optimization apparatus and control method for optimization apparatus using ising models
JP7071638B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7339539B2 (ja) 最適化装置、最適化装置の温度設定方法及び最適化装置の温度設定プログラム
JP2019079535A (ja) パラメータ処理方法及び装置
JP2020086821A (ja) 最適化装置および最適化装置の制御方法
JP6993571B2 (ja) 最適化装置及び最適化装置の制御方法
JP2021168096A (ja) サンプリング装置、サンプリング方法及びサンプリングプログラム
JP7201911B2 (ja) 最適化装置および最適化装置の制御方法
US11562210B2 (en) Stochastically determining to accept a state transition for an optimization device
JP2022522180A (ja) 断熱発展経路の予測方法、装置、機器及びコンピュータプログラム
JP2020027426A (ja) 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
US20220012291A1 (en) Information processing system, information processing method, and non-transitory computer-readable storage medium for storing program
EP2732387A1 (en) Generation of recommendation values
US20210334332A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
JP2023061477A (ja) プログラム、データ処理方法及びデータ処理装置
JP2021005282A (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
CN112819161B (zh) 变长基因遗传算法的神经网络构建系统、方法及存储介质
US20220092380A1 (en) Optimization device, optimization method, and computer-readable recording medium storing optimization program
JP6685969B2 (ja) 抽出物理乱数生成装置、抽出物理乱数生成方法、プログラム
US20240111833A1 (en) Data processing apparatus and data processing method
JP2023024085A (ja) プログラム、データ処理方法及びデータ処理装置
JP2023122981A (ja) プログラム、データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230807

R150 Certificate of patent or registration of utility model

Ref document number: 7339539

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150