Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7628866B2 - Information processing system, information processing method, and information processing program - Google Patents
[go: Go Back, main page]

JP7628866B2 - Information processing system, information processing method, and information processing program - Google Patents

Information processing system, information processing method, and information processing program Download PDF

Info

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
Application number
JP2021062592A
Other languages
Japanese (ja)
Other versions
JP2022158010A (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.)
Hitachi Vantara Ltd
Original Assignee
Hitachi Vantara 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 Hitachi Vantara Ltd filed Critical Hitachi Vantara Ltd
Priority to JP2021062592A priority Critical patent/JP7628866B2/en
Publication of JP2022158010A publication Critical patent/JP2022158010A/en
Application granted granted Critical
Publication of JP7628866B2 publication Critical patent/JP7628866B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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には、任意の結合を持つイジングモデルに対して、マルコフ連鎖モンテカルロ法の要求する理論的背景を満たしつつ、全スピンを同時に確率的更新して最適解探索を実現する方法が開示されている。 Patent document 2 also discloses a method for searching for an optimal solution for an Ising model with arbitrary connections by simultaneously probabilistically updating all spins while satisfying the theoretical background required by the Markov chain Monte Carlo method.

特開2016-51314号公報JP 2016-51314 A 国際公開第2019/216277号公報International Publication No. 2019/216277

Okuyama, T., Sonobe, T., Kawarabayashi, K. I., &Yamaoka, M. (2019). Binary optimization by momentum annealing. Physical ReviewE, 100(1), 012111.Okuyama, T., Sonobe, T., Kawarabayashi, K. I., &Yamaoka, M. (2019). Binary optimization by momentum annealing. Physical ReviewE, 100(1), 012111. Botev, Z. I. (2017). The normal law under linearrestrictions: simulation and estimation via minimax tilting. Journal of theRoyal Statistical Society: Series B (Statistical Methodology), 79(1), 125-148.Botev, Z. I. (2017). The normal law under linearrestrictions: simulation and estimation via minimax tilting. Journal of theRoyal Statistical Society: Series B (Statistical Methodology), 79(1), 125-148. Neal, R. M. (1998). Suppressing random walks in Markovchain Monte Carlo using ordered overrelaxation. In Learning in graphical models(pp. 205-228). Springer, Dordrecht.Neal, R. M. (1998). Suppressing random walks in Markovchain Monte Carlo using ordered overrelaxation. In Learning in graphical models(pp. 205-228). Springer, Dordrecht.

物理現象や社会現象の多くは相互作用モデルで表現可能である。相互作用モデルは、モデルを構成する複数のノードと、ノード間の相互作用、さらに必要であればノード毎に作用する係数で定義される。物理学や社会科学の分野においては、イジングモデルを始めとする種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。 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.

最適化問題の変数配列及び目的関数値の関係を例示する概念図である。FIG. 1 is a conceptual diagram illustrating a relationship between a variable array and an objective function value of an optimization problem. 最適化問題の目的関数の各変数間の関係を例示する図である。FIG. 2 is a diagram illustrating an example of the relationship between variables of an objective function of an optimization problem. 最適化問題の目的関数の各変数間の関係を例示する図である。FIG. 2 is a diagram illustrating an example of the relationship between variables of an objective function of an optimization problem. 複数のレプリカにおける最適解探索処理を例示する図である。FIG. 13 is a diagram illustrating an example of an optimal solution search process for multiple replicas. 実施形態に係る情報処理装置を実現するコンピュータのハードウェアを例示する図である。FIG. 2 is a diagram illustrating hardware of a computer that realizes the information processing device according to the embodiment. 実施形態に係る演算装置を構成する演算回路を例示する機能ブロック図である。1 is a functional block diagram illustrating an arithmetic circuit constituting an arithmetic device according to an embodiment; 実施形態に係る情報処理装置の構成を例示する機能ブロック図である。1 is a functional block diagram illustrating a configuration of an information processing apparatus according to an embodiment. 実施形態に係る情報処理装置が実行する最適解探索処理を例示するフローチャートである。11 is a flowchart illustrating an optimal solution search process executed by the information processing device according to the embodiment. 相互作用演算処理の詳細を例示するフローチャートである。13 is a flowchart illustrating details of an interaction calculation process. リサンプリングによるレプリカ数の推移のシミュレーション結果を例示す図である。FIG. 11 is a diagram illustrating a simulation result of a transition in the number of replicas due to resampling. 実施形態による計算速度を比較例と比較したシミュレーション結果を例示する図である。11A and 11B are diagrams illustrating simulation results comparing the calculation speed according to the embodiment with a comparative example.

以下、図面を参照して本発明の実施形態を説明する。実施形態は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でもよい。 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.

(実施形態の理論的背景)
相互作用モデルに関連付けられた目的関数を最適化する最適化問題の変数をs,…,sのN個とし、各変数sの定義域Dを2値{-1,+1}又は連続値[-1,+1]のいずれかであるとする。各変数sの定義域Dがどちらであるかは問題毎に決定される。そして、最適化問題の目的関数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.

Figure 0007628866000001
式1において、s=[s,…,s]のN次元ベクトル、JはN×N対称行列、hはN次元ベクトルである。前述の通り、変数毎に定義域が異なるので、最適化問題は式2の通りに表される。
Figure 0007628866000001
In formula 1, s=[s 1 , . . . , s N ] is an N-dimensional vector, J is an N×N symmetric matrix, and h is an N-dimensional vector. As described above, since the domain of definition differs for each variable, the optimization problem is expressed as in formula 2.

Figure 0007628866000002
ここで、添字の集合Λ、Λを式3の通り定義する。
Figure 0007628866000002
Here, the subscript sets Λ b and Λ c are defined as shown in Equation 3.

Figure 0007628866000003
集合Smixed={s|s∈D}を定義する。これらの表記を用いると、式2は式4のように表現できる。
Figure 0007628866000003
Define a set S mixed ={s|s i ∈D i }. Using these notations, Equation 2 can be expressed as Equation 4.

