Information processing device, information processing system, information processing method, storage medium and program

By using simulated branch algorithm and copy exchange method in the information processing device for parallel processing, the problem of low computational efficiency of combination optimization problems in the prior art is solved, and efficient solution in practical time is achieved.

CN113646787BActive Publication Date: 2025-01-14KK TOSHIBA +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080025407.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-03-28
Filing Date
2020-03-27
Publication Date
2025-01-14
Estimated Expiration
2040-03-27

AI Technical Summary

Technical Problem

The prior art is difficult to calculate the solution to the combination optimization problem in practical time, especially when facing the combination explosion problem, it is difficult to find or approximate the optimal solution.

Method used

An information processing device and system is designed, through multiple computing circuits and data exchange circuits, the analog branch algorithm and copy exchange method are used to realize parallelization and decentralization of the combination optimization problem, update variables and exchange them, so as to Accelerate the calculation process.

Benefits of technology

Effectively solve the combination optimization problem in a short time, improves the computing efficiency, and can obtain the optimal or approximately optimal solution in practical time, solving the calculation problems caused by the combination explosion.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113646787B_ABST
    Figure CN113646787B_ABST
Patent Text Reader

Abstract

Provided are an information processing device, an information processing system, an information processing method, a storage medium, and a program for calculating a solution to a combinatorial optimization problem within a practical time. The information processing device as an embodiment of the present invention comprises: a plurality of operation circuits configured to repeatedly update a first vector having a first variable as an element and a second vector having a second variable corresponding to the first variable as an element; and a data exchange circuit. Each of the above operation circuits is configured to update the above first variable based on the corresponding second variable, weight the above first variable with a first coefficient and add the corresponding second variable, calculate a problem item using a plurality of the above first variables, and add the above problem item to the above second variable; in each of the above operation circuits, a different value is set for the above first coefficient; and the above data exchange circuit is configured to perform at least one of the exchange of the above first vector and the above second vector or the exchange of the above first coefficient between the above operation circuits.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing device, an information processing system, an information processing method, a storage medium and a program. Background Art

[0002] The combinatorial optimization problem is a problem of selecting the combination that best suits the purpose from among multiple combinations. Mathematically, the combinatorial optimization problem is reduced to the problem of maximizing or minimizing a function with multiple discrete variables called the "objective function". The combinatorial optimization problem is a universal problem in various fields such as finance, logistics, transportation, design, manufacturing, and life sciences, but the optimal solution is not necessarily found due to the so-called "combinatorial explosion" in which the number of combinations increases at the order of an exponential function of the problem size. In addition, there are many cases where it is difficult to even obtain an approximate solution that is close to the optimal solution.

[0003] In order to solve problems in various fields and promote social innovation and scientific and technological progress, it is required to develop technology that can calculate solutions to combinatorial optimization problems in a practical time.

[0004] Prior art literature

[0005] Patent Literature

[0006] Patent Document 1: Japanese Patent Application Publication No. 2017-73106

[0007] Non-patent literature

[0008] Non-patent literature 1: H. Goto, K. Tatsumura, ARDixon, Sci. Adv. 5, eaav2372 (2019).

[0009] Non-patent document 2: H. Goto, Sci. Rep. 6, 21686 (2016).

[0010] Non-Patent Literature 3: Tsuchiya, Nishiyama, and Tsujita: Approximate solution to combinatorial optimization problems using branching characteristics, URL: http: / / www.ynl.tu-tokyo.ac.jp / project / RobotBrainCREST / publications / pdf / tsuc hiya / 4_01.pdf

[0011] Non-Patent Literature 4: Tsuchiya, Nishiyama, and Tsujita: Analysis of the Deterministic Annealing Algorithm, URL: http: / / www.ynl.tu-tokyo.ac.jp / project / RobotBrainCREST / publications / pdf / tsuc hiya / 4_02.pdf Summary of the invention

[0012] Technical problem to be solved by the invention

[0013] An object of the present invention is to provide an information processing device, an information processing system, an information processing method, a storage medium and a program for calculating a solution to a combinatorial optimization problem within a practical time.

[0014] Means for solving technical problems

[0015] The information processing device as a technical solution of the present invention comprises: a plurality of operation circuits, each configured to repeatedly update a first vector having a first variable as an element and a second vector having a second variable corresponding to the first variable as an element; and a data exchange circuit. Each of the operation circuits is configured to update the first variable based on the corresponding second variable, weight the first variable with a first coefficient and add the corresponding second variable, calculate a problem item using a plurality of the first variables, and add the problem item to the second variable; in each of the operation circuits, a different value is set for the first coefficient; and the data exchange circuit is configured to perform at least one of the exchange of the first vector and the second vector or the exchange of the first coefficient between the operation circuits. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 It is a diagram showing a configuration example of an information processing system.

[0017] Figure 2 This is a block diagram showing an example configuration of a management server.

[0018] Figure 3 This is a diagram showing an example of data stored in the storage unit of the management server.

[0019] Figure 4 This is a block diagram showing an example of the configuration of a calculation server.

[0020] Figure 5 The diagram shows an example of data stored in a storage device of a computing server.

[0021] Figure 6 This is a flowchart showing an example of processing when a solution of a simulation branching algorithm is calculated by time advancement.

[0022] Figure 7 This is a graph showing an example of an update pattern of the coefficient p when performing time-advancing calculation.

[0023] Figure 8 This is a diagram conceptually showing the coefficient p used when performing calculation by the replica exchange method.

[0024] Fig. 9 This is a flowchart showing an example of processing when calculation of a pseudo branching algorithm is performed by the replica exchange method.

[0025] Fig.10 is the coefficient p that represents the change in usage (m) This is a flowchart showing an example of processing when calculation is performed.

[0026] Fig.11 This is a flowchart showing an example of processing when replica exchange is performed in parallel.

[0027] Fig.12 This is a diagram conceptually showing the processing flow of the replica exchange method.

[0028] Fig.13 This is a diagram showing an example of an equation related to the replica exchange method.

[0029] Fig.14 This is a histogram showing an example of the number of trials required to obtain the optimal solution.

[0030] Fig.15 This is a diagram schematically showing an example of a multi-processor configuration.

[0031] Fig.16 This is a diagram schematically showing an example of a configuration using a GPU.

[0032] Fig.17 is a flow chart showing an example of overall processing performed to solve a combinatorial optimization problem. DETAILED DESCRIPTION

[0033] Below, while referring to the attached Figure 1 In the drawings, the same components are denoted by the same reference numerals, and description thereof will be appropriately omitted.

[0034] Figure 1 It is a block diagram showing a configuration example of the information processing system 100 . Figure 1 The information processing system 100 includes a management server 1, a network 2, computing servers (information processing devices) 3a to 3c, cables 4a to 4c, a switch 5, and a storage device 7. Figure 1, represents a client terminal 6 capable of communicating with the information processing system 100. The management server 1, the computing servers 3a to 3c, the client terminal 6, and the storage device 7 can communicate data with each other via the network 2. For example, the computing servers 3a to 3c can save data to the storage device 7 or read data from the storage device 7. The network 2 is, for example, the Internet that connects a plurality of computer networks to each other. The network 2 can use wired, wireless, or a combination thereof as a communication medium. In addition, TCP / IP is an example of a communication protocol used in the network 2, but there is no limitation on the type of communication protocol.

[0035] In addition, the computing servers 3a~3c are connected to the switch 5 via cables 4a~4c, respectively. The cables 4a~4c and the switch 5 form an intermediate connection between the computing servers. The computing servers 3a~3c can communicate data with each other via the intermediate connection. The switch 5 is, for example, an Infiniband switch. The cables 4a~4c are, for example, Infiniband cables. However, a wired LAN switch / cable can be used instead of an Infiniband switch / cable. There is no particular limitation on the communication standard and communication protocol used in the cables 4a~4c and the switch 5. Examples of the client terminal 6 include a notebook PC, a desktop PC, a smart phone, a tablet computer, a car terminal, and the like.

[0036] In solving the combinatorial optimization problem, the processing can be parallelized and / or decentralized. Therefore, the computing servers 3a~3c and / or the processors of the computing servers 3a~3c can share the steps of executing a part of the computing processing, and can also perform the same computing processing in parallel for different variables. The management server 1, for example, transforms the combinatorial optimization problem input by the user into a form that can be processed by each computing server, and controls the computing server. In addition, the management server 1 obtains the calculation results from each computing server and transforms the aggregated calculation results into the solution of the combinatorial optimization problem. In this way, the user can obtain the solution to the combinatorial optimization problem. It is assumed that the solution to the combinatorial optimization problem includes an optimal solution and an approximate solution close to the optimal solution.

[0037] exist Figure 13 computing servers are shown in . However, the number of computing servers included in the information processing system is not limited. In addition, there is no special limitation on the number of computing servers used in solving the combinatorial optimization problem. For example, the information processing system may include one computing server. In addition, any of the multiple computing servers included in the information processing system can be used to solve the combinatorial optimization problem. In addition, the information processing system may include more than hundreds of computing servers. The computing server can be a server located in a data center or a desktop PC located in an office. In addition, the computing server can also be multiple types of computers located in different locations. There is no special limitation on the type of information processing device used as a computing server. For example, the computing server can be a general-purpose computer, a dedicated electronic circuit, or a combination thereof.

[0038] Figure 2 It is a block diagram showing a configuration example of the management server 1 . Figure 2 The management server 1 is, for example, a computer including a central processing unit (CPU) and a memory. The management server 1 includes a processor 10, a storage unit 14, a communication circuit 15, an input circuit 16, and an output circuit 17. The processor 10, the storage unit 14, the communication circuit 15, the input circuit 16, and the output circuit 17 are connected to each other via a bus 20. The processor 10 includes a management unit 11, a conversion unit 12, and a control unit 13 as internal components.

