JP7108185B2 - Optimizer and method of controlling the optimizer - Google Patents

Optimizer and method of controlling the optimizer Download PDF

Info

Publication number
JP7108185B2
JP7108185B2 JP2018219079A JP2018219079A JP7108185B2 JP 7108185 B2 JP7108185 B2 JP 7108185B2 JP 2018219079 A JP2018219079 A JP 2018219079A JP 2018219079 A JP2018219079 A JP 2018219079A JP 7108185 B2 JP7108185 B2 JP 7108185B2
Authority
JP
Japan
Prior art keywords
temperature
value
search
state
control unit
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
JP2018219079A
Other languages
Japanese (ja)
Other versions
JP2020086821A (en
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 JP2018219079A priority Critical patent/JP7108185B2/en
Priority to US16/583,344 priority patent/US11262717B2/en
Priority to EP19200238.4A priority patent/EP3660705A1/en
Priority to CN201910993506.XA priority patent/CN111210046B/en
Publication of JP2020086821A publication Critical patent/JP2020086821A/en
Application granted granted Critical
Publication of JP7108185B2 publication Critical patent/JP7108185B2/en
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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50333Temperature

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Strategic Management (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Automation & Control Theory (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Feedback Control In General (AREA)

Description

本発明は最適化装置および最適化装置の制御方法に関する。 The present invention relates to an optimization device and a control method for the optimization device.

現在の社会ではあらゆる分野で情報処理が行われている。これらの情報処理はコンピュータなどの演算装置で行われており、様々なデータを演算、加工し、意味のある結果を得ることにより、予測、決定、制御などが行われる。これらの情報処理の1つとして最適化というものがあり重要な分野となっている。例えばあることを行うのに必要な資源やコストを最小化したり、その効果を最大化する解を求める問題などであり、これらが非常に重要であるのは明らかであろう。 In today's society, information processing is performed in every field. These information processes are performed by computing devices such as computers, and prediction, determination, control, etc. are performed by computing and processing various data and obtaining meaningful results. One of these information processes is optimization, which is an important field. For example, the problem of finding a solution that minimizes the resources and costs required to do something, or maximizes its effectiveness, and it is clear that these are very important.

最適化問題の中でも離散最適化問題、組合せ最適化問題などと呼ばれている問題の多くは、変数が連続値ではなく離散的な値を取るため解くのが非常に難しいことが知られている。離散最適化問題を解くのを困難にしている最大の原因は、最適解ではないが局所的近傍のなかで最小値をとる局所解と呼ばれる状態が非常に多数存在することである。 Among optimization problems, many of the problems called discrete optimization problems and combinatorial optimization problems are known to be extremely difficult to solve because variables take discrete values rather than continuous values. . The biggest reason why it is difficult to solve a discrete optimization problem is that there are a large number of states called local solutions that are not optimal solutions but take the minimum value in the local neighborhood.

離散最適化問題を解く効率の良い一般解法は存在しないため、問題に固有な性質を利用した近似解法や、問題の性質にあまり頼らないメタヒューリステックと呼ばれる方法を用いる必要がある。 Since there is no efficient general method for solving discrete optimization problems, it is necessary to use an approximate solution method that utilizes the unique properties of the problem or a method called meta-heuristic that does not rely on the properties of the problem.

以下に説明する内容は、後者のうちマルコフ連鎖モンテカルロ法を用いた解法に関するもので、特に交換モンテカルロ法、又はレプリカ交換法と呼ばれる広い意味での疑似焼き鈍し法に関するものである。 The following description relates to the solution using the Markov chain Monte Carlo method among the latter, and particularly to the quasi-annealing method in a broad sense called the exchange Monte Carlo method or the replica exchange method.

疑似焼き鈍し法は、乱数を用いて確率的に状態(変数ベクトルの値)を変化させることで最適解を求める方法である。以下では最適化したい評価関数の値を最小化する問題を例に説明し、評価関数の値をエネルギーと呼ぶことにする。最大化の場合は、評価関数の符号を変えればよい。 The pseudo-annealing method is a method of obtaining an optimum solution by stochastically changing the state (value of variable vector) using random numbers. In the following, the problem of minimizing the value of an evaluation function to be optimized will be described as an example, and the value of the evaluation function will be called energy. For maximization, the sign of the evaluation function should be changed.

疑似焼き鈍し法においては、状態遷移の受け入れ(許容)確率を、その遷移に伴うエネルギー変化と温度を用いて次のように決めれば、時刻(反復回数)無限大の極限で状態が最適解に到達することが証明されている。 In the pseudo-annealing method, if the probability of accepting (allowing) a state transition is determined using the energy change and temperature associated with the transition as follows, the state reaches the optimal solution at the limit of infinite time (number of iterations) proven to do.

Figure 0007108185000001
Figure 0007108185000001

Figure 0007108185000002
Figure 0007108185000002

Figure 0007108185000003
Figure 0007108185000003

式(2)はメトロポリス法である。式(3)はギブス法である。式(2),(3)は何れか一方が用いられる。
ここで、Tは温度を表すパラメータであり、その初期値は問題に応じて十分大きくとり、十分ゆっくり下げていくことが必要となる。
Equation (2) is the Metropolis method. Equation (3) is the Gibbs method. Either one of the expressions (2) and (3) is used.
Here, T is a parameter representing temperature, and its initial value must be set sufficiently large according to the problem, and it must be lowered sufficiently slowly.

上記のように疑似焼き鈍し法では、反復回数を無限に取れば最適解が得られるが、現実には有限の反復回数で解を得る必要があるため、最適解を確実に求めることはできない。また上記のように温度の下がり方が非常にゆっくりであるため、有限時間では十分に温度が下がらない。したがって実際の疑似焼き鈍し法では理論的に収束することが保証される温度変化ではなくより速く温度を下げることが多い。 As described above, in the pseudo-annealing method, the optimal solution can be obtained by taking an infinite number of iterations, but in reality, it is necessary to obtain the solution with a finite number of iterations, so the optimal solution cannot be reliably obtained. Moreover, since the temperature drops very slowly as described above, the temperature does not drop sufficiently in a finite amount of time. Therefore, practical quasi-annealing methods often decrease the temperature faster than the temperature change that is theoretically guaranteed to converge.

実際の疑似焼き鈍し法では、初期状態から始めて、温度を下げながら上記反復が繰り返され、一定の反復回数に達したり、エネルギーが一定の値を下回るなどの終了判定条件が満たされたとき、動作が終了する。出力する答えは終了時の状態である。ただし、実際には有限の反復回数では温度が0にならないため、終了時においても状態の占有確率はボルツマン分布などで表される分布をもっており、必ずしも最適値や良い解になっているとは限らない。したがって、反復の途中でこれまでに得られたエネルギーが最低の状態を保持し、最後にそれを出力するのが現実的な解法となる。 In the actual pseudo-annealing method, starting from the initial state, the above iterations are repeated while decreasing the temperature. finish. The output answer is the state at the end. However, in reality, the temperature does not become 0 in a finite number of iterations, so even at the end the probability of occupancy of the state has a distribution represented by the Boltzmann distribution, etc., and it is not necessarily the optimum value or a good solution. do not have. Therefore, a realistic solution is to hold the state with the lowest energy obtained so far during the iteration and output it at the end.

上記の説明からある程度想像できると思われるが、疑似焼き鈍し法は汎用的で非常に魅力的ではあるが、温度をゆっくり下げる必要があるため計算時間が比較的長くなってしまうという問題がある。さらにその温度の下げ方を問題に合わせて適切に調節することが難しいという問題もある。温度の下げ方が遅すぎると有限時間ではあまり温度が下がらないため、最終的な熱分布のエネルギー範囲が広くなることから良い解の占有確率が上がらない。逆に速く下げすぎると、局所解を脱出する前に温度が下がってしまい、悪い解に捕まったままになってしまうため、良い解が得られる確率が下がってしまう。 As can be imagined to some extent from the above explanation, the pseudo-annealing method is versatile and very attractive, but there is a problem that the calculation time is relatively long due to the need to lower the temperature slowly. Furthermore, there is also the problem that it is difficult to appropriately adjust how to lower the temperature according to the problem. If the temperature is lowered too slowly, the temperature will not drop so much in a finite time, so the energy range of the final heat distribution will be widened and the probability of good solutions will not increase. Conversely, if the temperature is lowered too quickly, the temperature will drop before escaping from the local minimum, and the bad solution will remain trapped, reducing the probability of obtaining a good solution.

レプリカ交換法は複数の温度を用いたモンテカルロ探索(以下、「確率的探索」という)を同時に行い、ある反復回数ごとに、それぞれの状態のエネルギーを比較し、適切な確率で2つの温度に対する状態を交換するという操作を行う方法である。 In the replica exchange method, a Monte Carlo search using multiple temperatures (hereinafter referred to as "probabilistic search") is performed at the same time. is a method of performing an operation of exchanging

図25は、通常のレプリカ交換法を用いた最適化装置の構成例を示す図である。最適化装置50は、通常の疑似焼き鈍し法を用いた最適化装置と異なり、複数のレプリカ(図25では探索部51a1,51a2,…,51ai,…,51an)と、交換制御部52とを有する。交換制御部52は、探索部51a1~51anに温度情報(以下では逆温度βi(Tの逆数)(1≦i≦n)とする)を与える。 FIG. 25 is a diagram showing a configuration example of an optimization device using a normal replica exchange method. The optimization device 50 has a plurality of replicas (searching units 51a1, 51a2, . . . , 51ai, . . The exchange control unit 52 provides the searching units 51a1 to 51an with temperature information (hereinafter referred to as inverse temperature βi (reciprocal of T) (1≤i≤n)).

図25には、探索部51aiの例が示されている。他の探索部も同様の構成である。探索部51aiは、状態保持部60、エネルギー計算部61、遷移制御部62を有する。
状態保持部60は、評価関数に含まれる複数の状態変数の値を保持する。また、状態保持部60は、状態遷移の可否を示すフラグfと、そのフラグfが示す状態変数の番号(インデックス)Nに基づいて、複数の状態変数の値(上記変数ベクトルの値)である状態sを更新する。
FIG. 25 shows an example of the searching unit 51ai. Other search units have the same configuration. The search unit 51ai has a state holding unit 60 , an energy calculation unit 61 and a transition control unit 62 .
The state holding unit 60 holds the values of multiple state variables included in the evaluation function. Further, the state holding unit 60 stores values of a plurality of state variables (values of the variable vector) based on a flag f indicating whether or not state transition is possible and a number (index) N of the state variable indicated by the flag f. Update state s i .

エネルギー計算部61は、状態変数の変化(状態遷移)に伴うエネルギー変化を計算する。例えば、評価関数が2つの状態変数間の結合で表されるイジングモデルで表され、しかも一度に1つの状態変数の遷移のみを許す場合、エネルギー計算部61は、各状態変数の値と、状態変数間の結合の強さを示す結合係数と、番号Nと、フラグfとに基づいて、複数の状態変数のそれぞれの変化(状態遷移)に伴うエネルギー変化を計算する。エネルギー変化ΔEijは、j番目の状態変数の変化に伴うエネルギー変化を示す。なお、計算したい最適化問題に応じた結合係数の値は、予めメモリ又はレジスタなどに記憶されている。評価関数がイジングモデルでない場合、及び一度に複数の状態変数の遷移を許す場合には、状態遷移の番号と変化する状態変数の番号は必ずしも一致しないが、状態遷移の番号に対するエネルギー変化を適切に計算できればよい。エネルギー計算部61は、例えば、積和演算回路などの論理回路を用いて実現できる。 The energy calculator 61 calculates energy changes associated with changes in state variables (state transitions). For example, when the evaluation function is represented by an Ising model represented by a connection between two state variables and only one state variable transition is allowed at a time, the energy calculation unit 61 calculates the value of each state variable and the state An energy change associated with each change (state transition) of a plurality of state variables is calculated based on the coupling coefficient indicating the strength of coupling between variables, the number N, and the flag f. The energy change ΔE ij indicates the energy change accompanying the change of the j-th state variable. Note that the values of the coupling coefficients corresponding to the optimization problem to be calculated are stored in advance in a memory, a register, or the like. When the evaluation function is not the Ising model and when multiple state variables are allowed to transition at once, the state transition number and the changing state variable number do not necessarily match, but the energy change with respect to the state transition number is appropriately calculated. It would be nice if it could be calculated. The energy calculator 61 can be implemented using a logic circuit such as a sum-of-products arithmetic circuit, for example.

遷移制御部62は、通常の疑似焼き鈍し法と同様に、エネルギー変化ΔEijと交換制御部52により割り当てられた逆温度βを用いて、j番目の状態変数の状態遷移の受け入れ確率を以下の式(4)により決定することで、確率的探索を行う。 The transition control unit 62 uses the energy change ΔE ij and the inverse temperature β i assigned by the exchange control unit 52 to calculate the acceptability probability of the state transition of the j-th state variable as follows, similarly to the normal pseudo-annealing method. A probabilistic search is performed by determining by Equation (4).

Figure 0007108185000004
Figure 0007108185000004

なお、式(4)において、関数fは式(1)と同じものであり、例えば式(2)のメトロポリス法のものが用いられる。遷移制御部62は、上記の状態遷移の受け入れ確率に基づいて、状態遷移の可否を示すフラグfと、そのフラグfが示す状態遷移の番号を出力する。また、遷移制御部62は、エネルギー変化ΔEijに基づいて、エネルギーEを更新して出力する。 In equation (4), the function f is the same as in equation (1), and for example, the metropolis method of equation (2) is used. The transition control unit 62 outputs a flag f indicating whether the state transition is possible or not, and the number of the state transition indicated by the flag f, based on the acceptance probability of the state transition. Also, the transition control unit 62 updates and outputs the energy E i based on the energy change ΔE ij .

交換制御部52は、一定の反復回数ごとに各探索部におけるエネルギーEを観測し、探索部51a1~51anのうちの2つにおけるエネルギーEと逆温度βを用い、以下の式(5)で表される交換確率に基づいて2つの探索部における各状態変数の値を交換する。状態変数の値の代りに、2つの探索部の各々に供給される逆温度を交換してもよい。 The exchange control unit 52 observes the energy E in each search unit for each fixed number of iterations, and uses the energy E and the inverse temperature β in two of the search units 51a1 to 51an, and expresses the following equation (5): Swap the value of each state variable in the two search units based on the exchange probabilities obtained. Instead of the value of the state variable, the inverse temperatures supplied to each of the two search units may be exchanged.

Figure 0007108185000005
Figure 0007108185000005

なお、式(5)では、βを探索部51aiに与えられた逆温度、βを図示しないj番目の探索部に与えられた逆温度、Eを探索部51aiにおけるエネルギー、Eをj番目の探索部におけるエネルギーとしている。また、式(5)において、関数fは式(1)と同じものであり、例えば式(2)のメトロポリス法のものが用いられる。 In equation (5), β i is the inverse temperature given to the search unit 51ai, β j is the inverse temperature given to the j-th search unit (not shown), E i is the energy in the search unit 51ai, and E j is It is the energy in the j-th search unit. Also, in equation (5), the function f is the same as in equation (1), and for example, the Metropolis method of equation (2) is used.

このような交換を行ってもそれぞれの温度の状態の確率分布はその温度に対するボルツマン分布に収束する。そして、この分布に収束するのに必要とされる緩和時間は、交換を行わない時より著しく短縮することができる。 Even if such an exchange is performed, the probability distribution of the state of each temperature converges to the Boltzmann distribution for that temperature. And the relaxation time required to converge to this distribution can be significantly shorter than without exchange.

なお、交換が行われる2つの探索部は、交換確率が小さくなりすぎないように、供給される温度が近いもの(例えば、隣接温度が供給されるもの)が選択される。
最適化装置50において、多数回の反復処理を行う探索部51a1~51anを専用の回路で実現し、交換制御部52の機能をソフトウェアで実現する場合、ポインタ渡しにより、温度が近い2つの探索部の各状態変数の値(又は温度情報)を交換すればよい。この場合、交換ごとに温度の低い順又は高い順に探索部51a1~51anを識別する情報を並べるソート処理などを行わなくてよい。
Note that two search units to be exchanged are selected so that the temperature supplied is close (for example, the one supplied with adjacent temperatures) so that the exchange probability does not become too small.
In the optimization device 50, when the search units 51a1 to 51an that perform a large number of iterative processes are realized by dedicated circuits, and the functions of the exchange control unit 52 are realized by software, two search units with similar temperatures can be obtained by passing pointers. , the value of each state variable (or temperature information) may be exchanged. In this case, sorting processing for arranging the information identifying the search units 51a1 to 51an in ascending or descending order of temperature for each replacement need not be performed.

例えば、異なる温度が設定された複数のネットワーク(アンサンブルと呼ばれる)で確率的探索を行う情報処理装置が提案されている(例えば、特許文献1参照)。提案の情報処理装置は、温度が隣接して設定されているアンサンブル間で各アンサンブルのエネルギーの差分に応じ、各アンサンブルのノードの状態を交換する。これにより、局所解に陥ることが防止され、より高速に最適値に収束させる。 For example, an information processing apparatus has been proposed that performs probabilistic searches in a plurality of networks (called an ensemble) in which different temperatures are set (see, for example, Patent Document 1). The proposed information processing apparatus exchanges the states of the nodes of each ensemble according to the difference in the energy of each ensemble between the ensembles whose temperatures are set adjacent to each other. As a result, falling into a local optimum is prevented, and convergence to the optimum value is made faster.

また、シミュレーティド・アニーリング処理手段が第1の温度の下で効率的に動作するように、シミュレーティド・アニーリングのアルゴリズムの実行を制御するパラメータを変更する温度並列シミュレーティド・アニーリング用恒温槽装置が提案されている(例えば、特許文献2参照)。提案の装置は、設定された条件でシミュレーティド・アニーリング処理を行い、このシミュレーティド・アニーリング処理の結果得られた状態を、第2の温度の下でシミュレーティド・アニーリング処理を行うことにより得られた状態と確率的に交換する。 Further, a constant temperature for temperature parallel simulated annealing for changing a parameter for controlling execution of the simulated annealing algorithm so that the simulated annealing processing means operates efficiently under the first temperature A tank apparatus has been proposed (see Patent Document 2, for example). The proposed apparatus performs a simulated annealing process under set conditions, and the state obtained as a result of this simulated annealing process is subjected to a simulated annealing process at a second temperature. Probabilistically exchanges with the state obtained by

なお、初期世代又は第2世代以降の任意の世代に属する遺伝子毎にハミング距離と適合度との2軸で張られた平面上の頻度分布を求め、この頻度分布に応じて遺伝的アルゴリズムのパラメータを変更する解析システムの提案もある(例えば、特許文献3参照)。 For each gene belonging to any generation after the initial generation or the second generation, a frequency distribution on a plane spanned by two axes of Hamming distance and fitness is obtained, and parameters of the genetic algorithm are determined according to this frequency distribution. There is also a proposal for an analysis system that changes the (see, for example, Patent Document 3).

特開2018-5541号公報JP 2018-5541 A 特開平9-231197号公報JP-A-9-231197 特開平9-325949号公報JP-A-9-325949

上記のように異なる温度が設定された複数の探索部で確率的探索を行う場合、各探索部に設定される温度によっては求解性能が低下するという問題がある。
1つの側面では、本発明は、解精度を向上させることが可能な最適化装置および最適化装置の制御方法を提供することを目的とする。
When a stochastic search is performed by a plurality of search units set to different temperatures as described above, there is a problem that the solution-finding performance is degraded depending on the temperature set for each search unit.
In one aspect, an object of the present invention is to provide an optimization device and a control method for the optimization device that can improve solution accuracy.

1つの態様では、複数の探索部と複数の探索部を制御する制御部を有する最適化装置が提供される。複数の探索部の各々は、エネルギー値を表す評価関数に含まれる複数の状態変数の値をそれぞれ保持する状態保持部と、複数の状態変数の値の何れかが変化することに応じて状態遷移が起こる場合、エネルギー値の変化値を複数の状態遷移のそれぞれに対して計算することにより基底状態探索を行うエネルギー計算部と、設定された温度値と変化値と乱数値とに基づいて、エネルギー値の変化値と熱励起エネルギーとの相対関係によって複数の状態遷移の何れかを受け入れるか否かを確率的に決定する遷移制御部とを有する。制御部は、複数の探索部の各々における温度値の遷移に関する統計情報である温度統計情報を取得するとともに、取得した温度統計情報に基づいて複数の探索部の各々に設定する温度値を決定する温度調整部と、決定した温度値を複数の探索部の各々に対して設定する温度制御部と、エネルギー値の基底状態探索の繰り返し回数到達又は一定時間経過後に、複数の探索部間で温度値又は複数の状態変数の値を入れ替える交換制御部と、を有する。 In one aspect, an optimization device is provided that has a plurality of search units and a control unit that controls the plurality of search units. Each of the plurality of search units includes a state holding unit that holds values of a plurality of state variables included in the evaluation function representing the energy value, and a state transition according to a change in any of the values of the plurality of state variables. occurs, based on the energy calculation unit that searches for the ground state by calculating the change value of the energy value for each of a plurality of state transitions, and the set temperature value, the change value, and the random value, the energy a transition control unit that stochastically determines whether to accept any one of the plurality of state transitions based on the relative relationship between the value change value and the thermal excitation energy. The control unit acquires temperature statistical information, which is statistical information about temperature value transitions in each of the plurality of search units, and determines a temperature value to be set in each of the plurality of search units based on the acquired temperature statistical information. a temperature controller that sets the determined temperature value to each of the plurality of search units; or an exchange control unit that exchanges the values of the plurality of state variables.

また、1つの態様では、最適化装置の制御方法が提供される。 Also, in one aspect, a control method for an optimization device is provided.

1つの側面では、解精度を向上できる。 On one side, solution accuracy can be improved.

第1の実施の形態の最適化装置を示す図である。It is a figure which shows the optimization apparatus of 1st Embodiment. 最適化装置の回路構成例を示す図である。It is a figure which shows the example of a circuit configuration of an optimization apparatus. 状態遷移判定回路の回路構成例を示す図である。3 is a diagram showing a circuit configuration example of a state transition determination circuit; FIG. セレクタ部の回路構成例を示す図である。3 is a diagram showing a circuit configuration example of a selector unit; FIG. 温度調整部の回路構成例を示す図である。It is a figure which shows the circuit structural example of a temperature control part. レジスタに格納されるデータ例を示す図である。FIG. 4 is a diagram showing an example of data stored in a register; FIG. データ取得のアルゴリズムの例を示す図である。FIG. 4 is a diagram showing an example of a data acquisition algorithm; 最低エネルギーおよび温度の変化例を示す図である。FIG. 5 is a diagram showing an example of changes in minimum energy and temperature; 温度ヒストグラムの例を示す図である。FIG. 4 is a diagram showing an example of a temperature histogram; 累積ヒストグラムの例を示す図である。FIG. 4 is a diagram showing an example of a cumulative histogram; レプリカ交換の全体制御例を示すフローチャートである。FIG. 11 is a flowchart showing an example of overall control of replica exchange; FIG. 探索部処理例を示すフローチャートである。9 is a flow chart showing an example of search unit processing; データ収集処理例を示すフローチャートである。It is a flow chart which shows an example of data collection processing. 交換制御例を示すフローチャートである。6 is a flow chart showing an example of exchange control; 処理の流れの例(その1)を示す図である。It is a figure which shows the example (1) of the flow of a process. 処理の流れの例(その2)を示す図である。FIG. 10 is a diagram showing an example (part 2) of the flow of processing; 最適化装置の他のハードウェア例を示す図である。It is a figure which shows the other hardware example of an optimization apparatus. 第2の実施の形態の最適化装置の回路構成例を示す図である。It is a figure which shows the circuit structural example of the optimization apparatus of 2nd Embodiment. 温度調整部の回路構成例を示す図である。It is a figure which shows the circuit structural example of a temperature control part. レジスタに格納されるデータ例を示す図である。FIG. 4 is a diagram showing an example of data stored in a register; FIG. レプリカ交換の全体制御例を示すフローチャートである。FIG. 11 is a flowchart showing an example of overall control of replica exchange; FIG. データ収集処理例を示すフローチャートである。It is a flow chart which shows an example of data collection processing. 交換制御例を示すフローチャートである。6 is a flow chart showing an example of exchange control; 解の個数の例を示す図である。FIG. 10 is a diagram showing an example of the number of solutions; 通常のレプリカ交換法を用いた最適化装置の構成例を示す図である。FIG. 10 is a diagram showing a configuration example of an optimization device using a normal replica exchange method;

以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
Hereinafter, this embodiment will be described with reference to the drawings.
[First embodiment]
A first embodiment will be described.

図1は、第1の実施の形態の最適化装置を示す図である。
最適化装置1は、複数の探索部(探索部10a1,10a2,…,10aN)および制御部20を有する。Nは2以上の整数であり、探索部の数に相当する。探索部10a1~10aNの各々は、状態保持部とエネルギー計算部と遷移制御部とを有する。例えば、探索部10a1は、状態保持部11とエネルギー計算部12と遷移制御部13とを有する。
FIG. 1 is a diagram showing an optimization device according to the first embodiment.
The optimization device 1 has a plurality of search units (search units 10a1, 10a2, . . . , 10aN) and a control unit 20. FIG. N is an integer of 2 or more and corresponds to the number of search units. Each of search units 10a1 to 10aN has a state holding unit, an energy calculation unit, and a transition control unit. For example, search unit 10 a 1 has state holding unit 11 , energy calculation unit 12 and transition control unit 13 .

状態保持部11は、エネルギー値を表す評価関数に含まれる複数の状態変数の値をそれぞれ保持する。図1では、探索部10a1におけるエネルギー値をEで表し、探索部10a1における複数の状態変数の値をsで表している。 The state holding unit 11 holds the values of a plurality of state variables included in the evaluation function representing the energy value. In FIG. 1 , the energy value in the search unit 10a1 is represented by E1, and the values of the plurality of state variables in the search unit 10a1 are represented by s1.

エネルギー計算部12は、複数の状態変数の値の何れかが変化することに応じて状態遷移が起こる場合、エネルギー値の変化値(ΔE1j)を複数の状態遷移のそれぞれに対して計算することにより基底状態探索を行う。 The energy calculation unit 12 calculates an energy value change value (ΔE 1j ) for each of the plurality of state transitions when the state transition occurs in response to a change in any of the plurality of state variable values. A ground state search is performed by

遷移制御部13は、設定された温度値と変化値と乱数値とに基づいて、エネルギー値の変化値と熱励起エネルギーとの相対関係によって複数の状態遷移の何れかを受け入れるか否かを確率的に決定する。遷移制御部13は、前述のように、式(4)に基づいて、状態遷移の可否を判定し、状態遷移の可否を示すフラグfと、そのフラグfが示す状態遷移の番号を出力する。図1では、フラグfが示す状態遷移の番号をindexで表している。 Based on the set temperature value, the change value, and the random value, the transition control unit 13 determines whether or not to accept any one of the plurality of state transitions according to the relative relationship between the change value of the energy value and the thermal excitation energy. to decide As described above, the transition control unit 13 determines whether or not the state transition is possible based on the equation (4), and outputs the flag f indicating whether or not the state transition is possible and the number of the state transition indicated by the flag f. In FIG. 1, the index indicates the state transition number indicated by the flag f.

探索部10a1~10aNは、並列に動作して、上記の基底状態探索を行う。
制御部20は、探索部10a1~10aNを制御する。制御部20は、温度調整部21、温度制御部22および交換制御部23を有する。
The search units 10a1 to 10aN operate in parallel to perform the above ground state search.
The control unit 20 controls the search units 10a1 to 10aN. The control section 20 has a temperature adjustment section 21 , a temperature control section 22 and an exchange control section 23 .

温度調整部21は、探索部10a1~10aNの各々における温度値の遷移に関する統計情報である温度統計情報を取得するとともに、取得した温度統計情報に基づいて探索部10a1~10aNの各々に設定する温度値を決定する。探索部10a1~10aNの数はN個なので、設定される温度値の数はN個である。N個の温度値は互いに異なる。例えば、温度値は、温度T,T,…,Tの逆数である逆温度β,β,…,β(β=1/T)でもよい。 The temperature adjustment unit 21 acquires temperature statistical information, which is statistical information about the transition of temperature values in each of the search units 10a1 to 10aN, and adjusts the temperature to be set for each of the search units 10a1 to 10aN based on the acquired temperature statistical information. determine the value. Since the number of searching units 10a1 to 10aN is N, the number of temperature values to be set is N. The N temperature values are different from each other. For example, the temperature values may be the inverse temperatures β 1 , β 2 , .

温度制御部22は、決定した温度値を探索部10a1~10aNの各々に対して設定する。
交換制御部23は、エネルギー値の基底状態探索の繰り返し回数到達又は一定時間経過後に、複数の探索部間で温度値又は複数の状態変数の値を入れ替える。交換制御部23は、探索部10a1~10aNの各々からエネルギー値E,E,…,Eを取得し、前述のように、式(5)に基づいて、探索部間で温度値を入れ替えるか否かを決定する。又は、交換制御部23は、探索部間で温度値を入れ替えるか否かの決定に代えて、式(5)に基づいて、探索部間で複数の状態変数の値を入れ替えるか否かを決定してもよい。
The temperature control unit 22 sets the determined temperature value to each of the search units 10a1 to 10aN.
The exchange control unit 23 exchanges the temperature values or the values of the plurality of state variables between the plurality of search units after reaching the number of repetitions of the search for the ground state of the energy value or after a certain period of time has elapsed. Exchange control unit 23 acquires energy values E 1 , E 2 , . Decide whether to replace or not. Alternatively, instead of determining whether or not to exchange the temperature values between the search units, the exchange control unit 23 determines whether or not to exchange the values of the plurality of state variables between the search units based on Equation (5). You may

ここで、温度調整部21による温度決定例を説明する。例えば、温度調整部21は、取得した温度統計情報のうち、温度値の遷移に関し、各温度値の出現頻度を計数した温度頻度情報において、出現頻度の最大値に対応する温度値を探索部10a1~10aNの各々に設定してもよい。 Here, an example of temperature determination by the temperature adjustment unit 21 will be described. For example, the temperature adjustment unit 21 searches the acquired temperature statistical information for the temperature value corresponding to the maximum appearance frequency in the temperature frequency information obtained by counting the appearance frequency of each temperature value regarding the transition of temperature values. to 10aN, respectively.

より具体的には、温度調整部21は、いずれかの探索部でエネルギー値の最小値が更新された場合に、当該エネルギー値の最小値の前回の更新から今回の更新までに該当の探索部に設定された温度のうちの最高の温度値を、温度統計情報として取得する。例えば、温度調整部21は、取得した温度値の出現頻度を温度値毎に計数したヒストグラムにおいて、出現頻度が最大である温度値を特定し、特定した温度値に基づいて、探索部10a1~10aNの各々に設定する温度値を計算する。 More specifically, when the minimum value of the energy value is updated in any of the search units, the temperature adjustment unit 21 changes the minimum value of the energy value from the previous update to the current update. Gets the highest temperature value among the temperatures set in , as temperature statistical information. For example, the temperature adjustment unit 21 identifies the temperature value with the highest frequency of appearance in a histogram obtained by counting the frequency of appearance of the acquired temperature values, and based on the identified temperature value, the search units 10a1 to 10aN Calculate the temperature values to be set for each of the

一例では、温度調整部21は、式(6),(7)により、N個の温度値のうちのi番目の温度tmp[i](i=1,2,…,N)を計算する。 In one example, the temperature adjuster 21 calculates the i-th temperature tmp[i] (i=1, 2, . . . , N) of the N temperature values using equations (6) and (7).

Figure 0007108185000006
Figure 0007108185000006

Figure 0007108185000007
Figure 0007108185000007

max_tmpは、設定温度の最高値であり、上記ヒストグラムにおいて出現頻度が最大である温度値である。min_tmpは、設定温度の最低値であり、予め与えられる。このように、温度調整部21は、取得した温度統計情報から温度値の最高値max_tmpを決定し、最高値max_tmpに基づいて探索部10a1~10aNの各々に設定する温度値を決定する。設定温度の最高値max_tmpを、上記のように温度統計情報において出現頻度が最大である温度値とする理由は、当該出現頻度が最大である温度値を最高値として用いることで探索部のエネルギー値の最小値を更新できる可能性が高いと推定されるからである。ただし、最高値max_tmpを、例えば、出現頻度が最大である温度値よりも所定値(あるいは所定割合)だけ高い温度としてもよい。 max_tmp is the maximum value of the set temperature, and is the temperature value that appears most frequently in the histogram. min_tmp is the minimum value of the set temperature and is given in advance. In this way, the temperature adjustment unit 21 determines the maximum temperature value max_tmp from the acquired temperature statistical information, and determines the temperature values to be set in each of the search units 10a1 to 10aN based on the maximum value max_tmp. The reason why the maximum setting temperature max_tmp is set to the temperature value with the highest appearance frequency in the temperature statistical information as described above is that the energy value of the search unit can be reduced by using the temperature value with the highest appearance frequency as the highest value. This is because it is estimated that there is a high possibility that the minimum value of can be updated. However, the maximum value max_tmp may be, for example, a temperature that is higher by a predetermined value (or a predetermined ratio) than the temperature value with the highest appearance frequency.

あるいは、温度調整部21は、取得した温度統計情報のうち、温度値の遷移に関し、各温度値の出現頻度を累積した累積頻度を表す温度累積頻度情報において、累積頻度の最大値に所定係数を乗じて得られた頻度に対応する温度値を探索部10a1~10aNの各々に設定してもよい。 Alternatively, the temperature adjustment unit 21 adds a predetermined coefficient to the maximum value of the cumulative frequency in the temperature cumulative frequency information representing the cumulative frequency of occurrence of each temperature value regarding the transition of the temperature value among the acquired temperature statistical information. A temperature value corresponding to the frequency obtained by multiplication may be set in each of the search units 10a1 to 10aN.

より具体的には、温度調整部21は、上記ヒストグラムにおける各温度値の出現頻度を、温度値の小さい方から累積した累積頻度を温度累積頻度情報として取得する。そして、温度調整部21は、当該累積頻度を表す累積ヒストグラムにおける累積頻度の最大値に所定係数を乗じた頻度に対応する温度値を特定し、特定した温度値に基づいて、探索部10a1~10aNの各々に設定する温度値を計算する。すなわち、温度調整部21は、当該特定した温度値を最高値max_tmpとして、式(6),(7)により、温度tmp[i]を計算する。 More specifically, the temperature adjustment unit 21 acquires, as the temperature cumulative frequency information, the cumulative frequency of appearance of each temperature value in the histogram, starting from the lowest temperature value. Then, the temperature adjustment unit 21 specifies a temperature value corresponding to the frequency obtained by multiplying the maximum value of the cumulative frequency in the cumulative histogram representing the cumulative frequency by a predetermined coefficient, and based on the specified temperature value, the search units 10a1 to 10aN Calculate the temperature values to be set for each of the That is, the temperature adjustment unit 21 uses the specified temperature value as the maximum value max_tmp, and calculates the temperature tmp[i] by the formulas (6) and (7).

なお、温度調整部21により決定された温度tmp[i](温度値)は、温度制御部22により、探索部10a1~10aNの各々に設定されてもよい。
また、温度調整部21は、エネルギー値の基底状態探索の繰り返し回数到達又は一定時間経過後に、探索部10a1~10aNの各々からエネルギー値を取得し、エネルギー値の最小値が更新されたか否かを、複数の探索部の各々に対して確認する。例えば、温度調整部21は、エネルギー値の基底状態探索の繰り返し回数到達又は一定時間経過後における、交換制御部23による複数の探索部間での温度値(又は複数の状態変数の値)の入れ替えの前に、エネルギー値の最小値が更新されたか否かの確認を行う。
Note that the temperature tmp[i] (temperature value) determined by the temperature adjustment unit 21 may be set by the temperature control unit 22 to each of the search units 10a1 to 10aN.
Further, the temperature adjustment unit 21 acquires the energy value from each of the search units 10a1 to 10aN after the number of repetitions of the search for the ground state of the energy value has been reached or after a certain period of time has elapsed, and determines whether or not the minimum value of the energy value has been updated. , for each of the plurality of search units. For example, the temperature adjustment unit 21 causes the exchange control unit 23 to exchange the temperature values (or the values of the plurality of state variables) between the plurality of search units after reaching the number of repetitions of the search for the ground state of the energy value or after a certain period of time has elapsed. , it is checked whether the minimum energy value has been updated.

そして、温度調整部21は、探索部10a1~10aNの各々に第1の温度値が設定されている所定期間で温度統計情報を取得し、所定期間の終了後に、温度統計情報に基づいて探索部10a1~10aNの各々に設定する第2の温度値を決定する。 Then, the temperature adjusting unit 21 acquires the temperature statistical information in a predetermined period during which the first temperature value is set in each of the searching units 10a1 to 10aN, and after the predetermined period ends, based on the temperature statistical information, the searching unit A second temperature value to be set for each of 10a1 to 10aN is determined.

例えば、温度調整部21は、探索部10a1~10aNによる基底状態探索の全期間のうちの初期の一部期間において温度統計情報を取得し、当該温度統計情に基づいて温度tmp[i]を決定する。制御部20は、決定した温度tmp[i]を用いて、残りの期間での探索部10a1~10aNによる基底状態探索を継続させる。 For example, the temperature adjustment unit 21 acquires temperature statistical information in an initial partial period of the entire period of the ground state search by the search units 10a1 to 10aN, and determines the temperature tmp[i] based on the temperature statistical information. do. The control unit 20 uses the determined temperature tmp[i] to continue the ground state search by the search units 10a1 to 10aN in the remaining period.

あるいは、温度調整部21は、探索部10a1~10aNによる基底状態探索の全期間に関して所定の部分期間毎に温度統計情報を取得し、部分期間後に温度tmp[i]を決定してもよい。そして、制御部20は、前回の部分期間で取得した温度統計情報を基に決定した温度tmp[i]を、次回の部分期間で用いて、探索部10a1~10aNによる基底状態探索を継続させてもよい。 Alternatively, the temperature adjustment unit 21 may acquire the temperature statistical information for each predetermined partial period for the entire period of the ground state search by the search units 10a1 to 10aN, and determine the temperature tmp[i] after the partial period. Then, the control unit 20 uses the temperature tmp[i] determined based on the temperature statistical information acquired in the previous partial period in the next partial period to continue the ground state search by the search units 10a1 to 10aN. good too.

ここで、「期間」は、探索部10a1~10aNによる基底状態探索の繰り返し回数により定められてもよいし、時間間隔により定められてもよい。
ところで、上記のようにレプリカ交換法を用いて最適化演算を行うことが考えられる。レプリカ交換法は、複数のレプリカと呼ばれる系において各々異なる温度で基底状態探索を行い、ある周期で、エネルギーと温度から決定される遷移確率に従って、例えば隣接する系の温度、又は状態(複数の状態変数の値)を交換する方法である。レプリカ交換法によれば、温度が低下したときに局所解に陥っても、レプリカ交換により一度高い温度まで上がって再び大域解を探索でき、複雑な温度スケジューリングを考えなくても、高速に解を求められる。しかし、各レプリカに設定する温度を適切に決める必要があり、温度(特に、温度の最高値)が高過ぎても低過ぎても解精度が低下し、探索に時間がかかる問題がある。また、温度を適切に決定するために、幾つもの温度のパラメータで何度も最適化演算を行っていると非常に大きな手間と時間を要し、ユーザの利便性を損なう問題もある。
Here, the "period" may be determined by the number of repetitions of the ground state search by the search units 10a1 to 10aN, or may be determined by a time interval.
By the way, it is conceivable to perform the optimization operation using the replica exchange method as described above. In the replica exchange method, ground state searches are performed at different temperatures in a system called a plurality of replicas. It is a method of exchanging variable values). According to the replica exchange method, even if a local solution is reached when the temperature drops, the replica exchange can raise the temperature to a higher temperature and search for the global solution again. Desired. However, it is necessary to appropriately determine the temperature to be set for each replica, and if the temperature (especially the maximum temperature) is too high or too low, the accuracy of the solution will drop and the search will take a long time. In addition, in order to appropriately determine the temperature, if optimization calculations are performed many times using a number of temperature parameters, it takes a great deal of time and effort, impairing the user's convenience.

最適化装置1では、上記のように、レプリカ(例えば、探索部)の最低エネルギーが更新される間に当該レプリカが到達した最高温度の統計情報を取得し、統計情報に基づいて探索部10a1~10aNの設定温度を決定する。このように、最適化装置1は、実際の演算過程で取得された温度の統計情報により、その後の演算に用いる温度を適応的に決定することで、解精度の向上を図れる。また、演算の高速化を図れる。すなわち、求解性能が向上する。更に、温度調整の手間を省くことができ、ユーザの利便性を向上できる。 In the optimization device 1, as described above, the statistical information of the maximum temperature reached by the replica (for example, the search unit) is acquired while the minimum energy of the replica is updated, and based on the statistical information, the search units 10a1 to Determine a set temperature of 10 aN. In this manner, the optimization device 1 can improve solution accuracy by adaptively determining temperatures to be used in subsequent calculations based on temperature statistical information acquired in the actual calculation process. Also, the speed of calculation can be increased. That is, the solution-finding performance is improved. Furthermore, it is possible to save the trouble of adjusting the temperature, thereby improving the user's convenience.

次に、最適化装置1の回路構成例を説明する。以下では、最適化問題がイジングモデルで表される場合を例示する。まず、探索部10a1~10aNにおける温度を交換する場合を例示する。その後、第2の実施の形態として、探索部10a1~10aNにおける複数の状態変数の値を交換する場合を例示する。 Next, a circuit configuration example of the optimization device 1 will be described. A case where the optimization problem is represented by an Ising model will be exemplified below. First, a case of exchanging temperatures in the search units 10a1 to 10aN will be exemplified. After that, as a second embodiment, a case of exchanging the values of a plurality of state variables in the search units 10a1 to 10aN will be exemplified.

図2は、最適化装置の回路構成例を示す図である。
最適化装置1は、計算対象の最適化問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のスピンビットのそれぞれの値の組合せ(状態)のうち、評価関数が最小値となるときの各スピンビットの値(基底状態)を探索する。
FIG. 2 is a diagram showing a circuit configuration example of the optimization device.
When the optimization device 1 has the minimum value among the combinations (states) of the values of a plurality of spin bits corresponding to a plurality of spins included in the Ising model into which the optimization problem to be calculated is transformed, Search for the value (ground state) of each spin bit of .

イジング型の評価関数E(x)は、例えば、以下の式(8)で定義される。 The Ising-type evaluation function E(x) is defined, for example, by the following equation (8).

Figure 0007108185000008
Figure 0007108185000008

右辺第1項は、イジングモデルに含まれる全スピンビットから選択可能な2つのスピンビットの全組合せについて、漏れと重複なく、2つのスピンビットの値(0又は1)と結合係数との積を積算したものである。イジングモデルに含まれる全スピンビット数をn個(nは2以上の整数)とする。例えば、n=1024である。また、i,jの各々を、1以上n以下の整数とする。xは、i番目のスピンビットの値を表す変数(状態変数とも呼ばれる)である。xは、j番目のスピンビットの値を表す変数である。Wijは、i番目とj番目のビットの相互作用の大きさを示す重み係数である。なお、Wii=0である。また、Wij=Wjiであることが多い(すなわち、重み係数による係数行列は対称行列である場合が多い)。 The first term on the right side is the product of the value of two spin bits (0 or 1) and the coupling coefficient without omission or duplication for all combinations of two spin bits that can be selected from all spin bits included in the Ising model. It is an accumulated value. Assume that the total number of spin bits included in the Ising model is n (n is an integer of 2 or more). For example, n=1024. Also, each of i and j is an integer of 1 or more and n or less. x i is a variable (also called a state variable) representing the value of the i-th spin bit. x j is a variable representing the value of the jth spin bit. W ij is a weighting factor that indicates the magnitude of interaction between the i-th and j-th bits. Note that W ii =0. Also, W ij =W ji often holds (that is, the coefficient matrix of the weighting factors is often a symmetric matrix).

右辺第2項は、全スピンビットのそれぞれのバイアス係数とスピンビットの値との積の総和を求めたものである。bは、i番目のスピンビットのバイアス係数を示している。
また、変数xの値が変化して1-xとなると、変数xの増加分は、δx=(1-x)-x=1-2xと表せる。したがって、スピン反転(値の変化)に伴うエネルギー変化ΔEは、以下の式(9)で表される。
The second term on the right side is the sum of the products of the bias coefficients of all spin bits and the value of the spin bits. b i indicates the bias coefficient of the i-th spin bit.
Also, when the value of the variable x i changes to 1−x i , the increment of the variable x i can be expressed as δx i =(1−x i )−x i =1−2x i . Therefore, the energy change ΔE i associated with the spin reversal (value change) is expressed by the following equation (9).

Figure 0007108185000009
Figure 0007108185000009

はローカルフィールド(局所場)と呼ばれ、式(10)で表される。 h i is called a local field (local field) and is represented by Equation (10).

Figure 0007108185000010
Figure 0007108185000010

δxに応じてローカルフィールドhに符号(+1又は-1)を乗じたものがエネルギー変化ΔEとなる。ある変数xが変化したときのローカルフィールドhの変化分δh (j)は式(11)で表される。 The energy change ΔE i is obtained by multiplying the local field h i by a sign (+1 or −1) according to δx i . A change δh i (j) of the local field h i when a certain variable x j changes is expressed by Equation (11).

Figure 0007108185000011
Figure 0007108185000011

ある変数xが変化したときのローカルフィールドhを更新する処理は各変数に対して並列に行われる。
最適化装置1は、例えば、FPGA(Field Programmable Gate Array)などの半導体集積回路を用いて実現される。最適化装置1は、図1で例示した探索部10a1~10aN、温度調整部21、温度制御部22および交換制御部23に加えて、全体制御部24を有する。なお、図2の例では、交換制御部23は温度制御部22に含まれるため、交換制御部23の図示を省略している。
The process of updating the local field h i when a certain variable x j changes is performed in parallel for each variable.
The optimization device 1 is implemented using a semiconductor integrated circuit such as an FPGA (Field Programmable Gate Array), for example. The optimization device 1 has an overall control unit 24 in addition to the search units 10a1 to 10aN, the temperature adjustment unit 21, the temperature control unit 22, and the replacement control unit 23 illustrated in FIG. In addition, in the example of FIG. 2, since the replacement control unit 23 is included in the temperature control unit 22, illustration of the replacement control unit 23 is omitted.

探索部10a1~10aNの各々は、式(8)で表されるイジング型の評価関数に基づく基底状態探索を下記のような回路により実現する。以下では、探索部10a1を主に説明するが、探索部10a2~10aNも同様の回路構成となる。 Each of the search units 10a1 to 10aN implements a ground state search based on the Ising type evaluation function represented by Equation (8) using the following circuit. Although the search section 10a1 will be mainly described below, the search sections 10a2 to 10aN have the same circuit configuration.

探索部10a1は、状態保持部11、レジスタ12a1,12a2,…,12an,h計算部12b1,12b2,…,12bn、ΔE生成部12c1,12c2,…,12cn、加算器13a1,13a2,…,13an、状態遷移判定回路13b1,13b2,…,13bn、セレクタ部13c、オフセット制御部13dおよびE計算部14を有する。 , 12bn, ΔE generators 12c1, 12c2, . . . , 12cn, adders 13a1, 13a2, . , state transition determination circuits 13b1, 13b2, .

図2では、h計算部12b1~12bnに対し、i番目のスピンビットに対応することが分かり易い様に「h」計算部のように添え字を付して名称を表記している。また、図2では、ΔE生成部12c1~12cnに対し、i番目のスピンビットに対応することが分かり易い様に「ΔE」計算部のように添え字を付して名称を表記している。 In FIG. 2, the names of the h calculators 12b1 to 12bn are given with subscripts such as "h i " calculator so that it is easy to understand that they correspond to the i-th spin bit. Also, in FIG. 2, the ΔE generation units 12c1 to 12cn are named with subscripts such as “ΔE i ” calculation unit so that it is easy to understand that they correspond to the i-th spin bit. .

ある探索部においてスピンビット列に含まれる何れかのスピンビットを反転させるかの判定および反転させる場合に該当のスピンビットを反転させる処理が、当該探索部による基底状態探索(確率的探索と言うこともある)の1回分の処理に相当する。 The process of determining whether to invert any spin bit contained in a spin bit string in a search unit and inverting the corresponding spin bit when inverting is a ground state search (also referred to as a stochastic search) by the search unit. There is one time of processing.

レジスタ12a1~12an、h計算部12b1~12bnおよびΔE生成部12c1~12cnは、エネルギー計算部12に相当する。すなわち、エネルギー計算部12は、レジスタ12a1~12an、h計算部12b1~12bnおよびΔE生成部12c1~12cnを有する。また、加算器13a1~13an、状態遷移判定回路13b1~13bn、セレクタ部13cおよびオフセット制御部13dは、遷移制御部13に相当する。すなわち、遷移制御部13は、加算器13a1~13an、状態遷移判定回路13b1~13bn、セレクタ部13cおよびオフセット制御部13dを有する。 Registers 12a1-12an, h calculators 12b1-12bn, and ΔE generators 12c1-12cn correspond to the energy calculator 12. FIG. That is, the energy calculator 12 has registers 12a1-12an, h calculators 12b1-12bn, and ΔE generators 12c1-12cn. The adders 13a1-13an, the state transition determination circuits 13b1-13bn, the selector section 13c and the offset control section 13d correspond to the transition control section 13. FIG. That is, the transition control section 13 has adders 13a1 to 13an, state transition determination circuits 13b1 to 13bn, a selector section 13c and an offset control section 13d.

n個のスピンビットのうち、レジスタ12a1、h計算部12b1、ΔE生成部12c1、加算器13a1および状態遷移判定回路13b1が1番目のスピンビットに関する演算を行う。また、レジスタ12a2、h計算部12b2、ΔE生成部12c2、加算器13a2および状態遷移判定回路13b2が2番目のスピンビットに関する演算を行う。同様に、「12a1」、「12b1」などの符号の末尾の数値iがi番目のスピンビットに対応する演算を行うことを示す。すなわち、1つの探索部は、レジスタ、h計算部、ΔE生成部、加算器および状態遷移判定回路のセット(1スピンビットに関する演算を行う演算処理回路の一単位であり、「ニューロン」と呼ばれることもある)を、n個有する。n個のセットが並列に、各セットに対応するスピンビットに関する演算を行う。 Of the n spin bits, the register 12a1, the h calculator 12b1, the ΔE generator 12c1, the adder 13a1, and the state transition determination circuit 13b1 perform operations on the first spin bit. Also, the register 12a2, the h calculator 12b2, the ΔE generator 12c2, the adder 13a2, and the state transition determination circuit 13b2 perform calculations regarding the second spin bit. Similarly, a numerical value i at the end of a code such as "12a1" or "12b1" indicates that an operation corresponding to the i-th spin bit is performed. That is, one search unit is a set of a register, an h calculation unit, a ΔE generation unit, an adder, and a state transition determination circuit (one unit of an arithmetic processing circuit that performs operations related to one spin bit, and is called a “neuron”). There is also n). The n sets operate in parallel on the spin bits corresponding to each set.

以下では、主に、レジスタ12a1、h計算部12b1、ΔE生成部12c1、加算器13a1および状態遷移判定回路13b1を例示して説明する。同名の構成であるレジスタ12a2~12an、h計算部12b2~12bn、ΔE生成部12c2~12cn、加算器13a2~13anおよび状態遷移判定回路13b2~13bnも同様の機能である。 In the following, the register 12a1, the h calculator 12b1, the ΔE generator 12c1, the adder 13a1, and the state transition determination circuit 13b1 will be mainly described as examples. Registers 12a2 to 12an, h calculators 12b2 to 12bn, ΔE generators 12c2 to 12cn, adders 13a2 to 13an, and state transition determination circuits 13b2 to 13bn, which have the same name, have the same function.

ここで、レジスタ12a1、h計算部12b1、ΔE生成部12c1、加算器13a1および状態遷移判定回路13b1のセットに対応するスピンビットを自スピンビット、探索部10a1で演算されるそれ以外のスピンビットを他スピンビットと称する。各スピンビットは、indexと呼ばれる識別情報により識別される。例えば、i番目のスピンビットのindexは、iである。 Here, the spin bit corresponding to the set of the register 12a1, the h calculation unit 12b1, the ΔE generation unit 12c1, the adder 13a1, and the state transition determination circuit 13b1 is the own spin bit, and the other spin bits calculated by the search unit 10a1 are It is called another spin bit. Each spin bit is identified by identification information called an index. For example, the index of the i-th spin bit is i.

レジスタ12a1は、自スピンビットと他スピンビットとの間の重み係数W1j(j=1~n)を記憶する。ここで、スピンビット数nに対して、重み係数の総数はnである。レジスタ12a1にはn個の重み係数が格納される。また、重み係数Wijの添え字iは、自スピンビットのindexを示し、同添え字jは、自スピンビットを含む何れかのスピンビットのindexを示す。 Register 12a1 stores a weighting factor W 1j (j=1 to n) between its own spin bit and other spin bits. Here, the total number of weighting factors is n2 for the number of spin bits n . Register 12a1 stores n weighting factors. The subscript i of the weighting factor W ij indicates the index of the own spin bit, and the subscript j indicates the index of any spin bit including the own spin bit.

レジスタ12a1は、自スピンビットに対して、n個の重み係数W11,W12,…,W1nを記憶する。なお、Wii=W11=0である。レジスタ12a1は、セレクタ部13cにより出力されるindex=jに対応する重み係数W1jをh計算部12b1に出力する。 The register 12a1 stores n weighting factors W 11 , W 12 , . . . , W 1n for the own spin bit. Note that W ii =W 11 =0. The register 12a1 outputs the weighting factor W1j corresponding to index=j output from the selector 13c to the h calculator 12b1.

h計算部12b1は、レジスタ12a1から供給される重み係数W1jを用いて、式(10),(11)に基づくローカルフィールドhを計算する。例えば、h計算部12b1は、前回計算されたローカルフィールドhを保持するレジスタを有し、index=jで示されるスピンビットの反転方向に応じたδh (j)を、hに積算することで、当該レジスタに格納されるhを更新する。index=jで示されるスピンビットの反転方向を示す信号は、状態保持部11からh計算部12b1に供給されてもよい。hの初期値は、問題に応じて、h計算部12b1のレジスタに予め設定される。また、bの値も、問題に応じて、h計算部12b1のレジスタに予め設定される。h計算部12b1は、計算したローカルフィールドhをΔE生成部12c1およびE計算部14に出力する。 The h calculator 12b1 uses the weighting factor W1j supplied from the register 12a1 to calculate the local field h1 based on equations ( 10 ) and (11). For example, the h calculator 12b1 has a register that holds the previously calculated local field h1, and multiplies h1 by δh1 (j) corresponding to the spin bit inversion direction indicated by index=j. Thus, h1 stored in the register is updated. A signal indicating the reversal direction of the spin bit indicated by index=j may be supplied from the state holding unit 11 to the h calculating unit 12b1. The initial value of h1 is preset in the register of the h calculator 12b1 depending on the problem. Also, the value of b1 is preset in the register of the h calculator 12b1 depending on the problem. The h calculator 12 b 1 outputs the calculated local field h 1 to the ΔE generator 12 c 1 and the E calculator 14 .

ΔE生成部12c1は、ローカルフィールドhを用いて、式(9)に基づき、自スピンビットの反転に応じたイジングモデルのエネルギー変化値ΔEを生成する。ΔE生成部12c1は、例えば、状態保持部11から供給される自スピンビットの現在の値から、自スピンビットの反転方向を判別してもよい(現在の値が0なら0から1が反転方向となり、現在の値が1なら1から0が反転方向となる)。ΔE生成部12c1は、生成したエネルギー変化値ΔEを、加算器13a1に出力する。ここで、後段の加算器13a1での加算処理および状態遷移判定回路13b1での判定処理に応じて、ΔE生成部12c1は、エネルギー変化値ΔEの符号を逆転したエネルギー変化値-ΔEを、加算器13a1に出力してもよい。本例では、ΔE生成部12c1は、エネルギー変化値として、-ΔEを加算器13a1に出力するものとする。 The ΔE generating unit 12c1 uses the local field h1 to generate an energy change value ΔE1 of the Ising model according to the inversion of its own spin bit based on Equation (9). For example, the ΔE generation unit 12c1 may determine the inversion direction of the own spin bit from the current value of the own spin bit supplied from the state holding unit 11 (if the current value is 0, the inversion direction is from 0 to 1). , and if the current value is 1, the direction of reversal is from 1 to 0). The ΔE generator 12c1 outputs the generated energy change value ΔE1 to the adder 13a1. Here, according to the addition processing in the adder 13a1 and the determination processing in the state transition determination circuit 13b1 in the subsequent stage, the ΔE generation unit 12c1 reverses the sign of the energy change value ΔE 1 to generate the energy change value −ΔE 1 as It may be output to the adder 13a1. In this example, the ΔE generator 12c1 outputs −ΔE 1 to the adder 13a1 as the energy change value.

加算器13a1は、ΔE生成部12c1から供給される-ΔEとオフセット制御部13dから供給されるオフセット値Eoffとを加算する。オフセット値Eoffは、後述されるように、状態遷移を促すためのパラメータであり、オフセット制御部13dにより制御される。本例では、Eoff≧0である。加算器13a1は、加算結果(-ΔE+Eoff)を状態遷移判定回路13b1に出力する。 The adder 13a1 adds −ΔE 1 supplied from the ΔE generator 12c1 and the offset value Eoff supplied from the offset controller 13d. The offset value E off is a parameter for prompting state transition, as will be described later, and is controlled by the offset control unit 13d. In this example, E off ≧0. The adder 13a1 outputs the addition result (-ΔE 1 +E off ) to the state transition determination circuit 13b1.

状態遷移判定回路13b1は、加算器13a1から供給されるエネルギー変化値とオフセットΔEoffとの和(-ΔE+Eoff)に応じて、自スピンビットの反転可否を示すフラグfをセレクタ部13cに出力する。具体的には、状態遷移判定回路13b1は、-ΔE+Eoffと閾値との比較に応じて、自スピンビットの反転可否を判定する。 The state transition determination circuit 13b1 sets the flag f1 indicating whether or not the own spin bit can be inverted according to the sum of the energy change value supplied from the adder 13a1 and the offset ΔE off (−ΔE 1 +E off ). output to Specifically, the state transition determination circuit 13b1 determines whether or not its own spin bit can be inverted according to the comparison between -ΔE 1 +E off and the threshold.

ここで、状態遷移判定回路13b1による判定について説明する。
シミュレーテッド・アニーリングでは、あるエネルギー変化ΔEを引き起こす状態遷移の許容確率p(ΔE,T)を前述の式(1)のように決める。式(1)においてTは、前述の温度情報Tである。温度情報Tは、温度制御部22により状態遷移判定回路13b1に設定される。また、関数fとしては、式(2)(メトロポリス法)、または、式(3)(ギブス法)が用いられる。
Here, determination by the state transition determination circuit 13b1 will be described.
In simulated annealing, the permissible probability p(ΔE, T) of state transition that causes a certain energy change ΔE is determined as in the above equation (1). In Equation (1), T is the temperature information T described above. The temperature information T is set in the state transition determination circuit 13b1 by the temperature control unit 22. FIG. Also, as the function f, equation (2) (Metropolis method) or equation (3) (Gibbs method) is used.

例えば、許容確率p(ΔE,T)でエネルギー変化ΔEを引き起こす状態遷移を許容することを示すフラグ(flg=1)を出力する回路は、f(-ΔE/T)と、区間[0,1)の値をとる一様乱数uとの比較に応じた値を出力する比較器により実現できる。 For example, a circuit that outputs a flag (flg=1) indicating that a state transition that causes an energy change ΔE with an allowable probability p (ΔE, T) is allowed is f (−ΔE/T) and an interval [0, 1 ) can be realized by a comparator that outputs a value corresponding to the comparison with the uniform random number 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が正であることから、状態遷移判定回路13b1は、-ΔEがT・f-1(u)以上のとき(あるいは、ΔEが-(T・f-1(u))以下のとき)、flg=1を出力する回路でよい。 However, the same function can be realized even if the following modification is performed. Even if the same monotonically increasing function is applied to two numbers, the magnitude relationship does not change. Therefore, applying the same monotonically increasing function to the two inputs of the comparator does not change the output of the comparator. For example, the inverse function f -1 (-ΔE/T) of f(-ΔE/T) as a monotonically increasing function acting on f(-ΔE/T), and the monotonically increasing function f -1 f −1 (u), where −ΔE/T of (−ΔE/T) is u, can be used. In that case, the circuit having the same function as the above comparator may be a circuit that outputs 1 when -ΔE/T is greater than f -1 (u). Furthermore, since the temperature parameter T is positive, the state transition determination circuit 13b1 determines that when -ΔE is T·f −1 (u) or more (or ΔE is −(T·f −1 (u)) or less ), a circuit that outputs flg=1 may be used.

状態遷移判定回路13b1は、一様乱数uを生成し、上記のf-1(u)の値に変換する変換テーブルを用いて、f-1(u)の値を生成する。メトロポリス法が適用される場合、f-1(u)は、式(12)で与えられる。また、ギブス法が適用される場合、f-1(u)は、式(13)で与えられる。 The state transition determination circuit 13b1 generates a uniform random number u and uses a conversion table for converting the value of f −1 (u) to generate the value of f −1 (u). If the Metropolis method is applied, f −1 (u) is given by equation (12). Also, when the Gibbs method is applied, f −1 (u) is given by equation (13).

Figure 0007108185000012
Figure 0007108185000012

Figure 0007108185000013
Figure 0007108185000013

変換テーブルは、例えば、状態遷移判定回路13b1が有するレジスタに記憶される。状態遷移判定回路13b1は、温度パラメータTと、f-1(u)との積(T・f-1(u))を閾値として生成し、-ΔE+Eoffと比較する。ここで、T・f-1(u)は、熱励起エネルギーに相当する。状態遷移判定回路13b1は、(-ΔE+Eoff)≧T・f-1(u)の場合にフラグf=1(遷移可)をセレクタ部13cに出力する。状態遷移判定回路13b1は、(-ΔE+Eoff)<T・f-1(u)の場合にフラグf=0(遷移不可)をセレクタ部13cに出力する。 The conversion table is stored, for example, in a register of the state transition determination circuit 13b1. The state transition determination circuit 13b1 generates the product (T·f −1 (u)) of the temperature parameter T and f −1 (u) as a threshold, and compares it with −ΔE 1 +E off . Here, T·f −1 (u) corresponds to thermal excitation energy. The state transition determination circuit 13b1 outputs a flag f 1 =1 (transition allowed) to the selector section 13c when (−ΔE 1 +E off )≧T·f −1 (u). When (−ΔE 1 +E off )<T·f −1 (u), the state transition determination circuit 13b1 outputs a flag f 1 =0 (transition impossible) to the selector section 13c.

セレクタ部13cは、状態遷移判定回路13b1~13bnの各々から出力された遷移可否を示すフラグを受け付ける。セレクタ部13cは、状態遷移判定回路13b1~13bnの各々から出力されたフラグに遷移可を示すフラグがある場合には、遷移可を示す何れか1つのフラグを選択する。セレクタ部13cは、状態遷移判定回路13b1~13bnの各々から出力されたフラグに遷移可を示すフラグがない場合には、1つの所定のフラグを選択する。 The selector unit 13c receives flags indicating whether transition is possible or not output from each of the state transition determination circuits 13b1 to 13bn. If the flags output from each of the state transition determination circuits 13b1 to 13bn include flags indicating that the transition is permitted, the selector unit 13c selects any one flag that indicates that the transition is permitted. The selector unit 13c selects one predetermined flag when there is no flag indicating that transition is permitted among the flags output from each of the state transition determination circuits 13b1 to 13bn.

セレクタ部13cは、遷移可否を示すフラグと、選択したフラグに対応するスピンビットを示すindex=jとを含む更新信号(update)を状態保持部11に出力する。それとともに、セレクタ部13cは、選択した遷移可否を示すフラグをオフセット制御部13dに出力し、選択したフラグに対応するindex=jを、レジスタ12a1~12anの各々に出力する。 The selector unit 13 c outputs to the state holding unit 11 an update signal (update) including a flag indicating whether or not the transition is possible and index=j indicating the spin bit corresponding to the selected flag. At the same time, the selector unit 13c outputs the selected flag indicating whether or not the transition is permitted to the offset control unit 13d, and outputs index=j corresponding to the selected flag to each of the registers 12a1 to 12an.

オフセット制御部13dは、セレクタ部13cから出力される遷移可否を示すフラグに基づいて、加算器13a1~13anの各々に供給するオフセット値を制御する。具体的には、オフセット制御部13dは、セレクタ部13cから出力されるフラグが遷移可を示す場合、オフセット値を0にリセットする。オフセット制御部13dは、セレクタ部13cから出力されるフラグが遷移不可を示す場合、オフセット値に増分値ΔEoffを加算する。当該フラグが連続して遷移不可を示す場合、オフセット制御部13dは、ΔEoffを積算することで、EoffをΔEoffずつ増加させる。 The offset control unit 13d controls the offset value supplied to each of the adders 13a1 to 13an based on the flag indicating whether or not the transition is permitted, which is output from the selector unit 13c. Specifically, the offset control unit 13d resets the offset value to 0 when the flag output from the selector unit 13c indicates that the transition is permitted. The offset control unit 13d adds an increment value ΔE off to the offset value when the flag output from the selector unit 13c indicates that transition is not possible. When the flag continuously indicates that transition is not possible, the offset control unit 13d increases E off by ΔE off by accumulating ΔE off .

セレクタ部13cから出力されるフラグが遷移不可を示す場合、現在の状態が局所解に陥っていると考えられる。-ΔEへのオフセット値の加算やオフセット値の増加により、状態遷移が許容されやすくなり、現在の状態が局所解にある場合、その局所解からの脱出が促進される。 If the flag output from the selector unit 13c indicates that transition is not possible, it is considered that the current state falls into a local solution. By adding an offset value to -ΔE 1 or increasing the offset value, the state transition becomes more permissible, and if the current state is in a local optimum, escape from the local optimum is facilitated.

状態保持部11は、セレクタ部13cから出力されるフラグとindexとに基づいて、状態保持部11が有するレジスタにより保持されるビットステート(x,x,…,x)を更新する。ここで、ビットステートは、探索部10a1におけるn個のスピンビットを含むスピンビット列(複数の状態変数の値)である。図中、ビットステートをBS(Bit States)と略記することがある。状態保持部11は、現在のビットステートをE計算部14に出力する。状態保持部11は、探索部10a1における探索処理の完了時におけるビットステートを全体制御部24に出力する。 The state holding unit 11 updates the bit states (x 1 , x 2 , . Here, the bit state is a spin bit string (values of a plurality of state variables) including n spin bits in the search unit 10a1. In the figure, bit states are sometimes abbreviated as BS (Bit States). State holding unit 11 outputs the current bit state to E calculating unit 14 . The state holding unit 11 outputs to the general control unit 24 the bit state when the search processing in the search unit 10a1 is completed.

E計算部14は、h計算部12b1~12bnの各々から出力されるローカルフィールドh~hおよび状態保持部11から出力されるビットステート(x~x)に基づいて、探索部10a1におけるイジングモデルの現在のエネルギー値Eを計算する。エネルギー値Eは、式(8)の評価関数で定義されるエネルギー値(単にエネルギーと言うこともある)である。E計算部14は、計算したエネルギー値Eを温度調整部21に出力する。また、E計算部14は、探索部10a1における所定回数または所定期間の探索処理が完了すると、計算したエネルギー値Eを、温度制御部22に出力する。 Based on the local fields h 1 to h n output from each of the h calculation units 12b1 to 12bn and the bit states (x 1 to x n ) output from the state holding unit 11, the E calculation unit 14 searches the search unit 10a1. Compute the current energy value E1 of the Ising model at . The energy value E1 is an energy value (sometimes simply referred to as energy) defined by the evaluation function of Equation (8). The E calculator 14 outputs the calculated energy value E1 to the temperature controller 21 . Further, the E calculation unit 14 outputs the calculated energy value E1 to the temperature control unit 22 when the searching unit 10a1 completes the searching process for a predetermined number of times or for a predetermined period.

温度調整部21は、探索部10a1~10aNの各々から出力されるエネルギー値E~Eを受け付ける。また、温度調整部21は、探索部10a1~10aNの各々に設定されている温度の情報を、温度制御部22から取得する。図2では、探索部10a1に温度T、探索部10a2に温度T、…、探索部10aNに温度Tが設定されている例が示されている。温度調整部21は、エネルギー値E~Eの変化と探索部10a1~10aNに設定される温度の変化とに応じて、探索部10a1~10aNの各々に設定する新規温度を示す新規温度情報を決定する。温度調整部21は、決定した新規温度情報と、新規温度の設定信号(T set sig.(sig.はsignalの略))を、温度制御部22に出力する。 Temperature adjustment unit 21 receives energy values E 1 to E N output from search units 10a1 to 10aN, respectively. Further, the temperature adjustment unit 21 acquires from the temperature control unit 22 information on the temperature set in each of the search units 10a1 to 10aN. FIG. 2 shows an example in which the temperature T 1 is set for the search unit 10a1, the temperature T 2 is set for the search unit 10a2, . . . , and the temperature TN is set for the search unit 10aN. The temperature adjuster 21 generates new temperature information indicating a new temperature to be set to each of the search units 10a1 to 10aN according to changes in the energy values E 1 to E N and changes in the temperatures set to the search units 10a1 to 10aN. to decide. The temperature adjustment unit 21 outputs the determined new temperature information and a new temperature setting signal (T set sig. (sig. is an abbreviation for signal)) to the temperature control unit 22 .

温度制御部22は、探索部10a1~10aNの各々に供給する温度を制御する。温度制御部22は、温度を示す温度情報と、温度の設定信号(T set sig.)とを、探索部10a1~10aNの各々が有する状態遷移回路に供給する。また、温度制御部22は、交換制御部23の機能を有し、探索部10a1~10aNにおける温度の交換(温度交換)を制御する(図2では交換制御部23の図示を省略している)。交換制御部23は、式(5)の交換確率に基づいて、探索部のペア(2つの探索部)に関し、温度交換を行うか否かを判定する。温度制御部22は、交換後の温度を、各探索部に供給する。 The temperature control section 22 controls the temperature supplied to each of the searching sections 10a1 to 10aN. The temperature control unit 22 supplies temperature information indicating temperature and a temperature setting signal (T set sig.) to a state transition circuit included in each of the search units 10a1 to 10aN. Further, the temperature control unit 22 has the function of the exchange control unit 23, and controls temperature exchange (temperature exchange) in the search units 10a1 to 10aN (illustration of the exchange control unit 23 is omitted in FIG. 2). . The exchange control unit 23 determines whether or not to perform temperature exchange for a pair of search units (two search units) based on the exchange probability of Equation (5). The temperature control unit 22 supplies the temperature after replacement to each search unit.

例えば、交換制御部23は、温度の識別情報(温度インデックス又は温度番号と言う)と、温度とを対応付けた第1の対応情報を、交換制御部23が有するレジスタに保持する。例えば、温度インデックスは、温度の昇順に温度に対応付けられる(温度インデックスが大きいほど温度も高い)。更に、交換制御部23は、例えば昇順に配列された温度インデックスと探索部10a1~10aNの各々の識別番号とを対応付けた第2の対応情報を、交換制御部23が有するレジスタに保持する。この場合、第2の対応情報で隣接する温度インデックスに対応する探索部のペアは、設定された温度が隣接することになる。交換制御部23は、第1の対応情報および第2の対応情報に基づいて、探索部10a1~10aNに対する温度交換を制御し、交換に応じて、第2の対応情報を更新する。温度制御部22は、第1の対応情報および第2の対応情報に基づいて、各探索部に温度を供給する。なお、第1の対応情報において温度インデックスに対応付けられる温度は、温度調整部21による新規温度の計算結果に応じて更新される。 For example, the exchange control unit 23 stores, in a register of the exchange control unit 23, first correspondence information that associates temperature identification information (referred to as temperature index or temperature number) with temperature. For example, temperature indices are associated with temperatures in ascending order of temperature (the higher the temperature index, the higher the temperature). Further, the exchange control unit 23 stores, in a register of the exchange control unit 23, second correspondence information in which the temperature indexes arranged in ascending order are associated with the identification numbers of the search units 10a1 to 10aN. In this case, a pair of search units corresponding to adjacent temperature indexes in the second correspondence information have adjacent set temperatures. The exchange control unit 23 controls temperature exchange for the search units 10a1 to 10aN based on the first correspondence information and the second correspondence information, and updates the second correspondence information according to the exchange. The temperature control unit 22 supplies the temperature to each search unit based on the first correspondence information and the second correspondence information. Note that the temperature associated with the temperature index in the first correspondence information is updated according to the calculation result of the new temperature by the temperature adjuster 21 .

ただし、交換制御部23は、探索部10a1~10aNの各々の識別番号と温度値とを対応付けた対応情報を保持し、当該対応情報を温度値でソートすることで、設定された温度が隣接する探索部のペアを特定することもできる。その場合、温度調整部21による新規温度の計算結果に応じて、当該対応情報における温度値が更新される。 However, the exchange control unit 23 holds correspondence information in which the identification numbers of the search units 10a1 to 10aN are associated with the temperature values, and sorts the correspondence information according to the temperature values so that the set temperatures are adjacent to each other. It is also possible to identify pairs of search units that In that case, the temperature value in the corresponding information is updated according to the calculation result of the new temperature by the temperature adjustment unit 21 .

全体制御部24は、最適化装置1の全体の動作を制御する。全体制御部24は、起動信号の入力を受け付けると、温度制御部22に起動信号を出力し、探索部10a1~10aNを起動させて、最適化問題に関する基底状態探索の演算を開始させる。全体制御部24は、演算が終了すると、探索部10a1~10aNの各々からビットステートを取得し、最適化問題に対する解を得る。全体制御部24は、演算の終了を示す終了信号を出力する。終了信号は、演算により得られた解を示す情報を含み得る。例えば、全体制御部24は、最適化装置1に接続された表示装置に、解を示す画像情報を出力し、解を示す画像情報を表示装置により表示させることで、得られた解の内容をユーザに提示してもよい。 The overall control unit 24 controls the overall operation of the optimization device 1 . Upon receiving the input of the activation signal, the overall control unit 24 outputs the activation signal to the temperature control unit 22, activates the search units 10a1 to 10aN, and starts the calculation of the ground state search for the optimization problem. After completing the calculation, the overall control unit 24 obtains the bit state from each of the search units 10a1 to 10aN and obtains the solution to the optimization problem. The overall control unit 24 outputs an end signal indicating the end of computation. The termination signal may contain information indicative of the solution obtained by the computation. For example, the overall control unit 24 outputs image information indicating the solution to a display device connected to the optimization device 1, and causes the display device to display the image information indicating the solution, thereby displaying the content of the obtained solution. may be presented to the user.

次に、状態遷移判定回路13b1~13bnの回路構成を説明する。以下では、状態遷移判定回路13b1を例示して説明するが、他の状態遷移判定回路も同様の回路構成である。 Next, circuit configurations of the state transition determination circuits 13b1 to 13bn will be described. Although the state transition determination circuit 13b1 will be described below as an example, the other state transition determination circuits have the same circuit configuration.

図3は、状態遷移判定回路の回路構成例を示す図である。
状態遷移判定回路13b1は、乱数生成部111、閾値生成部112および比較部113を有する。
FIG. 3 is a diagram showing a circuit configuration example of a state transition determination circuit.
State transition determination circuit 13 b 1 has random number generator 111 , threshold generator 112 and comparator 113 .

乱数生成部111は、一様乱数uを生成し、閾値生成部112に出力する。
閾値生成部112は、一様乱数uと、温度制御部22により供給された温度Tを示す温度情報とを用いて、前述の変換テーブルにより、式(12)(または、式(13))に基づく閾値T・f-1(u)を生成する。閾値生成部112は、生成した閾値T・f-1(u)を、比較部113に出力する。
The random number generator 111 generates a uniform random number u and outputs it to the threshold generator 112 .
The threshold generation unit 112 uses the uniform random number u and the temperature information indicating the temperature T1 supplied from the temperature control unit 22 to generate the equation (12) (or the equation (13)) according to the aforementioned conversion table. generates a threshold T·f −1 (u) based on Threshold generation section 112 outputs the generated threshold T·f −1 (u) to comparison section 113 .

比較部113は、加算器13a1により出力された(-ΔE+Eoff)と閾値T・f-1(u)とを比較し、遷移可否を示すフラグを、セレクタ部13cに出力する。前述のように、例えば、比較部113は、(-ΔE+Eoff)≧T・f-1(u)の場合に遷移可をセレクタ部13cに出力する。状態遷移判定回路13b1は、(-ΔE+Eoff)<T・f-1(u)の場合に遷移不可をセレクタ部13cに出力する。 Comparing section 113 compares (−ΔE 1 +E off ) output from adder 13a1 with threshold value T·f −1 (u), and outputs a flag indicating whether transition is possible or not to selector section 13c. As described above, for example, when (−ΔE 1 +E off )≧T·f −1 (u), the comparison unit 113 outputs a transition permitted signal to the selector unit 13c. The state transition determination circuit 13b1 outputs a transition impossibility to the selector section 13c when (−ΔE 1 +E off )<T·f −1 (u).

次に、セレクタ部13cの回路構成例を説明する。
図4は、セレクタ部の回路構成例を示す図である。
セレクタ部13cは、複数段にわたってツリー状に接続された複数の選択回路および乱数ビット生成部32a,32b,32c,…,32rを有する。乱数ビット生成部32a~32rは、ツリー状に接続された複数の選択回路の段毎に設けられる。乱数ビット生成部32a~32rの各々は、0または1の値をとる1ビット乱数を生成し、各段の選択回路に供給する。1ビット乱数は、入力されたフラグのペアのうちの何れか一方を選択するために用いられる。
Next, a circuit configuration example of the selector section 13c will be described.
FIG. 4 is a diagram showing a circuit configuration example of a selector unit.
The selector unit 13c has a plurality of selection circuits and random number bit generators 32a, 32b, 32c, . Random number bit generators 32a to 32r are provided for each stage of a plurality of selection circuits connected in a tree. Each of the random number bit generators 32a to 32r generates a 1-bit random number having a value of 0 or 1 and supplies it to the selection circuit at each stage. A 1-bit random number is used to select one of the pairs of input flags.

初段の選択回路31a1,31a2,31a3,31a4,…,31apの各々には、状態遷移判定回路13b1~13bnの各々が出力する遷移可否を示すフラグの組が入力される。例えば、選択回路31a1には、1番目の状態遷移判定回路13b1が出力するフラグと、2番目の状態遷移判定回路13b2が出力するフラグとのペアが入力される。また、選択回路31a2には、3番目の状態遷移判定回路が出力するフラグと、4番目の状態遷移判定回路が出力するフラグとのペアが入力される。以降、同様にして、選択回路31apには、n-1番目の状態遷移判定回路が出力するフラグと、n番目の状態遷移判定回路13bnが出力するフラグとのペアが入力される。このように、隣り合う状態遷移判定回路が出力するフラグとのペアが初段の選択回路に入力される。初段の選択回路32a1~31apの数は、n/2となる。以降、段を経る毎に選択回路の数は半分になる。 Each of the selection circuits 31a1, 31a2, 31a3, 31a4, . For example, a pair of a flag output by the first state transition determination circuit 13b1 and a flag output by the second state transition determination circuit 13b2 is input to the selection circuit 31a1. A pair of a flag output by the third state transition determination circuit and a flag output by the fourth state transition determination circuit is input to the selection circuit 31a2. Thereafter, similarly, a pair of a flag output by the (n-1)th state transition determination circuit and a flag output by the nth state transition determination circuit 13bn is input to the selection circuit 31ap. In this way, pairs of flags output by adjacent state transition determination circuits are input to the first-stage selection circuit. The number of selection circuits 32a1 to 31ap in the first stage is n/2. After that, the number of selection circuits is halved for each stage.

選択回路31a1~31apの各々は、入力されたフラグのペアと、乱数ビット生成部32aが出力する1ビット乱数に基づいて、入力されたフラグのペアのうちの一方を選択する。選択回路31a1~31apの各々は、選択したフラグと選択したフラグに対応する1ビットの識別値とを含む状態信号を、2段目の選択回路31b1~31bqに出力する。例えば、選択回路31a1が出力する状態信号と、選択回路31a2が出力する状態信号とが選択回路31b1に入力される。同様に、選択回路31a1~31apの隣り合う選択回路が出力する状態信号のペアが、2段目の選択回路に入力される。 Each of the selection circuits 31a1 to 31ap selects one of the input pair of flags based on the input pair of flags and the 1-bit random number output from the random number bit generator 32a. Each of the selection circuits 31a1-31ap outputs a state signal including the selected flag and a 1-bit identification value corresponding to the selected flag to the second-stage selection circuits 31b1-31bq. For example, the state signal output by the selection circuit 31a1 and the state signal output by the selection circuit 31a2 are input to the selection circuit 31b1. Similarly, pairs of status signals output by adjacent selection circuits among the selection circuits 31a1 to 31ap are input to the second-stage selection circuit.

選択回路31b1~31bqの各々は、入力された状態信号のペアと、乱数ビット生成部32bが出力する1ビット乱数に基づいて、入力された状態信号のうちの一方を選択する。選択回路31b1~31bqの各々は、選択した状態信号を、3段目の選択回路31c1,…に出力する。ここで、選択回路31b1~31bqは、選択した方の状態信号に含まれる状態信号について、何れの状態信号を選択したかを示すように1ビットを付加して更新し、選択した状態信号を出力する。 Each of the selection circuits 31b1 to 31bq selects one of the input state signals based on the pair of input state signals and the 1-bit random number output from the random number bit generator 32b. Each of the selection circuits 31b1 to 31bq outputs a selected state signal to the selection circuits 31c1, . . . of the third stage. Here, the selection circuits 31b1 to 31bq update the state signal included in the selected state signal by adding 1 bit to indicate which state signal is selected, and output the selected state signal. do.

3段目以降の選択回路においても同様の処理が行われ、各段の選択回路で1ビットずつ識別値のビット幅が増えていき、最終段の選択回路31rから、セレクタ部13cの出力である状態信号が出力される。セレクタ部13cが出力する状態信号に含まれる識別値が、2進数で表されたindexに対応する。ただし、図4で示す回路構成例では、探索部のindexを0~1023とする場合としている。選択回路31rが出力する識別値に1を加算した値が、図2で示されるjに相当する。 The same processing is performed in the selection circuits of the third and subsequent stages, and the bit width of the identification value is increased by one bit in the selection circuits of each stage. A status signal is output. The identification value included in the state signal output by the selector section 13c corresponds to the index expressed in binary. However, in the circuit configuration example shown in FIG. A value obtained by adding 1 to the identification value output from the selection circuit 31r corresponds to j shown in FIG.

例えば、図4では、選択回路31bqの回路構成例が示されている。2段目以降の他の選択回路も、選択回路31bqと同様の回路構成により実現される。
選択回路31bqの入力は、1つ目の状態信号(status_1)と、2つ目の状態信号(status_2)である。選択回路31b1の出力は、状態信号(status)である。選択回路31bqは、OR回路131、NAND回路132およびセレクタ133,134を有する。
For example, FIG. 4 shows a circuit configuration example of the selection circuit 31bq. Other selection circuits in the second and subsequent stages are also realized by a circuit configuration similar to that of the selection circuit 31bq.
Inputs of the selection circuit 31bq are a first status signal (status_1) and a second status signal (status_2). The output of the selection circuit 31b1 is a status signal (status). Select circuit 31bq has an OR circuit 131, a NAND circuit 132 and selectors 133 and 134. FIG.

OR回路131には、状態信号(status_1)に含まれるフラグ(flag1)と、状態信号(status_2)に含まれるフラグ(flag2)とが入力される。例えば、状態信号(status_1)が前段の2つの選択回路のうちの上位側(indexの大きい側)の出力、状態信号(status_2)が前段の2つの選択回路のうちの下位側(indexの小さい側)の出力である。OR回路131は、flag1とflag2とのOR演算結果(flag)を出力する。 The flag (flag1) included in the status signal (status_1) and the flag (flag2) included in the status signal (status_2) are input to the OR circuit 131 . For example, the status signal (status_1) is the output of the upper side (larger index side) of the two preceding stage selection circuits, and the status signal (status_2) is the lower side (smaller index side) of the two preceding stage selection circuits. ) is the output. The OR circuit 131 outputs the OR operation result (flag) of flag1 and flag2.

NAND回路132には、flag1とflag2とが入力される。NAND回路132は、flag1とflag2とのNAND演算結果を、セレクタ133の選択信号入力端子に出力する。 Flag1 and flag2 are input to the NAND circuit 132 . The NAND circuit 132 outputs the NAND operation result of flag1 and flag2 to the selection signal input terminal of the selector 133 .

セレクタ133には、flag1と1ビット乱数(rand)とが入力される。セレクタ133は、NAND回路132から入力されるNAND演算結果に基づいて、flag1又はrandの何れかを選択し、出力する。例えば、セレクタ133は、NAND回路132のNAND演算結果が「1」の場合、flag1を選択し、NAND回路132のNAND演算結果が「0」の場合、randを選択する。 Flag1 and a 1-bit random number (rand) are input to the selector 133 . The selector 133 selects and outputs either flag1 or rand based on the NAND operation result input from the NAND circuit 132 . For example, the selector 133 selects flag1 when the NAND operation result of the NAND circuit 132 is "1", and selects rand when the NAND operation result of the NAND circuit 132 is "0".

セレクタ134には、状態信号(status_1)に含まれるindex1と、状態信号(status_2)に含まれるindex2とが入力される。セレクタ134の選択信号入力端子には、セレクタ133の選択結果が入力される。セレクタ134は、セレクタ133の選択結果に基づいて、index1またはindex2の何れかを選択し、出力する。例えば、セレクタ134は、セレクタ133の選択結果が「1」の場合、index1を選択し、セレクタ133の選択結果が「0」の場合、index2を選択する。 The selector 134 receives the index1 included in the status signal (status_1) and the index2 included in the status signal (status_2). A selection signal input terminal of the selector 134 receives a selection result of the selector 133 . The selector 134 selects and outputs either index1 or index2 based on the selection result of the selector 133 . For example, the selector 134 selects index1 when the selection result of the selector 133 is "1", and selects index2 when the selection result of the selector 133 is "0".

OR回路131およびセレクタ133,134の出力の組が、選択回路31bqが出力する状態信号(status)となる。
なお、初段の選択回路の入力は識別値を含まない。このため、初段の選択回路は、識別値(図中ではindexと表記)として、選択した方に対応するビット値(下位側の場合に「0」、上位側の場合に「1」)を追加して出力する回路となる。
A set of outputs from the OR circuit 131 and the selectors 133 and 134 forms a status signal (status) output from the selection circuit 31bq.
Note that the input of the selection circuit in the first stage does not include the identification value. Therefore, the selection circuit in the first stage adds the bit value corresponding to the selected one ("0" for the lower side and "1" for the upper side) as the identification value (indicated as index in the figure). and output the circuit.

このように、セレクタ部13cは、遷移可であるスピンビットから1つをトーナメント方式で選択する。トーナメントの各試合(すなわち、各選択回路での選択)では、勝った方(すなわち、選択された方)のエントリ番号(0又は1)をindex wordの上位ビットに付け加えていく。最終段の選択回路31rが出力するindexが選ばれたスピンビットを示す。例えば、1つの探索部におけるスピンビットの数が1024個の場合、最終段の選択回路31rが出力する状態信号は、遷移可否を示すフラグと、10ビットで表されるindexとを含む。 In this manner, the selector unit 13c selects one spin bit from transitionable spin bits in a tournament manner. Each match of the tournament (ie, selection in each selection circuit) adds the winning (ie, selected) entry number (0 or 1) to the high-order bits of the index word. The index output by the final-stage selection circuit 31r indicates the selected spin bit. For example, when the number of spin bits in one search unit is 1024, the state signal output from the final-stage selection circuit 31r includes a flag indicating whether transition is possible or not, and an index represented by 10 bits.

ただし、indexの出力方法は、上記のようにセレクタ部13cで生成する方法以外の方法も考えられる。例えば、状態遷移判定回路13b1~13bnの各々からセレクタ部13cに各状態遷移判定回路に対応するindexを供給し、セレクタ部13cにより遷移可否を示すフラグとともに、当該フラグに対応するindexを選択してもよい。この場合、状態遷移判定回路13b1~13bnの各々は、自身に対応するindexを格納するindexレジスタを更に有し、indexレジスタからセレクタ部13cにindexを供給する。 However, as an index output method, a method other than the method of generating by the selector unit 13c as described above is conceivable. For example, the index corresponding to each state transition determination circuit is supplied from each of the state transition determination circuits 13b1 to 13bn to the selector unit 13c, and the selector unit 13c selects a flag indicating whether or not the transition is possible and the index corresponding to the flag. good too. In this case, each of the state transition determination circuits 13b1 to 13bn further has an index register for storing the index corresponding to itself, and supplies the index from the index register to the selector section 13c.

図5は、温度調整部の回路構成例を示す図である。
温度調整部21は、レジスタ210、最低エネルギー更新確認回路220、最高温度更新確認回路230、温度ヒストグラム計算回路240および温度計算回路250を有する。
FIG. 5 is a diagram illustrating a circuit configuration example of a temperature adjustment unit.
The temperature adjustment section 21 has a register 210 , a minimum energy update confirmation circuit 220 , a maximum temperature update confirmation circuit 230 , a temperature histogram calculation circuit 240 and a temperature calculation circuit 250 .

レジスタ210は、探索部10a1~10aNの各々に対応付けて、到達した最低エネルギーと、設定された温度の最高値(最高温度)とを記憶する。
最低エネルギー更新確認回路220は、所定のデータ取得タイミングにおいて、探索部10a1~10aNの各々からエネルギー値Eを受け付ける。最低エネルギー更新確認回路220は、受け付けた探索部毎のエネルギー値Eをレジスタ210に記憶された探索部毎の最低エネルギーと比較することで、最低エネルギーが更新されたか否かを、探索部毎に確認する。最低エネルギー更新確認回路220は、最低エネルギーが更新されたか否かの探索部毎の確認結果を示す信号を、最高温度更新確認回路230および温度ヒストグラム計算回路240に出力する。最低エネルギー更新確認回路220は、ある探索部において最低エネルギーが更新された場合、レジスタ210に記録された該当の探索部の最低エネルギーを、該当の探索部から今回取得したエネルギーに更新する。
The register 210 stores the lowest energy reached and the highest set temperature (maximum temperature) in association with each of the search units 10a1 to 10aN.
Minimum energy update confirmation circuit 220 receives energy value E from each of search units 10a1 to 10aN at a predetermined data acquisition timing. The minimum energy update confirmation circuit 220 compares the received energy value E for each search unit with the minimum energy for each search unit stored in the register 210, thereby confirming whether or not the minimum energy has been updated for each search unit. Confirm. The minimum energy update confirmation circuit 220 outputs to the maximum temperature update confirmation circuit 230 and the temperature histogram calculation circuit 240 a signal indicating whether or not the minimum energy has been updated for each search unit. When the minimum energy is updated in a certain search unit, the minimum energy update confirmation circuit 220 updates the minimum energy of the search unit recorded in the register 210 to the energy obtained this time from the search unit.

最高温度更新確認回路230は、ある探索部について、最低エネルギー更新確認回路220による確認結果が、最低エネルギーが更新されていないことを示す場合、温度制御部22から供給される温度をレジスタ210に記憶された該当の探索部の最高温度と比較する。最高温度更新確認回路230は、当該比較に応じて、該当の探索部について、前回の最低エネルギーの更新から、最高温度が更新されたか否かを確認する。最高温度更新確認回路230は、最高温度が更新された場合、該当の探索部に設定されている温度で、レジスタ210に記録されている最高温度の情報を更新する。 The maximum temperature update confirmation circuit 230 stores the temperature supplied from the temperature control unit 22 in the register 210 when the confirmation result by the minimum energy update confirmation circuit 220 indicates that the minimum energy has not been updated for a certain search unit. It compares with the maximum temperature of the corresponding search part that was obtained. The maximum temperature update confirmation circuit 230 confirms whether or not the maximum temperature of the relevant search unit has been updated since the previous minimum energy update, according to the comparison. When the maximum temperature is updated, the maximum temperature update confirmation circuit 230 updates the maximum temperature information recorded in the register 210 with the temperature set in the corresponding search section.

温度ヒストグラム計算回路240は、ある探索部について、最低エネルギー更新確認回路220による確認結果が、最低エネルギーが更新されたことを示す場合、レジスタ210に記憶されている該当の探索部の最高温度を、温度ヒストグラム上にカウントする。温度ヒストグラムは、探索部10a1~10aNの全体に対して1つ生成される。 When the confirmation result by the minimum energy update confirmation circuit 220 indicates that the minimum energy has been updated for a certain search section, the temperature histogram calculation circuit 240 calculates the maximum temperature of the corresponding search section stored in the register 210 as Count on the temperature histogram. One temperature histogram is generated for all of the search units 10a1 to 10aN.

温度計算回路250は、温度ヒストグラム計算回路240により生成された温度ヒストグラムに基づいて、探索部10a1~10aNに設定するN個の新規温度を計算する。温度計算回路250は、新規温度の計算に、式(6)、(7)を用いる。最低温度tmp_minは、温度計算回路250に予め設定される。最高温度tmp_maxは、温度ヒストグラムに基づいて温度計算回路250により決定される。温度計算回路250には、新規温度の計算に用いられる所定係数αが外部から入力され得る。温度計算回路250は、計算した新規温度を示す新規温度情報と、温度設定信号(T set sig.)とを温度制御部22に出力する。 Based on the temperature histogram generated by the temperature histogram calculation circuit 240, the temperature calculation circuit 250 calculates N new temperatures to be set in the search units 10a1 to 10aN. Temperature calculation circuit 250 uses equations (6) and (7) to calculate the new temperature. Minimum temperature tmp_min is preset in temperature calculation circuit 250 . The maximum temperature tmp_max is determined by the temperature calculation circuit 250 based on the temperature histogram. The temperature calculation circuit 250 can be externally input with a predetermined coefficient α used to calculate a new temperature. The temperature calculation circuit 250 outputs new temperature information indicating the calculated new temperature and a temperature setting signal (T set sig.) to the temperature controller 22 .

図6は、レジスタに格納されるデータ例を示す図である。
レジスタ210の各アドレスは、何れかの探索部に対応付けられており、当該探索部に関するデータが格納される。例えば、レジスタ210のアドレス「0xXXXXXX00」は、探索部10a1に対応付けられており、当該アドレスには探索部10a1が到達した最低エネルギーが格納される。例えば、最低エネルギーは、128ビット幅で表される。以降、同様に、例えば128ビット幅毎に、2番目の探索部10a2の最低エネルギー、3番目の探索部の最低エネルギーというように、各探索部に関する最低エネルギーが、レジスタ210に格納される。
FIG. 6 is a diagram showing an example of data stored in a register.
Each address of the register 210 is associated with one of the search units, and data related to the search unit is stored. For example, the address "0xXXXXXXX00" of the register 210 is associated with the search unit 10a1, and the lowest energy reached by the search unit 10a1 is stored at this address. For example, the lowest energy is represented with a width of 128 bits. Thereafter, similarly, the lowest energy for each search section is stored in the register 210 for each 128-bit width, for example, the lowest energy for the second search section 10a2, the lowest energy for the third search section, and so on.

また、レジスタ210のアドレス「0xXXXXXXY0」は、探索部10a1に対応付けられており、当該アドレスには探索部10a1において前回の最低エネルギーの更新から、探索部10a1に設定された最高の温度が格納される。例えば、温度は32ビット幅で表される。以降、同様に、例えば32ビット幅毎に、2番目の探索部10a2の温度の情報、3番目の探索部の温度の情報というように、各探索部について前回の最低エネルギーの更新時から設定された最高の温度が、レジスタ210に格納される。 Further, the address "0xXXXXXXY0" of the register 210 is associated with the search unit 10a1, and the highest temperature set in the search unit 10a1 since the previous minimum energy update in the search unit 10a1 is stored at this address. be. For example, temperature is represented with a 32-bit width. Thereafter, similarly, the temperature information of the second search unit 10a2, the temperature information of the third search unit, and so on are set for each 32-bit width, for example, from the last update of the minimum energy for each search unit. The highest temperature is stored in register 210 .

上記の構成例では、温度調整部21を専用の電子回路を用いて実現する場合であるが、温度調整部21の機能をCPU(Central Processing Unit)などのプロセッサが実行するソフトウェアの処理によって実現することもできる。そこで、温度調整部21によるデータ取得のアルゴリズムの例を説明する。 In the above configuration example, the temperature adjustment unit 21 is realized using a dedicated electronic circuit, but the function of the temperature adjustment unit 21 is realized by software processing executed by a processor such as a CPU (Central Processing Unit). can also Therefore, an example of an algorithm for data acquisition by the temperature adjustment unit 21 will be described.

図7は、データ取得のアルゴリズムの例を示す図である。
コードC1は、変数の定義を示す。
min_egは、データ取得タイミングで得られたエネルギーを示す。
FIG. 7 is a diagram showing an example of a data acquisition algorithm.
Code C1 shows the definition of the variables.
min_eg indicates the energy obtained at the data acquisition timing.

min_eg_preは、現在までの最低エネルギーを示す。
tmp_idxは、現在の温度値(あるいは温度に対応する温度インデックス)を示す。温度インデックスは、番号が大きいほど、温度が高いことを示すものとする。
min_eg_pre indicates the lowest energy up to now.
tmp_idx indicates the current temperature value (or the temperature index corresponding to the temperature). For the temperature index, the higher the number, the higher the temperature.

tmp_idx_preは、過去の温度の最高値を示す。tmp_idx_preに対して言う「過去」は、前回の最低エネルギーの更新時を起点とした現在までの期間を示す。 tmp_idx_pre indicates the highest temperature value in the past. "Past" for tmp_idx_pre indicates the period from the last update of the lowest energy to the present.

histogramは、温度のヒストグラム(温度ヒストグラム)を示す。
変数min_eg、min_eg_pre、tmp_idx、tmp_idx_preは、探索部毎に設けられる。histogramは、探索部10a1~10aNに対して1つである。
histogram indicates a temperature histogram (temperature histogram).
Variables min_eg, min_eg_pre, tmp_idx, and tmp_idx_pre are provided for each search unit. There is one histogram for each of the search units 10a1 to 10aN.

コードC2は、コードC1で定義される変数を用いて記述された温度調整部21のアルゴリズムを示す。コードC2は、探索部毎に繰り返し、あるいは並列に、実行される。
1行目では、min_eg<min_eg_preを判定する。すなわち、1行目は、最低エネルギーが更新されたか否かの判定である。min_eg<min_eg_preの場合、2行目~4行目が順番に実行され、処理が終了する。min_eg≧min_eg_preの場合、6行目が実行される。
Code C2 indicates an algorithm of the temperature adjustment section 21 written using the variables defined by Code C1. Code C2 is executed repeatedly or in parallel for each search unit.
The first line determines min_eg<min_eg_pre. That is, the first line is a determination as to whether or not the minimum energy has been updated. If min_eg<min_eg_pre, the 2nd to 4th lines are executed in order, and the process ends. If min_eg≧min_eg_pre, line 6 is executed.

2行目では、tmp_idx_preの頻度を温度ヒストグラムに加算する(tmp_idx_preの度数(頻度)が1加算される)。
3行目では、min_eg_preに、min_egの値が設定される。すなわち、これまでの最低エネルギーが更新される。
Line 2 adds the frequency of tmp_idx_pre to the temperature histogram (the frequency of tmp_idx_pre is incremented by 1).
In line 3, min_eg_pre is set to the value of min_eg. That is, the lowest energy so far is updated.

4行目では、tmp_idx_preに、tmp_idxの値が設定される。すなわち、tmp_idx_preが、最低エネルギーが更新されたときの温度インデックスにリセットされる。 In line 4, tmp_idx_pre is set to the value of tmp_idx. That is, tmp_idx_pre is reset to the temperature index when the lowest energy was updated.

6行目では、tmp_idx>tmp_idx_preを判定する。すなわち、6行目は、過去の温度の最高値が更新されたか否かの判定である。tmp_idx>tmp_idx_preの場合、7行目が実行される。tmp_idx≦tmp_idx_preの場合、処理が終了する。 Line 6 determines tmp_idx>tmp_idx_pre. That is, the sixth line is a determination as to whether or not the past maximum temperature value has been updated. If tmp_idx>tmp_idx_pre, line 7 is executed. If tmp_idx≤tmp_idx_pre, the process ends.

7行目では、tmp_idx_preに、tmp_idxの値が設定される。すなわち、tmp_idx_preが、該当の探索部に対して設定されている現在の温度に更新される。 In line 7, tmp_idx_pre is set to the value of tmp_idx. That is, tmp_idx_pre is updated to the current temperature set for the corresponding search unit.

図8は、最低エネルギーおよび温度の変化例を示す図である。
グラフ70は、ある探索部における最低エネルギーの変化例を示す。グラフ71は、当該探索部における温度の変化例を示す。
FIG. 8 is a diagram showing an example of changes in minimum energy and temperature.
A graph 70 shows an example of minimum energy variation in a certain search section. A graph 71 shows an example of temperature change in the search unit.

グラフ70,71の横軸は時間であり、左側から右側へ向かう方向が時間の正方向である。グラフ70,71の横軸の同一位置は、同一時刻を示す。グラフ70の縦軸は、エネルギーである。グラフ71の縦軸は温度である。グラフ71の縦軸には温度Ta,Tb,Tc,Tdが示されている。ここで、Ta>Tb>Tc>Tdである。 The horizontal axis of the graphs 70 and 71 is time, and the direction from left to right is the positive direction of time. The same position on the horizontal axis of graphs 70 and 71 indicates the same time. The vertical axis of graph 70 is energy. The vertical axis of the graph 71 is temperature. The vertical axis of graph 71 indicates temperatures Ta, Tb, Tc, and Td. Here, Ta>Tb>Tc>Td.

グラフ70は、系列70aを含む。系列70aによれば、期間70b,70cの2つの期間で、最低エネルギーが更新されている。
グラフ71は、系列71aを含む。系列71aによれば、期間70bで最低エネルギーが更新された時点と期間70cで最低エネルギーが更新された時点との間に該当の探索部が到達した最高温度は、Taである。
Graph 70 includes series 70a. According to the series 70a, the minimum energy is updated in two periods 70b and 70c.
Graph 71 includes series 71a. According to the sequence 71a, Ta is the maximum temperature reached by the corresponding search unit between the time when the minimum energy is updated in the period 70b and the time when the minimum energy is updated in the period 70c.

グラフ70,71の例では、該当の探索部において、最低エネルギーを更新するために、最高温度Taまで一旦上がることが必要であることを示している。そこで、温度調整部21は、このように最低エネルギーを更新するために達した最高温度を統計情報として取得し、当該統計情報に基づいて、各探索部に設定する温度を決定する。 The examples of the graphs 70 and 71 indicate that it is necessary to once increase the temperature to the maximum temperature Ta in order to update the minimum energy in the corresponding search section. Therefore, the temperature adjustment unit 21 acquires the maximum temperature reached for updating the minimum energy as statistical information, and determines the temperature to be set for each search unit based on the statistical information.

図9は、温度ヒストグラムの例を示す図である。
温度ヒストグラム80は、温度ヒストグラム計算回路240により生成される。また、CPUなどのプロセッサを用いて温度調整を行う場合、温度ヒストグラム80は、図7の「histogram」に相当する。
FIG. 9 is a diagram showing an example of a temperature histogram.
Temperature histogram 80 is generated by temperature histogram calculation circuit 240 . Further, when the temperature is adjusted using a processor such as a CPU, the temperature histogram 80 corresponds to "histogram" in FIG.

温度ヒストグラム80の横軸は温度インデックスを示し、縦軸は頻度を示す。
例えば、温度計算回路250は、温度ヒストグラム80において最大頻度の温度インデックスに対応する温度を、最高温度tmp_maxと決定する。具体的には、温度計算回路250は、温度ヒストグラム80のうち、頻度の高い温度の中から、最高温度tmp_maxを決定する。一例では、温度計算回路250は、ピークp1で示される最大頻度の温度を、最高温度tmp_maxと決定する。なお、温度計算回路250は、温度インデックスに対して温度ヒストグラム80を作成した場合、温度インデックスに対応する温度値を、例えば、前述の第1の対応情報を参照することで特定する。この場合、例えば、温度制御部22が保持する前述の第1の対応情報を、温度計算回路250により参照可能にすることが考えられる。温度計算回路250は、決定した最高温度tmp_maxを用いて、式(6)、(7)により、新規温度tmp[i](1≦i≦N)を計算する。
The horizontal axis of the temperature histogram 80 indicates temperature index and the vertical axis indicates frequency.
For example, the temperature calculation circuit 250 determines the temperature corresponding to the temperature index with the highest frequency in the temperature histogram 80 as the maximum temperature tmp_max. Specifically, the temperature calculation circuit 250 determines the maximum temperature tmp_max from among the temperatures with the highest frequencies in the temperature histogram 80 . In one example, the temperature calculation circuit 250 determines the highest frequency temperature indicated by peak p1 as the maximum temperature tmp_max. Note that, when the temperature histogram 80 is created for the temperature index, the temperature calculation circuit 250 identifies the temperature value corresponding to the temperature index by referring to the above-described first correspondence information, for example. In this case, for example, the first correspondence information held by the temperature controller 22 can be referenced by the temperature calculation circuit 250 . The temperature calculation circuit 250 calculates a new temperature tmp[i] (1≤i≤N) from equations (6) and (7) using the determined maximum temperature tmp_max.

ただし、問題によっては、上記のようなピークp1が出現しない場合やピークが複数出現する場合もある。そのような場合に、例えば、温度計算回路250は、次のように、温度ヒストグラム80に基づく累積ヒストグラムを用いて、最高温度tmp_maxを決定する。 However, depending on the problem, the above peak p1 may not appear or multiple peaks may appear. In such a case, for example, temperature calculation circuit 250 uses a cumulative histogram based on temperature histogram 80 to determine maximum temperature tmp_max as follows.

図10は、累積ヒストグラムの例を示す図である。
累積ヒストグラム81は、温度ヒストグラム80で示される頻度を温度の小さい方から累積したヒストグラムである。累積ヒストグラム81は、温度計算回路250により生成される。累積ヒストグラム81の横軸は温度インデックスを示し、縦軸は累積頻度を示す。
FIG. 10 is a diagram showing an example of a cumulative histogram.
A cumulative histogram 81 is a histogram obtained by accumulating the frequencies shown in the temperature histogram 80 from the lowest temperature. Cumulative histogram 81 is generated by temperature calculation circuit 250 . The horizontal axis of the cumulative histogram 81 indicates the temperature index, and the vertical axis indicates the cumulative frequency.

温度計算回路250は、累積ヒストグラムの割合(累積割合)により最高温度tmp_maxを決定する。例えば、累積割合を、一例として、70%(係数α=0.7)とする。累積ヒストグラム81には、累積割合70%を示す直線82が示されている。この場合、温度計算回路250は、累積ヒストグラム81における累積頻度の最大値に累積割合を示す係数αを乗じた累積頻度に対応する温度(点p2の累積頻度に対応する温度)を特定し、当該温度を、最高温度tmp_maxと決定する。本例の場合、累積頻度の最大値は、温度インデックスの最大値に対応する累積頻度である。累積頻度の最大値は、各探索部の最低エネルギーが更新された総回数に相当する。 The temperature calculation circuit 250 determines the maximum temperature tmp_max from the cumulative histogram ratio (cumulative ratio). For example, let the cumulative ratio be 70% (coefficient α=0.7). A cumulative histogram 81 shows a straight line 82 indicating a cumulative percentage of 70%. In this case, the temperature calculation circuit 250 specifies the temperature corresponding to the cumulative frequency obtained by multiplying the maximum value of the cumulative frequency in the cumulative histogram 81 by the coefficient α indicating the cumulative ratio (the temperature corresponding to the cumulative frequency of the point p2), Determine the temperature as the maximum temperature tmp_max. In this example, the maximum cumulative frequency is the cumulative frequency corresponding to the maximum temperature index. The maximum cumulative frequency corresponds to the total number of times the minimum energy of each search unit has been updated.

温度計算回路250は、決定した最高温度tmp_maxを用いて、式(6)、(7)により、新規温度tmp[i](1≦i≦N)を計算する。なお、累積割合として用いられる係数αは、前述のように、外部から入力されてもよい。 The temperature calculation circuit 250 calculates a new temperature tmp[i] (1≤i≤N) from equations (6) and (7) using the determined maximum temperature tmp_max. Note that the coefficient α used as the cumulative ratio may be input from the outside as described above.

上記のように、温度計算回路250は、温度ヒストグラム80においてピークp1が検出されない場合や複数のピークが検出される場合などに、累積ヒストグラム81を用いて、最高温度tmp_maxを決定してもよい。あるいは、温度ヒストグラム80を用いるか、累積ヒストグラム81を用いるかを、温度計算回路250に予め設定可能としてもよい。 As described above, temperature calculation circuit 250 may use cumulative histogram 81 to determine maximum temperature tmp_max when peak p1 is not detected in temperature histogram 80, or when multiple peaks are detected. Alternatively, whether to use the temperature histogram 80 or the cumulative histogram 81 may be preset in the temperature calculation circuit 250 .

次に、最適化装置1による処理手順を説明する。
図11は、レプリカ交換の全体制御例を示すフローチャートである。
(S1)全体制御部24は、外部から入力データとして初期温度を示す温度情報を受け取り、当該温度情報とともに起動信号を温度制御部22に出力する。
Next, a processing procedure by the optimization device 1 will be described.
FIG. 11 is a flowchart showing an example of overall control of replica exchange.
(S1) The overall control unit 24 receives temperature information indicating an initial temperature as input data from the outside, and outputs a start signal to the temperature control unit 22 together with the temperature information.

(S2)温度制御部22は、全体制御部24からの起動信号を受けて、探索部10a1~10aNの各々に温度情報および温度設定信号を出力することで、温度を設定し、探索部10a1~10aNの各々による確率的探索の処理を実行させる。探索部10a1~10aNの各々による処理(探索処理)の詳細は後述される。 (S2) The temperature control unit 22 receives the activation signal from the overall control unit 24, and outputs temperature information and a temperature setting signal to each of the search units 10a1 to 10aN to set the temperature. 10aN to perform a probabilistic search process. The details of the processing (search processing) by each of the search units 10a1 to 10aN will be described later.

(S3)温度調整部21は、探索部10a1~10aNの各々で規定の時間、又は規定のイタレーション数の確率的探索が実行されると、探索部10a1~10aNの各々で計算されたエネルギー値の取得を含むデータ収集処理を行う。データ収集処理の詳細は後述される。 (S3) When each of the search units 10a1 to 10aN executes the stochastic search for a specified time or a specified number of iterations, the temperature adjustment unit 21 adjusts the energy value calculated by each of the search units 10a1 to 10aN. Data collection processing including acquisition of Details of the data collection process will be described later.

(S4)探索部10a1~10aNは、隣接探索部毎のエネルギー値を温度制御部22に伝達する。温度制御部22は、探索部10a1~10aNで計算されたエネルギー値を、温度が隣接する探索部毎に取得する。 (S4) The search units 10a1 to 10aN transmit the energy value of each adjacent search unit to the temperature control unit 22. The temperature control unit 22 acquires the energy values calculated by the search units 10a1 to 10aN for each search unit having adjacent temperatures.

(S5)交換制御部23は、温度が隣接する探索部間でのエネルギー差を用いた式(5)に基づく交換確率により、温度の交換制御を行う。交換制御部23は、温度が隣接する探索部のペア毎に、温度の交換制御を行う。交換制御の詳細は後述される。 (S5) The exchange control unit 23 performs temperature exchange control based on the exchange probability based on the formula (5) using the energy difference between the search units with adjacent temperatures. The exchange control unit 23 performs temperature exchange control for each pair of search units having adjacent temperatures. The details of exchange control will be described later.

(S6)温度調整部21は、温度調整用のデータ取得期間内であるか否かを判定する。温度調整用のデータ取得期間内である場合、ステップS2に処理が進む。温度調整用のデータ取得期間内でない場合、ステップS7に処理が進む。 (S6) The temperature adjustment unit 21 determines whether it is within the data acquisition period for temperature adjustment. If it is within the data acquisition period for temperature adjustment, the process proceeds to step S2. If it is not within the data acquisition period for temperature adjustment, the process proceeds to step S7.

(S7)温度調整部21は、ステップS3のデータ収集処理の結果として生成される温度ヒストグラム80(または累積ヒストグラム81)に基づいて、式(6)、(7)で用いられる最高温度tmp_maxを計算する。温度調整部21は、計算した最高温度tmp_maxを用いて、式(6)、(7)に基づき、新規温度tmp[i]を計算する。温度調整部21は、計算した新規温度を示す新規温度情報と温度設定信号とを温度制御部22に出力する。温度制御部22は、温度調整部21により出力された新規温度情報と温度設定信号とを受け付け、温度制御部22が保持する前述の第1の対応情報における各温度インデックスに対応付けられた温度を更新する。 (S7) Based on the temperature histogram 80 (or cumulative histogram 81) generated as a result of the data collection process in step S3, the temperature adjustment unit 21 calculates the maximum temperature tmp_max used in equations (6) and (7). do. The temperature adjustment unit 21 uses the calculated maximum temperature tmp_max to calculate a new temperature tmp[i] based on equations (6) and (7). The temperature adjustment unit 21 outputs new temperature information indicating the calculated new temperature and a temperature setting signal to the temperature control unit 22 . The temperature control unit 22 receives the new temperature information and the temperature setting signal output by the temperature adjustment unit 21, and determines the temperature associated with each temperature index in the first correspondence information held by the temperature control unit 22. Update.

(S8)温度制御部22は、探索部10a1~10aNの各々に新規温度情報および温度設定信号を出力することで、温度を設定し、探索部10a1~10aNの各々による確率的探索(基底状態探索)の処理を実行させる。 (S8) The temperature control unit 22 outputs the new temperature information and the temperature setting signal to each of the search units 10a1 to 10aN to set the temperature, and the probabilistic search (ground state search) by each of the search units 10a1 to 10aN. ) is executed.