Figure 0007628866000004
以降、すべてのi∈Λに対して行列Jのi行i列目の要素は0とする。なぜならば、この変換は式2の最適解を変えないためである。
Figure 0007628866000004
Hereinafter, for all i∈Λb , the element in the i-th row and i-th column of the matrix J is set to 0, because this transformation does not change the optimal solution of Equation 2.

もしすべてのiに対してD={-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]}.

Figure 0007628866000005
Figure 0007628866000005

式5の最適解をs=[s ,…,s ]と表す。証明は割愛するが、式6で求まるs=[s ,…,s ]は式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 equation 2, but the desired solution s + can be obtained even if the transformation of equation 6 is obtained after the optimal solution s * of equation 5 is obtained. However, the function sgn is a function that returns +1 if the argument is 0 or more, and -1 otherwise.

Figure 0007628866000006
Figure 0007628866000006

ここで、N次元ベクトルv=[v1,…,v]を導入して、式7に示す関数H’を定義する。 Here, an N-dimensional vector v=[v 1 , . . . , v N ] is introduced to define a function H′ shown in Equation 7.

Figure 0007628866000007
Figure 0007628866000007

ただし、関数V(v)は式8に記す定義の通りである。 where function V(v) is defined as in Equation 8.

Figure 0007628866000008
Figure 0007628866000008

行列W=diag(w,…,w)は任意の対角行列で、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).

Figure 0007628866000009
Figure 0007628866000009

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 equation 10.

Figure 0007628866000010
Figure 0007628866000010

つまり、式5の最小化問題は式11の最小化問題と言い換えられる。 In other words, the minimization problem of Equation 5 can be rephrased as the minimization problem of Equation 11.

Figure 0007628866000011
Figure 0007628866000011

式11の最適解をx、yと表すと、s=(x+y)/2なる等式が成り立つ。これらの議論はWが零行列でも成り立つ。 If the optimal solution of Equation 11 is expressed as x * and y * , then the following equality holds: s * = (x * + y * )/2. These arguments hold even if W is a zero matrix.

以上より、式2で表す最適化問題の最適解は、式11に示す制約付き二次計画問題の解から求められる。この解を求めるために、MCMCを活用する。 From the above, the optimal solution to the optimization problem expressed by Equation 2 can be found from the solution to the constrained quadratic programming problem shown in Equation 11. MCMC is used to find this solution.

図2は、最適化問題の目的関数の各変数間の関係を例示する図であり、式11における関数Gの各変数どうしの関係を示したグラフィカルモデルを表す。図2では、N=6の場合を例示しているが、一般的なNについても同様である。関数Gの各変数どうしの関係は、完全2部グラフで表すことができる。関数G内で変数xに乗ぜられる変数は、y,…,yとxのみである。MCMCは変数値を確率的に更新するとき、その変数に係わる変数の値を用いる。つまり、変数xの値を更新するときy,…,y及びxを求め、それ以外の変数(ここではx,…,x)を参照しない。これは他の変数、例えばxの値の更新でも同様である。ゆえに、変数配列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 Equation 11. FIG. 2 illustrates the case where N=6, but the same applies to general N. The relationship between each variable of the function G can be expressed by a complete bipartite graph. The variables that are multiplied by the variable x i in the function G are only y 1 , ..., y N and x i . When MCMC stochastically updates a variable value, it uses the value of the variable related to that variable. In other words, when updating the value of the variable x 1 , y 1 , ..., y N and x 1 are obtained, and other variables (here, x 2 , ..., x N ) are not referenced. This is also true for updating the value of other variables, for example, x 2 . Therefore, if the value of the variable array y is constant, the theoretical requirements of MCMC are not violated even if the values of the array x are independently and simultaneously stochastically updated.

同様に変数yに乗ぜられる変数も、x,…,xとyのみである。ゆえに、変数配列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.

以上より、「x,…,xの同時更新」と「y,…,yの同時更新」を繰り返す手続きで構成された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 Equation 2, the relationship of the variable array s is represented by a fully connected graph as shown in Figure 3, so the probability of only one variable at a time can be updated, and updates are limited to sequential updates.

ここからは、各変数に対する確率的更新の手続きを述べる。更新対象の変数をxとする。変数y,…,yの値が一定下では、温度Tのボルツマン分布における変数xの存在確率p(x)は式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 Equation 12.

Figure 0007628866000012
Figure 0007628866000012

ただし、変数Aiは式13で求める値である。 Here, the variable A i is the value calculated using equation 13.

Figure 0007628866000013
Figure 0007628866000013

変数xとyは|x|+|y|≦2であるため、xを動かせる範囲は-(2-|y|)以上(2-|y|)以下である。よって、変数xは平均Ai/wi、分散T/wiの正規分布で-(2-|y|)以上(2-|y|)以下を定義域とする切断正規分布を基に、xの次状態をサンプリングすればよい。この方法ではxの現在の状態には依らずに次状態を決めるということである。yについても同様である。本明細書では、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 Non-Patent Document 2 can be used.

最適解探索は、温度0における平衡状態からのサンプリングと見なせる。そのため、良質な解探索の実現には、平衡状態への短時間での収束が好ましい。平衡状態への収束性を高めるため、MCMCでは様々な技術が提案されており、これらの活用も可能である。たとえば、非特許文献3は過剰緩和法を提案している。これは次状態の候補として、温度Tのボルツマン分布から1つだけではなく、K個の状態をサンプリングする。そして、サンプリングしたK個の状態に加えて、現在の状態の計(K+1)個の状態を並び替えてx ≦…≦x r=x≦x と表す。つまり、現在の状態は(K+1)個の値のうち、小さい方から(r+1)番目ということである。そしてx K+1-rを次状態に採用する。この方法では、次状態がxの現在の状態に依存する。 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=T(時間ステップ0)でそれぞれの初期状態がセットされた複数のノード、例えば3個のノード#1、#2、#3に配置されるレプリカ1-1、1-2、1-3を用いて、独立かつ並行して最適解探索が行われる。温度T=T(時間ステップt)になると、それまで独立かつ並行して最適解探索が行われたレプリカ1-1、1-2、1-3の目的関数値(式11の関数G)がそれぞれ算出される。R個のレプリカのうちのj番目のレプリカ1-j(j=1,・・・,R)の目的関数を関数Gとする。 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)の重みαを、式14のように算出する。 Next, the weight α j of replica 1-j (j=1, . . . , R) is calculated as shown in Equation 14.

