JP2022124418A - Control method and sampling apparatus - Google Patents

Control method and sampling apparatus Download PDF

Info

Publication number
JP2022124418A
JP2022124418A JP2021022168A JP2021022168A JP2022124418A JP 2022124418 A JP2022124418 A JP 2022124418A JP 2021022168 A JP2021022168 A JP 2021022168A JP 2021022168 A JP2021022168 A JP 2021022168A JP 2022124418 A JP2022124418 A JP 2022124418A
Authority
JP
Japan
Prior art keywords
spin
interaction
auxiliary
variables
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021022168A
Other languages
Japanese (ja)
Other versions
JP7444804B2 (en
Inventor
悠介 杉田
Yusuke Sugita
拓哉 奥山
Takuya Okuyama
雅直 山岡
Masanao Yamaoka
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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Priority to JP2021022168A priority Critical patent/JP7444804B2/en
Publication of JP2022124418A publication Critical patent/JP2022124418A/en
Application granted granted Critical
Publication of JP7444804B2 publication Critical patent/JP7444804B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

To provide a sampling method for efficient sampling from Boltzmann distribution of an Ising model and Boltzmann machine, and an information processing apparatus.SOLUTION: A method substitutes sampling in an interaction model with a complete 3-partite graph structure which includes first auxiliary variable groups formed of N auxiliary variables and second auxiliary variable groups formed of N auxiliary variables, as continuous variables defining N spin groups (N is a natural number) and directions of spins, and has an interactive relation by connecting all the first auxiliary variable groups and all the second auxiliary variable groups to the spins, for sampling for an Ising model. A value of the interactive relation of the interaction model is set with an original interactive relation of the Ising model and a minimum eigenvalue thereof, to a memory of an information processing apparatus. In state transition in the interaction model, all variables in one group of the spin groups, the first auxiliary variable groups, and the second auxiliary variable groups are updated together.SELECTED DRAWING: Figure 7

Description

本発明は、制御方法およびサンプリング装置に関する。非制限的な具体的な分野としては、2次式として表される相互作用関係を含むイジングモデルのボルツマン分布を対象として、マルコフ連鎖モンテカルロ法に基づいて、スピンの次状態をサンプリングするように情報処理装置を動作させる制御方法等に関する。 The present invention relates to control methods and sampling devices. As a non-limiting specific field, we target the Boltzmann distribution of the Ising model including the interaction relationship expressed as a quadratic equation, and based on the Markov chain Monte Carlo method, we collect information so as to sample the next state of the spin. The present invention relates to a control method and the like for operating a processing device.

特許文献1には、「相互作用モデルの解を求めるための基本構成単位となる構成要素をアレイ状に配置した半導体装置を提供する。」、「相互作用モデルの1つのノードの状態を示す値を記憶する第1のメモリセルと、1つのノードに接続された他のノードからの相互作用を示す相互作用係数を記憶する第2のメモリセルと、第1のメモリセルの値を固定するためのフラグを記憶する第3のメモリセルと、他のノードの状態を示す値及び前記相互作用係数に基づいて、前記1つのノードの次状態を示す値を決定する第1の演算回路と、フラグの値に応じて前記次状態を示す値を第1のメモリセルに記録するか否かを決定する第2の演算回路と、を有するユニットを複数備える。」と記載されている。 Patent Literature 1 describes ``Providing a semiconductor device in which constituent elements serving as basic constituent units for obtaining a solution of an interaction model are arranged in an array,'' and ``A value indicating the state of one node of an interaction model. a second memory cell storing an interaction coefficient indicative of interaction from other nodes connected to one node; and for fixing the value of the first memory cell a third memory cell for storing a flag of; a first arithmetic circuit for determining a value indicating the next state of the one node based on the value indicating the state of the other node and the interaction coefficient; and a second arithmetic circuit that determines whether or not to record the value indicating the next state in the first memory cell according to the value of .

非特許文献1、非特許文献2には、イジングモデルのボルツマン分布に対して、補助変数の多変量正規分布を掛け合わせることでサンプリングの実行しやすい確率分布関数を構成する方法である Gaussian integral trick に関して記載されている。 Non-Patent Document 1 and Non-Patent Document 2 describe Gaussian integral trick, which is a method of constructing a probability distribution function that is easy to perform sampling by multiplying the Boltzmann distribution of the Ising model by the multivariate normal distribution of the auxiliary variable. is described regarding.

特開2016-51313号公報JP 2016-51313 A

J. Martens and I. Sutskever:“Parallelizable Sampling of Markov Random Fields”, Conference on Artificial Intelligence and Statistics (2010).J. Martens and I. Sutskever:“Parallelizable Sampling of Markov Random Fields”, Conference on Artificial Intelligence and Statistics (2010). Y. Zhang, Z. Ghahramani, A. J. Storkey and C. A. Sutton:“Continuous Relaxations for Discrete Hamiltonian Monte Carlo”, Advances in Neural Information Processing Systems (2012).Y. Zhang, Z. Ghahramani, A. J. Storkey and C. A. Sutton:“Continuous Relaxations for Discrete Hamiltonian Monte Carlo”, Advances in Neural Information Processing Systems (2012).

物理現象や社会現象の多くは、相互作用モデルによって表現することができる。この相互作用モデルは、モデルを構成する複数のノードと、ノード間の相互作用、さらに必要であればノード毎のバイアス(重み付け)で定義される。物理学や社会科学の分野においては種々のモデルが提案されているが、いずれも相互作用モデルの一形態として解釈することができる。 Many physical and social phenomena can be represented by interaction models. This interaction model is defined by a plurality of nodes that make up the model, interactions between the nodes, and biases (weights) for each node if necessary. Various models have been proposed in the fields of physics and social sciences, and all of them can be interpreted as a form of interaction model.

相互作用モデルの一つとしてイジングモデル(Ising Model)がある。イジングモデルとは、結晶を構成する原子の電子スピン(以下、単に「スピン」という)の集団的振る舞いを計算するシンプルなモデルであり、磁性体の説明に用いられる統計力学のモデルである。また、イジングモデルと等価なモデルとしてボルツマンマシン(Boltzmann Machine)があり、機械学習モデルとして利用される。 One of the interaction models is the Ising model. The Ising model is a simple model for calculating the collective behavior of electron spins (hereinafter simply referred to as "spins") of atoms that make up a crystal, and is a model of statistical mechanics used to explain magnetic substances. Also, there is a Boltzmann Machine as a model equivalent to the Ising model, which is used as a machine learning model.

イジングモデルによる物理シミュレーションやボルツマンマシンの学習及び推論では、それらをエネルギー関数にもつボルツマン分布からのサンプリングが必要である。そのようなサンプリングを行う方法として、マルコフ連鎖モンテカルロ法によるものがある。マルコフ連鎖モンテカルロ法では、状態間を確率的に遷移させることで所望の確率分布を定常分布として実現する。 Physics simulations using Ising models and learning and inference of Boltzmann machines require sampling from Boltzmann distributions that have them as energy functions. One way to do such sampling is by Markov Chain Monte Carlo. In the Markov chain Monte Carlo method, a desired probability distribution is realized as a stationary distribution by stochastically transitioning between states.

現実の物理現象や社会現象をイジングモデルに落とし込むと、スピン(ノードに対応する)間の相互作用は、密構造すなわち各スピンがその他の多くのスピンと結合した構造となる。そのため、マルコフ連鎖モンテカルロ法において、各スピンについて確率的な処理を同時に行うことはできず、処理の高速化が困難になるという課題がある。 When actual physical phenomena and social phenomena are applied to the Ising model, the interaction between spins (corresponding to nodes) becomes a dense structure, that is, a structure in which each spin is coupled with many other spins. Therefore, in the Markov chain Monte Carlo method, it is not possible to perform probabilistic processing for each spin simultaneously, which makes it difficult to speed up the processing.

本発明は、上記の課題に鑑みてなされたもので、イジングモデル及びボルツマンマシンのボルツマン分布からのサンプリングを効率良く行うことが可能な、制御方法およびサンプリング装置を提供することを目的とする。 The present invention has been made in view of the above problems, and an object of the present invention is to provide a control method and a sampling device that can efficiently perform sampling from the Boltzmann distribution of the Ising model and the Boltzmann machine.

上記目的を達成するための本発明の一の側面は、
スピン間の相互作用関係を含むイジングモデルのボルツマン分布を対象として、マルコフ連鎖モンテカルロ法に基づくスピンの次状態のサンプリングを行うように情報処理装置を動作させる制御方法であって、
前記イジングモデルに対するサンプリングを、N個(Nは自然数)の前記スピンσ=1~Nのうちの任意の数)からなるスピン群σと、各々の前記スピンσの向きを規定する連続変数として、前記N個の補助変数x=1~N)からなる第1補助変数群xおよび前記N個の補助変数y=1~N)からなる第2補助変数群yと、を備え、前記スピンσに対して全ての前記第1補助変数群xと全ての前記第2補助変数群yとが結線され相互作用関係を有する完全3部グラフ構造による相互作用モデルでのサンプリングにより代替し、
前記相互作用モデルの前記相互作用関係の値が、元の前記イジングモデルの相互作用関係及びその最小固有値で前記情報処理装置のメモリに設定され、
前記相互作用モデルにおいて状態遷移を行う際に、前記スピン群σ、前記第1補助変数群x、および前記第2補助変数群yの3つの変数群のうちの1つの群の全変数を一斉更新するように前記情報処理装置を動作させる、
制御方法として実現される。
One aspect of the present invention for achieving the above object is
A control method for operating an information processing device so as to sample the next state of a spin based on the Markov chain Monte Carlo method for the Boltzmann distribution of the Ising model including the interaction relationship between spins,
Sampling for the Ising model defines a spin group σ consisting of N (N is a natural number) spins σ i ( i = any number from 1 to N) and the direction of each spin σ i As continuous variables, a first auxiliary variable group x consisting of the N auxiliary variables x i ( i = 1 to N) and a second auxiliary variable group consisting of the N auxiliary variables y i ( i = 1 to N) y, and all of the first auxiliary variable groups x and all of the second auxiliary variable groups y are connected to the spin σ i and have an interactive relationship with a complete tripartite graph structure. substitute by sampling at
The value of the interaction relationship of the interaction model is set in the memory of the information processing device with the interaction relationship of the original Ising model and its minimum eigenvalue,
All variables in one of the three variable groups of the spin group σ, the first auxiliary variable group x, and the second auxiliary variable group y are simultaneously updated when the state transition is performed in the interaction model. operating the information processing device to
It is implemented as a control method.

上記目的を達成するための本発明の他の一の側面は、
スピン間の相互作用関係を含むイジングモデルのボルツマン分布を対象として、マルコフ連鎖モンテカルロ法に基づくスピンの次状態のサンプリングを行うために、
前記イジングモデルに対する統計量として、N個(Nは自然数)のスピンσ=1~Nのうちの任意の数)からなるスピン群σと、各々の前記スピンσの向きを規定する連続変数として、前記N個の補助変数x=1~N)からなる第1補助変数群xおよび前記N個の補助変数y=1~N)からなる第2補助変数群yと、を備え、前記スピンσに対して全ての前記第1補助変数群xと全ての前記第2補助変数群yとが結線され相互作用関係を有する完全3部グラフ構造による相互作用モデルでの遷移確率P(σ,σ’)を算出する算出部と、
前記算出部により算出された、前記スピン群σ、前記第1補助変数群x、および前記第2補助変数群yの3つの変数群のうちの1つの群の全変数を一斉更新する制御を行う変数制御部と、
を備えるサンプリング装置として実現される。
Another aspect of the present invention for achieving the above object is
In order to sample the next states of spins based on the Markov chain Monte Carlo method for the Boltzmann distribution of the Ising model including the interaction relationship between spins,
As statistics for the Ising model, a spin group σ consisting of N (N is a natural number) spins σ i ( i = any number from 1 to N) and the direction of each spin σ i are defined. As continuous variables, a first auxiliary variable group x consisting of the N auxiliary variables x i ( i = 1 to N) and a second auxiliary variable group consisting of the N auxiliary variables y i ( i = 1 to N) y, and all of the first auxiliary variable groups x and all of the second auxiliary variable groups y are connected to the spin σ i and have an interactive relationship with a complete tripartite graph structure. a calculator that calculates the transition probability P (σ, σ′) at
Control to simultaneously update all variables in one of the three variable groups of the spin group σ, the first auxiliary variable group x, and the second auxiliary variable group y calculated by the calculating unit a variable control unit;
is implemented as a sampling device comprising:

