JP7628866B2 - Information processing system, information processing method, and information processing program - Google Patents
Information processing system, information processing method, and information processing program Download PDFInfo
- Publication number
- JP7628866B2 JP7628866B2 JP2021062592A JP2021062592A JP7628866B2 JP 7628866 B2 JP7628866 B2 JP 7628866B2 JP 2021062592 A JP2021062592 A JP 2021062592A JP 2021062592 A JP2021062592 A JP 2021062592A JP 7628866 B2 JP7628866 B2 JP 7628866B2
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- vector
- replica
- state variable
- variable vector
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
本発明は、情報処理システム、情報処理方法、及び情報処理プログラムに関する。 The present invention relates to an information processing system, an information processing method, and an information processing program.
特許文献1には、「イジングモデルの1つのスピンを3以上の状態で表現する値を記憶する第1のメモリセルと、1つのスピンに相互作用を及ぼす他のスピンからの相互作用を示す相互作用係数を記憶する第2のメモリセルと、他のスピンの状態を表現する値と前記相互作用係数を定数または変数として持つ関数に基づいて、1つのスピンの次状態を決定する論理回路と、を有する単位ユニットを複数備える半導体装置」が開示されている。 Patent Document 1 discloses a semiconductor device having multiple units each including a first memory cell that stores a value expressing one spin of an Ising model in three or more states, a second memory cell that stores an interaction coefficient indicating an interaction from other spins that interacts with one spin, and a logic circuit that determines the next state of one spin based on a function having a value expressing the state of the other spins and the interaction coefficient as a constant or variable.
また、特許文献2には、任意の結合を持つイジングモデルに対して、マルコフ連鎖モンテカルロ法の要求する理論的背景を満たしつつ、全スピンを同時に確率的更新して最適解探索を実現する方法が開示されている。
物理現象や社会現象の多くは相互作用モデルで表現可能である。相互作用モデルは、モデルを構成する複数のノードと、ノード間の相互作用、さらに必要であればノード毎に作用する係数で定義される。物理学や社会科学の分野においては、イジングモデルを始めとする種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。 Many physical and social phenomena can be expressed by interaction models. An interaction model is defined by the multiple nodes that make up the model, the interactions between the nodes, and, if necessary, coefficients that act on each node. In the fields of physics and social science, various models, including the Ising model, have been proposed, and all of them can be interpreted as a form of interaction model.
この相互作用モデルに関係づけられた指標を最小化又は最大化するノード状態を求めることが社会課題の解決において重要である。例えば、ソーシャルネットワークのクリークを検知する問題や、金融分野のポートフォリオ最適化問題が挙げられる。これらは、オペレーションズ・リサーチの分野では、無制約二値二次計画問題や混合二値二次計画問題に大別される。 Finding node states that minimize or maximize indicators related to this interaction model is important in solving social problems. Examples include the problem of detecting cliques in social networks and portfolio optimization problems in the financial sector. In the field of operations research, these are broadly classified as unconstrained binary quadratic programming problems and mixed binary quadratic programming problems.
本発明は上述の背景に鑑みてなされたもので、相互作用モデルの基底状態探索を含む最適化問題の最適解探索を高速化する技術の提供を目的とする。 The present invention has been made in consideration of the above-mentioned background, and aims to provide a technology that speeds up the search for optimal solutions to optimization problems, including ground state searches for interaction models.
上述した課題を解決するため、本発明の一態様では、行列積を用いて最適化問題の最適解探索を行う情報処理システムであって、記憶部と協働して処理を実行する処理部を有し、前記処理部は、前記最適化問題を、第1の状態変数ベクトルと所定行列と第2の状態変数ベクトルとの積を含んだ目的関数で表される二次計画問題に変換する変換処理と、前記所定行列と前記第1の状態変数ベクトルとを乗算して第1ベクトルを計算し、該第1ベクトルに基づくパラメータを含んだ確率分布に基づいて前記第2の状態変数ベクトルの確率的更新を行い、前記所定行列と前記第2の状態変数ベクトルとを乗算して第2ベクトルを計算し、該第2ベクトルに基づくパラメータを含んだ確率分布に基づいて前記第1の状態変数ベクトルの確率的更新を行う処理を繰り返すことで、前記第1の状態変数ベクトル及び前記第2の状態変数ベクトルの確率的更新を行う状態更新処理と、前記第1の状態変数ベクトルと前記第2ベクトルとの内積によって前記積を計算することで、前記目的関数の関数値を算出する関数値算出処理とを実行することを特徴とする。 In order to solve the above-mentioned problems, one aspect of the present invention is an information processing system that searches for an optimal solution to an optimization problem using a matrix product, and includes a processing unit that executes processing in cooperation with a storage unit, and the processing unit executes a conversion process that converts the optimization problem into a quadratic programming problem expressed by an objective function including a product of a first state variable vector, a predetermined matrix, and a second state variable vector, a state update process that performs probabilistic updates of the first state variable vector and the second state variable vector by repeating the processes of multiplying the predetermined matrix and the first state variable vector to calculate a first vector, performing probabilistic updates of the second state variable vector based on a probability distribution including a parameter based on the first vector, multiplying the predetermined matrix and the second state variable vector to calculate a second vector, and performing probabilistic updates of the first state variable vector based on a probability distribution including a parameter based on the second vector, and a function value calculation process that calculates the product by the inner product of the first state variable vector and the second vector to calculate a function value of the objective function.
本発明によれば、相互作用モデルの基底状態探索を含む最適化問題の最適解探索を高速化できる。
上記した以外の課題、構成及び効果は、以下の発明を実施するための形態の説明により明らかにされる。
According to the present invention, it is possible to speed up the search for an optimal solution to an optimization problem, including a ground state search for an interaction model.
Problems, configurations and effects other than those described above will become apparent from the following description of the preferred embodiment of the invention.
以下、図面を参照して本発明の実施形態を説明する。実施形態は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でもよい。 The following describes an embodiment of the present invention with reference to the drawings. The embodiment is an example for explaining the present invention, and some parts have been omitted or simplified as appropriate for clarity of explanation. The present invention can also be implemented in various other forms. Unless otherwise specified, each component may be singular or plural.
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。 When there are multiple components with the same or similar functions, they may be described using the same reference numerals with different subscripts. Also, when there is no need to distinguish between these multiple components, the subscripts may be omitted.
実施形態において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であればよく、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。 In some embodiments, the processing performed by executing a program is described. Here, the computer executes the program using a processor (e.g., CPU, GPU), and performs the processing defined by the program using storage resources (e.g., memory) and interface devices (e.g., communication ports). Therefore, the subject of the processing performed by executing the program may be the processor. Similarly, the subject of the processing performed by executing the program may be a controller, device, system, computer, or node having a processor. The subject of the processing performed by executing the program may be a calculation unit, and may include a dedicated circuit that performs specific processing. Here, the dedicated circuit is, for example, an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), or a CPLD (Complex Programmable Logic Device).
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施形態において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 The program may be installed on the computer from a program source. The program source may be, for example, a program distribution server or a computer-readable storage medium. When the program source is a program distribution server, the program distribution server may include a processor and a storage resource that stores the program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers. In addition, in an embodiment, two or more programs may be realized as one program, or one program may be realized as two or more programs.
(実施形態の理論的背景)
相互作用モデルに関連付けられた目的関数を最適化する最適化問題の変数をs1,…,sNのN個とし、各変数siの定義域Diを2値{-1,+1}又は連続値[-1,+1]のいずれかであるとする。各変数siの定義域Diがどちらであるかは問題毎に決定される。そして、最適化問題の目的関数Hは式1で表される。すなわち、目的関数Hが変数sの2次式で表される。
(Theoretical Background of the Embodiments)
The optimization problem for optimizing an objective function associated with the interaction model has N variables s 1 , ..., s N , and the domain D i of each variable s i is either a binary value {-1, +1} or a continuous value [-1, +1]. Which the domain D i of each variable s i is is determined for each problem. The objective function H of the optimization problem is expressed by Equation 1. That is, the objective function H is expressed as a quadratic expression of the variable s.
もしすべてのiに対してDi={-1,+1}ならば、この最適化問題はイジングモデルの基底状態探索問題と呼ばれる組合せ最適化問題である。本実施形態では、イジングモデルの基底状態探索を含む最適化問題において、マルコフ連鎖モンテカルロ法(以降、MCMC(Markov Chain Monte Carlo methods)と称する)を活用したアルゴリズムで最適解もしくは近似解を探索する。 If D i ={−1, +1} for all i, then this optimization problem is a combinatorial optimization problem called a ground state search problem of the Ising model. In this embodiment, in an optimization problem including a ground state search of the Ising model, an optimal solution or an approximate solution is searched for using an algorithm that utilizes Markov Chain Monte Carlo methods (hereinafter referred to as MCMC).
図1は、最適化問題の変数配列及び目的関数値の関係を例示する概念図であり、変数配列に対する目的関数値のランドスケープを表す。グラフの横軸は変数配列s、縦軸は目的関数H(s)の値である。MCMCは現在の状態sから、状態sの近傍のある状態s’への確率的な遷移を繰り返す。状態sから状態s’に遷移する確率を、遷移確率P(s,s’)と称する。遷移確率Pの例としてメトロポリス法(Metropolis method)や熱浴法(heat-bath algorithm)が挙げられる。 Figure 1 is a conceptual diagram illustrating the relationship between variable arrays and objective function values in an optimization problem, and shows the landscape of objective function values versus variable arrays. The horizontal axis of the graph is variable array s, and the vertical axis is the value of objective function H(s). MCMC repeats probabilistic transitions from the current state s to a state s' in the vicinity of state s. The probability of transitioning from state s to state s' is called the transition probability P(s, s'). Examples of transition probability P include the Metropolis method and the heat-bath algorithm.
遷移確率は温度と呼ばれるパラメータを有し、これは状態間の遷移のし易さを表す。温度を大きな値から徐々に減少させつつMCMCを実行するとき、目的関数値が最も低い状態(最低エネルギーの状態、図1のX)に漸近的に収束する。これを利用して最小化問題の最適解又は近似解を求める手法が、シミュレーティッド・アニーリング(以下、SA(Simulated Annealing)と称する)や非特許文献1で提案されたモメンタム・アニーリング(以下、MA(Momentum Annealing)と称する)である。 The transition probability has a parameter called temperature, which indicates the ease of transition between states. When MCMC is performed while gradually decreasing the temperature from a large value, the objective function value asymptotically converges to the state with the lowest value (the state with the lowest energy, X in Figure 1). Methods that utilize this to find an optimal solution or an approximate solution to a minimization problem include simulated annealing (hereinafter referred to as SA (Simulated Annealing)) and momentum annealing (hereinafter referred to as MA (Momentum Annealing)), which was proposed in Non-Patent Document 1.
式4に示す最小化問題を解くにあたり、代わりに式5の最小化問題を解くことを考える。ただし集合Srelaxed={s|si∈[-1,+1]}である。 In solving the minimization problem shown in Equation 4, consider instead solving the minimization problem in Equation 5, where the set S relaxed ={s|s i ∈[-1, +1]}.
式5の最適解をs*=[s1
*,…,sN
*]と表す。証明は割愛するが、式6で求まるs+=[s1
+,…,sN
+]は式4の最適解の一つとなる。本実施形態の目標は式2の最適解探索であるが、式5の最適解s*を求解後に式6の変換を得ても、所望の解s+を得られるということである。ただし、関数sgnは引数が0以上ならば+1、それ以外ならば-1を返す関数である。
The optimal solution to equation 5 is expressed as s * = [ s1 * , ..., sN * ]. Although proof is omitted, s + = [ s1 + , ..., sN + ] obtained by equation 6 is one of the optimal solutions to equation 4. The goal of this embodiment is to search for the optimal solution to
ここで、N次元ベクトルv=[v1,…,vN]を導入して、式7に示す関数H’を定義する。 Here, an N-dimensional vector v=[v 1 , . . . , v N ] is introduced to define a function H′ shown in Equation 7.
ただし、関数V(v)は式8に記す定義の通りである。 where function V(v) is defined as in Equation 8.
行列W=diag(w1,…,wN)は任意の対角行列で、viは[-1,+1]を動く実数である。式5に示す最小化問題の代わりにH’(s、v)の最小化問題である式9を導入する。 The matrix W=diag(w 1 , . . . , w N ) is an arbitrary diagonal matrix, and v i is a real number ranging from [−1, +1]. Instead of the minimization problem shown in Equation 5, we introduce Equation 9, which is a minimization problem of H'(s, v).
2つのN次元ベクトルx=s+v、y=s-vを定義する。本来解きたい最適化問題の目的関数はHのみだが、ここにVという関数を導入することで、MCMCで並列更新可能な関数を新たに得られるようにしている。すると、関数H’は式10と書き直せる。
Define two N-dimensional vectors x = s + v and y = s - v. The objective function of the optimization problem we want to solve is originally just H, but by introducing a function called V, we can obtain a new function that can be updated in parallel using MCMC. Then, the function H' can be rewritten as
つまり、式5の最小化問題は式11の最小化問題と言い換えられる。
In other words, the minimization problem of Equation 5 can be rephrased as the minimization problem of
式11の最適解をx*、y*と表すと、s*=(x*+y*)/2なる等式が成り立つ。これらの議論はWが零行列でも成り立つ。
If the optimal solution of
以上より、式2で表す最適化問題の最適解は、式11に示す制約付き二次計画問題の解から求められる。この解を求めるために、MCMCを活用する。
From the above, the optimal solution to the optimization problem expressed by
図2は、最適化問題の目的関数の各変数間の関係を例示する図であり、式11における関数Gの各変数どうしの関係を示したグラフィカルモデルを表す。図2では、N=6の場合を例示しているが、一般的なNについても同様である。関数Gの各変数どうしの関係は、完全2部グラフで表すことができる。関数G内で変数xiに乗ぜられる変数は、y1,…,yNとxiのみである。MCMCは変数値を確率的に更新するとき、その変数に係わる変数の値を用いる。つまり、変数x1の値を更新するときy1,…,yN及びx1を求め、それ以外の変数(ここではx2,…,xN)を参照しない。これは他の変数、例えばx2の値の更新でも同様である。ゆえに、変数配列yの値が一定ならば、配列xのそれぞれの値を独立に同時に確率的更新してもMCMCの理論的要請は破らない。
FIG. 2 is a diagram illustrating the relationship between each variable of the objective function of the optimization problem, and shows a graphical model showing the relationship between each variable of the function G in
同様に変数yiに乗ぜられる変数も、x1,…,xNとyiのみである。ゆえに、変数配列xの値が一定の下で、配列yのそれぞれの値を独立に同時に確率的更新できる。 Similarly, the variables multiplied by the variable yi are only x1 , ..., xN and yi . Therefore, when the value of the variable array x is constant, each value of the array y can be independently and simultaneously stochastically updated.
以上より、「x1,…,xNの同時更新」と「y1,…,yNの同時更新」を繰り返す手続きで構成されたMCMCを実行することで、並列化による高速化という利点を享受しながら関数Gを最小化する配列x、yを探索できる。 As described above, by executing MCMC consisting of a procedure of repeating “simultaneous updating of x1 , ..., xN ” and “simultaneous updating of y1 , ..., yN ”, it is possible to search for arrays x and y that minimize the function G while enjoying the advantage of high speed achieved by parallelization.
本実施形態の議論では、行列Jに制約を設けていないことに注意されたい。たとえば行列Jの全要素が非零である場合にも、上記の議論が成り立つため、並列更新が可能である。 Please note that in the discussion of this embodiment, no constraints are placed on matrix J. For example, even if all elements of matrix J are nonzero, the above discussion still holds, and parallel updates are possible.
図3は、最適化問題の目的関数の各変数間の関係を例示する図であり、全結合グラフの例である。図3では、N=6の場合を例示しているが、一般的なNについても同様である。一方で、原問題である式2の最小化問題に対して直接MCMCを適用する場合、変数配列sの係わり方が図3に示すように全結合グラフで表現されるため、一度に一変数しか確率更新できず、逐次更新に限定される。
Figure 3 is an example of a fully connected graph, illustrating the relationships between the variables of the objective function of an optimization problem. Figure 3 illustrates the case where N = 6, but the same is true for general values of N. On the other hand, when directly applying MCMC to the original problem, the minimization problem of
ここからは、各変数に対する確率的更新の手続きを述べる。更新対象の変数をxiとする。変数y1,…,yNの値が一定下では、温度Tのボルツマン分布における変数xiの存在確率p(xi)は式12を満たす。
From here, the procedure for probabilistic update for each variable will be described. The variable to be updated is denoted as x i . When the values of variables y 1 , . . . , y N are constant, the existence probability p(x i ) of variable x i in the Boltzmann distribution of temperature T satisfies
ただし、変数Aiは式13で求める値である。
Here, the variable A i is the value calculated using
変数xiとyiは|xi|+|yi|≦2であるため、xiを動かせる範囲は-(2-|yi|)以上(2-|yi|)以下である。よって、変数xiは平均Ai/wi、分散T/wiの正規分布で-(2-|yi|)以上(2-|yi|)以下を定義域とする切断正規分布を基に、xiの次状態をサンプリングすればよい。この方法ではxiの現在の状態には依らずに次状態を決めるということである。yiについても同様である。本明細書では、xとyの変数を区別しない場合sと表記することがある。 Since variables x i and y i are |x i |+|y i |≦2, the range in which x i can be moved is -(2-|y i | ) or more and (2-|y i | ) or less. Therefore, the next state of variable x i can be sampled based on a truncated normal distribution with a domain of -(2-|y i |) or more and (2-|y i |) or less, in which the normal distribution has a mean A i /w i and a variance T/w i . This method means that the next state is determined regardless of the current state of x i . The same applies to y i . In this specification, when the variables x and y are not distinguished, they may be written as s.
標準正規分布に従う乱数はBox-Muller法で生成可能である。ここでは定義域が限定されるため、非特許文献2で示されたアルゴリズムを用いればよい。
Random numbers that follow the standard normal distribution can be generated using the Box-Muller method. Since the domain of definition is limited here, the algorithm shown in
最適解探索は、温度0における平衡状態からのサンプリングと見なせる。そのため、良質な解探索の実現には、平衡状態への短時間での収束が好ましい。平衡状態への収束性を高めるため、MCMCでは様々な技術が提案されており、これらの活用も可能である。たとえば、非特許文献3は過剰緩和法を提案している。これは次状態の候補として、温度Tのボルツマン分布から1つだけではなく、K個の状態をサンプリングする。そして、サンプリングしたK個の状態に加えて、現在の状態の計(K+1)個の状態を並び替えてxc 0≦…≦xc r=xi≦xc Kと表す。つまり、現在の状態は(K+1)個の値のうち、小さい方から(r+1)番目ということである。そしてxc K+1-rを次状態に採用する。この方法では、次状態がxiの現在の状態に依存する。 The search for an optimal solution can be regarded as sampling from an equilibrium state at temperature 0. Therefore, in order to realize a good solution search, it is preferable to converge to an equilibrium state in a short time. In order to improve the convergence to an equilibrium state, various techniques have been proposed in MCMC, and these can also be utilized. For example, Non-Patent Document 3 proposes an overrelaxation method. In this method, not only one state but K states are sampled from the Boltzmann distribution of temperature T as candidates for the next state. Then, in addition to the sampled K states, the total (K+1) states of the current state are rearranged and expressed as x c 0 ≦...≦x c r =x i ≦x c K. In other words, the current state is the (r+1)th value from the smallest of the (K+1) values. Then, x c K+1-r is adopted as the next state. In this method, the next state depends on the current state of x i .
さて、上述のように、最適解探索は、相互作用モデルの状態を表す変数x、yの確率的遷移を繰り返す確率的探索プロセスによって行われる。しかし、確率的遷移の結果、局所解に陥り、多くの試行回数を経ても最適解もしくは近似解が求まらないケースがある。そこで、本実施形態では、同一モデルの異なる状態にそれぞれ対応する複数のレプリカを作成し、レプリカ毎に確率的探索プロセスを並列かつ独立に実行する。そして、目的関数値に基づいて状態の評価を行い、評価が高いレプリカを優先的に選択して複製するリサンプリングを行うことで、局所解に陥ることなく大局的な状態更新を行って、最適解探索の高速化を図る。 As described above, the search for an optimal solution is performed by a stochastic search process that repeats stochastic transitions of the variables x and y that represent the state of the interaction model. However, as a result of the stochastic transitions, there are cases where a local solution is reached and an optimal solution or an approximate solution cannot be found even after many trials. Therefore, in this embodiment, multiple replicas corresponding to different states of the same model are created, and the stochastic search process is executed in parallel and independently for each replica. Then, the state is evaluated based on the objective function value, and resampling is performed to preferentially select and replicate replicas with high evaluations, thereby performing global state updates without falling into a local solution and speeding up the search for an optimal solution.
図4は、複数のレプリカにおける最適解探索処理を例示する図である。図4では、各ノードにそれぞれ1つのレプリカが配置されるとする。 Figure 4 illustrates an example of an optimal solution search process for multiple replicas. In Figure 4, it is assumed that one replica is placed on each node.
例えば温度T=T0(時間ステップ0)でそれぞれの初期状態がセットされた複数のノード、例えば3個のノード#1、#2、#3に配置されるレプリカ1-1、1-2、1-3を用いて、独立かつ並行して最適解探索が行われる。温度T=Tt(時間ステップt)になると、それまで独立かつ並行して最適解探索が行われたレプリカ1-1、1-2、1-3の目的関数値(式11の関数G)がそれぞれ算出される。R個のレプリカのうちのj番目のレプリカ1-j(j=1,・・・,R)の目的関数を関数Gjとする。 For example, replicas 1-1, 1-2, and 1-3 arranged on three nodes #1, #2, and #3, each of which has its initial state set at temperature T=T 0 (time step 0), are used to independently and in parallel search for an optimal solution. When temperature T=T t (time step t), the objective function values (function G in Equation 11) of replicas 1-1, 1-2, and 1-3, which have been independently and in parallel search for an optimal solution up until that point, are calculated. The objective function of the j-th replica 1-j (j=1, ..., R) of the R replicas is defined as function G j .
続いて、レプリカ1-j(j=1,・・・,R)の重みαjを、式14のように算出する。
Next, the weight α j of replica 1-j (j=1, . . . , R) is calculated as shown in
ただし、Δβtは、リサンプリングを行う際の時間ステップtにおける温度Ttの逆温度βt(=1/Tt)の差分(βt-βt-1)である。このレプリカ1-jの重みαjから、リサンプリング後の各レプリカ1-jの出現頻度を表す出現確率qjを式15のように算出する。
Here, Δβ t is the difference (β t -β t-1 ) of the inverse temperature β t (=1/T t ) of the temperature T t at the time step t when resampling is performed. From the weight α j of this replica 1-j, the occurrence probability q j representing the occurrence frequency of each replica 1-j after resampling is calculated as shown in
ただし、式15の右辺の分母は、リサンプリング前の全てのレプリカ1-jの重みαjの和を表す。すなわち、式15は、重みαjを正規化する。
However, the denominator on the right side of
そして、リサンプリング後のレプリカとして、各レプリカ1-jの選択数Njが式16のように決定される。選択数Njとは、次の時間ステップの最適解探索で用いるレプリカ1-jの個数である。Njの小数点以下は適宜端数処理される。Rはレプリカの総数を表し、リサンプリングの前後で一定とするが、リサンプリング後に増加又は減少するとしてもよい。
Then, the selection number Nj of each replica 1-j is determined as the replica after resampling as shown in
そして、選択数Njに応じてリサンプリング後のレプリカのコピー先が決定され、必要に応じて各レプリカ1-jの情報がコピーされる。 Then, the copy destination of the replica after resampling is determined according to the selection number Nj , and the information of each replica 1-j is copied as necessary.
図4の例示では、R=3である。レプリカ1-1はR×q1=0.6、レプリカ1-2はR×q2=2.1、レプリカ1-3はR×q3=0.03であるので、四捨五入によってレプリカ1-1が1個、レプリカ1-2が2個、レプリカ1-3が0個とそれぞれ選択される。すなわち、リサンプリング後のレプリカは、1個のレプリカ1-1及び2個のレプリカ1-2である。レプリカ1-1及び1個目のレプリカ1-2は、リサンプリング前から引き続いて用いられる。そして、2個目のレプリカ1-2は、ノード#2には配置できないため、レプリカ1-3が選択されないノード#3にレプリカ1-2の情報が転送される。リサンプリング後、1個のレプリカ1-1及び2個のレプリカ1-2のそれぞれについて確率的探索プロセスが並列かつ独立に実行される。
In the example of FIG. 4, R=3. Replica 1-1 is R×q 1 =0.6, replica 1-2 is R×q 2 =2.1, and replica 1-3 is R×q 3 =0.03, so by rounding, one replica 1-1, two replicas 1-2, and zero replicas 1-3 are selected. That is, the replicas after resampling are one replica 1-1 and two replicas 1-2. Replica 1-1 and the first replica 1-2 are used continuously from before resampling. And, since the second replica 1-2 cannot be placed on
最適解探索においてレプリカが並列に実行され、所定温度まで低下する等の実行終了条件が充足されると、複数のレプリカのうちの関数Gの値が最小であるレプリカの状態を表す変数に基づいて最適解もしくは近似解が出力される。 When searching for an optimal solution, the replicas are executed in parallel, and when an execution termination condition is met, such as the temperature dropping to a certain level, an optimal solution or an approximate solution is output based on a variable representing the state of the replica with the smallest value of function G among the multiple replicas.
以上を踏まえて、図5~図7を参照して、本実施形態に係る情報処理装置10の構成を説明する。
Based on the above, the configuration of the
(情報処理装置10のハードウェア構成)
図5は、実施形態に係る情報処理装置10を実現するコンピュータのハードウェアを例示する図である。情報処理装置10は、ハードウェアとして、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、通信装置16、1又は複数の演算装置17、及びこれらの装置を通信可能に接続するシステムバス18を有する。情報処理装置10は、例えば、その一部又は全部がクラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されるものであってもよい。また情報処理装置10は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されるものであってもよい。
(Hardware configuration of information processing device 10)
5 is a diagram illustrating hardware of a computer that realizes an
プロセッサ11は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)を用いて構成されている。主記憶装置12は、プログラムやデータを記憶する装置である。例えば、ROM(Read Only Memory)、SRAM(Static Random Access Memory)、NVRAM(Non Volatile RAM)、マスクROM(Mask Read Only Memory)、PROM(Programmable ROM)等)、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)等である。補助記憶装置13は、HDD(Hard Disk Drive)、フラッシュメモリ(Flash Memory)、SSD(Solid State Drive)、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)等である。補助記憶装置13に格納されているプログラムやデータは、随時、主記憶装置12に読み込まれる。
The
入力装置14は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal Display)、グラフィックカード等)や音声出力装置(スピーカ)、印字装置等である。通信装置16は、他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。
The
演算装置17は、組合せ最適化問題の最適解探索に関する処理を実行する装置である。演算装置17は、例えば、GPU(Graphics Processing Unit)のように、情報処理装置10に装着する拡張カードの形態を取るものであってもよい。演算装置17は、例えば、CMOS(Complementary Metal Oxide Semiconductor)回路、FPGA)、ASIC等のハードウェアによって構成される。
The
演算装置17は、制御装置、記憶装置、システムバス18に接続するためのインタフェース等を含み、システムバス18を介してプロセッサ11との間でコマンドや情報の送受を行う。演算装置17は、例えば、通信線を介して他の演算装置17と通信可能に接続され、他の演算装置17と協調して動作するものであってもよい。演算装置17により実現される機能を、例えば、プロセッサ(CPU、GPU等)にプログラムを実行させることにより実現してもよい。
The
情報処理装置10において、プログラムが補助記憶装置13から読み出されて、プロセッサ11及び主記憶装置12の協働により実行されることにより、情報処理装置10の機能が実現される。あるいは、情報処理装置10の機能を実現するためのプログラムは、通信装置16を介した通信により外部のコンピュータから取得されてもよい。あるいは、情報処理装置10の機能を実現するためのプログラムは、可搬型の記録媒体(光学ディスク、磁気ディスク、光磁気ディスク、半導体記憶媒体等)に記録され、媒体読取装置により読み出されてもよい。
In the
また、情報処理装置10は、複数の装置が協働して処理を実行する情報処理システムであってもよい。情報処理システムを実現するプログラムは、各プログラムによって各装置に各機能を実現させることで、情報処理装置10と同様の機能を実現する。
In addition, the
(演算回路500の構成)
図6は、実施形態に係る演算装置17を構成する演算回路500を例示する機能ブロック図であり、演算装置17の動作原理を示す。各演算装置17は、1又は複数の演算回路500を含んで構成される。各演算回路500は、1つのレプリカに対応する。本実施形態では、演算回路500は、例えば後述の差分計算ブロック514、サンプリングブロック515、次状態決定ブロック516等が、GPUやベクトル型計算機などに搭載された多数の演算器等を用いるソフトウェアで実装されるとする。しかし、これに限らず、ハードウェアで実装されてもよい。演算回路500は、変数配列x1,…,xN又は変数配列y1,…,yNを温度Tにおけるボルツマン分布(式12)からサンプリングする機能を実現する。
(Configuration of arithmetic circuit 500)
FIG. 6 is a functional block diagram illustrating an
演算回路500は、変数メモリ511、非線形係数メモリ512、線形係数メモリ513、差分計算ブロック514、サンプリングブロック515、及び次状態決定ブロック516を含む。
The
各演算回路500の変数メモリ511には、前述した変数x1,…,xN及びy1,…,yNを示す情報が格納される(図2参照)。
The
非線形係数メモリ512には、行列Jを表す情報が格納される。行列Jは一般に対称行列であり、この対称性を用いて非線形係数メモリ512の使用量を削減することができる。線形係数メモリ513には、ベクトルhを表す情報が格納される。
The
演算装置17には、制御信号EN、重み信号SW、及び温度信号TEが入力される。
The control signal EN, the weight signal SW, and the temperature signal TE are input to the
制御信号ENは、H(high)とL(low)の値を周期的に繰り返す信号で、変数配列xとyいずれを更新しているかを表す。たとえば、ENがHのときは変数配列xを更新、Lのときはyを更新と定める。この制御信号ENにより、変数x1,…,xNを同時に更新し、また変数y1,…,yNを同時に更新する。図5では簡略化のため制御信号ENはサンプリングブロック515のみに入力しているが、変数メモリ511等の本信号を必要とする他の箇所に対しても同様に入力される。
The control signal EN is a signal that periodically repeats the values of H (high) and L (low), and indicates whether the variable array x or y is being updated. For example, when EN is H, the variable array x is updated, and when EN is L, y is updated. This control signal EN simultaneously updates variables x1 , ..., xN , and simultaneously updates variables y1 , ..., yN . For simplification in Fig. 5, the control signal EN is input only to sampling block 515, but it is also input in the same way to other locations that require this signal, such as
重み信号SWは、対角行列Wの対角成分を表すN要素のベクトルを表す信号である。 The weight signal SW is a signal that represents a vector of N elements that represent the diagonal components of the diagonal matrix W.
差分計算ブロック514には、非線形係数メモリ512に格納されている行列Jの値、線形係数メモリ513に格納されているベクトルh、重み信号SW、及び変数メモリ511に格納されている変数s(x又はy)が入力される。差分計算ブロック514は、制御信号ENがHのとき(J+diag(w1,・・・,wN))y+h、ENがLのとき(J+diag(w1,・・・,wN))x+hを出力する。この出力値は前述のAiに相当する。
The
サンプリングブロック515は、差分計算ブロック514の出力と重み信号SW、温度パラメータの値を保持する温度信号TE、制御信号EN、及び他の変数の値を受けとる。そしてi番目の要素として、制御信号ENがHのとき-(2-|yi|)以上(2-|yi|)以下、ENがLのとき-(2-|xi|)以上(2-|xi|)以下を定義域とする、式12で表される切断正規分布からランダムにサンプリングして出力する。
次状態決定ブロック516は、サンプリングブロック515から出力される1又は複数の値を基に、変数の次状態を決定する。もし、MCMCの更新則として単なる熱浴法に定めたならば、次状態決定ブロック516はサンプリングブロック515の出力値を1つだけ受け取り、それをそのまま変数メモリ511に書き込めばよい。また、MCMCの更新則として公知の過剰緩和法を用いるならば、次状態決定ブロック516はサンプリングブロック515から複数の値、そして変数メモリ511から更新対象の変数の現在値を受け取り、過剰緩和法に従って1つ選択して、変数メモリ511に書き込む。周知のように、過剰緩和法では、直前の状態との相関が負となるように次の状態を決める。
The next
(情報処理装置10の機能構成)
図7は、実施形態に係る情報処理装置10の構成を例示する機能ブロック図であり、情報処理装置10が備える主な機能(ソフトウェア構成)を示す。情報処理装置10は、処理部101、記憶部102、及び、1又は複数の演算装置17を有する。
(Functional configuration of information processing device 10)
7 is a functional block diagram illustrating the configuration of the
処理部101は、モデル変換部101a、モデル係数設定部101b、重み設定部101c、変数値初期化部101d、温度設定部101e、相互作用演算実行部101f、及び変数値読出部101gを有する。これらの機能は、プロセッサ11が主記憶装置12と協働して補助記憶装置13に格納されているプログラムを読み出して実行することにより、もしくは、演算装置17が備えるハードウェアにより実現される。なお、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(Data-Base Management System)等の他の機能を備えていてもよい。
The
記憶部102は、主記憶装置12又は補助記憶装置13により実現され、問題データ102a、二次計画形式問題データ102b、定義域データ102c、及び演算装置制御プログラム102dを記憶する。問題データ102aは、例えば、最適化問題等を公知の所定の記述形式で記述したデータである。問題データ102aは、例えば、ユーザがユーザインタフェース(入力装置、出力装置、通信装置等)を介して設定される。
The
二次計画形式問題データ102bは、モデル変換部101aが、問題データ102aを式4が示す二次計画問題のフォーマットに合致する形式のデータに変換することにより生成されるデータである。この変換にあたり、与えられた各変数の定義域は、定義域データ102cに書き込まれる。定義域データ102cは、例えば各変数が2値を取るか実数値を取るかを示している。演算装置制御プログラム102dは、相互作用演算実行部101fが演算装置17を制御する際に実行する、もしくは相互作用演算実行部101fが個々の演算装置17にロードして演算装置17に実行させるプログラムである。
The quadratic
モデル変換部101aは、問題データ102aを二次計画問題のフォーマットである二次計画形式問題データ102bに変換する。このために、式1から式11を導出する機能を、ソフトウェアあるいはハードウェアとしてモデル変換部101aに実装しておけばよい。モデル変換部101aの機能は必ずしも情報処理装置10に実装されていなくてもよく、情報処理装置10が、他の情報処理装置等で生成された二次計画形式問題データ102bを入力装置14や通信装置16を介して取り込むようにしてもよい。
The
モデル係数設定部101b、重み設定部101c、変数値初期化部101d、及び温度設定部101eは、演算装置17にR個の演算回路500を生成する。そして、R個の演算回路500に対して以下の処理を実行することで、R個のレプリカ1-j(j=1,2,・・・,R)を作成する。R個の演算回路500は、1又は複数の演算装置17に配置される。
The model
モデル係数設定部101bは、二次計画形式問題データ102bに基づく、式4の行列Jを非線形係数メモリ512に、ベクトルhを線形係数メモリ513に設定する。
The model
変数値初期化部101dは、演算回路500の変数メモリ511に格納されている各変数の値を初期化する。変数値初期化部101dは、例えば、各変数の値を-1以上+1以下から一様に、ランダムサンプリングして決めればよい。この際に、変数に関する制約である|xi|+|yi|≦2を満たすよう注意しなければならない。また、このときの各変数の値は連続値で扱われていることに留意されたい。
The variable
温度設定部101eは、相互作用演算実行部101fが最適解探索を行う際に用いる温度Tを設定する。
The
相互作用演算実行部101fは、温度設定部101eにより設定された各温度Tについて、式11で表す関数Gを最小化する変数配列x及びyを探索する演算(以下、相互作用演算処理と称する。)をレプリカ1-j毎の各演算回路500に実行させる。相互作用演算処理に際し、相互作用演算実行部101fは、例えば、温度Tを高いほうから低い方に向けて変化させる。
The interaction
具体的には、各レプリカ1-jにおける変数配列の確率的な更新は、式12、式13のように、変数xの更新の際に変数yが用いられ、変数yの更新の際に変数xが用いられる。具体的には、式12、式13から分かるように、変数xの更新の際には、行列Jと変数yの乗算結果が用いられる。同様に、変数yの更新の際には、行列Jと変数xの乗算結果が用いられる。
Specifically, the probabilistic update of the variable array in each replica 1-j uses variable y when updating variable x, and variable x when updating variable y, as shown in
また、相互作用演算実行部101fは、リサンプリングを所定周期で実行する。すなわち、相互作用演算実行部101fは、時間ステップtの温度Tにおいて、各演算回路500(ノード)に作成されたレプリカ1-j毎のエネルギー(目的関数値(関数Gjの値))を計算する。
The interaction
ここで、関数Gjの行列Jと変数yの乗算(式11の右辺第1項)は、計算負荷が大きい。しかし、この行列Jと変数yの乗算は、変数xの前回の更新ステップの際に行われており、乗算結果Jyがワークエリアに格納されている。そこで、関数Gjの値の算出の際に、行列Jと変数yの乗算を行う代わりに、ワークメモリに格納されている乗算結果Jyを用いる。乗算結果Jyはベクトルであるので、関数Gjの右辺第1項の計算は、ベクトルxTとの内積計算に置き換わる。このように、変数x、yの更新過程の計算結果を目的関数値の算出に用いることで、目的関数値の計算量を抑制し、最適化探索の計算速度の高速化を図ることができる。 Here, the multiplication of the matrix J of the function G j by the variable y (the first term on the right side of Equation 11) has a large calculation load. However, this multiplication of the matrix J by the variable y has been performed in the previous update step of the variable x, and the multiplication result Jy is stored in the work area. Therefore, when calculating the value of the function G j , instead of multiplying the matrix J by the variable y, the multiplication result Jy stored in the work memory is used. Since the multiplication result Jy is a vector, the calculation of the first term on the right side of the function G j is replaced with an inner product calculation with the vector x T. In this way, by using the calculation results of the update process of the variables x and y to calculate the objective function value, the calculation amount of the objective function value can be suppressed, and the calculation speed of the optimization search can be increased.
そして、相互作用演算実行部101fは、時間ステップtにおけるレプリカ1-j毎のエネルギーをもとに、式14、式15、式16から、リサンプリング後の各レプリカ1-jの選択数Njを決定する。
Then, the interaction
そして、相互作用演算実行部101fは、各レプリカ1-jの選択数Njのうち、リサンプリング後の増加分の各レプリカ1-jのコピー先を決定する。各レプリカ1-jのコピー先は、コピー元のレプリカ1-jと同一の演算装置17(自ノード)の上限内で自ノードが優先的に決定される。自ノードの上限を超過する場合には、レプリカのコピー先は、それぞれの上限内で自ノードとは異なる他の演算装置17(他ノード)がランダムに決定される。上限とは、各ノードのリソース上限、又は、リサンプリング前に各ノードに配置されていたレプリカの数、である。そして、コピー先へコピー元のレプリカの情報が転送される。
Then, the interaction
このように、自ノード内を優先的にコピー先とし、レプリカの情報のコピーの際に通信が発生する他ノードへのコピーを極力回避することで、情報転送の待ち時間の発生を抑制し、計算速度の低下を防止できる。 In this way, by giving priority to the copy destination within the own node and avoiding copying to other nodes where communication occurs when copying replica information, it is possible to reduce waiting times for information transfer and prevent a decrease in calculation speed.
変数値読出部101gは、相互作用演算実行部101fによる最適解探索が終了すると、関数Gの値が最小のレプリカに対応する演算回路500の変数メモリ511に格納されている変数配列x及びyを読み出す。ここで読み出される値は、式11の解である。上述の議論に従って、N次元ベクトルs*=(x+y)/2を計算する。そして定義域データ102cを読み出し、式6で得られるベクトルs+を最終的な解として出力装置15や通信装置16に出力する。つまり、定義域データ102cにてi番目の定義域が{-1,+1}と判明すればsgn(s*i)、i番目の定義域が[-1,+1]ならばsi自体を出力するということである。このようにして、定義された値域に応じた解が求められる。
When the interaction
(最適解探索処理のフロー)
図8は、実施形態に係る情報処理装置10が実行する最適解探索処理を例示するフローチャートである。最適解探索処理は、例えば、入力装置14を介してユーザからの指示等を受け付けることにより開始される。
(Flow of optimal solution search process)
8 is a flowchart illustrating an optimum solution search process executed by the
S11では、モデル変換部101aは、問題データ102aを二次計画形式問題データ102bに変換する。二次計画形式問題データ102bでは、例えば式1で表現される目的関数Hにおける行列J、ベクトルhが任意の形式で表現される。記憶部102が既に二次計画形式問題データ102bを記憶している場合には、S11が省略される。S11の処理と、S12以降の処理とは、夫々を異なる装置で実行するようにしてもよい。またS11の処理と、S12以降の処理とを異なるタイミングで実行するようにしてもよい(例えば、S11の処理を事前に行っておくことが考えられる)。
In S11, the
S12~S15の処理は、演算装置17のR個の演算回路500にて作成されるR個のレプリカについて実行される。
The processes of S12 to S15 are performed for R replicas created by R
S12では、モデル係数設定部101bは、非線形係数メモリ512及び線形係数メモリ513に行列Jとベクトルhの値を設定する。メモリの値は、ユーザインタフェース(例えば、入力装置14、出力装置15、通信装置16等により実現される)を介してユーザが設定又は編集することができる。
In S12, the model
S13では、重み設定部101cは、重み信号SWの値を決定する。前述の式8の説明通り、最適解を探索する上で重み信号SWは任意の値を取ることが許される。そのため、信号値は常に0としてもよい。この場合は計算の負荷を軽減することができる。また、特許文献2の式3~式5に示すように行列Jの固有値から決定してもよい。あるいは、行列Jの行和から決定してもよい。重み信号SWの値算出の計算は、演算装置17内又はプロセッサ11で実行してもよい。あるいはユーザが自分で設定してもよい(S13)。
In S13, the
S14では、変数値初期化部101dは、変数メモリ511に格納されている各変数の値を初期化する。変数メモリ511に格納する値は連続値である。先に述べたように初期値はランダムでよい。以上で、式11を表現するパラメータが設定されたことになる。
In S14, the variable
S15では、温度設定部101eは、最適解探索にて使用する温度パラメータの系列Tγ(γ=1,2,3,…)を初期設定する。なお、上記の添字γは設定される温度Tの種類を表す。温度Tの設定方法については、例えば特許文献1の方法を採用可能である。
In S15, the
S16では、相互作用演算実行部101fは、相互作用演算処理を実行する。相互作用演算処理の詳細は、図9を参照して後述する。
In S16, the interaction
S17では、相互作用演算実行部101fは、停止条件が成立したか否か(例えば、温度Tが予め設定された最低温度に達したか否か)を判定する。相互作用演算実行部101fは、停止条件が成立したと判定した場合(S17:Yes)、S18に処理を移す一方、停止条件が成立していないと判定した場合(S17:No)、S16に処理を戻す。
In S17, the interaction
S18では、変数値読出部101gは、関数Gjの値が最小のレプリカ1-jの演算回路500から変数メモリ511に格納されている変数の値を読み出す。また、変数値読出部101gは、定義域データ102cに格納されている二次計画形式問題データ102bの各変数の定義域を読み出す。そして、変数値読出部101gは、式6に基づいた変換を通じたベクトルを算出して、式2もしくは式4の解として出力する。以上で最適解探索処理は終了する。
In S18, the variable
(相互作用演算処理の詳細フロー)
図9は、図8のS16の相互作用演算処理の詳細を例示するフローチャートである。S161では、相互作用演算実行部101fは、各演算回路500の演算により、各レプリカ1-jの変数配列の確率的な同時更新を実行する。
(Detailed flow of interaction calculation process)
Fig. 9 is a flowchart illustrating details of the interaction calculation process in S16 in Fig. 8. In S161, the interaction
S162では、相互作用演算実行部101fは、レプリカ1-j毎の関数Gj(式11)の値を算出する。上述したように、レプリカ1-j毎の関数Gjの目標関数値の算出の際に、変数x、yの更新過程の計算結果を用いる。なお、関数Gjの値の算出は、各レプリカ1-jの演算回路500が行ってもよい。
In S162, the interaction
S163では、相互作用演算実行部101fは、各レプリカ1-jの選択数Nj及び増加分のレプリカのコピー先を決定する。
In S163, the interaction
S164では、相互作用演算実行部101fは、S163で決定したコピー先のノード(自ノード又は他ノード)へコピーするレプリカの情報を送信する。
In S164, the interaction
(レプリカ数の推移のシミュレーション結果)
図10は、リサンプリングによるレプリカ数の推移のシミュレーション結果を例示す図である。図10では、縦軸は時刻を表し、横軸はレプリカ数を表す。図10では、最も高い温度の時刻0でそれぞれ1個であったレプリカ1-1、1-2、1-3、1-4、1-5、1-6、1-7、1-8、1-9、1-10がリサンプリングの繰り返しを経て増減する様子を表している。図10では、時刻0におけるオリジナルのレプリカが同一であるレプリカは、全て同一の系統としている。そのため、時刻1以降で同一の塗りつぶし又はハッチングのパターンが施されているレプリカは、同じ変数を持っているわけではないことに注意されたい。例えば最も低い温度の時刻50のレプリカ1-6及び1-9のように、一部の目的関数値が優良な系統のレプリカが多数を占めることで、目的関数値がより迅速に最低状態に収束する可能性が高まり、最適化問題をより高速処理できるようになる。
(Simulation results of the change in the number of replicas)
FIG. 10 is a diagram illustrating a simulation result of the transition of the number of replicas due to resampling. In FIG. 10, the vertical axis represents time, and the horizontal axis represents the number of replicas. FIG. 10 shows how replicas 1-1, 1-2, 1-3, 1-4, 1-5, 1-6, 1-7, 1-8, 1-9, and 1-10, each of which was one at time 0 with the highest temperature, increase and decrease through repeated resampling. In FIG. 10, replicas with the same original replica at time 0 are all in the same system. Therefore, it should be noted that replicas with the same filled or hatched pattern after time 1 do not necessarily have the same variables. For example, replicas with some excellent objective function values, such as replicas 1-6 and 1-9 at time 50 with the lowest temperature, are predominant, which increases the possibility that the objective function value will converge to the lowest state more quickly, and the optimization problem can be processed more quickly.
(実施形態を含む開示技術の効果)
上述の実施形態を含む開示技術では、最適化問題を、第1の状態変数ベクトルと所定行列と第2の状態変数ベクトルとの積を含んだ目的関数で表される二次計画問題に変換し、目的関数の関数値を算出する際、第1の状態変数ベクトルと第2ベクトルとの内積によって目的関を計算する。ここで、第2ベクトルは、所定行列と第1の状態変数ベクトルとを乗算して第1ベクトルを計算し、第1ベクトルに基づくパラメータを含んだ確率分布に基づいて第2の状態変数ベクトルの確率的更新を行い、所定行列と第2の状態変数ベクトルとを乗算して第2ベクトルを計算し、第2ベクトルに基づくパラメータを含んだ確率分布に基づいて第1の状態変数ベクトルの確率的更新を行う処理を繰り返すことで第1の状態変数ベクトル及び第2の状態変数ベクトルの確率的更新を行った際の第2ベクトルが記憶部に記憶されたものである。よって、最適解探索の反復計算で現れた計算過程の結果を再利用することで、低コストで目的関数値を計算でき、最適解探索の処理を高速化できる。
(Effects of the Disclosed Technology Including the Embodiments)
In the disclosed technology including the above-mentioned embodiment, the optimization problem is converted into a quadratic programming problem represented by an objective function including a product of a first state variable vector, a predetermined matrix, and a second state variable vector, and when calculating the function value of the objective function, the objective function is calculated by the inner product of the first state variable vector and the second vector. Here, the second vector is a second vector obtained by performing the stochastic update of the first state variable vector and the second state variable vector by repeating the process of multiplying the first state variable vector by a predetermined matrix and the first state variable vector, performing the stochastic update of the second state variable vector based on a probability distribution including a parameter based on the first vector, multiplying the second state variable vector by a predetermined matrix and the second state variable vector, and performing the stochastic update of the first state variable vector based on a probability distribution including a parameter based on the second vector, and the second vector is stored in the storage unit. Therefore, by reusing the result of the calculation process that appears in the iterative calculation of the optimal solution search, the objective function value can be calculated at low cost, and the process of the optimal solution search can be accelerated.
また、開示技術では、状態更新及び関数値算出を、第1の状態変数ベクトル及び第2の状態変数ベクトルに対応する複数のレプリカ毎に独立かつ並行に実行するので、個々の局所解にとらわれずに、大局的に状態更新を行うことができる。 In addition, in the disclosed technology, state updates and function value calculations are performed independently and in parallel for multiple replicas corresponding to the first state variable vector and the second state variable vector, so state updates can be performed globally without being limited to individual local solutions.
また、開示技術では、レプリカ毎の状態更新及び関数値算出を、複数の演算装置によって実行するので、負荷を分散しながら並行処理を行って処理の高速化を図ることができる。 In addition, in the disclosed technology, state updates and function value calculations for each replica are performed by multiple arithmetic units, so that parallel processing can be performed while distributing the load, thereby speeding up processing.
また、開示技術では、関数値算出処理によってレプリカ毎の関数値を算出し、レプリカ毎の関数値及び逆温度の差分に基づいてレプリカ毎の重みを算出し、重みに基づいて、複数のレプリカから選択するレプリカの選択数を決定するリサンプリングを行う。よって、最適解探索の反復計算で現れた計算過程の結果を再利用することで、リサンプリングを繰り返す毎に関数値を算出する負荷が大きい計算を、O(log2n)のオーダの低コストで目的関数値を計算でき、最適解探索の処理を高速化できる。 In addition, in the disclosed technology, a function value for each replica is calculated by a function value calculation process, a weight for each replica is calculated based on the difference between the function value for each replica and the inverse temperature, and resampling is performed to determine the number of replicas to select from the multiple replicas based on the weight. Therefore, by reusing the results of the calculation process that appears in the iterative calculation of the optimal solution search, the objective function value can be calculated at a low cost on the order of O( log2n ), which is a heavy calculation for calculating the function value each time resampling is repeated, and the processing of the optimal solution search can be accelerated.
また、開示技術では、リサンプリングにおけるレプリカの選択数は、リサンプリング前のレプリカの合計数と同一であることから、限られたリソースを目的関数値が高いレプリカの系列に多く配分することで、効率的に最適解探索を高速化できる。 In addition, with the disclosed technology, the number of replicas selected in resampling is the same as the total number of replicas before resampling, so limited resources can be allocated more to the series of replicas with higher objective function values, efficiently speeding up the search for the optimal solution.
また、開示技術では、リサンプリングにおけるレプリカの選択数は、リサンプリング前の複数のレプリカの合計数よりも多いことから、潤沢なリソースを用いて多くの系のレプリカによって最適解探索を行うことで、最適解探索をさらに高速化できる。 In addition, in the disclosed technology, the number of replicas selected in resampling is greater than the total number of replicas before resampling, so the optimum solution search can be performed using many system replicas using abundant resources, further speeding up the optimum solution search.
また、開示技術では、リサンプリングにおけるレプリカの選択数は、リサンプリング前の複数のレプリカの合計数よりも少ないことから、限られたリソースを目的関数値が高いレプリカの系列に配分することで、効率的に最適解探索を高速化できる。 In addition, with the disclosed technology, the number of replicas selected in resampling is smaller than the total number of replicas before resampling, so that limited resources can be allocated to the series of replicas with high objective function values, efficiently speeding up the search for an optimal solution.
また、開示技術では、リサンプリングにおけるレプリカの選択数に応じて、選択するレプリカが配置される演算装置にこのレプリカのコピーを配置可能である場合にはこの演算装置をこのレプリカのコピーを優先的に配置するコピー先として決定する。一方、配置不可能である場合には他の演算装置をコピー先として決定する。よって、リサンプリングの際のレプリカの情報の転送(コピー)の際に、ノード間通信の発生を抑制するので、通信時間を抑制し、最適解探索を高速化できる。 Furthermore, in the disclosed technology, depending on the number of replicas selected in resampling, if a copy of the replica can be placed on the arithmetic device on which the selected replica is placed, this arithmetic device is determined as the copy destination for placing the copy of the replica preferentially. On the other hand, if placement is not possible, another arithmetic device is determined as the copy destination. This reduces the occurrence of inter-node communication when transferring (copying) replica information during resampling, thereby reducing communication time and speeding up the search for an optimal solution.
上述の実施形態の実施例として、実施例1:1GPUで実装(演算装置17(GPU)を1つ実装)、及び、実施例2:4GPUで実装(演算装置17(GPU)を4つ実装)、の場合の計算速度のシミュレーション結果を以下に示す。 As examples of the above-mentioned embodiment, the simulation results of the calculation speed for Example 1: implementation with 1 GPU (implementation of one calculation unit 17 (GPU)) and Example 2: implementation with 4 GPUs (implementation of four calculation units 17 (GPU)) are shown below.
図11は、実施形態による計算速度を比較例と比較したシミュレーション結果を例示する図である。図11では、横軸は1回あたりのアニーリングの計算時間を表し、縦軸は目的関数値を表す。何れも乱数シードを変えて、合計100回ずつの試行とし、各時間における目的関数値の平均値、第1四分位、及び第3四分をプロットした。破線が平均値を示し、破線に重なるグレー線の下端の外郭線が1四分位を示し、上端の外郭線が第3四分位を示す。 Figure 11 is a diagram illustrating simulation results comparing the calculation speed according to the embodiment with a comparative example. In Figure 11, the horizontal axis represents the calculation time for one annealing run, and the vertical axis represents the objective function value. A total of 100 trials were run for each run with different random number seeds, and the average, first quartile, and third quartile of the objective function value at each time were plotted. The dashed line indicates the average value, the lower outline of the gray line that overlaps with the dashed line indicates the first quartile, and the upper outline indicates the third quartile.
表1に示すように、比較例1では、50ノードでのSA(Simulated Annealing)を2回行うことで合計100回の試行とした。比較例2では、PMC(Parallel Markov Chains)なしのMA(Momentum Annealing)を1GPUで100回試行した。比較例3では、PMCなしのMAを4GPUで100回試行した。実施例1では、PMCありのMAを1GPUで100回試行した。実施例2では、PMCありのMAを4GPUで100回試行した。 As shown in Table 1, in Comparative Example 1, SA (Simulated Annealing) with 50 nodes was performed twice for a total of 100 trials. In Comparative Example 2, MA (Momentum Annealing) without PMC (Parallel Markov Chains) was performed 100 times with 1 GPU. In Comparative Example 3, MA without PMC was performed 100 times with 4 GPU. In Example 1, MA with PMC was performed 100 times with 1 GPU. In Example 2, MA with PMC was performed 100 times with 4 GPU.
図11から分かるように、実施例1及び2は、比較例1~3の何れと比較しても最低エネルギー状態(目的関数値=-4.40×105)付近により速く到達した。また、実施例1は、同じく1GPU実装の比較例2と比較して、最低エネルギー状態付近により速く到達した。また、実施例2は、同じく4GPU実装の比較例3と比較して、最低エネルギー状態付近により速く到達した。また、実施例2は、実施例1と比較して、最低エネルギー状態付近により速く到達した。 11, Examples 1 and 2 reached near the minimum energy state (objective function value = -4.40 x 10 5 ) more quickly compared to any of Comparative Examples 1 to 3. Moreover, Example 1 reached near the minimum energy state more quickly compared to Comparative Example 2, which also had 1 GPU implementation. Moreover, Example 2 reached near the minimum energy state more quickly compared to Comparative Example 3, which also had 4 GPU implementation. Moreover, Example 2 reached near the minimum energy state more quickly compared to Example 1.
以上のシミュレーション結果から、同じMAでも1GPU実装よりは4GPU実装の方が計算速度の面で有利であり、さらに本実施形態のPMCありMAでは、GPUの実装数が多いほど計算速度面で有利であることが分かった。 The above simulation results show that, even with the same MA, a 4-GPU implementation is more advantageous in terms of calculation speed than a 1-GPU implementation, and furthermore, in the MA with PMC of this embodiment, the more GPUs implemented, the more advantageous it is in terms of calculation speed.
(その他の実施形態)
演算回路500は、既に述べた最適化問題を解く計算を実行する機能を備える限り、ソフトウェアで構成してもよいし、ハードウェアで構成してもよい。具体的には、アニーリング方式において電子回路(デジタル回路など)で実装するハードウェアだけでなく、超伝導回路などで実装する方式でもよい。また、アニーリング方式以外にてイジングモデルを実現するハードウェアでもよい。例えばレーザーネットワーク方式(光パラメトリック発振)、量子ニューラルネットワークなどが知られている。また、一部の考え方が異なるものの、イジングモデルで行う計算をアダマールゲート、回転ゲート、制御NOTゲートといったゲートで置き換えた量子ゲート方式も、本実施形態の構成として採用することができる。
Other Embodiments
The
演算回路500の一つの実装例として、CMOS(Complementary Metal-Oxide Semiconductor)集積回路や、FPGA上の論理回路として実装することができる。例えば、特許文献1に開示されているように、SRAM(Static Random Access Memory)の技術を適用したユニットを多数配置し、各ユニットに変数を格納するメモリと変数を更新するための回路を配置してもよい。
As an example of implementation of the
本発明は上述の実施形態に限定されるものではなく、様々な変形例を含む。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、矛盾しない限りにおいて、ある実施形態の構成の一部を他の実施形態の構成で置き換え、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、構成の追加、削除、置換、統合、又は分散をすることが可能である。また、実施形態で示した構成及び処理は、処理効率又は実装効率に基づいて適宜分散、統合、又は入れ替えることが可能である。 The present invention is not limited to the above-described embodiments, but includes various modifications. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and are not necessarily limited to those having all of the configurations described. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, and to add the configuration of another embodiment to the configuration of one embodiment, so long as there is no contradiction. It is also possible to add, delete, replace, integrate, or distribute part of the configuration of each embodiment. Furthermore, the configurations and processes shown in the embodiments can be appropriately distributed, integrated, or replaced based on processing efficiency or implementation efficiency.
10:情報処理装置、11:プロセッサ、12:主記憶装置、13:補助記憶装置、17:演算装置、511:変数メモリ、512:非線形係数メモリ、513:線形係数メモリ、514:差分計算ブロック、515:サンプリングブロック、516:次状態決定ブロック、101:処理部、101a:モデル変換部、101b:モデル係数設定部、101c:重み設定部、101d:変数値初期化部、101e:温度設定部、101f:相互作用演算実行部、101g:変数値読出部、102:記憶部、102a:問題データ、102b:二次計画形式問題データ、102c:定義域データ、102d:演算装置制御プログラム
10: Information processing device, 11: Processor, 12: Main storage device, 13: Auxiliary storage device, 17: Arithmetic device, 511: Variable memory, 512: Nonlinear coefficient memory, 513: Linear coefficient memory, 514: Difference calculation block, 515: Sampling block, 516: Next state determination block, 101: Processing unit, 101a: Model conversion unit, 101b: Model coefficient setting unit, 101c: Weight setting unit, 101d: Variable value initialization unit, 101e: Temperature setting unit, 101f: Interaction calculation execution unit, 101g: Variable value reading unit, 102: Memory unit, 102a: Problem data, 102b: Quadratic programming format problem data, 102c: Domain data, 102d: Arithmetic device control program
Claims (14)
記憶部と協働して処理を実行する処理部を有し、
前記処理部は、
前記最適化問題を、第1の状態変数ベクトルと所定行列と第2の状態変数ベクトルとの積を含んだ目的関数で表される二次計画問題に変換する変換処理と、
前記所定行列と前記第1の状態変数ベクトルとを乗算して第1ベクトルを計算し、該第1ベクトルに基づくパラメータを含んだ確率分布に基づいて前記第2の状態変数ベクトルの確率的更新を行い、前記所定行列と前記第2の状態変数ベクトルとを乗算して第2ベクトルを計算し、該第2ベクトルに基づくパラメータを含んだ確率分布に基づいて前記第1の状態変数ベクトルの確率的更新を行う処理を繰り返すことで、前記第1の状態変数ベクトル及び前記第2の状態変数ベクトルの確率的更新を行う状態更新処理と、
前記第1の状態変数ベクトルと前記第2ベクトルとの内積によって前記積を計算することで、前記目的関数の関数値を算出する関数値算出処理と
を実行することを特徴とする情報処理システム。 An information processing system for searching for an optimal solution to an optimization problem using matrix multiplication, comprising:
A processing unit that cooperates with the storage unit to execute processing,
The processing unit includes:
a conversion process for converting the optimization problem into a quadratic programming problem expressed by an objective function including a product of a first state variable vector, a predetermined matrix, and a second state variable vector;
a state update process for performing probabilistic updates of the first state variable vector and the second state variable vector by repeating a process of multiplying the first state variable vector by the predetermined matrix to calculate a first vector, performing probabilistic updates of the second state variable vector based on a probability distribution including a parameter based on the first vector, multiplying the second state variable vector by the predetermined matrix to calculate a second vector, and performing probabilistic updates of the first state variable vector based on a probability distribution including a parameter based on the second vector;
a function value calculation process for calculating a function value of the objective function by calculating the product by an inner product of the first state variable vector and the second vector.
前記処理部は、
前記状態更新処理及び前記関数値算出処理を、前記第1の状態変数ベクトル及び前記第2の状態変数ベクトルに対応する複数のレプリカ毎に独立かつ並行に実行する
ことを特徴とする情報処理システム。 2. The information processing system according to claim 1,
The processing unit includes:
an information processing system comprising: an information processing unit that executes the state update process and the function value calculation process independently and in parallel for each of a plurality of replicas corresponding to the first state variable vector and the second state variable vector;
複数の演算装置を有し、
前記処理部は、
前記レプリカ毎の前記状態更新処理及び前記関数値算出処理を、前記複数の演算装置によって実行する
ことを特徴とする情報処理システム。 3. The information processing system according to claim 2,
A plurality of computing devices;
The processing unit includes:
the state update process and the function value calculation process for each replica are executed by the plurality of arithmetic units.
前記処理部は、
前記関数値算出処理によって前記レプリカ毎の前記関数値を算出し、
前記レプリカ毎の前記関数値及び逆温度の差分に基づいて前記レプリカ毎の重みを算出し、該重みに基づいて、前記複数のレプリカから選択するレプリカの選択数を決定するリサンプリング処理を実行する
ことを特徴とする情報処理システム。 4. The information processing system according to claim 3,
The processing unit includes:
calculating the function value for each replica by the function value calculation process;
a weight for each replica is calculated based on the difference between the function value and the inverse temperature for each replica, and a resampling process is performed to determine the number of replicas to be selected from the plurality of replicas based on the weight.
前記選択数は、前記複数のレプリカの合計数と同一である
ことを特徴とする情報処理システム。 5. The information processing system according to claim 4,
The information processing system according to claim 1, wherein the selected number is equal to a total number of the plurality of replicas.
前記選択数は、前記複数のレプリカの合計数よりも多い
ことを特徴とする情報処理システム。 5. The information processing system according to claim 4,
The information processing system, wherein the selected number is greater than a total number of the plurality of replicas.
前記選択数は、前記複数のレプリカの合計数よりも少ない
ことを特徴とする情報処理システム。 5. The information processing system according to claim 4,
The information processing system according to claim 1, wherein the selected number is smaller than a total number of the plurality of replicas.
前記処理部は、
前記リサンプリング処理において、前記選択数に応じて、前記選択するレプリカが配置される前記演算装置に該レプリカのコピーを配置可能である場合には該演算装置を該レプリカのコピーを配置するコピー先として決定し、配置不可能である場合には他の前記演算装置を前記コピー先として決定する
ことを特徴とする情報処理システム。 5. The information processing system according to claim 4,
The processing unit includes:
an information processing system, characterized in that in the resampling process, depending on the selection number, if a copy of the replica can be placed on the arithmetic device on which the selected replica is placed, the arithmetic device is determined as the destination for placing the copy of the replica, and if placement is not possible, another of the arithmetic devices is determined as the destination.
前記最適化問題を、第1の状態変数ベクトルと所定行列と第2の状態変数ベクトルとの積を含んだ目的関数で表される二次計画問題に変換する変換処理と、
前記所定行列と前記第1の状態変数ベクトルとを乗算して第1ベクトルを計算し、該第1ベクトルに基づくパラメータを含んだ確率分布に基づいて前記第2の状態変数ベクトルの確率的更新を行い、前記所定行列と前記第2の状態変数ベクトルとを乗算して第2ベクトルを計算し、該第2ベクトルに基づくパラメータを含んだ確率分布に基づいて前記第1の状態変数ベクトルの確率的更新を行う処理を繰り返すことで、前記第1の状態変数ベクトル及び前記第2の状態変数ベクトルの確率的更新を行う状態更新処理と、
前記第1の状態変数ベクトルと前記第2ベクトルとの内積によって前記積を計算することで、前記目的関数の関数値を算出する関数値算出処理と
を含んだことを特徴とする情報処理方法。 An information processing method performed by an information processing system that searches for an optimal solution to an optimization problem using matrix multiplication, comprising the steps of:
a conversion process for converting the optimization problem into a quadratic programming problem expressed by an objective function including a product of a first state variable vector, a predetermined matrix, and a second state variable vector;
a state update process for performing probabilistic updates of the first state variable vector and the second state variable vector by repeating a process of multiplying the first state variable vector by the predetermined matrix to calculate a first vector, performing probabilistic updates of the second state variable vector based on a probability distribution including a parameter based on the first vector, multiplying the second state variable vector by the predetermined matrix to calculate a second vector, and performing probabilistic updates of the first state variable vector based on a probability distribution including a parameter based on the second vector;
a function value calculation process of calculating a function value of the objective function by calculating the product by an inner product of the first state variable vector and the second vector.
前記状態更新処理及び前記関数値算出処理は、
前記第1の状態変数ベクトル及び前記第2の状態変数ベクトルに対応する複数のレプリカ毎に独立かつ並行に実行される
ことを特徴とする情報処理方法。 10. The information processing method according to claim 9,
The state update process and the function value calculation process include:
an information processing method, characterized in that the information processing method is executed independently and in parallel for each of a plurality of replicas corresponding to the first state variable vector and the second state variable vector.
前記情報処理システムは、複数の演算装置を有し、
前記レプリカ毎の前記状態更新処理及び前記関数値算出処理は、前記複数の演算装置によって実行される
ことを特徴とする情報処理方法。 11. The information processing method according to claim 10,
The information processing system includes a plurality of computing devices,
the state update process and the function value calculation process for each replica are executed by the plurality of arithmetic units.
前記関数値算出処理によって前記レプリカ毎の前記関数値を算出し、
前記レプリカ毎の前記関数値及び逆温度の差分に基づいて前記レプリカ毎の重みを算出し、該重みに基づいて、前記複数のレプリカから選択するレプリカの選択数を決定するリサンプリング処理
を含んだことを特徴とする情報処理方法。 The information processing method according to claim 11,
calculating the function value for each replica by the function value calculation process;
a resampling process for calculating a weight for each replica based on the difference between the function value and the inverse temperature for each replica, and determining the number of replicas to be selected from the plurality of replicas based on the weight.
前記リサンプリング処理において、前記選択数に応じて、前記選択するレプリカが配置される前記演算装置に該レプリカのコピーを配置可能である場合には該演算装置が該レプリカのコピーを配置するコピー先として決定され、配置不可能である場合には他の前記演算装置が前記コピー先として決定される
ことを特徴とする情報処理方法。 13. The information processing method according to claim 12,
an information processing method, characterized in that in the resampling process, depending on the selection number, if a copy of the replica can be placed on the arithmetic device on which the selected replica is placed, the arithmetic device is determined as the copy destination for placing the copy of the replica, and if placement is not possible, another of the arithmetic devices is determined as the copy destination.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021062592A JP7628866B2 (en) | 2021-04-01 | 2021-04-01 | Information processing system, information processing method, and information processing program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021062592A JP7628866B2 (en) | 2021-04-01 | 2021-04-01 | Information processing system, information processing method, and information processing program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022158010A JP2022158010A (en) | 2022-10-14 |
| JP7628866B2 true JP7628866B2 (en) | 2025-02-12 |
Family
ID=83560075
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021062592A Active JP7628866B2 (en) | 2021-04-01 | 2021-04-01 | Information processing system, information processing method, and information processing program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7628866B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250094531A1 (en) | 2023-09-15 | 2025-03-20 | Hitachi, Ltd. | Information processing apparatus |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160260013A1 (en) | 2015-03-06 | 2016-09-08 | Nokia Technologies Oy | Method and apparatus for optimization |
| WO2020202312A1 (en) | 2019-03-29 | 2020-10-08 | 株式会社日立製作所 | Information processing device, calculation device, and information processing method |
| JP2020204929A (en) | 2019-06-18 | 2020-12-24 | 富士通株式会社 | Sampling device and sampling method |
-
2021
- 2021-04-01 JP JP2021062592A patent/JP7628866B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160260013A1 (en) | 2015-03-06 | 2016-09-08 | Nokia Technologies Oy | Method and apparatus for optimization |
| WO2020202312A1 (en) | 2019-03-29 | 2020-10-08 | 株式会社日立製作所 | Information processing device, calculation device, and information processing method |
| JP2020204929A (en) | 2019-06-18 | 2020-12-24 | 富士通株式会社 | Sampling device and sampling method |
Non-Patent Citations (1)
| Title |
|---|
| OKUYAMA, Takuya et al.,,"Binary optimization by momentum annealing", Physical Review E [online],,Vol. 100,Iss. 1,米国,American Physical Society,2019年07月10日,pp.012111-1~012111-9,[online],[令和 6年11月22日検索],インターネット<URL:https://journals.aps.org/pre/pdf/10.1103/PhysRevE.100.012111>, DOI:10.1103/PhysRevE.100.012111,DOI:10.1103/PhysRevE.100.012111 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022158010A (en) | 2022-10-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7007520B2 (en) | Information processing device, arithmetic unit, and information processing method | |
| JP7219402B2 (en) | Optimization device, optimization device control method, and optimization device control program | |
| JP6874219B2 (en) | Information processing device, arithmetic unit, and information processing method | |
| JP6925546B1 (en) | Arithmetic system, information processing device, and optimal solution search processing method | |
| CN114127740A (en) | Data parallelism in distributed training of artificial intelligence models | |
| JP7589884B2 (en) | Quantum circuit simulation method, device, computer device, and program | |
| JP7624420B2 (en) | Information processing system, information processing method, and information processing program | |
| US20200089475A1 (en) | Optimization problem arithmetic method and optimization problem arithmetic apparatus | |
| EP3742354A1 (en) | Information processing apparatus, information processing method, and program | |
| JP7425210B2 (en) | Information processing system and optimal solution search processing method | |
| JP7628866B2 (en) | Information processing system, information processing method, and information processing program | |
| JP7470019B2 (en) | Information Processing System | |
| JP7444804B2 (en) | Control method and sampling device | |
| JP7398401B2 (en) | Optimization method, information processing device and system using the same | |
| JP7357795B2 (en) | Information processing method and information processing system | |
| US20220343202A1 (en) | Arithmetic circuit, arithmetic device, information processing apparatus, and method for searching for ground state of ising model | |
| JP7824897B2 (en) | Optimization method and information processing device | |
| JP2024049148A (en) | Information processing method and information processing device | |
| CN117786275A (en) | Data processing device and data processing method | |
| JP2024162709A (en) | Information processing device and information processing method | |
| JP2023024085A (en) | Program, data processing method, and data processing apparatus | |
| JP2023073842A (en) | Optimization method, information processing device and information processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240307 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20240809 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20241113 |
|
| 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: 20250121 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250130 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7628866 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |