WO2020196915A1 - 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム - Google Patents
情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム Download PDFInfo
- Publication number
- WO2020196915A1 WO2020196915A1 PCT/JP2020/014633 JP2020014633W WO2020196915A1 WO 2020196915 A1 WO2020196915 A1 WO 2020196915A1 JP 2020014633 W JP2020014633 W JP 2020014633W WO 2020196915 A1 WO2020196915 A1 WO 2020196915A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- variable
- information processing
- vector
- update
- time step
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/60—Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
Definitions
- An embodiment of the present invention relates to an information processing device, an information processing system, an information processing method, a storage medium, and a program.
- the combinatorial optimization problem is a problem of selecting the most suitable combination from a plurality of combinations.
- Combinatorial optimization problems are mathematically reduced to a problem called an "objective function" that maximizes a function having a plurality of discrete variables or minimizes the function.
- the combinatorial optimization problem is a universal problem in various fields such as finance, logistics, transportation, design, manufacturing, and life science, but the number of combinations increases in the order of the exponential function of the problem size, so-called "combinatorial explosion". Therefore, it is not always possible to find the optimum solution. Moreover, it is often difficult to even obtain an approximate solution close to the optimum solution.
- An embodiment of the present invention provides an information processing device, an information processing system, an information processing method, a storage medium, and a program for calculating a solution of a combinatorial optimization problem with high accuracy.
- the information processing apparatus is weighted by a first coefficient and a storage unit configured to store the first variable which is an element of the first vector and the second variable which is an element of the second vector.
- the first variable is updated by multiplying the second variable by the time step and adding to the corresponding first variable, and the first variable is weighted by the time step and the second coefficient to correspond to the first variable.
- the second variable is updated by adding to the second variable, calculating the problem term using the plurality of the first variables, and adding the problem term multiplied by the time step to the second variable. It includes a processing circuit configured to update the time step and monotonically increase or decrease the second coefficient according to the number of updates.
- the figure which showed the configuration example of an information processing system A block diagram showing a configuration example of the management server.
- FIG. 1 is a block diagram showing a configuration example of the information processing system 100.
- the information processing system 100 of FIG. 1 includes a management server 1, a network 2, calculation servers (information processing devices) 3a to 3c, cables 4a to 4c, a switch 5, and a storage device 7. Further, FIG. 1 shows a client terminal 6 capable of communicating with the information processing system 100.
- the management server 1, the calculation servers 3a to 3c, the client terminal 6, and the storage device 7 can communicate data with each other via the network 2.
- the calculation servers 3a to 3c can store data in the storage device 7 and read data from the storage device 7.
- the network 2 is, for example, the Internet in which a plurality of computer networks are connected to each other.
- the network 2 can use wired, wireless, or a combination thereof as a communication medium.
- an example of the communication protocol used in the network 2 is TCP / IP, but the type of the communication protocol is not particularly limited.
- the calculation servers 3a to 3c are connected to the switch 5 via cables 4a to 4c, respectively. Cables 4a-4c and switch 5 form an interconnect between compute servers. The calculation servers 3a to 3c can also perform data communication with each other via the interconnect.
- the switch 5 is, for example, an Infiniband switch.
- the cables 4a to 4c are, for example, Infiniband cables. However, a wired LAN switch / cable may be used instead of the InfiniBand switch / cable.
- the communication standard and communication protocol used in the cables 4a to 4c and the switch 5 are not particularly limited. Examples of the client terminal 6 include a notebook PC, a desktop PC, a smartphone, a tablet, an in-vehicle terminal, and the like.
- the management server 1 controls the calculation server by converting, for example, the combinatorial optimization problem input by the user into a format that can be processed by each calculation server. Then, the management server 1 acquires the calculation result from each calculation server and converts the aggregated calculation result into a solution of the combinatorial optimization problem. In this way, the user can obtain a solution to the combinatorial optimization problem.
- the solution of the combinatorial optimization problem shall include an optimal solution and an approximate solution close to the optimal solution.
- FIG. 1 shows three calculation servers.
- the number of calculation servers included in the information processing system is not limited.
- the number of calculation servers used to solve the combinatorial optimization problem is not particularly limited.
- the information processing system may include one calculation server.
- the combinatorial optimization problem may be solved by using one of a plurality of calculation servers included in the information processing system.
- the information processing system may include hundreds or more calculation servers.
- the calculation server may be a server installed in a data center or a desktop PC installed in an office. Further, the calculation server may be a plurality of types of computers installed at different locations.
- the type of information processing device used as the calculation server is not particularly limited.
- the calculation server may be a general-purpose computer, a dedicated electronic circuit, or a combination thereof.
- FIG. 2 is a block diagram showing a configuration example of the management server 1.
- the management server 1 in FIG. 2 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. It is assumed that 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 the bus 20.
- the processor 10 includes a management unit 11, a conversion unit 12, and a control unit 13 as internal components.
- the processor 10 is an electronic circuit that executes calculations and controls the management server 1.
- the processor 10 is an example of a processing circuit.
- 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, and a web page.
- the user can input information on the combinatorial optimization problem via the management unit 11, and can view and / or download the calculated solution of the combinatorial optimization problem.
- the conversion unit 12 converts the combinatorial optimization problem into a format that can be processed by each calculation server.
- the control unit 13 transmits a control command to each calculation server.
- control unit 13 After the control unit 13 acquires the calculation result from each calculation server, the conversion unit 12 aggregates the plurality of calculation results and converts them into a solution of the combinatorial optimization problem. Further, the control unit 13 may specify the processing content to be executed by each calculation server or the processor in each server.
- the storage unit 14 stores various types of data including the program of the management server 1, data necessary for executing the program, and data generated by the program.
- the storage unit 14 may be a volatile memory, a non-volatile memory, or a combination thereof. Examples of volatile memory include DRAM, SRAM and the like. Examples of non-volatile memory include NAND flash memory, NOR flash memory, ReRAM, or MRAM. Further, as the storage unit 14, a hard disk, an optical disk, a magnetic tape, or an external storage device may be used.
- the communication circuit 15 transmits / receives data to / from each device connected to the network 2.
- the communication circuit 15 is, for example, a wired LAN NIC (Network Interface Card). However, the communication circuit 15 may be another type of communication circuit such as a wireless LAN.
- the input circuit 16 realizes data input to the management server 1. It is assumed that the input circuit 16 includes, for example, USB, PCI-Express, or the like as an external port.
- the operating device 18 is connected to the input circuit 16.
- the operation 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, and the like, 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 is provided with HDMI, DisplayPort, or the like as an external port.
- the display device 19 is connected to the output circuit 17. Examples of the display device 19 include, but are not limited to, an LCD (liquid crystal display), an organic EL (organic electroluminescence) display, or a projector.
- the administrator of the management server 1 can perform maintenance on the management server 1 by using the operation device 18 and the display device 19.
- the operation device 18 and the display device 19 may be incorporated in the management server 1. Further, the operation device 18 and the display device 19 do not necessarily have to be connected to the management server 1. For example, the administrator may perform maintenance on the management server 1 using an information terminal capable of communicating with the network 2.
- FIG. 3 shows an example of data stored in the storage unit 14 of the management server 1.
- the problem data 14A, the calculation data 14B, the management program 14C, the conversion program 14D, and the control program 14E are stored in the storage unit 14 of FIG.
- the problem data 14A includes data of a combinatorial optimization problem.
- the calculation data 14B includes the calculation results collected from each calculation server.
- the management program 14C is a program that realizes the functions of the management unit 11 described above.
- the conversion program 14D is a program that realizes the functions of the conversion unit 12 described above.
- the control program 14E is a program that realizes the functions of the control unit 13 described above.
- FIG. 4 is a block showing a configuration example of the calculation server.
- the calculation server of FIG. 4 is, for example, an information processing apparatus that executes the calculation of the first vector and the second vector independently or in sharing with other calculation servers.
- FIG. 4 illustrates the configuration of the calculation server 3a as an example.
- the other calculation server may have the same configuration as the calculation server 3a, or may have a configuration different from that of the calculation server 3a.
- the calculation server 3a includes, for example, a communication circuit 31, a shared memory 32, processors 33A to 33D, a storage 34, and a host bus adapter 35. It is assumed that the communication circuit 31, the shared memory 32, the processors 33A to 33D, the storage 34, and the host bus adapter 35 are connected to each other via the bus 36.
- the communication circuit 31 transmits / receives data to / from each device connected to the network 2.
- the communication circuit 31 is, for example, a wired LAN NIC (Network Interface Card). However, the communication circuit 31 may be another type of communication circuit such as a wireless LAN.
- the shared memory 32 is a memory that can be accessed from the processors 33A to 33D. Examples of the shared memory 32 include volatile memories such as DRAM and SRAM. However, as the shared memory 32, another type of memory such as a non-volatile memory may be used.
- the shared memory 32 may be configured to store, for example, the first vector and the second vector.
- the processors 33A to 33D can share data via the shared memory 32.
- the memories of the calculation server 3a need to be configured as shared memory.
- a part of the memory of the calculation server 3a may be configured as a local memory that can be accessed only by any processor.
- the shared memory 32 and the storage 34 described later are examples of storage units of the information processing device.
- Processors 33A to 33D are electronic circuits that execute calculation 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), which may be a combination of these or a combination of these. You may.
- the processor may be a CPU core or a CPU thread.
- the processor may be connected to other components of the calculation server 3a via a bus such as PCI express.
- the calculation server is equipped with four processors.
- the number of processors provided in one computing server may be different from this.
- the number and / or type of processors implemented by the compute server may be different.
- the processor is an example of a processing circuit of an information processing device.
- the information processing device may include a plurality of processing circuits.
- the storage unit of the information processing apparatus may be configured to store the first variable which is an element of the first vector and the second variable which is an element of the second vector.
- the processing circuit of the information processing device updates the first variable by multiplying the second variable weighted by the first coefficient in time steps and adding it to the corresponding first variable, and sets the first variable in time steps.
- the second variable is weighted by the second coefficient and added to the corresponding second variable
- the problem term is calculated using the plurality of first variables
- the problem term multiplied by the time step is added to the second variable to add the second variable. It is configured to update, update the time step, and monotonically increase or decrease the second coefficient depending on the number of updates.
- the problem argument may be calculated based on the Ising model.
- the problem argument may include many-body interactions. Details of the first coefficient, the second coefficient, the problem term, the Ising model, and the many-body interaction will be described later.
- processing contents can be assigned for each processor.
- the unit of computational resources to which the processing contents are assigned is not limited.
- the processing contents may be assigned for each computer, or the processing contents may be assigned for each process running on the processor or each CPU thread.
- the storage 34 stores various data including the program of the calculation server 3a, the data necessary for executing the program, and the data generated by the program.
- the storage 34 may be configured to store, for example, the first vector and the second vector.
- the storage 34 may be a volatile memory, a non-volatile memory, or a combination thereof. Examples of volatile memory include DRAM, SRAM and the like. Examples of non-volatile memory include NAND flash memory, NOR flash memory, ReRAM, or MRAM. Further, as the storage 34, a hard disk, an optical disk, a magnetic tape, or an external storage device may be used.
- the host bus adapter 35 realizes data communication between calculation servers.
- the host bus adapter 35 is connected to the switch 5 via a cable 4a.
- the host bus adapter 35 is, for example, an HCA (Host Channel Adapter).
- HCA Hyper Channel Adapter
- FIG. 5 shows an example of data stored in the storage of the calculation server.
- the calculation data 34A, the calculation program 34B, and the control program 34C are stored in the storage 34 of FIG.
- the calculation data 34A includes data in the middle of calculation or a calculation result of the calculation server 3a. At least a part of the calculated data 34A may be stored in a different storage hierarchy such as the shared memory 32, the cache of the processor, or the register of the processor.
- the calculation program 34B is a program that realizes a calculation process in each processor and a data storage process in the shared memory 32 and the storage 34 based on a predetermined algorithm.
- the control program 34C is a program that controls the calculation server 3a based on the command transmitted from the control unit 13 of the management server 1 and transmits the calculation result of the calculation server 3a to the management server 1.
- An Ising machine is an example of an information processing device used to solve a combinatorial optimization problem.
- the Ising machine is an information processing device that calculates the energy of the ground state of the Ising model.
- the Ising model has often been used mainly as a model for ferromagnets and phase transition phenomena.
- the Ising model has been increasingly used as a model for solving combinatorial optimization problems.
- the following equation (1) shows the energy of the Ising model.
- s i and s j are spins
- spin is a binary variable having a value of either +1 or -1.
- N is the number of spins.
- h i is the local magnetic field acting on each spin.
- J is a matrix of coupling coefficients between spins.
- the matrix J is a real symmetric matrix having a diagonal component of 0. Therefore, J ij indicates the elements of the matrix J in row i and column j.
- the Ising model of equation (1) is a quadratic equation for spin, but as will be described later, an extended Ising model including terms of the third order or higher of spin (Ising having many-body interactions). Model) may be used.
- the solution of the Ising model is expressed in the form of spin vectors (s 1 , s 2 , ..., S N ). Let this vector be called the solution vector.
- the vector (s 1 , s 2 , ..., S N ) at which the energy E Ising is the minimum value is called an optimum solution.
- the calculated Ising model solution does not necessarily have to be an exact optimal solution.
- an Ising problem the problem of finding an approximate solution in which the energy E Ising is as small as possible (that is, an approximate solution in which the value of the objective function is as close to the optimum value as possible) using the Ising model is referred to as an Ising problem.
- the spin s i of the equation (1) is a binary variable, it can be easily converted with the discrete variable (bit) used in the combinatorial optimization problem by using the equation (1 + s i ) / 2. .. Therefore, it is possible to find the solution of the combinatorial optimization problem by converting the combinatorial optimization problem into the Ising problem and letting the Ising machine perform the calculation.
- the problem of finding a solution that minimizes the quadratic objective function with a discrete variable (bit) that takes either 0 or 1 as a variable is QUABO (Quadratic Unconstrained Binary Optimization, unconstrained binary variable quadratic optimization). ) It is called a problem. It can be said that the Ising problem represented by the equation (1) is equivalent to the QUABO problem.
- Quantum annealing realizes quantum annealing using a superconducting circuit.
- the coherent Ising machine utilizes the oscillation phenomenon of a network formed by an optical parametric oscillator.
- the quantum branching machine utilizes the quantum mechanical branching phenomenon in a network of parametric oscillators with the Kerr effect. While these hardware implementations have the potential to significantly reduce calculation time, they also have the problem of being difficult to scale up and operate stably.
- SA Simulated annealing
- Technology is being developed to perform simulated annealing faster.
- general simulated annealing is a sequential update algorithm in which each variable is sequentially updated, it is difficult to speed up the calculation process by parallelization.
- a simulated branching algorithm has been proposed that can solve large-scale combinatorial optimization problems at high speed by parallel calculation in a digital computer.
- information processing devices, information processing systems, information processing methods, storage media, and programs that solve combinatorial optimization problems using a simulated branching algorithm will be described.
- H is a Hamiltonian of the following formula (3).
- the Hamiltonian H' including the terms G (x 1 , x 2 , ... x N ) shown in the following formula (4) is used. You may.
- processing will be described by taking the case where the term G (x 1 , x 2 , ... X N ) is a correction term as an example.
- the term G (x 1 , x 2 , ... X N ) may be derived from the constraints of the combinatorial optimization problem.
- the method and type of derivation of the term G (x 1 , x 2 , ... X N ) are not limited. Further, in the equation (4), the argument G (x 1 , x 2 , ... X N ) is added to the original Hamiltonian H. However, the argument G (x 1 , x 2 , ... X N ) may be incorporated into the extended Hamiltonian in a different way.
- each term is either the element x i of the first vector or the element y i of the second vector.
- an extended Hamiltonian that can be divided into a term U of the element x i of the first vector and a term V of the element y i of the second vector may be used.
- the processing will be described assuming that the time evolution is calculated. However, the calculation of the simulated branch algorithm may be performed by a method other than time evolution.
- the coefficient D corresponds to the above-mentioned first coefficient and is also called detuning.
- the coefficient p (t) corresponds to the above-mentioned second coefficient, and is also called pumping amplitude.
- the value of the coefficient p (t) can be monotonically increased according to the number of updates.
- the initial value of the coefficient p (t) may be set to 0.
- the second coefficient p (t) is a positive value and the value of the second coefficient p (t) increases according to the number of updates will be described as an example.
- the sign of the algorithm presented below may be inverted and a negative second coefficient p (t) may be used.
- the value of the second coefficient p (t) decreases monotonically according to the number of updates.
- the absolute value of the second coefficient p (t) increases monotonically according to the number of updates.
- the coefficient K corresponds to a positive Kerr coefficient.
- a constant coefficient can be used as the coefficient c.
- the value of the coefficient c may be determined before performing the calculation by the simulated branching algorithm.
- the coefficient c can be set to a value close to the reciprocal of the maximum eigenvalue of the J (2) matrix.
- the value c 0.5D ⁇ (N / 2n) can be used.
- n is the number of edges of the graph related to the combinatorial optimization problem.
- a (t) is a coefficient that increases with p (t) when calculating the time evolution.
- ⁇ (p (t) / K) can be used as a (t).
- the symplectic Euler method can be used to convert (2) above into a discrete recurrence formula to perform the solution.
- (6) shows an example of a simulated branching algorithm after conversion to a recurrence formula.
- t is a time
- ⁇ t is a time step (time step width).
- the time t and the time step ⁇ t are used to show the correspondence with the differential equation.
- the time t and the time step ⁇ t do not necessarily have to be included as explicit parameters. For example, if the time step ⁇ t is set to 1, it is possible to remove the time step ⁇ t from the algorithm at the time of mounting.
- x i (t + ⁇ t) may be interpreted as the updated value of x i (t). That is, "t” in (4) above indicates the value of the variable before the update, and "t + ⁇ t” indicates the value of the variable after the update.
- problem term the item described in the third row is derived from Ising energy. Since the format of this argument is determined according to the problem to be solved, it is called a problem term (problem term).
- the value of spin s i is calculated based on the sign of the variable x i after increasing the value of p (t) from the initial value (eg 0) to a predetermined value.
- sgn (x i) + 1
- the value of spin s i can be obtained by converting the variable x i with a sign function.
- Solution of a combinatorial optimization problem for the timing of obtaining a not particularly limited.
- 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, the value of the second coefficient p, or the value of the objective function becomes larger than the threshold value.
- FIG. 6 shows an example of processing in the case of calculating the solution of the simulated branch algorithm by time evolution. Hereinafter, the process will be described with reference to FIG.
- the calculation server obtains the matrix J ij and vector h i corresponding to the problem from the management server 1 (step S101). Then, the calculation server initializes the coefficients p (t) and a (t) (step S102). For example, the values of the coefficients p and a can be set to 0 in step S102, but the initial values of the coefficients p and a are not limited.
- the calculation server initializes the first variable x i and the second variable y i (step S103).
- the first variable x i is an element of the first vector.
- the second variable y i is an element of the second vector.
- the compute server may initialize x i and y i to 0, respectively.
- the method of initializing x i and y i is not limited. Further, the first variable x i or the second variable y i may be initialized at a timing different from this. Also, at least one of the variables may be initialized multiple times.
- the calculation server updates the elements x i of the first vector corresponding based on the elements y i of the second vector (step S104). For example, the calculation server updates the first vector by weighting and adding the element y i of the second vector corresponding to the element x i of the first vector in step S104. For example, in step S104, ⁇ t ⁇ D ⁇ y i can be added to the variable x i . Then, the calculation server updates the element y i of the second vector (steps S105 and S106). For example, in step S105, ⁇ t ⁇ [(pdK ⁇ x i ⁇ x i ) ⁇ x i ] can be added to the variable y i . In step S106, it is possible to add a - ⁇ t ⁇ c ⁇ h i ⁇ a - ⁇ t ⁇ c ⁇ ⁇ J ij ⁇ x j and into the variable y i.
- the calculation server updates the values of the coefficients p and a (step S107). For example, a constant value ( ⁇ p) can be added to the coefficient p, and the coefficient a can be set to the positive square root of the updated coefficient p. However, as will be described later, this is only an example of how to update the values of the coefficients p and a.
- the calculation server determines whether or not the number of updates of the first vector and the second vector is less than the threshold value (step S108). If the number of updates is less than the threshold value (YES in step S108), the calculation server re-executes the processes of steps S104 to S107.
- step S109 When the number of updates is equal to or greater than the threshold value (NO in step S108), the spin s i , which is an element of the solution vector, is obtained based on the element x i of the first vector (step S109).
- step S109 for example, in the first vector, the variable x i is a positive value +1, converts each variable x i is a negative value -1, it is possible to obtain a solution vector.
- step S108 when the number of updates is less than the threshold value (YES in step S108), the Hamiltonian value may be calculated based on the first vector, and the first vector and the Hamiltonian value may be stored. .. This allows the user to select the approximate solution closest to the optimal solution from the plurality of first vectors.
- processing may be parallelized using a plurality of calculation servers.
- Processing may be parallelized by a plurality of processors.
- the implementation and the mode of parallelization of processing for realizing parallelization of processing are not limited.
- the execution order of the update processing of the variables x i and y i shown in steps S105 to S106 described above is only an example. Therefore, the update processing of the variables x i and y i may be executed in a different order. For example, the order in which the update process of the variable x i and the update process of the variable y i may be executed may be interchanged. Further, the order of sub-processing included in the update processing of each variable is not limited. For example, the execution order of the addition processing for the variable y i may be different from the example of FIG. The execution order and timing of the processes that are the prerequisites for executing the update process of each variable are not particularly limited.
- the computing problems terms may be performed in parallel with other processing including processing of updating the variable x i.
- the order and timing at which the update processing of the variables x i and y i, the sub-processing included in the update processing of each variable, and the calculation processing of the problem item are executed are not limited, and the same applies to the processing of each flowchart shown below. Is.
- ⁇ t may be a variable time step.
- the value of the coefficient t can be updated based on (7) below.
- n is a positive integer indicating the number of iterations.
- (7) shows that the value t n of the coefficient t in the next iteration n is obtained by adding ⁇ t n-1 to the value t n-1 of the coefficient t in the iteration (n-1). ..
- the coefficient t can be used to determine whether or not the loop processing can be continued. However, if it is determined whether or not the loop processing can be continued by another method, the processing of (7) may be skipped. For example, it may be determined whether or not the loop processing can be continued based on at least one of the Hamiltonian value, the coefficient p value, the coefficient a value, and the number of iterations. That is, it is not always necessary to update the coefficient t when the simulated branch algorithm is executed.
- (8) shows an example of how to update the variable time step.
- the next iteration is performed by multiplying the time step ⁇ t n-1 in the iteration (n-1) by a coefficient based on the Hamiltonian values H'n -1 and H'n -2.
- the time step ⁇ t n used in the coefficient n can be obtained.
- H'n -1 is a Hamiltonian value calculated by iteration (n-1).
- H'n -2 is the Hamiltonian value calculated in the previous iteration (n-2).
- the value of the time step ⁇ t becomes smaller as the Hamiltonian value converges to the vicinity of a constant value (for example, 0) by the loop processing. Therefore, before the Hamiltonian values converge, a relatively large time step can be used to reduce the amount of calculation. On the other hand, when the Hamiltonian value starts to converge, a relatively small time step is used, so that the calculation can be performed with high accuracy. As a result, an approximate solution close to the optimum solution can be calculated. In this way, the value of the time step may be updated based on the Hamiltonian value calculated in at least one iteration. However, the time step may be updated by a method different from (8).
- FIG. 7 shows an example of the algorithm according to the modified example 1. Hereinafter, the process will be described with reference to FIG. 7.
- the calculation server obtains the matrix J ij and vector h i corresponding to the problem from the management server 1 (step S110). Then, the calculation server initializes the coefficients p (t), a (t), n and ⁇ t 0 (step S111). For example, the values of the coefficients p and a can be set to 0 in step S111, but the initial values of the coefficients p and a are not limited. For example, n can be initialized to 1 in step S111. However, the initial value of n may be different from this. ⁇ t 0 is the initial value of the time step. For example, the compute server can set ⁇ t 0 to any positive natural number.
- the calculation server initializes the first variable x i and the second variable y i (step S112).
- the first variable x i is an element of the first vector.
- the second variable y i is an element of the second vector.
- the compute server may initialize x i and y i to 0, respectively.
- the calculation server may initialize x i and y i with pseudo-random numbers, respectively.
- the method of initializing x i and y i is not limited.
- the first variable x i or the second variable y i may be initialized at a timing different from this. Also, at least one of the variables may be initialized multiple times.
- the calculation server reads the Hamiltonian values H'n -1 and H'n -2 from the storage area and updates the time step ⁇ t n (step S113).
- the time step ⁇ t n can be updated by the method (8) described above.
- the time step ⁇ t n may be updated by other methods.
- the storage area for example, the storage area provided by the shared memory 32 or the storage 34 can be used.
- a storage area provided by an external storage device or cloud storage may be used, and the location of the storage area is not limited. It is possible that H'n -1 and H'n -2 are not stored in the storage area at the timing when step S113 is executed for the first time. In this case, the process of step S113 may be skipped.
- the calculation server updates the elements x i of the first vector corresponding based on the elements y i of the second vector (step S114). For example, the calculation server updates the first vector by weighting and adding the element y i of the second vector corresponding to the element x i of the first vector in step S114. For example, in step S114, ⁇ t ⁇ D ⁇ y i can be added to the variable x i . Then, the calculation server updates the element y i of the second vector (steps S115 and S116). For example, in step S115, ⁇ t ⁇ [(pdK ⁇ x i ⁇ x i ) ⁇ x i ] can be added to the variable y i . At step S116, it is possible to add a - ⁇ t ⁇ c ⁇ h i ⁇ a - ⁇ t ⁇ c ⁇ ⁇ J ij ⁇ x j and into the variable y i.
- the calculation server the value H 'n in the Hamiltonian is calculated and stores it in the storage area (step S117).
- a Hamiltonian the function of energy in (1) above may be calculated. Further, as the Hamiltonian, the above-mentioned (3) or (4) may be calculated. You may also use the Hamiltonian defined in other formats.
- the calculation server is able with numbers indicating iterations Hamiltonian is calculated in step S117 to store the Hamiltonian value H 'n in the storage area. Then, the calculation server updates the values of the coefficients p, a, and n (step S118).
- a constant value ( ⁇ p) can be added to the coefficient p, and the coefficient a can be set to the positive square root of the updated coefficient p.
- the value of the coefficient n may be incremented in step S118. This makes it possible to identify the iterations in which the data stored in the storage area was generated. Further, in step S118, the coefficient t n may be calculated by adding ⁇ t n to t n-1 .
- the calculation server determines whether or not the number of updates of the first vector and the second vector is less than the threshold value (step S119). If the number of updates is less than the threshold value (YES in step S119), the calculation server re-executes the processes of steps S113 to S118. When the number of updates is equal to or greater than the threshold value (NO in step S119), the spin s i , which is an element of the solution vector, is obtained based on the element x i of the first vector (step S120). In step S120, for example, in the first vector, the variable x i which is a positive value is converted to +1 and the variable x i which is a negative value is converted to -1, and a solution vector can be obtained.
- step S119 when the number of updates is less than the threshold value (YES in step S119), the Hamiltonian value is calculated based on the first vector, and the first vector and the Hamiltonian value are stored in the storage area. You may. This allows the user to select the approximate solution closest to the optimal solution from the plurality of first vectors. Then, the selected first vector can be converted into a solution vector. Further, the solution vector may be calculated at a timing different from this, such as during execution of loop processing.
- At least one of the processes shown in the flowchart of FIG. 7 may be executed in parallel.
- at least one of the processes of steps S114 to S116 may be executed in parallel so that the N elements of the first vector and the second vector are updated in parallel.
- processing may be parallelized using a plurality of calculation servers.
- Processing may be parallelized by a plurality of processors.
- the implementation and the mode of parallelization of processing for realizing parallelization of processing are not limited.
- the processing circuit of the information processing device may be configured to calculate the Hamiltonian (objective function) value based on the first vector and store the Hamiltonian (objective function) value in the storage unit.
- the processing circuit of the information processing device reads out the Hamiltonian (objective function) values calculated by different iterations from the storage unit, and updates the time step based on the values of a plurality of Hamiltonian (objective functions). It may be configured.
- FIG. 8 shows an example of a change in the Hamiltonian value according to the number of iterations (number of iterations) of the loop processing of the simulated branch algorithm.
- the horizontal axis of FIG. 8 shows the number of iterations of the algorithm.
- the vertical axis of FIG. 8 shows the energy value.
- the energy value is calculated according to (1) above.
- an energy function of a form other than (1) may be used.
- FIG. 9 shows an example of the values of the first variable x i and the second variable y i in each iteration of the simulated branching algorithm.
- the horizontal axis of FIG. 9 corresponds to the value of the first variable x i .
- the vertical axis of FIG. 9 corresponds to the value of the second variable y i .
- Simulated branch algorithm is a physical model describing the motion state of the particles
- the first variable x i indicates the position of the particle.
- the second variable y i indicates the momentum of the particles.
- FIG. 8 and 9 show the results when the change amount of the time step ⁇ t is set large and the above-mentioned algorithms (8) and 7 are executed.
- the energy value increases as the number of iterations increases while oscillating.
- FIG. 8A shows the accumulation of calculation errors.
- FIG. 9 (a) shows the track of the first variable x i and second variable y i is changed by the iteration, the occurrence of an error is observed.
- the conserved quantity oscillates with respect to the reference point determined according to the time step ⁇ t. Therefore, if the time step ⁇ t is changed, the reference point of vibration changes. Therefore, when the variable time step ⁇ t is not symmetric with respect to time inversion, a calculation error may accumulate even if a coefficient such as p does not change due to iteration. On the other hand, when the variable time step ⁇ t having time inversion symmetry is used, it is possible to return to the initial condition in the solution space by time inversion, so that accumulation of calculation error can be prevented.
- the time step ⁇ t having the time inversion symmetry can be used. As a result, the stability and accuracy of the calculation process can be improved.
- an example of the variable time step ⁇ t having time inversion symmetry will be described.
- the time step width ⁇ t n, n + 1 defined in (9) below can be used.
- ⁇ t c and n are the first candidate values of the time step width.
- ⁇ t c and n + 1 are second candidate values of the time step width.
- the first candidate values ⁇ t c, n and the second candidate values ⁇ t c, n + 1 are both calculated based on at least one of the first variable x i and the second variable y i .
- N, n + 1 in the notation of ⁇ t n, n + 1 indicates that it is the time step width used between the iteration n and the iteration (n + 1).
- ⁇ t n, n + 1 are defined as implicit functions. Therefore, an implicit solution can be used in the calculation of the time steps ⁇ t n, n + 1 that satisfy (9). For example, the values of ⁇ t n, n + 1 can be obtained by executing an operation including repetition so that a self-consistent implicit function can be obtained.
- the calculated time step width ⁇ t n, n + 1 is the arithmetic mean of the first candidate values ⁇ t c, n and the second candidate values ⁇ t c, n + 1 .
- the variable time step may be obtained by calculating the geometric mean of the first candidate values ⁇ t c, n and the second candidate values ⁇ t c, n + 1 .
- the variable time step may be obtained by calculating the harmonic mean of the first candidate values ⁇ t c, n and the second candidate values ⁇ t c, n + 1 .
- FIG. 10 shows an example of an algorithm that calculates a time-reversed symmetric variable time step using pseudo code.
- the pseudo code of FIG. 10 is written using a grammar similar to a general programming language. However, it does not limit the type of programming language used to implement the algorithm. In the following, an example of the algorithm will be described with reference to FIG.
- Global variables are variables that can be referenced from within each function.
- the combinations of global variables and the values of global variables defined here are only examples.
- the function "t_evolution” is defined under the global variable.
- the function “t_evolution” receives the first variable, the second variable and the time step as arguments at the time of calling, and returns the first variable and the second variable after the time evolution of one iteration.
- the update process of the first variable is executed in two steps so that the process is time-reversal symmetric.
- the update process of the second variable is executed between the two update processes of the first variable. That is, in the example of FIG. 10, the time evolution is calculated based on the algorithm of (10) below. Note that x [n + 1/2] in (10) indicates the value of the first variable after the first update process among the two update processes.
- the time-reversal symmetry means that the contents of the executed processes do not change even if the execution order of the processes is reversed.
- the function “generate_dt” is defined.
- the function “generate_dt” receives the first variable and the second variable as arguments at the time of calling, calculates the candidate value of the time step based on at least one of the first variable and the second variable, and returns the candidate value.
- the function “generate_dt” a self-consistent time step can be searched. As shown in the example of FIG. 10, even if the candidate value of the time step calculated by the processing circuit (at least one of the first candidate value and the second candidate value) is inversely proportional to the quadratic function of the first variable. Good. For example, as shown in FIG.
- the candidate value of the time step may be calculated based on the global variables “a”, “b” and “dt0” and the first variable.
- this calculation method is only an example.
- the candidate value of the time step may be calculated based on the second variable.
- the candidate value of the time step may be calculated using both the first variable and the second variable. That is, it does not limit the algorithm used for calculating the second candidate value of the time step.
- the function “symmetric_dt” receives the first variable and the second variable as arguments at the time of calling, and returns the first variable and the second variable that have undergone time evolution for a plurality of iterations, and the time step width ⁇ t n, n + 1 .
- the function "generate_dt” is called twice with the first variable (variable “x1”) and the second variable (variable “x2”) received at the time of calling the function "symmetric_dt” as arguments.
- the candidate values of the time step are assigned to the local variables “dt1” and “dt2”.
- the function "t_evolution” is first called with the variables "x1", the variables "y1” and (dt1 + dt2) / 2 as arguments.
- the value of the first variable after time evolution for one iteration is assigned to the local variable "x2".
- the value of the second variable after time evolution for one iteration is assigned to the local variable "y2”.
- the function "generate_dt” is called with the local variables "x2" and "y2" as arguments, and the candidate value of the generated time step is assigned to the local variable "_dt".
- the loop processing is exited (break).
- the difference between the value of the local variable "dt2" and the value of the local variable "_dt" is equal to or greater than the threshold value (else statement)
- the second candidate value of the time step stored in the local variable "_dt" is local. It is assigned to the variable "dt2". That is, the value of the local variable "dt2" is updated in the else statement.
- the above-mentioned processing in the for loop is repeated until the value of the counter variable becomes 5 or the judgment of the if statement becomes affirmative. That is, the processing in the for loop is repeated until the above-mentioned processing is executed five times or the amount of change in the updated second candidate value (“_dt” in FIG. 10) converges within a certain range.
- the number of repetitions and the convergence test in FIG. 10 are merely examples. Therefore, the number of times the process is repeated in the implicit solution method may be a value different from 5. Further, the threshold value used for the convergence test of the updated second candidate value is not limited.
- the function "symmetric_dt” After exiting the for loop processing, the function "symmetric_dt” returns the value of the local variable "x2", the value of "y2", and the value of (dt1 + dt2) / 2.
- the value of the local variable "x2" the function “symmetric_dt” returned corresponds to the first variable x i after time evolution.
- the value of the local variable "y2" returned by the function “symmetric_dt” corresponds to the second variable y i after time evolution.
- the value of (dt1 + dt2) / 2 returned by the function “symmetric_dt” corresponds to the time step width ⁇ t n, n + 1 in (9) above.
- the first variable x i and the second variable y i may have different values depending on the execution status of the simulated branch algorithm.
- the global variable "a" in FIG. 10 corresponds to -D + p (t + ⁇ t) in the algorithm of (6) above. Therefore, although not shown in the pseudo code of FIG. 10, in order to monotonically increase or decrease the second coefficient p according to the number of updates, the value of the global variable "a" is set before or after calling the function "symmetric_dt". You may update.
- FIG. 11 shows an example of the algorithm according to the modification 2. Hereinafter, the process will be described with reference to FIG.
- the calculation server obtains the matrix J ij and vector h i corresponding to the problem from the management server 1 (step S130). Then, the calculation server initializes the coefficients p (t), a (t), and ⁇ t 0 (step S131). For example, the values of the coefficients p and a can be set to 0 in step S131, but the initial values of the coefficients p and a are not limited. ⁇ t 0 corresponds to the global variable “dt0” in FIG. For example, the compute server can set ⁇ t 0 to any positive natural number.
- the calculation server initializes the first variable x i and the second variable y i (step S132).
- the first variable x i is an element of the first vector.
- the second variable y i is an element of the second vector.
- the compute server may initialize x i and y i to 0, respectively.
- the calculation server may initialize x i and y i with pseudo-random numbers, respectively.
- the method of initializing x i and y i is not limited.
- the first variable x i or the second variable y i may be initialized at a timing different from this. Also, at least one of the variables may be initialized multiple times.
- the calculation server is based on at least one of the first variable x i or the second variable y i, to generate the candidate value ⁇ t1 and .DELTA.t2 (step S133).
- the function “generate_dt” of FIG. 10 can be used.
- the generation algorithm of the candidate values ⁇ t1 and ⁇ t2 is not limited.
- the calculation server calculates the time evolution of the first variable x i and the second variable y i in a time-reversal symmetry based on the first variable x i , the second variable y i, and ( ⁇ t1 + ⁇ t2) / 2 (step S134). ..
- the values of the first variable x i and the second variable y i are updated.
- the first variable x i and the second variable y i can be updated using the function “t_evolution” described in (10) or FIG.
- the first variable x i and the second variable y i may be updated by an algorithm different from this.
- step S134 instead of ( ⁇ t1 + ⁇ t2) / 2, the geometric mean of ⁇ t1 and ⁇ t2 or the harmonic mean of ⁇ t1 and ⁇ t2 may be used. Alternatively, other averages of ⁇ t1 and ⁇ t2 may be used in step S134.
- the calculation server generates a candidate value _ ⁇ t based on at least one of the first variable x i and the second variable y i (step S135). Also in step S135, the function “generate_dt” of FIG. 10 can be used. However, the candidate value _ ⁇ t may be generated by another algorithm.
- the calculation server determines whether or not the difference between the candidate values _ ⁇ t and ⁇ t2 is less than the threshold value (step S136).
- the calculation server substitutes the value of _ ⁇ t into ⁇ t2 (step S137).
- the posting server executes the processes of steps S134 to S136 again. That is, if the determination in step S136 is negative, the loop processing inside FIG. 11 continues.
- the calculation server updates the values of the coefficients p and a (step S138). For example, a constant value ( ⁇ p) can be added to the coefficient p, and the coefficient a can be set to the positive square root of the updated coefficient p. Further, in step S138, the coefficient t may be updated by adding ( ⁇ t1 + ⁇ t2) / 2 to t. In step S138, the geometric mean of ⁇ t1 and ⁇ t2 or the harmonic mean of ⁇ t1 and ⁇ t2 may be used instead of ( ⁇ t1 + ⁇ t2) / 2. Alternatively, the other average of ⁇ t1 and ⁇ t2 may be used in step S138.
- step S139 determines whether or not the number of updates of the first vector and the second vector is less than the threshold value. If the number of updates is less than the threshold value (YES in step S139), the calculation server re-executes the processes after step S133. That is, if the determination in step S139 is affirmative, the loop processing outside of FIG. 11 continues.
- the spin s i which is an element of the solution vector, is obtained based on the element x i of the first vector (step S140).
- step S140 for example, in the first vector, the variable x i which is a positive value is converted to +1 and the variable x i which is a negative value is converted to -1, and a solution vector can be obtained.
- step S139 when the number of updates is less than the threshold value (YES in step S139), the Hamiltonian value is calculated based on the first vector, and the first vector and the Hamiltonian value are stored in the storage area. You may. This allows the user to select the approximate solution closest to the optimal solution from the plurality of first vectors. Further, the solution vector may be calculated at a timing different from this, such as during execution of loop processing.
- processing may be parallelized using a plurality of calculation servers.
- Processing may be parallelized by a plurality of processors.
- the implementation and the mode of parallelization of processing for realizing parallelization of processing are not limited.
- the processing circuit of the information processing apparatus calculates the first candidate value and the second candidate value based on at least one of the first variable and the second variable, and time-steps the average value of the first candidate value and the second candidate value.
- the first variable and the second variable are updated, the second candidate value is updated based on at least one of the updated first variable or the second variable, and the recalculated average value is used as the time step.
- the variable and the second variable may be configured to be updated again.
- the processing circuit of the information processing device updates the second coefficient after it is determined that the difference between the second candidate value after the update and the second candidate value before the update is less than the first threshold value. It may be configured in. Further, in the processing circuit of the information processing apparatus, the number of repetitions of the process of updating the first variable and the second variable using the average value as a time step, the process of updating the second candidate value, and the process of recalculating the average value is It may be configured to update the second coefficient after the second threshold is exceeded.
- the processing circuit of the information processing apparatus executes the update process of the first variable in two times, and the first update process of the first variable and the second update process of the first variable are performed. It may be configured to execute the update process of two variables. In the first update process of the first variable and the second update process of the first variable in the processing circuit, the values to be added to the first variable may be set equally.
- FIG. 8 and 9 show the results when the time-reversal symmetric variable time step is used.
- the energy value oscillates in the vicinity of a constant reference value. Therefore, energy is conserved if the simulated branching algorithm meets the requirements of the Hamiltonian mechanics. That is, it can be seen that the occurrence of calculation error is prevented.
- FIG. 9B shows that the values of the first variable x i and the second variable y i change according to a constant trajectory, and the calculation process is stable.
- variable time step By using an information processing device or information processing system that uses time-reversed symmetrical variable time steps, it is possible to suppress the accumulation of errors and calculate the solution of the combinatorial optimization problem with high accuracy.
- the time step can be set large depending on the situation, so that the calculation time can be shortened without impairing the accuracy and stability of the calculation.
- the information processing system may include a storage device and an information processing device.
- the storage device is configured to store, for example, a first variable which is an element of the first vector and a second variable which is an element of the second vector.
- the information processing apparatus updates the first variable by multiplying the second variable weighted by the first coefficient in a time step and adding it to the corresponding first variable, and sets the first variable in the time step and the second variable.
- the second variable is updated by weighting with a coefficient, adding to the corresponding second variable, calculating the problem term using a plurality of first variables, and adding the problem term multiplied by the time step to the second variable. It is configured to update the time step and monotonically increase or decrease the second coefficient depending on the number of updates.
- the information processing method repeatedly updates 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.
- the information processing method includes a step of updating the first variable by multiplying the second variable weighted by the first coefficient in a time step and adding it to the corresponding first variable, and a time step and a second variable of the first variable.
- a step of updating the time step and a step of monotonically increasing or decreasing the second coefficient according to the number of updates may be included.
- the program repeatedly updates, for example, 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.
- the program updates the first variable by multiplying the second variable weighted by the first coefficient in time steps and adding it to the corresponding first variable, and the first variable in time steps and second coefficient.
- the computer may be made to perform a process including a step of updating the time step and a step of monotonically increasing or decreasing the second coefficient according to the number of updates.
- the storage medium may be a non-temporary computer-readable storage medium that stores the program.
- Equation (11) corresponds to the energy of the Ising model including many-body interactions.
- both QUABO and HOBO are a kind of unconstrained polynomial binary variable optimization (PUBO: Polynomial Unconstrained Binary Optimization). That is, among PUBOs, the combinatorial optimization problem having a quadratic objective function is QUABO. Further, among PUBOs, the combinatorial optimization problem having a third-order or higher objective function can be said to be HOBO.
- PUBO Polynomial Unconstrained Binary Optimization
- the Hamiltonian H in the above equation (3) may be replaced with the Hamiltonian H in the following equation (12).
- the problem item z i of (13) takes the form of partially differentiating the second equation of (12) with respect to any variable x i (element of the first vector).
- the variable x i to be partially differentiated depends on the index i.
- the index i of the variable x i corresponds to the index that specifies the element of the first vector and the element of the second vector.
- the problem items shown above are only examples of problem items that can be used by the information processing apparatus according to the present embodiment. Therefore, the form of the problem argument used in the calculation may be different from these.
- the processing circuit of the information processing apparatus may be configured to calculate a problem term by executing a product-sum operation using a plurality of first variables. Further, the product-sum operation may be divided into a plurality of parts, each part may be assigned to a different arithmetic unit (processing circuit), and the processing may be executed simultaneously by the plurality of arithmetic units. As a result, the product-sum operation can be executed at high speed.
- the information processing device may include a plurality of processing circuits. In this case, each processing circuit may be configured to execute at least a part of the calculation processing of the problem argument in parallel.
- additional processing may be performed when the first variable is updated.
- the value of the first variable x i is replaced with sgn (x i ). That is, when x i > 1 due to the update, the value of the variable x i is set to 1. Also, when x i ⁇ -1 due to the update, the value of the variable x i is set to -1. This makes it possible to approximate the spin s i with higher accuracy using the variable x i .
- the variable y i corresponding to the variable x i may be multiplied by the coefficient rf.
- the coefficient rf a coefficient rf of -1 ⁇ r ⁇ 0
- the arithmetic circuit sets the first variable corresponding to the first variable whose value is smaller than the first value or the second variable corresponding to the first variable larger than the second value to the original second variable.
- the variable may be configured to be updated to a value obtained by multiplying the variable by the second coefficient.
- the arithmetic circuit sets the first variable corresponding to the first variable whose value is less than -1, or the second variable corresponding to the first variable whose value is larger than 1, and the second coefficient as the original second variable. It may be configured to update to the multiplied value.
- the second coefficient corresponds to the above-mentioned coefficient rf.
- the arithmetic circuit may set the value of the variable y i corresponding to the variable x i as a pseudo-random number when x i > 1 due to the update. For example, random numbers in the range [-0.1, 0.1] can be used. That is, the arithmetic circuit converts the value of the second variable corresponding to the first variable whose value is smaller than the second value, or the value of the second variable corresponding to the first variable whose value is larger than the first value into a pseudo random number. It may be configured to be set.
- a continuous variable x is used in the problem term instead of a discrete variable. Therefore, there is a possibility that an error may occur with the discrete variable used in the original combinatorial optimization problem.
- the value sgn (x) obtained by converting the continuous variable x with a sign function can be used instead of the continuous variable x in the calculation of the problem term as shown in (16) below.
- sgn (x) corresponds to spin s.
- the product of the spins appearing in the problem term always takes a value of either -1 or 1, so when dealing with the HOMO problem having a higher-order objective function, an error occurs due to the product operation. Can be prevented.
- a spin vector can be obtained by converting each element of the first vector with a sign function.
- a PC cluster is a system that connects a plurality of computers and realizes computing performance that cannot be obtained by one computer.
- the information processing system 100 shown in FIG. 1 includes a plurality of calculation servers and processors, and can be used as a PC cluster.
- MPI Message Passing Interface
- MPI can be used to implement the control program 14E of the management server 1, the calculation program 34B and the control program 34C of each calculation server.
- the calculation of L variables among the variables x i included in the first vector (x 1 , x 2 , ..., X N ) for each processor. Can be done.
- m (j-1) L + 1, (j-1) L + 2, ..., jL ⁇ and ⁇ y.
- m ( j-1) L + 1, (j-1) L + 2, ⁇ , jL ⁇ calculated tensor shown in (17) as follows required to J of (n ) Shall be stored in a storage area accessible to processor # j (eg, register, cache, memory, etc.).
- each processor calculates a constant variable of the first vector and the second vector.
- the number of elements (variables) of the first vector and the second vector to be calculated may differ depending on the processor. For example, when there is a performance difference depending on the processor implemented in the calculation server, the number of variables to be calculated can be determined according to the performance of the processor.
- the values of all the components of the first vector are required.
- the conversion to a binary variable can be performed, for example, by using the sign function sgn (). Therefore, using the Allgather function, the values of all the components of the first vector (x 1 , x 2 , ..., X N ) can be shared by the Q processors.
- the second vector (y 1 , y 2 , ..., Y N )
- tensor J (n) it is not essential to share values between processors.
- Data sharing between processors can be realized, for example, by using interprocess communication or storing data in shared memory.
- Processor # j calculates the value of the problem item ⁇ z m
- m (j-1) L + 1, (j-1) L + 2, ..., JL ⁇ .
- the processor #j is calculated problem claim ⁇ z m
- m ( j-1) L + 1, based on the value of (j-1) L + 2 , ⁇ , jL ⁇ , variables ⁇ y m
- m Update (j-1) L + 1, (j-1) L + 2, ..., JL ⁇ .
- the tensor J (n) and the vector (x 1 , x 2 , ... , X N ) requires a product-sum operation, including the calculation of the product.
- FIG. 12 schematically shows an example of a multiprocessor configuration.
- the plurality of calculation nodes in FIG. 12 correspond to, for example, a plurality of calculation servers of the information processing system 100.
- the high-speed link in FIG. 12 corresponds to, for example, an interconnect between cables 4a to 4c of the information processing system 100 and a calculation server formed by the switch 5.
- the shared memory in FIG. 12 corresponds to, for example, the shared memory 32.
- the processor of FIG. 12 corresponds to, for example, the processors 33A to 33D of each calculation server.
- FIG. 12 shows the data arranged in each component and the data transferred between the components.
- the values of the variables x i and y i are calculated. Further, between the processor and the shared memory, the variable x i is transferred.
- L of the first vector (x 1 , x 2 , ..., X N ) and the second vector (y 1 , y 2 , ..., Y N ) are stored.
- the variable and a part of the tensor J (n) are saved.
- the first vector (x 1 , x 2 , ..., X N ) is transferred.
- all the elements of the first vector (x 1 , x 2 , ..., X N ) are required to update the variable y i in each processor.
- the simulated branch algorithm may be calculated using the GPU (Graphics Processing Unit).
- FIG. 13 schematically shows an example of a configuration using a GPU.
- FIG. 13 shows a plurality of GPUs connected to each other by a high-speed link.
- Each GPU has a plurality of cores that can access the shared memory.
- a plurality of GPUs are connected via a high-speed link to form a GPU cluster.
- the high speed link corresponds to an interconnect between the compute servers formed by the cables 4a-4c and the switch 5.
- a plurality of GPUs are used in the configuration example of FIG. 13, parallel calculations can be executed even when one GPU is used. That is, each GPU in FIG. 13 can execute the calculation corresponding to each calculation node in FIG. That is, the processor (processing circuit) of the information processing device (calculation server) may be the core of the Graphics Processing Unit (GPU).
- the processor processing circuit
- the information processing device may be the core of the Graphics Processing Unit (GPU).
- the variables x i and y i , and the tensor J (n) are defined as device variables.
- the GPU can calculate the product of the tensor J (n) required to update the variable y i and the first vector (x 1 , x 2 , ..., X N ) in parallel by the matrix vector product function. it can.
- the product of the tensor and the vector can be obtained by repeatedly executing the product operation of the matrix and the vector.
- the calculation of the first vector (x 1 , x 2 , ..., X N ) and the part of the second vector (y 1 , y 2 , ..., y N ) other than the multiply-accumulate operation. is, i-th element in each thread (x i, y i) to execute the update processing, it is possible to realize parallel processing.
- the information processing device may include a plurality of processing circuits.
- each processing circuit may be configured to update at least a part of the first vector and at least a part of the second vector in parallel.
- each processing circuit may be configured to update at least a part of the first vector and at least a part of the second vector in parallel.
- FIG. 14 shows an example of the overall processing executed to solve the combinatorial optimization problem. Hereinafter, the process will be described with reference to FIG.
- the combinatorial optimization problem is formulated (step S201). Then, the formulated combinatorial optimization problem is converted into an Ising problem (Ising model format) (step S202). Next, the solution of the Ising problem is calculated by the Ising machine (information processing device) (step S203). Then, the calculated solution is verified (step S204). For example, in step S204, it is confirmed whether or not the constraint condition is satisfied. Further, in step S204, the value of the objective function may be referred to to confirm whether or not the obtained solution is the optimum solution or an approximate solution close to it.
- step S205 it is determined whether or not to recalculate according to at least one of the verification result in step S204 and the number of calculations. If it is determined that the recalculation is to be performed (YES in step S205), the processes of steps S203 and S204 are executed again. On the other hand, when it is determined not to recalculate (NO in step S205), a solution is selected (step S206). For example, in step S206, selection can be made based on at least either the satisfaction of the constraints or the value of the objective function. If a plurality of solutions have not been calculated, the process of step S206 may be skipped. Finally, the selected solution is converted into the solution of the combinatorial optimization problem, and the solution of the combinatorial optimization problem is output (step S207).
- the present invention is not limited to the above embodiment as it is, and at the implementation stage, the components can be modified and embodied within a range that does not deviate from the gist thereof.
- various inventions can be formed by an appropriate combination of the plurality of components disclosed in the above-described embodiment. For example, some components may be removed from all the components shown in the embodiments. In addition, components across different embodiments may be combined as appropriate.
- Management server 2 Network 3a, 3b, 3c Calculation server 4a, 4b, 4c Cable 5 Switch 6 Client terminal 10 Processor 11 Management unit 12 Conversion unit 13 Control unit 14 Storage unit 14A Problem data 14B Calculation data 14C Management program 14D Conversion program 14E , 34C Control program 15, 31 Communication circuit 16 Input circuit 17 Output circuit 18 Operation device 19 Display device 20 Bus 32 Shared memory 33A, 33B, 33C, 33D Processor 34 Storage 34A Calculation data 34B Calculation program 35 Host bus adapter
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Databases & Information Systems (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Complex Calculations (AREA)
Abstract
Description
上述の図6のフローチャートにおいて、時間ステップΔtとして固定値を使うことができる。ただし、必ず固定値の時間ステップΔtを使わなくてもよい。例えば、Δtを可変時間ステップにしてもよい。可変時間ステップを使ってシミュレーテッド分岐アルゴリズムの計算を行うことにより、計算時間の抑制および/または計算精度の改善を実現することができる。
シミュレーテッド分岐アルゴリズムの実行時に可変時間ステップを使う場合、計算精度への影響を考慮して時間ステップΔtの更新方法を決めることが望まれる。例えば、ループ処理のイタレーション間における時間ステップΔtの変化量が大きくなると、計算処理の安定性が損なわれるおそれがある。このような場合の例を、下記の図8および図9を用いて説明する。
シミュレーテッド分岐アルゴリズムを使うことにより、3次以上の目的関数を有する組合せ最適化問題を解くことも可能である。2値変数を変数とする3次以上の目的関数を最小化する変数の組合せを求める問題は、HOBO(Higher Order Binary Optimization)問題とよばれる。HOBO問題を扱う場合、高次へ拡張されたイジングモデルにおけるエネルギー式として、下記の式(11)を使うことができる。
ここでは、シミュレーテッド分岐アルゴリズムの変形例について説明する。例えば、誤差の軽減または計算時間の短縮を目的に、上述のシミュレーテッド分岐アルゴリズムに各種の変形を行ってもよい。
以下では、シミュレーテッド分岐アルゴリズムの計算時における変数の更新処理の並列化の例について説明する。
以下では、シミュレーテッド分岐アルゴリズムを用いて組合せ最適化問題を解くために実行される全体的な処理を説明する。
2 ネットワーク
3a、3b、3c 計算サーバ
4a、4b、4c ケーブル
5 スイッチ
6 クライアント端末
10 プロセッサ
11 管理部
12 変換部
13 制御部
14 記憶部
14A 問題データ
14B 計算データ
14C 管理プログラム
14D 変換プログラム
14E、34C 制御プログラム
15、31 通信回路
16 入力回路
17 出力回路
18 操作装置
19 表示装置
20 バス
32 共有メモリ
33A、33B、33C、33D プロセッサ
34 ストレージ
34A 計算データ
34B 計算プログラム
35 ホストバスアダプタ
Claims (18)
- 第1ベクトルの要素である第1変数および第2ベクトルの要素である第2変数を記憶するように構成された記憶部と、
第1係数で重み付けした前記第2変数を時間ステップで乗算し、対応する前記第1変数に加算することによって前記第1変数を更新し、
前記第1変数を、前記時間ステップおよび第2係数で重み付けし対応する前記第2変数に加算し、複数の前記第1変数を用いて問題項を計算し、前記時間ステップを乗じた前記問題項を前記第2変数に加算することによって前記第2変数を更新し、
前記時間ステップを更新し、
前記第2係数を更新回数に応じて単調増加または単調減少させるように構成された処理回路とを備える、
情報処理装置。 - 前記処理回路は、前記第1変数または前記第2変数の少なくともいずれかに基づいて第1候補値および第2候補値を計算し、前記第1候補値および前記第2候補値の平均値を前記時間ステップとして使い前記第1変数および前記第2変数を更新し、更新後の前記第1変数または前記第2変数の少なくともいずれかに基づいて前記第2候補値を更新し、再計算した前記平均値を前記時間ステップとして使い前記第1変数および前記第2変数を再び更新するように構成されている、
請求項1に記載の情報処理装置。 - 前記処理回路が計算する前記第1候補値または前記第2候補値の少なくともいずれかは、は、前記第1変数の2次関数に反比例している、
請求項2に記載の情報処理装置。 - 前記処理回路は、更新後の前記第2候補値と更新前の前記第2候補値との差が第1しきい値未満であると判定された後に、前記第2係数を更新するように構成されている、
請求項2または3に記載の情報処理装置。 - 前記処理回路は、前記平均値を時間ステップとして使って前記第1変数および前記第2変数を更新する処理、前記第2候補値を更新する処理および前記平均値を再計算する処理の繰り返し回数が第2しきい値を超えた後に、前記第2係数を更新するように構成されている、
請求項2ないし4のいずれか一項に記載の情報処理装置。 - 前記処理回路は、前記第1変数の更新処理を2回に分けて実行し、前記第1変数の1回目の更新処理と、前記第1変数の2回目の更新処理との間に前記第2変数の更新処理を実行するように構成されている、
請求項2ないし5のいずれか一項に記載の情報処理装置。 - 前記処理回路における前記1回目の更新処理と、前記2回目の更新処理において、前記第1変数に加算される値が等しく設定されている、
請求項6に記載の情報処理装置。 - 前記処理回路は、前記第1ベクトルに基づいて目的関数の値を計算し、前記記憶部に前記目的関数の値を保存するように構成されている、
請求項1に記載の情報処理装置。 - 前記処理回路は、前記記憶部より異なるイタレーションで計算された前記目的関数の値を読み出し、複数の前記目的関数の値に基づいて、前記時間ステップを更新するように構成されている、
請求項8に記載の情報処理装置。 - 前記処理回路が計算する前記問題項は、イジングモデルに基づいている、
請求項1ないし9のいずれか一項に記載の情報処理装置。 - 前記処理回路が計算する前記問題項は、多体相互作用を含んでいる、
請求項10に記載の情報処理装置。 - 複数の前記処理回路を備え、
それぞれの前記処理回路は、並列的に前記第1ベクトルの少なくとも一部および前記第2ベクトルの少なくとも一部を更新するように構成されている、
請求項1ないし11のいずれか一項に記載の情報処理装置。 - それぞれの前記処理回路は、並列的に前記問題項の少なくとも一部の計算処理を実行するように構成されている、
請求項12に記載の情報処理装置。 - 第1ベクトルの要素である第1変数および第2ベクトルの要素である第2変数を記憶するように構成された記憶装置と、
第1係数で重み付けした前記第2変数を時間ステップで乗算し、対応する前記第1変数に加算することによって前記第1変数を更新し、
前記第1変数を、前記時間ステップおよび第2係数で重み付けし対応する前記第2変数に加算し、複数の前記第1変数を用いて問題項を計算し、前記時間ステップを乗じた前記問題項を前記第2変数に加算することによって前記第2変数を更新し、
前記時間ステップを更新し、
前記第2係数を更新回数に応じて単調増加または単調減少させるように構成された情報処理装置とを備える、
情報処理システム。 - 複数の前記情報処理装置を備え、
それぞれの前記情報処理装置は、並列的に前記第1ベクトルの少なくとも一部および前記第2ベクトルの少なくとも一部を更新するように構成されている、
請求項14に記載の情報処理システム。 - 第1変数を要素とする第1ベクトルおよび前記第1変数に対応する第2変数を要素とする第2ベクトルを繰り返し更新する情報処理方法であって、
第1係数で重み付けした前記第2変数を時間ステップで乗算し、対応する前記第1変数に加算することによって前記第1変数を更新するステップと、
前記第1変数を、前記時間ステップおよび第2係数で重み付けし対応する前記第2変数に加算し、複数の前記第1変数を用いて問題項を計算し、前記時間ステップを乗じた前記問題項を前記第2変数に加算することによって前記第2変数を更新するステップと、
前記時間ステップを更新するステップと、
前記第2係数を更新回数に応じて単調増加または単調減少させるステップとを含む、
情報処理方法。 - コンピュータに第1変数を要素とする第1ベクトルおよび前記第1変数に対応する第2変数を要素とする第2ベクトルを繰り返し更新させるプログラムであって、
第1係数で重み付けした前記第2変数を時間ステップで乗算し、対応する前記第1変数に加算することによって前記第1変数を更新するステップと、
前記第1変数を、前記時間ステップおよび第2係数で重み付けし対応する前記第2変数に加算し、複数の前記第1変数を用いて問題項を計算し、前記時間ステップを乗じた前記問題項を前記第2変数に加算することによって前記第2変数を更新するステップと、
前記時間ステップを更新するステップと、
前記第2係数を更新回数に応じて単調増加または単調減少させるステップとを含む処理を前記コンピュータに実行させる、
プログラムを格納している、
非一時的なコンピュータ可読な記憶媒体。 - コンピュータに第1変数を要素とする第1ベクトルおよび前記第1変数に対応する第2変数を要素とする第2ベクトルを繰り返し更新させるプログラムであって、
第1係数で重み付けした前記第2変数を時間ステップで乗算し、対応する前記第1変数に加算することによって前記第1変数を更新するステップと、
前記第1変数を、前記時間ステップおよび第2係数で重み付けし対応する前記第2変数に加算し、複数の前記第1変数を用いて問題項を計算し、前記時間ステップを乗じた前記問題項を前記第2変数に加算することによって前記第2変数を更新するステップと、
前記時間ステップを更新するステップと、
前記第2係数を更新回数に応じて単調増加または単調減少させるステップとを含む処理を前記コンピュータに実行させる、
プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA3135147A CA3135147A1 (en) | 2019-03-28 | 2020-03-30 | Information processing device, information processing system, information processing method, storage medium, and program |
JP2021509697A JP7474242B2 (ja) | 2019-03-28 | 2020-03-30 | 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム |
US17/487,719 US20220019715A1 (en) | 2019-03-28 | 2021-09-28 | Information processing device, information processing system, information processingmethod, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019064277 | 2019-03-28 | ||
JP2019-064277 | 2019-03-28 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/487,719 Continuation US20220019715A1 (en) | 2019-03-28 | 2021-09-28 | Information processing device, information processing system, information processingmethod, and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020196915A1 true WO2020196915A1 (ja) | 2020-10-01 |
Family
ID=72608837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/014633 WO2020196915A1 (ja) | 2019-03-28 | 2020-03-30 | 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220019715A1 (ja) |
JP (1) | JP7474242B2 (ja) |
CA (1) | CA3135147A1 (ja) |
WO (1) | WO2020196915A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017073106A (ja) * | 2015-10-07 | 2017-04-13 | 株式会社東芝 | 量子計算装置、及び、方法 |
-
2020
- 2020-03-30 CA CA3135147A patent/CA3135147A1/en active Pending
- 2020-03-30 JP JP2021509697A patent/JP7474242B2/ja active Active
- 2020-03-30 WO PCT/JP2020/014633 patent/WO2020196915A1/ja active Application Filing
-
2021
- 2021-09-28 US US17/487,719 patent/US20220019715A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017073106A (ja) * | 2015-10-07 | 2017-04-13 | 株式会社東芝 | 量子計算装置、及び、方法 |
Non-Patent Citations (2)
Title |
---|
GOTO, HAYATO: "Bifurcation-based adiabatic quantum computation with a nonlinear oscillator network", SCIENTIFIC REPORTS, vol. 6, 21686, 22 February 2016 (2016-02-22), pages 1 - 8, XP055744351, Retrieved from the Internet <URL:https://www.nature.com/articles/srep21686.pdf> [retrieved on 20200601] * |
ITO,DAISUKE ET AL.: "Bifurcation phenomena of the Ising network with a bipolar logistic chaos neuron.", IEICE TECHNICAL REPORT, vol. 115, no. 268, 18 October 2015 (2015-10-18), pages 59 - 62, ISSN: 0913-5685 * |
Also Published As
Publication number | Publication date |
---|---|
US20220019715A1 (en) | 2022-01-20 |
CA3135147A1 (en) | 2020-10-01 |
JP7474242B2 (ja) | 2024-04-24 |
JPWO2020196915A1 (ja) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220012387A1 (en) | Information processing device, information processing system, information processing method, and storage medium | |
JP7421291B2 (ja) | 情報処理装置、プログラム、情報処理方法、および電子回路 | |
WO2020246073A1 (en) | Information processing device, pubo solver, information processing method and non-transitory storage medium | |
JP7176127B2 (ja) | 量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム | |
US20220012307A1 (en) | Information processing device, information processing system, information processing method, and storage medium | |
WO2020196883A1 (ja) | 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム | |
JP7341965B2 (ja) | 計算装置、計算方法およびプログラム | |
WO2020196915A1 (ja) | 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム | |
WO2020196872A1 (ja) | 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム | |
US11741187B2 (en) | Calculation device, calculation method, and computer program product | |
WO2022249785A1 (ja) | 求解装置、求解方法およびプログラム | |
CN117313884A (zh) | 量子电路处理方法、装置及电子设备 | |
CN117313882A (zh) | 量子电路处理方法、装置及电子设备 | |
CN117313883A (zh) | 量子电路处理方法、装置及电子设备 | |
CN117313878A (zh) | 量子电路处理方法、装置及电子设备 | |
CN117313877A (zh) | 量子电路处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20779065 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021509697 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 3135147 Country of ref document: CA |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20779065 Country of ref document: EP Kind code of ref document: A1 |