その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。 In addition, the problems disclosed by the present application and their solutions will be clarified by the description of the mode for carrying out the invention and the drawings.

本発明によれば、イジングモデルのサンプリングを、並列処理により実行することができ、イジングモデルのボルツマン分布からのサンプリングを効率良く行うことができる。上記以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。 According to the present invention, the Ising model can be sampled by parallel processing, and the Ising model can be efficiently sampled from the Boltzmann distribution. Problems, configurations, and effects other than those described above will be clarified by the following description of the mode for carrying out the invention.

イジングモデルにおけるエネルギーランドスケープの概念を説明する特性グラフである。4 is a characteristic graph explaining the concept of the energy landscape in the Ising model; イジングモデルのスピン間の相互作用関係を完全グラフとして表したグラフ図である。FIG. 10 is a graph diagram showing an interaction relationship between spins of the Ising model as a complete graph; サンプリングを実行する相互作用モデルにおけるスピン群と補助変数群の相互作用関係を完全3部グラフとして表したグラフ図である。FIG. 10 is a graph diagram showing the interaction relationship between the spin group and the auxiliary variable group in the interaction model for executing sampling as a complete ternary graph. 本実施の形態における情報処理装置の概略的な構成を示すブロック図である。1 is a block diagram showing a schematic configuration of an information processing apparatus according to an embodiment; FIG. 図4中の演算部の詳細な構成を説明するブロック図である。FIG. 5 is a block diagram illustrating the detailed configuration of an arithmetic unit in FIG. 4; 図4の情報処理装置が備える主な機能を示す機能ブロック図である。5 is a functional block diagram showing main functions provided in the information processing apparatus of FIG. 4; FIG. 図6に示すサンプリング処理を説明するフローチャートである。FIG. 7 is a flowchart for explaining sampling processing shown in FIG. 6; FIG. 演算装置の詳細な構成例を示すブロック図である。3 is a block diagram showing a detailed configuration example of an arithmetic unit; FIG. 一つのユニットの回路構成例を示すブロック図である。3 is a block diagram showing a circuit configuration example of one unit; FIG.

以下、実施の形態を図面に基づいて詳細に説明する。なお、以下の説明において、同一のまたは類似する構成に共通の符号を付して重複した説明を省略することがある。また同一あるいは同様の機能を有する要素が複数ある場合に同一の符号に異なる添字を付して説明することがある。また複数の要素を区別する必要がない場合は添字を省略して説明することがある。 Hereinafter, embodiments will be described in detail based on the drawings. In the following description, common reference numerals may be assigned to the same or similar configurations, and redundant descriptions may be omitted. Also, when there are a plurality of elements having the same or similar functions, the same reference numerals may be given different suffixes for explanation. Also, when there is no need to distinguish between multiple elements, the subscripts may be omitted.

本発明を適用した実施形態としての情報処理装置は、概して、元のイジングモデルに対するサンプリングを、スピンと補助変数を接続した完全3部グラフ構造の相互作用関係を持つ相互作用モデルに対するサンプリングで代替し、相互作用モデルのエネルギー関数を記憶し、エネルギー関数とスピンと補助変数の情報に基づきマルコフ連鎖モンテカルロ法に従ってスピン及び補助変数を更新し、スピンの状態をサンプリングする装置である。 An information processing apparatus as an embodiment to which the present invention is applied generally replaces sampling of the original Ising model with sampling of an interaction model having an interaction relationship of a complete tripartite graph structure in which spins and auxiliary variables are connected. , stores the energy function of the interaction model, updates the spin and auxiliary variables according to the Markov chain Monte Carlo method based on the energy function, spin and auxiliary variable information, and samples the spin state.

まず、イジングモデル(Ising Model)について説明する。イジングモデルは、磁性体の振舞いの説明に用いられる統計力学のモデルである。イジングモデルは、+1又は-1の2値をとるスピンσ(以下、「2値スピン」と称する場合がある)の状態及び当該スピン間での相互作用を示す相互作用係数を用いて定義される。イジングモデルのエネルギー関数H(σ)(一般にハミルトニアンと呼ばれる)は、次式で表わされる。 First, the Ising model will be described. The Ising model is a model of statistical mechanics used to explain the behavior of magnetic materials. The Ising model is defined using an interaction coefficient that indicates the state of a spin σ that takes a binary value of +1 or −1 (hereinafter sometimes referred to as “binary spin”) and the interaction between the spins. . The Ising model energy function H(σ) (generally called Hamiltonian) is expressed by the following equation.

Figure 2022124418000002
Figure 2022124418000002

かかる式1中、σはスピンの値を示すベクトル、hは当該スピンに働く外部磁場係数のベクトル、Jは相互作用係数(すなわち2つのスピン間で作用する力)を示す行列、σおよびhに添えられたTは転置を示す符号である。また、式1の右辺は、スピン間の相互作用に起因するエネルギーの総和を表す。
ここで、サンプリングの対象とするスピンの数がN個(Nは自然数)の場合、以下のように定義することができる。すなわち、上記の式1において、任意のi番目(i=1~Nのうちの任意の整数)のスピンの値をσ、任意のj番目(j=1~Nのうちi以外の整数)のスピンの値をσ、かかるi番目のスピンとj番目のスピンとの間の相互作用係数の行列をJi,j、i番目のスピンに働く外部磁場係数をhiと、各々表すことができる。また、上記の相互作用係数の行列(J)において、対角成分Ji、i(i=1~N)は0である。
In such equation 1, σ is a vector indicating the value of the spin, h is the vector of the external magnetic field coefficient acting on the spin, J is the matrix indicating the interaction coefficient (that is, the force acting between the two spins), and σ and h are The appended T is a sign indicating transposition. Also, the right side of Equation 1 represents the sum of energies resulting from interactions between spins.
Here, when the number of spins to be sampled is N (N is a natural number), it can be defined as follows. That is, in the above formula 1, the value of any i-th (i = any integer from 1 to N) spin is σ i , and any j-th (j = integer other than i from 1 to N) σ j , the matrix of interaction coefficients between the i-th spin and the j-th spin is J i,j , and the external magnetic field coefficient acting on the i-th spin is h i , respectively. can be done. In the matrix (J) of the interaction coefficients, the diagonal components J i,i (i=1 to N) are zero.

以下、iとjを特に明記しない場合でも、式1および下記の種々の式は、上記iおよびjを含めることができることに留意されたい。 Note that formula 1 and the various formulas below can include i and j above, even if i and j are not specified hereinafter.

また、一般に、イジングモデルは無向グラフとして表現され、i番目のスピンからj番目のスピンへの相互作用と、j番目のスピンからi番目のスピンへの相互作用と、を区別することはなく、Ji,j=Jj,iである。 In general, the Ising model is expressed as an undirected graph, without distinguishing between the interaction from the i-th spin to the j-th spin and the interaction from the j-th spin to the i-th spin. , J i,j =J j,i .

イジングモデルは、機械学習分野における人工ニューラルネットワークの一つであるボルツマンマシンと等価である。ボルツマンマシンでは、しばしば上記の2値スピンの値は(上述の+1/-1ではなく)、1/0の2値が使用される。このように、イジングモデル及びイジングモデルと等価なモデルは、物理学や機械学習などの諸分野で応用されている。 The Ising model is equivalent to the Boltzmann machine, which is one of the artificial neural networks in the field of machine learning. In Boltzmann machines, binary spin values of 1/0 are often used (instead of +1/−1 as above). Thus, the Ising model and models equivalent to the Ising model are applied in various fields such as physics and machine learning.

イジングモデルによる物理シミュレーションやボルツマンマシンの学習及び推論では、次の式2で表されるボルツマン分布p(σ)に従うスピンの統計量(スピンの値の分散値、確率、期待値など)の計算が行われる。 In physics simulations using the Ising model and learning and inference of Boltzmann machines, calculation of spin statistics (dispersion value, probability, expected value, etc. of spin values) according to the Boltzmann distribution p(σ) represented by the following equation 2 is required. done.

Figure 2022124418000003
Figure 2022124418000003

式2において、Zσは分配関数とよばれる規格化因子であり、次の式3で表される。 In Equation 2, is a normalization factor called a partition function, which is expressed by Equation 3 below.

Figure 2022124418000004
Figure 2022124418000004

マルコフ連鎖モンテカルロ法(Markov Chain Monte Carlo methods、以下、「MCMC法」と略称する場合がある)は、所望の定常分布に収束するマルコフ鎖を構成する方法である。本実施形態では、かかるMCMC法に基づく動作を例えば電子計算機(本発明の情報処理装置)に実行させて、上記の式2に示すようなボルツマン分布p(σ)に基づいたサンプリングを行う。 The Markov Chain Monte Carlo method (Markov Chain Monte Carlo methods, hereinafter sometimes abbreviated as “MCMC method”) is a method for constructing a Markov chain that converges to a desired stationary distribution. In this embodiment, an operation based on the MCMC method is executed by, for example, a computer (information processing apparatus of the present invention) to perform sampling based on the Boltzmann distribution p(σ) as shown in Equation 2 above.

図1は、イジングモデルのエネルギーランドスケープの概念を説明するためのグラフである。図1中、グラフの横軸は、スピンの向きないし配列を示し、縦軸は、系の全エネルギーを示す。確率的な遷移では、スピンは、現在の状態σから、該状態σの近傍のある状態σ’への確率的な遷移を繰り返す。スピン状態(スピンの値)が状態σから状態σ’に遷移する確率のことを、以下、遷移確率P(σ,σ’)と称する。 FIG. 1 is a graph for explaining the concept of the Ising model energy landscape. In FIG. 1, the horizontal axis of the graph indicates the direction or arrangement of spins, and the vertical axis indicates the total energy of the system. In stochastic transitions, the spin repeats stochastic transitions from the current state σ to some state σ' near the state σ. The probability that the spin state (spin value) transitions from the state σ to the state σ′ is hereinafter referred to as transition probability P(σ, σ′).

イジングモデルのボルツマン分布に対してMCMC法を適用する場合、遷移確率P(この例ではスピン状態の遷移確率P(σ,σ’))を求めるために、一般に、メトロポリス法(Metropolis method)、あるいは熱浴法(ギブスサンプリング)が用いられる。メトロポリス法(メトロポリス・ヘイスティングス法と呼ばれることもある)における遷移確率P(σ,σ’)の算出式を式4に示す。 When applying the MCMC method to the Boltzmann distribution of the Ising model, in order to obtain the transition probability P (in this example, the spin state transition probability P (σ, σ′)), the Metropolis method, Alternatively, a hot bath method (Gibbs sampling) is used. Equation 4 shows a calculation formula for the transition probability P(σ, σ′) in the Metropolis method (sometimes called the Metropolis-Hastings method).

Figure 2022124418000005
Figure 2022124418000005

概して、メトロポリス法を用いた場合、上記電子計算機(情報処理装置)の動作の概要としては、N個のスピン(スピン群)における各々の初期状態(現状態)が設定されるとともに、各々のスピンの次状態候補を式4に従って算出し、かかる次状態候補の算出を繰り返し、適宜の時期に算出結果を出力(画面表示や印刷など)することになる。 In general, when the Metropolis method is used, as an overview of the operation of the computer (information processing device), the initial state (current state) of each of N spins (spin group) is set, and each Next state candidates of the spin are calculated according to Equation 4, the calculation of the next state candidates is repeated, and the calculation results are output (screen display, printing, etc.) at an appropriate time.