(S9)探索部10a1~10aNは、探索部10a1~10aNで規定の時間、又は規定のイタレーション数の確率的探索が実行されると、隣接探索部毎のエネルギー値を交換制御部23に伝達する。交換制御部23は、探索部10a1~10aNで計算されたエネルギー値を、温度が隣接する探索部毎に取得する。 (S9) The search units 10a1 to 10aN transmit the energy value of each adjacent search unit to the exchange control unit 23 when the search units 10a1 to 10aN execute the probabilistic search for a specified time or a specified number of iterations. do. The exchange control unit 23 acquires the energy values calculated by the search units 10a1 to 10aN for each search unit having adjacent temperatures.

(S10)交換制御部23は、温度が隣接する探索部間でのエネルギー差を用いた式(5)に基づく交換確率により、温度の交換制御を行う。交換制御部23は、温度が隣接する探索部のペア毎に、温度の交換制御を行う。 (S10) The exchange control unit 23 performs temperature exchange control based on the exchange probability based on the formula (5) using the energy difference between the search units with adjacent temperatures. The exchange control unit 23 performs temperature exchange control for each pair of search units having adjacent temperatures.

(S11)探索部10a1~10aNは、規定回数、最低温度の探索部におけるビットステートに変化がなくなったか否かを判定する。最低温度の探索部におけるビットステートに変化がなくなると、探索部10a1~10aNは、全体制御部24にビットステートを出力し、レプリカ交換の全体制御処理を終了する。最低温度の探索部におけるビットステートに変化がある場合、探索部10a1~10aNは、ステップS8に処理を進め、確率的探索の処理を継続する。 (S11) The search units 10a1 to 10aN determine whether or not there is no change in the bit state in the minimum temperature search units specified times. When there is no change in the bit state in the search unit with the lowest temperature, the search units 10a1 to 10aN output the bit state to the general control unit 24, and complete the overall control process of replica exchange. If there is a change in the bit state in the lowest temperature search unit, the search units 10a1 to 10aN advance the process to step S8 to continue the stochastic search process.