Figure 0007628866000014
Figure 0007628866000014

ただし、Δβは、リサンプリングを行う際の時間ステップtにおける温度Tの逆温度β(=1/T)の差分(β-βt-1)である。このレプリカ1-jの重みαから、リサンプリング後の各レプリカ1-jの出現頻度を表す出現確率qを式15のように算出する。 Here, Δβ t is the difference (β tt-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 Equation 15.

Figure 0007628866000015
Figure 0007628866000015

ただし、式15の右辺の分母は、リサンプリング前の全てのレプリカ1-jの重みαの和を表す。すなわち、式15は、重みαを正規化する。 However, the denominator on the right side of Equation 15 represents the sum of the weights α j of all replicas 1-j before resampling, that is, Equation 15 normalizes the weights α j .

そして、リサンプリング後のレプリカとして、各レプリカ1-jの選択数Nが式16のように決定される。選択数Nとは、次の時間ステップの最適解探索で用いるレプリカ1-jの個数である。Nの小数点以下は適宜端数処理される。Rはレプリカの総数を表し、リサンプリングの前後で一定とするが、リサンプリング後に増加又は減少するとしてもよい。 Then, the selection number Nj of each replica 1-j is determined as the replica after resampling as shown in Equation 16. The selection number Nj is the number of replicas 1-j used in the optimum solution search of the next time step. The decimal part of Nj is rounded off appropriately. R represents the total number of replicas, which is constant before and after resampling, but may increase or decrease after resampling.

Figure 0007628866000016
Figure 0007628866000016

そして、選択数Nに応じてリサンプリング後のレプリカのコピー先が決定され、必要に応じて各レプリカ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×q=0.6、レプリカ1-2はR×q=2.1、レプリカ1-3はR×q=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 node #2, the information of replica 1-2 is transferred to node #3 where replica 1-3 is not selected. After resampling, a stochastic search process is executed in parallel and independently for each of one replica 1-1 and two replicas 1-2.

最適解探索においてレプリカが並列に実行され、所定温度まで低下する等の実行終了条件が充足されると、複数のレプリカのうちの関数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 information processing device 10 according to this embodiment will be described with reference to Figures 5 to 7.

(情報処理装置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 information processing device 10 according to an embodiment. The information processing device 10 has, as hardware, a processor 11, a main storage device 12, an auxiliary storage device 13, an input device 14, an output device 15, a communication device 16, one or more arithmetic devices 17, and a system bus 18 that communicatively connects these devices. The information processing device 10 may be realized, for example, using a virtual information processing resource such as a cloud server provided in part or in whole by a cloud system. The information processing device 10 may also be realized, for example, by a plurality of information processing devices that are communicatively connected and operate in cooperation with each other.

プロセッサ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 processor 11 is configured using, for example, a CPU (Central Processing Unit) and an MPU (Micro Processing Unit). The main memory device 12 is a device that stores programs and data. For example, it is a ROM (Read Only Memory), SRAM (Static Random Access Memory), NVRAM (Non Volatile RAM), mask ROM (Mask Read Only Memory), PROM (Programmable ROM), RAM (Random Access Memory), DRAM (Dynamic Random Access Memory), etc. The auxiliary memory device 13 is a HDD (Hard Disk Drive), flash memory, SSD (Solid State Drive), optical memory device (CD (Compact Disc), DVD (Digital Versatile Disc), etc.), etc. The programs and data stored in the auxiliary memory device 13 are loaded into the main memory device 12 as needed.

入力装置14は、ユーザから情報の入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、ユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal Display)、グラフィックカード等)や音声出力装置(スピーカ)、印字装置等である。通信装置16は、他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。 The input device 14 is a user interface that accepts information input from the user, and is, for example, a keyboard, a mouse, a card reader, a touch panel, etc. The output device 15 is a user interface that provides information to the user, and is, for example, a display device (LCD (Liquid Crystal Display), a graphics card, etc.) that visualizes various information, an audio output device (speaker), a printer, etc. The communication device 16 is a communication interface that communicates with other devices, and is, for example, a NIC (Network Interface Card), a wireless communication module, a USB (Universal Serial Interface) module, a serial communication module, etc.

演算装置17は、組合せ最適化問題の最適解探索に関する処理を実行する装置である。演算装置17は、例えば、GPU(Graphics Processing Unit)のように、情報処理装置10に装着する拡張カードの形態を取るものであってもよい。演算装置17は、例えば、CMOS(Complementary Metal Oxide Semiconductor)回路、FPGA)、ASIC等のハードウェアによって構成される。 The arithmetic unit 17 is a device that executes processing related to searching for optimal solutions to combinatorial optimization problems. The arithmetic unit 17 may take the form of an expansion card that is attached to the information processing device 10, such as a GPU (Graphics Processing Unit). The arithmetic unit 17 is configured with hardware, such as a CMOS (Complementary Metal Oxide Semiconductor) circuit, FPGA, or ASIC.

演算装置17は、制御装置、記憶装置、システムバス18に接続するためのインタフェース等を含み、システムバス18を介してプロセッサ11との間でコマンドや情報の送受を行う。演算装置17は、例えば、通信線を介して他の演算装置17と通信可能に接続され、他の演算装置17と協調して動作するものであってもよい。演算装置17により実現される機能を、例えば、プロセッサ(CPU、GPU等)にプログラムを実行させることにより実現してもよい。 The arithmetic unit 17 includes a control device, a storage device, an interface for connecting to the system bus 18, and transmits and receives commands and information to and from the processor 11 via the system bus 18. The arithmetic unit 17 may be communicatively connected to other arithmetic units 17 via a communication line, for example, and may operate in cooperation with the other arithmetic units 17. The functions realized by the arithmetic unit 17 may be realized, for example, by having a processor (CPU, GPU, etc.) execute a program.