いずれの方法を用いる場合でも、イジングモデルのボルツマン分布に対してMCMC法を適用する場合、N個のスピン(スピン群)の現状態(σ)に続いて出現する次状態(σ’)の統計値(確率あるいは期待値)を、予め規定された算術式に従って算出する。 Regardless of which method is used, when the MCMC method is applied to the Boltzmann distribution of the Ising model, the statistics of the next state (σ′) appearing after the current state (σ) of N spins (spin group) A value (probability or expected value) is calculated according to a predefined arithmetic formula.

以下に説明する本実施の形態では、メトロポリス法による上述の式4に基づき、スピンの値を確率的に決定する構成を前提とする。 In the present embodiment described below, it is assumed that the spin value is stochastically determined based on the above-described Equation 4 based on the Metropolis method.

なお、相互作用関係のない(すなわち互いに影響を及ぼさない)複数のスピン(例えば、結線を伴わない、言い換えると隣接しないスピン同士)については、式4に基づく状態遷移を同時に適用することが可能である。そのため、例えば、特許文献1に記載されているように、式4に基づく確率的処理を実現する回路を複数個用意し、非隣接の複数のスピンの値を並列して更新することで、MCMC法によるサンプリングを高速で行うことができる。 For a plurality of spins that do not interact (that is, do not affect each other) (for example, spins that are not connected, in other words, non-adjacent spins), the state transition based on Equation 4 can be applied at the same time. be. Therefore, for example, as described in Patent Document 1, by preparing a plurality of circuits for realizing stochastic processing based on Equation 4 and updating the values of a plurality of non-adjacent spins in parallel, MCMC method sampling can be performed at high speed.

図2は、スピンの数を6とした場合における、イジングモデルの全スピン間の相互作用関係を表した完全グラフ(全結合グラフ)であり、図2中、個々のスピンに「1」~「6」の数字を付して示している。 FIG. 2 is a complete graph (total connection graph) showing the interaction relationship between all spins in the Ising model when the number of spins is 6. In FIG. 6” is attached.

現実の物理現象や社会現象をイジングモデルに落とし込もうとすると、スピン間の相互作用関係は、図2に示すような密構造(すなわち、個々のスピン(例えばスピン1)が他の多くのスピン(この例ではスピン2~6)と隣接する(結線を伴う)構造)となり、互いに影響を与えあう関係になる。そのため、各スピンの確率的な処理を同時に行うことはできず、MCMC法に基づく処理の高速化を図ることは困難である。 When trying to apply real physical phenomena and social phenomena to the Ising model, the interaction relationship between spins has a dense structure as shown in Fig. 2 (that is, an individual spin (e.g., spin 1) can (In this example, spins 2 to 6) are adjacent (with wire connections)), and have a relationship of mutually influencing each other. Therefore, the probabilistic processing of each spin cannot be performed simultaneously, and it is difficult to speed up the processing based on the MCMC method.

逆に言えば、こうした密の相互作用関係を持つイジングモデルに対して、MCMC法の要求する理論的背景を満たしつつ複数のスピン(図2に示す例ではスピン1~スピン6)を同時に更新することができれば、並列処理によるMCMC法を用いた処理を高速化することができる。 Conversely, for the Ising model with such a close interaction relationship, multiple spins (spins 1 to 6 in the example shown in FIG. 2) are updated simultaneously while satisfying the theoretical background required by the MCMC method. If it can be done, the speed of processing using the MCMC method can be increased by parallel processing.

上述のような観点に基づき、本発明者らが鋭意研究の末に案出した本実施の形態では、元のイジングモデルのボルツマン分布に対するサンプリングを代替できる完全3部グラフの相互作用モデルを利用して、情報処理装置によるサンプリングの制御を実行する。以下、かかるサンプリングの方法、ひいては本発明における情報処理装置の制御方法について説明する。 Based on the above-mentioned viewpoints, the present inventors devised the present embodiment after intensive research, using a complete tripartite graph interaction model that can replace the sampling for the Boltzmann distribution of the original Ising model. to control sampling by the information processing device. The sampling method and the control method of the information processing apparatus according to the present invention will be described below.

非特許文献1、非特許文献2に記載されているように、ボルツマン分布に補助変数の多変量正規分布を掛け合わせて、MCMC法を実行すべき確率分布関数を代替する(いわば「すり替える」)方法は、Gaussian integral trickと呼ばれている。本実施の形態では、Gaussian integral trickを拡張して、補助変数群v∈(-∞, ∞)(i=1~N)の多変量正規分布と補助変数群si∈[-1, 1] (i=1~N)からなる確率分布関数を掛け合わせた、次の式5および式6で表される確率分布関数を考える。 As described in Non-Patent Document 1 and Non-Patent Document 2, the Boltzmann distribution is multiplied by the multivariate normal distribution of the auxiliary variable to substitute the probability distribution function for which the MCMC method should be performed (so to speak, "replace"). The method is called the Gaussian integral trick. In this embodiment, by extending the Gaussian integral trick, the multivariate normal distribution of the auxiliary variable group v i ∈(−∞, ∞) (i=1 to N) and the auxiliary variable group s i ∈[−1, 1 ] Consider the probability distribution functions represented by the following equations 5 and 6 obtained by multiplying the probability distribution functions consisting of (i=1 to N).

Figure 2022124418000006
Figure 2022124418000006

Figure 2022124418000007
Figure 2022124418000007

式6において、行列Wは、正定値行列であり、より詳細には、行列J(式1を参照)の最小固有値-λと、正の定数εと、単位行列Iとを用いてW=J+(λ+ε)Iで定義される正定値行列である。また、規格化因子である分配関数Z(適宜、式3を参照)は、次の式7で表される関数である。 In Equation 6, the matrix W is a positive definite matrix, more specifically, with the smallest eigenvalue −λ of the matrix J (see Equation 1), a positive constant ε, and the identity matrix I, W=J+ is a positive definite matrix defined by (λ+ε)I. Also, the partition function Z (see Equation 3 as appropriate), which is a normalization factor, is a function represented by Equation 7 below.

Figure 2022124418000008
Figure 2022124418000008

式7に示すように、分配関数Zは、有限値をとるので、定義することが可能である。 As shown in Equation 7, the partition function Z can be defined because it takes a finite value.

そして、上述した式5に基づいてスピンの現在状態σのみに依存する統計量を計算すると、次の式8のように表される。 Then, when the statistic depending only on the current state σ of the spin is calculated based on the above-described Equation 5, it is expressed as Equation 8 below.

Figure 2022124418000009
Figure 2022124418000009

式8は、スピンの現在状態σにのみ注目した場合、式5に対してサンプリングをした結果と式2に対してサンプリングした結果とが一致することを示している。したがって、スピンの現在状態σにのみ注目する場合には、式2に対するMCMC法を実行する代わりに、式5に対してMCMC法を実行してもよい。 Equation 8 shows that the result of sampling for Equation 5 and the result of sampling for Equation 2 match when focusing only on the current state σ of the spin. Therefore, instead of performing the MCMC method on Eq. 2, we may perform the MCMC method on Eq.

さらに、式5に対して補助変数x=s+v、補助変数y=s-vとすると、次の式9のように表される。 Further, if the auxiliary variable x=s+v and the auxiliary variable y=s−v are set for the equation 5, the following equation 9 is obtained.

Figure 2022124418000010
Figure 2022124418000010

ここで|x+y|≦2(i=1~N)である。また、確率分布に寄与しない定数項は無視している。 where |x i +y i |≦2 (i=1 to N). Also, constant terms that do not contribute to the probability distribution are ignored.

式9は、スピンの現在状態σ、補助変数x、yに対する相互作用モデルのエネルギー関数を示している。さらに、この相互作用モデルの相互作用関係は、図3に示した完全3部グラフで表現される。図3に示すグラフでは、複数(図2に関連して6個)のスピンの現在状態を「スピン群σ」とし、各スピンに対する補助変数xの集合(この例では6個)を補助変数群xとし、各スピンに対する補助変数yの集合(同様に6個)を補助変数群yとして定義する。いわば、本来は一つのスピンに適用されるべきσ、x、yを、複数個(すなわち群)に適用するように代替(上述した「すり替え」)を行う。 Equation 9 shows the energy function of the interaction model with respect to the current state σ of the spin and the auxiliary variables x and y. Furthermore, the interaction relationship of this interaction model is represented by the complete tripartite graph shown in FIG. In the graph shown in FIG. 3, the current state of a plurality of spins (six in relation to FIG. 2) is defined as the "spin group σ", and the set of auxiliary variables x for each spin (six in this example) is defined as the auxiliary variable group x, and a set of auxiliary variables y for each spin (also six) is defined as auxiliary variable group y. In other words, σ, x, and y, which should originally be applied to one spin, are substituted (the above-described “replacement”) so that they are applied to a plurality (that is, to a group).

上述の前提において、スピン群(の現在状態σ)及び2つの補助変数群(x、y)の内部には相互作用がない。したがって、図3に示す相互作用モデルのボルツマン分布に対してMCMC法に基づく動作を実行するとき、スピン群σ、補助変数群x、補助変数群yは、それぞれ値を一斉更新することが可能であり、かかる並列処理により、MCMC法を用いた処理を効率よく遂行することができる。 In the above assumptions, there is no interaction inside the spin group (the current state σ) and the two auxiliary variable groups (x, y). Therefore, when executing operations based on the MCMC method for the Boltzmann distribution of the interaction model shown in FIG. Yes, such parallel processing can efficiently perform processing using the MCMC method.

以上より、本実施形態では式2の代わりに、式9をエネルギー関数にもつボルツマン分布に対してMCMC法を用いた処理及びスピンのサンプリングを行う。 As described above, in the present embodiment, processing and spin sampling using the MCMC method are performed on the Boltzmann distribution having Equation 9 as the energy function instead of Equation 2. FIG.

続いて、MCMC法に基づいたスピンσと補助変数x、yの更新方法を説明する。本実施の形態では、スピンσに対してはメトロポリス法を、補助変数x、yに対しては熱浴法を用いる。 Next, a method for updating spin σ and auxiliary variables x and y based on the MCMC method will be described. In this embodiment, the Metropolis method is used for the spin σ, and the heat bath method is used for the auxiliary variables x and y.

まず、任意の一つのスピンσの更新(次状態への状態遷移)について考える。スピンσの向きを反転させた場合のエネルギーの差分ΔHは、次の式10から求めることができる。 First, consider the update of any one spin σ i (state transition to the next state). The energy difference ΔH when the direction of the spin σ i is reversed can be obtained from the following equation (10).

Figure 2022124418000011
Figure 2022124418000011

前述したように、メトロポリス法において状態遷移の受理確率(遷移確率)は、式4で表される。従って、一様乱数u(0<u≦1)を用いると、状態遷移が受理される条件は、次の式11で表すことができる。 As described above, the state transition acceptance probability (transition probability) in the Metropolis method is expressed by Equation (4). Therefore, if a uniform random number u (0<u≦1) is used, the condition for accepting a state transition can be expressed by the following equation 11.

Figure 2022124418000012
Figure 2022124418000012

ここで、状態遷移後にスピンの値σが+1となる場合を考える。まず、状態遷移前のスピンの値σが+1であれば、式11からln(u)>-ΔHが成り立つ場合、すなわち次の式12が成り立つときに、条件を満たす。 Here, consider the case where the spin value σ i becomes +1 after the state transition. First, if the spin value σ i before the state transition is +1, then the condition is satisfied when ln(u)>−ΔH from Equation 11, that is, when the following Equation 12 holds.

Figure 2022124418000013
Figure 2022124418000013

同様に、状態遷移前におけるスピンの値σが-1であれば、ln(u)≦-ΔHが成り立つ場合、すなわち次の式13が成り立つときに、状態遷移後にスピンの値σが+1となる。 Similarly, if the spin value σ i before the state transition is −1, the spin value σ i after the state transition is +1 when ln(u)≦−ΔH holds, that is, when the following equation 13 holds. becomes.

Figure 2022124418000014
Figure 2022124418000014

ゆえに、状態遷移前の値σに依らず、次の式14を満たす場合には、状態遷移後にスピンの値σが=+1となることがわかる。 Therefore, regardless of the value σ i before the state transition, it can be seen that the spin value σ i becomes =+1 after the state transition if the following Expression 14 is satisfied.