図12は、探索部処理例を示すフローチャートである。
探索部処理は、ステップS2,S8に相当する。
(S20)温度制御部22は、探索部10a1~10aNの各々に温度を設定する。例えば、温度制御部22は、前述の温度インデックスと温度とを対応付けた第1の対応情報および温度インデックスと探索部の識別情報とを対応付けた第2の対応情報に基づいて、探索部10a1~10aNの各々に温度を設定する。あるいは、温度制御部22は、前述のように、探索部の識別情報と温度とを対応付けた対応情報に基づいて、探索部10a1~10aNの各々に温度を設定してもよい。なお、探索部10a1~10aNの各々に設定される温度の初期値は、問題などに応じて予め定められる。
FIG. 12 is a flowchart illustrating an example of processing by the search unit.
The search unit process corresponds to steps S2 and S8.
(S20) The temperature control unit 22 sets the temperature for each of the searching units 10a1 to 10aN. For example, the temperature control unit 22 controls the search unit 10a1 based on the first correspondence information that associates the temperature index with the temperature and the second correspondence information that associates the temperature index with the identification information of the search unit. Set the temperature to each of ~10 aN. Alternatively, the temperature control unit 22 may set the temperature for each of the search units 10a1 to 10aN based on the correspondence information that associates the identification information of the search units with the temperatures, as described above. Note that the initial temperature values set in each of the search units 10a1 to 10aN are determined in advance according to the problem or the like.