情報処理装置10において、プログラムが補助記憶装置13から読み出されて、プロセッサ11及び主記憶装置12の協働により実行されることにより、情報処理装置10の機能が実現される。あるいは、情報処理装置10の機能を実現するためのプログラムは、通信装置16を介した通信により外部のコンピュータから取得されてもよい。あるいは、情報処理装置10の機能を実現するためのプログラムは、可搬型の記録媒体(光学ディスク、磁気ディスク、光磁気ディスク、半導体記憶媒体等)に記録され、媒体読取装置により読み出されてもよい。 In the information processing device 10, a program is read from the auxiliary storage device 13 and executed by the processor 11 and the main storage device 12 in cooperation with each other, thereby realizing the functions of the information processing device 10. Alternatively, the program for realizing the functions of the information processing device 10 may be obtained from an external computer by communication via the communication device 16. Alternatively, the program for realizing the functions of the information processing device 10 may be recorded on a portable recording medium (optical disk, magnetic disk, magneto-optical disk, semiconductor storage medium, etc.) and read by a medium reading device.

また、情報処理装置10は、複数の装置が協働して処理を実行する情報処理システムであってもよい。情報処理システムを実現するプログラムは、各プログラムによって各装置に各機能を実現させることで、情報処理装置10と同様の機能を実現する。 In addition, the information processing device 10 may be an information processing system in which multiple devices work together to execute processing. A program that realizes the information processing system realizes functions similar to those of the information processing device 10 by having each device realize each function through each program.

(演算回路500の構成)
図6は、実施形態に係る演算装置17を構成する演算回路500を例示する機能ブロック図であり、演算装置17の動作原理を示す。各演算装置17は、1又は複数の演算回路500を含んで構成される。各演算回路500は、1つのレプリカに対応する。本実施形態では、演算回路500は、例えば後述の差分計算ブロック514、サンプリングブロック515、次状態決定ブロック516等が、GPUやベクトル型計算機などに搭載された多数の演算器等を用いるソフトウェアで実装されるとする。しかし、これに限らず、ハードウェアで実装されてもよい。演算回路500は、変数配列x,…,x又は変数配列y,…,yを温度Tにおけるボルツマン分布(式12)からサンプリングする機能を実現する。
(Configuration of arithmetic circuit 500)
FIG. 6 is a functional block diagram illustrating an arithmetic circuit 500 constituting the arithmetic device 17 according to the embodiment, and shows the operation principle of the arithmetic device 17. Each arithmetic device 17 is configured to include one or more arithmetic circuits 500. Each arithmetic circuit 500 corresponds to one replica. In this embodiment, the arithmetic circuit 500 is implemented by software using a number of arithmetic units mounted on a GPU, vector type computer, etc., for example, a difference calculation block 514, a sampling block 515, a next state determination block 516, etc. However, this is not limited to this, and may be implemented by hardware. The arithmetic circuit 500 realizes a function of sampling a variable array x 1 , ..., x N or a variable array y 1 , ..., y N from a Boltzmann distribution (Equation 12) at temperature T.

演算回路500は、変数メモリ511、非線形係数メモリ512、線形係数メモリ513、差分計算ブロック514、サンプリングブロック515、及び次状態決定ブロック516を含む。 The arithmetic circuit 500 includes a variable memory 511, a nonlinear coefficient memory 512, a linear coefficient memory 513, a difference calculation block 514, a sampling block 515, and a next state determination block 516.

各演算回路500の変数メモリ511には、前述した変数x,…,x及びy1,…,yを示す情報が格納される(図2参照)。 The variable memory 511 of each arithmetic circuit 500 stores information indicating the above-mentioned variables x 1 , . . . , xN and y1, .

非線形係数メモリ512には、行列Jを表す情報が格納される。行列Jは一般に対称行列であり、この対称性を用いて非線形係数メモリ512の使用量を削減することができる。線形係数メモリ513には、ベクトルhを表す情報が格納される。 The nonlinear coefficient memory 512 stores information representing the matrix J. The matrix J is generally a symmetric matrix, and this symmetry can be used to reduce the amount of usage of the nonlinear coefficient memory 512. The linear coefficient memory 513 stores information representing the vector h.

演算装置17には、制御信号EN、重み信号SW、及び温度信号TEが入力される。 The control signal EN, the weight signal SW, and the temperature signal TE are input to the calculation device 17.

制御信号ENは、H(high)とL(low)の値を周期的に繰り返す信号で、変数配列xとyいずれを更新しているかを表す。たとえば、ENがHのときは変数配列xを更新、Lのときはyを更新と定める。この制御信号ENにより、変数x,…,xを同時に更新し、また変数y,…,yを同時に更新する。図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 variable memory 511.

重み信号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(w,・・・,w))y+h、ENがLのとき(J+diag(w,・・・,w))x+hを出力する。この出力値は前述のAに相当する。 The difference calculation block 514 receives as input the value of matrix J stored in nonlinear coefficient memory 512, vector h stored in linear coefficient memory 513, weight signal SW, and variable s (x or y) stored in variable memory 511. The difference calculation block 514 outputs y+h (J+diag( w1 , ..., wN )) when the control signal EN is H, and outputs x+h (J+diag( w1 , ..., wN )) when EN is L. This output value corresponds to the above-mentioned Ai .

サンプリングブロック515は、差分計算ブロック514の出力と重み信号SW、温度パラメータの値を保持する温度信号TE、制御信号EN、及び他の変数の値を受けとる。そしてi番目の要素として、制御信号ENがHのとき-(2-|y|)以上(2-|y|)以下、ENがLのとき-(2-|x|)以上(2-|x|)以下を定義域とする、式12で表される切断正規分布からランダムにサンプリングして出力する。 Sampling block 515 receives the output of difference calculation block 514, weight signal SW, temperature signal TE that holds the value of the temperature parameter, control signal EN, and values of other variables. Then, as the i-th element, it randomly samples and outputs from a truncated normal distribution expressed by Equation 12, whose domain is from -(2-|y i |) to (2-|y i |) when control signal EN is H, and from -(2-|x i |) to (2-|x i |) when EN is L.