Figure 2022124418000015
Figure 2022124418000015

結局、メトロポリス法に従った(次状態への)状態遷移を実行するには、スピンの値σの次状態を、以下の式15に従って更新すればよい。なお、式15において、符号関数sgn(x)は、x≧0ならば+1、x<0ならば-1を返す関数である。また、式15中に示す「←」の符号は、次状態(式15ではスピンの値σの次状態)を示す矢印符号であり、この点、後述する式18および式19中に示す「←」の符号も同様である。 Consequently, in order to execute a state transition (to the next state) according to the Metropolis method, the next state of the spin value σ i should be updated according to Equation 15 below. In Equation 15, the sign function sgn(x) is a function that returns +1 if x≧0 and −1 if x<0. In addition, the sign of “←” shown in Equation 15 is an arrow sign indicating the next state (the next state of the spin value σ i in Equation 15). ←” is also the same.

Figure 2022124418000016
Figure 2022124418000016

次に、補助変数xの更新について考える。σ, yが与えられたときに、xの条件付き累積分布関数F(x|σ,y)は、以下の式16で表すことができる。 Next, consider updating the auxiliary variable x. Given σ,y, the conditional cumulative distribution function F(x i |σ,y) of x i can be expressed by Equation 16 below.

Figure 2022124418000017
Figure 2022124418000017

式16において、αは、以下の式17で定義される。 In Equation 16, α i is defined by Equation 17 below.

Figure 2022124418000018
Figure 2022124418000018

逆関数法に基づく熱浴法に従えば、一様乱数u(0<u≦1)として、F(x|σ、y)=uをxについて解くことにより、xの更新すべき値が求められる。すなわち、以下の式18に従って補助変数xを更新すればよい。 According to the heat bath method based on the inverse function method, x i should be updated by solving F(x i |σ, y) = u for x i as a uniform random number u (0 < u ≤ 1) A value is required. That is, the auxiliary variable x should be updated according to Equation 18 below.

Figure 2022124418000019
Figure 2022124418000019

また、補助変数yの更新についても同様に、σ, xが与えられたときに、以下の式19に従って更新すればよい。 Similarly, when σ and x are given, the auxiliary variable y may also be updated according to Equation 19 below.

Figure 2022124418000020
Figure 2022124418000020

ただし、式19において、α’は、以下の式20で定義される。 However, in Equation 19, α' i is defined by Equation 20 below.

Figure 2022124418000021
Figure 2022124418000021

図4は、上述した式15、式17、及び式19に示したサンプリング方法を実施するための、情報処理装置の構成例である。図4に示す情報処理装置10は、本発明の「サンプリング装置」に対応する装置であって、プロセッサ11、主記憶部12、補助記憶部13、操作入力部14、出力部15、通信部16、一つ以上の演算部20、及びこれら各部を通信可能に接続するシステムバス5を備える。 FIG. 4 is a configuration example of an information processing apparatus for carrying out the sampling method shown in Equations 15, 17, and 19 described above. The information processing device 10 shown in FIG. 4 is a device corresponding to the “sampling device” of the present invention, and includes a processor 11, a main storage section 12, an auxiliary storage section 13, an operation input section 14, an output section 15, and a communication section 16. , one or more computing units 20, and a system bus 5 communicatively connecting these units.

情報処理装置10は、例えば、その一部または全部がクラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されるものであってもよい。また、情報処理装置10は、例えば、互いに協調して動作する、通信可能に接続された複数の情報処理装置によって実現されるものであってもよい。 For example, the information processing apparatus 10 may be implemented using virtual information processing resources such as a cloud server (Cloud Server) provided by a cloud system (Cloud System) in whole or in part. good. Further, the information processing apparatus 10 may be realized by, for example, a plurality of communicatively connected information processing apparatuses that operate in cooperation with each other.

プロセッサ11は、情報処理装置10の全体(上記各部)の制御を司る役割を担うものであり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)を用いて構成される。本発明(サンプリング装置)との関係では、プロセッサ11は、後述するN個の変数メモリ901内に格納ないし更新される変数(スピン群σ、第1補助変数群x、および第2補助変数群yの3つの変数群のうちの1つの群の全変数)を一斉更新する制御を行う「変数制御部」としての役割を担う。 The processor 11 plays a role of controlling the entire information processing apparatus 10 (each part described above), and is configured using, for example, a CPU (Central Processing Unit) or an MPU (Micro Processing Unit). In relation to the present invention (sampling device), the processor 11 stores or updates variables (spin group σ, first auxiliary variable group x, and second auxiliary variable group y It plays a role as a "variable control unit" that performs control to simultaneously update all variables in one of the three variable groups of .

主記憶部12および補助記憶部13は、主としてプロセッサ11および後述する演算部20により実行されるプログラム、使用される各種データ等を記憶する装置(ハードウエア記憶媒体)である。 The main storage unit 12 and the auxiliary storage unit 13 are devices (hardware storage media) that mainly store programs executed by the processor 11 and an arithmetic unit 20 (to be described later), various data used, and the like.

このうち、主記憶部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)等である。 Among them, the main storage unit 12 includes, for example, ROM (Read Only Memory), SRAM (Static Random Access Memory), NVRAM (Non Volatile RAM), mask ROM (Mask Read Only Memory), PROM (Programmable ROM), etc., RAM (Random Access Memory), DRAM (Dynamic Random Access Memory), and the like.

また、補助記憶部13は、主記憶部12よりも大きなデータ記憶容量を有する種々の記憶媒体、例えば、ハードディスクドライブ(Hard Disk Drive)、フラッシュメモリ(Flash Memory)、SSD(Solid State Drive)、CD(Compact Disc)あるいはDVD(Digital Versatile Disc)等の光学式記憶装置などである。 In addition, the auxiliary storage unit 13 can be any of various storage media having a larger data storage capacity than the main storage unit 12, such as a hard disk drive, a flash memory, an SSD (Solid State Drive), and a CD. (Compact Disc) or an optical storage device such as a DVD (Digital Versatile Disc).

なお、補助記憶部13に格納されているプログラムやデータは、随時、主記憶部12に読み込まれる。 The programs and data stored in the auxiliary storage section 13 are read into the main storage section 12 at any time.

本発明との関係において、主記憶部12あるいは補助記憶部13は、後述する「変数メモリ」、「相互作用係数メモリ」、「外部磁場係数メモリ」などの種々のメモリとしての機能を担うこともできる。また、補助記憶部13は、情報処理装置10によるサンプリングの結果(後述するN個の変数メモリ901内の値)を蓄積し、任意の時期に出力する「出力部」の一部として機能することもできる。 In relation to the present invention, the main storage unit 12 or the auxiliary storage unit 13 may serve as various memories such as "variable memory", "interaction coefficient memory", and "external magnetic field coefficient memory", which will be described later. can. Further, the auxiliary storage unit 13 functions as part of an “output unit” that accumulates sampling results (values in N variable memories 901 to be described later) by the information processing device 10 and outputs them at any time. can also

操作入力部14は、ユーザから情報の入力を受け付けるユーザインターフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。 The operation input unit 14 is a user interface that receives information input from the user, and includes, for example, a keyboard, mouse, card reader, touch panel, and the like.

出力部15は、ユーザに情報を提供するユーザインターフェースであり、例えば、各種情報を可視化するLCD(Liquid Crystal Display)あるいはグラフィックカードなどの表示装置、スピーカなどの音声出力装置、プリンタなどの印字装置等である。かかる出力部15は、情報処理装置10によるサンプリングの結果を、指定されたタイミング(例えば、上記のユーザインターフェースを用いて予め設定された時間間隔毎)で出力する役割を担う。 The output unit 15 is a user interface that provides information to the user. For example, a display device such as an LCD (Liquid Crystal Display) or graphic card that visualizes various information, an audio output device such as a speaker, a printing device such as a printer, and the like. is. The output unit 15 plays a role of outputting the result of sampling by the information processing apparatus 10 at specified timing (for example, at each time interval preset using the user interface).

通信部16は、他の装置と通信する通信インターフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。本発明との関係では、通信部16も上述した「出力部」の役割を担うことができる。 The communication unit 16 is a communication interface that communicates with other devices, such as a NIC (Network Interface Card), a wireless communication module, a USB (Universal Serial Interface) module, a serial communication module, and the like. In relation to the present invention, the communication section 16 can also play the role of the "output section" described above.

本実施の形態の情報処理装置10において、演算部20は、上述したサンプリングに関する処理を実行する装置(ハードウエア・デバイス)である。演算部20は、本発明の「算出部」に対応する。 In the information processing apparatus 10 of the present embodiment, the calculation unit 20 is a device (hardware device) that executes the processing related to sampling described above. The calculator 20 corresponds to the "calculator" of the present invention.

演算部20は、例えば、GPU(Graphics Processing Unit)のように、情報処理装置10に装着する拡張カードの形態を取るものであってもよい。 The computing unit 20 may take the form of an expansion card attached to the information processing device 10, such as a GPU (Graphics Processing Unit).

演算部20は、例えば、CMOS(Complementary Metal Oxide Semiconductor)回路、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等のハードウェアによって構成される。演算部20は、外部の制御装置あるいは記憶装置、システムバス5に接続するためのインターフェース等を含み、システムバス5を介してプロセッサ11との間でコマンドや情報の送受を行う。演算部20は、例えば、通信線を介して他のコンピュータ等(図示せず)と通信可能に接続され、当該他のコンピュータ等(図示せず)と協調して動作するものであってもよい。
なお、演算部20により実現される機能を、例えば、プロセッサ(CPU、GPU等)にプログラムを実行させることにより仮想的に実現してもよく、この場合、図4に点線で模式的に示すように、当該処理が呼び出される毎に実行される(起動する動作を行う)ことになる。
The computing unit 20 is configured by hardware such as, for example, a CMOS (Complementary Metal Oxide Semiconductor) circuit, an FPGA (Field Programmable Gate Array), and an ASIC (Application Specific Integrated Circuit). The computing unit 20 includes an external control device or storage device, an interface for connecting to the system bus 5 , etc., and transmits and receives commands and information to and from the processor 11 via the system bus 5 . For example, the calculation unit 20 may be communicably connected to another computer or the like (not shown) via a communication line, and may operate in cooperation with the other computer or the like (not shown). .
Note that the functions realized by the arithmetic unit 20 may be virtually realized by, for example, causing a processor (CPU, GPU, etc.) to execute a program. Then, each time the process is called, it will be executed (activated).

図5は、演算部20がGPUなどのハードウェア資源で構成される場合の動作原理を説明する図であり、演算部20を構成する回路の一具体例を示すブロック図である。
同図に示すように、演算部20は、相互作用係数メモリ511、外部磁場係数メモリ512、スピンメモリ513、第一補助変数メモリ514、第二補助変数メモリ515、積和演算装置516、数学関数演算装置517を含む。
FIG. 5 is a diagram for explaining the principle of operation when the arithmetic unit 20 is configured by hardware resources such as a GPU, and is a block diagram showing a specific example of a circuit that constitutes the arithmetic unit 20. As shown in FIG.
As shown in the figure, the calculation unit 20 includes an interaction coefficient memory 511, an external magnetic field coefficient memory 512, a spin memory 513, a first auxiliary variable memory 514, a second auxiliary variable memory 515, a product-sum calculation device 516, a mathematical function A computing unit 517 is included.

本発明との関係において、演算部20は「算出部」に、積和演算装置516は「積和演算部)」に、数学関数演算装置517は「数学関数演算部」に、それぞれ対応する。 In relation to the present invention, the calculation section 20 corresponds to the "calculation section", the product-sum calculation device 516 to the "product-sum calculation section", and the mathematical function calculation device 517 to the "mathematical function calculation section".