(S21)探索部10a1~10aNの各々は、スピンビット毎にローカルフィールドhを計算する。例えば、探索部10a1に着目すると、h計算部12b1~12bnは、ローカルフィールドh~hを計算する。ローカルフィールドhは、式(10)に基づいて計算される。なお、式(10)によりローカルフィールドhが計算された後は、例えば、式(11)で示される差分δhをローカルフィールドhに加算することで、更新後のローカルフィールドh=h+δhを求めることができる。 (S21) Each of the search units 10a1 to 10aN calculates a local field h for each spin bit. For example, focusing on the search unit 10a1, the h calculation units 12b1 to 12bn calculate local fields h 1 to h n . The local field h is calculated based on equation (10). After the local field h is calculated by Equation (10), the updated local field h=h+δh can be obtained by, for example, adding the difference δh shown by Equation (11) to the local field h. can.

(S22)探索部10a1~10aNの各々は、計算したローカルフィールドhに基づいて、スピンビット毎にエネルギーの変化値ΔEを計算する。例えば、探索部10a1に着目すると、ΔE生成部12c1~12cnは、エネルギーの変化値ΔE1~ΔEnを計算する。ΔEは、式(9)に基づいて計算される。 (S22) Each of the search units 10a1 to 10aN calculates an energy change value ΔE for each spin bit based on the calculated local field h. For example, focusing on the searching unit 10a1, the ΔE generating units 12c1 to 12cn calculate energy change values ΔE1 to ΔEn. ΔE is calculated based on equation (9).