次状態決定ブロック516は、サンプリングブロック515から出力される1又は複数の値を基に、変数の次状態を決定する。もし、MCMCの更新則として単なる熱浴法に定めたならば、次状態決定ブロック516はサンプリングブロック515の出力値を1つだけ受け取り、それをそのまま変数メモリ511に書き込めばよい。また、MCMCの更新則として公知の過剰緩和法を用いるならば、次状態決定ブロック516はサンプリングブロック515から複数の値、そして変数メモリ511から更新対象の変数の現在値を受け取り、過剰緩和法に従って1つ選択して、変数メモリ511に書き込む。周知のように、過剰緩和法では、直前の状態との相関が負となるように次の状態を決める。 The next state determination block 516 determines the next state of the variable based on one or more values output from the sampling block 515. If the MCMC update rule is set to a simple heat bath method, the next state determination block 516 only needs to receive one output value from the sampling block 515 and write it directly to the variable memory 511. If the well-known over-relaxation method is used as the MCMC update rule, the next state determination block 516 receives multiple values from the sampling block 515 and the current value of the variable to be updated from the variable memory 511, selects one according to the over-relaxation method, and writes it to the variable memory 511. As is well known, in the over-relaxation method, the next state is determined so that the correlation with the previous state is negative.

(情報処理装置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 information processing device 10 according to the embodiment, and shows main functions (software configuration) of the information processing device 10. The information processing device 10 includes a processing unit 101, a storage unit 102, and one or more arithmetic units 17.

処理部101は、モデル変換部101a、モデル係数設定部101b、重み設定部101c、変数値初期化部101d、温度設定部101e、相互作用演算実行部101f、及び変数値読出部101gを有する。これらの機能は、プロセッサ11が主記憶装置12と協働して補助記憶装置13に格納されているプログラムを読み出して実行することにより、もしくは、演算装置17が備えるハードウェアにより実現される。なお、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(Data-Base Management System)等の他の機能を備えていてもよい。 The processing unit 101 has a model conversion unit 101a, a model coefficient setting unit 101b, a weight setting unit 101c, a variable value initialization unit 101d, a temperature setting unit 101e, an interaction calculation execution unit 101f, and a variable value reading unit 101g. These functions are realized by the processor 11 working in cooperation with the main memory unit 12 to read and execute a program stored in the auxiliary memory unit 13, or by hardware provided in the calculation unit 17. In addition to the above functions, the information processing device 10 may also have other functions such as an operating system, a file system, a device driver, a DBMS (Data-Base Management System), etc.

記憶部102は、主記憶装置12又は補助記憶装置13により実現され、問題データ102a、二次計画形式問題データ102b、定義域データ102c、及び演算装置制御プログラム102dを記憶する。問題データ102aは、例えば、最適化問題等を公知の所定の記述形式で記述したデータである。問題データ102aは、例えば、ユーザがユーザインタフェース(入力装置、出力装置、通信装置等)を介して設定される。 The memory unit 102 is realized by the main memory device 12 or the auxiliary memory device 13, and stores problem data 102a, quadratic programming format problem data 102b, domain data 102c, and a calculation device control program 102d. The problem data 102a is, for example, data in which an optimization problem or the like is described in a known, predetermined description format. The problem data 102a is, for example, set by a user via a user interface (input device, output device, communication device, etc.).

二次計画形式問題データ102bは、モデル変換部101aが、問題データ102aを式4が示す二次計画問題のフォーマットに合致する形式のデータに変換することにより生成されるデータである。この変換にあたり、与えられた各変数の定義域は、定義域データ102cに書き込まれる。定義域データ102cは、例えば各変数が2値を取るか実数値を取るかを示している。演算装置制御プログラム102dは、相互作用演算実行部101fが演算装置17を制御する際に実行する、もしくは相互作用演算実行部101fが個々の演算装置17にロードして演算装置17に実行させるプログラムである。 The quadratic programming problem data 102b is data generated by the model conversion unit 101a by converting the problem data 102a into data in a format that matches the format of the quadratic programming problem shown in Equation 4. In this conversion, the domain of each given variable is written to the domain data 102c. The domain data 102c indicates, for example, whether each variable takes on a binary value or a real number value. The calculation device control program 102d is a program that is executed when the interaction calculation execution unit 101f controls the calculation device 17, or that is loaded by the interaction calculation execution unit 101f into each calculation device 17 and executed by the calculation device 17.

モデル変換部101aは、問題データ102aを二次計画問題のフォーマットである二次計画形式問題データ102bに変換する。このために、式1から式11を導出する機能を、ソフトウェアあるいはハードウェアとしてモデル変換部101aに実装しておけばよい。モデル変換部101aの機能は必ずしも情報処理装置10に実装されていなくてもよく、情報処理装置10が、他の情報処理装置等で生成された二次計画形式問題データ102bを入力装置14や通信装置16を介して取り込むようにしてもよい。 The model conversion unit 101a converts the problem data 102a into quadratic programming problem data 102b, which is a format for quadratic programming problems. For this purpose, a function for deriving equation 11 from equation 1 may be implemented in the model conversion unit 101a as software or hardware. The function of the model conversion unit 101a does not necessarily have to be implemented in the information processing device 10, and the information processing device 10 may import quadratic programming problem data 102b generated by another information processing device or the like via the input device 14 or communication device 16.

モデル係数設定部101b、重み設定部101c、変数値初期化部101d、及び温度設定部101eは、演算装置17にR個の演算回路500を生成する。そして、R個の演算回路500に対して以下の処理を実行することで、R個のレプリカ1-j(j=1,2,・・・,R)を作成する。R個の演算回路500は、1又は複数の演算装置17に配置される。 The model coefficient setting unit 101b, weight setting unit 101c, variable value initialization unit 101d, and temperature setting unit 101e generate R calculation circuits 500 in the calculation device 17. Then, the following process is performed on the R calculation circuits 500 to create R replicas 1-j (j=1, 2, ..., R). The R calculation circuits 500 are placed in one or more calculation devices 17.

モデル係数設定部101bは、二次計画形式問題データ102bに基づく、式4の行列Jを非線形係数メモリ512に、ベクトルhを線形係数メモリ513に設定する。 The model coefficient setting unit 101b sets the matrix J of Equation 4 in the nonlinear coefficient memory 512 and the vector h in the linear coefficient memory 513 based on the quadratic programming problem data 102b.

変数値初期化部101dは、演算回路500の変数メモリ511に格納されている各変数の値を初期化する。変数値初期化部101dは、例えば、各変数の値を-1以上+1以下から一様に、ランダムサンプリングして決めればよい。この際に、変数に関する制約である|x|+|y|≦2を満たすよう注意しなければならない。また、このときの各変数の値は連続値で扱われていることに留意されたい。 The variable value initialization unit 101d initializes the values of each variable stored in the variable memory 511 of the arithmetic circuit 500. The variable value initialization unit 101d may, for example, uniformly determine the value of each variable by random sampling from -1 to +1. At this time, care must be taken to satisfy the constraint on the variables, |x i |+|y i |≦2. It should also be noted that the values of each variable at this time are treated as continuous values.

温度設定部101eは、相互作用演算実行部101fが最適解探索を行う際に用いる温度Tを設定する。 The temperature setting unit 101e sets the temperature T that the interaction calculation execution unit 101f uses when searching for an optimal solution.

相互作用演算実行部101fは、温度設定部101eにより設定された各温度Tについて、式11で表す関数Gを最小化する変数配列x及びyを探索する演算(以下、相互作用演算処理と称する。)をレプリカ1-j毎の各演算回路500に実行させる。相互作用演算処理に際し、相互作用演算実行部101fは、例えば、温度Tを高いほうから低い方に向けて変化させる。 The interaction calculation execution unit 101f causes each calculation circuit 500 of each replica 1-j to execute a calculation (hereinafter referred to as an interaction calculation process) to search for variable arrays x and y that minimize the function G expressed by equation 11 for each temperature T set by the temperature setting unit 101e. During the interaction calculation process, the interaction calculation execution unit 101f changes the temperature T, for example, from a higher temperature to a lower temperature.

具体的には、各レプリカ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 equations 12 and 13. Specifically, as can be seen from equations 12 and 13, the multiplication result of matrix J and variable y is used when updating variable x. Similarly, the multiplication result of matrix J and variable x is used when updating variable y.

また、相互作用演算実行部101fは、リサンプリングを所定周期で実行する。すなわち、相互作用演算実行部101fは、時間ステップtの温度Tにおいて、各演算回路500(ノード)に作成されたレプリカ1-j毎のエネルギー(目的関数値(関数Gの値))を計算する。 The interaction calculation execution unit 101f also executes resampling at a predetermined period. That is, the interaction calculation execution unit 101f calculates the energy (objective function value (value of function G j )) for each replica 1-j created in each calculation circuit 500 (node) at temperature T of time step t.

ここで、関数Gの行列Jと変数yの乗算(式11の右辺第1項)は、計算負荷が大きい。しかし、この行列Jと変数yの乗算は、変数xの前回の更新ステップの際に行われており、乗算結果Jyがワークエリアに格納されている。そこで、関数Gの値の算出の際に、行列Jと変数yの乗算を行う代わりに、ワークメモリに格納されている乗算結果Jyを用いる。乗算結果Jyはベクトルであるので、関数Gの右辺第1項の計算は、ベクトルxとの内積計算に置き換わる。このように、変数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の選択数Nを決定する。 Then, the interaction calculation execution unit 101f determines the number N j of selected replicas 1-j after resampling using Equations 14, 15, and 16 based on the energy of each replica 1-j at time step t.

そして、相互作用演算実行部101fは、各レプリカ1-jの選択数Nのうち、リサンプリング後の増加分の各レプリカ1-jのコピー先を決定する。各レプリカ1-jのコピー先は、コピー元のレプリカ1-jと同一の演算装置17(自ノード)の上限内で自ノードが優先的に決定される。自ノードの上限を超過する場合には、レプリカのコピー先は、それぞれの上限内で自ノードとは異なる他の演算装置17(他ノード)がランダムに決定される。上限とは、各ノードのリソース上限、又は、リサンプリング前に各ノードに配置されていたレプリカの数、である。そして、コピー先へコピー元のレプリカの情報が転送される。 Then, the interaction calculation execution unit 101f determines the copy destination of each replica 1-j of the increment after resampling among the selected number N j of each replica 1-j. The copy destination of each replica 1-j is determined preferentially to the same calculation device 17 (own node) as the copy source replica 1-j within the upper limit of the own node. If the upper limit of the own node is exceeded, the copy destination of the replica is randomly determined to another calculation device 17 (other node) different from the own node within each upper limit. The upper limit is the resource upper limit of each node, or the number of replicas arranged in each node before resampling. Then, the information of the copy source replica is transferred to the copy destination.

このように、自ノード内を優先的にコピー先とし、レプリカの情報のコピーの際に通信が発生する他ノードへのコピーを極力回避することで、情報転送の待ち時間の発生を抑制し、計算速度の低下を防止できる。 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]ならばs自体を出力するということである。このようにして、定義された値域に応じた解が求められる。 When the interaction calculation execution unit 101f finishes searching for the optimal solution, the variable value reading unit 101g reads out the variable arrays x and y stored in the variable memory 511 of the calculation circuit 500 corresponding to the replica with the smallest value of the function G. The value read out here is the solution of Equation 11. According to the above discussion, the N-dimensional vector s*=(x+y)/2 is calculated. Then, the domain data 102c is read out, and the vector s+ obtained by Equation 6 is output to the output device 15 or the communication device 16 as the final solution. In other words, if the i-th domain in the domain data 102c is found to be {-1, +1}, sgn(s*i) is output, and if the i-th domain is [-1, +1], s i itself is output. In this way, a solution according to the defined value range is found.