かかる構成の演算部20は、上記「算出部」として機能する際に、上述した式15、式17、及び式19に相当する機能を実現する。以下、図5を参照して、演算部20の動作原理について説明する。なお、以下の説明において、演算部20が取り扱うスピンの数をNで表す。 The calculation unit 20 having such a configuration realizes the functions corresponding to the above-described formulas 15, 17, and 19 when functioning as the "calculation unit". The principle of operation of the calculation unit 20 will be described below with reference to FIG. In the following description, N represents the number of spins handled by the calculation unit 20 .

演算部20の相互作用係数メモリ511には、相互作用行列W(式15を参照)を表す情報が格納される。相互作用行列は、一般に対称行列であり、かかる対称性を利用することにより、相互作用係数メモリ511の使用量を削減ないし最小限化することができる。 The interaction coefficient memory 511 of the calculation unit 20 stores information representing the interaction matrix W (see Equation 15). The interaction matrix is generally a symmetric matrix, and by utilizing such symmetry, the usage of the interaction coefficient memory 511 can be reduced or minimized.

外部磁場係数メモリ512には、ベクトルh(式15を参照)を表す情報が格納される。
スピンメモリ513には、前述した完全3部グラフのスピンσの各スピンの状態を示すN次元ベクトルの情報が格納される。第一補助変数メモリ514と第二補助変数メモリ515には、それぞれ、前述した完全3部グラフの補助変数xと補助変数yの状態を示すN次元ベクトルの情報が格納される(図3参照)。
The external magnetic field coefficient memory 512 stores information representing the vector h (see Equation 15).
The spin memory 513 stores N-dimensional vector information indicating the state of each spin of the spin σ of the complete tripartite graph. The first auxiliary variable memory 514 and the second auxiliary variable memory 515 respectively store N-dimensional vector information indicating the states of the auxiliary variables x and y of the complete tripartite graph (see FIG. 3). .

図5に示すように、演算部20には、信号TS及び信号SRが入力される。演算部20の数学関数演算装置517は、かかる信号TS及び信号SRと、上述した外部磁場係数メモリ512から読み出されたデータ(ベクトルhを表す情報)と、後述する積和演算装置516の出力データ(演算値)とを入力し、これら入力データに基づいて、信号SPを出力する。
上記のうち、信号TSは、整数1~3に対応した3値を周期的に繰り返す信号であり、式15、式17、及び式19のどの演算を実行するかを指定する。言い換えると、信号TSは、上述した3つの値(スピンσ、補助変数x、補助変数y)のうちの何れの値を更新するかを指定する信号である。非制限的な一具体例では、信号TSは、式15の演算を実行する場合は整数1、式17の演算を実行する場合は整数2、および、式19の演算を実行する場合は整数3を出力する。
As shown in FIG. 5, the signal TS and the signal SR are input to the calculation unit 20 . A mathematical function operation device 517 of the operation unit 20 outputs the signals TS and SR, the data (information representing the vector h) read from the external magnetic field coefficient memory 512 described above, and the output of the sum-of-products operation device 516 described later. Data (computed value) are input, and a signal SP is output based on these input data.
Among the above signals, the signal TS is a signal that periodically repeats three values corresponding to the integers 1 to 3, and designates which operation of the equations 15, 17, and 19 is to be executed. In other words, the signal TS is a signal that specifies which of the three values (spin σ, auxiliary variable x, auxiliary variable y) described above is to be updated. In one non-limiting example, signal TS is integer 1 when performing the operation of Equation 15, integer 2 when performing the operation of Equation 17, and integer 3 when performing the operation of Equation 19. to output

信号SRは、各要素が互いに独立な乱数であるN次元ベクトル(すなわち演算部20が取り扱うスピンの数分の次元のベクトル)を表す信号である。 The signal SR is a signal representing an N-dimensional vector (that is, a vector of dimensions corresponding to the number of spins handled by the calculation unit 20) whose elements are mutually independent random numbers.

前述のとおり、相互作用行列Wの非対角要素は、行列J(適宜、式1を参照)により、対角要素は行列Jの最小固有値により設定される。かかる最小固有値の計算は、演算部20の外部、例えばプロセッサ11(図4を参照)で行ってもよく、あるいは、図5中に示す演算部20内の積和演算装置516で算出してもよく、いずれの場合でも比較的容易(迅速)に行うことができる。最小固有値は、例えば、べき乗法などの一般に知られたアルゴリズムを用いて効率的に算出することが可能であり、この場合、行列・ベクトル積を繰り返し実行することになるため、積和演算装置516を活用するとよい。 As noted above, the off-diagonal elements of the interaction matrix W are set by the matrix J (see Equation 1 where appropriate), and the diagonal elements by the matrix J's smallest eigenvalue. Calculation of the minimum eigenvalue may be performed by the processor 11 (see FIG. 4) outside the calculation unit 20, or may be calculated by the sum-of-products calculation device 516 in the calculation unit 20 shown in FIG. Well, in either case, it can be done relatively easily (rapidly). For example, the minimum eigenvalue can be efficiently calculated using a commonly known algorithm such as the power method. should be utilized.

図5に示すように、本実施の形態における積和演算装置516は、相互作用係数メモリ511から読み出された値、スピンメモリ513から読み出された値、第一補助変数メモリ514から読み出された値、第二補助変数メモリ515から読み出された値、および信号TS(いずれか一の値の更新を許可する信号)を入力する。そして、積和演算装置516は、これら5つの入力に基づく値を算出し、該算出値を数学関数演算装置517に出力する。 As shown in FIG. 5, the sum-of-products operation device 516 according to the present embodiment stores values read from the interaction coefficient memory 511, values read from the spin memory 513, values read from the first auxiliary variable memory 514, , the value read from the second auxiliary variable memory 515, and the signal TS (a signal permitting updating of one of the values) are input. The sum-of-products operation unit 516 then calculates values based on these five inputs and outputs the calculated values to the mathematical function operation unit 517 .

より具体的には、上述した式15、式17、及び式19(式19に関連する式20も参照)は、行列Wとベクトルの積和演算をそれぞれ含んでいる。したがって、積和演算装置516は、上述した各々のメモリ(511、513、514、515)から読み出された値を、信号TSにより指定された式(式15、式17、あるいは式19)に適用して演算を実行し、かかる演算の算出値を数学関数演算装置517に出力する。 More specifically, Equations 15, 17, and 19 (see also Equation 20, which is related to Equation 19) discussed above each include a multiply-add operation of the matrix W and the vector. Therefore, the sum-of-products operation unit 516 converts the values read from the above-described memories (511, 513, 514, 515) into the equation (equation 15, equation 17, or equation 19) specified by the signal TS. It applies and performs an operation and outputs the calculated value of such operation to the mathematical function calculator 517 .

さらに、式15、式17(関連する式18も参照)、及び式19は、積和演算の出力や一様乱数u(0<u≦1)などのスカラーに対する指数関数、対数関数、符号関数などの数学関数を含んでいる。本実施の形態では、これらの数学関数についての演算が数学関数演算装置517によって実行される。 Furthermore, Equations 15, 17 (see also related Equation 18), and Equation 19 are exponential, logarithmic, and sign functions for scalars such as the outputs of multiply-accumulate operations and uniform random numbers u (0<u≤1). It contains mathematical functions such as In this embodiment, operations on these mathematical functions are performed by mathematical function calculator 517 .

より具体的には、数学関数演算装置517は、積和演算装置516による演算の出力値(積和演算の出力)、N次元ベクトル(演算部20が取り扱うスピンの数分の次元のベクトル)を表す信号SR、および外部磁場係数メモリ512から読み出されたベクトルhの情報(式15を参照)を、信号TSにより指定された式(式15,式17,あるいは式19)に適用して演算を実行し、かかる演算の算出値を信号SPとして出力する。かかる構成によれば、数学関数演算装置517から出力される出力値(信号SP)は、上述したMCMC法に従って更新されたスピン(σ)または補助変数(x、y)の値となる。本実施の形態では、数学関数演算装置517から出力される出力値(信号SP)は、図6等で後述するスピン値読出部615に出力される。 More specifically, the mathematical function operation unit 517 converts the output value of the operation by the sum-of-products operation unit 516 (the output of the sum-of-products operation) and the N-dimensional vector (the vector of dimensions corresponding to the number of spins handled by the operation unit 20) to and the information of the vector h read out from the external magnetic field coefficient memory 512 (see equation 15) are applied to the equation (equation 15, equation 17, or equation 19) specified by the signal TS. is executed, and the calculated value of such calculation is output as a signal SP. According to such a configuration, the output value (signal SP) output from the mathematical function operation unit 517 is the value of spin (σ) or auxiliary variables (x, y) updated according to the MCMC method described above. In this embodiment, the output value (signal SP) output from the mathematical function operation device 517 is output to the spin value reading section 615, which will be described later with reference to FIG. 6 and the like.

加えて、式15、式17、及び式19が、変数の添え字i(i=1~N)に対して独立であることから、演算部20による演算は、添え字iについて独立に実行可能である。他の観点からは、図4および図5で説明したような演算部20を情報処理装置10に複数設け、かかる複数の演算部20によって(例えば式15、式17、および式19に従った演算を)並列的に実行することにより、MCMC法に基づく動作(処理)の高速化が実現する。 In addition, since Formulas 15, 17, and 19 are independent of the variable subscript i (i=1 to N), the calculation by the calculation unit 20 can be performed independently of the subscript i. is. From another point of view, the information processing apparatus 10 is provided with a plurality of calculation units 20 such as those described with reference to FIGS. ) are executed in parallel, the operation (processing) based on the MCMC method can be speeded up.

次に、情報処理装置10のさらなる詳細ひいては変形例等について説明する。 Next, further details of the information processing apparatus 10, as well as modified examples and the like will be described.

図6は、情報処理装置10が備える主な機能(ソフトウェア構成)を示している。同図に示すように、情報処理装置10は、記憶部600、モデル係数設定部611、固有値計算部612、変数値初期化部613、相互作用演算実行部614、及びスピン値読出部615を備える。 FIG. 6 shows main functions (software configuration) of the information processing apparatus 10 . As shown in the figure, the information processing apparatus 10 includes a storage unit 600, a model coefficient setting unit 611, an eigenvalue calculation unit 612, a variable value initialization unit 613, an interaction calculation execution unit 614, and a spin value reading unit 615. .

これらの機能は、図4で上述したプロセッサ11が、主記憶部12に格納されているプログラムを読み出して実行することにより、もしくは、演算部20が備えるハードウェアにより実現される。なお、情報処理装置10は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(DataBase Management System)等の他の機能を備えていてもよい。 These functions are realized by reading and executing the program stored in the main storage unit 12 by the processor 11 described above with reference to FIG. In addition to the functions described above, the information processing apparatus 10 may have other functions such as an operating system, a file system, a device driver, and a DBMS (DataBase Management System).

図6に示す各部(各機能)のうち、記憶部600は、イジング形式問題データ601、及び演算装置制御プログラム602を、図4で上述した主記憶部12または補助記憶部13に記憶する。 Among the units (functions) shown in FIG. 6, the storage unit 600 stores the Ising format question data 601 and the arithmetic unit control program 602 in the main storage unit 12 or the auxiliary storage unit 13 described above with reference to FIG.

ここで、イジング形式問題データ601は、磁性体モデルや機械学習モデルを所定の記述形式(例えば、公知のプログラミング言語)で記載または入力したデータである。かかるイジング形式問題データ601は、例えば、ユーザがユーザインターフェース(入力装置、出力装置、通信装置等)を介して作成し、情報処理装置10の上述した記憶媒体に格納ないし設定することができる。 Here, the Ising format question data 601 is data in which a magnetic material model or a machine learning model is described or input in a predetermined description format (for example, a known programming language). Such Ising question data 601 can be created by a user via a user interface (input device, output device, communication device, etc.) and stored or set in the above-described storage medium of the information processing device 10, for example.

一方、演算装置制御プログラム602は、相互作用演算実行部614が演算部20を制御する際に実行する、もしくは相互作用演算実行部614が個々の演算部20にロードして演算部20に実行させるプログラムである。 On the other hand, the arithmetic device control program 602 is executed when the interaction arithmetic execution unit 614 controls the arithmetic units 20, or the interaction arithmetic execution unit 614 loads it into each arithmetic unit 20 and causes the arithmetic unit 20 to execute it. It's a program.