(S23)探索部10a1~10aNの各々は、エネルギーの変化値-ΔEにオフセット値Eoffを加算する。例えば、探索部10a1に着目すると、加算器13a1~13anは、-ΔE~-ΔEに対して、オフセット値Eoffを加算する。オフセット値Eoffは、前述のように、オフセット制御部13dにより制御される。例えば、オフセット制御部13dは、セレクタ部13cにより出力される遷移可否を示すフラグが遷移不可を示す場合に、0より大きいオフセット値Eoffを加算器13a1~13anに供給する。オフセット制御部13dは、当該フラグが遷移可を示す場合に、オフセット値Eoff=0を加算器13a1~13anに供給する。なお、オフセット値Eoffの初期値は0である。 (S23) Each of the search units 10a1 to 10aN adds the offset value Eoff to the energy change value -ΔE. For example, focusing on the search unit 10a1, the adders 13a1 to 13an add the offset value E off to -ΔE 1 to -ΔE n . The offset value Eoff is controlled by the offset controller 13d as described above. For example, the offset control unit 13d supplies an offset value E off greater than 0 to the adders 13a1 to 13an when the flag indicating whether transition is possible or not output by the selector unit 13c indicates that the transition is not possible. The offset control unit 13d supplies the offset value E off =0 to the adders 13a1 to 13an when the flag indicates that the transition is permitted. Note that the initial value of the offset value Eoff is zero.

(S24)探索部10a1~10aNの各々は、反転候補のスピンビットのうち、反転させるスピンビットを選択する。例えば、探索部10a1に着目すると、状態遷移判定回路13b1~13bnの各々は、該当の状態遷移判定回路に対応するスピンビットの遷移可否を示すフラグをセレクタ部13cに出力する。セレクタ部13cは、入力されたフラグの中から1つを選択し、選択したフラグと、選択したフラグに対応するスピンビットを示すindexとを出力する。 (S24) Each of the searching units 10a1 to 10aN selects a spin bit to be inverted among the spin bits of the inversion candidates. For example, focusing on the search unit 10a1, each of the state transition determination circuits 13b1 to 13bn outputs to the selector unit 13c a flag indicating whether or not the spin bit corresponding to the corresponding state transition determination circuit can be transitioned. The selector unit 13c selects one of the input flags and outputs the selected flag and an index indicating the spin bit corresponding to the selected flag.

(S25)探索部10a1~10aNの各々は、選択されたスピン(スピンビット)を反転させる。例えば、探索部10a1に着目すると、状態保持部11は、セレクタ部13cにより出力されたフラグと、indexとに基づいて、ビットステートに含まれるスピンビットのうち、indexで示されるスピンビットの値を更新する。 (S25) Each of the search units 10a1 to 10aN inverts the selected spin (spin bit). For example, focusing on the searching unit 10a1, the state holding unit 11 determines the value of the spin bit indicated by the index among the spin bits included in the bit state based on the flag output by the selector unit 13c and the index. Update.

(S26)探索部10a1~10aNの各々は、ステップS20の直後の確率的探索の開始時点から、規定のイタレーション回数に到達したか、または、規定時間が経過したか否かを判定する。規定のイタレーション回数に到達した、または、規定時間が経過した場合、ステップS27に処理が進む。規定のイタレーション回数に到達しておらず、かつ、規定時間も経過していない場合、ステップS21に処理が進む。 (S26) Each of the search units 10a1 to 10aN determines whether or not a specified number of iterations has been reached or a specified time has elapsed since the start of the probabilistic search immediately after step S20. If the prescribed number of iterations has been reached or the prescribed time has elapsed, the process proceeds to step S27. If the prescribed number of iterations has not been reached and the prescribed time has not elapsed, the process proceeds to step S21.

(S27)探索部10a1~10aNの各々は、該当の探索部におけるエネルギー値(E~E)を計算し、温度調整部21および温度制御部22に出力する。
上記のように、探索部10a1~10aNの各々は、温度値とエネルギーの変化値と乱数値とに基づいて、当該変化値と熱励起エネルギーとの相対関係によって複数の状態遷移の何れかを受け入れるか否かを確率的に決定する。当該決定の際、探索部10a1~10aNの各々の遷移制御部(例えば、遷移制御部13)は、エネルギー値の変化値に所定のオフセット値を加算する。これにより、局所解からの脱出が促進され、演算の高速化を図れる。
(S27) Each of the search units 10a1 to 10aN calculates the energy value (E 1 to E N ) in the corresponding search unit and outputs it to the temperature adjustment unit 21 and the temperature control unit 22.
As described above, each of the search units 10a1 to 10aN accepts one of a plurality of state transitions according to the relative relationship between the change value and the thermal excitation energy based on the temperature value, the change value of the energy, and the random value. Probabilistically determine whether or not At the time of the determination, each transition control unit (for example, transition control unit 13) of search units 10a1 to 10aN adds a predetermined offset value to the change value of the energy value. This facilitates the escape from the local solution and speeds up the computation.

図13は、データ収集処理例を示すフローチャートである。
データ収集処理は、ステップS3に相当する。以下では、温度調整部21による探索部10a1に対する手順を説明するが、探索部10a2~10aNに対しても同様の手順となる。下記のステップS31~S34は、探索部10a1~10aNの各々に対して実行される。ステップS34の温度ヒストグラム80は、探索部10a1~10aNに対して1つ計算される。
FIG. 13 is a flowchart illustrating an example of data collection processing.
The data collection process corresponds to step S3. Although the procedure for the search unit 10a1 by the temperature adjustment unit 21 will be described below, the same procedure is applied to the search units 10a2 to 10aN. Steps S31 to S34 below are executed for each of the search units 10a1 to 10aN. One temperature histogram 80 in step S34 is calculated for each of the search units 10a1 to 10aN.

(S30)最低エネルギー更新確認回路220は、データ収集タイミングであるか否かを判定する。データ収集タイミングである場合、ステップS31に処理が進む。データ収集タイミングでない場合、データ収集処理が終了する。ここで、データ収集タイミングは、探索部10a1~10aNの探索処理(図12の手順)の完了毎のタイミングでもよいし、当該探索処理の複数回の完了毎のタイミングでもよい。データ収集タイミングをどのようなタイミングとするかは、温度調整部21に対して予め設定される。 (S30) The minimum energy update confirmation circuit 220 determines whether or not it is time to collect data. If it is the data collection timing, the process proceeds to step S31. If it is not the data collection timing, the data collection process ends. Here, the data collection timing may be the timing each time the search processing (procedure in FIG. 12) of the search units 10a1 to 10aN is completed, or the timing each time the search processing is completed a plurality of times. The data collection timing is set in advance for the temperature adjustment unit 21 .

(S31)最低エネルギー更新確認回路220は、探索部10a1からエネルギーEを取得する。最低エネルギー更新確認回路220は、レジスタ210に格納された探索部10a1の最低エネルギーと、取得したエネルギーEとを比較し、最低エネルギーが更新されたか否かを判定する。探索部10a1に関して最低エネルギーが更新された場合とは、探索部10a1から取得したエネルギーEがレジスタ210に格納された探索部10a1の最低エネルギーよりも低い場合である。最低エネルギーが更新された場合、最低エネルギー更新確認回路220は、レジスタ210に格納された探索部10a1の最低エネルギーの記録を、探索部10a1から今回取得されたエネルギーEに更新し、ステップS34に処理が進む。最低エネルギーが更新されていない場合、ステップS32に処理が進む。 (S31) The minimum energy update confirmation circuit 220 acquires the energy E1 from the search section 10a1. The minimum energy update confirmation circuit 220 compares the minimum energy of the searching unit 10a1 stored in the register 210 with the obtained energy E1, and determines whether or not the minimum energy has been updated. A case where the minimum energy of the searching section 10a1 is updated is a case where the energy E1 acquired from the searching section 10a1 is lower than the lowest energy of the searching section 10a1 stored in the register 210. FIG. When the minimum energy is updated, the minimum energy update confirmation circuit 220 updates the record of the minimum energy of the searching unit 10a1 stored in the register 210 to the energy E1 obtained this time from the searching unit 10a1, and proceeds to step S34. Processing proceeds. If the minimum energy has not been updated, the process proceeds to step S32.

(S32)最高温度更新確認回路230は、温度制御部22から探索部10a1に設定されている温度を取得し、レジスタ210に格納されている探索部10a1に対する最高温度が更新されたか否かを判定する。探索部10a1に関して最高温度が更新された場合とは、探索部10a1に設定されている温度が、レジスタ210に格納されている探索部10a1に対する最高温度よりも高い場合である。最高温度が更新された場合、ステップS33に処理が進む。最高温度が更新されていない場合、探索部10a1に関するデータ収集処理が終了する。 (S32) The maximum temperature update confirmation circuit 230 acquires the temperature set in the search unit 10a1 from the temperature control unit 22, and determines whether or not the maximum temperature for the search unit 10a1 stored in the register 210 has been updated. do. A case where the maximum temperature of search section 10a1 is updated is a case where the temperature set in search section 10a1 is higher than the maximum temperature stored in register 210 for search section 10a1. If the maximum temperature has been updated, the process proceeds to step S33. If the maximum temperature has not been updated, the data collection process for the search unit 10a1 ends.

(S33)最高温度更新確認回路230は、レジスタ210に格納された探索部10a1の最高温度の記録を、温度制御部22から取得される、探索部10a1に現在設定されている温度に更新する。そして、探索部10a1に関するデータ収集処理が終了する。 (S33) The maximum temperature update confirmation circuit 230 updates the record of the maximum temperature of the search unit 10a1 stored in the register 210 to the temperature currently set in the search unit 10a1 obtained from the temperature control unit 22. Then, the data collection process for the search unit 10a1 ends.

(S34)温度ヒストグラム計算回路240は、レジスタ210から探索部10a1に対応する最高温度を読み出し、温度ヒストグラム80における当該最高温度の度数(頻度)に1を加算する。なお、前述のように、温度ヒストグラム80は、探索部10a1~10aNに対して1つ生成される。また、最高温度更新確認回路230は、レジスタ210に格納された探索部10a1の最高温度の記録を、温度制御部22から取得される、探索部10a1に現在設定されている温度に更新する。そして、探索部10a1に関するデータ収集処理が終了する。 (S34) The temperature histogram calculation circuit 240 reads out the maximum temperature corresponding to the search unit 10a1 from the register 210, and adds 1 to the frequency (frequency) of the maximum temperature in the temperature histogram 80. As described above, one temperature histogram 80 is generated for each of the search units 10a1 to 10aN. Also, the maximum temperature update confirmation circuit 230 updates the record of the maximum temperature of the search unit 10a1 stored in the register 210 to the temperature currently set in the search unit 10a1 obtained from the temperature control unit 22. FIG. Then, the data collection process for the search unit 10a1 ends.

なお、温度調整部21は、ステップS31~S34の処理を、探索部10a1~10aNの各々に対して並列に実行してもよい。あるいは、温度調整部21は、探索部10a1~10aNの中から何れか1つを順番に選択して、ステップS31~S34の処理を繰り返して実行してもよい。 Note that the temperature adjustment unit 21 may execute the processing of steps S31 to S34 in parallel for each of the search units 10a1 to 10aN. Alternatively, the temperature adjusting section 21 may sequentially select one of the searching sections 10a1 to 10aN and repeat the processes of steps S31 to S34.

図14は、交換制御例を示すフローチャートである。
交換制御は、ステップS5,S10に相当する。
(S40)交換制御部23は、偶数番目の探索部に関し、式(5)で示される交換確率に基づいて、隣接する上位(又は下位)温度の探索部と温度を交換するか否かを判定する。温度の交換の判定は、探索部のペア毎に行われる。式(5)の関数fには、式(2)のメトロポリス法の関数、または、式(3)のギブス法の関数が用いられる。温度を交換すると判定された探索部のペアがある場合、ステップS41に処理が進む。温度を交換すると判定された探索部のペアがない場合、ステップS42に処理が進む。
FIG. 14 is a flowchart showing an example of exchange control.
Exchange control corresponds to steps S5 and S10.
(S40) The exchange control unit 23 determines whether or not to exchange the temperature with the adjacent higher (or lower) temperature search unit for the even-numbered search unit, based on the exchange probability shown in equation (5). do. The determination of temperature exchange is performed for each pair of search units. The function f of the equation (5) uses the function of the Metropolis method of the equation (2) or the function of the Gibbs method of the equation (3). If there is a pair of search units determined to exchange temperatures, the process proceeds to step S41. If there is no pair of search units determined to exchange temperatures, the process proceeds to step S42.

(S41)交換制御部23は、ステップS40で温度を交換すると判定された探索部のペアについて、温度を交換する。交換制御部23は、温度の交換に応じて、交換制御部23が保持する前述の第2の対応情報を更新する。 (S41) The exchange control unit 23 exchanges temperatures for the pair of search units determined to exchange temperatures in step S40. The exchange control unit 23 updates the above-described second correspondence information held by the exchange control unit 23 according to the temperature exchange.

(S42)交換制御部23は、奇数番目の探索部に関し、式(5)で示される交換確率に基づいて、隣接する上位(又は下位)温度の探索部と温度を交換するか否かを判定する。温度の交換の判定は、探索部のペア毎に行われる。式(5)の関数fには、式(2)のメトロポリス法の関数、または、式(3)のギブス法の関数が用いられる。また、交換制御部23は、ステップS40において、偶数番目の探索部について上位温度の探索部と温度を交換するか否かを判定した場合、ステップS42では奇数番目の探索部について上位温度の探索部と温度を交換するか否かを判定する。交換制御部23は、ステップS40において、偶数番目の探索部について下位温度の探索部と温度を交換するか否かを判定した場合、ステップS42では奇数番目の探索部について下位温度の探索部と温度を交換するか否かを判定する。温度を交換すると判定された探索部のペアがある場合、ステップS43に処理が進む。温度を交換すると判定された探索部のペアがない場合、交換制御が終了する。 (S42) The exchange control unit 23 determines whether or not to exchange the temperature with an adjacent higher (or lower) temperature search unit for the odd-numbered search units, based on the exchange probability shown in Equation (5). do. The determination of temperature exchange is performed for each pair of search units. The function f of the equation (5) uses the function of the Metropolis method of the equation (2) or the function of the Gibbs method of the equation (3). If the exchange control unit 23 determines in step S40 whether or not to exchange the temperature of the even-numbered search unit with the higher temperature search unit, in step S42, the odd-numbered search unit of the higher temperature. determines whether to exchange the temperature with When the exchange control unit 23 determines in step S40 whether or not to exchange the temperature of the even-numbered search unit with the lower temperature search unit, in step S42, the temperature of the odd-numbered search unit is changed to the lower temperature search unit. determines whether or not to replace the If there is a pair of search units determined to exchange temperatures, the process proceeds to step S43. If there is no pair of search units determined to exchange temperatures, the exchange control ends.