[0039] The processor 10 is an electronic circuit that performs calculations and controls the management server 1. As the processor 10, for example, a CPU, a microprocessor, an ASIC, an FPGA, a PLD or a combination thereof can be used. The management unit 11 provides an interface for operating the management server 1 via the user's client terminal 6. Examples of the interface provided by the management unit 11 include API, CLI, web pages, etc. For example, the user can input information about the combinatorial optimization problem through the management unit 11, or browse and / or download the calculated solution to the combinatorial optimization problem. The conversion unit 12 converts the combinatorial optimization problem into a form that can be processed by each computing server. The control unit 13 sends a control instruction to each computing server. After the control unit 13 obtains the calculation results from each computing server, the conversion unit 12 aggregates the multiple calculation results and converts them into a solution to the combinatorial optimization problem. In addition, the control unit 13 can also specify the processing content to be performed by each computing server or the processor in each server.

[0040] The storage unit 14 stores various data including the program of the management server 1, the data required for the execution of the program, and the data generated by the program. Here, it is assumed that the program includes both the OS and the application. The storage unit 14 can also be a volatile memory, a non-volatile memory, or a combination thereof. Examples of volatile memories include DRAM, SRAM, etc. Examples of non-volatile memories include NAND flash memory, NOR flash memory, ReRAM, or MRAM. In addition, a hard disk, an optical disk, a magnetic tape, or an external storage device can also be used as the storage unit 14.

[0041] The communication circuit 15 transmits and receives data to and from each device connected to the network 2. The communication circuit 15 is, for example, a NIC (Network Interface Card) of a wired LAN. However, the communication circuit 15 may also be another type of communication circuit such as a wireless LAN. The input circuit 16 implements data input to the management server 1. It is assumed that the input circuit 16 has, for example, a USB, PCI-Express, etc. as an external port. Figure 2 In the example, the operating device 18 is connected to the input circuit 16. The operating device 18 is a device for inputting information to the management server 1. The operating device 18 is, for example, a keyboard, a mouse, a touch panel, a voice recognition device, etc., but is not limited thereto. The output circuit 17 realizes data output from the management server 1. It is assumed that the output circuit 17 has HDMI, DisplayPort, etc. as an external port. Figure 2 In the example of , the display device 19 is connected to the output circuit 17. Examples of the display device 19 include an LCD (Liquid Crystal Display), an organic EL (Organic Electroluminescence) display, or a projector, but are not limited thereto.

[0042] The administrator of the management server 1 can use the operation device 18 and the display device 19 to perform maintenance on the management server 1. In addition, the operation device 18 and the display device 19 may be incorporated into the management server 1. In addition, the operation device 18 and the display device 19 may not necessarily be connected to the management server 1. For example, the administrator may perform maintenance on the management server 1 using a client terminal that can communicate with the network 2.

[0043] Figure 3 2 shows an example of data stored in the storage unit 14 of the management server 1. Figure 3In the storage unit 14, problem data 14A, calculation data 14B, management program 14C, transformation program 14D, and control program 14E are stored. For example, problem data 14A includes data of a combinatorial optimization problem. For example, calculation data 14B includes calculation results collected from each calculation server. For example, management program 14C is a program that implements the functions of the management unit 11 described above. For example, transformation program 14D is a program that implements the functions of the transformation unit 12 described above. For example, control program 14E is a program that implements the functions of the control unit 13 described above.

[0044] Figure 4 FIG. 1 is a block diagram showing an example of the configuration of a computing server. Figure 4 In the figure, the structure of the computing server 3a is shown by way of example. The other computing servers may have the same structure as the computing server 3a or may have a different structure from the computing server 3a. The computing server 3a is, for example, an information processing device that performs the calculation of the first vector and the second vector alone or in sharing with other computing servers. In addition, at least one computing server may calculate the problem item between the elements of the first vector. Here, the problem item may also be calculated based on the Ising model described later. In addition, the problem item may also include the multi-body interaction described later.

[0045] For example, the first vector is based on the variable x i (i=1, 2, ..., N) or variable X (m) i (i=1, 2, ..., N) as the elements. For example, the second vector is a vector with variable y i (i=1, 2, ..., N) or variable Y (m) i (i=1, 2, ..., N) is a vector of elements. Here, m represents a replica number which is an integer from 1 to M. The details of the replica will be described later.

[0046] The calculation server 3a includes, for example, a communication circuit 31, a shared memory 32, processors 33A to 33D, a storage device 34, and a host bus adapter 35. The communication circuit 31, the shared memory 32, the processors 33A to 33D, the storage device 34, and the host bus adapter 35 are connected to each other via a bus 36.

[0047] The communication circuit 31 sends and receives data to and from each device connected to the network 2. The communication circuit 31 is, for example, a NIC (Network Interface Card) of a wired LAN. However, the communication circuit 31 may also be other types of communication circuits such as a wireless LAN. The shared memory 32 is a memory accessible from the processors 33A to 33D. As examples of the shared memory 32, volatile memories such as DRAM and SRAM can be cited. However, other types of memories such as non-volatile memories may also be used as the shared memory 32. The processors 33A to 33D can share data via the shared memory 32. In addition, all of the memory of the computing server 3a may not necessarily be configured as a shared memory. For example, a portion of the memory of the computing server 3a may also be configured as a local memory that can only be accessed from a certain processor.

[0048] Processors 33A to 33D are electronic circuits that perform computational processing. The processor may be, for example, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an FPGA (Field-Programmable Gate Array), or an ASIC (Application Specific Integrated Circuit), or a combination thereof. In addition, the processor may also be a CPU core or a CPU thread. When the processor is a CPU, there is no particular limitation on the number of slots that the computing server 3a has. In addition, the processor may also be connected to other components of the computing server 3a via a bus such as PCI express.

[0049] exist Figure 4 In the example, the computing server has four processors. However, the number of processors in one computing server may be different. For example, the number and / or type of processors installed in the computing server may be different.

[0050] The information processing device is configured, for example, to i The first vector with (i=1, 2, ..., N) as its elements and the second variable y corresponding to the first variable i The second vector having (i=1, 2, ..., N) as elements is repeatedly updated. The storage unit of the information processing device may be configured to store the first variable as an element of the first vector and the second variable as an element of the second vector.

[0051] For example, a plurality of operation circuits 50 are configured to repeatedly update a first vector having a first variable as an element and a second vector having a second variable corresponding to the first variable as an element. For example, each operation circuit 50 is configured to update the first variable based on the corresponding second variable, weight the first variable with a first coefficient and add it to the corresponding second variable, use a plurality of first variables to calculate a problem item, and add the problem item to the second variable. In addition, different values ​​may be set for the first coefficient in each operation circuit 50. For example, the data exchange circuit 51 is configured to perform at least one of the exchange of the first vector and the second vector or the exchange of the first coefficient between the operation circuits 50. The problem item calculated by the operation circuit may also be based on the Ising model. In addition, the problem item calculated by the operation circuit may also include multi-body interaction. Details about the problem item will be described later.

[0052] exist Figure 4 In the example, processors 33A to 33C correspond to a plurality of arithmetic circuits, and processor 33D corresponds to a data exchange circuit. Figure 4 The correspondence between the arithmetic circuit / data exchange circuit and the processor shown in is only an example. Therefore, the correspondence between the arithmetic circuit / data exchange circuit and the processor may also be different from this. In addition, there is no particular limitation on the number of processors assigned to the arithmetic circuit / data exchange circuit. As described later, the same processor may also have the functions of both an arithmetic circuit and a data exchange circuit. When multiple types of processors (for example, CPU, GPU, FPGA) are installed in the computing server, different types of processors may also be assigned to the arithmetic circuit and the data exchange circuit.

[0053] Here, the case of allocating processing contents to processor units is used as an example for explanation. However, the unit of computing resources for allocating processing contents is not limited. For example, processing contents may also be allocated to computers. In this case, the information processing system may also have a plurality of first computers and second computers. For example, the first computer is configured to repeatedly update a first vector having a first variable as an element and a second vector having a second variable corresponding to the first variable as an element. For example, the second computer is configured to perform data exchange between the first computers. The first computer and the second computer are, for example, equivalent to the above-mentioned computing servers.

[0054] Each first computer may be configured to update the first variable based on the corresponding second variable, weight the first variable with the first coefficient and add the weighted first variable to the corresponding second variable, calculate the problem item using a plurality of first variables, and add the problem item to the second variable. The second computer may be configured to perform at least one of the exchange of the first vector and the second vector or the exchange of the first coefficient between the first computers. In addition, different values ​​may be set for the first coefficient in each first computer.

[0055] Below, refer again Figure 4 , describing the components of a computing server.

[0056] The storage device 34 stores various data including the program of the computing server 3a, the data required for the execution of the program, and the data generated by the program. Here, it is assumed that the program includes both the OS and the application. The storage device 34 can also be a volatile memory, a non-volatile memory, or a combination thereof. Examples of volatile memories include DRAM or SRAM. Examples of non-volatile memories include NAND flash memory, NOR flash memory, ReRAM, or MRAM. In addition, a hard disk, an optical disk, a magnetic tape, or an external storage device can also be used as the storage device 34.

[0057] The host bus adapter 35 implements data communication between computing servers. The host bus adapter 35 is connected to the switch 5 via the cable 4a. The host bus adapter 35 is, for example, an HCA (Host Channel Adaptor). By using the host bus adapter 35, the cable 4a and the switch 5 to form an intermediate connection that can achieve high communication volume, the speed of parallel computing processing can be increased.

[0058] Figure 5 An example of data stored in a storage device on a computing server. Figure 5 The storage device 34 stores calculation data 34A, calculation program 34B, and control program 34C. The calculation data 34A includes data or calculation results in the process of calculation of the calculation server 3a. In addition, at least a part of the calculation data 34A can also be stored in different storage levels such as the shared memory 32, the processor cache, or the processor register. The calculation program 34B is a program that implements the calculation processing in each processor and the storage processing of the data in the shared memory 32 and the storage device 34 based on a prescribed algorithm. The control program 34C is a program that controls the calculation server 3a based on the instructions sent from the control unit 13 of the management server 1 and sends the calculation results of the calculation server 3a to the management server 1.

[0059] Next, the technology associated with solving the combinatorial optimization problem is described. As an example of an information processing device used to solve the combinatorial optimization problem, an Ising machine can be cited. An Ising machine refers to an information processing device that calculates the energy of the basic state of the Ising model. So far, the Ising model has been mainly used as a model of ferromagnetic bodies and phase transition phenomena. However, in recent years, the use of the Ising model as a model for solving combinatorial optimization problems has increased. The following formula (1) represents the energy of the Ising model.