モデル係数設定部611は、イジング形式問題データ601に基づくイジングモデルの相互作用行列Wを相互作用係数メモリ511に、外部磁場係数を表すベクトルhを外部磁場係数メモリ512に、それぞれ設定する(適宜、図8も参照)。 The model coefficient setting unit 611 sets the interaction matrix W of the Ising model based on the Ising formal problem data 601 in the interaction coefficient memory 511, and sets the vector h representing the external magnetic field coefficient in the external magnetic field coefficient memory 512. See also Figure 8).

変数値初期化部613は、演算部20のスピンメモリ513、第一補助変数メモリ514、及び第二補助変数メモリ515に格納されている値を初期化する設定を行う。例えば、スピンの値(σ)を50%の確率で+1または-1に初期化し、補助変数の値(x、y)を-1~+1の一様乱数に初期化するように、それぞれ設定する。 The variable value initialization section 613 performs settings for initializing the values stored in the spin memory 513 , the first auxiliary variable memory 514 , and the second auxiliary variable memory 515 of the calculation section 20 . For example, the spin value (σ) is initialized to +1 or -1 with a 50% probability, and the auxiliary variable values (x, y) are initialized to uniform random numbers from -1 to +1. .

相互作用演算実行部614は、上述した式15、式17、及び式19に従った演算、すなわち相互作用モデルに対してMCMC法に従った状態更新のための演算(以下、「相互作用演算」と称する)を行う。 The interaction calculation execution unit 614 performs calculations according to the above-described equations 15, 17, and 19, that is, calculations for updating the state of the interaction model according to the MCMC method (hereinafter referred to as "interaction calculation" ).

スピン値読出部615は、相互作用演算実行部614によって一定回数(予め定められた所定回数)のモンテカルロステップ(MCステップ)が実行された場合に、スピンメモリ513に格納されているスピンの値を読み出し、該読み出されたスピンの値を出力部15や通信部16に出力することで、サンプリングを実行する(適宜、図8も参照)。 Spin value reading unit 615 retrieves the spin value stored in spin memory 513 when interaction calculation executing unit 614 executes Monte Carlo steps (MC steps) a certain number of times (predetermined number of times). Sampling is performed by reading and outputting the read spin value to the output unit 15 and the communication unit 16 (see also FIG. 8 as appropriate).

図7は、イジングモデルのボルツマン分布に対するサンプリングに際し情報処理装置10が行うサンプリング処理を説明するフローチャートである。以下、図1、図4および図7に示すフローチャート(処理ステップS711~S717)を参照して、サンプリング処理の手順の一例について説明する。図7に示すサンプリング処理は、例えば、図4で上述した操作入力部14を介してユーザからの指示等を受け付けることにより開始される。 FIG. 7 is a flowchart for explaining sampling processing performed by the information processing apparatus 10 when sampling the Boltzmann distribution of the Ising model. An example of the sampling process procedure will be described below with reference to the flowcharts (processing steps S711 to S717) shown in FIGS. 1, 4 and 7. FIG. The sampling process shown in FIG. 7 is started, for example, by receiving an instruction or the like from the user via the operation input unit 14 described above with reference to FIG.

サンプリング処理の実行にあたり、まず、モデル係数設定部611が、相互作用係数メモリ511および外部磁場係数メモリ512に、各々の値(モデル係数)を設定する(ステップS711)。なお、これらメモリ511,512のモデル係数の値は、ユーザインターフェース(例えば、操作入力部14、出力部15、通信装置16等により実現される)を介してユーザが設定または編集することもできる。 In executing the sampling process, first, the model coefficient setting unit 611 sets respective values (model coefficients) in the interaction coefficient memory 511 and the external magnetic field coefficient memory 512 (step S711). The values of the model coefficients in these memories 511 and 512 can also be set or edited by the user via a user interface (for example, realized by the operation input unit 14, the output unit 15, the communication device 16, etc.).

続くステップS712では、固有値計算部612が、相互作用係数メモリ511に格納された行列Jの最小固有値を計算して、相互作用行列Wの対角要素を算出(決定)し、該決定された対角要素(対角成分)を相互作用係数メモリ511に格納(設定)する。前述の通り、この計算は、演算部20内またはプロセッサ11で実行されることができる。 In subsequent step S712, the eigenvalue calculator 612 calculates the minimum eigenvalue of the matrix J stored in the interaction coefficient memory 511, calculates (determines) the diagonal elements of the interaction matrix W, and calculates (determines) the determined pair The corner elements (diagonal components) are stored (set) in the interaction coefficient memory 511 . As mentioned above, this calculation can be performed in the computing unit 20 or in the processor 11 .

続いて、変数値初期化部613が、スピンメモリ513、第一補助変数メモリ514、及び第二補助変数メモリ515に格納されている値を初期化する(ステップS713)。 Subsequently, the variable value initialization unit 613 initializes the values stored in the spin memory 513, the first auxiliary variable memory 514, and the second auxiliary variable memory 515 (step S713).

続いて、相互作用演算実行部614が、式15、式17、及び式19に基づき相互作用演算を実行することにより、スピンメモリ513、第一補助変数メモリ514、及び第二補助変数メモリ515の値を更新する(ステップS714)。 Subsequently, the interaction calculation execution unit 614 executes the interaction calculation based on the equations 15, 17, and 19, so that the spin memory 513, the first auxiliary variable memory 514, and the second auxiliary variable memory 515 are The value is updated (step S714).

続いて、相互作用演算実行部614は、サンプリング実行条件が成立したか否か(例えば、相互作用演算を既定の回数だけ実行したか否か)を判定する(ステップS715)。サンプリング実行条件が成立したと相互作用演算実行部614が判定した場合(ステップS715:YES)、処理はステップS716に進む。一方、サンプリング実行条件が成立しない(ここでは相互作用演算の実行回数が未だ規定回数に達していない)と相互作用演算実行部614が判定した場合(ステップS715:NO)、処理はステップS714に戻る。 Subsequently, the interaction calculation execution unit 614 determines whether or not the sampling execution condition is satisfied (for example, whether or not the interaction calculation has been executed a predetermined number of times) (step S715). If the interaction calculation execution unit 614 determines that the sampling execution condition is satisfied (step S715: YES), the process proceeds to step S716. On the other hand, if the interaction calculation execution unit 614 determines that the sampling execution condition is not satisfied (here, the number of executions of the interaction calculation has not yet reached the specified number of times) (step S715: NO), the process returns to step S714. .

続いて、スピン値読出部615が、スピンメモリ513に格納されているスピンの値を読み出して、サンプリングの結果として記憶する(ステップS716)。かかるサンプリングの結果は、図4の補助記憶部13に記憶(データ格納)される。 Subsequently, the spin value reading unit 615 reads the spin value stored in the spin memory 513 and stores it as the sampling result (step S716). The result of such sampling is stored (data storage) in the auxiliary storage unit 13 shown in FIG.

続いて、スピン値読出部615は、既定の回数のサンプリングを実行したか否かを判定することにより、処理を終了させるか否かを判断する(ステップS717)。かかる判定の結果、未だ既定の回数のサンプリングが実行されていない場合(ステップS717:NO)、処理を続行すべく、ステップS714の処理に戻る。一方、既定の回数サンプリングが実行されていた場合(ステップS717:YES)、サンプリング処理を終了させるものと判断し、上述した一連の処理(ステップS711~S717)を終える。 Subsequently, the spin value reading unit 615 determines whether or not to terminate the process by determining whether or not sampling has been performed a predetermined number of times (step S717). As a result of this determination, if sampling has not been performed the predetermined number of times (step S717: NO), the process returns to step S714 to continue the process. On the other hand, if sampling has been performed the predetermined number of times (step S717: YES), it is determined that the sampling process should be terminated, and the above-described series of processes (steps S711 to S717) ends.

図8は、演算部20のより詳細な構成例を示すブロック図であり、SRAMの技術を本実施例の演算部20に適用した場合の回路構成例を示すブロック図である。 FIG. 8 is a block diagram showing a more detailed configuration example of the computing unit 20, and is a block diagram showing a circuit configuration example when the SRAM technology is applied to the computing unit 20 of this embodiment.

図8に示す例では、演算部20は、図5で上述した相互作用係数メモリ511および外部磁場係数メモリ512の他に、アレイユニット802、相互作用ドライバ803、SRAMインターフェース804、およびコントローラ805を備える。 In the example shown in FIG. 8, the arithmetic unit 20 includes an array unit 802, an interaction driver 803, an SRAM interface 804, and a controller 805 in addition to the interaction coefficient memory 511 and the external magnetic field coefficient memory 512 described above with reference to FIG. .

上記各ブロックのうち、まずはアレイユニット802の構成を概説する。アレイユニット802は、任意の一のスピンに関する値の演算および記憶を行うための演算プロセッサおよびメモリを有するユニット801(適宜、図9を参照)がマトリクス状に複数個(詳細にはN行(スピンの数)×3列(係数の数)=3N個)配列された構成を備える。このようなアレイユニット802の構成は、半導体製造技術(例えばSRAMの技術)を応用して製造することができる。 First, the configuration of the array unit 802 among the above blocks will be outlined. The array unit 802 includes a plurality of units 801 (see FIG. 9 as appropriate) having a memory and a processor for calculating and storing values relating to any one spin in a matrix (specifically, N rows (spins)). (number of coefficients)×3 rows (number of coefficients)=3N). Such a configuration of the array unit 802 can be manufactured by applying semiconductor manufacturing technology (for example, SRAM technology).

図9は、図8のアレイユニット802をなす複数(この例では3N個)のユニットのうちの一個のユニット801における回路構成の一例を示すブロック図である。図9に示すように、ユニット801には、一つのスピン(σ)または補助変数xまたは補助変数yのうちのいずれか一つを記憶する変数メモリ901と、変数メモリ901の値を更新するための構成(積和演算装置516および数学関数演算装置517)を備える。図9に示すようなユニット801の回路構成は、SRAMの回路構成を応用して作成することができる。なお、積和演算装置516、数学関数演算装置517、および図9に示す回路の動作等の詳細については後述する。 FIG. 9 is a block diagram showing an example of a circuit configuration in one unit 801 out of a plurality of (3N in this example) units forming the array unit 802 in FIG. As shown in FIG. 9, the unit 801 includes a variable memory 901 for storing one spin (σ i ) or one of the auxiliary variables x i and y i , and the value of the variable memory 901 as It has a configuration for updating (product-sum operation unit 516 and mathematical function operation unit 517). The circuit configuration of the unit 801 as shown in FIG. 9 can be created by applying the circuit configuration of the SRAM. Details of the operation of the sum-of-products operation unit 516, the mathematical function operation unit 517, and the circuit shown in FIG. 9 will be described later.

図8の構成例の説明に戻る。図8中、相互作用ドライバ803は、図5で上述した信号TSを出力する主体となるハードウェア(いわば信号生成部)であり、一具体例では、3N個のユニット801(各々のプロセッサ)に対して一度に同一の信号TSを出力する。相互作用ドライバ803のさらなる詳細は後述する。 Returning to the description of the configuration example of FIG. In FIG. 8, an interaction driver 803 is hardware (so to speak, a signal generator) that outputs the signal TS described above in FIG. , the same signal TS is output at once. Further details of interaction driver 803 are provided below.

また、本実施の形態において、図5および図8に示す相互作用係数メモリ511に格納されるデータは、図6で上述したモデル係数設定部611(図8も参照)によって設定される。すなわち、相互作用係数メモリ511には、イジング形式問題データ601(適宜、図6を参照)に基づくイジングモデルの相互作用行列Wが格納される。 In this embodiment, the data stored in the interaction coefficient memory 511 shown in FIGS. 5 and 8 are set by the model coefficient setting unit 611 (see also FIG. 8) described above with reference to FIG. That is, the interaction coefficient memory 511 stores the interaction matrix W of the Ising model based on the Ising format problem data 601 (see FIG. 6 as needed).