(S43)交換制御部23は、ステップS42で温度を交換すると判定された探索部のペアについて、温度を交換する。交換制御部23は、温度の交換に応じて、交換制御部23が保持する第2の対応情報を更新する。そして、交換制御が終了する。 (S43) The exchange control unit 23 exchanges temperatures for the pair of search units determined to exchange temperatures in step S42. The exchange control unit 23 updates the second correspondence information held by the exchange control unit 23 according to the temperature exchange. Then, the exchange control ends.

なお、上記の例では、偶数番目の探索部の次に奇数番目の探索部に着目して、温度の交換制御を行うものとしたが、奇数番目の探索部の次に偶数番目の探索部に着目して、温度の交換制御を行ってもよい。すなわち、ステップS42,S43の後に、ステップS40,S41を実行してもよい。 In the above example, the temperature exchange control is performed by focusing on the odd-numbered search unit next to the even-numbered search unit. You may pay attention and perform exchange control of temperature. That is, steps S40 and S41 may be executed after steps S42 and S43.

次に、最適化装置1による処理の流れの例を説明する。以下では、CPUによるソフトウェア処理で温度調整を行う場合と、温度調整部21で示されるハードウェア処理で温度調整を行う場合とを例示する。 Next, an example of the flow of processing by the optimization device 1 will be described. Below, the case where temperature adjustment is performed by software processing by the CPU and the case where temperature adjustment is performed by hardware processing indicated by the temperature adjustment unit 21 will be exemplified.

まず、CPUによるソフトウェア処理で温度調整を行う場合を例示する。この場合、例えば、温度調整部21の機能は、CPUにより実行されるソフトウェアの機能として最適化装置1に実装される。また、温度制御部22(交換制御部23を含む)の機能は、ハードウェアとしてだけでなく、CPUにより実行されるソフトウェアの機能としても、最適化装置1に実装される。そして、図11のステップS3~S7は、CPUにより実行されるソフトウェア処理として実行され、図11のステップS2,S8~S11は、ハードウェア処理として実行される。 First, a case where temperature adjustment is performed by software processing by a CPU will be exemplified. In this case, for example, the function of the temperature adjustment unit 21 is implemented in the optimization device 1 as a function of software executed by the CPU. Also, the functions of the temperature control unit 22 (including the exchange control unit 23) are implemented in the optimization device 1 not only as hardware, but also as software functions executed by the CPU. Steps S3 to S7 in FIG. 11 are executed as software processing executed by the CPU, and steps S2 and S8 to S11 in FIG. 11 are executed as hardware processing.

図15は、処理の流れの例(その1)を示す図である。
図15の横軸は、イタレーション回数(又は時間)を示し、左側から右側へ向かう方向が正方向である。
FIG. 15 is a diagram illustrating an example (part 1) of the flow of processing.
The horizontal axis in FIG. 15 indicates the number of iterations (or time), and the direction from left to right is the positive direction.

CPUによるデータ取得期間は、HW(Hardware)起動単位の期間t11,t12,t13,t14を含む。HW起動単位の期間とは、探索部10a1~10aNを起動して、探索処理(基底状態探索)を実行させる単位期間である。温度調整後の確率的探索を行う期間(コアインターバル)は、HW起動単位の期間t15を含む。図中、「X」印は、レプリカ交換(すなわち、温度交換)を行うタイミングを示す。CPUによるデータ取得は、データ取得期間におけるレプリカ交換の直前に行われる。 The data acquisition period by the CPU includes periods t11, t12, t13, and t14 in units of HW (Hardware) activation. The HW activation unit period is a unit period during which the search units 10a1 to 10aN are activated to execute the search process (base state search). The period (core interval) during which the probabilistic search is performed after temperature adjustment includes the period t15 in units of HW activation. In the figure, the "X" mark indicates the timing of replica exchange (that is, temperature exchange). Data acquisition by the CPU is performed immediately before replica exchange during the data acquisition period.

例えば、CPUは、期間t11の完了直後に、探索部10a1~10aNにおけるエネルギー(最低エネルギーが更新されていない場合は温度も)を取得する。CPUは、最低エネルギーの更新に応じて、温度ヒストグラム80を作成する。その後、CPUによりレプリカ交換(温度の交換制御)が行われる。そして、次の期間t12における探索部10a1~10aNによる確率的探索が行われる。こうして、データ取得期間において、期間t11,t12,t13,t14の各々の直後に、CPUにより探索部10a1~10aNに関するデータ取得および温度ヒストグラム80の作成が行われる。データ取得期間が完了すると、CPUにより、温度ヒストグラム80に基づいて、新規温度tmp[i]が決定される。なお、データ取得期間の長さは、CPUが実行するソフトウェアに対して予め設定される(例えば、確率的探索のための総イタレーション数が定められる場合、総イタレーション数の1%程度とするなど)。 For example, the CPU acquires the energy (and the temperature if the lowest energy is not updated) in the search units 10a1 to 10aN immediately after the period t11 is completed. The CPU creates a temperature histogram 80 in response to the updated minimum energy. After that, the CPU performs replica exchange (temperature exchange control). Then, the probabilistic search is performed by the search units 10a1 to 10aN in the next period t12. Thus, in the data acquisition period, immediately after each of the periods t11, t12, t13, and t14, the CPU acquires data and creates the temperature histogram 80 for the search units 10a1 to 10aN. Upon completion of the data acquisition period, the CPU determines a new temperature tmp[i] based on temperature histogram 80 . The length of the data acquisition period is set in advance for the software executed by the CPU (for example, when the total number of iterations for stochastic search is determined, it is set to about 1% of the total number of iterations). Such).

そして、新規温度tmp[i]を用いて、コアインターバルの期間t15が開始される。コアインターバルでは、CPUが処理に介入せず、探索部10a1~10aNおよびハードウェアで実装された温度制御部22(交換制御部23を含む)によって、確率的探索およびレプリカ交換が実行される。このため、コアインターバルの期間は、HW起動単位の期間t15に相当する。 The new temperature tmp[i] is then used to start the core interval period t15. In the core interval, the probabilistic search and replica exchange are executed by the search units 10a1 to 10aN and the hardware-implemented temperature control unit 22 (including the exchange control unit 23) without the CPU intervening in the processing. Therefore, the period of the core interval corresponds to the period t15 of the HW activation unit.

なお、上記の例では、探索部10a1~10aNによる確率的探索の全期間の初めのデータ取得期間後は、調整後の温度を変えずに確率的探索を実行する。一方、データ取得期間を定期的に設けて、CPUはデータ取得および取得したデータに基づく温度決定を繰り返し実行し、その都度、探索部10a1~10aNに設定する温度を変更してもよい。 In the above example, after the first data acquisition period of the entire period of the stochastic search by the search units 10a1 to 10aN, the stochastic search is executed without changing the adjusted temperature. On the other hand, a data acquisition period may be provided periodically, the CPU repeatedly executes data acquisition and temperature determination based on the acquired data, and changes the temperatures set in the search units 10a1 to 10aN each time.

次に、ハードウェア処理で温度調整を行う場合の処理の流れを説明する。
図16は、処理の流れの例(その2)を示す図である。
図16の横軸は、イタレーション回数(又は時間)を示し、左側から右側へ向かう方向が正方向である。
Next, the flow of processing when temperature adjustment is performed by hardware processing will be described.
FIG. 16 is a diagram illustrating an example (2) of the flow of processing.
The horizontal axis in FIG. 16 indicates the number of iterations (or time), and the direction from left to right is the positive direction.

温度調整をハードウェア処理で行う場合、データ取得期間およびコアインターバルを含む全期間が、HW起動単位の期間となる。
温度調整部21によるデータ取得期間は、単位期間t21,t22,t23,t24を含む。期間t25は、コアインターバルである。また、図中、「X」印は、レプリカ交換(すなわち、温度交換)を行うタイミングを示す。温度調整部21によるデータ取得は、データ取得期間におけるレプリカ交換の直前に行われる。
When temperature adjustment is performed by hardware processing, the entire period including the data acquisition period and the core interval is the HW activation unit period.
The data acquisition period by the temperature adjustment unit 21 includes unit periods t21, t22, t23, and t24. A period t25 is a core interval. In the figure, the "X" mark indicates the timing of replica exchange (that is, temperature exchange). Data acquisition by the temperature adjustment unit 21 is performed immediately before replica exchange during the data acquisition period.

例えば、温度調整部21は、期間t21の完了直後に、探索部10a1~10aNにおけるエネルギー(最低エネルギーが更新されていない場合は温度も)を取得する。温度調整部21は、最低エネルギーの更新に応じて、温度ヒストグラム80を作成する。その後、交換制御部23によりレプリカ交換(温度の交換制御)が行われる。そして、次の期間t22における探索部10a1~10aNによる確率的探索が行われる。こうして、データ取得期間において、期間t21,t22,t23,t24の各々の直後に、温度調整部21により探索部10a1~10aNに関するデータ取得および温度ヒストグラム80の作成が行われる。データ取得期間が完了すると、温度調整部21により、温度ヒストグラム80に基づいて、新規温度tmp[i]が決定される。 For example, the temperature adjuster 21 acquires the energy (and the temperature if the lowest energy is not updated) in the searchers 10a1 to 10aN immediately after the period t21 is completed. The temperature adjuster 21 creates a temperature histogram 80 according to the update of the minimum energy. Thereafter, the exchange control unit 23 performs replica exchange (temperature exchange control). Then, the probabilistic search is performed by the search units 10a1 to 10aN in the next period t22. Thus, in the data acquisition period, immediately after each of the periods t21, t22, t23, and t24, the temperature adjuster 21 acquires data and creates the temperature histogram 80 for the searchers 10a1 to 10aN. When the data acquisition period is completed, the temperature adjuster 21 determines a new temperature tmp[i] based on the temperature histogram 80 .

なお、データ取得期間の長さは、温度調整部21に対して予め設定される(例えば、確率的探索のための総イタレーション数が定められる場合、総イタレーション数の1%程度とするなど)。そして、新規温度tmp[i]を用いて、コアインターバルの期間t25が開始される。 Note that the length of the data acquisition period is set in advance for the temperature adjustment unit 21 (for example, when the total number of iterations for stochastic search is determined, it is set to about 1% of the total number of iterations, etc.). ). Then, using the new temperature tmp[i], the core interval period t25 is started.

なお、上記の例では、探索部10a1~10aNによる確率的探索の全期間の初めのデータ取得期間後は、調整後の温度を変えずに確率的探索を実行する。一方、データ取得期間を定期的に設けて、温度調整部21は、データ取得および取得したデータに基づく温度決定を繰り返し実行し、その都度、探索部10a1~10aNに設定する温度を変更してもよい。 In the above example, after the first data acquisition period of the entire period of the stochastic search by the search units 10a1 to 10aN, the stochastic search is executed without changing the adjusted temperature. On the other hand, a data acquisition period is provided periodically, and the temperature adjustment unit 21 repeatedly executes data acquisition and temperature determination based on the acquired data, and changes the temperatures set in the search units 10a1 to 10aN each time. good.

最適化装置1によれば、探索部10a1~10aNに設定する温度を適切に決定できる。具体的には、データ取得期間における最低エネルギーの更新、および、設定された最高温度の統計情報に基づいて、新規温度tmp[i]の最高値を決定することで、各探索部に設定する温度が高過ぎたり、低過ぎたりすることを抑えられる。このため、最適化装置1における解精度を向上させることができる。また、解精度の向上により、より早く適切な解に到達する可能性を高められ、演算の高速化を図れる。 According to the optimization device 1, the temperatures to be set in the search units 10a1 to 10aN can be appropriately determined. Specifically, the maximum value of the new temperature tmp[i] is determined based on the update of the minimum energy in the data acquisition period and the statistical information of the set maximum temperature, and the temperature set for each search unit can be prevented from being too high or too low. Therefore, the solution accuracy in the optimization device 1 can be improved. In addition, by improving the solution accuracy, it is possible to increase the possibility of reaching an appropriate solution more quickly, and to speed up the calculation.

また、適切な最高温度(tmp_maxに相当する温度)を決定するために、最適化装置1による最適化処理を繰り返し実行して、ユーザが手作業で調整することも考えられるが、この作業には膨大な手間がかかる。一方、上記のように、温度の統計情報に基づいて、最高温度tmp_maxを決定することで、ユーザ作業による温度調整の手間を軽減できる。 Also, in order to determine an appropriate maximum temperature (temperature corresponding to tmp_max), it is conceivable that the optimization process by the optimization device 1 is repeatedly executed and the user manually adjusts. It takes a lot of work. On the other hand, by determining the maximum temperature tmp_max based on the temperature statistical information as described above, it is possible to reduce the trouble of temperature adjustment by the user.

なお、温度調整をハードウェア処理で行う場合、ソフトウェア処理で行う場合に比べて、CPUに対するデータ出力やCPUからのデータ入力に伴うオーバヘッドを軽減できるため、演算が高速化される。 When the temperature adjustment is performed by hardware processing, the overhead associated with data output to and input from the CPU can be reduced compared to when the temperature adjustment is performed by software processing, thereby speeding up the calculation.

ここで、最適化装置1のハードウェア構成として、次の例も考えられる。
図17は、最適化装置の他のハードウェア例を示す図である。
最適化装置1aは、CPU101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、NIC(Network Interface Card)104、出力IF(Interface)105、入力IF106、媒体リーダ107および確率的探索部108を有する。
Here, as the hardware configuration of the optimization device 1, the following example is also conceivable.
FIG. 17 is a diagram showing another hardware example of the optimization device.
The optimization device 1a includes a CPU 101, a RAM (Random Access Memory) 102, a HDD (Hard Disk Drive) 103, a NIC (Network Interface Card) 104, an output IF (Interface) 105, an input IF 106, a medium reader 107, and a probabilistic search unit. 108.

CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、最適化装置1aは複数のプロセッサを有してもよい。複数のプロセッサの集合を「マルチプロセッサ」又は単に「プロセッサ」と言うことがある。CPU101は、例えば、全体制御部24として機能させることができる。また、前述のように、制御部20(すなわち、温度調整部21、温度制御部22および交換制御部23)の機能をCPU101により実行されるソフトウェア(制御プログラム)の処理で実現することもできる。 The CPU 101 is a processor that executes program instructions. The CPU 101 loads at least part of the programs and data stored in the HDD 103 into the RAM 102 and executes the programs. Note that the CPU 101 may include multiple processor cores. Also, the optimization device 1a may have a plurality of processors. A collection of multiple processors is sometimes called a "multiprocessor" or simply a "processor." The CPU 101 can function as an overall control unit 24, for example. Further, as described above, the functions of the control unit 20 (that is, the temperature adjustment unit 21, the temperature control unit 22, and the replacement control unit 23) can be realized by processing software (control program) executed by the CPU 101.

RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、最適化装置1aは、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。 The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 101 and data used by the CPU 101 for calculation. Note that the optimization device 1a may be provided with a type of memory other than the RAM, and may be provided with a plurality of memories.

HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、最適化装置1aは、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。 The HDD 103 is a nonvolatile storage device that stores an OS (Operating System), software programs such as middleware and application software, and data. Note that the optimization device 1a may include other types of storage devices such as flash memory and SSD (Solid State Drive), or may include a plurality of nonvolatile storage devices.

NIC104は、ネットワーク40に接続され、ネットワーク40を介して他のコンピュータと通信を行うインタフェースである。NIC104は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。 The NIC 104 is an interface that is connected to the network 40 and communicates with other computers via the network 40 . The NIC 104 is, for example, connected to a communication device such as a switch or router by a cable.

出力IF105は、CPU101からの命令に従って、最適化装置1aに接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。 The output IF 105 outputs an image to the display 41 connected to the optimization device 1a according to instructions from the CPU 101 . As the display 41, any type of display can be used, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.

入力IF106は、最適化装置1aに接続された入力デバイス42から入力信号を取得し、CPU101に出力する。入力デバイス42としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、最適化装置1aに、複数の種類の入力デバイスが接続されていてもよい。 The input IF 106 acquires an input signal from the input device 42 connected to the optimization device 1 a and outputs it to the CPU 101 . As the input device 42, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, or the like can be used. Moreover, a plurality of types of input devices may be connected to the optimization apparatus 1a.

媒体リーダ107は、記録媒体43に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体43として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。 The medium reader 107 is a reading device that reads programs and data recorded on the recording medium 43 . As the recording medium 43, for example, a magnetic disk, an optical disk, a magneto-optical disk (MO), a semiconductor memory, or the like can be used. Magnetic disks include flexible disks (FDs) and HDDs. Optical discs include CDs (Compact Discs) and DVDs (Digital Versatile Discs).

媒体リーダ107は、例えば、記録媒体43から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体43は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体43やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。 The medium reader 107 copies, for example, programs and data read from the recording medium 43 to other recording media such as the RAM 102 and the HDD 103 . The read program is executed by the CPU 101, for example. Note that the recording medium 43 may be a portable recording medium, and may be used for distribution of programs and data. Also, the recording medium 43 and the HDD 103 may be referred to as a computer-readable recording medium.

確率的探索部108は、レプリカ交換の方法により、組合せ最適化問題に対する演算をハードウェアにより行うアクセラレータである。確率的探索部108は、探索部10a1~10aN、温度調整部21、温度制御部22および交換制御部23を有し、前述の図11~図14の手順により、イジングモデルの基底状態を探索する確率的探索を行う。 The probabilistic search unit 108 is an accelerator that uses hardware to perform computations for combinatorial optimization problems by the method of replica exchange. The probabilistic search unit 108 has search units 10a1 to 10aN, a temperature adjustment unit 21, a temperature control unit 22, and an exchange control unit 23, and searches for the ground state of the Ising model according to the procedures in FIGS. 11 to 14 described above. Perform a probabilistic search.

上記の最適化装置1aにより、最適化装置1と同様の機能を実現することができる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
Functions similar to those of the optimization device 1 can be realized by the optimization device 1a.
[Second embodiment]
Next, a second embodiment will be described.

第2の実施の形態では、探索部10a1~10aNにおける複数の状態変数の値(スピンビット列)を交換する点が、第1の実施の形態で説明した図2以降の構成と異なる。第2の実施の形態では、探索部10a1~10aNに設定される温度は、温度調整が行われない限り、一定である。例えば、探索部10a1~10aNに対して、昇順、または、降順に温度が設定される。 The second embodiment differs from the configuration shown in FIG. 2 and subsequent figures described in the first embodiment in that the values of a plurality of state variables (spin bit strings) are exchanged in the search units 10a1 to 10aN. In the second embodiment, the temperatures set in the search units 10a1 to 10aN are constant unless temperature adjustment is performed. For example, the temperatures are set in ascending order or descending order for the search units 10a1 to 10aN.

図18は、第2の実施の形態の最適化装置の回路構成例を示す図である。
最適化装置2は、例えば、FPGAなどの半導体集積回路を用いて実現される。最適化装置2は、探索部10a1~10aN、温度調整部21a、状態制御部23aおよび全体制御部24aを有する。
FIG. 18 is a diagram illustrating a circuit configuration example of an optimization device according to the second embodiment.
The optimization device 2 is implemented using, for example, a semiconductor integrated circuit such as FPGA. The optimization device 2 has search units 10a1 to 10aN, a temperature adjustment unit 21a, a state control unit 23a, and an overall control unit 24a.

探索部10a1~10aNは、図2で例示した探索部10a1~10aNと同様の回路構成であるため、説明を省略する。
ただし、第2の実施の形態では、各探索部の状態保持部に対して、状態制御部23aによりビットステート(スピンビット列)およびビットステートの識別情報であるレプリカ番号が設定される。探索部10a1~10aNの数は、N個なので、最適化装置2におけるビットステートの総数もN個である。また、各探索部のh計算部に対して、状態制御部23aにより、ローカルフィールドが設定される。
The search units 10a1 to 10aN have the same circuit configuration as the search units 10a1 to 10aN exemplified in FIG. 2, so description thereof will be omitted.
However, in the second embodiment, the bit state (spin bit string) and the replica number, which is the bit state identification information, are set by the state control unit 23a to the state holding unit of each search unit. Since the number of search units 10a1 to 10aN is N, the total number of bit states in the optimization device 2 is also N. Also, a local field is set by the state control unit 23a for the h calculation unit of each search unit.

また、各探索部のE計算部は、温度調整部21aおよび状態制御部23aに対して、エネルギーEを出力する。各探索部のE計算部は、エネルギーEとともに、各探索部に設定されたレプリカ番号を温度調整部21aに出力する。例えば、図18では、探索部10a1からレプリカ番号「rep_1」が出力され、探索部10a2からレプリカ番号「rep_2」が出力され、探索部10aNからレプリカ番号「rep_N」が出力される場合が例示されている。 Also, the E calculator of each search unit outputs the energy E to the temperature adjuster 21a and the state controller 23a. The E calculator of each search unit outputs the energy E and the replica number set in each search unit to the temperature adjustment unit 21a. For example, FIG. 18 illustrates a case where the replica number “rep_1” is output from the searching unit 10a1, the replica number “rep_2” is output from the searching unit 10a2, and the replica number “rep_N” is output from the searching unit 10aN. there is

更に、状態保持部11は、状態制御部23aに対して、ビットステートとh計算部12b1~12bnに設定されたローカルフィールド(図中、LF(Local Field)と略記することがある)とを出力する。 Furthermore, the state holding unit 11 outputs the bit state and the local field (sometimes abbreviated as LF (Local Field) in the figure) set in the h calculation units 12b1 to 12bn to the state control unit 23a. do.

温度調整部21aは、探索部10a1~10aNの各々から出力されるエネルギー値とレプリカ番号とを受け付ける。温度調整部21aは、探索部10a1~10aNの各々に設定されている温度を取得する。図18では、探索部10a1に温度T、探索部10a2に温度T、…、探索部10aNに温度Tが設定されている例が示されている。温度調整部21aは、エネルギー値の変化とビットステートに対応する温度の変化とに応じて、探索部10a1~10aNの各々に設定する新規温度を示す新規温度情報を決定する。温度調整部21aは、決定した新規温度情報と、新規温度の設定信号(T set sig.)を、図示を省略している温度制御部を介して、探索部10a1~10aNに出力する。新規温度情報は、各探索部の状態遷移判定回路(例えば、状態遷移判定回路13b1~13bn)に設定される。 Temperature adjustment unit 21a receives energy values and replica numbers output from search units 10a1 to 10aN. The temperature adjuster 21a obtains the temperature set in each of the searchers 10a1 to 10aN. FIG. 18 shows an example in which the temperature T 1 is set for the searching unit 10a1, the temperature T 2 is set for the searching unit 10a2, . . . , and the temperature TN is set for the searching unit 10aN. The temperature adjuster 21a determines new temperature information indicating a new temperature to be set in each of the searchers 10a1 to 10aN in accordance with the change in energy value and the change in temperature corresponding to the bit state. The temperature adjustment unit 21a outputs the determined new temperature information and the new temperature setting signal (T set sig.) to the search units 10a1 to 10aN via a temperature control unit (not shown). The new temperature information is set in the state transition determination circuit (for example, state transition determination circuits 13b1 to 13bn) of each search unit.

状態制御部23aは、探索部10a1~10aNにおけるステート(ビットステートとローカルフィールドとを含む)の交換制御を行う。状態制御部23aは、交換制御部23の一例である。 The state control unit 23a performs exchange control of states (including bit states and local fields) in the search units 10a1 to 10aN. The state control unit 23 a is an example of the replacement control unit 23 .

状態制御部23aは、ビットステートと、ビットステートの設定信号(BS set sig.)とを探索部10a1~10aNの各々が有する状態保持部に供給する。ビットステートの設定信号は、ビットステートに対応するレプリカ番号を含む。また、状態制御部23aは、ローカルフィールドとローカルフィールドの設定信号(LF set sig.)とを探索部10a1~10aNの各々が有するh計算部に供給する。 The state control unit 23a supplies the bit state and the bit state setting signal (BS set sig.) to the state holding unit of each of the searching units 10a1 to 10aN. The bit state setting signal includes a replica number corresponding to the bit state. Further, the state control unit 23a supplies the local field and the local field setting signal (LF set sig.) to the h calculation unit included in each of the search units 10a1 to 10aN.

状態制御部23aは、式(5)の交換確率に基づいて、温度が隣接する2つの探索部のペアに関し、ステートの交換を行うか否かを判定する。状態制御部23aは、交換後のビットステートおよびローカルフィールドを、各探索部に供給する。 The state control unit 23a determines whether or not to exchange states for pairs of two search units having adjacent temperatures, based on the exchange probability of Equation (5). The state control unit 23a supplies the exchanged bit state and local field to each search unit.

例えば、状態制御部23aは、温度インデックスと温度とを対応付けた第1の対応情報を、状態制御部23aが有するレジスタに保持する。例えば、温度インデックスは、温度の昇順に温度に対応付けられる(温度インデックスが大きいほど温度も高い)。第2の実施の形態では、温度インデックスは、探索部の識別情報でもある。更に、状態制御部23aは、例えば、温度の昇順に配列された温度インデックスとビットステートの識別番号(レプリカ番号)とを対応付けた第3の対応情報を、状態制御部23aが有するレジスタに保持する。状態制御部23aは、第1の対応情報および第3の対応情報に基づいて、探索部10a1~10aNに対するステートの交換を制御し、交換に応じて、第3の対応情報を更新する。第2の対応情報において温度インデックスが隣接する探索部のペアに対して、ステートの交換が行われ得る。状態制御部23aは、第3の対応情報に基づいて、探索部10a1~10aNにビットステートおよびローカルフィールドを供給する。 For example, the state control unit 23a holds first correspondence information that associates temperature indexes with temperatures in a register of the state control unit 23a. For example, temperature indices are associated with temperatures in ascending order of temperature (the higher the temperature index, the higher the temperature). In the second embodiment, the temperature index is also identification information for the search unit. Further, the state control unit 23a holds, for example, third correspondence information in which temperature indexes arranged in ascending order of temperature are associated with identification numbers (replica numbers) of bit states in a register of the state control unit 23a. do. The state control unit 23a controls state exchange for the search units 10a1 to 10aN based on the first correspondence information and the third correspondence information, and updates the third correspondence information according to the exchange. State exchange may be performed for pairs of search units having adjacent temperature indices in the second correspondence information. The state control unit 23a supplies bit states and local fields to the search units 10a1 to 10aN based on the third correspondence information.