(最適解探索処理のフロー)
図8は、実施形態に係る情報処理装置10が実行する最適解探索処理を例示するフローチャートである。最適解探索処理は、例えば、入力装置14を介してユーザからの指示等を受け付けることにより開始される。
(Flow of optimal solution search process)
8 is a flowchart illustrating an optimum solution search process executed by the information processing apparatus 10 according to the embodiment. The optimum solution search process is started by receiving an instruction from a user via the input device 14, for example.

S11では、モデル変換部101aは、問題データ102aを二次計画形式問題データ102bに変換する。二次計画形式問題データ102bでは、例えば式1で表現される目的関数Hにおける行列J、ベクトルhが任意の形式で表現される。記憶部102が既に二次計画形式問題データ102bを記憶している場合には、S11が省略される。S11の処理と、S12以降の処理とは、夫々を異なる装置で実行するようにしてもよい。またS11の処理と、S12以降の処理とを異なるタイミングで実行するようにしてもよい(例えば、S11の処理を事前に行っておくことが考えられる)。 In S11, the model conversion unit 101a converts the problem data 102a into quadratic programming problem data 102b. In the quadratic programming problem data 102b, for example, the matrix J and vector h in the objective function H expressed in Equation 1 are expressed in an arbitrary format. If the storage unit 102 has already stored the quadratic programming problem data 102b, S11 is omitted. The process of S11 and the process from S12 onwards may be executed by different devices. Furthermore, the process of S11 and the process from S12 onwards may be executed at different times (for example, the process of S11 may be executed in advance).