図8に示す構成例では、この相互作用係数メモリ511は、演算部20全体の回路規模を縮小するために、全てのユニット801で共通に用いられる。したがって、相互作用係数メモリ511は、アレイユニット802の全てのユニット801に係数Wを供給するが、図8ではそのための信号線の図示を省略している。なお、原理的には、相互作用係数メモリ511は、各ユニット801が個々に備える構成としてもよい。 In the configuration example shown in FIG. 8, this interaction coefficient memory 511 is used in common by all units 801 in order to reduce the circuit scale of the entire arithmetic section 20 . Therefore, the interaction coefficient memory 511 supplies the coefficient W to all the units 801 of the array unit 802, but FIG. 8 omits the illustration of signal lines therefor. In principle, each unit 801 may have an interaction coefficient memory 511 individually.

相互作用ドライバ803は、図5で説明した信号TS、すなわち3つの値(スピンσ、補助変数x、補助変数y)のうちの何れの値を更新するかを指定する信号TSを出力する。詳細には、図8に示す構成例では、相互作用ドライバ803は、信号TSとして、スピン(σ)の群及び補助変数(x、y)の三つの群から一つの群を指定(選択)し、該選択された一つの群の更新を許可する信号TSを送出する。そして、相互作用ドライバ803から送出された信号TSは、アレイユニット802の各ユニット801に入力される。かかる信号TSの入力により、特定の一つの群(すなわち、スピンσの群、または補助変数xの群、あるいは補助変数yの群のうちの何れかの群)のみが、アレイユニット802内で一斉に更新される。 The interaction driver 803 outputs the signal TS explained in FIG. 5, that is, the signal TS specifying which of the three values (spin σ, auxiliary variable x, auxiliary variable y) is to be updated. Specifically, in the configuration example shown in FIG. 8, the interaction driver 803 designates (selects) one group from the three groups of the spin (σ) group and the auxiliary variables (x, y) as the signal TS. , emits a signal TS authorizing the update of the selected one group. A signal TS sent from the interaction driver 803 is input to each unit 801 of the array unit 802 . By inputting such a signal TS, only one specific group (that is, any group among the group of spins σ, the group of auxiliary variables x, or the group of auxiliary variables y) is simultaneously generated in the array unit 802. is updated to

総じて、相互作用ドライバ803は、本発明の「選択信号供給部」に対応する。すなわち、相互作用ドライバ803は、アレイユニット802内に格納されたN個の変数(すなわち各々のユニット801の変数メモリ901に記憶された変数の値)を一斉更新する際に、スピン群σおよび補助変数群x、yのうちの一つの群を選択(指定)して各々(N個)の変数メモリ901内の値の更新方法を選択する信号TSを、アレイユニット802に供給する。 Overall, the interaction driver 803 corresponds to the "selection signal provider" of the present invention. That is, the interaction driver 803 simultaneously updates the N variables stored in the array unit 802 (that is, the values of the variables stored in the variable memory 901 of each unit 801), the spin group σ and the auxiliary A signal TS is supplied to the array unit 802 to select (designate) one of the variable groups x and y and select a method of updating the values in each of the (N) variable memories 901 .

かかる動作を行う本実施の形態の情報処理装置10(サンプリング装置)によれば、イジングモデルのボルツマン分布のサンプリングを、並列処理により効率的に実行することができる。 According to the information processing apparatus 10 (sampling apparatus) of the present embodiment that performs such operations, the Boltzmann distribution of the Ising model can be efficiently sampled by parallel processing.

図8および図9に参照されるように、演算部20のSRAMインターフェース804は、アレイユニット802の各々のユニット801の各ブロック(すなわち積和演算装置516、数学関数演算装置517、および上述した変数メモリ901)に接続され、かかるユニット801に対して、データの書き込みおよび読み出しを行う。また、SRAMインターフェース804は、アレイユニット802により演算されたスピンの値を信号SPとしてスピン値読出部615に出力する。かくして、アレイユニット802での処理終了後に、SRAMインターフェース804によって読み出されたスピンの値は、スピン値読出部615に送られる。スピン値読出部615は、SRAMインターフェース804から入力されたスピンの値を適宜記憶(蓄積)および表示部等の外部装置に出力することによって、サンプリングの結果を出力する。 As shown in FIGS. 8 and 9, the SRAM interface 804 of the arithmetic unit 20 connects each block of the unit 801 of each array unit 802 (that is, the sum-of-products arithmetic unit 516, the mathematical function arithmetic unit 517, and the variables described above). The unit 801 is connected to the memory 901 ), and data is written to and read from the unit 801 . The SRAM interface 804 also outputs the spin value calculated by the array unit 802 to the spin value reading unit 615 as a signal SP. Thus, the spin value read by the SRAM interface 804 is sent to the spin value reading unit 615 after the processing in the array unit 802 is completed. The spin value reading unit 615 outputs the sampling result by appropriately storing (accumulating) the spin value input from the SRAM interface 804 and outputting it to an external device such as a display unit.

演算部20のコントローラ805は、相互作用演算実行部614の指示により、演算部20の初期化や処理の終了報告を行う。 The controller 805 of the calculation unit 20 initializes the calculation unit 20 and reports the end of processing according to instructions from the interaction calculation execution unit 614 .

次に、一つのユニット801の回路構成例を、主に図9を参照して説明する。上述のように、個々のユニット801は、スピンσ、補助変数x、補助変数yのいずれか一つを記憶する変数メモリ901を備える。また、ユニット801は、変数メモリ901の値を更新するための構成(演算部ないし演算プロセッサ)として、積和演算装置516および数学関数演算装置517を備える。 Next, a circuit configuration example of one unit 801 will be described mainly with reference to FIG. As described above, each unit 801 comprises a variable memory 901 that stores one of spin σ i , auxiliary variable x i and auxiliary variable y i . The unit 801 also includes a sum-of-products operation unit 516 and a mathematical function operation unit 517 as a configuration (operation unit or operation processor) for updating the value of the variable memory 901 .

このうち、積和演算装置516は、上述したSRAMインターフェース804から供給される変数ベクトル(すなわち(x、y)、(σ、y)、(σ、y)のいずれか)、および相互作用係数Wの値を入力し、かかる入力値に基づく積和演算を実行し、当該演算結果の値を数学関数演算装置517に供給する。 Of these, the sum-of-products operation unit 516 supplies a variable vector (that is, one of (x, y), (σ, y), (σ, y)) supplied from the SRAM interface 804 and an interaction coefficient W is input, the sum-of-products operation is executed based on the input value, and the value of the operation result is supplied to the mathematical function operation device 517 .

一方、数学関数演算装置517は、積和演算装置516から供給される演算結果の値、上述したN次元ベクトルを表す信号SR、および(外部磁場係数メモリ512から供給される)ベクトルh(式15を参照)を表す情報を入力し、かかる入力に基づく数学関数演算を実行し、当該演算結果の値を変数メモリ901に供給する。 On the other hand, the mathematical function operation unit 517 receives the value of the operation result supplied from the sum-of-products operation unit 516, the signal SR representing the N-dimensional vector described above, and the vector h (supplied from the external magnetic field coefficient memory 512) (equation 15 ) is input, a mathematical function operation based on the input is executed, and the value of the operation result is supplied to the variable memory 901 .

より具体的には、一のユニット801の積和演算装置516には、変数メモリ901が属している群(現在格納している一の群)以外のスピン群及び変数群の値(上述した変数ベクトル)が入力される。これらの変数ベクトルは、他のユニット801の変数メモリ901からSRAMインターフェース804が読み出すことによって、生成(すなわち当該一のユニット801の積和演算装置516に供給)される。また、一のユニット801の積和演算装置516には、相互作用係数メモリ511(適宜、図8を参照)に格納されている相互作用係数Wの値が入力される。 More specifically, the sum-of-products operation device 516 of one unit 801 stores values of spin groups and variable groups (the above-described variable vector) is input. These variable vectors are generated (that is, supplied to the sum-of-products operation device 516 of the unit 801) by reading them from the variable memory 901 of the other unit 801 by the SRAM interface 804. FIG. Also, the value of the interaction coefficient W stored in the interaction coefficient memory 511 (see FIG. 8 as appropriate) is input to the sum-of-products operation device 516 of the one unit 801 .

一方、数学関数演算装置517には、上述した積和演算装置516による演算結果(出力値)、外部磁場係数メモリ512(適宜、図8を参照)に格納されているベクトルhの値、及び、(各要素が互いに独立な乱数であるN次元ベクトルを表す)信号SRが入力される。また、変数メモリ901がスピン群の値(σ)を格納(記憶)している場合は、変数メモリ901の記憶している変数(σ)も、(例えばSRAMインターフェース804を通じて)数学関数演算装置517に入力される(図9中に点線で示す矢印を参照)。 On the other hand, the mathematical function operation unit 517 stores the operation result (output value) by the product-sum operation unit 516, the value of the vector h stored in the external magnetic field coefficient memory 512 (see FIG. 8 as appropriate), and A signal SR (representing an N-dimensional vector in which each element is an independent random number) is input. Further, when the variable memory 901 stores (storage) the values (σ i ) of the spin group, the variables (σ i ) stored in the variable memory 901 are also processed (for example, through the SRAM interface 804) for mathematical function operations. Input to device 517 (see dashed arrow in FIG. 9).

かかる構成とすることにより、上述した式15、式17、または式19に基づいて変数の次状態を出力し、変数メモリ901に格納し、さらにはSRAMインターフェース804およびスピン値読出部615などを通じて、イジングモデルのボルツマン分布のサンプリング結果(例えば、N個のスピンの各々の状態が遷移してゆく様子)を適宜に出力することができる。 With such a configuration, the next state of the variable is output based on the above-described formula 15, formula 17, or formula 19, stored in the variable memory 901, further through the SRAM interface 804 and the spin value reading unit 615, etc. It is possible to appropriately output the sampling result of Boltzmann distribution of the Ising model (for example, how the state of each of N spins transitions).

以上、詳細に説明したように、本実施形態の情報処理装置10によれば、イジングモデルのボルツマン分布のサンプリングを効率よく行うことができる。加えて、上述した情報処理装置10(演算部20を含む)は、簡素な構成で実現できることから、安価かつ容易に製造することができる。 As described above in detail, according to the information processing apparatus 10 of the present embodiment, the Boltzmann distribution of the Ising model can be efficiently sampled. In addition, the above-described information processing apparatus 10 (including the calculation unit 20) can be realized with a simple configuration, so that it can be manufactured inexpensively and easily.

以上、一実施形態について詳述したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 Although one embodiment has been described in detail above, it goes without saying that the present invention is not limited to the above-described embodiment, and that various changes can be made without departing from the gist of the present invention. For example, the above embodiments have been described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. Moreover, it is possible to add, delete, or replace a part of the configuration of the above embodiment with another configuration.

また、上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, each of the above-described components, functional units, processing units, processing means, etc. may be realized by hardware, for example, by designing them in an integrated circuit. Moreover, each of the above configurations, functions, etc. may be realized by software by a processor interpreting and executing a program for realizing each function. Information such as programs, tables, and files that implement each function can be stored in recording devices such as memories, hard disks, SSDs (Solid State Drives), and recording media such as IC cards, SD cards, and DVDs.

また、上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。 Further, in each of the above drawings, control lines and information lines are those considered to be necessary for explanation, and not all control lines and information lines for implementation are necessarily shown. For example, it may be considered that almost all structures are interconnected in practice.

また、以上に説明した情報処理装置10の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、情報処理装置10が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。 Moreover, the arrangement form of various functional units, various processing units, and various databases of the information processing apparatus 10 described above is merely an example. The arrangement form of various functional units, various processing units, and various databases can be changed to an optimum arrangement form from the viewpoint of the performance, processing efficiency, communication efficiency, etc. of the hardware and software included in the information processing apparatus 10 .

また、前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。 Also, the configuration of the database (schema, etc.) that stores the various data described above can be flexibly changed from the viewpoint of efficient use of resources, improvement of processing efficiency, improvement of access efficiency, improvement of search efficiency, and the like.