ただし、状態制御部23aは、レプリカ番号と温度値(探索部に対応する順序で昇順、または降順に配列された温度値)とを対応付けた対応情報を保持し、当該対応情報に基づいてステートの交換制御を行ってもよい。その場合、温度調整部21aによる新規温度の計算結果に応じて、当該対応情報における温度値が更新される。 However, the state control unit 23a holds correspondence information in which replica numbers and temperature values (temperature values arranged in ascending order or descending order corresponding to the searching unit) are associated with each other, and state control is performed based on the correspondence information. exchange control may be performed. In that case, the temperature value in the correspondence information is updated according to the calculation result of the new temperature by the temperature adjustment unit 21a.

全体制御部24aは、最適化装置2の全体の動作を制御する。全体制御部24aは、起動信号の入力を受け付ける。すると、全体制御部24aは、探索部10a1~10aNに初期の温度情報と温度の設定信号(T set sig.)とを出力し、探索部10a1~10aNの各々に初期温度を設定する。そして、全体制御部24aは、状態制御部23aに起動信号を出力し、探索部10a1~10aNを起動させて、最適化問題に対する演算を開始させる。 The overall control unit 24 a controls the overall operation of the optimization device 2 . The overall control unit 24a receives an input of a start signal. Then, the general control unit 24a outputs the initial temperature information and the temperature setting signal (T set sig.) to the search units 10a1 to 10aN, and sets the initial temperature to each of the search units 10a1 to 10aN. Then, the overall control unit 24a outputs a start signal to the state control unit 23a to start the search units 10a1 to 10aN to start calculations for the optimization problem.

全体制御部24aは、演算が終了すると、探索部10a1~10aNの各々からビットステートを取得し、最適化問題に対する解を得る。全体制御部24aは、演算の終了を示す終了信号を出力する。終了信号は、演算により得られた解を示す情報を含み得る。例えば、全体制御部24aは、最適化装置2に接続された表示装置に、解を示す画像情報を出力し、解を示す画像情報を表示装置により表示させることで、得られた解の内容をユーザに提示してもよい。 After completing the calculation, the overall control unit 24a obtains the bit state from each of the search units 10a1 to 10aN and obtains the solution to the optimization problem. The overall control unit 24a outputs an end signal indicating the end of the computation. The termination signal may contain information indicative of the solution obtained by the computation. For example, the overall control unit 24a outputs image information indicating the solution to a display device connected to the optimization device 2, and causes the display device to display the image information indicating the solution, thereby displaying the content of the obtained solution. may be presented to the user.

図19は、温度調整部の回路構成例を示す図である。
温度調整部21aは、レジスタ310、最低エネルギー更新確認回路320、最高温度更新確認回路330、温度ヒストグラム計算回路340および温度計算回路350を有する。また、最適化装置2は、更に、温度制御部22aを有する。
FIG. 19 is a diagram illustrating a circuit configuration example of a temperature adjustment unit;
The temperature adjustment unit 21 a has a register 310 , a minimum energy update confirmation circuit 320 , a maximum temperature update confirmation circuit 330 , a temperature histogram calculation circuit 340 and a temperature calculation circuit 350 . The optimization device 2 further has a temperature control section 22a.

レジスタ310は、N個のビットステートの各々のレプリカ番号に対応付けて、到達した最低エネルギーと、設定された温度の最高値(最高温度)とを記憶する。
最低エネルギー更新確認回路320は、所定のデータ取得タイミングにおいて、探索部10a1~10aNの各々から、エネルギー値Eと各探索部におけるビットステートのレプリカ番号とを受け付ける。最低エネルギー更新確認回路320は、受け付けたレプリカ番号毎のエネルギー値Eを、レジスタ310に記憶されたレプリカ番号毎の最低エネルギーと比較することで、最低エネルギーが更新された否かを、レプリカ番号毎に確認する。最低エネルギー更新確認回路320は、最低エネルギーが更新されたか否かのレプリカ番号毎の確認結果を示す信号を、最高温度更新確認回路330および温度ヒストグラム計算回路340に出力する。最低エネルギー更新確認回路320は、あるレプリカ番号において最低エネルギーが更新された場合、レジスタ310に記録された該当のレプリカ番号の最低エネルギーを、該当のレプリカ番号に対して今回取得したエネルギーに更新する。
The register 310 stores the lowest energy reached and the highest value of the set temperature (maximum temperature) in association with the replica number of each of the N bit states.
Minimum energy update confirmation circuit 320 receives the energy value E and the replica number of the bit state in each search unit from each of search units 10a1 to 10aN at a predetermined data acquisition timing. The minimum energy update confirmation circuit 320 compares the received energy value E for each replica number with the minimum energy for each replica number stored in the register 310, thereby confirming whether or not the minimum energy has been updated for each replica number. to confirm. The minimum energy update confirmation circuit 320 outputs to the maximum temperature update confirmation circuit 330 and the temperature histogram calculation circuit 340 a signal indicating whether or not the minimum energy has been updated for each replica number. The minimum energy update confirmation circuit 320 updates the minimum energy of the replica number recorded in the register 310 to the energy acquired this time for the replica number when the minimum energy is updated in a certain replica number.

最高温度更新確認回路330は、あるレプリカ番号について、最低エネルギー更新確認回路320による確認結果が、最低エネルギーが更新されていないことを示す場合、該当のレプリカ番号(ビットステート)に対する現在の温度を、レジスタ310に記憶された該当のレプリカ番号の最高温度と比較する。最高温度更新確認回路330は、当該比較に応じて、該当のレプリカ番号について、前回の最低エネルギーの更新からの最高温度が今回の設定温度により更新されたか否かを確認する。最高温度更新確認回路330は、最高温度が更新された場合、該当のレプリカ番号に対応する現在の設定温度で、レジスタ310に記録されている当該レプリカ番号の最高温度の情報を更新する。 Maximum temperature update confirmation circuit 330 updates the current temperature for a certain replica number (bit state) when the result of confirmation by minimum energy update confirmation circuit 320 indicates that the minimum energy has not been updated. It is compared with the maximum temperature of the corresponding replica number stored in register 310 . The maximum temperature update confirmation circuit 330 confirms whether or not the maximum temperature from the previous minimum energy update has been updated by the current set temperature for the replica number in accordance with the comparison. When the maximum temperature is updated, the maximum temperature update confirmation circuit 330 updates the maximum temperature information of the replica number recorded in the register 310 with the current set temperature corresponding to the replica number.

温度ヒストグラム計算回路340は、あるレプリカ番号について、最低エネルギー更新確認回路320による確認結果が、最低エネルギーが更新されたことを示す場合、レジスタ310に記憶されている該当のレプリカ番号の最高温度を、温度ヒストグラム上にカウントする。温度ヒストグラムは、N個のビットステートの全体に対して1つ生成される。 Temperature histogram calculation circuit 340 calculates the maximum temperature of the replica number stored in register 310 when the result of confirmation by minimum energy update confirmation circuit 320 indicates that the minimum energy has been updated for a certain replica number. Count on the temperature histogram. A temperature histogram is generated for all N bit states.

温度計算回路350は、温度ヒストグラム計算回路340により生成された温度ヒストグラムに基づいて、探索部10a1~10aNに設定するN個の新規温度を計算する。温度計算回路350は、新規温度の計算に、式(6)、(7)を用いる。最低温度tmp_minは、温度計算回路350に予め設定される。最高温度tmp_maxは、温度ヒストグラムに基づいて温度計算回路350により決定される。温度計算回路350には、新規温度の計算に用いられる係数αが外部から入力され得る。温度計算回路350は、計算した新規温度を示す新規温度情報と、温度設定信号(T set sig.)とを温度制御部22aに出力する。更に、温度計算回路350は、新規温度情報を状態制御部23aに出力し、状態制御部23aが保持する第1の対応情報において温度インデックスに対応付けられる温度を更新させる。なお、温度計算回路350による温度計算方法は、温度計算回路250による温度計算方法と同様である。 Based on the temperature histogram generated by the temperature histogram calculation circuit 340, the temperature calculation circuit 350 calculates N new temperatures to be set in the search units 10a1 to 10aN. Temperature calculation circuit 350 uses equations (6) and (7) to calculate the new temperature. Minimum temperature tmp_min is preset in temperature calculation circuit 350 . The maximum temperature tmp_max is determined by temperature calculation circuit 350 based on the temperature histogram. The temperature calculation circuit 350 can receive an external input of the coefficient α used to calculate the new temperature. The temperature calculation circuit 350 outputs new temperature information indicating the calculated new temperature and a temperature setting signal (T set sig.) to the temperature control section 22a. Furthermore, the temperature calculation circuit 350 outputs the new temperature information to the state control section 23a to update the temperature associated with the temperature index in the first correspondence information held by the state control section 23a. Note that the temperature calculation method by the temperature calculation circuit 350 is the same as the temperature calculation method by the temperature calculation circuit 250 .

ここで、温度制御部22aは、温度計算回路350から新規温度情報と温度設定信号(T set sig.)とを受け付ける。すると、温度制御部22aは、新規温度情報と温度設定信号(T set sig.)とを探索部10a1~10aNに出力することで、探索部10a1~10aNに対して新規温度を設定する。 Here, the temperature control unit 22a receives the new temperature information and the temperature setting signal (T set sig.) from the temperature calculation circuit 350. FIG. Then, the temperature control section 22a outputs the new temperature information and the temperature setting signal (T set sig.) to the searching sections 10a1 to 10aN, thereby setting new temperatures for the searching sections 10a1 to 10aN.

また、温度調整部21aは、基底状態探索の全期間において、所定周期などで繰り返し温度調整を行う場合、温度制御部22aまたは状態制御部23aから、探索部10a1~10aNの各々に現在設定される温度の情報を取得してもよい。 Further, when the temperature adjustment unit 21a repeatedly adjusts the temperature at a predetermined cycle or the like during the entire ground state search period, the temperature control unit 22a or the state control unit 23a currently sets each of the search units 10a1 to 10aN. Temperature information may be obtained.

図20は、レジスタに格納されるデータ例を示す図である。
レジスタ310では、所定オフセットを隔てた3つのアドレスが、1組のレコードに対応付けられる。例えば、アドレス「0xXXXXXX00」、「0xXXXXXXY0」、「0xXXXXXXZ0」は、アドレス「0xXXXXXXZ0」に格納されたレプリカ番号に対応する1組のレコードである。アドレス「0xXXXXXX00」には、該当のレプリカ番号に対応するビットステートが到達した最低エネルギーが格納される。例えば、最低エネルギーは、128ビット幅で表される。アドレス「0xXXXXXXY0」には、該当のレプリカ番号のビットステートにおいて前回の最低エネルギーの更新から、当該ビットステートに設定された最高の温度が格納される。例えば、温度は32ビット幅で表される。また、例えば、レプリカ番号は16ビット幅で表される。
FIG. 20 is a diagram showing an example of data stored in a register.
In register 310, three addresses separated by a predetermined offset are associated with a set of records. For example, addresses "0xXXXXXX00", "0xXXXXXXY0", and "0xXXXXXXZ0" are a set of records corresponding to the replica numbers stored at address "0xXXXXXXZ0". Address "0xXXXXXX00" stores the lowest energy reached by the bit state corresponding to the replica number. For example, the lowest energy is represented with a width of 128 bits. The address "0xXXXXXXY0" stores the highest temperature set in the bitstate of the replica number since the previous minimum energy update. For example, temperature is represented with a 32-bit width. Also, for example, the replica number is represented by a 16-bit width.

同様に、他のレプリカ番号のビットステートに対しても、最低エネルギーと、温度と、レプリカ番号とが、レジスタ310に格納される。
このように、温度調整部21aは、探索部に設定されるビットステート(複数の状態変数)の識別情報(レプリカ番号)に対応付けて、当該ビットステートに対して到達したエネルギー値の最小値と、当該ビットステートに対して設定された最高温度を記録する。そして、温度調整部21aは、いずれかの探索部でエネルギー値の最小値が更新された場合に、当該エネルギー値の最小値の前回の更新から今回の更新までに該当の探索部におけるビットステート(複数の状態変数)に対して設定された温度のうちの最高の温度値を、温度統計情報として取得する。
Similarly, the minimum energy, temperature, and replica number are stored in register 310 for bit states of other replica numbers.
In this way, the temperature adjustment unit 21a associates the identification information (replica number) of the bit state (plurality of state variables) set in the search unit with the minimum energy value reached for the bit state. , record the maximum temperature set for that bitstate. Then, when the minimum value of the energy value is updated in any of the search units, the temperature adjustment unit 21a changes the bit state ( The highest temperature value among the temperatures set for the plurality of state variables) is acquired as the temperature statistical information.

次に、最適化装置2による処理手順を説明する。
図21は、レプリカ交換の全体制御例を示すフローチャートである。
(S1a)全体制御部24aは、外部から入力データとして初期温度を示す温度情報を受け取り、当該温度情報を探索部10a1~10aNに出力するとともに起動信号を状態制御部23aに出力する。
Next, a processing procedure by the optimization device 2 will be described.
FIG. 21 is a flowchart showing an example of overall control of replica exchange.
(S1a) The overall control unit 24a receives temperature information indicating an initial temperature as input data from the outside, outputs the temperature information to the search units 10a1 to 10aN, and outputs an activation signal to the state control unit 23a.

(S2a)状態制御部23aは、全体制御部24aからの起動信号を受けて、探索部10a1~10aNの各々による確率的探索の処理を実行させる。探索部10a1~10aNの各々による処理(探索処理)手順は、図12で例示した手順と同様である。 (S2a) The state control unit 23a receives the activation signal from the general control unit 24a and causes the search units 10a1 to 10aN to execute probabilistic search processing. The processing (search processing) procedure by each of the search units 10a1 to 10aN is the same as the procedure illustrated in FIG.

(S3a)温度調整部21aは、探索部10a1~10aNで規定の時間、又は規定のイタレーション数の確率的探索が実行されると、探索部10a1~10aNで計算されたエネルギー値およびレプリカ番号の取得を含むデータ収集処理を行う。データ収集処理の詳細は後述される。 (S3a) When the search units 10a1 to 10aN execute the probabilistic search for a specified time or a specified number of iterations, the temperature adjustment unit 21a adjusts the energy values and the replica numbers calculated by the search units 10a1 to 10aN. Perform data collection processing including acquisition. Details of the data collection process will be described later.

(S4a)探索部10a1~10aNは、隣接探索部毎のエネルギー値、ビットステートおよびローカルフィールドを状態制御部23aに伝達する。状態制御部23aは、探索部10a1~10aNで計算されたエネルギー値、ビットステートおよびローカルフィールドを、隣接探索部のペア毎に取得する。隣接探索部のペアは、設定されている温度が隣接する探索部のペアである。当該探索部のペアにおける2つのビットステートは、温度が隣接していることになる。 (S4a) The search units 10a1 to 10aN transmit the energy value, bit state and local field for each adjacent search unit to the state control unit 23a. The state control unit 23a acquires the energy values, bit states, and local fields calculated by the search units 10a1 to 10aN for each pair of adjacent search units. A pair of adjacent search units is a pair of search units whose set temperatures are adjacent to each other. The two bit states in the pair of search units will be adjacent in temperature.

(S5a)状態制御部23aは、温度が隣接する探索部間でのエネルギー差を用いた式(5)に基づく交換確率により、ステートの交換制御を行う。状態制御部23aは、温度が隣接する探索部のペア毎に、ステートの交換制御を行う。交換制御の詳細は後述される。 (S5a) The state control unit 23a performs state exchange control based on the exchange probability based on the formula (5) using the energy difference between the search units with adjacent temperatures. The state control unit 23a performs state exchange control for each pair of search units having adjacent temperatures. The details of exchange control will be described later.

(S6a)温度調整部21aは、温度調整用のデータ取得期間内であるか否かを判定する。温度調整用のデータ取得期間内である場合、ステップS2aに処理が進む。温度調整用のデータ取得期間内でない場合、ステップS7aに処理が進む。 (S6a) The temperature adjustment unit 21a determines whether it is within the data acquisition period for temperature adjustment. If it is within the data acquisition period for temperature adjustment, the process proceeds to step S2a. If it is not within the data acquisition period for temperature adjustment, the process proceeds to step S7a.

(S7a)温度調整部21aは、ステップS3aのデータ収集処理の結果として生成される温度ヒストグラム80(または累積ヒストグラム81)に基づいて、式(6)、(7)で用いられる最高温度tmp_maxを計算する。温度調整部21aは、計算した最高温度tmp_maxを用いて、式(6)、(7)に基づき、新規温度tmp[i]を計算する。温度調整部21aは、計算した新規温度を示す新規温度情報と温度設定信号とを温度制御部22aおよび状態制御部23aに出力する。状態制御部23aは、温度調整部21aにより出力された新規温度情報と温度設定信号とを受け付け、状態制御部23aが保持する第1の対応情報における各温度インデックスに対応付けられた温度を更新する。 (S7a) The temperature adjuster 21a calculates the maximum temperature tmp_max used in the equations (6) and (7) based on the temperature histogram 80 (or cumulative histogram 81) generated as a result of the data collection process in step S3a. do. The temperature adjuster 21a uses the calculated maximum temperature tmp_max to calculate a new temperature tmp[i] based on equations (6) and (7). The temperature adjuster 21a outputs new temperature information indicating the calculated new temperature and a temperature setting signal to the temperature controller 22a and the state controller 23a. The state control unit 23a receives the new temperature information and the temperature setting signal output by the temperature adjustment unit 21a, and updates the temperature associated with each temperature index in the first correspondence information held by the state control unit 23a. .

(S8a)温度制御部22aは、探索部10a1~10aNの各々に新規温度情報および温度設定信号を出力することで、温度を設定し、探索部10a1~10aNの各々による確率的探索の処理を実行させる。 (S8a) The temperature control unit 22a outputs the new temperature information and the temperature setting signal to each of the search units 10a1 to 10aN to set the temperature, and each of the search units 10a1 to 10aN executes probabilistic search processing. Let

(S9a)探索部10a1~10aNは、探索部10a1~10aNで規定の時間、又は規定のイタレーション数の確率的探索が実行されると、隣接探索部毎のエネルギー値、ビットステートおよびローカルフィールドを状態制御部23aに伝達する。状態制御部23aは、探索部10a1~10aNで計算されたエネルギー値、ビットステートおよびローカルフィールドを、隣接探索部毎に取得する。 (S9a) When the search units 10a1 to 10aN execute probabilistic search for a specified time or a specified number of iterations, the search units 10a1 to 10aN determine the energy value, bit state, and local field for each adjacent search unit. It is transmitted to the state control section 23a. The state control unit 23a acquires the energy values, bit states, and local fields calculated by the search units 10a1 to 10aN for each adjacent search unit.

(S10a)状態制御部23aは、温度が隣接する探索部間でのエネルギー差を用いた式(5)に基づく交換確率により、ステートの交換制御を行う。状態制御部23aは、温度が隣接する探索部のペア毎に、ステートの交換制御を行う。 (S10a) The state control unit 23a performs state exchange control based on the exchange probability based on the formula (5) using the energy difference between the search units with adjacent temperatures. The state control unit 23a performs state exchange control for each pair of search units having adjacent temperatures.

(S11a)探索部10a1~10aNは、規定回数、最低温度の探索部におけるビットステートに変化がなくなったか否かを判定する。最低温度の探索部におけるビットステートに変化がなくなると、探索部10a1~10aNは、全体制御部24aにビットステートを出力し、レプリカ交換の全体制御処理を終了する。最低温度の探索部におけるビットステートに変化がある場合、探索部10a1~10aNは、ステップS8aに処理を進め、確率的探索の処理を継続する。 (S11a) The search units 10a1 to 10aN determine whether or not there is no change in the bit state in the minimum temperature search units for the prescribed number of times. When there is no change in the bit state in the searching section with the lowest temperature, the searching sections 10a1 to 10aN output the bit state to the general control section 24a, and complete the overall control processing of replica exchange. If there is a change in the bit state in the search unit with the lowest temperature, the search units 10a1 to 10aN proceed to step S8a and continue the stochastic search processing.

図22は、データ収集処理例を示すフローチャートである。
データ収集処理は、ステップS3aに相当する。以下では、温度調整部21aによる探索部10a1に対する手順を説明するが、探索部10a2~10aNに対しても同様の手順となる。下記のステップS31a~S34aは、探索部10a1~10aNの各々に対して実行される。ステップS34aの温度ヒストグラム80は、探索部10a1~10aNに対して1つ計算される。
FIG. 22 is a flowchart illustrating an example of data collection processing.
The data collection process corresponds to step S3a. Although the procedure for the search unit 10a1 by the temperature adjustment unit 21a will be described below, the same procedure is applied to the search units 10a2 to 10aN. Steps S31a to S34a described below are executed for each of the search units 10a1 to 10aN. One temperature histogram 80 in step S34a is calculated for each of the search units 10a1 to 10aN.

(S30a)最低エネルギー更新確認回路320は、データ収集タイミングであるか否かを判定する。データ収集タイミングである場合、ステップS31aに処理が進む。データ収集タイミングでない場合、データ収集処理が終了する。前述のように、データ収集タイミングは、探索部10a1~10aNの探索処理(図12の手順)の完了毎のタイミングでもよいし、当該探索処理の複数回の完了毎のタイミングでもよい。 (S30a) The minimum energy update confirmation circuit 320 determines whether or not it is time to collect data. If it is the data collection timing, the process proceeds to step S31a. If it is not the data collection timing, the data collection process ends. As described above, the data collection timing may be the timing each time the search processing (procedure in FIG. 12) of the search units 10a1 to 10aN is completed, or the timing each time the search processing is completed a plurality of times.

(S31a)最低エネルギー更新確認回路320は、探索部10a1からエネルギーEとレプリカ番号とを取得する。最低エネルギー更新確認回路320は、レジスタ310に格納された該当のレプリカ番号の最低エネルギーと、取得したエネルギーEとを比較し、最低エネルギーが更新されたか否かを判定する。最低エネルギーが更新された場合、最低エネルギー更新確認回路320は、レジスタ310に格納された該当のレプリカ番号の最低エネルギーの記録を、探索部10a1から今回取得されたエネルギーEに更新し、ステップS34aに処理が進む。最低エネルギーが更新されていない場合、ステップS32aに処理が進む。 (S31a) The minimum energy update confirmation circuit 320 acquires the energy E1 and the replica number from the search unit 10a1. The minimum energy update confirmation circuit 320 compares the minimum energy of the corresponding replica number stored in the register 310 with the acquired energy E1, and determines whether or not the minimum energy has been updated. When the minimum energy is updated, the minimum energy update confirmation circuit 320 updates the record of the minimum energy of the corresponding replica number stored in the register 310 to the energy E1 obtained this time from the search unit 10a1, and step S34a . is processed. If the minimum energy has not been updated, the process proceeds to step S32a.

(S32a)最高温度更新確認回路330は、探索部10a1に設定されている温度を取得し、レジスタ310に格納されている該当のレプリカ番号に対する最高温度が更新されたか否かを判定する。最高温度が更新された場合、ステップS33aに処理が進む。最高温度が更新されていない場合、該当のレプリカ番号に関するデータ収集処理が終了する。 (S32a) The maximum temperature update confirmation circuit 330 acquires the temperature set in the search unit 10a1 and determines whether the maximum temperature for the corresponding replica number stored in the register 310 has been updated. If the maximum temperature has been updated, the process proceeds to step S33a. If the maximum temperature has not been updated, data collection processing for that replica number ends.

(S33a)最高温度更新確認回路330は、レジスタ310に格納された該当のレプリカ番号の最高温度の記録を、探索部10a1に設定されている温度に更新する。そして、該当のレプリカ番号に関するデータ収集処理が終了する。 (S33a) The maximum temperature update confirmation circuit 330 updates the record of the maximum temperature of the corresponding replica number stored in the register 310 to the temperature set in the search section 10a1. Then, the data collection processing for the corresponding replica number ends.

(S34a)温度ヒストグラム計算回路340は、レジスタ310から該当のレプリカ番号に対応する最高温度を読み出し、温度ヒストグラム80における当該最高温度の度数(頻度)に1を加算する。なお、前述のように、温度ヒストグラム80は、探索部10a1~10aN(N個のビットステート)に対して1つ生成される。また、最高温度更新確認回路330は、レジスタ310に格納された該当のレプリカ番号の最高温度の記録を、探索部10a1に現在設定されている温度に更新する。そして、該当のレプリカ番号に関するデータ収集処理が終了する。 (S34a) The temperature histogram calculation circuit 340 reads the maximum temperature corresponding to the replica number from the register 310, and adds 1 to the frequency (frequency) of the maximum temperature in the temperature histogram 80. As described above, one temperature histogram 80 is generated for each of the search units 10a1 to 10aN (N bit states). Also, the maximum temperature update confirmation circuit 330 updates the record of the maximum temperature of the corresponding replica number stored in the register 310 to the temperature currently set in the searching unit 10a1. Then, the data collection processing for the corresponding replica number ends.

なお、温度調整部21aは、ステップS31a~S34aの処理を、探索部10a1~10aNの各々に対して並列に実行してもよい。あるいは、温度調整部21aは、探索部10a1~10aNの中から何れか1つを順番に選択して、ステップS31a~S34aの処理を繰り返して実行してもよい。 Note that the temperature adjuster 21a may execute the processes of steps S31a to S34a in parallel for each of the searchers 10a1 to 10aN. Alternatively, the temperature adjuster 21a may sequentially select one of the searchers 10a1 to 10aN and repeat the processes of steps S31a to S34a.

このように、温度調整部21aは、エネルギー値の基底状態探索の繰り返し回数到達又は一定時間経過後に、探索部10a1~10aNの各々からエネルギー値を取得する。そして、温度調整部21aは、エネルギー値の最小値が更新されたか否かを、探索部10a1~10aNの各々におけるビットステート(複数の状態変数の値)に対して確認することで、データ収集処理を行う。 In this manner, the temperature adjustment unit 21a acquires the energy value from each of the search units 10a1 to 10aN after the number of repetitions of the search for the ground state of the energy value has been reached or after a certain period of time has elapsed. Then, the temperature adjustment unit 21a confirms whether or not the minimum value of the energy value has been updated with respect to the bit states (values of a plurality of state variables) in each of the search units 10a1 to 10aN, thereby performing data collection processing. I do.