[0060] [Formula 1]

[0061]

[0062] Here, s i 、s j is the spin, which is a binary variable that takes a value of +1 or -1. N is the spin number. h i is the local magnetic field acting on each spin. J is the matrix of coupling coefficients between spins. The matrix J is a real symmetric matrix with zero diagonal components. Therefore, J ij represents the element of row i and column j of matrix J. The Ising model in equation (1) is a quadratic equation for spin, but an extended Ising model (Ising model with multi-body interaction) including a term of degree 3 or higher for spin may also be used.

[0063] If the Ising model of formula (1) is used, the energy E Ising As the objective function, calculate the energy E Ising The solution of the Ising model is the vector of spins (s1, s2, ..., s N ) form. In particular, the energy E Ising is the vector of minimum values ​​(s1, s2, ..., s N ) is called the optimal solution. However, the solution of the Ising model calculated may not necessarily be the strict optimal solution. In the following, the Ising model will be used to calculate the energy E Ising The problem of finding an approximate solution that is as small as possible (i.e., an approximate solution whose value of the objective function is as close as possible to the optimal value) is called the Ising problem.

[0064] Since the spin s of formula (1) i is a binary variable, so by using the formula (1+s i ) / 2, it is easy to transform the discrete variables (bits) used in the combinatorial optimization problem. Therefore, by transforming the combinatorial optimization problem into the Ising problem and making the Ising machine perform the calculation, the solution to the combinatorial optimization problem can be found. The problem of finding a solution that minimizes a quadratic objective function with discrete variables (bits) that take a certain value of 0 or 1 as variables is called the QUBO (Quadratic Unconstrained Binary Optimization) problem. The Ising problem expressed in formula (1) can be said to be equivalent to the QUBO problem.

[0065] For example, quantum annealing machines, coherent Ising machines, or quantum branching machines have been proposed as hardware installations of the Ising machine. The quantum annealing machine uses a superconducting circuit to implement quantum annealing. The coherent Ising machine uses the oscillation phenomenon of a network formed by an optical parametric oscillator. The quantum branching machine uses the branching phenomenon of quantum mechanics in a network of parametric oscillators with the Kerr effect. These hardware installations have the potential to significantly shorten the computing time, but on the other hand, there are technical problems that make it difficult to achieve large-scale and stable operation.

[0066] Therefore, it is also possible to use widely used digital computers to solve the Ising problem. Compared with the hardware installation using the above-mentioned physical phenomenon, digital computers are easy to achieve large-scale and stable operation. As an example of an algorithm used to solve the Ising problem with a digital computer, simulated annealing (SA) can be cited. Technology for performing simulated annealing at a higher speed is being developed. However, since conventional simulated annealing is a sequential update algorithm in which each variable is updated sequentially, it is difficult to achieve high-speed calculation processing due to parallelization.

[0067] In view of the above technical problems, a simulation branching algorithm is proposed for solving large-scale combinatorial optimization problems at high speed by parallel calculations of digital computers. Hereinafter, an information processing device, an information processing system, an information processing method, a storage medium and a program for solving combinatorial optimization problems using the simulation branching algorithm are described.

[0068] First, an overview of the simulation branching algorithm is described.

[0069] In the simulation branching algorithm, for two variables x with N i ,y i (i=1, 2, ..., N), numerically solve the following simultaneous ordinary differential equations (2). N variables x i Corresponding to the spin s of the Ising model i On the other hand, N variables y i They are equivalent to the amount of exercise respectively. Let the variable x i ,y i are all continuous variables. i A vector with (i=1, 2, ..., N) as its elements is called the first vector. i A vector whose elements are (i=1, 2, ..., N) is called a second vector.

[0070] [Formula 2]

[0071]

[0072] Here, H is the Hamiltonian of the following equation (3).

[0073] [Formula 3]

[0074]

[0075] By calculating the time advancement of the simulated branching algorithm, the variable x can be i ,y i The value of (i=1, 2, ..., N) is repeatedly updated to find the spin s of the Ising model i (i=1, 2, ..., N). That is, when performing a time-advancing calculation, the values ​​of the elements of the first vector and the values ​​of the elements of the second vector are repeatedly updated. Here, it is assumed that a time-advancing calculation is performed and each coefficient is explained. However, the calculation of the simulated branching algorithm does not need to be performed in time. For example, the simulated branching algorithm can also be solved by the replica exchange method (parallel tempering) as described later.

[0076] In (2) and (3), coefficient D corresponds to demodulation. Coefficient p(t) corresponds to pumping amplitude. In the case of time advancement of the calculation analog branching algorithm, coefficient p(t) increases monotonically with the number of updates. The initial value of coefficient p(t) can also be set to 0. Coefficient K corresponds to a positive Kerr coefficient. As coefficient c, a constant coefficient can be used. For example, the value of coefficient c can also be determined before the execution of the calculation based on the analog branching algorithm. For example, coefficient c can be set to be close to J. (2) The value of the reciprocal of the maximum eigenvalue of the matrix. For example, the value of c = 0.5D√(N / 2n) can be used. Here, n is the number of edges of the curve related to the combinatorial optimization problem. In addition, a(t) is a coefficient that increases with p(t) in the calculation of time advancement. For example, √(p(t) / K) can be used as a(t). In addition, the vector h of the local magnetic field in (3) and (4) is i Can be omitted.

[0077] When the value of the coefficient p(t) exceeds a predetermined value in the time-advanced calculation, if the variable x is a positive value in the first vector, i Transformed to +1, the variable x is negative i Transformed to -1, we can get i is a solution vector of the elements. This solution vector is equivalent to the solution of the Ising problem. In addition, the above-mentioned transformation can also be performed based on the number of updates of the first vector and the second vector to determine whether the solution vector is obtained.

[0078] When calculating the time progress of the simulation branching algorithm, the Symplectic Euler method can be used to transform the above (2) into a discrete recursive equation and solve it. The following (4) shows an example of the simulation branching algorithm after the recursive equation is transformed.

[0079] [Formula 4]

[0080]

[0081] Here, t is the time and Δt is the time step (time scale width). In addition, in (4), the time t and the time step Δt are used to express the corresponding relationship with the differential equation. However, when the algorithm is actually installed in software or hardware, it is not necessary to include the time t and the time step Δt as explicit parameters. For example, if the time step Δt is set to 1, the time step Δt can be removed from the algorithm during installation. When the algorithm is installed without including the time t as an explicit parameter, just replace x in (4). i (t+Δt) is interpreted as x i That is, "t" in the above (4) represents the value of the variable before the update, and "t+Δt" represents the value of the variable after the update.

[0082] When calculating the time progress of the simulated branching algorithm, based on the variable x after increasing the value of p(t) from an initial value (for example, 0) to a predetermined value, i The sign of the spin s can be found i For example, if you use x i >0 is sgn(x i )=1, at x i <0 is sgn(x i )=-1, then when the value of p(t) increases to a specified value, by changing the variable x i By using the symbolic function transformation, we can find the spin s i As a symbolic function, for example, we can use i ≠0 is sgn(x i )=x i / |x i |、When x i = 0 is sgn(x i )=1 or -1. Regarding the solution of the combinatorial optimization problem (for example, the spin s of the Ising model i ) is not particularly limited. For example, the solution (solution vector) of the combinatorial optimization problem may be obtained when the number of updates of the first vector and the second vector or the value of the first coefficient p becomes larger than a threshold value.

[0083] Figure 6 The flowchart of shows an example of processing when the solution of the simulation branching algorithm is calculated by time advancement. Figure 6 While explaining the processing.

[0084] First, the computing server obtains the matrix J corresponding to the problem from the management server 1 ij and vector h i (Step S101). Next, the computing server initializes the coefficients p(t) and a(t) (Step S102). For example, in step S102, the coefficients p and a can be set to 0, but the initial values ​​of the coefficients p and a are not limited. Next, the computing server initializes the first variable x i and the second variable y i Initialization (step S103). Here, the first variable x i is the element of the first vector. In addition, the second variable y i is an element of the second vector. In step S103, the computing server may also use a pseudo-random number to replace x i and i Initialization. However, it does not limit x i and i In addition, variables may be initialized at a different timing, or at least a certain variable may be initialized multiple times.