サンプリング方法及び情報処理装置に利用することが可能である。 It can be used for a sampling method and an information processing device.

10 情報処理装置(サンプリング装置)
11 プロセッサ(変数制御部)
12 主記憶装置
13 補助記憶部
14 操作入力部
15 出力部
16 通信部
20 演算部(算出部)
511 相互作用係数メモリ
512 外部磁場係数メモリ
513 スピンメモリ
514 第一補助変数メモリ
515 第二補助変数メモリ
516 積和演算装置(積和演算部)
517 数学関数演算装置(数学関数演算部)
600 記憶部
601 イジング形式問題データ
602 演算装置制御プログラム
611 モデル係数設定部
612 固有値計算部
613 変数値初期化部
614 相互作用演算実行部
615 スピン値読出部
801 (3N個の)ユニット
802 アレイユニット
803 相互作用ドライバ(変数制御部)
804 SRAMインターフェース
805 コントローラ
W 相互作用モデルの相互作用係数
h イジングモデルの外部磁場係数
10 information processing device (sampling device)
11 processor (variable controller)
12 main storage device 13 auxiliary storage unit 14 operation input unit 15 output unit 16 communication unit 20 calculation unit (calculation unit)
511 interaction coefficient memory 512 external magnetic field coefficient memory 513 spin memory 514 first auxiliary variable memory 515 second auxiliary variable memory 516 product-sum operation device (product-sum operation unit)
517 Mathematical Function Calculator (Mathematical Function Calculator)
600 storage unit 601 Ising format problem data 602 arithmetic unit control program 611 model coefficient setting unit 612 eigenvalue calculation unit 613 variable value initialization unit 614 interaction calculation execution unit 615 spin value reading unit 801 (3N) units 802 array unit 803 Interaction driver (variable controller)
804 SRAM interface 805 Controller W Interaction coefficient of interaction model h External magnetic field coefficient of Ising model

Claims (7)

スピン間の相互作用関係を含むイジングモデルのボルツマン分布を対象として、マルコフ連鎖モンテカルロ法に基づくスピンの状態のサンプリングを行うように情報処理装置を動作させる制御方法であって、
前記イジングモデルに対するサンプリングを、N個(Nは自然数)の前記スピンσ=1~Nのうちの任意の数)からなるスピン群σと、各々の前記スピンσの向きを規定する連続変数として、前記N個の補助変数x=1~N)からなる第1補助変数群xおよび前記N個の補助変数y=1~N)からなる第2補助変数群yと、を備え、前記スピンσに対して全ての前記第1補助変数群xと全ての前記第2補助変数群yとが結線され相互作用関係を有する完全3部グラフ構造による相互作用モデルでのサンプリングにより代替し、
前記相互作用モデルの前記相互作用関係の値が、元の前記イジングモデルの相互作用関係及びその最小固有値で前記情報処理装置のメモリに設定され、
前記相互作用モデルにおいて状態遷移を行う際に、前記スピン群σ、前記第1補助変数群x、および前記第2補助変数群yの3つの変数群のうちの1つの群の全変数を一斉更新するように前記情報処理装置を動作させる、
制御方法。
A control method for operating an information processing device so as to sample a spin state based on a Markov chain Monte Carlo method for the Boltzmann distribution of an Ising model including an interaction relationship between spins, comprising:
Sampling for the Ising model defines a spin group σ consisting of N (N is a natural number) spins σ i ( i = any number from 1 to N) and the direction of each spin σ i As continuous variables, a first auxiliary variable group x consisting of the N auxiliary variables x i ( i = 1 to N) and a second auxiliary variable group consisting of the N auxiliary variables y i ( i = 1 to N) y, and all of the first auxiliary variable groups x and all of the second auxiliary variable groups y are connected to the spin σ i and have an interactive relationship with a complete tripartite graph structure. substitute by sampling at
The value of the interaction relationship of the interaction model is set in the memory of the information processing device with the interaction relationship of the original Ising model and its minimum eigenvalue,
All variables in one of the three variable groups of the spin group σ, the first auxiliary variable group x, and the second auxiliary variable group y are simultaneously updated when the state transition is performed in the interaction model. operating the information processing device to
control method.
スピン間の相互作用関係を含むイジングモデルのボルツマン分布を対象として、マルコフ連鎖モンテカルロ法に基づくスピンの状態のサンプリングを行うために、
前記イジングモデルに対する統計量として、N個(Nは自然数)の前記スピンσ=1~Nのうちの任意の数)からなるスピン群σと、各々の前記スピンσの向きを規定する連続変数として、前記N個の補助変数x=1~N)からなる第1補助変数群xおよび前記N個の補助変数y=1~N)からなる第2補助変数群yと、を備え、前記スピンσに対して全ての前記第1補助変数群xと全ての前記第2補助変数群yとが結線され相互作用関係を有する完全3部グラフ構造による相互作用モデルでの遷移確率P(σ,σ’)を算出する算出部と、
前記算出部により算出された、前記スピン群σ、前記第1補助変数群x、および前記第2補助変数群yの3つの変数群のうちの1つの群の全変数を一斉更新する制御を行う変数制御部と、
を備えるサンプリング装置。
In order to sample the spin states based on the Markov chain Monte Carlo method for the Boltzmann distribution of the Ising model including the interaction relationship between spins,
As statistics for the Ising model, a spin group σ consisting of N (N is a natural number) spins σ i ( i = any number from 1 to N) and the direction of each spin σ i are defined. As continuous variables, the first auxiliary variable group x consisting of the N auxiliary variables x i ( i = 1 to N) and the second auxiliary variable group x consisting of the N auxiliary variables y i ( i = 1 to N) and an interaction by a complete tripartite graph structure having an interaction relationship in which all of the first auxiliary variable groups x and all of the second auxiliary variable groups y are connected to the spin σ i . a calculation unit that calculates the transition probability P (σ, σ′) in the model;
Perform control to simultaneously update all variables in one of the three variable groups of the spin group σ, the first auxiliary variable group x, and the second auxiliary variable group y calculated by the calculating unit a variable control unit;
A sampling device comprising:
請求項2に記載のサンプリング装置において、
前記算出部により算出される、前記スピンの値、該スピンに係る第1および第2補助変数の3つの変数のうちの何れか一つの前記変数の値を格納するN個の変数メモリと、
前記N個の変数メモリに同一の信号(TS)を供給する選択信号供給部と、を備え、
前記変数制御部は、前記全変数を一斉更新する際に、前記スピン群σおよび前記補助変数群x、yのうちの一つの群を選んで前記N個の前記変数メモリ内の値の更新方法を選択する信号(TS)を選択信号供給部から出力させる制御を行う、
サンプリング装置。
A sampling device according to claim 2, wherein
N variable memories for storing the value of any one of the three variables of the spin value and the first and second auxiliary variables related to the spin calculated by the calculation unit;
a selection signal supply unit that supplies the same signal (TS) to the N variable memories,
The variable control unit selects one group from the spin group σ and the auxiliary variable groups x and y to update the values in the N variable memories when simultaneously updating all the variables. Perform control to output a signal (TS) for selecting from the selection signal supply unit,
sampling device.
請求項3に記載のサンプリング装置において、
前記イジングモデルの相互作用関係を規定する相互作用係数Jとその最小固有値-λより規定される相互作用モデルの相互作用係数Wを格納する相互作用係数メモリと、
前記イジングモデルの外部磁場係数hを格納する外部磁場係数メモリと、を備え、
前記算出部は、前記相互作用係数メモリ、前記外部磁場係数メモリ、および前記N個の変数メモリに格納された値を用いて、N個の前記スピンの次状態を算出する、
サンプリング装置。
A sampling device according to claim 3, wherein
an interaction coefficient memory for storing an interaction coefficient J defining the interaction relationship of the Ising model and an interaction coefficient W of the interaction model defined by its minimum eigenvalue -λ;
an external magnetic field coefficient memory that stores the external magnetic field coefficient h of the Ising model,
The calculation unit uses the values stored in the interaction coefficient memory, the external magnetic field coefficient memory, and the N variable memories to calculate the next states of the N spins.
sampling device.
請求項4に記載のサンプリング装置において、
前記相互作用係数Jは、対称行列であり、
前記相互作用係数Wは、前記相互作用係数Jと該相互作用係数Jの最小固有値に基づいて定められる、
サンプリング装置。
A sampling device according to claim 4, wherein
The interaction coefficient J is a symmetric matrix,
The interaction coefficient W is determined based on the interaction coefficient J and the minimum eigenvalue of the interaction coefficient J,
sampling device.
請求項5に記載の情報処理装置において、
前記算出部は、前記スピン及び補助変数の値、前記相互作用係数W、を変数として積和演算を実行する積和演算部を備える、
サンプリング装置。
In the information processing device according to claim 5,
The calculation unit includes a sum-of-products operation unit that performs a sum-of-products operation using the values of the spin and the auxiliary variables and the interaction coefficient W as variables.
sampling device.
請求項6に記載の情報処理装置において、
前記算出部は、対応する前記変数メモリに格納される値の次状態を演算する数学関数演算部を含む、
サンプリング装置。
In the information processing device according to claim 6,
The calculation unit includes a mathematical function calculation unit that calculates the next state of the value stored in the corresponding variable memory,
sampling device.
JP2021022168A 2021-02-15 2021-02-15 Control method and sampling device Active JP7444804B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021022168A JP7444804B2 (en) 2021-02-15 2021-02-15 Control method and sampling device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021022168A JP7444804B2 (en) 2021-02-15 2021-02-15 Control method and sampling device

Publications (2)

Publication Number Publication Date
JP2022124418A true JP2022124418A (en) 2022-08-25
JP7444804B2 JP7444804B2 (en) 2024-03-06

Family

ID=82941459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021022168A Active JP7444804B2 (en) 2021-02-15 2021-02-15 Control method and sampling device

Country Status (1)

Country Link
JP (1) JP7444804B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020202312A1 (en) 2019-03-29 2020-10-08 株式会社日立製作所 Information processing device, calculation device, and information processing method

Also Published As

Publication number Publication date
JP7444804B2 (en) 2024-03-06

Similar Documents

Publication Publication Date Title
JP2021507401A (en) Preparation of correlated fermion states in a quantum computer
JP6874219B2 (en) Information processing device, arithmetic unit, and information processing method
JP7007520B2 (en) Information processing device, arithmetic unit, and information processing method
JP6925546B1 (en) Arithmetic system, information processing device, and optimal solution search processing method
CN115169565B (en) Hamilton quantity simulation method and device of small molecule chemical system
JP7085158B2 (en) Neural network learning device, neural network learning method, program
Franco et al. Quantum robustness verification: A hybrid quantum-classical neural network certification algorithm
Albi et al. Kinetic based optimization enhanced by genetic dynamics
JP7444804B2 (en) Control method and sampling device
Rojek et al. Performance and scalability analysis of AI-accelerated CFD simulations across various computing platforms
JP2024508076A (en) Quantum circuit simulation methods, devices, computer equipment and programs
JP7457325B2 (en) Optimization device, evaluation device, their method, and program
Lupo Pasini et al. Fast and accurate predictions of total energy for solid solution alloys with graph convolutional neural networks
JP7398401B2 (en) Optimization method, information processing device and system using the same
JP7470019B2 (en) Information Processing System
WO2022044184A1 (en) Information processing system and optimal solution search processing method
JP7357795B2 (en) Information processing method and information processing system
JP2024049148A (en) Information processing method and information processing device
Bishara et al. High-precision regressors for particle physics
US20230267170A1 (en) Information processing system, information processing method, and non-transitory computer-readable recording medium for information processing program
JP2023073842A (en) Optimization method, information processing device and information processing system
JP2022158010A (en) Information processing system, information processing method, and information processing program
JP7489876B2 (en) MODEL ANALYSIS APPARATUS, MODEL ANALYSIS METHOD, AND PROGRAM
Caraiman et al. Parallel simulation of quantum search
Niu et al. R package for statistical inference in dynamical systems using kernel based gradient matching: KGode

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230203

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240222

R150 Certificate of patent or registration of utility model

Ref document number: 7444804

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150