図23は、交換制御例を示すフローチャートである。
交換制御は、ステップS5a,S10aに相当する。
(S40a)状態制御部23aは、偶数番目の探索部に関し、式(5)で示される交換確率に基づいて、隣接する上位(又は下位)温度の探索部とビットステートおよびローカルフィールドを交換するか否かを判定する。ビットステートおよびローカルフィールドの交換の判定は、探索部のペア毎に行われる。式(5)の関数fには、式(2)のメトロポリス法の関数、または、式(3)のギブス法の関数が用いられる。ビットステートおよびローカルフィールドを交換すると判定された探索部のペアがある場合、ステップS41aに処理が進む。ビットステートおよびローカルフィールドを交換すると判定された探索部のペアがない場合、ステップS42aに処理が進む。
FIG. 23 is a flowchart showing an example of exchange control.
Exchange control corresponds to steps S5a and S10a.
(S40a) The state control unit 23a exchanges the bit state and the local field with the adjacent upper (or lower) temperature search unit for the even-numbered search unit based on the exchange probability shown in equation (5). determine whether or not The decision to swap bitstates and local fields is made for each pair of searchers. The function f of the equation (5) uses the function of the Metropolis method of the equation (2) or the function of the Gibbs method of the equation (3). If there is a pair of search units determined to exchange bit states and local fields, the process proceeds to step S41a. If no searcher pair is determined to exchange bitstates and local fields, processing proceeds to step S42a.

(S41a)状態制御部23aは、ステップS40aでビットステートおよびローカルフィールドを交換すると判定された探索部のペアについて、ビットステートおよびローカルフィールドを交換する。状態制御部23aは、ステートの交換に応じて、状態制御部23aが保持する前述の第3の対応情報を更新する。 (S41a) The state control unit 23a exchanges the bit state and local field for the pair of search units determined to exchange the bit state and local field in step S40a. The state control unit 23a updates the aforementioned third correspondence information held by the state control unit 23a according to the state exchange.

(S42a)状態制御部23aは、奇数番目の探索部に関し、式(5)で示される交換確率に基づいて、隣接する上位(又は下位)温度の探索部とビットステートおよびローカルフィールドを交換するか否かを判定する。ビットステートおよびローカルフィールドの交換の判定は、探索部のペア毎に行われる。式(5)の関数fには、式(2)のメトロポリス法の関数、または、式(3)のギブス法の関数が用いられる。また、状態制御部23aは、ステップS40aにおいて、偶数番目の探索部について上位温度の探索部とステートを交換するか否かを判定した場合、ステップS42aでは奇数番目の探索部について上位温度の探索部とステートを交換するか否かを判定する。状態制御部23aは、ステップS40aにおいて、偶数番目の探索部について下位温度の探索部と温度を交換するか否かを判定した場合、ステップS42aでは奇数番目の探索部について下位温度の探索部とステートを交換するか否かを判定する。ビットステートおよびローカルフィールドを交換すると判定された探索部のペアがある場合、処理がステップS43aに進む。ビットステートおよびローカルフィールドを交換すると判定された探索部のペアがない場合、交換制御が終了する。 (S42a) The state control unit 23a exchanges the bit state and the local field with the adjacent upper (or lower) temperature search unit for the odd-numbered search units based on the exchange probability shown in Equation (5). determine whether or not The decision to swap bitstates and local fields is made for each pair of searchers. The function f of the equation (5) uses the function of the Metropolis method of the equation (2) or the function of the Gibbs method of the equation (3). When the state control unit 23a determines in step S40a whether or not to exchange the state of the even-numbered search unit with the higher temperature search unit, in step S42a, the state control unit 23a determines whether or not to exchange the state of the even-numbered search unit with the higher temperature search unit. Determines whether to exchange the state with When the state control unit 23a determines in step S40a whether or not to exchange the temperature of the even-numbered search unit with the lower temperature search unit, in step S42a, the state control unit 23a changes the state of the odd-numbered search unit with the lower temperature search unit. determines whether or not to replace the If there is a pair of search units determined to exchange bitstates and local fields, processing proceeds to step S43a. If no searcher pair is determined to exchange bitstates and local fields, exchange control ends.

(S43a)状態制御部23aは、ステップS42aでビットステートおよびローカルフィールドを交換すると判定された探索部のペアについて、ビットステートおよびローカルフィールドを交換する。状態制御部23aは、ステートの交換に応じて、状態制御部23aが保持する第3の対応情報を更新する。そして、交換制御が終了する。 (S43a) The state control unit 23a exchanges the bit state and local field for the pair of search units determined to exchange the bit state and local field in step S42a. The state control unit 23a updates the third correspondence information held by the state control unit 23a according to the state exchange. Then, the exchange control ends.

なお、上記の例では、偶数番目の探索部の次に奇数番目の探索部に着目して、ステートの交換制御を行うものとしたが、奇数番目の探索部の次に偶数番目の探索部に着目して、ステートの交換制御を行ってもよい。すなわち、ステップS42a,S43aの後に、ステップS40a,S41aを実行してもよい。 In the above example, the state exchange control is performed by focusing on the even-numbered search unit and then the odd-numbered search unit. Focusing on this, state exchange control may be performed. That is, steps S40a and S41a may be executed after steps S42a and S43a.

このように、最適化装置2は、レプリカ交換において、探索部間でステートを交換することで、イジングモデルの基底状態探索を行ってもよい。
最適化装置2によれば、探索部10a1~10aNに設定する温度を適切に決定できる。具体的には、データ取得期間における最低エネルギーの更新、および、設定された最高温度の統計情報に基づいて、新規温度tmp[i]の最高値を決定することで、各探索部に設定する温度が高過ぎたり、低過ぎたりすることを抑えられる。このため、最適化装置2における解精度を向上させることができる。また、解精度の向上により、より早く適切な解に到達する可能性を高められ、演算の高速化を図れる。
In this way, the optimization device 2 may perform the ground state search of the Ising model by exchanging the states between the search units in the replica exchange.
According to the optimization device 2, the temperatures to be set in the searching units 10a1 to 10aN can be appropriately determined. Specifically, the maximum value of the new temperature tmp[i] is determined based on the update of the minimum energy in the data acquisition period and the statistical information of the set maximum temperature, and the temperature set for each search unit can be prevented from being too high or too low. Therefore, the solution accuracy in the optimization device 2 can be improved. In addition, by improving the solution accuracy, it is possible to increase the possibility of reaching an appropriate solution more quickly and speed up the calculation.

また、適切な最高温度(tmp_maxに相当する温度)を決定するために、最適化装置2による最適化処理を繰り返し実行して、ユーザが手作業で調整することも考えられるが、この作業には膨大な手間がかかる。一方、上記のように、温度の統計情報に基づいて、最高温度tmp_maxを決定することで、ユーザ作業による温度調整の手間を軽減できる。 In addition, in order to determine an appropriate maximum temperature (temperature corresponding to tmp_max), it is conceivable that the optimization process by the optimization device 2 is repeatedly executed and the user manually adjusts. It takes a lot of work. On the other hand, by determining the maximum temperature tmp_max based on the temperature statistical information as described above, it is possible to reduce the trouble of temperature adjustment by the user.

更に、第1の実施の形態と同様に、最適化装置2における温度調整の機能は、CPUによるソフトウェア処理によって実現されてもよい。最適化装置2は、最適化装置1aと同様のハードウェア構成とすることもできる。ただし、確率的探索部では、レプリカ交換において、探索部間でステートを交換する制御を行う。 Furthermore, similarly to the first embodiment, the temperature adjustment function in the optimization device 2 may be realized by software processing by the CPU. The optimization device 2 can also have the same hardware configuration as the optimization device 1a. However, the probabilistic search unit performs control to exchange states between search units in the replica exchange.

図24は、解の個数の例を示す図である。
グラフ90は、比較例の方法で温度を決定して演算を行った場合に得られた組合せ最適化問題の解の個数と、最適化装置1,2(または最適化装置1a)により温度調整を行って演算を行った場合に得られた組合せ最適化問題の解の個数とを例示する。グラフ90の横軸は問題を示し、縦軸は解の個数を示す。比較例の方法は、演算開始時に、スピンビット間の結合を表す係数行列Wに基づいて、所定の演算により最高温度を決定し、各探索部に設定する温度を決定する方法である。
FIG. 24 is a diagram showing an example of the number of solutions.
A graph 90 shows the number of solutions to the combinatorial optimization problem obtained when the temperature is determined and the calculation is performed by the method of the comparative example, and the temperature adjustment by the optimization devices 1 and 2 (or the optimization device 1a). and the number of solutions to the combinatorial optimization problem obtained when performing calculations. The horizontal axis of graph 90 indicates the problem and the vertical axis indicates the number of solutions. The method of the comparative example is a method of determining the maximum temperature by a predetermined calculation based on the coefficient matrix W representing the coupling between spin bits at the start of calculation, and determining the temperature to be set in each search unit.

実験条件は次の通りである。基底状態探索の総イタレーション数は、1000万回である。レプリカ数(探索部10a1~10aNの数に相当)は、100である。各探索部のオフセット制御部により局所解脱出のために用いるオフセット値の増分値は1000である。実験では、組合せ最適化問題として、解が予め判明しているものを用い、基底状態探索の総イタレーション数の完了後に、その解の得られた探索部の個数をカウントする。 The experimental conditions are as follows. The total number of iterations of the ground state search is 10 million. The number of replicas (corresponding to the number of search units 10a1 to 10aN) is 100. The increment value of the offset value used for escaping from the local solution is 1000 by the offset controller of each search unit. In the experiment, a combinatorial optimization problem whose solution is known in advance is used, and after the total number of iterations of the ground state search is completed, the number of search units for which the solution is obtained is counted.

ここで、横軸に付された文字列は問題の名称であり、アルファベットまたはアルファベットと数字との組で示される接頭辞は、問題の種類を示す。例えば、接頭辞「mcp」は、最大カット問題を示す。接頭辞「molsim」は、分子類似性問題を示す。接頭辞「tsp32」は、巡回セールスマン問題を示す。更に、接頭辞に後続する文字列は、該当の種類の問題でのバリエーションを示す。 Here, the character string attached to the horizontal axis is the name of the question, and the prefix indicated by an alphabet or a combination of an alphabet and a number indicates the type of question. For example, the prefix "mcp" indicates a max-cut problem. The prefix "molsim" indicates a molecular similarity problem. The prefix "tsp32" denotes the Traveling Salesman Problem. Additionally, the string following the prefix indicates variations in that type of problem.

グラフ90によれば、分子類似性問題(「molsim_950_XX」)および巡回セールスマン問題(「tsp32_mapXX」)において、解が増加することが分かる。また、最大カット問題については、幾つかのバリエーション(例えば、mcp_G51~mcp_G54)において、比較例の方法とほぼ同等の求解性能であることが分かる。グラフ90に関して、総合的にみれば、最適化装置1,2の方法によれば、比較例の方法に対して改善傾向にあり、求解性能が向上することが分かる。また、解の個数が増すことから、比較例の方法よりも早く最適解に到達する可能性が高まり、演算の高速化を図れる。 Graph 90 shows an increase in solutions in the molecular similarity problem (“molsim_950_XX”) and the traveling salesman problem (“tsp32_mapXX”). In addition, regarding the maximum cut problem, it can be seen that several variations (eg, mcp_G51 to mcp_G54) have almost the same solution-finding performance as the method of the comparative example. Regarding the graph 90, it can be seen that the methods of the optimization devices 1 and 2 tend to improve compared to the method of the comparative example, and the solution-finding performance is improved. Moreover, since the number of solutions increases, the possibility of reaching the optimum solution earlier than in the method of the comparative example increases, and the speed of calculation can be increased.

1 最適化装置
10a1,10a2,…,10aN 探索部
11 状態保持部
12 エネルギー計算部
13 遷移制御部
20 制御部
21 温度調整部
22 温度制御部
23 交換制御部
1 optimization device 10a1, 10a2, .

Claims (10)

複数の探索部と前記複数の探索部を制御する制御部を有する最適化装置において、
前記複数の探索部の各々は、
エネルギー値を表す評価関数に含まれる複数の状態変数の値をそれぞれ保持する状態保持部と、
前記複数の状態変数の値の何れかが変化することに応じて状態遷移が起こる場合、前記エネルギー値の変化値を複数の状態遷移のそれぞれに対して計算することにより基底状態探索を行うエネルギー計算部と、
設定された温度値と前記変化値と乱数値とに基づいて、前記エネルギー値の変化値と熱励起エネルギーとの相対関係によって前記複数の状態遷移の何れかを受け入れるか否かを確率的に決定する遷移制御部とを有し、
前記制御部は、
前記複数の探索部の各々における温度値の遷移に関する統計情報である温度統計情報を取得するとともに、取得した温度統計情報に基づいて前記複数の探索部の各々に設定する前記温度値を決定する温度調整部と、
決定した前記温度値を前記複数の探索部の各々に対して設定する温度制御部と、
前記エネルギー値の基底状態探索の繰り返し回数到達又は一定時間経過後に、前記複数の探索部間で前記温度値又は前記複数の状態変数の値を入れ替える交換制御部と、
を有する最適化装置。
In an optimization device having a plurality of search units and a control unit that controls the plurality of search units,
Each of the plurality of search units,
a state holding unit holding values of a plurality of state variables included in an evaluation function representing an energy value;
Energy calculation for performing a ground state search by calculating a change value of the energy value for each of the plurality of state transitions when the state transition occurs in response to a change in any of the plurality of state variable values. Department and
Based on the set temperature value, the change value, and a random value, it is determined stochastically whether to accept one of the plurality of state transitions according to the relative relationship between the change value of the energy value and the thermal excitation energy. and a transition control unit for
The control unit
A temperature for acquiring temperature statistical information, which is statistical information relating to temperature value transitions in each of the plurality of search units, and determining the temperature values to be set in each of the plurality of search units based on the acquired temperature statistical information. an adjustment unit;
a temperature control unit that sets the determined temperature value to each of the plurality of search units;
an exchange control unit that exchanges the temperature values or the values of the plurality of state variables among the plurality of search units after reaching the number of repetitions of the ground state search for the energy value or after a predetermined time has elapsed;
an optimization device having
前記温度調整部は、取得した温度統計情報のうち、温度値の遷移に関し、各温度値の出現頻度を計数した温度頻度情報において、前記出現頻度の最大値に対応する温度値を前記複数の探索部の各々に設定する、
請求項1記載の最適化装置。
The temperature adjustment unit searches the plurality of temperature values corresponding to the maximum value of the appearance frequency in the temperature frequency information obtained by counting the appearance frequency of each temperature value regarding the transition of the temperature values among the acquired temperature statistical information. set for each of the divisions,
2. The optimization device of claim 1.
前記温度調整部は、取得した温度統計情報のうち、温度値の遷移に関し、各温度値の出現頻度を累積した累積頻度を表す温度累積頻度情報において、前記累積頻度の最大値に所定係数を乗じて得られた頻度に対応する温度値を前記複数の探索部の各々に設定する、
請求項1記載の最適化装置。
The temperature adjusting unit multiplies the maximum value of the cumulative frequency by a predetermined coefficient in the temperature cumulative frequency information representing the cumulative frequency of occurrence of each temperature value regarding the transition of the temperature value among the acquired temperature statistical information. setting a temperature value corresponding to the frequency obtained in each of the plurality of search units;
2. The optimization device of claim 1.
前記所定係数は、外部から入力される、
請求項3記載の最適化装置。
The predetermined coefficient is input from the outside,
4. The optimization device according to claim 3.
前記遷移制御部は、前記温度値と前記変化値と乱数値とに基づいて、前記変化値と熱励起エネルギーとの相対関係によって前記複数の状態遷移の何れかを受け入れるか否かを確率的に決定する際、前記エネルギー値の変化値に所定のオフセット値を加算する、
請求項1乃至4のいずれか一項に記載の最適化装置。
The transition control unit probabilistically determines whether to accept one of the plurality of state transitions according to the relative relationship between the change value and the thermal excitation energy based on the temperature value, the change value, and a random value. When determining, adding a predetermined offset value to the change value of the energy value;
5. An optimization device according to any one of claims 1-4.
前記温度調整部は、取得した温度統計情報から、前記複数の探索部の各々に設定する前記温度値の最高値を決定し、前記最高値に基づいて前記複数の探索部の各々に設定する前記最高値以外の温度値を決定する、
請求項1乃至5の何れか一項に記載の最適化装置。
The temperature adjustment unit determines a maximum value of the temperature values to be set in each of the plurality of search units from the acquired temperature statistical information, and sets the temperature value in each of the plurality of search units based on the maximum value. determining temperature values other than the highest value,
6. An optimization device according to any one of claims 1-5.
前記温度調整部は、いずれかの探索部で前記エネルギー値の最小値が更新された場合に、前記エネルギー値の最小値の前回の更新から今回の更新までに、前記探索部又は前記探索部における前記複数の状態変数の値に対して設定された最高の温度値を、温度統計情報として取得する、
請求項1乃至6のいずれか一項に記載の最適化装置。
When the minimum value of the energy value is updated in any one of the search units, the temperature adjustment unit performs obtaining the highest temperature value set for the values of the plurality of state variables as temperature statistics;
7. Optimization apparatus according to any one of claims 1-6.
前記温度調整部は、前記エネルギー値の基底状態探索の繰り返し回数到達又は一定時間経過後に、前記複数の探索部の各々から前記エネルギー値を取得し、前記エネルギー値の最小値が更新されたか否かを、前記複数の探索部の各々、又は前記複数の探索部の各々における前記複数の状態変数の値に対して確認する、
請求項7記載の最適化装置。
The temperature adjustment unit acquires the energy value from each of the plurality of search units after reaching the number of repetitions of the ground state search for the energy value or after a predetermined time has elapsed, and determines whether the minimum value of the energy value has been updated. against each of the plurality of search units or the values of the plurality of state variables in each of the plurality of search units;
8. Optimization device according to claim 7.
前記温度調整部は、前記複数の探索部の各々に第1の温度値が設定されている所定期間で温度統計情報を取得し、前記所定期間の終了後に、温度統計情報に基づいて前記複数の探索部の各々に設定する第2の温度値を決定する、
請求項1乃至8のいずれか一項に記載の最適化装置。
The temperature adjustment unit acquires temperature statistical information during a predetermined period in which a first temperature value is set for each of the plurality of search units, and after the predetermined period ends, based on the temperature statistical information, the plurality of determining a second temperature value to be set for each of the search units;
9. An optimization device according to any one of claims 1-8.
複数の探索部と前記複数の探索部を制御する制御部を有する最適化装置の制御方法において、
前記複数の探索部の各々が有する状態保持部が、エネルギー値を表す評価関数に含まれる複数の状態変数の値をそれぞれ保持し、
前記複数の探索部の各々が有するエネルギー計算部が、前記複数の状態変数の値の何れかが変化することに応じて状態遷移が起こる場合、前記エネルギー値の変化値を複数の状態遷移のそれぞれに対して計算することにより基底状態探索を行い、
前記複数の探索部の各々が有する遷移制御部が、設定された温度値と前記変化値と乱数値とに基づいて、前記エネルギー値の変化値と熱励起エネルギーとの相対関係によって前記複数の状態遷移の何れかを受け入れるか否かを確率的に決定し、
前記制御部が有する温度調整部が、前記複数の探索部の各々における温度値の遷移に関する統計情報である温度統計情報を取得するとともに、取得した温度統計情報に基づいて前記複数の探索部の各々に設定する前記温度値を決定し、
前記制御部が有する温度制御部が、決定した前記温度値を前記複数の探索部の各々に対して設定し、
前記制御部が有する交換制御部が、前記エネルギー値の基底状態探索の繰り返し回数到達又は一定時間経過後に、前記複数の探索部間で前記温度値又は前記複数の状態変数の値を入れ替える、
最適化装置の制御方法。
In a control method for an optimization device having a plurality of search units and a control unit that controls the plurality of search units,
A state holding unit included in each of the plurality of search units holds values of a plurality of state variables included in an evaluation function representing an energy value,
When a state transition occurs in response to a change in the value of one of the plurality of state variables, the energy calculation unit included in each of the plurality of search units calculates the change value of the energy value for each of the plurality of state transitions. perform a ground state search by computing for
A transition control unit included in each of the plurality of search units determines the plurality of states according to the relative relationship between the change value of the energy value and the thermal excitation energy based on the set temperature value, the change value, and the random value. determining probabilistically whether to accept any of the transitions;
A temperature adjusting unit included in the control unit acquires temperature statistical information that is statistical information about transition of temperature values in each of the plurality of searching units, and based on the acquired temperature statistical information, each of the plurality of searching units determine the temperature value to set to
A temperature control unit included in the control unit sets the determined temperature value to each of the plurality of search units;
An exchange control unit included in the control unit exchanges the temperature value or the values of the plurality of state variables between the plurality of search units after the number of repetitions of the ground state search for the energy value has been reached or after a certain period of time has elapsed.
How to control the optimizer.
JP2018219079A 2018-11-22 2018-11-22 Optimizer and method of controlling the optimizer Active JP7108185B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018219079A JP7108185B2 (en) 2018-11-22 2018-11-22 Optimizer and method of controlling the optimizer
US16/583,344 US11262717B2 (en) 2018-11-22 2019-09-26 Optimization device and control method of optimization device based on temperature statistical information
EP19200238.4A EP3660705A1 (en) 2018-11-22 2019-09-27 Optimization device and control method of optimization device
CN201910993506.XA CN111210046B (en) 2018-11-22 2019-10-18 Optimizing apparatus and control method of optimizing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018219079A JP7108185B2 (en) 2018-11-22 2018-11-22 Optimizer and method of controlling the optimizer

Publications (2)

Publication Number Publication Date
JP2020086821A JP2020086821A (en) 2020-06-04
JP7108185B2 true JP7108185B2 (en) 2022-07-28

Family

ID=68165437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018219079A Active JP7108185B2 (en) 2018-11-22 2018-11-22 Optimizer and method of controlling the optimizer

Country Status (4)

Country Link
US (1) US11262717B2 (en)
EP (1) EP3660705A1 (en)
JP (1) JP7108185B2 (en)
CN (1) CN111210046B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7174244B2 (en) * 2018-12-26 2022-11-17 富士通株式会社 Optimization device and control method for optimization device
JP7201911B2 (en) * 2019-05-13 2023-01-11 富士通株式会社 Optimizer and method of controlling the optimizer
JP7248907B2 (en) * 2019-08-14 2023-03-30 富士通株式会社 Optimizer and method of controlling the optimizer
JP7051771B2 (en) * 2019-09-09 2022-04-11 株式会社東芝 Arithmetic logic units, calculation methods and programs
EP3896621A1 (en) * 2020-04-13 2021-10-20 Fujitsu Limited Optimization apparatus, optimization method, and optimization program
JP2022015503A (en) * 2020-07-09 2022-01-21 富士通株式会社 Information processing system, information processing method and program
JP2022090249A (en) * 2020-12-07 2022-06-17 富士通株式会社 Optimization device, optimization method, and optimization program
CN115858999B (en) * 2023-02-07 2023-04-25 华南理工大学 Combined optimization problem processing circuit based on improved simulated annealing algorithm
CN116151171B (en) * 2023-04-17 2023-07-18 华南理工大学 Full-connection I Xin Moxing annealing treatment circuit based on parallel tempering

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018063626A (en) 2016-10-14 2018-04-19 富士通株式会社 Optimization apparatus and optimization apparatus control method

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231197A (en) 1996-02-22 1997-09-05 Fujitsu Ltd Thermostatic chamber device and method for temperature parallel simulated annealing
JPH09325949A (en) 1996-06-04 1997-12-16 Nissan Motor Co Ltd Method for optimizing genetic algorithm and system for analyzing genetic algorithm
JP5441689B2 (en) * 2006-05-13 2014-03-12 テンシス メディカル インコーポレイテッド Continuous positioning apparatus and method
CN100573557C (en) * 2007-08-06 2009-12-23 北京航空航天大学 A kind of SAR image partition method of short annealing based on MRF
CN103039100B (en) * 2011-08-03 2015-11-25 华为技术有限公司 Based on frequency optimization method and the device of simulated annealing
US9214346B2 (en) * 2012-04-18 2015-12-15 Applied Materials, Inc. Apparatus and method to reduce particles in advanced anneal process
CN102982240B (en) * 2012-11-19 2016-01-06 华侨大学 Based on the Circularity error evaluation method of mutative scale Chaos-Annealing
GB2520293B (en) * 2013-11-14 2018-02-07 Passivsystems Ltd Improvements in and relating to temperature controlled systems
WO2016029172A1 (en) * 2014-08-22 2016-02-25 D-Wave Systems Inc. Systems and methods for problem solving, useful for example in quantum computing
CN104933328A (en) * 2015-06-08 2015-09-23 浙江工业大学 Search method of variable-step-size protein conformational space on the basis of copy exchange
JP6468254B2 (en) 2016-07-01 2019-02-13 富士通株式会社 Information processing apparatus, Ising apparatus, and information processing apparatus control method
CN107633157B (en) * 2017-08-29 2020-10-27 浙江工业大学 Protein conformation space optimization method based on distribution estimation and copy exchange strategy

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018063626A (en) 2016-10-14 2018-04-19 富士通株式会社 Optimization apparatus and optimization apparatus control method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
三木光範 ほか,シミュレーテッドアニーリングプログラミングの温度並列化,情報処理学会論文誌 論文誌ジャーナル[CD-ROM],日本,社団法人情報処理学会,2010年07月15日,第51巻、第7号,pp.1371-1381,ISSN:1882-7837

Also Published As

Publication number Publication date
CN111210046B (en) 2023-09-15
US20200166900A1 (en) 2020-05-28
US11262717B2 (en) 2022-03-01
JP2020086821A (en) 2020-06-04
EP3660705A1 (en) 2020-06-03
CN111210046A (en) 2020-05-29

Similar Documents

Publication Publication Date Title
JP7108185B2 (en) Optimizer and method of controlling the optimizer
JP7206476B2 (en) Optimization device, optimization device control method, and optimization device control program
JP7007585B2 (en) Optimization device, optimization device control method, and optimization device control program
JP2021033341A (en) Optimization device and control method of optimization device
EP3872656A1 (en) Information processing apparatus, information processing method, and program
JP7201911B2 (en) Optimizer and method of controlling the optimizer
JP2020204929A (en) Sampling device and sampling method
JP2019185602A (en) Optimization device and control method of optimization device
JP7181454B2 (en) Optimization device, optimization device control method, and optimization device control program
CN113536229A (en) Sampling device, sampling method, and storage medium for storing sampling program
US20210334332A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
EP3937090A1 (en) Information processing system, information processing method, and program
EP3851953B1 (en) Optimization apparatus, temperature setting method, and temperature setting program
JP2019194765A (en) Optimization device and method of controlling the same
JP6997404B2 (en) Optimization device, optimization device control method, and optimization device control program
CN111861519A (en) Method, apparatus and medium for data processing
US20220366011A1 (en) Non-transitory computer-readable storage medium and information processing apparatus
WO2020263440A1 (en) Data-driven cross feature generation
CN116186343A (en) Information processing apparatus, information processing method, and computer-readable recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210810

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210820

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210820

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220615

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220627

R150 Certificate of patent or registration of utility model

Ref document number: 7108185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150