S12~S15の処理は、演算装置17のR個の演算回路500にて作成されるR個のレプリカについて実行される。 The processes of S12 to S15 are performed for R replicas created by R arithmetic circuits 500 of the arithmetic device 17.

S12では、モデル係数設定部101bは、非線形係数メモリ512及び線形係数メモリ513に行列Jとベクトルhの値を設定する。メモリの値は、ユーザインタフェース(例えば、入力装置14、出力装置15、通信装置16等により実現される)を介してユーザが設定又は編集することができる。 In S12, the model coefficient setting unit 101b sets the values of the matrix J and the vector h in the nonlinear coefficient memory 512 and the linear coefficient memory 513. The memory values can be set or edited by the user via a user interface (realized, for example, by the input device 14, the output device 15, the communication device 16, etc.).

S13では、重み設定部101cは、重み信号SWの値を決定する。前述の式8の説明通り、最適解を探索する上で重み信号SWは任意の値を取ることが許される。そのため、信号値は常に0としてもよい。この場合は計算の負荷を軽減することができる。また、特許文献2の式3~式5に示すように行列Jの固有値から決定してもよい。あるいは、行列Jの行和から決定してもよい。重み信号SWの値算出の計算は、演算装置17内又はプロセッサ11で実行してもよい。あるいはユーザが自分で設定してもよい(S13)。 In S13, the weight setting unit 101c determines the value of the weight signal SW. As explained above in Equation 8, the weight signal SW is allowed to take any value when searching for an optimal solution. Therefore, the signal value may always be 0. In this case, the calculation load can be reduced. Also, as shown in Equations 3 to 5 of Patent Document 2, the weight signal SW may be determined from the eigenvalues of matrix J. Alternatively, the weight signal SW may be determined from the row sum of matrix J. The calculation for calculating the value of the weight signal SW may be performed in the arithmetic unit 17 or the processor 11. Alternatively, the user may set it himself (S13).

S14では、変数値初期化部101dは、変数メモリ511に格納されている各変数の値を初期化する。変数メモリ511に格納する値は連続値である。先に述べたように初期値はランダムでよい。以上で、式11を表現するパラメータが設定されたことになる。 In S14, the variable value initialization unit 101d initializes the values of each variable stored in the variable memory 511. The values stored in the variable memory 511 are continuous values. As mentioned above, the initial values may be random. With the above, the parameters expressing Equation 11 have been set.

S15では、温度設定部101eは、最適解探索にて使用する温度パラメータの系列Tγ(γ=1,2,3,…)を初期設定する。なお、上記の添字γは設定される温度Tの種類を表す。温度Tの設定方法については、例えば特許文献1の方法を採用可能である。 In S15, the temperature setting unit 101e initializes a series T γ (γ=1, 2, 3, ...) of temperature parameters to be used in the optimum solution search. Note that the above subscript γ indicates the type of the set temperature T. The method of setting the temperature T can be, for example, the method described in Patent Document 1.

S16では、相互作用演算実行部101fは、相互作用演算処理を実行する。相互作用演算処理の詳細は、図9を参照して後述する。 In S16, the interaction calculation execution unit 101f executes the interaction calculation process. Details of the interaction calculation process will be described later with reference to FIG. 9.

S17では、相互作用演算実行部101fは、停止条件が成立したか否か(例えば、温度Tが予め設定された最低温度に達したか否か)を判定する。相互作用演算実行部101fは、停止条件が成立したと判定した場合(S17:Yes)、S18に処理を移す一方、停止条件が成立していないと判定した場合(S17:No)、S16に処理を戻す。 In S17, the interaction calculation execution unit 101f determines whether the stop condition is met (for example, whether the temperature T has reached a preset minimum temperature). If the interaction calculation execution unit 101f determines that the stop condition is met (S17: Yes), it proceeds to S18, whereas if it determines that the stop condition is not met (S17: No), it returns to S16.

S18では、変数値読出部101gは、関数Gの値が最小のレプリカ1-jの演算回路500から変数メモリ511に格納されている変数の値を読み出す。また、変数値読出部101gは、定義域データ102cに格納されている二次計画形式問題データ102bの各変数の定義域を読み出す。そして、変数値読出部101gは、式6に基づいた変換を通じたベクトルを算出して、式2もしくは式4の解として出力する。以上で最適解探索処理は終了する。 In S18, the variable value reading unit 101g reads the values of the variables stored in the variable memory 511 from the arithmetic circuit 500 of the replica 1-j having the smallest value of the function G j . The variable value reading unit 101g also reads the domain of each variable of the quadratic programming problem data 102b stored in the domain data 102c. The variable value reading unit 101g then calculates a vector through a transformation based on Equation 6, and outputs it as a solution to Equation 2 or Equation 4. This completes the optimal solution search process.

(相互作用演算処理の詳細フロー)
図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 calculation execution unit 101f executes probabilistic simultaneous updating of the variable arrays of each replica 1-j through calculations by each calculation circuit 500.

S162では、相互作用演算実行部101fは、レプリカ1-j毎の関数G(式11)の値を算出する。上述したように、レプリカ1-j毎の関数Gの目標関数値の算出の際に、変数x、yの更新過程の計算結果を用いる。なお、関数Gの値の算出は、各レプリカ1-jの演算回路500が行ってもよい。 In S162, the interaction calculation execution unit 101f calculates the value of the function G j (Equation 11) for each replica 1-j. As described above, when calculating the objective function value of the function G j for each replica 1-j, the calculation results of the update process of the variables x and y are used. Note that the calculation of the value of the function G j may be performed by the calculation circuit 500 of each replica 1-j.