[0085] Next, the calculation server calculates the corresponding second vector element y by i Weighted and combined with the first vector element x i Add and update the first vector (step S104). For example, in step S104, the variable x i Add Δt×D×y i Furthermore, the computing server converts the element y of the second vector i Update (steps S105 and S106). For example, in step S105, the variable y i Add Δt×[(p-D-K×x i × i )×x i In step S106, the variable y can be i Add -Δt×c×h i ×a-Δt×c×ΣJ ij × j .

[0086] Next, the computing server updates the values ​​of coefficients p and a (step S107). For example, a certain value (Δp) is added to coefficient p, and coefficient a is set to the positive square root of the updated coefficient p. However, as described later, this is only one example of a method for updating the values ​​of coefficients p and a. Next, the computing server determines whether the number of updates of the first vector and the second vector is less than a threshold value (step S108). When the number of updates is less than the threshold value (“Yes” in step S108), the computing server executes the processing of steps S104 to S107 again. When the number of updates is greater than the threshold value (“No” in step S108), based on the element x of the first vector, the calculation server performs the processing of steps S104 to S107 again. i Find the spin s of the elements of the solution vector i (Step S109). In step S109, for example, in the first vector, the variables x and i Transformed to +1, the variable x is negative i Transform it to -1 and get the solution vector.

[0087] In addition, in the determination of step S108, when the number of updates is less than the threshold value ("Yes" in step S108), the value of the Hamiltonian may be calculated based on the first vector, and the first vector and the value of the Hamiltonian may be stored. Thus, the user can select the approximate solution closest to the optimal solution from a plurality of first vectors.

[0088] Alternatively, you can Figure 6 At least one of the processes shown in the flowchart of is executed in parallel. For example, the processes of steps S104 to S106 may be executed in parallel to update at least a portion of the N elements respectively possessed by the first vector and the second vector in parallel. For example, the processes may be parallelized using multiple computing servers. The processes may also be parallelized using multiple processors. However, the installation used to realize the parallelization of the processes and the method of the parallelization of the processes are not limited.

[0089] The variable x represented in the above steps S105 to S106 is i and i The execution order of the update processing of is just an example. Therefore, the update processing of the variable x can also be executed in a different order. i and i For example, you can also execute the variable x i Update process and variable y i In addition, the order of sub-processes included in the update process of each variable is not limited. For example, variable y i The execution order of the addition processing included in the update processing of Figure 6The execution order and timing of the processing that is the prerequisite for executing the updating processing of each variable are not particularly limited. For example, the calculation processing of the problem item can be combined with the processing including the variable x. i The update process of the variable x is executed in parallel with the other processes. i and i The order and timing in which the update processing, the sub-processing included in the update processing of each variable, and the calculation processing of the question item are executed are not limited, and the same applies to the processing of each flowchart shown later.

[0090] Figure 7 The graph of φ represents an example of an update pattern of the coefficient p when performing time-advancing calculation. Figure 7 The vertical axis represents the value of coefficient p. In addition, Figure 7 The horizontal axis corresponds to the time or the number of updates. Figure 7 represents p with a value from the initial value p1 to the value after M updates M Multiple update styles. As long as p1 is satisfied <p M If the condition is met, then p1 and p M Set to an arbitrary real number. In this way, there are infinitely many update patterns of the coefficient p.

[0091] In addition, the coefficient p in the simulated branching algorithm is equivalent to the inverse of the temperature T in simulated annealing (SA). Therefore, the transition probability of the particle can be adjusted according to the coefficient p. The smaller the coefficient p, the higher the transition probability of the particle. On the other hand, the larger the coefficient p, the lower the transition probability of the particle. Therefore, the update pattern of the coefficient p in the simulated branching algorithm can be said to be equivalent to the cooling schedule in simulated annealing.

[0092] For example, Figure 7 As shown, the coefficient p may be increased at a certain ratio according to the number of updates. In addition, the coefficient p may be increased at different increments according to the update timing. Furthermore, the value of the coefficient p may be updated at some update timings and the update of the value of the coefficient p may be skipped at the remaining update timings.

[0093] In the solution process of the simulated branching algorithm, it is hoped to explore as large an area as possible of the solution space containing multiple local solutions to reach the optimal solution to the problem or an approximate solution close to it. The update pattern of the coefficients p and a specifies the area of ​​the solution space that is the object of exploration and the granularity of the exploration. Therefore, it is necessary to adjust the update pattern of the coefficients p and a so that it is easy to find a wide-area optimal solution. However, it is not necessarily easy to find the optimal update pattern for each problem that is the object of solution. It is also conceivable that the user tries various update patterns and selects the update pattern to be used based on experience.

[0094] Therefore, it is also possible to solve the simulated branching algorithm through the replica exchange method instead of the time advancement calculation.

[0095] Figure 8 This is a diagram conceptually showing the coefficient p used when performing calculation by the replica exchange method. Figure 8 The vertical axis represents the value of coefficient p. When the calculation is performed by the replica exchange method, the information processing device may not necessarily calculate the time advancement of coefficient p. Therefore, Figure 8 The horizontal axis is used to Figure 7 An imaginary axis prepared for comparison.

[0096] like Figure 8 As shown, when the replica exchange method is used, according to the combination of multiple coefficients p determined (p (1) , p (2) ,…,p (M) ), update the first vector and the second vector. In the following description, the first vector and the second vector prepared according to each coefficient p are called replicas. And, by exchanging the first vector and the second vector between replicas, it is possible to explore solutions in different areas in the solution space. In the replica exchange method, by repeatedly exchanging the first vector and the second vector, the probability of reaching the optimal solution to the problem or an approximate solution close to it can be increased.

[0097] For example, a replica may be allocated to each processor of a computing server. In addition, a replica may be allocated to each computing server in an information processing system. In addition, the amount of computing resources allocated to each replica may be different. The type or combination of computing resources allocated to each replica may also be different. However, the method of allocating computing resources to each replica is not limited.

[0098] When the replica exchange method is used, the calculation of the first vector, the second vector and their functions of each replica can be performed in parallel (first level parallelization). In addition, the update processing of the first vector and the second vector, each of which includes multiple elements, can also be performed in parallel (second level parallelization). The granularity of the first level of parallelization in the computing resources may be different from the granularity of the second level of parallelization. The granularity of the latter can also be larger than the granularity of the former. For example, the first level of parallelization can be implemented at the granularity of a computing server or a virtual computer. In addition, the second level of parallelization can be implemented at the granularity of a processor. If the replica exchange method is used, the processing at multiple levels can be parallelized, so the calculation can be performed efficiently. Therefore, the optimal solution to the problem or an approximate solution close to it can be found in a relatively short time.

[0099] [When the combination of coefficients p is automatically determined]

[0100] First, a description will be given of a process in which a combination of coefficients p to be used is automatically determined when performing calculations based on the replica exchange method.

[0101] For example, consider a case where the Hamiltonian of the following equation (5) is used.

[0102] [Formula 5]

[0103]

[0104] Here, as a(t), for example, √(p(t)) can be used.

[0105] In formula (5), let a(t)X i =x i and a(t)Y i =y i , if scaled, we get the following equation (6).

[0106] [Formula 6]

[0107]

[0108] When the replica exchange method is used, the Hamiltonian is calculated for each replica. Therefore, in the following description, in order to express the corresponding replica m (m=1, 2, ..., M), the following expression is used as in Formula (7).

[0109] [Formula 7]

[0110]

[0111] In order to ensure convergence to the statistical equilibrium distribution, the following detailed equilibrium condition of equation (8) is added to the probability W(m1, m1+1) of transferring from replica m1 to replica m1+1 and the probability W(m1+1, m1) of transferring from replica m1+1 to replica m1. The coefficient β is equivalent to the inverse temperature in the usual simulated annealing. Since the combination of coefficients p is assigned to each replica in the replica exchange method (p (1) , p (2) ,…,p (M) ), so a finite positive constant can be used as the coefficient β.

[0112] [Formula 8]

[0113]

[0114] Furthermore, the exchange probability between the replica m1 and the replica m1+1 is expressed as in the following equation (9).

[0115] [Formula 9]

[0116]

[0117] For example, the data exchange circuit 51 can compare the value of the formula (9) with a pseudo-random number in a range of greater than 0 and less than 1, and perform a conditional judgment based on the magnitude relationship between the former value and the latter value. When the latter value is greater than the former value, the conditional judgment is affirmative, and the data exchange circuit 51 can exchange the first vector and the second vector between the replica m1 and the replica m1+1. On the other hand, when the latter value is greater than the former value, the conditional judgment is negative, and the exchange process of the first vector and the second vector between the replica m1 and the replica m1+1 can be skipped.

[0118] For example, each copy may be allocated according to each operation circuit. In this case, the data exchange circuit may also be configured to perform conditional determination according to each pair of operation circuits, and when the conditional determination is affirmative, at least one of the exchange of the first vector and the second vector used for calculation between the operation circuits or the exchange of the first coefficient is performed. In addition, the data exchange circuit may also be configured to perform conditional determination based on the first vector (plural first variables), the second vector (plural second variables) and the first coefficient of the operation circuit included in the pair. For example, the conditional determination may be performed using formula (9), or other formulas may be used for conditional determination.

[0119] The respective copies may be distributed to each computer. In this case, the second computer of the information processing system may be configured to perform condition determination for each pair of the first computers, and when the condition determination is positive, at least one of the exchange of the first vector and the second vector used for calculation between the first computers or the exchange of the first coefficient is performed.

[0120] In the replica exchange method, in order to achieve efficient calculation (convergence to an equilibrium state), it is preferable to set the coefficient p in each replica (m) The value of is such that the probability of exchange is constant regardless of the difference in the value of the coefficient p. In particular, it is known that if the coefficient p in multiple copies is (m) The coefficients p are set in such a way that the values ​​of (m=1, 2, ..., M) form a geometric progression. (m) The value of the exchange probability between copies becomes constant. Therefore, as the coefficient p in each copy (m) , we can also use the coefficients p that form a geometric progression (m) That is, the first coefficients (e.g., coefficient p) used in each operation circuit may also be in a geometric progression relationship. However, the coefficient p used in the calculation based on the replica exchange method is not limited to (m)Method for determining the value of (m=1, 2, ..., M).

[0121] In each replica, there are two variables X, each with N (m) i , Y (m) i (i=1, 2, ..., N), and a process of numerically solving the following simultaneous ordinary differential equations (10) is performed. (m) i Respectively with the spin s of the Ising model i On the other hand, N variables Y (m) i They are equivalent to the amount of exercise respectively. Let the variable X (m) i , Y (m) i are all continuous variables. (m) i The vector with (i=1, 2, ..., N) as its elements is called the first vector. (m) i A vector whose elements are (i=1, 2, ..., N) is called a second vector.

[0122] [Formula 10]

[0123]

[0124] The above (10) can be transformed into a discrete recursive formula using the Symplectic Euler method, and the calculation of the analog branching algorithm can be performed by the replica exchange method. The following (11) shows an example of the analog branching algorithm after the recursive formula is transformed.

[0125] [Formula 11]

[0126]

[0127] In addition, the term of (12) below in (11) is derived from the Ising energy. Since the form of this term is determined by the problem to be solved, it is called a problem term.

[0128] [Formula 12]

[0129]

[0130] As will be described later, problem terms different from those in (12) may be used in the calculation.

[0131] As described above, if the simulation branching algorithm is calculated by the replica exchange method, the parallelism of the processing can be improved, and the optimal solution to the problem or an approximate solution close to it can be obtained in a relatively short time. In particular, if the above method is used in which the combination of coefficients p is automatically determined, the installation and execution of the simulation branching algorithm becomes easy.

[0132] Fig. 9 The flowchart of FIG. 1 shows an example of processing when performing calculations of a simulated branching algorithm by the replica exchange method. Fig. 9 While explaining the processing.

[0133] First, the computing server obtains the matrix J corresponding to the problem ij and vector h i , the count t and coefficient p (m) , a (m) Initialization (step S111). For example, in step S111, the coefficients p can be set in a manner to form a geometric progression. (m) The count t is set to 0, for example. Then, the computing server sets the element X of the first vector (m) i and the second vector element Y (m) i Initialize and substitute 1 into m1 (step S112). Here, m1 is a parameter used to specify the replica m. For example, in step S112, the element X of the first vector can be set by a pseudo-random number. (m) i and the second vector element Y (m) i Next, the computing server converts the element X of the first vector into (m1) i Based on the corresponding second vector element Y (m) i Update (step S113). For example, in step S113, the element X of the first vector can be (m1) i Add Δt×D×Y (m1) i Then, the computing server converts the element Y of the second vector (m1) i Update (step S114). For example, in step S114, the element Y of the second vector may be (m1) i Add Δt×[(p-D-K×X (m1) i ×X (m1) i )×X (m1) i In step S114, the variable Y can be(m1) i Add -Δt×c×h i ×a-Δt×c×ΣJ ij ×X (m1) i .

[0134] Next, the calculation server increments m1 and determines whether m1≤M is satisfied (step S115). If the determination in step S115 is positive (“Yes” in step S115), the processing in steps S113 to S115 is performed again. If the determination in step S115 is negative (“No” in step S115), the calculation server selects m1 of randomness from 0 to M for every k times, and if the transition condition is satisfied, X is incremented. (m1) i and X (m1+1) i The value of Y (m1) i and Y (m1+1) i The values ​​of are exchanged respectively (step S116). For example, the computing server can generate a pseudo-random number r greater than 0 and less than 1, and compare the value of r with the value of the above-mentioned formula (9). When the value of the above-mentioned formula (9) is greater than the value of the pseudo-random number r, it can be determined that the transition condition is met. On the other hand, when the value of the pseudo-random number r is greater than the value of the above-mentioned formula (9), it can be determined that the transition condition is not met. Then, the computing server updates the count t (step S117). For example, in step S117, Δt can be added to t.

[0135] Next, it is determined whether the count t is less than T (step S118). If the determination in step S118 is positive (“Yes” in step S118), the computing server executes the processing in steps S113 to S117 again. If the determination in step S118 is negative (“No” in step S118), the computing server calculates the value of the first vector based on the element (variable) X (m) i , find the spin s as an element of the solution vector i (Step S119). For example, in step S119, as long as the variables X are positive values, (m) i Transformed to +1, variable X that is negative (m) i It may be converted to -1. In step S118, instead of this, it may be determined whether the number of executions of the process of step S116 exceeds a threshold value.

[0136] As the variable X in step S119 (m) i, you can use a variable X selected from a copy from 1 to M (m1) i Here, the representative value can be a variable X selected from a replica from 1 to M. (m1) i , or a variable X selected from at least one replica from 1 to M (m1) i The average value of .

[0137] In the above Fig. 9 In the flowchart, the update processing of the elements of the first vector and the elements of the second vector (i=1, 2, ...N) can also be performed in parallel in at least a part of steps S112 to S114 and S116 (parallelism at the second level). In addition, at least a part of the processing related to each replica can also be parallelized (parallelism at the first level). For example, the processing of steps S112 to S114 related to different replicas can also be performed for each computing server, each virtual computer or each processor. In this case, the processing of step S116 can be executed by a program running on a certain computing server, or by the control unit 13 of the above-mentioned management server 1. In addition, the processing of step S119 can also be executed by other servers such as the management server 1.

[0138] Here, the information processing method, storage medium, and program according to the present embodiment are described.

[0139] The information processing method may also be a method using a plurality of first computers and a second computer. For example, the plurality of first computers are configured to repeatedly update a first vector having a first variable as an element and a second vector having a second variable corresponding to the first variable as an element. For example, the second computer is configured to perform data exchange between the first computers. In this case, the information processing method may also include: a step in which each first computer updates the first variable based on the corresponding second variable; a step in which each first computer weights the first variable with a first coefficient and adds the corresponding second variable; a step in which each first computer calculates a problem item using a plurality of first variables; a step in which each first computer adds the second variable to the problem item; and a step in which the second computer performs at least one of an exchange of the first vector and the second vector or an exchange of the first coefficient between the first computers.

[0140] In addition, the information processing method may also be a method using a plurality of first processors and a second processor. For example, the plurality of first processors are configured to repeatedly update the first vector having the first variable as an element and the second vector having the second variable corresponding to the first variable as an element. For example, the second processor is configured to perform data exchange between the first processors. In this case, the information processing method may also include: a step in which each first processor updates the first variable based on the corresponding second variable; a step in which each first processor weights the first variable with the first coefficient and adds the corresponding second variable; a step in which each first processor uses a plurality of first variables to calculate the problem item; a step in which each first processor adds the second variable to the problem item; and a step in which the second processor performs at least one of the exchange of the first vector and the second vector or the exchange of the first coefficient between the first processors. The program of this embodiment may also include the same steps as the information processing method. Furthermore, the non-temporary computer-readable storage medium of this embodiment may also store the program.

[0141] [When the value of coefficient p changes]

[0142] So far, suppose the coefficient p in each copy is (m) 、a (m) The value of the step before the loop processing ( Fig. 9 The fixed coefficient p is determined in step S111) and used in subsequent steps including loop processing. (m) 、a (m) However, when the calculation of the simulated branching algorithm is performed by the replica exchange method, the coefficient p (m) 、a (m) The value of may not necessarily be fixed.

[0143] For example, the information processing device may also set the coefficient p based on the following equation (13): (m) Formula (13) is the coefficient p that may change according to the exchange timing or exchange decision timing of the replica. (m) An example of.

[0144] [Formula 13]

[0145]

[0146] p in formula (13) (m) (t) represents the coefficient p (m) The value of depends on the parameter t.

[0147] Condition(a)

[0148] First, for the case where the parameter t is 0 or an even multiple of T0, (m) The value of .

[0149] When the replica number m is an even number, the value of cos(...) in equation (13) is +1, p (m) =p0 (m+1) On the other hand, when the replica number m is an odd number, the value of cos(…) in equation (13) is -1, and p (m) =p0 (m) Established.

[0150] Condition (b)

[0151] Next, for the case where the parameter t is an odd multiple of T0, (m) The value of .

[0152] When the replica number m is an even number, the value of cos(...) in equation (13) is -1, p (m) =p0 (m) On the other hand, when the replica number m is an odd number, the value of cos(…) in equation (13) is +1, and p (m) =p0 (m+1) Established.

[0153] Condition (c)

[0154] Finally, regarding the value of parameter t, for the case where neither of the above conditions (a) nor (b) is met, (m) The value of .

[0155] In this case, since cos(...) in equation (13) takes a value in the range of (-1, +1), p (m) Take αp0 (m+1) +βp0 (m) That will p0 (m+1) and p0 (m) According to the periodicity of cos(…), different values ​​of p are used in the replicas with even number m and the replicas with odd number m. (m) In this way, each operation circuit may periodically change the value of the first coefficient according to the number of times the first vector and the second vector are updated.

[0156] By using the coefficient p defined in the above equation (13) (m) , when making the exchange decision between replicas, the following formula (14) holds.

[0157] [Formula 14]

[0158]

[0159] When the relationship of equation (14) holds true at the exchange determination timing between replicas, the first vector and the second vector are exchanged for replica m1 and replica m1+1 at each exchange determination timing. Since the calculation represented by equation (9) is no longer required at each exchange determination timing, the consumption of computing resources can be suppressed. Fig. 9 The exchange determination timing (step S116) in the flowchart can skip the determination process of whether to exchange, so Fig. 9 The exchange determination timing is replaced by the exchange timing.

[0160] Using the coefficient p expressed in equation (13) (m) In this case, the user needs to decide p0 in advance (m+1) and p0 (m) However, since it is not necessary to determine the coefficient p as in the case of time advancement calculation (m) Update style and coefficient a (m) The definition of can reduce the number of steps required in the execution of the simulation branch algorithm. In addition, by using the coefficient p represented by equation (13) (m) , the first vector and the second vector can be exchanged efficiently between replicas, and the optimal solution to the problem or an approximate solution close to it can be obtained in a relatively short time.

[0161] In addition, the coefficient p expressed in formula (13) (m) The definition of is just an example. Therefore, it does not prevent the use of coefficients p with different definitions. (m) .

[0162] Fig.10 The flow chart shows the use of the coefficient of variation p (m) An example of processing when performing calculations. Fig.10 While explaining the processing.

[0163] First, the computing server obtains the matrix J corresponding to the problem ij and vector h i , the count t and coefficient p (m) 、a (m) Initialization (step S121). Set the counter t to 0, for example. In the case of following the definition of equation (13), in the replica whose number m is an even number, set it to p (m) =p0 (m+1) In addition, in the replicas where the number m is an odd number, p is set (m) =p0 (m) .

[0164] Since the processing of steps S122 to S125 is equivalent to Fig. 9The processing of steps S112 to S115 is omitted in detail. If the judgment of step S125 is affirmative ("Yes" in step S125), calculate the randomness m1 of the server selecting 0 to M every k times, and set X (m1) i and X (m1+1) i The value of Y (m1) i and Y (m1+1) i The values ​​of are exchanged respectively (step S126). When the relationship of equation (14) holds, since it is no longer necessary to determine whether to exchange between replicas, step S126 is equivalent to the exchange timing of the first vector and the second vector between replicas. Then, the computing server updates the count t (step S127). For example, in step S127, Δt can be added to t.

[0165] Next, it is determined whether the count t is less than T (step S128). If the determination in step S128 is positive (“Yes” in step S128), the computing server executes the processing in steps S123 to S127 again. If the determination in step S128 is negative (“No” in step S128), the computing server calculates the value of the first vector based on the element (variable) X (m) i The value of is used to solve the spin s as an element of the solution vector i (Step S129). For example, in step S129, as long as the variables X are positive values, (m) i Transformed to +1, variable X that is negative (m) i It can be converted to -1. As the variable X in step S129 (m) i , which does not limit the selection and calculation methods of the representative values ​​that can be used. Fig. 9 The same is true for step S119. In addition, the processing of step S129 may also be executed by a server (computer) other than the calculation server.

[0166] In the above Fig.10In the flowchart, the update processing of the elements of the first vector and the elements of the second vector (i=1, 2, ...N) can also be performed in parallel in at least a part of steps S122 to S124 and S126 (second level parallelization). In addition, at least a part of the processing related to each replica can also be parallelized (first level parallelization). For example, the processing of steps S122 to S124 related to different replicas can also be performed for each computing server, each virtual computer or each processor. In this case, the processing of step S126 can be executed by a program running on a certain computing server, or by the control unit 13 of the above-mentioned management server 1.

[0167] The information processing device uses the coefficient p represented by equation (13) (m) And execute Fig.10 The flowchart is processed, thereby reducing the amount of calculation and improving the parallelism of the processing, and the optimal solution to the problem or an approximate solution close to it can be obtained in a relatively short time.

[0168] [Parallelization of replica exchange processing]

[0169] In the calculation of the simulated branch algorithm based on the replica exchange method, in order to perform the exchange process of the first vector and the second vector between the replicas, the process synchronization of the replicas m1 and m1+1 of the exchange object is required at least at the replica exchange timing. Therefore, after the implementation, the replica exchange process may become a bottleneck for the speed increase of the simulated branch algorithm brought about by the replica exchange method. Therefore, a countermeasure can be taken to execute the replica exchange process in parallel and easily achieve the process synchronization between the replicas of the exchange object.

[0170] For example, the exchange process of the first vector and the second vector between the even-numbered replica m1 and the replica m1+1 (the first exchange process) and the exchange process of the first vector and the second vector between the odd-numbered replica m1 and the replica m1+1 (the second exchange process) can be performed alternately. Thus, the exchange process of the first vector and the second vector between the replicas can be parallelized.

[0171] Fig.11 The flowchart of shows an example of processing when replica exchange is performed in parallel. Fig.11 While explaining the processing.

[0172] First, the computing server obtains the matrix J corresponding to the problem ij and vector h i , the count t and coefficient p (m) 、a (m) Initialization (step S131). For example, the coefficient p in step S131 (m)The method of initializing can also be the same as that of step S121 described above. In addition, the coefficient p in step S131 (m) The method of initializing can also be the same as that of step S111 described above. In addition, in step S131, the coefficient p obtained empirically can also be used. (m) The count t is set to 0, for example.

[0173] Then, the computing server converts the element X of the first vector (m) i and the second vector element Y (m) i Initialize and substitute 1 into m1 (step S132). Here, m1 is a parameter used to specify the replica m. For example, in step S132, the element X of the first vector can be set by a pseudo-random number. (m) i and the second vector element Y (m) i Next, the computing server converts the element X of the first vector into (m1) i Based on the corresponding second vector element Y (m) i Update (step S133). For example, in step S133, the element X of the first vector can be (m1) i Add Δt×D×Y (m1) i Then, the computing server converts the element Y of the second vector (m1) i Update (step S134). For example, in step S134, the element Y of the second vector can be (m1) i Add Δt×[(p-D-K×X (m1) i ×X (m1) i )×X (m1) i In step S134, the element Y of the second vector can be (m1) i Add -Δt×c×h i ×a-Δt×c×ΣJ ij ×X (m1) i .

[0174] Next, the computing server alternately selects m1 as an even number or m1 as an odd number every k times to determine the transition condition. If the transition condition is met, X is set to (m1) i and X (m1+1) iThe value of Y (m1) i and Y (m1+1) i The values ​​of are exchanged respectively (step S135). For example, the computing server can generate a pseudo-random number r greater than 0 and less than 1, and compare the value of r with the value of the above-mentioned formula (9). When the square of the value of the above-mentioned formula (9) is greater than the value of the pseudo-random number r, it can be determined that the transition condition is satisfied. On the other hand, when the value of the pseudo-random number r is greater than the value of the above-mentioned formula (9), it can be determined that the transition condition is not satisfied.

[0175] Then, the calculation server increments m1 and determines whether m1≤M is satisfied (step S136). If the determination of step S136 is positive ("Yes" in step S136), the processing of steps S133 to S135 is performed again. If the determination of step S136 is negative ("No" in step S136), the calculation server updates the count t (step S137). For example, in step S137, Δt can be added to t.

[0176] Next, it is determined whether the count t is less than T (step S138). If the determination in step S138 is positive (“Yes” in step S138), the computing server executes the processing in steps S133 to S137 again. If the determination in step S138 is negative (“No” in step S138), the computing server calculates the value of the first vector based on the element (variable) X (m) i , find the spin s as an element of the solution vector i (Step S139). For example, in step S139, as long as the variables X are positive values, (m) i Transformed to +1, variable X that is negative (m) i It can be converted to -1. As the variable X in step S139 (m) i , which does not limit the selection and calculation methods of the representative values ​​that can be used. Fig. 9 The same is true for step S119. In addition, the processing of step S139 may also be executed by a server (information processing device) other than the calculation server.

[0177] In the above Fig.11In the flowchart, the update processing of the elements of the first vector and the elements of the second vector (i=1, 2, ...N) can also be performed in parallel in at least a part of steps S132 to S135 (parallelism at the second level). In addition, at least a part of the processing related to each replica can also be parallelized (parallelism at the first level). For example, the processing of steps S132 to S135 related to different replicas can also be performed for each computing server, each virtual computer or each processor. In this case, the processing of step S135 can be executed by a program running on a certain computing server, or by the control unit 13 of the above-mentioned management server 1.

[0178] Fig.12 Conceptual representation of the process flow in the replica exchange method. Fig.12 In the example, each square is equivalent to a copy numbered 1 to M.

[0179] Fig.12 Step S10 indicates that the update processing of the first vector and the second vector has been performed on each replica. Then, in step S11, for the even-numbered replicas, it is determined whether the transfer condition is satisfied. If the transfer condition is satisfied, the first vector and the second vector are exchanged. In addition, in step S12, for the even-numbered replicas, it is determined whether the transfer condition is satisfied. If the transfer condition is satisfied, the first vector and the second vector are exchanged. The transfer condition can be determined as described above by generating a pseudo-random number r greater than 0 and less than 1, and comparing the value of r with the value of the above formula (9).

[0180] The data exchange circuit may also be configured to select different pairs of operation circuits according to timing, and perform at least one of the exchange of the first vector and the second vector, or the exchange of the first coefficient. In addition, the data exchange circuit may also be configured to alternately select the first combination of pairs and the second combination of pairs from a plurality of operation circuits, and perform at least one of the exchange of the first vector and the second vector, or the exchange of the first coefficient. For example, assume that there are replicas numbered 1 to 6. Assume that the replicas numbered 1 to 6 are respectively assigned to a certain operation circuit. In this case, the first combination may also include a pair of replicas numbered 1 and 2, a pair of replicas numbered 3 and 4, and a pair of replicas numbered 5 and 6. On the other hand, the second combination may also include a pair of replicas numbered 2 and 3, a pair of replicas numbered 4 and 5, and a pair of replicas numbered 6 and 1.

[0181] like Fig.12 As shown, the processing of step S11 and the processing of step S12 are performed alternately according to the timing. Thus, the replica exchange processing can be performed in parallel, and the optimal solution to the problem or an approximate solution close to it can be obtained in a shorter time.

[0182] Fig.13 This section shows an example of an equation related to the replica exchange method. Fig.13 Formula (E1) represents an example of the Hamiltonian used in each replica. Formula (E2) represents an example of a canonical ensemble. Formula (E3) represents a general detailed equilibrium formula. Formula (E4) represents a detailed equilibrium formula of a canonical ensemble. Formula (E5) organizes the terms of the detailed equilibrium formula of a canonical ensemble. Formula (E6) represents the transition probability between replica m1 and replica m2.

[0183] Fig.14 The graph is a histogram showing examples of the number of attempts required to obtain an optimal solution in the case where the simulation branching algorithm is calculated by the replica exchange method and the case where the simulation branching algorithm is calculated by time advancement. Fig.14 The figure shows the data when the Hamiltonian closed path problem with 48 nodes and 96 edges is solved using the simulated branching algorithm. Fig.14 The vertical axis represents the number of times the optimal solution is obtained. In the calculation based on the replica exchange method, 10 replicas are used for calculation. Therefore, the number of attempts in one calculation based on the replica exchange method is counted as 10 times. In addition, in the case of calculation based on time advancement, whether the optimal solution is obtained is determined every 200 cycles. On the other hand, in the case of calculation based on the replica exchange method, whether the optimal solution is obtained is determined every 50 cycles. Fig.14 As a result, if the replica exchange method is used, the optimal solution can be obtained with fewer attempts compared to the case of advancing the calculation time.

[0184] By performing calculations based on the replica exchange method, the information processing system can have redundancy. For example, even if the computer executing the calculation of the first vector and the second vector of a certain replica stops abnormally, as long as the computer executing the calculation of the first vector and the second vector of other replicas continues to work, the calculation processing in the information processing system can continue. In this case, the data of the replica used in the abnormally stopped computer can also be restored based on the data in the other replicas. Even if the processor executing the calculation of the first vector and the second vector of a certain replica stops abnormally, the calculation can be continued in the other processors.

[0185] [Calculation of terms including multi-body interactions]

[0186] By using the simulated branching algorithm, it is possible to solve combinatorial optimization problems with objective functions of degree 3 or higher. The problem of solving a combination of variables that minimizes an objective function of degree 3 or higher with binary variables is called a HOBO (Higher Order Binary Optimization) problem. When dealing with the HOBO problem, the following formula (15) can be used as an energy formula in the Ising model extended to higher orders.

[0187] [Formula 15]

[0188]

[0189] Here, J (n) is an n-th order tensor, which is the local magnetic field h that makes equation (1) i and the coupling coefficient matrix J. For example, the tensor J (1) Equivalent to the local magnetic field h i A vector of n-order tensor J (n) In the equation (15), when there are the same values ​​in multiple suffixes, the value of the element is 0. In equation (15), the terms up to the third order are expressed, but the terms higher than this can also be defined in the same way as equation (15). Equation (15) is equivalent to the energy of the Ising model including multi-body interaction.

[0190] In addition, both QUBO and HOBO can be said to be a type of unconstrained polynomial binary optimization (PUBO). That is, the combinatorial optimization problem with a quadratic objective function in PUBO is QUBO. In addition, the combinatorial optimization problem with a tertiary or higher objective function in PUBO can be said to be HOBO.

[0191] When the analog branching algorithm is used to solve the HOBO problem, it is sufficient to replace the Hamiltonian H of the above equation (5) with the Hamiltonian H of the following equation (16).

[0192] [Formula 16]

[0193]

[0194] Furthermore, based on equation (16), the problem item represented by the following equation (17) is derived.

[0195] [Formula 17]

[0196]

[0197] (17) Question item z iTake the second equation of (16) with respect to a variable x i (The first vector element) is the form after partial differentiation. The variable x of partial differentiation is i It varies according to the index i. Here, the variable x i The index i of is equivalent to the index specifying the element of the first vector and the element of the second vector.

[0198] When performing calculations including terms of multi-body interactions, the above recursive formula (11) is replaced with the following recursive formula (18).

[0199] [Formula 18]

[0200]

[0201] (18) is equivalent to generalizing the recursive formula of (11).

[0202] The questions described above are merely examples of questions that can be used by the information processing device of this embodiment. Therefore, the form of the question used in the calculation may be different from these.

[0203] [Algorithm Variations]

[0204] Here, a modification example of the analog branching algorithm is described. For example, various modifications may be made to the above-mentioned analog branching algorithm for the purpose of reducing errors or shortening calculation time.

[0205] For example, in order to reduce the calculation error, additional processing may be performed when the elements of the first vector are updated. i When the absolute value of becomes greater than 1, the first vector element X (n) i The value of sgn(X (n) i ). That is, after being updated to become X (n) i >1, variable X (n) i The value of is set to 1. In addition, when it becomes X through updating (n) i <-1, variable X (n) i The value of is set to -1. Thus, the variable X can be used (n) i Will spin s i By including this processing, the algorithm is similar to iThe physical models of N particles with walls at positions of = ±1 become equivalent. More generally, the arithmetic circuit can also be configured to set a first variable with a value smaller than a first value to the first value, and set a first variable with a value larger than a second value to the second value.

[0206] Furthermore, when it becomes X through update (n) i > 1, it is also possible to multiply the variable Y (n) i corresponding to the variable X by a coefficient rf. For example, if a coefficient rf of -1 < r ≤ 0 is used, the above-mentioned wall becomes a wall with a reflection coefficient rf. In particular, when a coefficient rf of rf = 0 is used, the algorithm is equivalent to the physical model of a wall where a perfectly inelastic collision occurs at positions of X (n) i = ±1. More generally, the arithmetic circuit can also be configured to update a second variable corresponding to a first variable with a value smaller than a first value or a second variable corresponding to a first variable with a value larger than a second value to a value obtained by multiplying the original second variable by a second coefficient. For example, the arithmetic circuit can also be configured to update a second variable corresponding to a first variable with a value smaller than -1 or a second variable corresponding to a first variable with a value larger than 1 to a value obtained by multiplying the original second variable by a second coefficient. Here, the second coefficient corresponds to the above-mentioned coefficient rf. (n) i (n)

[0207] In addition, the arithmetic circuit can also, when it becomes X through update (n) i > 1, set the value of the variable Y (n) i corresponding to the variable X (n) i to a pseudo-random number. For example, a random number in the range of [-0.1, 0.1] can be used. That is, the arithmetic circuit can also be configured to set the value of a second variable corresponding to a first variable with a value smaller than a first value or the value of a second variable corresponding to a first variable with a value larger than a second value to a pseudo-random number.

[0208] If the update process is performed as above to suppress the case of becoming |X (n) i | > 1, then even if the non-linear terms K × X (n1) i (t + Δt) × X (n1) i in (11) and (18) are removed, the value of X (n) i will not diverge. Therefore, the algorithm expressed in (19) below can be used.

[0209] [Formula 19]

[0210]

[0211] In the algorithm of (19), a continuous variable X is used in the problem term instead of a discrete variable. Therefore, an error may occur with the discrete variable used in the original combinatorial optimization problem. In order to reduce the error, as shown in the following (20), in the calculation of the problem term, a value sgn(X) obtained by transforming the continuous variable X using a sign function can be used instead of the continuous variable X.

[0212] [Formula 20]

[0213]

[0214] In (20), sgn(X) is equivalent to spin s.

[0215] In (20), the coefficient α of the term containing the first-order tensor in the problem term can also be set to a constant (for example, α = 1). In the algorithm of (20), since the product of the spins appearing in the problem term must take a value of -1 or 1, when dealing with the HOMO problem with a high-order objective function, it is possible to prevent the occurrence of errors caused by product operations. As in the algorithm of (20) above, the data calculated by the computing server can also include the variable s i (i=1, 2, ..., N) is the spin vector of the element (s1, s2, ..., s N ). By transforming the elements of the first vector using a sign function, a spin vector can be obtained.

[0216] [Example of parallelizing variable update processing]

[0217] Hereinafter, an example of parallelization of the update process of variables during calculation of the simulation branching algorithm will be described.

[0218] First, an example of installing a simulation branching algorithm on a PC cluster is described. The PC cluster is a system that connects multiple computers to achieve computing performance that cannot be obtained with a single computer. For example, Figure 1 The information processing system 100 shown in FIG. 1 includes a plurality of computing servers and processors and can be used as a PC cluster. For example, in a PC cluster, by using MPI (Message Passing Interface), even a configuration in which memories are distributed among a plurality of computing servers such as the information processing system 100 can perform parallel computing. For example, the control program 14E of the management server 1, the computing program 34B of each computing server, and the control program 34C can be installed using MPI.

[0219] When the number of processors used by the PC cluster is Q, each processor can be made to perform the first vector (x1, x2, ..., x N ) contains the variable x i Similarly, each processor can perform the calculation of the second vector (y1, y2, ..., y N ) contains the variable y i That is, processor #j (j=1, 2, ..., Q) performs the calculation of the variables {x m |m=(j-1)L+1, (j-1)L+2,…,jL} and {y m |m=(j-1)L+1,(j-1)L+2,…,jL}. In addition, it is assumed that {y m The tensor J represented by the following (21) is required for the calculation of |m=(j-1)L+1,(j-1)L+2,…,jL} (n) It is stored in a storage area (eg, register, cache, memory, etc.) accessible to processor #j.

[0220] [Formula 21]

[0221]

[0222] Here, the case where each processor calculates a constant number of variables of the first vector and the second vector is described. However, the number of variables of the first vector and the second vector to be calculated may be different depending on the processor. For example, when there is a performance difference depending on the processor installed in the calculation server, the number of variables to be calculated may be determined according to the performance of the processor.

[0223] In order to change the variable y i The value of , needs the first vector (x1, x2, ..., x N ) values ​​of all components. The conversion to binary variables can be performed by using the sign function sgn(), for example. Therefore, the Allgather function can be used to make Q processors share the first vector (x1, x2, ..., x N ) of all the components. Although for the first vector (x1, x2, ..., x N ), the value needs to be shared between processors, but for the second vector (y1, y2, ..., y N ) and tensor J (n) , it is not necessary to share values ​​between processors. Sharing of data between processors can be achieved, for example, by using inter-processor communication or storing data in a shared memory.

[0224] Processor #j calculates the problem item {zm |m=(j-1)L+1,(j-1)L+2,…,jL}. Then, processor #j calculates the value of the problem item {{z m |m=(j-1)L+1,(j-1)L+2,…,jL}, and change the variable {y m |m=(j-1)L+1,(j-1)L+2,…,jL} is updated.

[0225] As shown in the above equations, in the vector of the problem item (z1, z2, ..., z N ), the calculation of the tensor J(n) and the vector (x1, x2, ..., x N ) is the most computationally intensive process in the above algorithm and may become a bottleneck in improving the calculation speed. Therefore, in the installation of a PC cluster, the sum-of-products operation can be distributed to Q = N / L processors and executed in parallel, thereby shortening the calculation time.

[0226] Fig.15 An example of a multi-processor configuration is schematically shown. Fig.15 For example, the multiple computing nodes correspond to multiple computing servers of the information processing system 100. Fig.15 The high-speed link corresponds to, for example, an intermediate connection between computing servers formed by the cables 4 a to 4 c and the switch 5 of the information processing system 100 . Fig.15 The shared memory corresponds to the shared memory 32, for example. Fig.15 The processors of are, for example, equivalent to the processors 33A to 33D of each computing server. Fig.15 Although multiple computing nodes are shown in FIG. 1 , this does not prevent the use of a single computing node configuration.

[0227] exist Fig.15 The data configured in each component and the data transferred between components are shown in FIG. In each processor, the variable x is calculated. i ,y i In addition, the variable x is transferred between the processor and the shared memory. i In the shared memory of each computing node, for example, the first vector (x1, x2, ..., x N ), the second vector (y1, y2, ..., y N ) of L variables and tensor J (n) Furthermore, in the high-speed link connecting the computing nodes, for example, the first vector (x1, x2, ..., x N ). When using the Allgather function, each processor will i Update, need the first vector (x1, x2, ..., xN )’s full elements.

[0228] When the replica exchange method is used, one or more computing nodes may be allocated for the calculation of the first vector and the second vector in each replica. In this case, at the execution timing of the replica exchange process, the data of the first vector and the second vector are transferred between the computing nodes via a high-speed link. For example, the control unit 13 of the management server 1 can control the computing nodes. In addition, Fig.15 The arrangement and transfer of data shown in FIG. 1 are merely examples. There are no particular limitations on the method of arranging data, the method of transferring data, and the method of implementing parallelization in the PC cluster.

[0229] In addition, a GPU (Graphics Processing Unit) may also be used to perform calculations of the simulated branching algorithm.

[0230] Fig.16 An example of a configuration using a GPU is schematically shown. Fig.16 In , multiple GPUs are connected by high-speed links. Each GPU is equipped with multiple cores that can access a shared memory. Fig.16 In the configuration example, multiple GPUs are connected via a high-speed link to form a GPU cluster. Figure 1 In the case of each computing server, the high-speed link corresponds to the intermediate connection between the computing servers formed by the cables 4a to 4c and the switch 5. Fig.16 In the configuration example, multiple GPUs are used, but parallel calculations can also be performed using a single GPU. That is, Fig.16 Each GPU can perform Fig.15 That is, the processor of the information processing device (computing server) can also be the core of the graphics processing unit (GPU).

[0231] In the GPU, the variable x i and i And the tensor J (n) is defined as a device variable. The GPU can calculate the variables y in parallel through the matrix-vector product function. i The tensor J required in the update (n) with the first vector (x1, x2, ..., x N ). In addition, by repeatedly performing the matrix-vector product operation, the product of the tensor and the vector can be obtained. In addition, for the first vector (x1, x2, ..., x N ) and the calculation of the second vector (y1, y2, ..., y N ) can enable each thread to execute the i-th element (xi ,y i ) to realize parallel processing.

[0232] [Universal processing for solving combinatorial optimization problems]

[0233] The following describes the overall processing performed to solve the combinatorial optimization problem using the simulated branching algorithm.

[0234] Fig.17 The flowchart of FIG. 1 shows an example of the overall processing performed to solve the combinatorial optimization problem. Fig.17 While explaining the processing.

[0235] First, the combinatorial optimization problem is formulated (step S201). Then, the formulated combinatorial optimization problem is transformed into an Ising problem (in the form of an Ising model) (step S202). Next, the solution to the Ising problem is calculated by an Ising machine (information processing device) (step S203). Then, the calculated solution is verified (step S204). For example, in step S204, it is confirmed whether the constraint conditions are satisfied. In addition, in step S204, it is also possible to refer to the value of the energy function (Hamiltonian) to confirm whether the obtained solution is the optimal solution or an approximate solution close to it.

[0236] Then, it is determined whether to perform recalculation based on at least one of the verification result or the number of calculations in step S204 (step S205). When it is determined that recalculation is to be performed ("Yes" in step S205), the processing of steps S203 and S204 is performed again. On the other hand, when it is determined that recalculation is not to be performed ("No" in step S205), a solution is selected (step S206). For example, in step S206, the selection can be made based on the satisfaction of the constraint conditions or at least one of the values ​​of the energy function. In addition, if multiple solutions are not calculated, the processing of step S206 can also be skipped. Finally, the selected solution is transformed into a solution to the combinatorial optimization problem, and the solution to the combinatorial optimization problem is output (step S207).

[0237] By using the information processing device, information processing system, information processing method, storage medium and program described above, it is possible to calculate the solution of the combinatorial optimization problem in a practical time. Thus, the solution of the combinatorial optimization problem becomes easier, which can promote social innovation and scientific and technological progress.

[0238] In addition, the present invention is not limited to the above-mentioned embodiments as it is, and in the implementation stage, the constituent elements can be deformed and concretized within the scope of the main purpose. In addition, various inventions can be formed by appropriate combinations of multiple constituent elements disclosed in the above-mentioned embodiments. For example, several constituent elements can also be deleted from all constituent elements shown in the embodiments. Furthermore, constituent elements across different embodiments can also be appropriately combined.

[0239] Description of Reference Numerals

[0240] 1 Management Server

[0241] 2 Network

[0242] 3a, 3b, 3c Computing Servers

[0243] 4a, 4b, 4c cables

[0244] 5 Switch

[0245] 6 Client Terminal

[0246] 10 Processor

[0247] 11 Management Department

[0248] 12 Transformation

[0249] 13. Control Unit

[0250] 14 Storage

[0251] 14A Question Data

[0252] 14B Calculation Data

[0253] 14C Management Program

[0254] 14D Transformation Procedure

[0255] 14E, 34C Control Program

[0256] 15, 31 Communication circuit

[0257] 16 Input Circuit

[0258] 17 Output Circuit

[0259] 18 Operating device

[0260] 19 Display device

[0261] 20 Bus

[0262] 32 Shared Memory

[0263] 33A, 33B, 33C, 33D processors

[0264] 34 Storage Devices

[0265] 34A Calculation data

[0266] 34B Calculation Procedure

[0267] 35 Host Bus Adapter

Claims

1. An information processing device, wherein: have: A plurality of operation circuits operating in parallel are respectively configured to repeatedly update a first vector and a second vector; the first vector has a first variable as an element, and the second vector has a second variable corresponding to the first variable as an element; as well as Data exchange circuit, Each of the arithmetic circuits is configured to update the first variable based on the corresponding second variable, weight the first variable with a first coefficient and add the first variable to the corresponding second variable, calculate a problem term using a plurality of the first variables, and add the problem term to the second variable; In each of the arithmetic circuits, a different value is set for the first coefficient; The data exchange circuit is configured to perform at least one of an exchange of the first vector and the second vector or an exchange of the first coefficient between the calculation circuits.

2. The information processing device according to claim 1, wherein: The data exchange circuit is configured to execute condition determination according to each pair of the operation circuits, and when the condition determination is affirmative, at least one of the exchange of the first vector and the second vector used in the calculation or the exchange of the first coefficient is executed between the operation circuits.

3. The information processing device according to claim 2, wherein: The data exchange circuit is configured to perform the condition determination based on the first vector, the second vector, and the first coefficient in the operation circuit included in the pair.

4. The information processing device according to any one of claims 1 to 3, wherein: The first coefficients used in the respective arithmetic circuits are in a geometric progression relationship with each other.

5. The information processing device according to any one of claims 1 to 3, wherein: Each of the arithmetic circuits periodically changes the value of the first coefficient according to the number of times the first vector and the second vector are updated.

6. The information processing device according to claim 1, wherein: The data exchange circuit is configured to select different pairs of the operation circuits according to timing, and execute at least one of an exchange of the first vector and the second vector or an exchange of the first coefficient.

7. The information processing device according to claim 6, wherein: The data exchange circuit is configured to alternately select the pairs of the first combination and the pairs of the second combination in the plurality of operation circuits to perform at least one of an exchange of the first vector and the second vector or an exchange of the first coefficient.

8. The information processing device according to any one of claims 1 to 7, wherein: The above-mentioned problem item calculated by the above-mentioned operation circuit is based on the Ising model.

9. The information processing device according to claim 8, wherein: The above-mentioned problem items calculated by the above-mentioned operation circuit include multi-body interactions.

10. An information processing system, wherein: have: A plurality of first computers operating in parallel are respectively configured to repeatedly update a first vector and a second vector; the first vector has a first variable as an element, and the second vector has a second variable corresponding to the first variable as an element; as well as a second computer configured to execute data exchange between the first computer; Each of the first computers is configured to update the first variable based on the corresponding second variable, weight the first variable with a first coefficient and add the first variable to the corresponding second variable, calculate a problem item using a plurality of the first variables, and add the second variable to the problem item; The second computer is configured to execute at least one of an exchange of the first vector and the second vector or an exchange of the first coefficient between the first computer; In each of the first computers, a different value is set for the first coefficient.

11. The information processing system according to claim 10, wherein: The second computer is configured to execute condition determination according to each pair of the first computer, and when the condition determination is affirmative, at least one of the exchange of the first vector and the second vector used in the calculation or the exchange of the first coefficient is executed between the first computers.

12. An information processing method, which uses a plurality of first computers and a second computer, wherein the plurality of first computers operate in parallel and are respectively configured to repeatedly update a first vector and a second vector, wherein the first vector has a first variable as an element, and the second vector has a second variable corresponding to the first variable as an element, and the second computer is configured to perform data exchange between the first computers. The above information processing method comprises the following steps: The first computers update the first variables based on the corresponding second variables. The first computers weight the first variables with the first coefficients and add the weights to the corresponding second variables. The step of each of the first computers calculating a problem item using a plurality of the first variables; Each of the first computers adds the second variable to the question item; and The second computer executes at least one of the steps of exchanging the elements of the first vector and the second vector or exchanging the first coefficient between the first computer.

13. An information processing method, comprising: using a plurality of first processors and a second processor, wherein the plurality of first processors operate in parallel and are respectively configured to repeatedly update a first vector and a second vector, wherein the first vector has a first variable as an element, and the second vector has a second variable corresponding to the first variable as an element, and wherein the second processor is configured to perform data exchange between the first processors. The above information processing method comprises the following steps: The first processors update the first variables based on the corresponding second variables; The first processors weight the first variables with the first coefficients and add the weights to the corresponding second variables. The first processors each use a plurality of the first variables to calculate a question item; Each of the first processors adds the question item to the second variable; and The second processor performs at least one of the steps of exchanging the first vector and the second vector or exchanging the first coefficient between the first processor.

14. A non-transitory computer-readable storage medium, wherein: A program is stored, the program causing a plurality of first processors operating in parallel to repeatedly update a first vector having a first variable as an element and a second vector having a second variable corresponding to the first variable as an element, and causing a second processor to exchange data between the first processors, the program causing a computer to execute the following steps: A step of each of the plurality of first processors updating the first variable based on the corresponding second variable; The first processors weight the first variables with the first coefficients and add the weights to the corresponding second variables. The first processors each use a plurality of the first variables to calculate a question item; Each of the first processors adds the question item to the second variable; and The second processor performs at least one of the steps of exchanging the first vector and the second vector or exchanging the first coefficient between the first processors.

15. A computer program product comprising a computer program for causing a plurality of first processors operating in parallel to repeatedly update a first vector having a first variable as an element and a second vector having a second variable corresponding to the first variable as an element, and causing a second processor to execute data exchange between the first processors, wherein: When the computer program is executed, the following steps are implemented: a step of each of the plurality of first processors updating the first variable based on the corresponding second variable; The first processors weight the first variables with the first coefficients and add the weights to the corresponding second variables. The first processors each use a plurality of the first variables to calculate a question item; Each of the first processors adds the question item to the second variable; and The second processor performs at least one of the steps of exchanging the first vector and the second vector or exchanging the first coefficient between the first processors.

Citation Information

Patent Citations

  • Quantum calculation device and method

    JP2017073106A

  • Method for weighting multiple example studying features based on master space classifying criterion

    CN104091038A

  • Resource information processing method

    CN107347073A