Information processing device, information processing method, and program
By using a first storage unit to store coupling coefficients and a second storage unit to manage local fields, the information processing device efficiently addresses the memory access limitations in solving large-scale combinatorial optimization problems, enhancing processing speed.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-31
- Publication Date
- 2026-03-26
AI Technical Summary
Existing information processing devices face limitations in solving large-scale combinatorial optimization problems due to high memory access frequencies when storing and retrieving coupling coefficients, which can slow down the processing speed.
The information processing device employs a first storage unit to store a portion of coupling coefficients, allowing the processing unit to perform trials and updates efficiently, while using a second storage unit to manage local fields and reduce memory access frequency by reusing previously stored data.
This approach speeds up the solution process for large-scale combinatorial optimization problems by reducing memory access frequency and optimizing the use of storage resources.
Smart Images

Figure 0007835978000012 
Figure 0007835978000013 
Figure 0007835978000014
Abstract
Description
[Technical Field]
[0001] This invention relates to an information processing apparatus, an information processing method, and a program. [Background technology]
[0002] Information processing devices are sometimes used to solve combinatorial optimization problems. Combinatorial optimization problems are transformed into the energy function of the Ising model, which is a model that represents the behavior of the spins of magnetic materials. The energy function is sometimes called the evaluation function or objective function. The information processing device, for example, searches for a combination of state variable values that minimizes the value of the energy function. In this case, the combination of state variable values that minimizes the value of the energy function corresponds to the ground state or optimal solution represented by the set of state variables. Methods for obtaining approximate solutions to combinatorial optimization problems in practical time include simulated annealing (SA) and replica exchange methods, which are based on the Markov chain Monte Carlo (MCMC) method.
[0003] For example, there is a proposed information processing system that includes one or more semiconductor chips that perform a ground state search of the Ising model, and uses these semiconductor chips to find the solution to a problem by searching the ground state of the Ising model.
[0004] Another proposed optimization system includes an optimization device with multiple groups of neurons. In this proposal, the optimization device calculates the first change in energy due to the influence of other neurons belonging to a selected group of neurons when the value of a first neuron belonging to that group changes. Meanwhile, a separate processing unit calculates the second change due to the influence of a second neuron that does not belong to that group. Based on the sum of the first and second changes, the optimization device determines whether or not to update the value of the first neuron through probabilistic search, and repeats the update process to update or maintain the value of the first neuron based on the result of the determination of whether or not to update.
[0005] Furthermore, there is a proposed sampling device having multiple update circuits that calculate the change in the value of the energy function based on the local field corresponding to the candidate state variables selected in a predetermined order, and change the value of the candidate state variables according to the change. The proposed sampling device reads the coupling coefficient between one candidate state variable and another from a memory that stores the coupling coefficients for all pairs of two state variables each time one of the candidate state variables is selected, and stores it in the memory of each of the multiple update circuits. When the value of one of the candidate state variables is changed, the update circuit updates the local field of the other state variable using the coupling coefficient. [Prior art documents] [Patent Documents]
[0006] [Patent Document 1] Japanese Patent Publication No. 2016-51350 [Patent Document 2] Japanese Patent Publication No. 2019-139323 [Patent Document 3] Japanese Patent Publication No. 2020-204929 [Overview of the project] [Problems that the invention aims to solve]
[0007] As described above, the information processing device uses coupling coefficients for each pair of state variables to search for solutions to combinatorial optimization problems. In this case, the solution search can be sped up by storing the coupling coefficients in a memory unit used as a cache, which can be accessed relatively quickly by the arithmetic unit that updates the values of the state variables.
[0008] However, the memory unit may have a relatively small capacity and may not be able to store all the coupling coefficients in it. In this case, all the coupling coefficients can be stored in a memory device that has a relatively large capacity but is accessed more slowly by the arithmetic unit than the memory unit. In this case, for example, as proposed above, a method can be considered in which, each time one of the next candidate state variables is selected, the arithmetic unit reads the coupling coefficients related to that state variable from the memory device and stores it in the memory unit, and uses it to update the value of that state variable. However, with this method, the frequency of reading from the memory device that holds all the coupling coefficients becomes high, which may limit the processing speed of solving the problem.
[0009] In one aspect, the present invention aims to speed up the solution of large-scale problems. [Means for solving the problem]
[0010] In one embodiment, an information processing device is provided that searches for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of state variables in the plurality of state variables. The information processing device has a first storage unit and a processing unit. The first storage unit stores a portion of the plurality of coupling coefficients. The processing unit reads a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables in the trial target portion, which is the portion of the plurality of state variables that is the subject of trials to determine whether or not to update the value, from a storage device that stores a plurality of coupling coefficients and stores them in the first storage unit. Using the plurality of first coupling coefficients stored in the first storage unit, the processing unit performs a plurality of trials to determine whether or not to update the value of any of the first state variables belonging to the trial target portion. The processing unit makes the entire plurality of state variables the subject of trials by repeatedly changing the trial target portion and performing the said process. The information processing device further has a second storage unit that stores the values of multiple state variables and multiple local fields corresponding to the multiple state variables, which are used to calculate the amount of change in the value of the energy function in response to changes in the values of the state variables. The processing unit reads multiple second coupling coefficients corresponding to multiple second pairs of multiple first state variables and multiple second state variables that do not belong to the trial target part from the storage device, along with multiple first coupling coefficients, and stores them in the first storage unit. In the trial, based on the local field corresponding to the first state variable among the multiple local fields, it calculates the amount of change in the value of the energy function when the value of the first state variable changes, updates the value of the first state variable according to the amount of change, updates the multiple first local fields corresponding to the multiple first state variables among the multiple local fields based on the first coupling coefficient corresponding to the updated first state variable, and updates the multiple second local fields corresponding to the multiple second state variables among the multiple local fields based on the second coupling coefficient corresponding to the updated first state variable. In one embodiment, an information processing device is provided that searches for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of state variables in the plurality of state variables. The information processing device has a first storage unit and a processing unit. The first storage unit stores a portion of the plurality of coupling coefficients. The processing unit reads a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables in the trial target portion, which is the portion of the plurality of state variables that is the subject of trials to determine whether or not to update the value, from a storage device that stores a plurality of coupling coefficients and stores them in the first storage unit. Using the plurality of first coupling coefficients stored in the first storage unit, the processing unit performs a plurality of trials to determine whether or not to update the value of any of the first state variables belonging to the trial target portion. The processing unit makes the entire plurality of state variables the subject of trials by repeatedly changing the trial target portion and performing the said process. The information processing device further includes a third storage unit that stores the values of multiple first state variables and multiple first local fields corresponding to the multiple first state variables, which are used to calculate the amount of change in the value of the energy function in response to changes in the values of the multiple first state variables. The processing unit has access to a fourth storage unit that stores the values of multiple state variables and multiple second local fields corresponding to the multiple state variables.When the trial target portion is changed, the processing unit reads from the memory device multiple second coupling coefficients corresponding to multiple second pairs of first difference state variables, each of which is included in the previous trial target portion but not in the current trial target portion, along with multiple first coupling coefficients, and stores them in the first memory unit. The first value of the first difference state variable stored in the third memory unit updates the second value of the first difference state variable stored in the fourth memory unit. Based on the difference between the values before and after the update of the second value and the multiple second coupling coefficients, the processing unit updates multiple second local fields stored in the fourth memory unit. The third value of the second difference state variable, which is included in the current trial target portion but not in the previous trial target portion, is obtained from the fourth memory unit and stored in the third memory unit. Based on the difference between the fourth value of each of the multiple first state variables and the fifth value corresponding to each of the multiple first state variables stored in the fourth memory, the second local field of the second difference state variable stored in the fourth memory, and the multiple first coupling coefficients stored in the first memory, the local field for the second difference state variable is calculated and stored in the third memory. In the trial, based on the first local field corresponding to the first state variable belonging to the trial target portion among the multiple first local fields stored in the third memory, the change in the value of the energy function when the value of the first state variable changes is calculated, the value of the first state variable stored in the third memory is updated according to the change, and when the value of the first state variable is updated, the multiple first local fields stored in the third memory are updated based on the first coupling coefficients corresponding to the updated first state variable.
[0011] In one embodiment, an information processing method is provided. In another embodiment, a program is provided. [Effects of the Invention]
[0012] In one respect, it can speed up the process of solving large-scale problems. [Brief explanation of the drawing]
[0013] [Figure 1] This is a diagram illustrating the information processing device of the first embodiment. [Figure 2] This figure shows an example of the hardware of a data processing device according to the second embodiment. [Figure 3] This figure shows an example of accelerator card hardware. [Figure 4] This figure shows an example of the functions of the arithmetic unit. [Figure 5] This figure shows an example of a coupling coefficient matrix. [Figure 6] This figure shows an example of reading out the coupling coefficients. [Figure 7] This is a flowchart showing an example of processing by the arithmetic unit. [Figure 8] This figure shows an example of a parallel trial execution unit. [Figure 9] This figure shows an example of a selection section using the PNS RF method. [Figure 10] This figure shows an example of reading the coupling coefficients in the third embodiment. [Figure 11] This figure shows an example of the search unit. [Figure 12] This figure shows an example of the relationship between internal variables and global variables. [Figure 13] This figure shows an example of the functions of the arithmetic unit. [Figure 14] This figure shows an example of a coefficient data stream generation. [Figure 15] This figure shows the first example of a coefficient data stream. [Figure 16] This figure shows a second example of a coefficient data stream. [Figure 17] This figure shows an example of an energy calculation. [Figure 18] This figure shows the first example of updating an internal variable. [Figure 19] This figure shows a second example of updating internal variables. [Figure 20] This figure shows a third example of updating internal variables. [Figure 21] This flowchart shows an example of updating multiple rows. [Figure 22] This figure shows an example of a timing chart. [Figure 23] This is a diagram showing a modified example of a computing device. [Modes for carrying out the invention]
[0014] This embodiment will be described below with reference to the drawings. [First Embodiment] A first embodiment will be described.
[0015] Figure 1 is a diagram illustrating the information processing device of the first embodiment. The information processing device 10 searches for a solution to a combinatorial optimization problem using the MCMC method and outputs the searched solution. For example, the information processing device 10 uses the SA method or the replica exchange method, which are based on the MCMC method, to search for a solution. The information processing device 10 has a storage unit 11 and a processing unit 12.
[0016] The memory unit 11 is, for example, SRAM (Static Random Access Memory). The processing unit 12 may be an electronic circuit such as a CPU (Central Processing Unit), DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), or GPU (Graphics Processing Unit). The processing unit 12 may also be a processor that executes programs. "Processor" may include a collection of multiple processors (multiprocessor).
[0017] The information processing device 10 is connected to the storage device 20. The storage capacity of the storage device 20 is greater than the storage capacity of the storage unit 11. The storage device 20 is, for example, DRAM (Dynamic Random Access Memory). The processing unit 12 can access the storage unit 11 at a higher speed than it can access the storage device 20. The storage unit 11 may be built into the processing unit 12. The storage device 20 may also be included in the information processing device 10.
[0018] Here, the combinatorial optimization problem is formulated using an Ising-type energy function and can be replaced, for example, with the problem of minimizing the value of the energy function. The energy function may also be called the objective function or evaluation function. The energy function contains multiple state variables. The state variables are binary variables that take values of 0 or 1. The state variables may also be called bits. The values of the multiple state variables represent the state of the Ising model. The solution to the combinatorial optimization problem is represented by the values of the multiple state variables. The solution that minimizes the value of the energy function represents the ground state of the Ising model and corresponds to the optimal solution of the combinatorial optimization problem. The value of the energy function is called energy.
[0019] The Ising-type energy function is given by equation (1).
[0020]
number
[0021] The state vector x consists of a plurality of state variables and represents the state of the Ising model. Equation (1) is an energy function formulated in the QUBO (Quadratic Unconstrained Binary Optimization) form. In the case of a problem of maximizing the energy, the sign of the energy function may be reversed.
[0022] The first term on the right side of Equation (1) is the sum of the products of the values of two state variables and the coupling coefficient for all combinations of two state variables that can be selected from all state variables without omission or duplication. The subscripts i and j are the indices of the state variables. x i is the i-th state variable. x j is the j-th state variable. W ij is the weight between the i-th state variable and the j-th state variable, or the coupling coefficient indicating the strength of the coupling. W ij = W ji and W ii = 0.
[0023] The second term on the right side of Equation (1) is the sum of the products of the bias of each state variable and the value of the state variable. b i indicates the bias for the i-th state variable. In Equation (1), when the value of the state variable x i changes to 1 - x i , the increase in x i is Δx i = (1 - x i ) - x i = 1 - 2x i . The change in energy ΔE i accompanying the change in x i is expressed by Equation (2).
[0024]
Equation
[0025] h iThis is called a local field and is represented by equation (3). A local field is sometimes also called a local field (LF).
[0026]
number
[0027] State variable x j The local field h when it changes i Change Δh i (j) This is expressed by equation (4).
[0028]
number
[0029] State variable x j When the value changes, the change Δh i (j) h i By adding to x, j h corresponds to the state after the value has changed. i This is obtained. The values of each of the multiple state variables and the multiple local fields corresponding to the multiple state variables are stored in the variable storage unit of the information processing device 10. In Figure 1, the variable storage unit is not shown. The variable storage unit may also be a register inside the processing unit 12.
[0030] In the search for the ground state, the energy change is ΔE i A state transition such that, i.e., state variable x i The Metropolis method and the Gibbs method are used to determine whether or not to allow changes in the value of ΔE. That is, in a nearest neighbor search that searches for transitions from a given state to another state with lower energy, not only transitions to states with lower energy but also transitions to states with higher energy are probabilistically allowed. For example, the energy change ΔE i Probability A of accepting a change in the value of the state variable i This is expressed by equation (5).
[0031]
Number
[0032] β is the reciprocal of the temperature value T (T > 0) (β = 1 / T) and is called the inverse temperature. The min operator indicates taking the minimum value among the arguments. The upper side of the right side of Equation (5) corresponds to the Metropolis method. The lower side of the right side of Equation (5) corresponds to the Gibbs method. The processing unit 12 compares a uniform random number u where 0 < u < 1 with A i and if u < A i then it accepts the change in the value of the state variable x i and changes the value of the state variable x i The processing unit 12, if u < A i is not true, does not accept the change in the value of the state variable x i and does not change the value of the state variable x i According to Equation (5), the larger the value of ΔE i , the smaller A i becomes. Also, the smaller β is, that is, the larger T is, the more easily state transitions with a large ΔE i are allowed. Thus, the processing unit 12 repeats the attempt to change any state variable based on Equation (5) or not, thereby transitioning the state of the Ising model and searching for a solution.
[0033] For example, the processing unit 12 may select one state variable of the change candidate values of the state variable one by one in order or randomly, perform a determination based on Equation (5), and update the value of the state variable when the change in the value of the state variable of the change candidate is allowed by the determination, thereby searching for a solution. Alternatively, the processing unit 12 may perform the determination based on Equation (5) in parallel for a plurality of state variables and search for a solution by updating the value of any state variable based on the results of the parallel determination.
[0034] Here, the entire set of coupling coefficients included in the energy function, that is, the multiple coupling coefficients corresponding to all pairs of state variables in multiple state variables, are stored in the memory device 20. On the other hand, the capacity of the storage unit 11 is relatively small and cannot hold the entire set of coupling coefficients. Therefore, the processing unit 12 reads out a portion of the coupling coefficients stored in the memory device 20 and stores them in the storage unit 11, and uses them to solve the problem expressed by the energy function.
[0035] In other words, the processing unit 12 reads from the storage device 20 and stores in the storage unit 11 multiple first coupling coefficients corresponding to multiple first pairs of first state variables belonging to the trial target portion, which is the portion of the multiple state variables that are the subject of trials to determine whether or not to update their values. The processing unit 12 uses the multiple first coupling coefficients stored in the storage unit 11 to perform multiple trials to determine whether or not to update the value of any of the first state variables belonging to the trial target portion. Here, the process of reading multiple first coupling coefficients from the storage device 20 and storing them in the storage unit 11 for a given trial target portion, and then performing multiple trials to determine whether or not to update the value of any of the state variables belonging to the trial target portion using these first coupling coefficients, is considered one processing unit. The processing unit 12 changes the trial target portion and repeats this process to make the entire set of multiple state variables the subject of trials.
[0036] For example, the entire set of coupling coefficients stored in the memory device 20 corresponds to the coupling coefficient matrix 21. As an example, let m be the number of state variables belonging to the trial portion, where m is an integer greater than or equal to 2. The total number of state variables is N, where N is an integer greater than m. The range of the state variable indices is 1 to N. In this case, the coupling coefficient matrix 21 is an N x N matrix.
[0037] For example, the part being tested at a certain point in time is the state variable x k ~x k+m-1Assume that this is the case. In this case, the multiple first connection coefficients held in the memory unit 11 correspond to part 21a of the connection coefficient matrix 21. The range of row index and column index of the first connection coefficients belonging to part 21a is both k to k+m-1. The processing unit 12 uses the multiple first connection coefficients belonging to part 21a to calculate x k ~x k+m-1 The system performs multiple trials to determine whether or not to update the value of one of the state variables.
[0038] Then, the processing unit 12 changes the part under trial. In one example, the processing unit 12 changes the part under trial to a state variable x k+1 ~x k+m The following change is made. After this change, the multiple first coupling coefficients held in the storage unit 11 correspond to part 21b of the coupling coefficient matrix 21. The range of row index and column index of the first coupling coefficients belonging to part 21b is both k+1 to k+m. In this case, the processing unit 12 does not need to read the coupling coefficients from the storage device 20 of the part of part 21b that overlaps with part 21a which has already been read into the storage unit 11. Also, as mentioned above, W ij =W ji Therefore, the processing unit 12 reads the coupling coefficients of row index k+m and column index k+1 to k+m from the storage device 20 to obtain a plurality of first coupling coefficients belonging to part 21b. Then, the processing unit 12 uses the plurality of first coupling coefficients belonging to part 21b to x k+1 ~x k+m The system performs multiple trials to determine whether or not to update the value of any of the state variables belonging to that category.
[0039] Although the example shown assumes that the index of the state variable in the trial section is continuous, the index may be discontinuous. Also, although the example shown assumes that only one state variable is added to the trial section in a single modification, multiple state variables may be added to the trial section.
[0040] By the way, updating the value of a state variable involves updating the local field of other state variables, as described above. The processing unit 12 may update the value of a state variable and the local field corresponding to that state variable by the following first or second method.
[0041] (Method 1) In the first method, the processing unit 12 reads from the storage device 20 multiple second coupling coefficients corresponding to multiple pairs of multiple first state variables belonging to the trial part and multiple second state variables not belonging to the trial part, along with multiple first coupling coefficients. The processing unit 12 stores the multiple first coupling coefficients and the multiple second coupling coefficients in the storage unit 11. For example, the trial part is a state variable x k+1 ~x k+m In this case, the multiple second bond coefficients correspond to parts 21c and 21d of the bond coefficient matrix 21. The row index range of the second bond coefficients belonging to part 21c is k+1 to k+m, and the column index range is 1 to k. The row index range of the second bond coefficients belonging to part 21d is k+1 to k+m, and the column index range is k+m+1 to N. Note that although an example is shown where the indices of the state variables in the trial portion are mapped to the row indices of the bond coefficient matrix 21, they may also be mapped to the column indices of the bond coefficient matrix 21.
[0042] The processing unit 12 then performs a trial to determine whether or not to update the value of any of the state variables belonging to the trial section, as follows: Based on the local field corresponding to the first state variable belonging to the trial section, the processing unit 12 calculates the amount of energy change when the value of the first state variable changes, and updates the value of the first state variable according to equation (5) in accordance with the amount of change. When the processing unit 12 updates the value of the first state variable, it updates the local field corresponding to each of the multiple first state variables belonging to the trial section based on the first coupling coefficient corresponding to the updated first state variable. The processing unit 12 also updates the local field corresponding to each of the multiple second state variables not belonging to the trial section based on the second coupling coefficient corresponding to the updated first state variable.
[0043] For example, the processing unit 12 processes the state variable x k+1 ~x k+m The first state variable x corresponds to index j among them. j The value of is updated. Then, the processing unit 12, based on the first bond coefficient included in the row of row index j of part 21b, updates the state variable x k+1 ~x k+m The local fields corresponding to each are updated. Furthermore, the processing unit 12 updates the state variables x1~x based on the second bond coefficient included in the row of row index j among the parts 21c and 21d. k ,x k+m+1 ~x N The local fields corresponding to each are updated.
[0044] Thus, the processing unit 12 may, for example, read parts 21c and 21d of the coupling coefficient matrix 21, along with part 21b, from the memory device 20 and store them in the storage unit 11, and update the local fields of all other state variables in accordance with the update of the values of the state variables belonging to the trial target part. The storage unit 11 may also be called the first storage unit. Furthermore, in the first method, the variable storage unit that stores the values of multiple state variables and the multiple local fields corresponding to the multiple state variables may also be called the second storage unit. This concludes the explanation of the first method.
[0045] (Second method) In the second method, the information processing device 10 has an internal variable storage unit and a global variable storage unit as the variable storage unit described above. The internal variable storage unit stores multiple state variables x1~x N The global variable storage unit stores the values of multiple first state variables belonging to the trial target portion and multiple first local fields corresponding to the multiple first state variables. N The value of and multiple second local fields corresponding to the multiple state variables are stored.
[0046] Then, the processing unit 12 modifies the trial target portion as follows: The processing unit 12 reads from the storage device 20, along with the multiple first coupling coefficients, multiple third coupling coefficients corresponding to multiple pairs of first difference state variables that were included in the previous trial target portion but are not included in the current trial target portion and multiple other state variables, and stores them in the storage unit 11. For example, the previous trial target portion is state variable x k ~x k+m-1 The part being tested in this trial is the state variable x k+1 ~x k+m Assume this is the case. In this case, the state variable x k This corresponds to the state variable of the first difference. In one example, the multiple third coupling coefficients that the processing unit 12 reads from the storage device 20 correspond to parts 21e and 21f of the coupling coefficient matrix 21. The row index of the third coupling coefficient belonging to part 21e is k, and the range of the column index is 1 to k-1. The row index of the third coupling coefficient belonging to part 21f is k, and the range of the column index is k+m to N. In this case, the processing unit 12 can reuse the coupling coefficients with row index k and column index k to k+m-1 in part 21a that were held in the storage unit 11 for the previous trial target part as the third coupling coefficients.
[0047] The processing unit 12 updates the second value of the first difference state variable stored in the global variable storage unit using the first value of the first difference state variable stored in the internal variable storage unit. The processing unit 12 updates a plurality of second local fields stored in the global variable storage unit based on the difference between the values before and after the update of the second value and a plurality of third coupling coefficients.
[0048] For example, if the state variable of the first difference is x k In this case, the processing unit 12 stores the state variable x in the internal variable storage unit. k The state variable x is stored in the global variable storage based on its first value. k The second value of is updated. The processing unit 12 updates the state variable x in the global variable storage unit. kBased on the difference between the values before and after the update and the third coupling coefficient corresponding to the row at row index k, the second local field of all state variables stored in the global variable memory is updated. This updates the state variable x k The state variable x while it was held in the internal variable storage k Changes in the value of are reflected in all second local fields held in the global variable memory.
[0049] Furthermore, the processing unit 12 retrieves a third value of the second difference state variable, which is not included in the previous trial target portion but is included in the current trial target portion, from the global variable storage unit and stores it in the internal variable storage unit. For example, the previous trial target portion is the state variable x k ~x k+m-1 The part being tested in this trial is the state variable x k+1 ~x k+m If so, the state variable x k+m This corresponds to the state variable of the second difference.
[0050] Furthermore, the processing unit 12 calculates the first local field for the newly added second difference state variable in the internal variable storage unit and stores it in the internal variable storage unit. The processing unit 12 finds the difference between the fourth value of each of the multiple first state variables stored in the internal variable storage unit and the fifth value of each of the same multiple first state variables stored in the global variable storage unit. Based on the difference in the values of each first state variable found, the second local field of the second difference state variable stored in the global variable storage unit, and the multiple first coupling coefficients stored in the storage unit 11, the processing unit 12 calculates the first local field for the second difference state variable. As a result, the processing unit 12 can match the local field of the newly added second difference state variable in the internal variable storage unit with the value of the state variable held in the internal variable storage unit.
[0051] When the processing unit 12 changes the trial target portion of the multiple state variables, it performs a trial to determine whether or not to update the value of any of the first state variables belonging to the changed trial target portion, as follows: The processing unit 12 calculates the amount of energy change when the value of the first state variable changes, based on the first local field corresponding to the first state variable belonging to the trial target portion, and updates the value of the first state variable based on equation (5) according to the amount of change. When the processing unit 12 updates the value of the first state variable, it updates the multiple first local fields corresponding to the multiple first state variables stored in the internal variable storage unit, based on the first coupling coefficient corresponding to the updated first state variable stored in the storage unit 11.
[0052] Thus, the processing unit 12 may read parts 21e and 21f of the coupling coefficient matrix 21, along with part 21b, from the memory device 20 and store them in the storage unit 11. Then, the processing unit 12 may update the second local field in the global variable storage unit that corresponds to the state variables other than the part being tested in this trial, based on parts 21e and 21f. The processing unit 12 may update the second local field in the global variable storage unit in parallel with the trial based on the information stored in the internal variable storage unit.
[0053] Furthermore, as described above, when the processing unit 12 reads the third coupling coefficients from the storage device 20, it may exclude from reading the coupling coefficients corresponding to pairs of the first difference state variable and other state variables that belonged to the trial target when the first difference state variable was added to the trial target. This reduces the memory bandwidth for reading from the storage device 20 compared to reading the entire row of row index k related to the first difference state variable from the storage device 20. However, the processing unit 12 may also read the entire row of row index k as the third coupling coefficient from the storage device 20. In this case, the processing unit 12 only needs to read the row of row index k in the coupling coefficient matrix 21 and store it in the storage unit 11. Therefore, although the memory bandwidth for reading from the storage device 20 increases, the processing unit 12 does not need to process the data of the row at the time of reading, and the reading of the third coupling coefficient can be sped up.
[0054] Furthermore, the global variable storage unit may be located outside the information processing device 10. For example, the global variable storage unit may be included in the storage device 20. In this case, the information processing device 10 does not need to provide a storage area equivalent to the global variable storage unit.
[0055] Furthermore, the term "third coupling coefficient" in the second method is a convenient name used to distinguish it from the "second coupling coefficient" in the first method. If distinction is not necessary, the third coupling coefficient in the second method may be referred to as the "second coupling coefficient." The memory unit 11 may also be called the first memory unit. The internal variable memory unit may also be called the third memory unit. The global variable memory unit may also be called the fourth memory unit. This concludes the explanation of the second method.
[0056] As explained above, the information processing device 10 reads multiple first coupling coefficients corresponding to multiple pairs of first state variables belonging to the trial target area from the storage device 20 that stores all coupling coefficients and stores them in the storage unit 11. Using the multiple first coupling coefficients stored in the storage unit 11, it performs multiple trials to determine whether or not to update the value of any of the first state variables belonging to the trial target area. As the trial target area is changed and this process is repeated, the entire set of state variables becomes the subject of the trials.
[0057] In this way, the information processing device 10 can reduce the frequency of access to the storage device 20 by using the first coupling coefficient stored in the memory unit 11 for multiple trials, thereby suppressing the decrease in processing speed caused by access to the storage device 20. As a result, it is possible to speed up the solution of large-scale problems with a relatively large overall size of coupling coefficients.
[0058] Furthermore, as illustrated by the first method, the information processing device 10 may read the second coupling coefficients for each pair of state variables belonging to the trial area and other state variables not belonging to the trial area from the storage device 20 along with the first coupling coefficients and store them in the storage unit 11. In this case, the information processing device 10 can appropriately update the local fields of the other state variables not belonging to the trial area based on the second coupling coefficients.
[0059] Furthermore, as illustrated in the second method, the information processing device 10 may store state variables and local fields in an internal variable storage unit and a global variable storage unit. The information processing device 10 may read the third coupling coefficients for each pair of a first difference state variable and other state variables from the storage device 20 along with the first coupling coefficients and store them in the storage unit 11. In this case, the information processing device 10 can appropriately reflect the change in the value of the first difference state variable while it was held in the internal variable storage unit in the local field held in the global variable storage unit based on the third coupling coefficients. Therefore, when a state variable held in the global variable storage unit is added to the internal variable storage unit and becomes a trial target, the information processing device 10 can appropriately calculate the local field of the state variable based on the information held in the global variable storage unit and the information held in the internal variable storage unit. In other words, the information processing device 10 can appropriately match the local field of a newly added state variable to the internal variable storage unit with the values of other state variables held in the internal variable storage unit.
[0060] Furthermore, in the second method, compared to the first method, the frequency of updating the local field of state variables that do not belong to the trial portion is reduced, thereby reducing the overhead associated with such updates. Moreover, in the second method, the size of the coupling coefficients read into the memory unit 11 can be reduced compared to the first method.
[0061] The processing unit 12 repeats the above process while changing the part of the multiple state variables being tried, thereby making the entire set of multiple state variables the target of the trial. For example, when using the SA method, if the processing unit 12 has repeated a full cycle of searching, in which the entire set of multiple state variables is the target of the trial, it increases the inverse temperature β used in equation (5), that is, decreases the temperature value T, and continues the search. When the inverse temperature β or temperature value T reaches the final value, the processing unit 12 outputs the state corresponding to the lowest energy so far as the solution.
[0062] Furthermore, for example, when using the replica exchange method, the information processing device 10 is provided with multiple processing units that perform searches with different temperature values, similar to the processing unit 12. In this case, when the processing unit 12 has repeated a cycle of searches that target all of the multiple state variables, it exchanges the temperature value or the values of the multiple state variables with other processing units at a predetermined exchange probability and continues the search. Then, after a predetermined time has elapsed, the information processing device 10 outputs the state with the lowest energy among the states obtained by the multiple processing units as the solution.
[0063] [Second Embodiment] Next, a second embodiment will be described. Figure 2 shows an example of the hardware of a data processing device according to the second embodiment.
[0064] The data processing device 100 searches for a solution to a combinatorial optimization problem using the MCMC method and outputs the searched solution. The combinatorial optimization problem is represented by the Ising-type energy function of equation (1). The data processing device 100 includes a CPU 101, RAM 102, HDD 103, GPU (Graphics Processing Unit) 104, input interface 105, media reader 106, NIC (Network Interface Card) 107, and accelerator card 200.
[0065] The CPU 101 is a processor that executes program instructions. The CPU 101 loads at least a portion of the programs and data stored in the HDD 103 into the RAM 102 and executes the program. The CPU 101 may include multiple processor cores. The data processing unit 100 may also have multiple processors. A collection of multiple processors is sometimes called a "multiprocessor" or simply a "processor."
[0066] RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by CPU 101 and data used by CPU 101 for calculations. The data processing device 100 may be equipped with other types of memory besides RAM, and may be equipped with multiple types of memory.
[0067] HDD103 is a non-volatile storage device that stores software programs such as the OS (Operating System), middleware, and application software, as well as data. The data processing device 100 may also include other types of storage devices such as flash memory or SSD (Solid State Drive), and may include multiple non-volatile storage devices.
[0068] The GPU 104 outputs an image to the display 111 connected to the data processing unit 100, according to instructions from the CPU 101. Any type of display can be used as the display 111, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display, or an organic electro-luminescence (OEL) display.
[0069] The input interface 105 acquires input signals from the input device 112 connected to the data processing unit 100 and outputs them to the CPU 101. The input device 112 can be a pointing device such as a mouse, touch panel, touchpad, or trackball, as well as a keyboard, remote controller, or button switch. Furthermore, multiple types of input devices may be connected to the data processing unit 100.
[0070] The media reader 106 is a reading device that reads programs and data recorded on the recording medium 113. The recording medium 113 can be, for example, a magnetic disk, an optical disk, a magneto-optical disk (MO), or semiconductor memory. Magnetic disks include flexible disks (FD) and HDDs. Optical disks include CDs (Compact Discs) and DVDs (Digital Versatile Discs).
[0071] The media reader 106 copies programs and data read from the recording medium 113 to other recording media such as RAM 102 or HDD 103. The read programs are executed by the CPU 101, for example. The recording medium 113 may be a portable recording medium and may be used for distributing programs and data. The recording medium 113 and HDD 103 are sometimes referred to as computer-readable recording media.
[0072] NIC107 is an interface connected to network 114 and used to communicate with other computers via network 114. NIC107 is connected to communication devices such as switches or routers via cables. NIC107 may also be a wireless communication interface.
[0073] The accelerator card 200 is a hardware accelerator that searches for a solution to the Ising problem, which is represented by the Ising-type energy function of equation (1), using the MCMC method. The accelerator card 200 can be used as a sampler to sample a state that follows a Boltzmann distribution at a given temperature by performing a constant-temperature MCMC method or a replica exchange method that exchanges the states of the Ising model between multiple temperatures. To solve the Ising problem, the accelerator card 200 performs annealing processes such as the replica exchange method or the SA method that gradually lowers the temperature value. For example, the accelerator card 200 executes the solution search in response to instructions from the CPU 101 and outputs the obtained solution.
[0074] The SA method is a technique for efficiently finding the optimal solution by sampling states that follow a Boltzmann distribution at each temperature value and gradually lowering the temperature value used for sampling from the highest temperature value to the lowest temperature value. For example, when using the SA method, the accelerator card 200 repeats the operation of lowering the temperature value after repeating state transition trials at a constant temperature value a certain number of times. For state transition trials, for example, a serial selection MCMC method may be used, in which trials are performed to see whether or not to change the values of each of the multiple state variables included in the energy function, for example, in a predetermined order such as index order. Alternatively, parallel trials may be used for state transition trials, in which trials for multiple state variables are performed in parallel.
[0075] For example, in parallel trials, a solution is searched by making parallel decisions based on equation (5) for multiple state variables and updating the value of one of the state variables based on the results of the parallel decisions. In this case, the accelerator card 200 may use a rejection-free MCMC method that selects exactly one state with probability (6) from all neighboring states with a Hamming distance of 1 to transition to a given state.
[0076]
number
[0077] The selection by the probability of formula (6) is to generate a uniform random number r in [0, 1] i and generate a random number key based on r i : max(0, ΔE i ) + T log(-log(r i )) is equivalent to finding the minimum value. Note that the base of log is the Napier number e. That is, in the Rejection-Free MCMC method, the index k shown in formula (7) may be selected as the transition target.
[0078]
Number
[0079] Also, in parallel trials, in order not to reduce the search efficiency of the solution, a PNS (Partial Neighbor Search) method that controls the probability that the same state variable is continuously tried to a predetermined value may be used.
[0080] The replica exchange method is a method of independently executing the MCMC method using a plurality of temperature values and appropriately exchanging the temperature values for the states obtained at each temperature value. By exploring a narrow range of the state space by MCMC at low temperature and a wide range of the state space by MCMC at high temperature, a good solution can be efficiently discovered. For example, when using the replica exchange method, the accelerator card 200 performs parallel trials of state transitions at each of a plurality of temperature values, and for the states obtained at each temperature value every time a certain number of trials are performed, the temperature values are exchanged at a predetermined exchange probability, and this operation is repeated.
[0081] Specifically, let the replicas at inverse temperatures β k and β k+1 be x k , x k+1 respectively. Let the energies H after performing the MCMC update operation a determined number of times for the replicas be H k , H k+1 respectively. At this time, the replicas x k and x k+1The probability of accepting a temperature exchange between and, i.e., the exchange probability A, is expressed by the following equation (8).
[0082]
number
[0083] The accelerator card 200 has a DRAM 210 and an arithmetic unit 220. The DRAM 210 holds data such as problem information used for search in the arithmetic unit 220. The DRAM 210 holds the coupling coefficients for all pairs of multiple state variables included in the energy function, i.e., the entire set of coupling coefficients. Let N be the number of state variables. The entire set of coupling coefficients is represented by an N x N matrix, i.e., the coupling coefficient matrix. The arithmetic unit 220 is an arithmetic unit that implements the solution search function using the MCMC method in the accelerator card 200. The arithmetic unit 220 can be implemented by, for example, an FPGA, GPU, ASIC, etc.
[0084] Hardware that searches for solutions to the Ising problem, such as the accelerator card 200 or the arithmetic unit 220, is sometimes called an Ising machine or a Boltzmann machine. Figure 3 shows an example of accelerator card hardware.
[0085] The accelerator card 200 has an HBM2 (High Bandwidth Memory) IF (Interface) 210a in addition to the aforementioned DRAM 210 and arithmetic unit 220. The HBM2IF 210a is an interface that connects the DRAM 210 and the arithmetic unit 220.
[0086] The arithmetic unit 220 includes an internal memory unit 221, a search unit 222, and a control unit 223. The internal memory unit 221 is an on-chip memory area that stores a portion of the coupling coefficients read from the DRAM 210. The internal memory unit 221 is used as a cache to hold data used in the processing of the search unit 222. For example, the internal memory unit 221 uses the storage area of the SRAM provided by the arithmetic unit 220. The storage capacity of the internal memory unit 221 is smaller than that of the DRAM 210. The arithmetic unit 220 can access the data held in the internal memory unit 221 at a faster speed than the DRAM 210. For example, the access time of the DRAM 210 by the arithmetic unit 220 is about two orders of magnitude larger than that of the internal memory unit 221, which is on-chip RAM. Also, the problem scale in which the entire coupling coefficients can fit into the internal memory unit 221 is limited, and in problem scales with a relatively large number of state variables, i.e., a large number of bits, it becomes difficult to store the entire coupling coefficients in the internal memory unit 221 at once.
[0087] The search unit 222 is an execution engine for solution searching based on the MCMC method. The search unit 222 performs solution searching using the coupling coefficients stored in the internal memory unit 221. The control unit 223 determines the index of the state variables in the portion of the multiple state variables to which the search unit 222 intends to test, i.e., the portion of the state variables to be tested, and notifies the search unit 222 of this index. The number of state variables belonging to the portion of the state variables to be tested is m, where m is an integer of 2 or greater that is less than N. The control unit 223 determines the row index and column index of the coupling coefficients to be read into the internal memory unit 221 according to this index, and controls the reading of the coupling coefficients from the DRAM 210 to the internal memory unit 221.
[0088] The DRAM 210 may also be referred to as external memory or external storage device in relation to the internal memory unit 221. Here, DRAM 210 is an example of the storage device 20 in the first embodiment. The arithmetic unit 220 is an example of the processing unit 12 in the first embodiment. The internal memory unit 221 is an example of the storage unit 11 in the first embodiment. The accelerator card 200 is an example of the information processing device 10 in the first embodiment.
[0089] Note that an electronic circuit such as an FPGA or GPU including the search unit 222 and the control unit 223 in the arithmetic unit 220 may also be an example of the processing unit 12 in the first embodiment. Also, the arithmetic unit 220 may be an example of the information processing device 10 in the first embodiment. Further, the data processing device 100 may be an example of the information processing device 10 in the first embodiment.
[0090] FIG. 4 is a diagram showing a functional example of the arithmetic unit. DRAM 210 stores the entire N-by-N coupling coefficient W = {W ij}. W ij = W ji and W ii = 0.
[0091] The internal memory unit 221 stores a portion of the entire coupling coefficient W corresponding to the indexes of the state variables of the current trial target portion. For example, assume that the indexes of the state variables of the current trial target portion are k + 1 to k + m. In this case, in this example, the internal memory unit 221 stores each coefficient row with row indexes k + 1 to k + m and column indexes 1 to N among the entire coupling coefficient W. The coefficient row indicates a row with a certain row index included in the coupling coefficient matrix.
[0092] The search unit 222 holds the values of the N state variables x1 to x N and the local fields h1 to h N for each of the state variables x1 to x N . For example, the information indicating the values of the state variables x1 to x N and the local fields h1 to h N is held in the variable storage unit 222r of the search unit 222. The variable storage unit 222r is, for example, a register. Here, in one example, the state variables x i , x jThe coupling coefficient W for the pair ij This can be set in 16 bits. The bias b in equation (1) i This can be set using, for example, 28 bits. Local field h i This can be configured using, for example, 29 bits.
[0093] The search unit 222 uses the coupling coefficients stored in the internal memory unit 221 to test whether or not to update the value of any of the state variables belonging to the current trial area. Specifically, the search unit 222 calculates the amount of energy change when the value of a certain state variable is updated, based on equation (2). Then, the search unit 222 determines whether or not the change in the value of the state variable is permissible, based on equation (5), and updates the value of the state variable if it is permissible. When the search unit 222 updates the value of a state variable, it uses the coupling coefficients corresponding to that state variable stored in the internal memory unit 221 to update the local fields of other state variables based on equation (4).
[0094] The search unit 222 may use the aforementioned serial selection MCMC method to determine whether or not to update the value of any state variable, or it may use parallel trials for m state variables belonging to the part being tried.
[0095] The control unit 223 repeatedly uses the coupling coefficients stored in the internal memory unit 221, and after r trials have been performed by the search unit 222, it changes the trial target portion. r is an integer greater than or equal to 2. For example, in the case of the serial selection MCMC method, r = m or r > m is acceptable. When changing the trial target portion, the control unit 223 changes the index of the state variable to be included in the trial target portion.
[0096] Furthermore, the arithmetic unit 220 further includes an energy calculation unit 224. The energy calculation unit 224 calculates the energy corresponding to the current values of the N state variables by integrating the amount of energy change calculated for the state variables whose values are updated with the initial state energy.
[0097] Here, the set of indices in the trial area can also be called a window. The indices belonging to a window may be contiguous or discontinuous. Figure 5 shows an example of a connection coefficient matrix.
[0098] The coupling coefficient matrix 30 corresponds to the entire set of coupling coefficients W. In this example, the internal memory unit 221 stores the coefficient rows of the coupling coefficient matrix 30 whose row index is an index belonging to a window. For example, if the index belonging to a window is k~k+m-1, the internal memory unit 221 stores m rows of the coupling coefficient matrix 30 with row index k~k+m-1, i.e., m coefficient rows. The search unit 222 uses the portion 31 of these m rows, where the row index is k~k+m-1 and the column index is k~k+m-1, to update the local field of the state variable belonging to the trial target portion. The search unit 222 uses the portion of these m rows other than the portion 31 to update the local field of the state variable not belonging to the trial target portion.
[0099] Figure 6 shows an example of reading out the coupling coefficients. The control unit 223 changes the index of the state variable belonging to the trial target and repeats the search by the search unit 222, thereby making all N state variables the target of the search by the search unit 222. For example, the control unit 223 updates the index of the state variable belonging to the trial target, starting with indices 1 to m, and increasing each index by one. In this case, the control unit 223 erases the coefficient row with the smallest row index held in the internal memory unit 221 up to the previous time and stores the coefficient row with the row index newly read from the DRAM 210 in the internal memory unit 221.
[0100] In accordance with the update of the index of the state variable belonging to the trial portion, the portion of the coupling coefficient matrix 30 used for updating the local field of the state variable belonging to the trial portion changes to portions 32, 33, 34, ..., 35. Once a full cycle of searching has been completed with all state variables as trial targets, the control unit 223 executes the search cycle again from the beginning.
[0101] In the example shown, the coefficient rows to be newly read from the DRAM 210 are selected one row at a time so that the row indices are consecutive. However, the control unit 223 may select two or more coefficient rows to be newly read, or it may select the coefficient rows so that the row indices are discontinuous.
[0102] For example, when the control unit 223 performs the SA method, after performing a full cycle of searches using a given temperature value multiple times, it updates the temperature value and moves on to the search with the next temperature value. Next, an example of the processing procedure of the arithmetic unit 220 that performs the SA method will be described.
[0103] Figure 7 is a flowchart showing an example of processing by the arithmetic unit. (S10) The control unit 223 initializes the internal memory unit 221 and the search unit 222. For example, the control unit 223 initializes the initial reverse temperature β start , final inverse temperature β stop The temperature coefficient s, the number of state variables to be tested m, the number of iterations r, the initial state, the energy E of the initial state, and the temperature change interval k are set. The temperature coefficient s is a value greater than 1. The control unit 223 also reads the first m rows of coefficients from the DRAM 210 into the internal memory unit 221.
[0104] (S11) The search unit 222 attempts to update the internal variables r times, i.e., multiple times, based on the coupling coefficients stored in the internal memory unit 221. Here, the internal variables represent the state variables of the part under trial and the local field corresponding to those state variables.
[0105] (S12) As step S11 is executed, the control unit 223 reads ahead from the DRAM 210 the coefficient row of the coupling coefficient corresponding to the state variable of the next trial target portion. Then, once both steps S11 and S12 are completed, the process proceeds to step S13. For example, if either step S11 or S12 is completed first, the process waits until the other is completed before proceeding to step S13.
[0106] (S13) The control unit 223 updates the coefficient row held in the internal memory unit 221 using the coefficient row read in step S12. The control unit 223 also updates the index of the trial target portion in the search unit 222, i.e., the index of the internal variable.
[0107] (S14) The control unit 223 determines whether the number of cycles to complete all the indices of the internal variables is k or greater. If the number of cycles to complete all the indices of the internal variables is k or greater, the process proceeds to step S15. If the number of cycles to complete all the indices of the internal variables is less than k, the process proceeds to steps S11 and S12.
[0108] (S15) The control unit 223 updates the inverse temperature β used in the search unit 222 to sβ. (S16) The control unit 223 determines β>β stop Determine whether or not β > β. stop In this case, the process proceeds to step S17. β≦β stop In this case, the process proceeds to steps S11 and S12.
[0109] (S17) The control unit 223 outputs the lowest energy state obtained by the search unit 222. The arithmetic unit 220 may include a plurality of search units, including the search unit 222, and the replica exchange method may be executed by these plurality of search units. In that case, the temperature update in step S15 may be performed by an exchange of reverse temperatures between the search unit 222 and other search units according to a predetermined exchange probability. Also, when the replica exchange method is used, the determination in step S16 may be performed, for example, by whether or not a certain amount of time has elapsed since the initialization in step S10.
[0110] Furthermore, in step S11, the search unit 222 may perform trials using a serial selection MCMC method, which randomly selects the state variables of the part under trial or selects them in index order. Alternatively, the search unit 222 may perform parallel trials using a rejection-free MCMC method targeting m state variables of the part under trial. According to the rejection-free MCMC method, one of the m state variables' values is updated with each execution of a parallel trial. The search unit 222 may also use the PNS method in these parallel trials. When performing parallel trials, the control unit 223 may determine the decision in step S14 based on whether or not k parallel trials have been performed on the m state variables. Here, an example of the function for parallel trials in the search unit 222 will be described.
[0111] Figure 8 shows an example of a parallel trial execution unit. The search unit 222 may have a parallel trial execution unit 300. The parallel trial execution unit 300 performs parallel trials on m state variables of the trial target part. The parallel trial execution unit 300 has a local field holding unit 310, a ΔE calculation unit 320, a selection unit 330, and a state variable holding unit 340. The local field holding unit 310 holds m local fields corresponding to the m state variables. However, the local field holding unit 310 may hold N local fields corresponding to N state variables. The ΔE calculation unit 320 calculates in parallel the amount of energy change when the value of each of the m state variables changes relative to the current state, using the m local fields held in the local field holding unit 310. The ΔE calculation unit 320 outputs the m energy change amounts calculated for the m state variables to the selection unit 330. Based on equation (7), the selection unit 330 selects the index to be updated from among the m indexes of the state variables and outputs it to the state variable holding unit 340 and the internal memory unit 221.
[0112] The state variable storage unit 340 stores state variables corresponding to all indices. The state variable storage unit 340 updates the values of the state variables corresponding to the indices output from the selection unit 330.
[0113] Furthermore, the internal memory unit 221 outputs the coupling coefficients for each pair of the index output from the selection unit 330 and other indices of the part under trial to the local field holding unit 310. For example, the reading of the coupling coefficients based on the index from the internal memory unit 221 to the local field holding unit 310 may be performed by an address decoder. The local field holding unit 310 uses these coupling coefficients to update the local fields of other state variables of the part under trial based on equation (4).
[0114] Furthermore, if the local field holding unit 310 holds N local fields corresponding to N state variables, the internal memory unit 221 may output the coupling coefficients for each pair of the index output from the selection unit 330 and all other indices to the local field holding unit 310. In this case, the local field holding unit 310 may use these coupling coefficients to update the local fields of all other state variables based on equation (4). If the local field holding unit 310 updates only the local fields of the state variables belonging to the trial target portion, the updates of the local fields of the other state variables are performed by a predetermined calculation unit provided in the search unit 222.
[0115] Furthermore, the search unit 222 may also use the PNS method in the Rejection-Free MCMC method based on equation (7). The method of applying the PNS method to the Rejection-Free MCMC method is called the PNS RF (Rejection-Free) method.
[0116] Figure 9 shows an example of a selection section using the PNS RF method. Here, as an example, m energy changes ΔE1~ΔE are given to the selection unit 330. m Assume that the following is input. The selection unit 330 has an index generation unit 331, an m-to-p selector 332, and a reduction tree 333. The index generation unit 331 generates p indices i1, i2, ..., i pGenerate it and output it to the m-to-p selector 332. p is an integer where 2 ≤ p < m. For example, the index generation unit 331 may generate p indexes by generating a uniform random number [0, 1] for each of the m indexes and selecting p of them in descending order.
[0117] The m-to-p selector 332 selects the amount of change in energy corresponding to the p indexes input from the index generation unit 331 from the m input ΔE1 to ΔE m and outputs it to the reduction tree 333.
[0118] The reduction tree 333 applies the p amounts of change in energy input from the m-to-p selector 332 to Equation (7) and outputs the index k. For example, the reduction tree 333 is realized by a selector tree in which 2-input 1-output selectors are combined in multiple stages in a tree shape.
[0119] Thus, in each trial, the search unit 222 may select a transition destination from all the neighborhoods with a Hamming distance of 1 from the current state at a ratio q = p / m, and perform the selection of the transition destination by Rejection-Free among the selected ones. The ratio q is preset in the search unit 222. For example, q = 0.5. Note that the search unit 222 may use a method of selecting a fixed number without duplication or a method of selecting with duplication as a method of selecting a transition destination by the PNS method. In this way, the search unit 222 can control the probability that the same state variable is continuously tried by executing the PNS RF method, and improve the search efficiency of the solution.
[0120] As described above, the arithmetic unit 220 uses the coupling coefficients read from the DRAM 210 and stored in the internal memory unit 221 for multiple trials. Thereby, the arithmetic unit 220 can reduce the access frequency to the DRAM 210. For this reason, it is possible to suppress a decrease in the processing speed caused by access to the DRAM 210. As a result, it is possible to speed up the solution of a large-scale problem in which the size of the entire coupling coefficient is relatively large. Also, in the example of the second embodiment, the size N of the entire coupling coefficient2 In contrast, the memory capacity required for the internal memory unit 221 can be reduced to N*m. The reduction rate of memory capacity is m / N.
[0121] [Third Embodiment] Next, a third embodiment will be described. The differences from the second embodiment described above will be explained primarily, and the common aspects will be omitted. The data processing device 100 of the third embodiment is implemented using hardware similar to that of the second embodiment.
[0122] In the second embodiment described above, an example was shown in which the local fields of all state variables are updated each time a change is made to the trial portion of the entire set of state variables. In contrast, in the third embodiment, the state variable x in the trial target portion is j Each time the value of is updated, the local field of the state variable belonging to the trial portion is updated. The state variable x for the local field of the other state variables j Regarding the impact of updating the value of the state variable x, j This is reflected when it is excluded from the trial portion.
[0123] In the third embodiment, the coupling coefficients for each pair of state variables belonging to the trial portion, for example, the coupling coefficients belonging to portion 31 in Figure 5, are stored in the internal memory unit 221, which is the same as in the second embodiment. On the other hand, the third embodiment differs from the second embodiment in that the coupling coefficients for each pair of state variables belonging to the trial portion and other state variables not belonging to the trial portion are not read from the DRAM 210 into the internal memory unit 221.
[0124] Figure 10 shows an example of reading the coupling coefficients in the third embodiment. For example, the state variable of the part being tested is x k ~x k+m-1 From, x k+1 ~x k+mWhen making this change, the portion 36 of the row with row index k+m in the coupling coefficient matrix 30, specifically the portion with column indices k+1 to k+m, is read from the DRAM 210. At the same time, for example, the portion 37 of the row with row index k in the coupling coefficient matrix 30, specifically the portion with column indices k-1 to k-1, and the portion 38 of column indices k+m to N, are read from the DRAM 210. In this case, the portion of the row with row index k, specifically the portion with column indices k to k+m-1, is supplemented by information previously held in the internal memory unit 221, for example, by the control unit 223.
[0125] Figure 11 shows an example of the search unit. The search unit 222 includes an internal variable processing unit 222a and a global variable processing unit 222b. The internal variable processing unit 222a updates internal variables. Internal variables indicate the state variables of the trial target portion and the local field corresponding to those state variables. State variables belonging to internal variables correspond to the state variables of the trial target portion. Internal variables are held, for example, in an internal variable storage unit 222a1 provided by the internal variable processing unit 222a. The internal variable storage unit 222a1 is, for example, a register. The number of indices for internal variables is m.
[0126] Here, R(t) is the set of indices of state variables belonging to the internal variables at time step t. The unit of time used to measure time step t is the time from the moment immediately after changing the part under trial to the moment when the part under trial is changed again. Also, state variables and local fields belonging to the internal variables are marked with an asterisk symbol "*" in the upper right corner. The internal variables at time step t are (x i∈R(t) * ,h i∈R(t) * ) is expressed as.
[0127] The global variable processing unit 222b updates global variables. Global variables are the set of N state variables (x1~x) that are kept separately from internal variables. N ) and local fields (h1~h) corresponding to each of the N state variables NThis indicates that global variables are all state variables, including internal variables, and local fields. Global variables are held, for example, in the global variable storage unit 222b1 provided by the global variable processing unit 222b. The global variable storage unit 222b1 is, for example, a register.
[0128] Here, the global variable is a state variable x i and local field h i The state variable x at the point when to is added to the internal variables. i (0) It holds the value of the state variable x. i If x is excluded from the internal variables, then x i * and x i (0) The difference between this and the state variable x in the global variables. i and local field h1~h N It will be updated.
[0129] Figure 12 shows an example of the relationship between internal variables and global variables. The internal variable set Y1 is the complete set of internal variables. The global variable set Y2 is the complete set of global variables. By changing the index of the trial portion, i.e., the index of the internal variables, the internal variables that were included in the internal variable set Y1 are removed from the internal variable set Y1. At this time, the global variable processing unit 222b updates the value of the global variable with the value of the corresponding internal variable.
[0130] For example, from an internal variable to a state variable x2 * When removed, the global variable processing unit 222b is x2 * The value of is set to x2. Also, the global variable processing unit 222b sets x2 at this time. * The difference between and x2 gives other local fields h1~h in the global variables. N The value is updated based on equation (4). At this time, the global variable processing unit 222b uses the coupling coefficient of the row with row index 2 read from the DRAM 210.
[0131] Furthermore, a change in the index of an internal variable adds a new internal variable to the set of internal variables Y1. At this time, the internal variable processing unit 222a generates the value of the internal variable to be added based on the value of the global variable corresponding to the internal variable to be added, the value of the state variable in other internal variables, and the coupling coefficient corresponding to the internal variable to be added.
[0132] For example, if the indices of the internal variables are continuous, let's assume the index of the additional internal variable is k+m. In this case, the internal variable processing unit 222a is x k+m * =x k+m Let's assume that the internal variable processing unit 222a has a local field h according to equation (9). k+m * We seek.
[0133]
number
[0134] Here, Δx j * is, x k+m * x when added j and x j * This is the difference. Furthermore, when the indices of the internal variables are discontinuous, we assume that the index of the added internal variable is i. In this case, the internal variable processing unit 222a is x i * =x i Let's assume that the internal variable processing unit 222a has a local field h according to equation (10). i * We seek.
[0135]
number
[0136] Here, Δx j * is, x i * x when addedj and x j * This is the difference. Figure 13 shows an example of the functions of the arithmetic unit. The arithmetic unit 220 includes internal memory units 221 and 226, an internal variable processing unit 222a, a global variable processing unit 222b, a control unit 223, an energy calculation unit 224, and a coefficient data stream generation unit 225. The internal memory units 221 and 226 utilize the storage area of the SRAM provided by the arithmetic unit 220. The internal variable processing unit 222a and the global variable processing unit 222b are subdivisions of the functions of the search unit 222, as illustrated in Figure 11.
[0137] The coefficient data stream generation unit 225 reads coupling coefficients from the DRAM 210 and supplies them to the internal memory units 221 and 226. The data stream of coupling coefficients supplied to the internal memory units 221 and 226 by the coefficient data stream generation unit 225 is called the coefficient data stream. The coefficient data stream generation unit 225 supplies coupling coefficients used by the internal variable processing unit 222a to the internal memory unit 221. The coefficient data stream generation unit 225 supplies coupling coefficients used by the global variable processing unit 222b to the internal memory unit 226.
[0138] The internal variable processing unit 222a uses the coupling coefficients stored in the internal memory unit 221 to attempt whether or not to update the value of any of the state variables belonging to the internal variables. Specifically, the internal variable processing unit 222a calculates the amount of energy change when the value of a certain state variable is updated, based on equation (2). Then, the internal variable processing unit 222a determines whether or not the change in the value of the state variable is permissible, based on equation (5), and updates the value of the state variable if it is permissible. When the value of a state variable is updated, the internal variable processing unit 222a updates the local field in other internal variables based on equation (4), using the coupling coefficients corresponding to the state variable stored in the internal memory unit 221.
[0139] The global variable processing unit 222b updates the global variables using the coupling coefficients stored in the internal memory unit 226 in the manner shown in Figure 12. The update of global variables by the global variable processing unit 222b can be performed in parallel with the trial performed by the internal variable processing unit 222a.
[0140] In Figure 13, the information held in the internal memory units 221 and 226 and the internal variable processing unit 222a at time step t+m is illustrated. The index i(t) indicates the index of the state variable added to the internal variables at time step t.
[0141] The control unit 223 controls the index to be processed in the internal variable processing unit 222a, the global variable processing unit 222b, and the coefficient data stream generation unit 225. The energy calculation unit 224 calculates the energy corresponding to the current values of the N state variables by integrating the amount of energy change calculated for the internal state variables whose values are updated with the initial state energy.
[0142] Figure 14 shows an example of a coefficient data stream generation. The coefficient data stream generation unit 225 reads the coupling coefficients from the DRAM 210 and generates the coefficient data stream D10. The coefficient data stream D10 has coefficient data D11 and coefficient data D12. Coefficient data D11 is the data of the coupling coefficient corresponding to the index that was added to the internal variable. Coefficient data D11 is stored in the internal memory unit 221. Coefficient data D12 is the data of the coupling coefficient corresponding to the index that was removed from the internal variable. Coefficient data D12 is stored in the internal memory unit 226.
[0143] For example, at time step t+m, the coefficient data D11 is W i∈R(t+m),j∈R(t+m) It is expressed as follows. Also, at time step t+m, the coefficient data D12 is W i∈R(t),j∈(¬R(t))This is expressed as follows: Here, "¬R(t)" represents the complement of R(t). This notation example of coefficient data D12 is equivalent to the notation example of coefficient data D12 in Figure 14. Also, the index to the left of the subscript W indicates the index of the state variable added to the internal variable at the corresponding time step.
[0144] Figure 15 shows a first example of a coefficient data stream. When the index of an internal variable is incremented one by one in succession, the coefficient data stream generation unit 225 generates a coefficient data stream D10, for example, as follows.
[0145] At a certain time step, the coefficient data stream generation unit 225 generates m coupling coefficients W k+m,k+1 ,…,W k+m,k+m The internal memory unit 221 is supplied with the coefficient data stream. At the same time, the coefficient data stream generation unit 225 generates Nm coupling coefficients W k,1 ,…,W k,k-1 ,W k,k+m ,…,W k,N The internal memory unit 226 is supplied with the following: In this way, the arithmetic unit 220 excludes the state variable x from the internal variables (the part being tried this time step) of the current time step. k and x, which belonged to the internal variables of the previous time step (the part targeted in the previous trial). k ~x k+m-1 The coupling coefficients W corresponding to multiple pairs with each of them k,k ~W k,k+m-1 You may exclude it from the read target. This reduces the memory bandwidth for reading from DRAM210.
[0146] In the next time step, the coefficient data stream generation unit 225 generates m coupling coefficients W k+m+1,k+2 ,…,W k+m+1,k+m+1 The internal memory unit 221 is supplied with the coefficient data stream. At the same time, the coefficient data stream generation unit 225 generates Nm coupling coefficients W k+1,1 ,…,W k+1,k ,W k+1,k+m+1 ,…,W k+1,N This is supplied to the internal memory unit 226.
[0147] Figure 16 shows a second example of a coefficient data stream. When the index of an internal variable is increased one by one in succession, the coefficient data stream generation unit 225 may generate a coefficient data stream D10a instead of the coefficient data stream D10, for example, as shown below.
[0148] At a certain time step, the coefficient data stream generation unit 225 generates m coupling coefficients W k+m,k+1 ,…,W k+m,k+m The internal memory unit 221 is supplied with the N coupling coefficients W. k,1 ,…,W k,N This is supplied to the internal memory unit 226.
[0149] In the next time step, the coefficient data stream generation unit 225 generates m coupling coefficients W k+m+1,k+2 ,…,W k+m+1,k+m+1 The internal memory unit 221 is supplied with the N coupling coefficients W. k+1,1 ,…,W k+1,N This is supplied to the internal memory unit 226.
[0150] When using coefficient data stream D10, the memory bandwidth for reading from DRAM 210 can be reduced compared to coefficient data stream D10a. On the other hand, when using coefficient data stream D10a, data processing when reading coupling coefficients from DRAM 210 and data processing when storing coupling coefficients in the internal memory section 226 can be omitted compared to coefficient data stream D10, thereby enabling faster reading of coupling coefficients.
[0151] Next, an example of energy calculation by the energy calculation unit 224 in the third embodiment will be described. Figure 17 shows an example of an energy calculation.
[0152] The energy calculation unit 224 determines the state variable x in the internal variables through a trial by the internal variable processing unit 222a. k* Each time the value of is updated, the state variable x k * Change in value Δx k * Based on this, ΔE = -Δx k * h k * The energy E of the system is calculated by integrating these values. The system represents the state of an Ising model, where the internal variables are reflected in the global variables. The energy E is expressed by equation (11).
[0153]
number
[0154] Furthermore, the processing procedure of the SA method by the arithmetic unit 220 in the third embodiment is the same as the flowchart illustrated in Figure 7. However, the size of the weight coefficients read into the internal memory unit 221 is different. Also, the internal variable processing unit 222a of the search unit 222 attempts to decide whether or not to update the value of any state variable in the internal variables based on the information in the internal memory unit 221. Moreover, as mentioned above, the arithmetic unit 220 may perform the replica exchange method instead of the SA method.
[0155] Next, we will explain an example of updating internal variables. Figure 18 shows the first example of updating an internal variable. The internal variable processing unit 222a updates the state variables belonging to the internal variables and the local fields corresponding to those state variables using the coupling coefficients held in the internal memory unit 221. The update method may be random selection of the state variables of the internal variables or a serial selection MCMC method in which the variables are selected in index order. Graph G10 shows an example of the change in row index of the coefficient row loaded into the internal memory unit 221 with respect to time. The horizontal axis of graph G10 is time. The vertical axis of graph G10 is the row index. Sequence G11 shows an example of performing trials by sequentially selecting the index of the internal variable using the serial selection MCMC method. For example, when the control unit 223 has cycled through all the indices of the internal variable in the internal variable processing unit 222a, it updates the index of the internal variable and loads the next coefficient row into the internal memory unit 221. The internal variable processing unit 222a performs trials using the serial selection MCMC method sequentially from the first index of the updated internal variable.
[0156] Series G12 is a comparative example of a standard serial selection MCMC method applied to all indices 1 to N. Series G12 shows that the indices 1 to N simply cycle through sequentially over time.
[0157] Furthermore, the internal variable processing unit 222a may perform parallel trials using the Rejection-Free MCMC method targeting m state variables in the internal variables. According to the Rejection-Free MCMC method, one of the m state variables' values is updated with each execution of a parallel trial. The internal variable processing unit 222a may also use the PNS RF method in the parallel trials. For example, the internal variable processing unit 222a may have the parallel trial execution unit 300 illustrated in Figure 8.
[0158] Figure 19 shows a second example of updating internal variables. Graph G20 shows an example of how the row index of the coefficient rows loaded into the internal memory unit 221 changes over time. The horizontal axis of graph G20 represents time. The vertical axis of graph G20 represents the row index. First, the control unit 223 initializes the internal memory unit 221 with the first m rows of coefficient rows, then starts the search by the internal variable processing unit 222a, and periodically updates the index of the internal variables by o. o is an integer greater than or equal to 2. In this case, the coefficient rows of the internal memory unit 221 and the internal memory unit 226 are updated by o rows. The row index cycles by taking the remainder by N.
[0159] Furthermore, the control unit 223 updates the index of the internal variable only after the reading of the next 0 rows of coupling coefficients to be added is complete. The control unit 223 can pre-read the next 0 rows of coupling coefficients. For example, the control unit 223 controls the time it takes for the internal variable processing unit 222a to perform multiple trials on the state variable belonging to the internal variable to be longer than the time it takes to read the next 0 rows of coupling coefficients from the DRAM 210 to the internal memory unit 221.
[0160] Series G21 shows an example of performing trials by sequentially selecting the indices of internal variables using the serial selection MCMC method. For example, the control unit 223 may update the indices of internal variables after the internal variable processing unit 222a has gone through all the indices of the internal variables multiple times.
[0161] Figure 20 shows a third example of updating internal variables. Graph G30 shows an example of how the row index of the coefficient row loaded into the internal memory unit 221 changes over time. The horizontal axis of graph G30 represents time. The vertical axis of graph G30 represents the row index.
[0162] The internal variable processing unit 222a may initialize the internal memory unit 221 to empty it, and then start trials based on the coefficient rows loaded into the internal memory unit 221 in response to the loading of coefficient rows into the internal memory unit 221. In this case, initially the internal memory unit 221 is empty, and o state variables are added to the internal variables at a time, and trials for each state variable are started. When the number of internal variables reaches m, the size of the internal variables and the size of the coupling coefficients in the internal memory unit 221 are maintained. No internal variables are deleted until the number of state variables in the internal variables reaches m.
[0163] In this way, compared to the example in Figure 19, the waiting time until the first m rows of coefficients are stored in the internal memory unit 221 is eliminated, and the solution is further accelerated. Note that the examples of internal variable updates in Figures 18 to 20 are applicable not only to the third embodiment but also to the second embodiment.
[0164] Furthermore, as described above, the control unit 223 may update the indices of the internal variables in increments of o, i.e., multiple increments. In this case, the coefficient rows of the internal memory unit 221 are also updated in increments of o, i.e., multiple rows. The procedure for updating multiple rows will now be explained.
[0165] Figure 21 is a flowchart showing an example of updating multiple rows. (S20) The control unit 223 initializes the row counter. The row counter is used to count the number of times a coefficient row is read from the DRAM 210 to the internal memory unit 221. The control unit 223 also sets the maximum value p of the row counter.
[0166] (S21) When updating the index of an internal variable, the control unit 223 initiates multi-row processing. In one example, the control unit 223 controls the coefficient data stream generation unit 225 to pre-read o rows of coefficients from the DRAM 210 for the next row index m+o+1 to m+2o, if the index of the internal variable after the current update is 1+o to m+o. This pre-reading corresponds to step S12 in the flowchart of Figure 7. The global variable processing unit 222b also updates the values and local fields of the o state variables in the global variables and the local fields of the other state variables for the o state variables to be excluded from the internal variables. Furthermore, the internal variable processing unit 222a updates the local field of the state variables to be added to the internal variables. The updates of the global variables and internal variables in step S21 are included in the coefficient row update in step S13 of the flowchart of Figure 7.
[0167] (S22) The control unit 223 determines whether the row counter value is greater than p. If row counter value > p, the control unit 223 finishes the current iteration of all row indices and moves on to the next iteration. If row counter value ≤ p, the process proceeds to step S23.
[0168] (S23) The control unit 223 increments the row counter. Then, the process proceeds to step S21. Note that the number of rows o is problem-dependent because it is determined by the relationship between the number of state variables N corresponding to the problem and the capacity of the internal memory unit 221. For this reason, in step S20, the control unit 223 may calculate the maximum value p from the required amount of memory, or it may set an appropriate value input from an external source to the maximum value p.
[0169] Figure 22 shows an example of a timing chart. Timing chart 40 is an example of a timing chart for the arithmetic unit 220 of the third embodiment. The horizontal axis of timing chart 40 represents time. Timing chart 40 includes items for clock CLK, coefficient rows stored in internal memory, coefficient rows removed from internal memory, internal variable local field adjustment, PNS and global variable local field updates.
[0170] The item of clock CLK indicates the clock signal of the arithmetic unit 220. The item of the coefficient row to be stored in the internal memory indicates the coefficient row newly stored in the internal memory unit 221. The item of the coefficient row removed from the internal memory indicates the coefficient row removed from the internal memory unit 221. The item of the internal variable local field adjustment indicates the local field h i * adjusted according to Equation (9) or Equation (10). The item of PNS indicates the PNS RF method executed by the internal variable processing unit 222a. However, as described above, the internal variable processing unit 222a may execute the serial selection MCMC method. The item of global variable local field update indicates the local fields h1 to h i corresponding to the state variable x N after it has exited the internal variables.
[0171] Here, regarding the times t1 to t10 shown in the timing chart 40, the direction from t1 to t10 is the positive direction of time. For example, at time t1, the arithmetic unit 220 reads a new coefficient row from the DRAM 210 into the internal memory unit 221. When a new coefficient row is read, at time t2, the arithmetic unit 220 starts internal variable local field adjustment.
[0172] Also, at time t3, the arithmetic unit 220 removes a coefficient row from the internal memory unit 221. When a coefficient row is removed, at time t4, the arithmetic unit 220 starts global variable local field update.
[0173] After that, when the internal variable local field adjustment is completed, at time t5, the arithmetic unit 220 starts PNS. The arithmetic unit 220 executes PNS and global variable local field update in parallel. For example, the arithmetic unit 220 completes PNS and global variable local field update at time t6. However, the completion timings of PNS and global variable local field update may be different.
[0174] When the PNS and the global variable local field update are completed, at time t7, the arithmetic unit 220 reads a new coefficient row from the DRAM 210 into the internal memory unit 221. When the new coefficient row is read, at time t8, the arithmetic unit 220 starts the internal variable local field adjustment.
[0175] Also, at time t9, the arithmetic unit 220 removes the coefficient row from the internal memory unit 221. Although not shown, when the coefficient row is removed, the arithmetic unit 220 starts the global variable local field update. Further, when the internal variable local field adjustment is completed, at time t10, the arithmetic unit 220 starts the PNS. Thereafter, the arithmetic unit 220 repeats the same procedure.
[0176] Note that the coupling coefficient used in the next PNS for the internal memory unit 221 may be pre-read from the DRAM 210 while the current PNS is being performed as described above. FIG. 23 is a diagram showing a modified example of the arithmetic unit.
[0177] The global variable storage unit 222b1 in FIG. 11 may be provided in the DRAM 210. In this case, instead of the global variable processing unit 222b, the arithmetic unit 220 includes a global variable update unit 222c and a reading unit 225a.
[0178] In addition to the function of the coefficient data stream generation unit 225, the reading unit 225a supplies the values of the state variables added to the internal variables and the values of the local fields to the internal variable processing unit 222a. At the same time, the reading unit 225a reads the value of the state variable x i * corresponding to x i from the DRAM 210 and supplies it to the global variable update unit 222c.
[0179] The global variable update unit 222c calculates the difference Δx i * between the state variable x removed from the internal variable and the state variable x read from the DRAM 210 i i Accordingly, based on the coupling coefficients held in the internal memory section 226, local fields h1~h are held in the DRAM 210. N Updates Δx. Also, the global variable update unit 222c updates Δx i Based on this, x is held in DRAM210 i Update.
[0180] Thus, the arithmetic unit 220 may store global variables in the DRAM 210. This allows the arithmetic unit 220 to omit the memory area for storing global variables, i.e., the global variable storage unit 222b1.
[0181] As explained above, the arithmetic unit 220 uses the coupling coefficients read from the DRAM 210 and stored in the internal memory unit 221 for multiple trials, and changes the trial target to make the entire set of multiple state variables the trial target. This allows the arithmetic unit 220 to reduce the frequency of access to the DRAM 210. Therefore, the decrease in processing speed caused by access to the DRAM 210 can be suppressed. As a result, the solving of large-scale problems with a relatively large total size of coupling coefficients can be accelerated. In addition, in the example of the third embodiment, the total size of coupling coefficients N 2 In response, the required memory capacity for the internal memory unit 221 is m 2 It can be reduced to m. The reduction rate of memory capacity is m 2 / N 2 In the third embodiment, the memory capacity of the internal memory unit 221 can be reduced compared to the second embodiment. Furthermore, in the third embodiment, the overhead of local field updates other than internal variables can be reduced to 1 / r compared to the second embodiment.
[0182] As illustrated in the second and third embodiments, the arithmetic unit 220 has, for example, the following functions: The arithmetic unit 220 searches for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of state variables in the plurality of state variables. The arithmetic unit 220 has an internal memory unit 221, a search unit 222, and a control unit 223. The internal memory unit 221 stores a portion of the total coupling coefficients held in the DRAM 210. The control unit 223 reads a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables belonging to the trial target portion, which is the portion of the plurality of state variables that includes the plurality of first state variables to be tried, from the DRAM 210 and stores them in the internal memory unit 221. The search unit 222 uses the plurality of first coupling coefficients stored in the internal memory unit 221 to perform a plurality of trials to determine whether or not to update the value of any of the first state variables belonging to the trial target portion. The control unit 223 repeatedly performs a process that includes changing the trial target portion, reading the first coupling coefficient from the DRAM 210 to the internal memory unit 221, and performing multiple trials by the search unit 222 using the first coupling coefficient, thereby making the entire set of multiple state variables the target of the trial.
[0183] This allows the arithmetic unit 220 to reduce the frequency of access to the DRAM 210, thereby speeding up the solution of large-scale problems. Specifically, the arithmetic unit 220 uses multiple first coupling coefficients of the internal memory unit 221 in multiple trials, making the trial frequency higher than the frequency of reading coupling coefficients to the internal memory unit 221, thereby speeding up the solution of large-scale problems. The arithmetic circuit, such as an FPGA or GPU, including the search unit 222 and the control unit 223, is an example of the processing unit 12 of the first embodiment. The internal memory unit 221 is an example of the storage unit 11 of the first embodiment.
[0184] Furthermore, the processing unit 12 may be implemented by an arithmetic circuit such as a CPU 101. For example, the storage unit 11 may be implemented by the cache memory of the CPU 101. In this case, RAM 102 may be an example of a storage device 20. Thus, the processing unit 12 and the arithmetic unit 220 may be implemented by a coprocessor such as an FPGA or GPU, or by a processor such as a CPU 101.
[0185] The indices of multiple first state variables belonging to the trial portion may be consecutive or discontinuous. Furthermore, the number of state variables differing between the previous trial portion and the current trial portion may be one or multiple. For example, the number of state variables differing between the previous trial portion and the current trial portion may be four or more. For example, the number of state variables not included in the previous trial portion but included in the current trial portion may be two or more.
[0186] As illustrated in the second embodiment, the arithmetic unit 220 may further include a variable storage unit 222r. The variable storage unit 222r stores the values of a plurality of state variables and a plurality of local fields corresponding to the plurality of state variables, which are used to calculate the amount of change in the value of the energy function in response to changes in the values of the state variables. The control unit 223 reads a plurality of second coupling coefficients corresponding to a plurality of second pairs of a plurality of first state variables belonging to the trial target area and a plurality of second state variables not belonging to the trial target area from the DRAM 210 along with a plurality of first coupling coefficients and stores them in the internal memory unit 221. In addition, the search unit 222 calculates the amount of change in the value of the energy function when the value of the first state variable changes, based on the local fields corresponding to the first state variables belonging to the trial target area in the above trial, and updates the value of the first state variable according to the amount of change. When the value of the first state variable is updated, the search unit 222 updates a plurality of first local fields corresponding to two or more state variables belonging to the trial target area from among the plurality of local fields stored in the variable storage unit 222r, based on the first coupling coefficients corresponding to the updated first state variable. Simultaneously, the search unit 222 updates multiple second local fields corresponding to multiple second state variables that do not belong to the trial target portion, among the multiple local fields stored in the variable storage unit 222r, based on the second coupling coefficients corresponding to the updated first state variables.
[0187] As a result, the arithmetic unit 220 calculates the total size N of the coupling coefficients. 2 In contrast, the memory size required for the internal memory unit 221 can be reduced to N*m. Furthermore, as illustrated in the third embodiment, the arithmetic unit 220 may further have an internal variable storage unit 222a1. The internal variable storage unit 222a1 stores the values of a plurality of first state variables belonging to the trial portion and a plurality of first local fields corresponding to the plurality of first state variables, which are used to calculate the amount of change in the value of the energy function in response to changes in the values of the first state variables. The arithmetic unit 220 can also access a global variable storage unit 222b1. The global variable storage unit 222b1 stores the values of a plurality of state variables and a plurality of second local fields corresponding to the plurality of state variables. The global variable storage unit 222b1 may be built into the arithmetic unit 220 or may be provided outside the arithmetic unit 220, for example, in a DRAM 210.
[0188] In this case, when the trial target part is changed, the control unit 223 extracts a first difference state variable from among the multiple state variables that was included in the previous trial target part but is not included in the current trial target part. The control unit 223 reads multiple second coupling coefficients corresponding to multiple second pairs of the first difference state variable and each of the multiple other state variables from the DRAM 210 along with multiple first coupling coefficients and stores them in the internal memory unit 226. The search unit 222 updates the second value of the first difference state variable stored in the global variable storage unit 222b1 with the first value of the first difference state variable stored in the internal variable storage unit 222a1. At the same time, the search unit 222 updates multiple second local fields stored in the global variable storage unit 222b1 based on the difference between the values before and after the update of the second value and the multiple second coupling coefficients stored in the internal memory unit 226.
[0189] Furthermore, the search unit 222 retrieves the third value of the second difference state variable, which is included in the current trial target portion but not included in the previous trial target portion, from the global variable storage unit 222b1 and stores it in the internal variable storage unit 222a1. The search unit 222 calculates the difference between the fourth value of each of the multiple first state variables stored in the internal variable storage unit 222a1 and the fifth value corresponding to each of the multiple first state variables stored in the global variable storage unit 222b1. Based on the calculated difference, the second local field of the second difference state variable stored in the global variable storage unit 222b1, and the first coupling coefficient stored in the internal memory unit 221, the search unit 222 calculates the local field of the second difference state variable and stores it in the internal variable storage unit 222a1. The calculation of the local field of the second difference state variable is performed based on equation (9) or equation (10).
[0190] Then, in the above trial, the search unit 222 calculates the change in the value of the energy function when the value of the first state variable changes, based on the first local field stored in the internal variable storage unit 222a1 that corresponds to the first state variable belonging to the trial target portion. The search unit 222 updates the value of the first state variable stored in the internal variable storage unit 222a1 according to the amount of change. When the value of the first state variable is updated, the search unit 222 updates a plurality of first local fields stored in the internal variable storage unit 222a1 based on the first coupling coefficients corresponding to the updated first state variable.
[0191] As a result, the arithmetic unit 220 calculates the total size N of the coupling coefficients. 2 In response, the required memory size for the internal memory unit 221 is m 2 This can be reduced. In addition, the arithmetic unit 220 can reduce the overhead of local field updates other than internal variables. For example, the search unit 222 may include an internal variable processing unit 222a and a global variable processing unit 222b, or it may include an internal variable processing unit 222a and a global variable update unit 222c. Note that the internal memory units 221 and 226 are examples of the storage unit 11 in the first embodiment.
[0192] The search unit 222 may perform the update of multiple second local fields stored in the global variable storage unit 222b1 and the trial on the current trial target in parallel. For example, the search unit 222 updates the second local field corresponding to the second difference state variable, which is held in the global variable storage unit 222b1, based on the difference in the values of the first difference state variable. Then, the search unit 222 may use the updated second local field of the second difference state variable and the information in the internal variable storage unit 222a1 to generate a new local field of the second difference state variable using equation (9) or equation (10), store it in the internal variable storage unit 222a1, and start the trial. The search unit 222 may perform the update of other second local fields held in the global variable storage unit 222b1 in parallel with the trial. This speeds up the solution.
[0193] When reading multiple second coupling coefficients from the DRAM 210, the control unit 223 may exclude from reading coupling coefficients corresponding to pairs of first difference state variables and other state variables that belonged to the trial area when the first difference state variable was added to the trial area. This reduces the memory bandwidth required for reading from the DRAM 210.
[0194] The control unit 223 may read the coupling coefficients corresponding to the difference in state variables between the previously tested section and the currently tested section from the DRAM 210. Alternatively, the control unit 223 may omit reading the coupling coefficients corresponding to the overlapping state variables between the previously tested section and the currently tested section, i.e., the coupling coefficients that have already been read from the DRAM 210 in previous attempts. This improves the efficiency of reading from the DRAM 210 and speeds up the solution. Note that the difference in state variables between the previously tested section and the currently tested section refers to state variables that do not belong to the previously tested section but belong to the currently tested section.
[0195] The control unit 223 may, while performing trials on the current trial target, pre-read the coupling coefficients corresponding to the state variables of the next trial target from the DRAM 210. This makes reading from the DRAM 210 more efficient and speeds up the solution.
[0196] In the above trial, the exploration unit 222 may perform the serial selection MCMC method. That is, the exploration unit 222 randomly or in a predetermined order selects any one of a plurality of first state variables belonging to the trial target portion, determines whether to update the value of the selected first state variable based on an energy function, and may update the value of the first state variable determined to be updated. Alternatively, the exploration unit 222 may perform the Rejection-Free MCMC method. That is, the exploration unit 222 determines in parallel whether to allow the update of values for all of a plurality of first state variables belonging to the trial target portion based on an energy function, and may update the value of any first state variable for which the update of the value is allowed. Or, the exploration unit 222 may perform the PNS RF method. That is, the exploration unit 222 determines in parallel whether to allow the update of values for a predetermined number of first state variables selected from a plurality of first state variables based on an energy function, and may update the value of any first state variable for which the update of the value is allowed. Thereby, the solution seeking is made more efficient. In particular, by using the PNS RF method, the probability that the same state variable is continuously tried can be controlled to a predetermined value.
[0197] Note that the information processing in the first embodiment may be realized by causing the processing unit 12 to execute a program. Also, the information processing in the second and third embodiments may be realized by causing the CPU 101 to execute a program. The program can be recorded on a computer-readable recording medium 113.
[0198] For example, by distributing the recording medium 113 on which the program is recorded, the program can be circulated. Also, the program may be stored in another computer and distributed via a network. The computer may, for example, store (install) the program recorded on the recording medium 113 or the program received from another computer in a storage device such as the RAM 102 or the HDD 103, and read and execute the program from the storage device.
Explanation of Signs
[0199] 10 Information Processing Devices 11 Storage section 12 Processing Units 20 Storage device 21 Coupling matrix 21a, 21b, 21c, 21d, 21e, 21f part
Claims
1. An information processing device for searching for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of the state variables in the plurality of state variables, First memory unit and, Processing section and It has, The first storage unit stores a portion of the plurality of coupling coefficients, The processing unit reads a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables in the trial target portion, which is the portion of the plurality of state variables that is the subject of a trial to determine whether or not to update the value, from the storage device that stores the plurality of coupling coefficients and stores them in the first storage unit. Using the plurality of first coupling coefficients stored in the first storage unit, the trial of whether or not to update the value of any of the first state variables belonging to the trial target portion is performed multiple times. Perform the process, By repeatedly changing the trial target portion and performing the process, the entire set of state variables becomes the target of the trial. The system further includes a second storage unit that stores the values of the aforementioned plurality of state variables and a plurality of local fields corresponding to the plurality of state variables, which are used to calculate the amount of change in the value of the energy function in response to changes in the values of the state variables. The aforementioned processing unit, The plurality of second coupling coefficients corresponding to the plurality of second pairs of each of the plurality of first state variables and each of the plurality of second state variables that do not belong to the trial target portion are read from the storage device together with the plurality of first coupling coefficients and stored in the first storage unit. In the above trial, the change in the value of the energy function when the value of the first state variable changes is calculated based on the local field corresponding to the first state variable among the plurality of local fields, the value of the first state variable is updated according to the amount of change, and when the value of the first state variable is updated, the plurality of first local fields corresponding to the plurality of first state variables are updated based on the first coupling coefficient corresponding to the updated first state variable, and the plurality of second local fields corresponding to the plurality of second state variables are updated based on the second coupling coefficient corresponding to the updated first state variable. An information processing device characterized by the following:
2. An information processing device for searching for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of the state variables in the plurality of state variables, First memory unit and, Processing section and It has, The first storage unit stores a portion of the plurality of coupling coefficients, The processing unit reads a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables in the trial target portion, which is the portion of the plurality of state variables that is the subject of a trial to determine whether or not to update the value, from the storage device that stores the plurality of coupling coefficients and stores them in the first storage unit. Using the plurality of first coupling coefficients stored in the first storage unit, the trial of whether or not to update the value of any of the first state variables belonging to the trial target portion is performed multiple times. Perform the process, By repeatedly changing the trial target portion and performing the process, the entire set of state variables becomes the target of the trial. The system further includes a third storage unit that stores the values of the plurality of first state variables and a plurality of first local fields corresponding to the plurality of first state variables, which are used to calculate the amount of change in the value of the energy function in response to the change in the values of the plurality of first state variables. The aforementioned processing unit, It is possible to access the fourth storage unit which stores the values of the plurality of state variables and the plurality of second local fields corresponding to the plurality of state variables, In the aforementioned modification of the trial target portion, From the plurality of state variables, a plurality of second coupling coefficients corresponding to a plurality of second pairs of a first difference state variable that is included in the previous trial portion but not in the current trial portion and a plurality of other state variables are read from the storage device together with the plurality of first coupling coefficients and stored in the first storage unit. The first value of the first difference state variable stored in the third storage unit is used to update the second value of the first difference state variable stored in the fourth storage unit, and the plurality of second local fields stored in the fourth storage unit are updated based on the difference between the values before and after the update of the second value and the plurality of second coupling coefficients. Of the multiple state variables, the third value of the second difference state variable that is not included in the previous trial target portion but is included in the current trial target portion is obtained from the fourth storage unit and stored in the third storage unit; the difference between the fourth value of each of the multiple first state variables stored in the third storage unit and the fifth value corresponding to each of the multiple first state variables stored in the fourth storage unit, the second local field of the second difference state variable stored in the fourth storage unit, and the multiple first coupling coefficients stored in the first storage unit are used to calculate the local field for the second difference state variable and store it in the third storage unit; In the above trial, based on the first local field corresponding to the first state variable belonging to the trial target portion among the plurality of first local fields stored in the third memory unit, the amount of change in the value of the energy function when the value of the first state variable changes is calculated, the value of the first state variable stored in the third memory unit is updated according to the amount of change, and when the value of the first state variable is updated, the plurality of first local fields stored in the third memory unit are updated based on the first coupling coefficient corresponding to the updated first state variable. An information processing device characterized by the following:
3. The processing unit performs the updating of the plurality of second local fields stored in the fourth storage unit and the trial on the current trial target portion in parallel. The information processing apparatus according to claim 2.
4. When the processing unit reads the plurality of second coupling coefficients from the storage device, it excludes from the reading the coupling coefficients that correspond to pairs of the first difference state variable and other state variables that belonged to the trial target when the first difference state variable was added to the trial target. The information processing apparatus according to claim 2 or 3.
5. The processing unit reads from the storage device the coupling coefficients corresponding to the difference in state variables between the previous trial target portion and the current trial target portion, and omits reading from the storage device the coupling coefficients corresponding to the overlapping state variables between the previous trial target portion and the current trial target portion. The information processing apparatus according to any one of claims 1 to 4.
6. While the processing unit is performing the trial on the current trial target portion, it reads in advance from the storage device the coupling coefficients corresponding to the state variables of the next trial target portion. The information processing apparatus according to any one of claims 1 to 5.
7. The indices of the plurality of first state variables belonging to the trial portion are continuous or discontinuous. The information processing apparatus according to any one of claims 1 to 6.
8. The number of state variables in the difference between the previous trial target portion and the current trial target portion is multiple. The information processing apparatus according to any one of claims 1 to 7.
9. In the trial, the processing unit performed the following: From the plurality of first state variables, one of the first state variables is selected randomly or in a predetermined order, and it is determined based on the energy function whether or not to update the value of the selected first state variable, and the value of the first state variable that is determined to be updated is updated. Alternatively, the system may determine in parallel, based on the energy function, whether or not updating the values of all of the plurality of first state variables, or a predetermined number of first state variables selected from the plurality of first state variables, is permitted, and the values of any of the first state variables for which updating is permitted are updated. The information processing apparatus according to any one of claims 1 to 8.
10. An information processing method for searching for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of state variables in the plurality of state variables, wherein the information processing device is From the plurality of state variables, a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables in the trial target portion, which is the portion of the plurality of state variables that is the subject of the trial to determine whether or not to update the value, are read from the memory device that stores the plurality of coupling coefficients and stored in a first storage unit that stores a portion of the plurality of coupling coefficients. Using the plurality of first coupling coefficients stored in the first storage unit, the trial of whether or not to update the value of any of the first state variables belonging to the trial target portion is performed multiple times. Perform the process, By repeatedly changing the trial target portion and performing the process, the entire set of state variables becomes the target of the trial. In the above process, The values of the plurality of state variables and the plurality of local fields corresponding to the plurality of state variables, which are used to calculate the amount of change in the value of the energy function in response to the change in the value of the state variables, are stored in the second storage unit. The plurality of second coupling coefficients corresponding to the plurality of second pairs of each of the plurality of first state variables and each of the plurality of second state variables that do not belong to the trial target portion are read from the storage device together with the plurality of first coupling coefficients and stored in the first storage unit. In the above trial, the change in the value of the energy function when the value of the first state variable changes is calculated based on the local field corresponding to the first state variable among the plurality of local fields, the value of the first state variable is updated according to the amount of change, and when the value of the first state variable is updated, the plurality of first local fields corresponding to the plurality of first state variables are updated based on the first coupling coefficient corresponding to the updated first state variable, and the plurality of second local fields corresponding to the plurality of second state variables are updated based on the second coupling coefficient corresponding to the updated first state variable. Information processing methods.
11. An information processing method for searching for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of state variables in the plurality of state variables, wherein the information processing device is From the plurality of state variables, a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables in the trial target portion, which is the portion of the plurality of state variables that is the subject of the trial to determine whether or not to update the value, are read from the memory device that stores the plurality of coupling coefficients and stored in a first storage unit that stores a portion of the plurality of coupling coefficients. Using the plurality of first coupling coefficients stored in the first storage unit, the trial of whether or not to update the value of any of the first state variables belonging to the trial target portion is performed multiple times. Perform the process, By repeatedly changing the trial target portion and performing the process, the entire set of state variables becomes the target of the trial. In the above process, The values of the plurality of first state variables and the plurality of first local fields corresponding to the plurality of first state variables, which are used to calculate the amount of change in the value of the energy function in response to the change in the value of the plurality of first state variables, are stored in the third storage unit. It is possible to access the fourth storage unit which stores the values of the plurality of state variables and the plurality of second local fields corresponding to the plurality of state variables, In the aforementioned modification of the trial target portion, From the plurality of state variables, a plurality of second coupling coefficients corresponding to a plurality of second pairs of a first difference state variable that is included in the previous trial portion but not in the current trial portion and a plurality of other state variables are read from the storage device together with the plurality of first coupling coefficients and stored in the first storage unit. The first value of the first difference state variable stored in the third storage unit is used to update the second value of the first difference state variable stored in the fourth storage unit, and the plurality of second local fields stored in the fourth storage unit are updated based on the difference between the values before and after the update of the second value and the plurality of second coupling coefficients. Of the multiple state variables, the third value of the second difference state variable that is not included in the previous trial target portion but is included in the current trial target portion is obtained from the fourth storage unit and stored in the third storage unit; the difference between the fourth value of each of the multiple first state variables stored in the third storage unit and the fifth value corresponding to each of the multiple first state variables stored in the fourth storage unit, the second local field of the second difference state variable stored in the fourth storage unit, and the multiple first coupling coefficients stored in the first storage unit are used to calculate the local field for the second difference state variable and store it in the third storage unit; In the above trial, based on the first local field corresponding to the first state variable belonging to the trial target portion among the plurality of first local fields stored in the third memory unit, the amount of change in the value of the energy function when the value of the first state variable changes is calculated, the value of the first state variable stored in the third memory unit is updated according to the amount of change, and when the value of the first state variable is updated, the plurality of first local fields stored in the third memory unit are updated based on the first coupling coefficient corresponding to the updated first state variable. Information processing methods.
12. A program for searching for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of state variables in the plurality of state variables, wherein the computer... From the plurality of state variables, a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables in the trial target portion, which is the portion of the plurality of state variables that is the subject of the trial to determine whether or not to update the value, are read from the memory device that stores the plurality of coupling coefficients and stored in a first storage unit that stores a portion of the plurality of coupling coefficients. Using the plurality of first coupling coefficients stored in the first storage unit, the trial of whether or not to update the value of any of the first state variables belonging to the trial target portion is performed multiple times. Perform the process, By repeatedly changing the trial target portion and performing the process, the entire set of state variables becomes the target of the trial. In the above process, The values of the plurality of state variables and the plurality of local fields corresponding to the plurality of state variables, which are used to calculate the amount of change in the value of the energy function in response to the change in the value of the state variables, are stored in the second storage unit. The plurality of second coupling coefficients corresponding to the plurality of second pairs of each of the plurality of first state variables and each of the plurality of second state variables that do not belong to the trial target portion are read from the storage device together with the plurality of first coupling coefficients and stored in the first storage unit. In the above trial, the change in the value of the energy function when the value of the first state variable changes is calculated based on the local field corresponding to the first state variable among the plurality of local fields, the value of the first state variable is updated according to the amount of change, and when the value of the first state variable is updated, the plurality of first local fields corresponding to the plurality of first state variables are updated based on the first coupling coefficient corresponding to the updated first state variable, and the plurality of second local fields corresponding to the plurality of second state variables are updated based on the second coupling coefficient corresponding to the updated first state variable. A program that executes a process.
13. A program for searching for a solution to a combinatorial optimization problem based on the energy function of an Ising model, which includes a plurality of state variables and a plurality of coupling coefficients corresponding to a plurality of pairs of state variables in the plurality of state variables, wherein the computer... From the plurality of state variables, a plurality of first coupling coefficients corresponding to a plurality of first pairs of first state variables in the trial target portion, which is the portion of the plurality of state variables that is the subject of the trial to determine whether or not to update the value, are read from the memory device that stores the plurality of coupling coefficients and stored in a first storage unit that stores a portion of the plurality of coupling coefficients. Using the plurality of first coupling coefficients stored in the first storage unit, the trial of whether or not to update the value of any of the first state variables belonging to the trial target portion is performed multiple times. Perform the process, By repeatedly changing the trial target portion and performing the process, the entire set of state variables becomes the target of the trial. In the above process, The values of the plurality of first state variables and the plurality of first local fields corresponding to the plurality of first state variables, which are used to calculate the amount of change in the value of the energy function in response to the change in the value of the plurality of first state variables, are stored in the third storage unit. It is possible to access the fourth storage unit which stores the values of the plurality of state variables and the plurality of second local fields corresponding to the plurality of state variables, In the aforementioned modification of the trial target portion, From the plurality of state variables, a plurality of second coupling coefficients corresponding to a plurality of second pairs of a first difference state variable that is included in the previous trial portion but not in the current trial portion and a plurality of other state variables are read from the storage device together with the plurality of first coupling coefficients and stored in the first storage unit. The first value of the first difference state variable stored in the third storage unit is used to update the second value of the first difference state variable stored in the fourth storage unit, and the plurality of second local fields stored in the fourth storage unit are updated based on the difference between the values before and after the update of the second value and the plurality of second coupling coefficients. Of the multiple state variables, the third value of the second difference state variable that is not included in the previous trial target portion but is included in the current trial target portion is obtained from the fourth storage unit and stored in the third storage unit; the difference between the fourth value of each of the multiple first state variables stored in the third storage unit and the fifth value corresponding to each of the multiple first state variables stored in the fourth storage unit, the second local field of the second difference state variable stored in the fourth storage unit, and the multiple first coupling coefficients stored in the first storage unit are used to calculate the local field for the second difference state variable and store it in the third storage unit; In the above trial, based on the first local field corresponding to the first state variable belonging to the trial target portion among the plurality of first local fields stored in the third memory unit, the amount of change in the value of the energy function when the value of the first state variable changes is calculated, the value of the first state variable stored in the third memory unit is updated according to the amount of change, and when the value of the first state variable is updated, the plurality of first local fields stored in the third memory unit are updated based on the first coupling coefficient corresponding to the updated first state variable. A program that executes a process.
Citation Information
Patent Citations
Information processing system and management device
JP2016051350A
Optimization system, optimization apparatus, and optimization system control method
JP2019139323A
Optimization device and control method of optimization device
JP2020038435A
Sampling device and sampling method
JP2020204929A
Optimization device and optimization method
JP2021157360A