S163では、相互作用演算実行部101fは、各レプリカ1-jの選択数N及び増加分のレプリカのコピー先を決定する。 In S163, the interaction calculation execution unit 101f determines the selection number Nj of each replica 1-j and the copy destination of the increased replica.

S164では、相互作用演算実行部101fは、S163で決定したコピー先のノード(自ノード又は他ノード)へコピーするレプリカの情報を送信する。 In S164, the interaction calculation execution unit 101f transmits information about the replica to be copied to the destination node (the node itself or another node) determined in S163.

(レプリカ数の推移のシミュレーション結果)
図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.

Figure 0007628866000017
Figure 0007628866000017

図11から分かるように、実施例1及び2は、比較例1~3の何れと比較しても最低エネルギー状態(目的関数値=-4.40×10)付近により速く到達した。また、実施例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 arithmetic circuit 500 may be configured with software or hardware as long as it has a function of executing calculations to solve the optimization problem described above. Specifically, not only the hardware implemented with electronic circuits (digital circuits, etc.) in the annealing method, but also the method implemented with superconducting circuits, etc. may be used. Also, hardware that realizes the Ising model by a method other than the annealing method may be used. For example, a laser network method (optical parametric oscillation), a quantum neural network, etc. are known. In addition, although the concept is partially different, a quantum gate method in which the calculations performed in the Ising model are replaced with gates such as a Hadamard gate, a rotation gate, and a controlled NOT gate can also be adopted as a configuration of this embodiment.

演算回路500の一つの実装例として、CMOS(Complementary Metal-Oxide Semiconductor)集積回路や、FPGA上の論理回路として実装することができる。例えば、特許文献1に開示されているように、SRAM(Static Random Access Memory)の技術を適用したユニットを多数配置し、各ユニットに変数を格納するメモリと変数を更新するための回路を配置してもよい。 As an example of implementation of the arithmetic circuit 500, it can be implemented as a CMOS (Complementary Metal-Oxide Semiconductor) integrated circuit or a logic circuit on an FPGA. For example, as disclosed in Patent Document 1, a large number of units that apply SRAM (Static Random Access Memory) technology may be arranged, and each unit may be provided with a memory for storing variables and a circuit for updating the variables.

本発明は上述の実施形態に限定されるものではなく、様々な変形例を含む。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、矛盾しない限りにおいて、ある実施形態の構成の一部を他の実施形態の構成で置き換え、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、構成の追加、削除、置換、統合、又は分散をすることが可能である。また、実施形態で示した構成及び処理は、処理効率又は実装効率に基づいて適宜分散、統合、又は入れ替えることが可能である。 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に記載の情報処理システムであって、
前記処理部は、
前記状態更新処理及び前記関数値算出処理を、前記第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;
請求項2に記載の情報処理システムであって、
複数の演算装置を有し、
前記処理部は、
前記レプリカ毎の前記状態更新処理及び前記関数値算出処理を、前記複数の演算装置によって実行する
ことを特徴とする情報処理システム。
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.
請求項3に記載の情報処理システムであって、
前記処理部は、
前記関数値算出処理によって前記レプリカ毎の前記関数値を算出し、
前記レプリカ毎の前記関数値及び逆温度の差分に基づいて前記レプリカ毎の重みを算出し、該重みに基づいて、前記複数のレプリカから選択するレプリカの選択数を決定するリサンプリング処理を実行する
ことを特徴とする情報処理システム。
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.
請求項4に記載の情報処理システムであって、
前記選択数は、前記複数のレプリカの合計数と同一である
ことを特徴とする情報処理システム。
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.
請求項4に記載の情報処理システムであって、
前記選択数は、前記複数のレプリカの合計数よりも多い
ことを特徴とする情報処理システム。
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.
請求項4に記載の情報処理システムであって、
前記選択数は、前記複数のレプリカの合計数よりも少ない
ことを特徴とする情報処理システム。
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.
請求項4に記載の情報処理システムであって、
前記処理部は、
前記リサンプリング処理において、前記選択数に応じて、前記選択するレプリカが配置される前記演算装置に該レプリカのコピーを配置可能である場合には該演算装置を該レプリカのコピーを配置するコピー先として決定し、配置不可能である場合には他の前記演算装置を前記コピー先として決定する
ことを特徴とする情報処理システム。
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.
請求項9に記載の情報処理方法であって、
前記状態更新処理及び前記関数値算出処理は、
前記第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.
請求項10に記載の情報処理方法であって、
前記情報処理システムは、複数の演算装置を有し、
前記レプリカ毎の前記状態更新処理及び前記関数値算出処理は、前記複数の演算装置によって実行される
ことを特徴とする情報処理方法。
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.
請求項11に記載の情報処理方法であって、
前記関数値算出処理によって前記レプリカ毎の前記関数値を算出し、
前記レプリカ毎の前記関数値及び逆温度の差分に基づいて前記レプリカ毎の重みを算出し、該重みに基づいて、前記複数のレプリカから選択するレプリカの選択数を決定するリサンプリング処理
を含んだことを特徴とする情報処理方法。
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.
請求項12に記載の情報処理方法であって、
前記リサンプリング処理において、前記選択数に応じて、前記選択するレプリカが配置される前記演算装置に該レプリカのコピーを配置可能である場合には該演算装置が該レプリカのコピーを配置するコピー先として決定され、配置不可能である場合には他の前記演算装置が前記コピー先として決定される
ことを特徴とする情報処理方法。
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.
請求項1~8の何れか1項に記載の情報処理システムとしてコンピュータを機能させるためのプログラム。 A program for causing a computer to function as the information processing system according to any one of claims 1 to 8.
JP2021062592A 2021-04-01 2021-04-01 Information processing system, information processing method, and information processing program Active JP7628866B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20250094531A1 (en) 2023-09-15 2025-03-20 Hitachi, Ltd. Information processing apparatus

Citations (3)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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