Data processing device, data processing method, and program
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-12-23
- Publication Date
- 2026-08-13
AI Technical Summary
【0031】 1つの側面では、演算の効率化を可能にできる。
Smart Images

Figure 0007904483000028 
Figure 0007904483000029 
Figure 0007904483000030
Abstract
Description
[Technical Field]
[0001] The present invention relates to a data processing device, a data processing method, and a program. [Background technology]
[0002] An Ising machine, which uses an Ising-type evaluation function, is a device that can compute large-scale discrete optimization problems that von Neumann computers are not good at. The evaluation function is also called an energy function. An Ising machine is also called a Boltzmann machine.
[0003] The Ising apparatus converts a discrete optimization problem into an Ising model representing the behavior of a magnetic material's spin. The Ising apparatus then uses Markov chain Monte Carlo methods, such as pseudo-annealing and replica exchange, to search for a state in the Ising model where the value of the Ising-type evaluation function is minimized. The value of the Ising-type evaluation function corresponds to energy. The optimal solution is the state where the evaluation function has its minimum value. The Ising apparatus can also search for a state where the evaluation function has a maximum value by changing the sign of the evaluation function. The state of the Ising model can be represented by a combination of values for multiple state variables. Each state variable can have a value of either 0 or 1.
[0004] An Ising-type evaluation function is defined, for example, by a quadratic function such as equation (1) below.
[0005]
number
[0006] The first term on the right-hand side represents the product of the values (0 or 1) of two state variables and their weight values for all possible combinations of the N state variables in the Ising model, without any omissions or overlaps. The weight values represent the strength of the interaction between the two state variables. x i The state variable is i, x j In this case, the identification number is j, and W ijis the weight value indicating the magnitude of the interaction between the state variables with identification numbers i and j. The two terms on the right side are the sum of the products of the bias coefficient and the state variable for each identification number. b i indicates the bias coefficient for the identification number i.
[0007] Also, x i The amount of change in energy (ΔE i ) accompanying the change in the value of is expressed by the following equation (2).
[0008]
Equation
[0009] In Equation (2), when x i changes from 1 to 0, Δx i becomes -1, and when the state variable x i changes from 0 to 1, Δx i becomes 1. Note that h i is called the local field, and Δx i multiplied by the sign (+1 or -1) according to h i becomes ΔE i . Therefore, h i can also be said to be a variable representing the amount of change in energy or a variable determining the amount of change in energy.
[0010] And, for example, a state transition is generated by updating the value of x i with an acceptance probability expressed as exp(-βΔE i ) (β is the reciprocal of the parameter representing temperature), and the local field is also updated, and this process is repeated.
[0011] Incidentally, some discrete optimization problems have constraints that the solution must satisfy. For example, in the knapsack problem, a type of discrete optimization problem, there is a constraint that the total capacity of the items that can be packed into the knapsack must be less than or equal to the capacity of the knapsack. Such constraints are called inequality constraints and can be expressed by constraint terms that have values depending on whether or not the constraint is violated. In addition to inequality constraints, there are also equality constraints and absolute value constraints.
[0012] The total energy (H(x)) including the constraint term can be expressed by the following equation (3).
[0013]
number
[0014] In equation (3), the sum of the first and second terms on the right-hand side represents the energy corresponding to E(x) in equation (1), and the third term on the right-hand side represents the total magnitude (energy) of the constraint term. Also, D represents the set of identification numbers for the state variable, k represents the identification number for the constraint term, and A represents the set of identification numbers for the constraint term. Also, λ k This is a predetermined positive coefficient for the constraint term whose identification number is k.
[0015] If the constraint is an inequality constraint, then g(h) in equation (3) k ) can be expressed by the following equation (4).
[0016]
number
[0017] In equation (4), max[0,h k ] is 0 and h k This is a function that outputs the larger of the two values. k This is the consumption (also called resource amount) of the constraint term with identification number k, U k This represents the upper limit of the resource amount. ki The identification number is x in the inequality constraint of k. i This is a coefficient (weight value) that indicates the weight of [something].
[0018] In Equation (3), x j The change in the total energy (ΔH j ) accompanying the change in the value of is represented by the following Equation (5).
[0019] [Number]
[0020] When the constraint condition is an inequality constraint, the change in the total energy (ΔH j ) accompanying the change in the value of can be represented by the following Equation (6) instead of Equation (5). j )
[0021] [Number]
[0022] In Equation (6), a ij is the coefficient indicating the weight of x j in the inequality constraint with the identification number i, and corresponds to the above W ki . C ui is the upper limit value in the inequality constraint with the identification number i, and corresponds to the above U k . M represents the number of constraint terms.Equation (3) is a linear discontinuous function, not a quadratic function like equation (1). To make the inequality constraints manageable with an Ising machine, one might consider converting the linear discontinuous function to a quadratic form. However, when calculating a discrete optimization problem using the constraint terms of the inequality constraint converted to a quadratic form, the processing can become complicated, making it difficult to solve using an Ising machine.
[0025] Therefore, a technique has been proposed in which the constraint terms of the inequality constraints described above are used in linear form, and the problem is solved using an Ising apparatus. Furthermore, there is a proposed optimization device that discretizes the decision variables in a mixed-integer programming problem that take continuous or integer values, transforms the mixed-integer programming problem into a combinatorial optimization problem, and then has a quantum computing device calculate the optimal solution to the combinatorial optimization problem.
[0026] Furthermore, there are proposals for defining a penalty function for arbitrary constraints and using this penalty function to solve constraint satisfaction problems through unconstrained optimization. In addition, there are proposals for quantizing the weights of discretized deep neural networks in machine learning. [Prior art documents] [Patent Documents]
[0027] [Patent Document 1] Japanese Patent Publication No. 2020-204928 [Patent Document 2] Japanese Patent Publication No. 2020-113190 [Patent Document 3] U.S. Patent Application Publication No. 2015 / 0205759 Specification [Patent Document 4] U.S. Patent Application Publication No. 2019 / 0354842 [Overview of the project] [Problems that the invention aims to solve]
[0028] Methods that use linear forms as constraint terms in inequality constraints to solve problems have the problem that the efficiency of the calculations is not sufficiently improved. In one aspect, the present invention aims to enable more efficient computation. [Means for solving the problem]
[0029] In one embodiment, a data processing device is provided that searches for a combination of values of multiple state variables such that the value calculated using an Ising-type evaluation function including multiple state variables is a local minimum or a local maximum. The data processing device has a storage unit and a processing unit. The storage unit stores the total energy, which is the sum of a constraint term having a value depending on whether or not a constraint condition is violated and the value of the evaluation function; the values of the multiple state variables; a first weight value between each of the multiple state variables; a second weight value between at least some of the multiple state variables and the constraint condition; a first local field representing the first change in the total energy when the value of each of the multiple state variables changes; and a second local field used to identify the amount of constraint violation with respect to the constraint condition. The processing unit repeatedly performs the following steps: determine whether to allow a change in the value of the first state variable among multiple state variables based on the first local field; if it determines that a change in the value of the first state variable is allowed, update the first local field based on the first weight value, update the second local field based on the second weight value between the first state variable and the constraint condition, and further update the first local field based on the first quantized local field obtained by quantizing the second local field before the update and the second quantized local field obtained by quantizing the second local field after the update.
[0030] In one embodiment, a data processing method to be performed by a data processing device is provided. Furthermore, a program to be performed by a computer is also provided. [Effects of the Invention]
[0031] In one respect, it can enable more efficient computation. [Brief explanation of the drawing]
[0032] [Figure 1] This is a diagram illustrating a data processing device according to the first embodiment. [Figure 2] The figure shows an example of a constraint term. [Figure 3] This figure shows the first example of quantization of the second local field. [Figure 4] This figure shows a second example of the quantization of the second local field. [Figure 5] This figure shows an example of the hardware of a data processing device according to the second embodiment. [Figure 6] This figure shows an example of the functions of a data processing device. [Figure 7] This figure shows examples of the restoration unit and the hi calculation unit. [Figure 8] This figure shows an example of the hk calculation unit. [Figure 9] This figure shows an example of an energy correction processing unit. [Figure 10] This figure shows an example of a timing chart. [Figure 11] This is a flowchart illustrating an example of the overall process. [Figure 12] This flowchart shows an example of a decision variable flip selection process. [Figure 13] This figure shows an example of the functions of the data processing device according to the third embodiment. [Figure 14] This figure shows an example of the hi calculation unit. [Figure 15] This figure shows an example of a constraint term calculation unit. [Figure 16] This figure shows an example of a timing chart. [Figure 17] This is a flowchart illustrating an example of the overall process. [Figure 18] This figure shows an example of the functions of the data processing device according to the fourth embodiment. [Figure 19] This figure shows an example of the hi calculation unit. [Figure 20] This diagram shows the functions of the data processing device in Comparative Example 1. [Figure 21] This figure shows an example of prediction error occurring in the data processing device of Comparative Example 1. [Figure 22] This figure shows an example of the functionality (part 1) of the data processing device in Comparative Example 2. [Figure 23] This figure shows an example of the functions of the data processing device in Comparative Example 2 (part 2). [Modes for carrying out the invention]
[0033] This embodiment will be described below with reference to the drawings. [First Embodiment] A first embodiment will be described.
[0034] Figure 1 is a diagram illustrating a data processing device according to the first embodiment. The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The memory unit 11 is, for example, a volatile memory device such as a DRAM (Dynamic Random Access Memory), or a non-volatile memory device such as an HDD (Hard Disk Drive) or flash memory. The memory unit 11 may also include electronic circuits such as SRAM (Static Random Access Memory) or registers.
[0035] The memory unit 11 stores H(x) and multiple (hereinafter N) state variables (x i ) value, N x i The first weight value between each of the (W mentioned above) ij ), N x i The second weight value (W) between any of the M constraint conditions ki ) is stored. N is an integer greater than or equal to 2. M is an integer greater than or equal to 1. W ij =W ji That is. W ii = 0. Note that the memory unit 11 does not need to store a second weight value (a second weight value with a value of 0) for a state variable that does not affect any of the M constraint conditions.
[0036] i is N x i This is an identification number representing one of the following, where k is an identification number representing one of the M constraint terms (or constraint conditions). The identification number is also called an index. Furthermore, the memory unit 11 stores N x i The change in H(x) (ΔH) when each of the values of changes. i ) represents the first local field (h i ) and the second local field (h) used to identify the constraint violation amount for each of the constraint conditions of M k ) are stored. Note that the state variables can also be called decision variables. Since each second local field corresponds to each constraint term, i.e., each constraint condition, the second weight values can also be called the weight values between the state variables and the constraint conditions.
[0037] The total energy H(x) stored in the memory unit 11 can be expressed as H(x) = E(x) + P(x). E(x) is the sum of the first and second terms on the right-hand side of equation (3) mentioned above. The total energy P(x) of the M constraint terms corresponding to the M constraint conditions will be expressed by equation (7) below.
[0038]
number
[0039] P(x) represents the total number of constraint terms (one or more) and indicates the magnitude of all such constraint terms. For this reason, P(x) can also be called the evaluation function of the constraint terms. λ k λ is the proportionality coefficient related to the constraint term with identification number = k, and represents the weight of the constraint term. k g(h) may have different values for each constraint term. k ) may be a Max function, for example, as expressed in equation (4). g(h k This can also be called a penalty function.
[0040] Second local field (h k ) can be expressed by the following equation (8).
[0041]
number
[0042] In equation (8), b k This is a coefficient related to the constraint condition for identification number = k. Identification number = k If the constraint is an inequality constraint, the first term on the right-hand side of equation (8) is the R of equation (4) mentioned above. k This corresponds to +b k -U in equation (4) k This corresponds to h k R k and U k It can be said that this is a variable used to identify the difference, i.e., the amount of constraint violation.
[0043] Note that there is a state variable (x i ΔH when the value of ) changes i This can be expressed using constraint terms as follows: (9)
[0044]
number
[0045] g(h) in equation (9) k +W ki Δx i )-g(h k ) is a state variable (x i This represents the change in the value of the constraint term when the value of ) changes. Figure 2 shows an example of a constraint term.
[0046] The vertical axis of Graph 20 is g(h k The horizontal axis represents the size of ), and the horizontal axis is h k It represents. Graph 20 shows an example of a constraint term, g(h k )=max[0,h k This shows that such constraint terms are functions of type ReLU (Rectified Linear Unit). i As the value of h changes, k ga h k +W ki Δx i When it changes to this, the amount of change in the value of the constraint term is g(h k+W ki Δx i ) - g(h k ) is represented as
[0047] The data processing device 10 of this embodiment uses, as the first local field (h i ), not only the change amount of E(x) accompanying the change in the value of x i , but also the change amount of P(x). Such h i can be expressed by the following formula (10).
[0048]
Number
[0049] In formula (10), Δg(h k , W ki Δx i ) is represented by the following formula (11) and is a quantity that can be calculated from x i , h k , and W ki .
[0050]
Number
[0051] By using h i ] like formula (10), ΔH i is represented as ΔH[[ID=;56]] i = -h i Δx i j . According to formulas (10) and (11), usually, h j can be updated by the following formula (12) according to the change in h k responding to the change in the value of x i .
[0052]
Number
[0053] In formula (12), h k(old) This is the h before the update. k This represents the case where i=j, h i Since it does not change, no update is necessary. However, the method of updating the first local field by directly using the second local field as shown in equation (12) may result in a large computational cost associated with updating the first local field, especially when there are many state variables or constraint terms.
[0054] Therefore, the processing unit 12 checks the second local field (h) before and after the update. k Based on the quantized local field obtained by quantizing ), the change in the value of the constraint term is expressed as the first local field (h i The quantized local field may be an approximation of the second local field, or it may be a code associated with the approximation, which has a predetermined number of bits less than the original local field. When the code is used as the quantized local field, the processing unit 12 restores the approximation of the original local field based on the code, and reflects the change in the value of the constraint term calculated based on the approximation to the first local field. Here, the quantized local field corresponding to the second local field before the update is called the first quantized local field. The quantized local field corresponding to the second local field after the update is called the second quantized local field.
[0055] When using quantized local fields, for i ≠ j, h i This is updated by the following equation (13).
[0056]
number
[0057] Furthermore, the second local field contains errors due to quantization, so x j Due to the update h k h i The update is performed by the following equation (14) when i=j.
[0058]
number
[0059] h k ^ represents a variable formed by adding a hat symbol to the letter h and then adding the subscript k to its lower right. For example, h k ^ (old) This corresponds to the first quantized local field, the local field h before updating. k This will show an approximate value of h. Also, for example, h k ^ corresponds to the second quantized local field, the updated local field h k This should represent an approximate value.
[0060] In the quantization of the second local field, the processing unit 12 clips the maximum and minimum values of the second local field using, for example, a value based on the maximum weight value corresponding to each constraint condition, and quantizes the values in between with a predetermined number of bits. For example, each value included in a certain range of the second local field is associated with a single quantized local field corresponding to that range. A more specific method for quantizing the second local field will be described later.
[0061] Furthermore, because there is an approximation of the second local field, the total energy H, for example, is corrected by equation (15).
[0062]
number
[0063] However, as will be described later, it is also possible to avoid correcting the total energy H based on equation (15) by separately storing the change in the penalty term based on the quantized local field and the first local field in the memory unit 11 for calculating ΔH for flip determination.
[0064] Here, the memory unit 11 further calculates the bias coefficient (b i ), proportionality constant (λ k ), coefficients related to constraints (b kThe memory unit 11 may also store various data, such as calculation conditions, when the processing unit 12 executes the data processing method described later. Furthermore, if the processing unit 12 executes some or all of the processing of the data processing method described later using software, the memory unit 11 stores a program for executing that processing.
[0065] The processing unit 12 in Figure 1 may be implemented by a processor such as a CPU (Central Processing Unit), GPU (Graphics Processing Unit), DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), or FPGA (Field Programmable Gate Array).
[0066] The processing unit 12 searches for a state in which H(x) is minimized, for example. The state in which H(x) reaches its smallest value among the local minima is the optimal solution. Note that by changing the signs of E(x) and P(x), the processing unit 12 can also search for a state in which the value of H(x) is maximized (in this case, the state in which it reaches its maximum value is the optimal solution).
[0067] Figure 1 shows an example of the processing flow by the processing unit 12. Note that here we have H(x) and h i h k , x k x1~x N Assume that a value based on the initial value is stored in the memory unit 11.
[0068] The processing unit 12 selects a state variable from N state variables that is a candidate for changing the value (hereinafter referred to as a flip candidate) (step S1). The processing unit 12 selects the flip candidate state variables, for example, randomly or in a predetermined order.
[0069] Then, the processing unit 12 calculates ΔH when the value of the selected state variable changes (step S2). For example, x iWhen selected, ΔH i is, as described above, h i Based on this, ΔH i = -h i Δx i can be calculated by the formula.
[0070] Next, the processing unit 12 determines whether to allow a change in the value of the state variable of the flip candidate (whether flipping is possible) based on the comparison result between ΔH and a predetermined value (step S3). Hereinafter, this determination process is referred to as a flip determination process.
[0071] The predetermined value is, for example, a noise value obtained based on a random number and the value of a temperature parameter. For example, log(rand)×T, which is an example of a noise value obtained based on a uniform random number (rand) between 0 and 1 and a temperature parameter (T), can be used as the predetermined value. In this case, when -ΔH i ≧ log(rand)×T, the processing unit 12 determines that a change in the value of the state variable of the flip candidate is allowed (flipping is possible). When -ΔH i < log(rand)×T, the processing unit 12 does not allow a change in the value of the state variable of the flip candidate.
[0072] When the processing unit 12 determines that flipping is possible, it performs the next update process for the first local field (h i ) and the second local field (h k ) (step S4). For example, when the processing unit 12 determines that x j is flippable, for each of the N state variables, Δh i = W i = W ij Δx j is added to the original h i to update h j At the same time, the processing unit 12 flips x ii = 0 when i = j, and h i does not change, so no update is required. Also, when the processing unit 12 determines that x j is flippable, x jThe second weight value (W) between kj h ) is non-zero k For Δh k =W kj Δx j By adding h k Perform the update.
[0073] For example, the first local field (h i ) is h1~h N And the second local field (h k ) is h N+1 ~h N+M In this case, the processing unit 12 performs parallel computation with a degree of parallelism of N+M, h i ,h k You can update it.
[0074] Furthermore, the processing unit 12 checks the second local field (h) before and after the update. k The first quantized local field h obtained by quantizing ) k ^ (old) and the second quantized local field h k Based on ^, by equations (13) and (14), h i Further update (step S5). In step S5, the processing unit 12 also corrects the total energy H using, for example, equation (15). Note that the first quantized local field h k ^ (old) This is the second local field h before the update. k (old) This is the quantized value. Second quantized local field h k ^ represents the updated second local field h k This is the quantized value.
[0075] The processing unit 12 repeats the processes of steps S1 to S5 described above. Here, in step S5, the processing unit 12 processes the first quantization local field h k ^ (old) For this, the second quantized local field h k If there is no change in ^, then h is given by equations (13) and (14). i The update can be omitted. However, if the processing unit 12 performs a correction of the total energy H according to equation (15), it always performs the correction in step S5.
[0076] In the above explanation, an example was shown in which one state variable is selected as a flip candidate from among the N state variables and the processing in steps S2 to S4 is performed. However, the processing in steps S2 to S3 may be performed in parallel for multiple (for example, all N) state variables. In that case, when there are multiple state variables whose values are allowed to change, the processing unit 12 selects a state variable to change its value randomly or according to a predetermined rule.
[0077] When performing a pseudo-annealing method, the processing unit 12, for example, decreases the value of the aforementioned temperature parameter (T) according to a predetermined temperature parameter change schedule each time the flip determination process for the state variable is repeated a predetermined number of times. The processing unit 12 then outputs the state obtained when the flip determination process has been repeated a predetermined number of times (or when a predetermined T is reached) as the calculation result of the discrete optimization problem. The processing unit 12 may also store the total energy and state at the point where the minimum energy has been reached so far in the storage unit 11. In that case, the processing unit 12 may output the state corresponding to the stored minimum energy after the flip determination process has been repeated a predetermined number of times as the calculation result.
[0078] When the processing unit 12 performs the replica exchange method, the processing unit 12 repeats the processes in steps S1 to S4 above for each of the multiple replicas, each with a different T value. The processing unit 12 then performs a replica exchange each time the flip determination process is repeated a predetermined number of times. For example, the processing unit 12 selects two replicas with adjacent T values and exchanges the values of each state variable between the two selected replicas at a predetermined exchange probability based on the energy difference and the difference in T values between the replicas. Alternatively, the T value may be exchanged between the two replicas instead of the values of each state variable. Or, the processing unit 12 stores the total energy and state when the minimum energy up to that point is reached. The processing unit 12 then outputs the state corresponding to the minimum energy among the stored minimum energies across all replicas as a calculation result after the flip determination process has been repeated a predetermined number of times for each replica.
[0079] By using the replica exchange method, the state changes even on the low-temperature side (the replica with a small T value), which is where the state hardly changes, increasing the likelihood of finding a good solution in a short time. The replica exchange method is also known as the parallel tempering method.
[0080] Next, we will explain an example of quantization of the second local field. Figure 3 shows a first example of the quantization of the second local field. Graph 30 shows the second local field h k An example is shown of converting to a quantized local field by clipping it at a maximum value of 3δ and a minimum value of -4δ, and approximating the interval with 3 bits, i.e., 8 possible values. Table 31 shows the second local field h k and the quantized local field h k ^ and the quantized local field h k ^ corresponds to the 3-bit code x k The relationship is illustrated as follows.
[0081] For example, -δ / 2≦h k If <δ / 2, h k ^= <h k > δ = 0, and code xk =000 is associated with this. Also, δ / 2≦h k If ≤ 3δ / 2, h k ^=δ, and code x k =001 is associated. In this way, according to Table 31, code x k and the second local field h k and quantized local field h k The correspondence with ^ is defined in advance. The storage unit 11 may hold a table 31. The processing unit 12 determines the second local field h based on the table 31. k By quantizing it, the quantized local field h k ^ or code x k You may generate this.
[0082] Figure 4 shows a second example of the quantization of the second local field. Graph 40 shows the second local field h k The maximum value W corresponding to the constraints. max (k) An example is shown where the data is converted to a quantized local field by clipping at =δ and the minimum value -δ, and approximating the interval between them with one bit, i.e., two possible values. Table 41 shows the second local field h k and the quantized local field h k ^ and the quantized local field h k ^ is the 1-bit code x k The relationship is illustrated as follows.
[0083] For example, h k If >0, h k ^=δ / 2, and code x k =1 is associated with it. Also, h k If ≤ 0, h k ^=-δ / 2, and code x k =0 is associated. The memory unit 11 may hold table 41. The processing unit 12 determines the second local field h based on table 41. k By quantizing it, the quantized local field h k ^ or code x k You may generate this.
[0084] Note that in the explanation of Figures 3 and 4, the approximate value h of the second local field is used. k ^ was explained as an example of a quantized local field, but as mentioned above, the approximate value h k ^ corresponds to the code (x in this example). k ) can be considered an example of a quantized local field.
[0085] According to the data processing device 10 and data processing method described above, it is possible to improve the efficiency of calculations. For example, in step S5 of Figure 1, h k ^ (old) against h k If there is no change in ^, then h is given by equations (13) and (14). i The update of the original h can be omitted. k Each time it is updated h i Rather than updating h i The computational cost associated with updating can be reduced. As a result, the solution-finding performance of the data processing device 10 can be improved. For example, the data processing device 10 can perform solution calculations at high speed. In addition, the data processing device 10 can increase the likelihood of reaching a better solution in a relatively short time. The local field corresponding to the constraints is the coefficient λ k Because it is multiplied by and reflected in the total energy as a relatively large value, using the quantized value as the local field has very little effect on solving the problem.
[0086] Furthermore, the processing unit 12 controls the first local field h i A first arithmetic unit that performs the calculation, and a second local field h k It may also have a separate second arithmetic unit that performs the operation h from the second arithmetic unit to the first arithmetic unit. k When transmitting information about ^, the second arithmetic unit uses table 31 or table 41 to determine code x k The first arithmetic unit can send code x based on table 31 or table 41. k from h k Get ^ and h iThis allows for updates to be performed. In this way, the amount of information output from the second arithmetic unit to the first arithmetic unit is reduced. As a result, the complexity of the internal wiring of the processing unit 12 is suppressed, and the cost of implementing the internal circuitry of the processing unit 12 is reduced. Consequently, larger-scale parallel computation becomes possible.
[0087] [Second Embodiment] Next, a second embodiment will be described. Figure 5 shows an example of the hardware of the data processing device according to the second embodiment.
[0088] The data processing device 100 includes a processor 101, DRAM 102, HDD 103, GPU 104, input interface 105, media reader 106, communication interface 107, and accelerator card 108. These units of the data processing device 100 are connected to a bus inside the data processing device 100.
[0089] The processor 101 is an arithmetic unit that executes program instructions. The processor 101 is, for example, a CPU. The processor 101 loads at least a portion of the program and data stored in the HDD 103 into the DRAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing unit 100 may also have multiple processors. The processes described below may be executed in parallel using multiple processors or processor cores. A collection of multiple processors is sometimes referred to as a "multiprocessor" or simply a "processor."
[0090] DRAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used by the processor 101 for calculations. The data processing device 100 may also be equipped with other types of memory, and may be equipped with multiple memory devices.
[0091] 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.
[0092] The GPU 104 outputs an image to the display 51 connected to the data processing unit 100, according to instructions from the processor 101. Any type of display can be used as the display 51, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display, or an organic electro-luminescence (OEL) display.
[0093] The input interface 105 acquires input signals from the input device 52 connected to the data processing unit 100 and outputs them to the processor 101. The input device 52 can be a pointing device such as a mouse, touch panel, touchpad, or trackball, a keyboard, a remote controller, or a button switch. Furthermore, multiple types of input devices may be connected to the data processing unit 100.
[0094] The media reader 106 is a reading device that reads programs and data recorded on the recording medium 53. The recording medium 53 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).
[0095] The media reader 106 copies programs and data read from the recording medium 53 to other recording media such as DRAM 102 or HDD 103. The read programs are executed by the processor 101, for example. The recording medium 53 may be a portable recording medium and may be used for distributing programs and data. The recording medium 53 and HDD 103 are sometimes referred to as computer-readable recording media.
[0096] The communication interface 107 is connected to the network 54 and communicates with other information processing devices via the network 54. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or router, or a wireless communication interface connected to a wireless communication device such as a base station or access point.
[0097] Accelerator Card 108 is a hardware accelerator that searches for solutions to discrete optimization problems. A discrete optimization problem is represented by equation (3), which shows the total energy of the Ising model. Equation (3) includes constraint terms in a linear form that represent the constraints. The number of constraints, i.e., constraint terms, can be one or more.
[0098] The accelerator card 108 has a processor 110 and DRAM 120. The processor 110 is, for example, a GPU, DSP, ASIC, FPGA, etc. The processor 110 has internal memory 111. The internal memory 111 is, for example, SRAM. The DRAM 120 stores data used for processing by the processor 110.
[0099] The processor 110 is an example of the processing unit 12 in the first embodiment. The internal memory 111 or DRAM 120 is an example of the storage unit 11 in the first embodiment. However, the functions of the data processing device 100 shown below may be realized by the execution of a program stored in the DRAM 102 by the processor 101. In that case, the processor 101 is an example of the processing unit 12, and the cache memory or DRAM 102 provided by the processor 101 is an example of the storage unit 11.
[0100] Figure 6 shows an example of the functions of a data processing device. The data processing device 100 includes a decision variable processing unit 130, an auxiliary variable processing unit 140, an energy storage unit 150, and an energy correction processing unit 160. The decision variable processing unit 130, the auxiliary variable processing unit 140, the energy storage unit 150, and the energy correction processing unit 160 are implemented by electronic circuits such as FPGAs and ASICs. The auxiliary variable processing unit 140, the energy storage unit 150, and the energy correction processing unit 160 may be implemented by a GPU executing a program stored in DRAM 120. Alternatively, the auxiliary variable processing unit 140, the energy storage unit 150, and the energy correction processing unit 160 may be implemented by a CPU 101 executing a program stored in DRAM 102.
[0101] The decision variable processing unit 130 processes N decision variables (x i The value of ) is stored and processing is performed on the decision variable. The decision variable corresponds to the state variable in the first embodiment. The decision variable processing unit 130 has W holding units 131, 131a, ..., decision variable modules 132, 132a, ... and selection unit 133.
[0102] The W-holding units 131, 131a, ... each hold weight values between decision variables and between decision variables and constraint conditions, which are used in the decision variable modules 132, 132a, ... respectively. Decision variable modules 132, 132a, ... each calculate the local field and ΔE for decision variables belonging to a group obtained by dividing the N decision variables. ΔE represents the change in total energy, which is used for flipping decisions of the decision variables.
[0103] The decision variable module 132 is SRAM I / F (Interface) 171, h i It includes calculation units 172, 172a, ..., h storage unit 173, ΔE calculation units 174, 174a, ..., and restoration unit 175. Other decision variable modules, including decision variable module 132a, have the same functions as decision variable module 132.
[0104] The SRAM I / F171 reads the weight values corresponding to the flipped decision variable from the W holding unit 131, h i It is supplied to the calculation units 172, 172a, ... The SRAM I / F 171 also reads out the coefficients λ that represent the weights for each constraint term, which are held in the internal memory 111, and h i It is supplied to the calculation units 172, 172a, ...
[0105] h i The calculation units 172, 172a, ... calculate the local field (h) of the decision variable based on equations (13) and (14) in response to the flip of any of the decision variables. i ) calculates one h i The calculation unit corresponds to one decision variable. As shown in equations (13) and (14), the calculation of the local field of the decision variable uses an approximation based on the quantized local field obtained by quantizing the local field corresponding to the constraint term. i Calculation units 172, 172a, ... calculate h i This is stored in the h memory unit 173. Also, h i Calculation units 172, 172a, ... calculate h i These are supplied to the ΔE calculation units 174, 174a, ... respectively.
[0106] The h memory unit 173 stores h for each of the multiple replicas. i Remember this. The ΔE calculation units 174, 174a, ... each have hi h calculated by calculation units 172, 172a, ... i Based on this, ΔE is calculated and supplied to the selection unit 133. i For ΔE i =ΔH i =-h i Δx i That is the case.
[0107] The restoration unit 175 restores an approximate value of the local field before quantization based on a code of a predetermined number of bits that indicates the quantized local field, supplied from the energy correction processing unit 160, h i It is supplied to the calculation units 172, 172a, ...
[0108] The selection unit 133 performs a flip decision based on ΔE supplied from each of the decision variable modules 132, 132a, ..., and determines which decision variable x to flip. j Select the following. The same method as illustrated in the first embodiment is used for the flip determination. The selection unit 133 selects the index (Flip Bit) of the decision variable to be flipped from each of the decision variable modules 132, 132a, ... i It is supplied to the calculation unit. The selection unit 133 also selects the decision variable x to be flipped from among the decision variables held in the decision variable processing unit 130. j The value of is reversed. Note that in Figure 6, the determination variable storage unit that holds the values of each determination variable in the determination variable processing unit 130 is omitted from the illustration. The determination variable storage unit is implemented, for example, by the internal memory 111.
[0109] Furthermore, the selection unit 133 determines ΔE corresponding to the decision variable to be flipped. j The output is sent to the energy storage unit 150, and the total energy held in the energy storage unit 150 is updated. The auxiliary variable processing unit 140 processes M auxiliary variables (x) corresponding to the constraint terms. k The value of ) is stored and processing is performed on the auxiliary variable. Here, x k This is used, for example, to detect whether or not a constraint condition is met. For the constraint term, a ReLU-type function like the one in Figure 2 is used. For example, h k If >0, g(hk Since )>0, a constraint violation occurs, h k If >0, then x k =1, h k If ≤ 0, then x k = 0. However, in this embodiment, the data processing device 100 uses the auxiliary variable x k It is not necessary to retain the value.
[0110] The auxiliary variable processing unit 140 includes W holding units 141, 141a, ..., auxiliary variable modules 142, 142a, ..., and a selection unit 143. The W-holding units 141, 141a, ... each hold the weight values between the decision variable and the constraint conditions, which are used in the auxiliary variable modules 142, 142a, ... respectively.
[0111] The auxiliary variable modules 142, 142a, ... each perform local field calculations for auxiliary variables belonging to a group obtained by dividing the M auxiliary variables into separate modules. Auxiliary variable module 142 is SRAM I / F181, h k It has calculation units 182, 182a, ... and an h storage unit 183. Other auxiliary variable modules, including auxiliary variable module 142a, have the same functions as auxiliary variable module 142.
[0112] The SRAM I / F181 receives the flipped decision variable x from the W holding unit 141. j Read the corresponding weight value, h k This is supplied to the calculation units 182, 182a, ... h k The calculation units 182, 182a, ... determine the decision variable x j Depending on the flip, the local field of the auxiliary variable (h k ) and h k The code hk_code, which represents the quantized local field obtained by quantizing one h k The calculation unit corresponds to one auxiliary variable. h k The calculation units 182, 182a, ... calculate h k This is stored in the h memory unit 183. Also, h k The calculation units 182, 182a, ... calculate h kand h k ^ is supplied to the selection unit 143. At this time, h k The calculation units 182, 182a, ... calculate the local field h before updating. k (old) The code hk_old_code, which indicates the quantized local field, is also supplied to the selection unit 143.
[0113] The h memory unit 183 stores h for each of the multiple replicas. k Remember this. The selection unit 143 sequentially selects the index k of the constraint condition to be calculated and supplies the energy correction processing unit 160 with a code indicating the local field and quantized local field corresponding to index k.
[0114] The energy storage unit 150 stores the total energy corresponding to the current state of the Ising model. The energy correction processing unit 160 performs a correction on the total energy held in the energy holding unit 150 in accordance with the change in the local field of the auxiliary variable. In this correction, the effect of the quantized local field reflected in the local field on the decision variable side is corrected according to equation (15).
[0115] Furthermore, the energy correction processing unit 160 is h k A code hk_code of a predetermined number of bits corresponding to the quantized local field, and h k (old) The decision variable processing unit 130 outputs a code hk_old_code of a predetermined number of bits corresponding to the quantized local field. The predetermined number of bits is, for example, 3 bits or 1 bit, as described above, a very small number of bits compared to the usual number of bits for a local field.
[0116] Furthermore, the energy correction processing unit 160 outputs information hk^_update_bit to the decision variable processing unit 130, which indicates the index k in which hk_code has changed relative to hk_old_code. The decision variable processing unit 130 then uses hk^_update_bit to adjust the constraint term of index k. i This is used to determine whether or not to perform an update.
[0117] For example, the storage area of the internal memory 111 is used for the W holding units 131, 141 and the h storage units 173, 183. Figure 7 shows the restoration section and h i This figure shows an example of the calculation unit.
[0118] The restoration unit 175 has multipliers c11 and c12. The multiplier c11 multiplies the constant δ, which indicates the quantization precision supplied from the SRAM I / F171, and the code hk_code supplied from the energy correction processing unit 160, thereby h k Restore ^ and h i It is supplied to the calculation units 172, 172a, ...
[0119] The multiplier c12 multiplies the constant δ by the code hk_old_code supplied from the energy correction processing unit 160, thereby h k ^ (old) Restore h i It is supplied to the calculation units 172, 172a, ...
[0120] In this embodiment, the approximate value of the local field before quantization h is obtained by multiplying δ and the code as described above. k ^ and h k ^ (old) An example of how to restore it is shown, but it may be restored by other calculation methods as well.
[0121] h i The calculation unit 172 includes multipliers c21, c31, adders c22, c23, c33, Max arithmetic units c24, c25, c26, c27, subtractors c28, c29, c30, a selector (SEL) c32, and a register c34.
[0122] The multiplier c21 flips the decision variable x j Δx corresponding to j And the decision variable and h i The decision variable x corresponding to the calculation unit 172 i Weight values W between them ij It multiplies and and outputs the result of the multiplication. Also, the multiplier c21 is hi The decision variable x corresponding to the calculation unit 172 i Change in value Δx i and, x i The weight value W between the constraint term at index k. ki Multiply Δx by Δx and output the result. j and W ij The result of multiplication with is supplied to adder c33 by selector c32, and the original h i , Δh i =W ij Δx j Δx is added. i and W ki δh is calculated based on the result of multiplication with i =-λ k (Δg(h k ^,W ki Δx i )-Δg(h k ^ (old) ,W ki Δx i )) is supplied to adder c33 by selector c32, and the h i δh i The following is added. However, for the index j of the decision variable to be flipped, if i=j, then δh is given by equation (14). i =-λ k (Δg(h k ^,W ki Δx i ) + Δg(h k ^ (old) ,W ki Δx i )) Note that in diagrams, sign reversal is sometimes abbreviated, such as by showing subtraction in mathematical formulas using an adder.
[0123] The adder c22 receives h from the multiplier c11. k ^ and W supplied from multiplier c21 ki Δx i Add and output. The adder c23 receives h from the multiplier c12. k ^ (old) And W supplied from multiplier c21 ki Δx iAdd and output.
[0124] The Max arithmetic unit c24 receives h from the multiplier c11. k Compare ^ with 0 and output the larger value. The Max arithmetic unit c25 receives h from the adder c22. k ^+W ki Δx i It compares the value with 0 and outputs the larger value.
[0125] The Max arithmetic unit c26 receives h from the multiplier c12. k ^ (old) It compares the value with 0 and outputs the larger value. The Max arithmetic unit c27 receives h from the adder c23. k ^ (old) +W ki Δx i It compares the value with 0 and outputs the larger value.
[0126] The subtractor c28 calculates and outputs the difference between the output value of the Max arithmetic unit c24 and the output value of the Max arithmetic unit c25. The subtractor c29 calculates and outputs the difference between the output value of the Max arithmetic unit c26 and the output value of the Max arithmetic unit c27.
[0127] Subtractor c30 calculates and outputs the output values of subtractor c28 and subtractor c29. The multiplier c31 receives the coefficient λ from the SRAM I / F171. k The output value of subtractor c30 is multiplied by this value and supplied to selector c32. The output value of multiplier c31 is δh i It corresponds to this.
[0128] Selector c32 outputs a value to adder c33, W ij Δx j and δh i Switch between them. The adder c33 receives the value supplied from selector c32 and holds it in register c34. i Add to the h of register c34 i Update.
[0129] Register c34 is h i While retaining h i The ΔE is supplied to the ΔE calculation unit 174. When performing calculations on multiple replicas, h for each replica i h is stored in the h storage unit 173, and the h of the replica to be calculated i However, it is read from memory unit 173 into register c34.
[0130] Note h i Other h including the calculation unit 172a i The calculation unit is also h i This is achieved by a circuit configuration similar to that of the calculation unit 172. Figure 8 shows h k This figure shows an example of the calculation unit.
[0131] The auxiliary variable module 142 includes a multiplier c41, a non-zero detection unit c42, an adder c43, registers c44 and c45, quantization units c46 and c47, and a change detection unit c48.
[0132] The multiplier c41 flips the decision variable x j Change Δx j and h k W corresponding to the calculation unit 182 kj The multiplication operator c42 multiplies the result of the multiplication by the multiplier c41 and outputs the result. The non-zero detection unit c42 detects whether the result of the multiplication by the multiplier c41 is non-zero and outputs a flag indicating whether or not it is non-zero.
[0133] Adder c43 holds h in register c44 k The output value W of the multiplier c41. kj Δx j Add it. Register c44 is h k While retaining h k The following is supplied to the selection unit 143 and register c45. When performing calculations on multiple replicas, h for each replica k h is stored in the h storage unit 183, and the h of the replica to be calculated k However, it is read from memory unit 183 into register c44.
[0134] Register c45 is W by adder c43 kj Δx j h before addition k h is k (old) The value (=h_old) is stored and output. The quantization unit c46 determines the h stored in register c44 based on the constant δ that defines the quantization precision. k By quantizing h k A code hk_code corresponding to ^ is generated and supplied to the change detection unit c48.
[0135] The quantization unit c47 determines the h held in register c45 based on the constant δ. k (old) By quantizing h k ^ (old) The corresponding code hk_old_code is generated and supplied to the change detection unit c48.
[0136] The change detection unit c48 detects changes in the quantized local field based on the codes hk_code and hk_old_code, and supplies the selection unit 143 with hk^_update_bit, which is information indicating the index k in which the change was detected. At the same time, the change detection unit c48 supplies the codes hk_code and hk_old_code to the selection unit 143.
[0137] Note that other h calculation units, including the hk calculation unit 182a, are also included. k The calculation unit is also h k This is achieved by a circuit configuration similar to that of the calculation unit 182. Figure 9 shows an example of an energy correction processing unit.
[0138] The energy correction processing unit 160 controls the h of each of the auxiliary variable modules 142, 142a, ... k Of the calculation unit, h corresponding to the index k of the processing target selected by the selection unit 143 k The output from the calculation unit is received, and a correction process is performed on the total energy for each index k.
[0139] The energy correction processing unit 160 includes a parameter holding unit c51, a register c52, multipliers c53, c54, c62, Max arithmetic units c55, c56, c57, c58, and subtractors c59, c60, c61.
[0140] The parameter holding unit c51 holds constants δ and λ k It holds. Register c52 receives the codes hk_old_code, hk_code and local field h supplied from the selection unit 143. k ,h k (old) (=hk_old) is stored and output. In Figure 9, h_old_code represents the set of hk_old_code for each k, and h_code represents the set of h_code for each k. Also, h_old represents the set of h k (old) This shows the set, where h is the h for each k. k This shows the set.
[0141] The multiplier c53 multiplies δ by hk_old_code, k ^ (old) Restore and output it. The multiplier c54 multiplies δ by h_code, k Restore and output the ^ symbol.
[0142] The Max arithmetic unit c55 outputs the value h from the multiplier c54. k Compare ^ with 0 and output the larger value. The Max arithmetic unit c56 outputs the value h from the multiplier c53. k ^ (old) It compares the value with 0 and outputs the larger value.
[0143] The Max arithmetic unit c57 is h k (old) It compares the value with 0 and outputs the larger value. The Max arithmetic unit c58 is h k It compares the value with 0 and outputs the larger value. The subtractor c59 calculates and outputs the difference between the output value of the Max arithmetic unit c55 and the output value of the Max arithmetic unit c56.
[0144] The subtractor c60 calculates and outputs the difference between the output value of the Max arithmetic unit c57 and the output value of the Max arithmetic unit c58. Subtractor c61 calculates and outputs the difference between the output value of subtractor c59 and the output value of subtractor c60.
[0145] The multiplier c62 is equal to the subtractor c61 and λ k The total energy held in the energy holding unit 150 is corrected by multiplying the result and supplying the result to the energy holding unit 150. Thus, the energy correction processing unit 160 performs a correction process on the total energy based on equation (15). The energy correction processing unit 160 also supplies the codes hk_old_code, hk_code, and hk^_update_bit supplied from the selection unit 143 to the decision variable processing unit 130.
[0146] Figure 10 shows an example of a timing chart. Timing chart 60 shows an example of the operation of the data processing unit 100 when pipeline processing is performed using eight replicas. 0 to 7 are replica numbers. Figure 10 shows the processing details for replica number 0, while the other replicas are shown in a simplified manner.
[0147] In the replica with replica number = 0, a flip determination process is performed (t1), and x is determined according to the result. i The update will be made, and h i h k The weight values are read out for updating (t2). Then, h i h k The update will be performed (t3). Three h k When updates (represented as 0ka, 0kb, and 0kc in Figure 10) are performed, they are read out in order, h k ^, h k ^ (old) Generation, h kUpdate detection of ^ is performed (t4~t5). At this time, the total energy H is also corrected based on equation (15).
[0148] And when update detection is finished h k Starting with ^, the corresponding W ki The data was read out (t5), and δh i h based on i The update is performed (t6). Here, as mentioned above, for the index j to be flipped, if i≠j, then δh i =-λ k (Δg(h k ^,W ki Δx i )-Δg(h k ^ (old) ,W ki Δx i )), if i=j, δh i =-λ k (Δg(h k ^,W ki Δx i ) + Δg(h k ^ (old) ,W ki Δx i )) is.
[0149] Subsequently, the updated h i The data is read out (t7), and the calculation of ΔH, the flip determination process, and the calculation of H(x) are performed (t8). Next, the processing procedure of the data processing device 100 will be explained.
[0150] Figure 11 is a flowchart showing an example of the overall process. The following example demonstrates a search performed using a pseudo-annealing method. (S10) The decision variable processing unit 130 and the auxiliary variable processing unit 140 perform initialization. In the initialization, the initial values of N decision variables, problem information, and calculation conditions (for example, information on temperature parameters used in the simulated annealing method, etc.) are set. The initial values of the N decision variables are held in a predetermined decision variable holding unit of the decision variable processing unit 130. The weight values included in the problem information are divided for each group of corresponding decision variables and auxiliary variables and held in the W holding units 131, 131a,... and the W holding units 141, 141a,....
[0151] Also, in the initialization, based on the initial values of the N decision variables and the problem information, the initial value of h k and the initial value of h i are calculated, the initial values of the N h i are held in the h storage unit 173, and the initial values of the M h k are held in the h storage unit 183. Further, based on the initial values of the N decision variables and the problem information, the initial value of H(x) is calculated and held in the energy holding unit 150.
[0152] (S11) The decision variable processing unit 130 performs decision variable flip selection processing. The details of the decision variable flip selection processing will be described later. (S12) Starting from the index k = 0 of the constraint condition, k is incremented by 1 each time, and while k < M, steps S13 to S17 are repeatedly executed. This repeated process is called the auxiliary variable loop.
[0153] (S13) The non-zero detection unit c42 of the auxiliary variable processing unit 140 determines whether there is a local field update of the auxiliary variable. If there is a local field update of the auxiliary variable, the process proceeds to step S14. If there is no local field update of the auxiliary variable, the process proceeds to step S18.
[0154] (S14) The energy correction processing unit 160 corrects the total energy H based on equation (15). (S15) The quantization units c46, c47 of the auxiliary variable processing unit 140 calculate the codes hk_code and hk_old_code indicating the quantized local fields of the auxiliary variables x k respectively.
[0155] (S16) The change detection unit c48 of the auxiliary variable processing unit 140 determines whether or not there is a change in the quantization local field based on the codes hk_code and hk_old_code. If hk_code and hk_old_code are different, i.e., there is a change in the quantization local field, the process proceeds to step S17. If hk_code and hk_old_code are the same, i.e., there is no change in the quantization local field, the process proceeds to step S18. If there is no change, the process in step S17 in the decision variable processing unit 130 is omitted based on the hk^_update_bit supplied from the auxiliary variable processing unit 140 to the decision variable processing unit 130.
[0156] (S17) h of the decision variable processing unit 130 i The calculation units 172, 172a, ... calculate the approximate value of the original local field h based on the hk_code and hk_old_code supplied from the auxiliary variable processing unit 140. k ^, h k ^ (old) Reconstruct the decision variable x i local field h i Update the following: This will result in the penalty contribution from the auxiliary variable in equations (13) and (14) becoming h i This will be reflected.
[0157] (S18) When the auxiliary variable loop finishes, the process proceeds to step S19. (S19) The decision variable processing unit 130 determines whether the search is complete or not. For example, the search is determined to be complete when the temperature value T used as the temperature parameter of the pseudo-annealing method reaches the final temperature value. If the search is not complete, the temperature value T is updated and the process proceeds to step S11. If the search is complete, the entire process is completed. If the search is complete, the decision variable processing unit 130 outputs the calculation result. The calculation result is, for example, the total energy and state when the minimum energy so far is reached.
[0158] Note that the execution order of steps S14 and S15 may be reversed. Furthermore, as shown in step S13, the data processing device 100 only needs to execute the auxiliary variable loop processing from step S14 onward if there is a local field update of the auxiliary variable; if there is no local field update of the auxiliary variable, this processing can be omitted. In other words, the data processing device 100 also improves the efficiency of calculations through the non-zero detection unit c42.
[0159] Figure 12 is a flowchart showing an example of the decision variable flip selection process. The decision variable flip selection process corresponds to step S11. (S20) The ΔE calculation units 174, 174a, ... of the decision variable processing unit 130 are local field h i Based on this, the decision variable x i ΔE i Calculate ΔE i =ΔH i =-h i Δx i That is the case.
[0160] (S21) The selection unit 133 performs a bit acceptance determination for the decision variable. In the bit acceptance determination, it is determined whether the decision variable of the flip candidate can be flipped or not based on the comparison result between ΔE corresponding to the decision variable of the flip candidate and a predetermined value. The predetermined value is a noise value (for example, log(rand) × T) obtained based on a random value and the value of the temperature parameter (temperature value T).
[0161] (S22) The selection unit 133 selects a flip bit from the decision variables that were determined to be flippable in step S21. For example, the selection unit 133 randomly selects one of the decision variables that were determined to be flippable.
[0162] (S23) The selection unit 133 determines whether bit flipping is possible or not. If bit flipping is possible, the process proceeds to step S24. If bit flipping is not possible, the decision variable flip selection process ends. For example, if any decision variable is selected in step S22, bit flipping is possible, and if no decision variables are selected, bit flipping is not possible.
[0163] (S24) The selection unit 133 updates the decision variables held in the decision variable processing unit 130. This updates the values of the decision variables selected in step S22. (S25) The selection unit 133 updates the total energy H held in the energy holding unit 150 by ΔE=ΔH corresponding to the flipped decision variable.
[0164] (S26) The decision variable processing unit 130 and the auxiliary variable processing unit 140 each process the local field h i and h k The h of the decision variable processing unit 130 is updated. i Calculation units 172, 172a, ... are h i Δh i =W ij Δx j By adding h i Update the h of the auxiliary variable processing unit 140. k The calculation units 182, 182a, ... are h k Δh k =W kj Δx j By adding h k The update is performed. Then, the decision variable flip selection process is completed.
[0165] According to the data processing device 100 of the second embodiment, in step S16 of Figure 11, if there is no change in the quantization local field, then in step S17, the h according to equations (13) and (14) i The update of h can be omitted. i This reduces the computational cost associated with updating the data. As a result, the data processing device 100's problem-solving performance can be improved. For example, the data processing device 100 can perform problem-solving calculations at high speed. Furthermore, the data processing device 100 can increase its chances of reaching a better solution in a relatively short amount of time.
[0166] Furthermore, if the decision variable processing unit 130 and the auxiliary variable processing unit 140 are implemented as separate arithmetic units, i.e., separate electronic circuits, the auxiliary variable processing unit 140 only needs to send a relatively small number of bit codes indicating the quantization local field to the decision variable processing unit 130. This reduces the amount of information output from the auxiliary variable processing unit 140 to the decision variable processing unit 130. As a result, the complexity of the internal wiring of the processor 110, which is implemented by an FPGA or the like, is suppressed, and the cost of circuit implementation is reduced. Consequently, it becomes possible to perform larger-scale parallel operations.
[0167] [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.
[0168] Figure 13 shows an example of the functions of the data processing device according to the third embodiment. The data processing device 100a of the third embodiment shows an example in which energy correction based on equation (15) is not performed by separately storing the amount of change of the constraint term applied to the local field of the decision variable and the local field of the decision variable in order to calculate the energy change used in the flip determination process.
[0169] The data processing device 100a of the third embodiment is implemented with hardware similar to that of the data processing device 100 of the second embodiment shown in Figure 5. The data processing device 100a has the same functions as the data processing device 100. However, the data processing device 100a differs from the data processing device 100 in that it has a decision variable processing device 130a instead of a decision variable processing device 130, and a constraint term calculation device 160a instead of an energy correction processing device 160.
[0170] Furthermore, the auxiliary variable processing unit 140 processes the auxiliary variable x, which is a binary variable, corresponding to the constraint term. k It holds the auxiliary variable x in the auxiliary variable processing unit 140. k The diagram of the auxiliary variable holding unit is omitted. The auxiliary variable holding unit is implemented, for example, by the internal memory 111.
[0171] The decision variable processing unit 130a includes W holding units 131, 131a, ..., decision variable modules 134, 134a, ..., and a selection unit 135. The W holding units 131, 131a, ... are the same as in the second embodiment.
[0172] The decision variable module 134 includes an SRAM I / F 171, a storage unit 173, a restore unit 175, and h i It has calculation units 176, 176a, ... and ΔE calculation units 177, 177a, .... The SRAM I / F 171, h memory unit 173 and restore unit 175 are the same as in the second embodiment. However, as described above, the h memory unit 173 separately stores the local field of the decision variable and the change in the constraint term. Other decision variable modules, including decision variable module 134a, have the same functions as decision variable module 134.
[0173] h i The calculation unit 176 separately calculates and stores the amount of change of the constraint term applied to the local field of the decision variable and the local field of the decision variable. Here, the local field h in the third embodiment i This is expressed by equation (16).
[0174]
number
[0175] x is either a decision variable or an auxiliary variable. p is 1-x p If it changes to h i This is updated by equation (17). Index p is the index of the decision variable or auxiliary variable.
[0176]
number
[0177] However, if p∈D, λ p = 1. Also, Δx k The information is, for example, from the auxiliary variable processing unit 140 to each h iIt is supplied to the calculation unit. For p∈D, equation (18) is used to update the total energy.
[0178]
number
[0179] Furthermore, for p∈A, equation (19) is used to update the total energy.
[0180]
number
[0181] Furthermore, the change in the constraint term p applied to the local field of the decision variable in the calculation of the energy difference used for the flip decision process of the decision variable. i is, h k If ^ changes, it is updated by equation (20).
[0182]
number
[0183] Furthermore, the auxiliary variable x k If the value changes, p i This is updated by equation (21).
[0184]
number
[0185] The second term on the right-hand side of equation (21) represents the change in the constraint term corresponding to the inversion of the auxiliary variable, which is added to the local field of the decision variable, p. i This is a deduction to prevent duplicate counting. h i The calculation unit 176 is p i +h i and h i This is supplied to the ΔE calculation unit 177. iOther h including the calculation unit 176a i The calculation unit is also h i It has the same functions as the calculation unit 176.
[0186] The ΔE calculation unit 177 is h i p supplied from the calculation unit 176 i +h i Using this, ΔE used in the flip determination process is given by equation (22). i Calculate.
[0187]
number
[0188] The ΔE calculation unit 177 calculates the ΔE used in the flip determination process. i and, h i Energy change ΔH based on this i =-h i Δx i This is supplied to the selection unit 135. Other ΔE calculation units, including the ΔE calculation unit 177a, have the same functions as the ΔE calculation unit 177.
[0189] The selection unit 135 performs a flip decision based on ΔE supplied from each of the decision variable modules 134, 134a, ..., and determines which decision variable x to flip. j Select the following. The same method as illustrated in the first embodiment is used for the flip determination. The selection unit 135 selects the index (Flip Bit) of the decision variable to be flipped from each of the decision variable modules 134, 134a, ... i It is supplied to the calculation unit. The selection unit 135 selects the decision variable x to be flipped from among the decision variables held in the decision variable processing unit 130a. j The value of is reversed. Note that in Figure 13, the determination variable storage unit that holds the values of each determination variable in the determination variable processing unit 130a is omitted from the illustration. The determination variable storage unit is implemented, for example, by the internal memory 111.
[0190] Furthermore, the selection unit 135 selects ΔH corresponding to the decision variable to be flipped. jThe output is sent to the energy storage unit 150, and the total energy held in the energy storage unit 150 is updated. The constraint term calculation unit 160a calculates x k In response to the flip, the energy change λ k h k Δx k The output is sent to the energy holding unit 150, and the total energy held in the energy holding unit 150 is updated. In addition, the constraint term calculation unit 160a, like the energy correction processing unit 160a, supplies hk_code, hk_old_code, and hk^_update_bit to each decision variable module of the decision variable processing unit 130a.
[0191] Figure 14 shows h i This figure shows an example of the calculation unit. h i The calculation unit 176 includes multipliers c21, c72, adders c22, c23, c73, c75, c77, Max arithmetic units c24, c25, c26, c27, subtractors c28, c29, c30, selector (SEL) c71, and registers c74, c76.
[0192] Of these, the multiplier c21, adders c22 and c23, Max arithmetic units c24, c25, c26, and c27, and subtractors c28, c29, and c30 are the same as in the second embodiment. However, the calculation result of multiplier c21 is supplied to adder c23, selector c71, and adder c75. Also, the calculation result of subtractor c30 is supplied to selector c71. Note that in the figure, sign inversion may be abbreviated, such as by showing subtraction in mathematical formulas using an adder.
[0193] Selector c71 outputs the value to multiplier c72, x k When W is reversed ki Δx k and, h k δh when ^ changes i Switch between them. The multiplier c72 multiplies the output value of selector c71 and λ k The product is multiplied by the product, and the result is supplied to adder c73.
[0194] The adder c73 stores the output value of the multiplier c72 in register c74. i Add to the p of register c74 i Update. Register c74 is p i While retaining, p i This is supplied to adder c77. When performing operations on multiple replicas, p for each replica i The h memory unit 173 holds the p of the replica to be calculated. i However, it is read from memory unit 173 into register c74.
[0195] Adder c75 receives W from multiplier c21. ij Δx j h is held in register c76 i Add to the h of register c76 i Update the h of register c76. i λ k W ik Δx k Although it could also be included, the diagram of the circuit configuration used to perform the calculation is omitted.
[0196] Register c76 is h i While retaining h i This is supplied to the ΔE calculation unit 177 and the adder c77. When performing calculations on multiple replicas, h for each replica i h is stored in the h storage unit 173, and the h of the replica to be calculated i However, it is read from memory unit 173 into register c76.
[0197] Adder c77 is p of register c74 i And, register c76 h i The two values are added together and supplied to the ΔE calculation unit 177. Note h i Other h including the calculation unit 176a i The calculation unit is also h i This is achieved by a circuit configuration similar to that of the calculation unit 176.
[0198] Figure 15 shows an example of a constraint term calculation unit. The constraint term calculation unit 160a includes a parameter holding unit c81, a register c82, and a multiplier c83.
[0199] The parameter holding unit c81 is a constant λ that indicates the weight of each constraint term. k It holds. Register c82 receives the codes hk_old_code, hk_code and local field h supplied from the selection unit 143. k It holds and outputs the data.
[0200] The multiplier c83 is λ k and h k The energy is multiplied by and supplied to the energy holding unit 150, and Δx k The total energy will be updated accordingly. Thus, the constraint term calculation unit 160a updates the total energy based on equation (19). The constraint term calculation unit 160a also supplies the codes hk_old_code, hk_code, and hk^_update_bit supplied from the selection unit 143 to the decision variable processing unit 130a.
[0201] Figure 16 shows an example of a timing chart. Timing chart 61 shows an example of the operation of the data processing device 100a when pipeline processing is performed using eight replicas. 0 to 7 are replica numbers. Figure 16 shows the processing details for replica number 0, while the other replicas are shown in a simplified manner.
[0202] In the replica with replica number = 0, a flip determination process is performed (t1), and x is determined according to the result. i , x k The update will be made, and h i h k The weight values are read out for updating (t2). Then, h i h k The update will be performed (t3). Three h kWhen updates (represented as 0ka, 0kb, and 0kc in Figure 16) are performed, they are read out in order, h k ^, h k ^ (old) Generation, h k Update detection for ^ is performed (t4~t5). At this time, if a change corresponding to the inversion of an auxiliary variable occurs in the detection of a change in the local field of the auxiliary variable, the constraint term calculation unit 160a updates the total energy H. For example, the thick border line of 0kb in the figure indicates that there was a change in the local field corresponding to the inversion of the second of the three auxiliary variables.
[0203] And when update detection is finished h k Starting with ^, the corresponding W ki The data was read out (t5), and δh i p based on i The local field is updated (t6). At this time, if there is a change in the local field corresponding to the inversion of the auxiliary variable, the local field h of the decision variable is updated. i This is updated by equation (17). Then the updated p i and h i (t7) is read out, p i h i Calculation of ΔE by h i The calculation of ΔH, the flip determination process using ΔE, and the calculation of H(x) are performed (t8).
[0204] Next, the processing procedure of the data processing device 100 will be explained. Figure 17 is a flowchart showing an example of the overall process. The following example demonstrates a search performed using a pseudo-annealing method.
[0205] (S30) The decision variable processing unit 130a and the auxiliary variable processing unit 140 perform initialization. In the initialization, the initial values of N decision variables, problem information, and calculation conditions (for example, information on temperature parameters used in the simulated annealing method, etc.) are set. The initial values of the N decision variables are held in a predetermined decision variable holding unit of the decision variable processing unit 130a. The weight values included in the problem information are divided for each group of corresponding decision variables and auxiliary variables and held in the W holding units 131, 131a,... and the W holding units 141, 141a,....
[0206] Also, in the initialization, based on the initial values of the N decision variables and the problem information, the initial values of M auxiliary variables, the initial value of h k and the initial value of h i are calculated, the initial values of N h i are held in the h storage unit 173, and the initial values of M h k are held in the h storage unit 183. The initial values of the M auxiliary variables are held in a predetermined auxiliary variable holding unit of the auxiliary variable processing unit 140. Further, based on the initial values of the N decision variables and the problem information, the initial value of H(x) is calculated and held in the energy holding unit 150.
[0207] > (S31) The decision variable processing unit 130 performs decision variable flip selection processing. The procedure of the decision variable flip selection processing is the same as the procedure in FIG. 12. However, in the determination of step S21, ΔE in Equation (22) is used. Also, in the update of H in step S25, Equation (18) is used.
[0208] (S32) Starting from the index k = 0 of the constraint condition, k is incremented by 1 one by one, and steps S33 to S40 are repeatedly executed while k < M. (S33) The non-zero detection unit c42 of the auxiliary variable processing unit 140 determines whether there is a local field update of the auxiliary variable. If there is a local field update of the auxiliary variable, the process proceeds to step S34. If there is no local field update of the auxiliary variable, the process proceeds to step S41.
[0209] (S34) The selection unit 143 selects the auxiliary variable x kThe process determines whether the inversion condition is met. If the inversion condition is met, the process proceeds to step S35. If the inversion condition is not met, the process proceeds to step S38.
[0210] (S35) The selection unit 143 selects the auxiliary variable x held in the auxiliary variable holding unit of the auxiliary variable processing unit 140. k Reverse the value. (S36) The constraint term calculation unit 160a updates the total energy H held in the energy holding unit 150 using equation (19).
[0211] (S37) h of the decision variable processing unit 130a i The calculation units 176, 176a, ... calculate x based on equation (17). k In accordance with the reversal of the value of, the local field h of the decision variable i Update. (S38) The quantization units c46 and c47 of the auxiliary variable processing unit 140 each control the auxiliary variable x k The codes hk_code and hk_old_code, which represent the quantized local field, are calculated.
[0212] (S39) The change detection unit c48 of the auxiliary variable processing unit 140 determines whether or not there is a change in the quantization local field based on the codes hk_code and hk_old_code. If there is a change, the process proceeds to step S40. If there is no change, the process proceeds to step S41. If there is no change, the process in step S40 in the decision variable processing unit 130a is omitted based on the hk^_update_bit supplied from the auxiliary variable processing unit 140 to the decision variable processing unit 130a.
[0213] (S40) h of the decision variable processing unit 130 i The calculation units 176, 176a, ... calculate an approximate value of the original local field h based on the hk_code and hk_old_code supplied from the auxiliary variable processing unit 140. k ^, h k ^ (old) Reconstruct the decision variable x i Auxiliary variable x k Penalty p iThis updates the penalty contribution from the auxiliary variable in equation (20), p i This will be reflected in x k If it is reversed, h i The calculation units 176, 176a, ... are calculated using the formula (21) for p i We will also update it.
[0214] (S41) When the auxiliary variable loop finishes, the process proceeds to step S42. (S42) The decision variable processing unit 130a determines whether the search is complete or not. For example, the search is determined to be complete when the temperature value T of the pseudo-annealing method reaches the final temperature value. If the search is not complete, the temperature value T is updated and the process proceeds to step S31. If the search is complete, the entire process is completed. If the search is complete, the decision variable processing unit 130a outputs the calculation result. The calculation result is, for example, the total energy and state when the minimum energy so far is reached.
[0215] According to the data processing device 100a of the third embodiment, in step S39 of Figure 17, if there is no change in the quantization local field, then in step S40, the h according to equations (20) and (21) i The update of h can be omitted. i This reduces the computational cost associated with updating the data. As a result, the problem-solving performance of the data processing device 100a can be improved. For example, the data processing device 100a can perform problem-solving calculations at high speed. In addition, the data processing device 100a can increase the likelihood of reaching a better solution in a relatively short amount of time.
[0216] Furthermore, when the decision variable processing unit 130a and the auxiliary variable processing unit 140 are implemented by separate electronic circuits corresponding to separate arithmetic units, the auxiliary variable processing unit 140 only needs to send a relatively small number of bit codes indicating the quantization local field to the decision variable processing unit 130a. This reduces the amount of information output from the auxiliary variable processing unit 140 to the decision variable processing unit 130a. As a result, the complexity of the internal wiring of the processor 110, which is implemented by an FPGA or the like, is suppressed, and the cost of circuit implementation is reduced. Consequently, it becomes possible to perform larger-scale parallel operations.
[0217] Furthermore, the data processing device 100a only needs to update the total energy H in response to changes in the local field of the auxiliary variable when the auxiliary variable reverses, thus reducing the computational cost associated with calculating the total energy.
[0218] [Fourth Embodiment] Next, a fourth embodiment will be described. The differences from the second and third embodiments described above will be explained primarily, and the common aspects will be omitted.
[0219] Figure 18 shows an example of the functions of the data processing device according to the fourth embodiment. In the fourth embodiment, the data processing device 100b applies a change in the constraint term p to the local field of the decision variable to calculate the energy change used in the flip determination process. i It provides a function to reduce the amount of data that needs to be retained.
[0220] The data processing device 100b of the fourth embodiment is implemented with hardware similar to that of the data processing device 100 of the second embodiment shown in Figure 5. The data processing device 100b has the same functions as the data processing device 100a of the third embodiment. However, the data processing device 100b differs from the data processing device 100a in that it has a decision variable processing device 130b instead of the decision variable processing device 130a.
[0221] The decision variable processing unit 130b includes W holding units 131, 131a, ..., decision variable modules 136, 136a, ..., and a selection unit 135. The W holding units 131, 131a, ... are the same as in the second embodiment. The selection unit 135 is the same as in the third embodiment.
[0222] The decision variable module 136 includes an SRAM I / F 171, a storage unit 173, and h i It has calculation units 178, 178a, ... and ΔE calculation units 177, 177a, .... The SRAM I / F 171, h storage unit 173 and ΔE calculation units 177, 177a, ... are the same as in the third embodiment. Other decision variable modules, including decision variable module 136a, have the same functions as decision variable module 136.
[0223] h i The calculation unit 178 separately calculates and stores the change in the constraint term applied to the local field of the decision variable and the local field of the decision variable. i The processing of the calculation unit 178 is as follows in the third embodiment h i The process is similar to that of calculation unit 176, but the weight value W ki Using the quantized weight values obtained by quantizing p i The point where calculations are performed is h i This differs from the calculation unit 176.
[0224] p of the fourth embodiment i ^(p with a hat symbol and subscript i) is h k If ^ changes, it is updated by equation (23).
[0225]
number
[0226] Here, W ki ^(W with a hat symbol and the subscript ki) indicates the quantization weight value. Also, x k If p changes, i ^ is updated by equation (24).
[0227]
number
[0228] Here, h k For the precision δ of ^, for example, W ki The precision of ^ is the original W ki For this, assume δ / m = δ / 8. p in equations (23) and (24) above i ^ is calculated with an accuracy of δ / m. W ki W indicates the quantized weight value corresponding to ^. ki A code of a predetermined number of bits smaller than the number of bits is W ki Separately, the W-holding parts 131, 131a, ... are held in advance.
[0229] h i The calculation unit 178 is p i h i When adding, the original precision is restored. For example, h i The calculation unit 178 calculates (δ / m)p i ^ to p i Let's assume that. h i The calculation unit 178 is p i +h i and h i This is output to the ΔE calculation unit 177.
[0230] Note h i Other h including calculation unit 178a i The calculation unit is also h i It has the same functions as the calculation unit 178. Figure 19 shows h i This figure shows an example of the calculation unit.
[0231] h i The calculation unit 178 includes multipliers c21, c21a, c72a, c78, adders c22a, c23a, c73a, c75, c79, Max arithmetic units c24a, c25a, c26a, c27a, subtractors c28a, c29a, c30a, selector (SEL) c71a, and registers c74a, c76.
[0232] Of these, the multiplier c21, adder c75, and register c76 are the same as in the third embodiment. However, the calculation result of the multiplier c21 is supplied to the adder c75. Note that in the diagram, sign inversion may be abbreviated, such as by showing subtraction in the formula using an adder.
[0233] The multiplier c21a is h i The decision variable x corresponding to the calculation unit 178 i Change in value Δx i and, x i The quantization weight W between the constraint term at index k. ki Multiply the code representing ^ by the result of the multiplication and output the result. Quantized weight value W ki The code representing ^ is read from the W storage unit 131 via the SRAM I / F 171 and supplied to the multiplier c21a.
[0234] The adder c22a adds the output value of the multiplier c21a and the hk_old_code supplied from the auxiliary variable processing unit 140 and outputs the result. The adder c23a adds the output value of the multiplier c21a and the hk_code supplied from the auxiliary variable processing unit 140 and outputs the result.
[0235] The Max arithmetic unit c24a compares the hk_old_code supplied by the auxiliary variable processing unit 140 with 0 and outputs the larger value. The Max arithmetic unit c25a compares the output value of adder c22a with 0 and outputs the larger value.
[0236] The Max arithmetic unit c26a compares the hk_code supplied by the auxiliary variable processing unit 140 with 0 and outputs the larger value. The Max arithmetic unit c27a compares the output value of adder c23a with 0 and outputs the larger value.
[0237] The subtractor c28a calculates and outputs the difference between the output value of the Max arithmetic unit c24a and the output value of the Max arithmetic unit c25a. The subtractor c29a calculates and outputs the difference between the output value of the Max arithmetic unit c26a and the output value of the Max arithmetic unit c27a.
[0238] Subtractor c30a calculates and outputs the output values of subtractors c28a and c29a. The selector c71a switches whether the value output to the multiplier c72a is the output value of the subtractor c30a or the output value of the multiplier c21a.
[0239] The multiplier c72a multiplies the output value of selector c71a and λ k The product is multiplied by the product, and the result is supplied to adder c73a. The adder c73a receives the output value of the multiplier c72a and stores it in register c74a. i Add to ^ and p in register c74a i Update ^.
[0240] Register c74a is p i ^While retaining, p i ^ is supplied to the multiplier c78. When performing operations on multiple replicas, p for each replica. i ^ is stored in the h memory unit 173, and the p of the replica to be operated on i ^ is read from the h memory unit 173 into register c74a.
[0241] Adder c75 receives W from multiplier c21. ij Δx j h is held in register c76 i Add to the h of register c76 i Update the h of register c76. i λ k W ik Δx k Although it could also be included, the diagram of the circuit configuration used to perform the calculation is omitted.
[0242] The multiplier c78 is p i By multiplying ^ by δ / m, p i The data is obtained and supplied to adder c79. Adder c79 is p i and register c76 h iThe two values are added together and supplied to the ΔE calculation unit 177.
[0243] Note h i Other h including calculation unit 178a i The calculation unit is also h i This is achieved by a circuit configuration similar to that of the calculation unit 178. According to the data processing device 100b of the fourth embodiment, p i The operation of ^ can be performed using a code with fewer bits than the original number of bits for the local field and weight values. Therefore, compared to the third embodiment, the circuit for calculating the change in the constraint term (p^) and the memory capacity for storing p^ can be reduced.
[0244] In the second to fourth embodiments, examples were shown in which a pseudo-annealing method is performed by data processing devices 100, 100a, and 100b. However, the data processing devices 100, 100a, and 100b may also perform a replica exchange method for multiple replicas.
[0245] Next, I will explain the comparative example. (Comparative example) Figure 20 shows the functions of the data processing device for Comparative Example 1.
[0246] The data processing device 70 in Comparative Example 1 includes a decision variable holding unit 71, an auxiliary variable holding unit 72, multipliers 73, 74, 75, h i Update circuit 76, h k It includes an update circuit 77, an update determination variable determination unit 78, and an update auxiliary variable determination unit 79.
[0247] The decision variable holding unit 71 holds N decision variables (x i ) holds the decision variable holding unit 71 and the flip candidate x j Change in (Δx j Outputs ). The auxiliary variable holder 72 holds M auxiliary variables (x k ) holds x k This is a variable that is 0 if the constraint condition of identification number = k is met, and 1 if it is not met. In addition, the auxiliary variable holder 72 holds the x of the flip candidate.k Change in (Δx k Outputs ).
[0248] When such auxiliary variables are used, H(x) can be expressed, for example, by the following equation (25).
[0249]
number
[0250] Furthermore, in the data processing device 70 of Comparative Example 1, h i This can be expressed by the following equation (26).
[0251]
number
[0252] Also, h k This can be expressed by the following equation (27).
[0253]
number
[0254] Note that equation (27) is -U k =b k Therefore, it is the same as equation (8). Multiplier 73 calculates the x of the flip candidate. j When the value of changes, the h shown in equation (26) i The change is Δx j and W ij Output the product of the two.
[0255] Multiplier 74 calculates the x of the flip candidate. j When the value of changes, the h shown in equation (27) k The change is Δx j and W kj Output the product of the two. Multiplier 75 is the x of the flip candidate. kWhen the value of changes, the h shown in equation (26) i The change is Δx k and W ki Output the product of the two.
[0256] h i The update circuit 76 flips the x of the flip candidate. j If the value of h changes, i To, W ij Δx j By adding h i Update h i The update circuit 76 flips the x of the flip candidate. k If the value of h changes, i -λ k W ki Δx k By adding h i Update.
[0257] h k The update circuit 77 flips the x of the flip candidate. j If the value of h changes, k To, W kj Δx j By adding h k Update. The update decision variable determination unit 78 determines the x of the flip candidate. j The first local field for h j Based on this, ΔH = -h j Δx j The update decision variable determination unit 78 then calculates x based on the comparison result between ΔH and a predetermined value. j Decide whether or not to change the value of x j If it is decided to change the value of x, the value of x held in the decision variable holder 71 j Change the value of [the variable].
[0258] The update auxiliary variable determination unit 79 determines the x of the flip candidate. k The second local field for h k Based on this, ΔH = +λ k h k Δx kThe update auxiliary variable determination unit 79 then calculates x based on the comparison result between ΔH and a predetermined value. k Decide whether or not to change the value of x k If it is decided to change the value of x, the x held in the auxiliary variable holder 72 k Change the value of [the variable].
[0259] In such a data processing device 70, an auxiliary variable (x) indicates whether or not a certain constraint condition is violated. k If the value of ) is allowed to change, N W ki Based on h i This updates W for all M constraint terms. ki This eliminates the need to read the original h i Δh i =-λ k W ki Δx k The number of times the process of adding (the value) is performed is reduced, thereby decreasing the computational load required for the update process.
[0260] However, in the data processing device 70 of Comparative Example 1, the amount of change in the constraint term associated with the change is not considered at the time of determining whether or not to change the value of the state variable of the flip candidate. Therefore, the following prediction errors may occur until H(x) is updated by ΔH=+λkhkΔxk in accordance with the change in the value of the auxiliary variable.
[0261] Figure 21 shows an example of prediction error occurrence in the data processing device of Comparative Example 1. The vertical axis represents the magnitude of the constraint term, and the horizontal axis represents h k This represents the constraint term of the inequality constraint, λ. k max[0,h k It is represented by ].
[0262] Prediction error case 1 shows the prediction error that occurs when the state changes from a state that satisfies the inequality constraint to a state that violates it. Prediction error case 2 shows the prediction error that occurs when the state changes from a state that violates the inequality constraint to a state that satisfies it.
[0263] In either case, prediction errors like those shown in Figure 21 may occur. Therefore, it may become difficult to improve the ability to solve highly complex inequality constraint problems.
[0264] In contrast, the data processing devices 10, 100, 100a, and 100b of the first to fourth embodiments are as shown in the above equations (13) and (14) i as x i The value used reflects not only the change in E(x) associated with the change in the value of ΔH, but also an approximate value of the change in P(x) based on the quantized local field. Therefore, a more accurate ΔH is used. i Based on this, a flip detection can be performed. This improves the problem-solving performance.
[0265] Figure 22 shows an example of the functions (part 1) of the data processing device in Comparative Example 2. The data processing device 80 in Comparative Example 2 updates the local field of the decision variable using equation (12) instead of equations (13) and (14) compared to the data processing device 100 of the second embodiment, without quantizing the local field of the auxiliary variable. However, as mentioned above, for the index j of the flipped decision variable, if i=j, then h i You do not need to update it.
[0266] The data processing device 80 includes an input unit 81, a control unit 82, a search unit 83, and an output unit 84. The input unit 81, control unit 82, search unit 83, and output unit 84 can be implemented, for example, using a program module executed by the processor of the data processing device 80, or using memory areas (registers and cache memory) within the processor. Furthermore, the search unit 83 may be implemented using memory areas allocated in the RAM or HDD of the data processing device 80.
[0267] The input unit 81 accepts inputs such as the initial values of N decision variables, problem information, and calculation conditions. The problem information is, for example, W in equation (8). ki Ya b k In addition, W in equation (10)ij , b i , λ k This includes the following: Calculation conditions include, for example, the number of replicas when performing the replica exchange method, the replica exchange period, the values of the temperature parameters set for each replica, the temperature parameter change schedule when performing the pseudo-annealing method, and the calculation termination conditions.
[0268] This information may be input by the user through the operation of an input device, or it may be input to the data processing device 80 via a recording medium or a network. The control unit 82 controls each part of the data processing device 80 to execute the processing described later.
[0269] The search unit 83, under the control of the control unit 82, searches for a state in which the value of the evaluation function (total energy) becomes minimal by repeatedly performing flip judgment processing and update processing. The output unit 84 outputs the search results (calculation results) from the search unit 83.
[0270] The output unit 84 may, for example, output the calculation result to a display, transmit it to another information processing device via a network, or store it in an external storage device.
[0271] The search unit 83 consists of a weight value storage unit 83a, a decision variable storage unit 83b, an auxiliary variable storage unit 83c, a local field update unit 83d, and h k Update detection unit 83e, h k It has a contribution calculation unit 83f. Furthermore, the search unit 83 is h i Holding part 83g, h k It includes a holding unit 83h, a ΔH calculation unit 83i, a ΔH holding unit 83j, an FF (flip-flop) 83k, a flip determination processing unit 83l, and an H holding unit 83m.
[0272] The weight value holding unit 83a has N × N W ij It holds M × N W ki and N × M W ik It retains W ki =W ikTherefore, the weight value holding unit 83a has N × M W ik It is not necessary to retain the weight value. Also, the weight value holding unit 83a does not retain the value of W which is 0. ki It is not necessary to retain that information.
[0273] The decision variable holder 83b holds N decision variables (x i The unit holds the value of x. Furthermore, the decision variable holding unit 83b outputs the change in the value of a decision variable if a flip candidate decision variable is specified among the N decision variables. For example, x j If specified, Δx j = 1 - 2x j The following will be output.
[0274] The auxiliary variable holder 83c holds M auxiliary variables (x k It holds the value of x. k This is used, for example, to detect whether a constraint condition is met. In Figure 22, x k The diagram showing the configuration for updating h is omitted. For example, for the constraint term of the ReLU type function in Figure 2, h k If >0, g(h k Since )>0, a constraint violation occurs, h k If >0, then x k =1, h k If ≤ 0, then x k A configuration is provided such that = 0. However, the data processing device 80 in Comparative Example 2 is x k It is not necessary to use it. In that case, the auxiliary variable holder 83c is unnecessary.
[0275] The local field update unit 83d reads the weight values between the decision variable of the flip candidate and other decision variables from the weight value storage unit 83a when a change in the value of the decision variable of the flip candidate is permitted (when flipping is allowed), and updates the local field using those weight values. For example, x j If flipping is permitted, the local field update unit 83d will W ij Δx j each h i By adding to h i Update.
[0276] Furthermore, the local field update unit 83d, when the decision variable of a flip candidate is deemed flippable, updates that decision variable with M local fields (h k Among the weight values between ) and , read out the weight values that are not zero, and use those weight values to h k Update x. For example, x j If flipping is permitted, the local field update unit 83d will W kj Δx j h k By adding to h k Update.
[0277] h k The update detection unit 83e is h k Detect updates. h k The contribution calculation unit 83f calculates the h when an update is detected. k Changes in the value of h i To calculate the change, a non-zero W is obtained from the weight value holding unit 83a. ki Read out h k The contribution calculation unit 83f is h k h k Obtained from the holding part 83h, h k (old) Get this from FF53k. Then h k The contribution calculation unit 83f is δh i '=-λ k (Δg(h k ,W ki Δx i )-Δg(h k (old) ,W ki Δx i )) calculate the original h i δh i By adding ', h i Update the index j of the flipped decision variable, and if i=j, then δh i '=0. Also, δh i In the calculation of ', the quantized value h k ^, h k ^ (old) h is not used, k h k (old) It is used as is.
[0278] h i The holding part 83g has N h i It holds. h k The holding part 83h has M h k It holds. The ΔH calculation unit 83i calculates ΔH based on the local field corresponding to the decision variable of the flip candidate. For example, if the flip candidate is x j If this is the case, the ΔH calculation unit 83i calculates ΔH j =-h j Δx j Calculate.
[0279] The ΔH holding unit 83j holds the ΔH calculated by the ΔH calculation unit 83i. j It holds. FF83k is h k Hold and h k By delaying the timing of outputting h k (old) h k This is supplied to the contribution calculation unit 83f.
[0280] The flip determination processing unit 83l performs a flip determination process to determine whether the decision variable of the flip candidate is flippable or not, based on the comparison result between ΔH and a predetermined value. The predetermined value is, for example, a noise value obtained based on a random number and the value of a temperature parameter. For example, if -ΔH ≥ log(rand) × T, the flip determination processing unit 83l determines that a change in the value of the decision variable of the flip candidate is permissible.
[0281] Furthermore, the flip determination processing unit 83l sends the identification number of the determination variable determined to be flippable to the determination variable holding unit 83b, causing it to update the value of that determination variable. Furthermore, the flip determination processing unit 83l updates H(x) held in the H holding unit 83m based on ΔH resulting from the change in the value of the decision variable that has been deemed flippable.
[0282] The H-holding section 83m holds H(x). The H-holding section 83m may also hold the H(x) and state when the energy is at its minimum. Furthermore, the data processing devices 100a, 100b, and 100c of the second to fourth embodiments can also be equipped with functions corresponding to the input unit 81, control unit 82, search unit 83, and output unit 84.
[0283] The functions of the data processing device 80 in Comparative Example 2 can be realized, for example, with the following circuit configuration. Figure 23 shows an example of the functions of the data processing device in Comparative Example 2 (part 2).
[0284] The data processing device 80 includes a decision variable processing unit 810, an auxiliary variable processing unit 820, an energy storage unit 830, and an h storage unit 840. The energy storage unit 830 corresponds to the energy storage unit 150 of the data processing device 100 in the second embodiment.
[0285] The decision variable processing unit 810 includes W holding units 811, 811a, ..., decision variable modules 812, 812a, ..., and a selection unit 813. The W holding units 811, 811a, ... and the selection unit 813 correspond to the W holding units 131, 131a, ... and the selection unit 133 of the data processing device 100 in the second embodiment, respectively.
[0286] The decision variable modules 812, 812a, ... are local fields h for each decision variable. i Calculation of ΔE i The calculation is performed. One decision variable module is associated with a predetermined number of decision variables. Here, the local field h in decision variable modules 812, 812a, ... i In this calculation, the local field of the auxiliary variable is used at its original value without quantization, which is different from the second to fourth embodiments.
[0287] The decision variable module 812 uses SRAM I / F851, h iIt has calculation units 852, 852a, ..., an h storage unit 853, and ΔE calculation units 854, 854a, .... Other decision variable modules of the decision variable processing unit 810, including the decision variable module 812a, have the same configuration as the decision variable module 812.
[0288] The SRAM I / F 851 and h-storage unit 853 correspond to the SRAM I / F 171 and h-storage unit 173 of the data processing device 100 in the second embodiment, respectively. h i The calculation units 852, 852a, ... calculate the corresponding decision variable x i local field h i Calculate h i The calculation units 852, 852a, ... calculate the local field h of the auxiliary variable. k For changes in , the local field h is given by equation (12). i Update the local field h, as mentioned above. i The following will not be updated. h used in the calculation of equation (12) k and h k (old) From the auxiliary variable processing unit 820 side, each h i It is supplied to the calculation unit.
[0289] The ΔE calculation unit 854 calculates Δh i h supplied from calculation unit 852 i Based on ΔE i =ΔH i =-h i Δx i The result is calculated and output to the selection unit 813. The auxiliary variable processing unit 820 includes W holding units 821, 821a, ..., auxiliary variable modules 822, 822a, ..., and a selection unit 823.
[0290] The W holding units 821, 821a, ... and the selection unit 823 correspond to the W holding units 141, 141a, ... and the selection unit 143 of the data processing device 100 of the second embodiment, respectively. The auxiliary variable modules 822, 822a, ... are local fields h for each constraint term. kThe calculation is performed. One auxiliary variable module is associated with a predetermined number of constraint terms. Here, the auxiliary variable modules 822, 822a, ... differ from the second to fourth embodiments in that they output to the selection unit 823 without quantizing the local fields of the auxiliary variables.
[0291] Auxiliary variable module 822 is SRAM I / F861, h k It has calculation units 862, 862a, ... and an h storage unit 863. The SRAM I / F 861 and h-storage unit 863 correspond to the SRAM I / F 181 and h-storage unit 183 of the data processing device 100 in the second embodiment, respectively.
[0292] h k The calculation units 862, 862a, ... calculate the local field h of the corresponding constraint term. k Calculate h k The calculation units 862, 862a, ... calculate the local field h k The output is sent to the selection unit 823 without quantization.
[0293] The selection unit 823 is h k h is output from each of the calculation units 862, 862a, ... k These are sequentially stored in the h-holding unit 840. The h holding part 840 is a local field h k and the local field h before the update k (old) Maintain the local field h k hk_update_bit and h indicate the index k in which the update occurred. k and h k (old) The variables determined by each of the modules 812, 812a, ... h i It is supplied to the calculation unit.
[0294] In the data processing device 80 of Comparative Example 2, the local field h corresponding to the constraint conditions is k Each time the local field h of the decision variable is updated i To update h iThe computational cost for updating is large. On the other hand, the data processing devices 10, 100, 100a, and 100b of the first to fourth embodiments have a quantized local field h corresponding to the constraints. k When ^ changes, the local field h of the decision variable i We just need to update the original local field h corresponding to the constraints. k Each time it is updated h i Rather than updating h i This can reduce the computational cost associated with updating the data.
[0295] Furthermore, in the data processing device 80 of Comparative Example 2, the local field h is transmitted from the auxiliary variable processing unit 820 to the decision variable processing unit 810. k ,h k (old) However, it is transmitted as the original value without quantization. Here, the number of bits in the local field is relatively large. For example, the number of bits in the local field is 64 bits, h k and h k (old) Then it becomes 64 bits × 2 = 128 bits. Also, h for each decision variable i The number of arithmetic units corresponding to the calculation section is also large. For example, if the number of decision variables is 8K, the number of such arithmetic units is also 8K. Here, K represents kilo. Also, since it is data in the calculation data path, when processing multiple replicas, distribution is required to match the pipeline operation of the multiple replicas.
[0296] Thus, in the data processing device 80 of Comparative Example 2, the data paths, which require a wide bus width and high speed, are distributed across the entire chip, making wiring difficult. In contrast, the data processing devices 10, 100, 100a, and 100b of the first to fourth embodiments can reduce the data movement size of the local field of an auxiliary variable by using the quantized value of the local field of the auxiliary variable as the local field of the auxiliary variable used to update the local field of the decision variable. As a result, the cost of circuit implementation is reduced, and large-scale parallelization becomes possible.
[0297] As described above, the data processing device 100 of the second embodiment performs the following processing. The data processing device 100 searches for combinations of values for multiple state variables that result in a minimum or maximum value calculated using an Ising-type evaluation function that includes multiple state variables. The internal memory 111 stores the total energy, which is the sum of the constraint term (which has a value depending on whether or not the constraint conditions are violated) and the value of the evaluation function; the values of the multiple state variables; a first weight value between each of the multiple state variables; a second weight value between at least some of the multiple state variables and the constraint conditions; a first local field representing the first change in the total energy when the values of each of the multiple state variables change; and a second local field used to identify the amount of constraint violation with respect to the constraint conditions. The processor 110 repeatedly performs the following steps: determine whether to allow a change in the value of the first state variable among multiple state variables based on the first local field; if it determines that a change in the value of the first state variable is allowed, update the first local field based on the first weight value; update the second local field based on the second weight value between the first state variable and the constraint condition; and further update the first local field based on the first quantized local field obtained by quantizing the second local field before the update and the second quantized local field obtained by quantizing the second local field after the update.
[0298] This enables the data processing device 100 to perform calculations more efficiently. The state variables correspond to the decision variables in the second to fourth embodiments. For example, if the first quantized local field and the second quantized local field are the same, the processor 110 omits updating the first local field based on the first and second quantized local fields.
[0299] This allows the data processing device 100 to reduce the computational cost of updating the first local field. Furthermore, if the processor determines that a change in the value of the first state variable is permissible, it updates the first local field based on the difference between the change in the constraint term calculated using an approximation of the second local field before the update, corresponding to the first quantized local field, and the change in the constraint term calculated using an approximation of the second local field after the update, corresponding to the second quantized local field.
[0300] This allows the data processing device 100 to appropriately update the first local field. Such updating of the first local field is performed, for example, on the index j of the state variable to be flipped, based on equation (13) (when i≠j) or equation (14) (when i=j).
[0301] The processor 110 may also have a first arithmetic unit for updating the first local field and a second arithmetic unit for updating the second local field. The second arithmetic unit outputs to the first arithmetic unit a first code representing the first quantized local field, which has two bits less than the first bit number of the second local field, and a second code representing the second quantized local field, which also has two bits. Based on the first code, the first arithmetic unit obtains an approximate value of the second local field before the update, based on the second code, obtains an approximate value of the second local field after the update, and updates the first local field based on the approximate values of the second local field before and after the update.
[0302] This reduces the amount of data that needs to be moved between the first and second arithmetic units. It also reduces the cost of circuit implementation in the processor 110. The aforementioned decision variable processing unit 130 corresponds to the first arithmetic circuit or first processor core included in the processor 110, and is an example of the first arithmetic unit. The auxiliary variable processing unit 140 corresponds to the second arithmetic circuit or second processor core included in the processor 110, and is an example of the second arithmetic unit. hk_old_code is an example of the first code. hk_code is an example of the second code. The first arithmetic unit and the second arithmetic unit may also be called the first arithmetic circuit and the second arithmetic circuit, respectively.
[0303] Furthermore, when the processor 110 updates the second local field, it corrects the total energy based on the second local field before the update, the second local field after the update, the first quantized local field, and the second quantized local field.
[0304] This allows the data processing device 100 to appropriately calculate the total energy of each state in the search. The correction of this total energy is performed based on equation (15). Furthermore, as illustrated in the third embodiment, the processor 110 may individually store the second change amount of the constraint term corresponding to the first quantization local field and the second quantization local field, as well as the first local field, in the memory unit. In this case, the processor 110 updates the first local field and the second change amount based on the second weight value in response to changes in the value of an auxiliary variable that indicates whether or not the constraint condition is satisfied for the values of multiple state variables. The processor 110 also determines whether or not to allow a change in the value of the first state variable based on the first local field and the second change amount. In addition, the processor 110 updates the total energy based on the first local field in response to changes in the value of the first state variable, and updates the total energy based on the second local field in response to changes in the value of the auxiliary variable.
[0305] This eliminates the need for the processor 110 to correct the total energy based on the second local field before and after the update, the first quantized local field, and the second quantized local field each time the second local field is updated. Here, in equations (20) and (21), p i This is an example of the second change. The update of the first local field based on the second weight value in response to the change in the value of the auxiliary variable is performed according to equation (17). The update of the second change based on the second weight value in response to the change in the value of the auxiliary variable is performed according to equation (21). For the second change, an update according to equation (20) is also performed in response to the change in the second quantized local field relative to the first quantized local field. The update of the total energy in response to the change in the value of the first state variable is performed according to equation (18). The update of the total energy in response to the change in the value of the auxiliary variable is performed according to equation (19).
[0306] Furthermore, as illustrated in the fourth embodiment, the second change amount held in the memory unit may be represented by fewer bits than the third bit number used to represent the constraint violation amount. In that case, the processor 110 updates the second change amount based on a code with fewer bits than the second weight value that corresponds to the second weight value, and converts the second change amount to a value represented by the third bit number when updating the first local field using the second change amount.
[0307] This reduces the storage capacity of the internal memory 111, which is used to hold the second change amount, thereby saving memory. It also reduces the implementation cost of the circuit that calculates the second change amount. Here, p in equations (24) and (25) i ^ is p i This is an example of a second change quantity that can be expressed with fewer bits than the third bit number, which is the number of bits in the first case.
[0308] The information processing in the first embodiment may be implemented by having the processing unit 12 execute a program. The information processing in the second to fourth embodiments may also be implemented by having the processor 101 execute a program. The program can be recorded on a computer-readable recording medium 53.
[0309] For example, a program can be distributed by distributing a recording medium 53 on which the program is stored. Alternatively, the program may be stored on another computer and distributed via a network. A computer may, for example, store (install) a program stored on the recording medium 53 or a program received from another computer into a storage device such as a DRAM 102 or HDD 103, and then read and execute the program from that storage device. [Explanation of Symbols]
[0310] 10 Data Processing Devices 11 Storage section 12 Processing Units
Claims
1. In a data processing device that searches for a combination of values of multiple state variables such that the value calculated using an Ising-type evaluation function including multiple state variables is a local minimum or a local maximum, A storage unit that stores: the total energy which is the sum of a constraint term having a value depending on whether or not the constraint is violated and the value of the evaluation function; the values of the plurality of state variables; a first weight value between each of the plurality of state variables; a second weight value between at least some of the state variables and the constraint; a first local field representing a first change in the total energy when the values of each of the plurality of state variables change; and a second local field used to identify the amount of constraint violation with respect to the constraint. A processing unit that repeatedly performs the following steps: determining whether to allow a change in the value of a first state variable among the plurality of state variables based on the first local field; updating the first local field based on the first weight value if it is determined that a change in the value of the first state variable is allowed, updating the second local field based on the second weight value between the first state variable and the constraint condition, and further updating the first local field based on the first quantized local field obtained by quantizing the second local field before the update and the second quantized local field obtained by quantizing the second local field after the update. A data processing device having
2. The processing unit omits updating the first local field based on the first and second quantization local fields if the first and second quantization local fields are the same. The data processing device according to claim 1.
3. If the processing unit determines that a change in the value of the first state variable is permissible, it updates the first local field based on the difference between the change in the constraint term calculated using an approximate value of the second local field before updating, corresponding to the first quantized local field, and the change in the constraint term calculated using an approximate value of the second local field after updating, corresponding to the second quantized local field. The data processing device according to claim 1.
4. The processing unit includes a first arithmetic unit that updates the first local field and a second arithmetic unit that updates the second local field. The second arithmetic unit outputs to the first arithmetic unit a first code representing the first quantization local field, the first code having two bits less than the first number of bits of the second local field, and a second code representing the second quantization local field having two bits. The first arithmetic unit obtains an approximate value of the second local field before the update based on the first code, obtains an approximate value of the second local field after the update based on the second code, and updates the first local field based on the approximate values of the second local field before and after the update. The data processing device according to claim 1.
5. When the processing unit updates the second local field, it corrects the total energy based on the second local field before the update, the second local field after the update, the first quantized local field, and the second quantized local field. The data processing device according to claim 1.
6. The aforementioned processing unit, The second change in the constraint term corresponding to the first quantization local field and the second quantization local field, and the first local field are stored separately in the storage unit. Based on the second weight value, the first local field and the second change amount are updated according to the change in the value of the auxiliary variable that indicates whether or not the constraint condition is satisfied for the values of the plurality of state variables. Whether or not to allow a change in the value of the first state variable is determined based on the first local field and the second change amount. The total energy is updated based on the first local field in response to a change in the value of the first state variable, and the total energy is updated based on the second local field in response to a change in the value of the auxiliary variable. The data processing device according to claim 1.
7. The second change amount held in the memory unit is represented by a number of bits less than the third number of bits used to represent the constraint violation amount. The processing unit updates the second change amount based on a code with fewer bits than the number of bits of the second weight value, and when updating the first local field using the second change amount, converts the second change amount to a value represented by the third number of bits. The data processing apparatus according to claim 6.
8. A data processing device that performs a search for a combination of values of multiple state variables that results in a minimum or maximum value calculated using an Ising-type evaluation function that includes multiple state variables, Among the following stored in the memory unit: the total energy, which is the sum of the constraint term having a value depending on whether or not the constraint conditions are violated and the value of the evaluation function; the values of the plurality of state variables; the first weight values between each of the plurality of state variables; the second weight values between at least some of the state variables and the constraint conditions; the first local field representing the first change in the total energy when the values of each of the plurality of state variables change; and the second local field used to identify the amount of constraint violation with respect to the constraint conditions, A process to determine whether or not to allow a change in the value of the first state variable among the plurality of state variables based on the first local field, If it is determined that a change in the value of the first state variable is permissible, the process includes updating the first local field based on the first weight value stored in the memory unit, updating the second local field based on the second weight value stored in the memory unit between the first state variable and the constraint condition, and further updating the first local field based on the first quantized local field obtained by quantizing the second local field before the update and the second quantized local field obtained by quantizing the second local field after the update. A data processing method that involves repeating the following steps.
9. A program that causes a computer to perform a search for a combination of values of multiple state variables that results in a minimum or maximum value calculated using an Ising-type evaluation function that includes multiple state variables, Among the following stored in the memory unit: the total energy, which is the sum of the constraint term having a value depending on whether or not the constraint conditions are violated and the value of the evaluation function; the values of the plurality of state variables; the first weight values between each of the plurality of state variables; the second weight values between at least some of the state variables and the constraint conditions; the first local field representing the first change in the total energy when the values of each of the plurality of state variables change; and the second local field used to identify the amount of constraint violation with respect to the constraint conditions, A process to determine whether or not to allow a change in the value of the first state variable among the plurality of state variables based on the first local field, If it is determined that a change in the value of the first state variable is permissible, the process includes updating the first local field based on the first weight value stored in the memory unit, updating the second local field based on the second weight value stored in the memory unit between the first state variable and the constraint condition, and further updating the first local field based on the first quantized local field obtained by quantizing the second local field before the update and the second quantized local field obtained by quantizing the second local field after the update. A program that causes the computer to perform a process that repeats itself.
Citation Information
Patent Citations
Optimization device, optimization system, method for optimization, and program
JP2020113190A
Optimization device and optimization method
JP2020204928A
Optimization device, optimization method, and optimization program
JP2021174260A
Systems and methods for finding quantum binary optimization problems
US20150205759A1
Continuous relaxation of quantization for discretized deep neural networks
US20190354842A1