Data processing device, program and data processing method
The data processing device and method address computational complexity in Ising machines by using local fields and penalty functions to manage state variable changes in discrete optimization with inequality constraints, enhancing solution efficiency.
Patent Information
- Application Number
- JP2022057999
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-31
- Publication Date
- 2026-01-07
- Estimated Expiration
- 2042-03-31
AI Technical Summary
Existing Ising machines face computational complexity issues when handling discrete optimization problems with inequality constraints due to the large number of coefficients involved in calculating constraint terms, leading to inefficient processing.
A data processing device and method that utilizes a first and second local field to manage state variable changes, incorporating constraint conditions through a penalty function, reducing the need to read and calculate with all coefficients, and allowing parallel processing of state variable updates.
This approach significantly reduces computational complexity and improves solution performance by accurately determining state variable changes while handling inequality constraints, enabling efficient discrete optimization.
Smart Images

Figure 0007795094000016 
Figure 0007795094000017 
Figure 0007795094000018
Abstract
Description
[Technical Field]
[0001] The present invention relates to a data processing device, a program, and a data processing method. [Background technology]
[0002] Ising machines (also called Boltzmann machines) use Ising-type evaluation functions (also called energy functions) as devices for calculating large-scale discrete optimization problems, which von Neumann computers are not good at.
[0003] An Ising machine converts a discrete optimization problem into an Ising model that represents the spin behavior of a magnetic material. Then, using Markov chain Monte Carlo methods such as simulated annealing and replica exchange (also known as parallel tempering), the Ising machine searches for the state of the Ising model where the value of the Ising-type evaluation function (equivalent to energy) is minimized. The state where the minimum of the minimum values of the evaluation function is the optimal solution. Note that by changing the sign of the evaluation function, the Ising machine can also search for the state where the value of the evaluation function is maximized. The state of the Ising model can be expressed by a combination of the values of multiple state variables. The value of each state variable can be 0 or 1.
[0004] The Ising-type evaluation function is defined, for example, by a quadratic function such as the following equation (1).
[0005]
number
[0006] The first item on the right side is the sum of the products of the values (0 or 1) of the two state variables and the weight value (which represents the strength of the interaction between the two state variables) for all combinations of the N state variables of the Ising model, without any omissions or overlaps. x i is the state variable with identification number i, x j is the state variable with identification number j, and W ijis a weight value that indicates 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 identification number i.
[0007] Also, x i The change in energy due to the change in the value of i ) is expressed by the following equation (2).
[0008]
number
[0009] In equation (2), x i When changes from 1 to 0, Δx i becomes -1, and the state variable x i When changes from 0 to 1, Δx i is 1. Note that h i is called the local field, and Δx i Depending on h i Multiplying by the sign (+1 or -1) is ΔE i Therefore, h i can also be said to be a variable that represents the amount of change in energy, or a variable that determines the amount of change in energy.
[0010] And, for example, exp(-βΔE i ) (β is the inverse of the parameter representing temperature) and the acceptance probability is x i The process of updating the value of , which causes a state transition and updates the local field is repeated.
[0011] Incidentally, some discrete optimization problems have constraints that the solution must satisfy (see, for example, Patent Documents 1 and 2). For example, the knapsack problem, which is one type of discrete optimization problem, has a constraint that the total volume of luggage that can be packed into a 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 whose values depend on whether the constraints are violated. In addition to inequality constraints, other constraints include 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 side represents the energy equivalent to E(x) in equation (1), and the third term on the right side represents the overall magnitude (energy) of the constraint terms. Also, D represents a set of identification numbers for the state variables, k represents an identification number for the constraint terms, and A represents a set of identification numbers for the constraint terms. Also, λ k is a predetermined positive coefficient for the constraint term with identification number k.
[0015] If the constraint is an inequality constraint, then g(h k ) can be expressed by the following equation (4).
[0016]
number
[0017] In equation (4), max[0,h k ] is 0 and h k It is a function that outputs the larger value of R k is the consumption (also called resource amount) of the constraint term with identification number k, U k represents the upper limit of the resource amount. ki is the x in the inequality constraint with identification number k. iis a coefficient (weight value) that indicates the weight of
[0018] In equation (3), x j The change in energy due to the change in the value of (ΔH j ) is expressed by the following equation (5).
[0019]
number
[0020] If the constraint is an inequality constraint, x j The change in energy due to the change in the value of (ΔH j ) can be expressed by the following equation (6) instead of equation (5).
[0021]
number
[0022] In equation (6), a ij is the x in the inequality constraint with identification number i j is a coefficient indicating the weight of the above W ki Equivalent to C ui is the upper limit of the inequality constraint for the identification number i, and k where M represents the number of constraints.
[0023] x j The acceptance probability of accepting a change in the value of A j =min[1,exp(-βΔH j min[1,exp(-βΔH j )] is 1 and exp(-βΔH j ) is a function that outputs the smaller value.
[0024] Equation (3) is a linear discontinuous function, not a quadratic function like equation (1). Previously, technology has been proposed to convert linear discontinuous functions into quadratic functions so that inequality constraints can be handled by Ising machines. However, when calculating a discrete optimization problem using the constraint terms of inequality constraints converted into quadratic form, it can be difficult to solve the problem using an Ising machine, as the processing becomes complicated.
[0025] Therefore, a technique has been proposed in the past in which the constraint terms of the inequality constraints as described above are used in a linear form to find a solution using an Ising device (see, for example, Patent Document 2). [Prior art documents] [Patent documents]
[0026] [Patent Document 1] Japanese Patent Application Publication No. 2020-201598 [Patent Document 2] Japanese Patent Application Publication No. 2020-204928 Summary of the Invention [Problem to be solved by the invention]
[0027] In the conventional technology where the constraint terms of the inequality constraints are used in linear form to find a solution, the ΔH j When calculating the coefficients for each constraint term (in the example of equation (6) above, a ij ) were used in the calculations.
[0028] The coefficients for each constraint term can be more than 1000. j When calculating, all coefficients are read from memory and added, which may result in a large amount of calculation.
[0029] In one aspect, the present invention aims to provide a data processing device, a program, and a data processing method that can reduce the amount of calculation required for a discrete optimization problem with constraints. [Means for solving the problem]
[0030] In one embodiment, a data processing device that searches for a combination of values of a plurality of state variables that results in a minimum or maximum value of an Ising-type evaluation function including the plurality of state variables includes: a plurality of constraint terms having values corresponding to the presence or absence of violation of each of a plurality of constraint conditions; a total energy that is the sum of the values of the evaluation function; values of the plurality of state variables; first weight values between each of the plurality of state variables; second weight values between any of the plurality of state variables and each of the plurality of constraint conditions; a first local field that represents a first change amount of the total energy when the value of each of the plurality of state variables changes; and a plurality of constraint conditions. and a second local field used to identify a constraint violation amount for each of the plurality of state variables; and a processing unit that repeats the following processes: determining whether or not to allow a change in the value of a first state variable among the plurality of state variables based on the first local field; and, when it is determined that the change in the value of the first state variable is allowed, updating the first local field based on the first weight value, updating the second local field corresponding to a constraint condition with respect to the first state variable where the second weight value is nonzero, based on the second weight value, and further updating the first local field based on the second local field before and after the update.
[0031] Also, in one embodiment, a program is provided. Also, in one embodiment, a data processing method is provided. [Effects of the Invention]
[0032] In one aspect, the present invention can reduce the computational complexity of a discrete optimization problem with constraints. [Brief explanation of the drawings]
[0033] [Figure 1] 1 illustrates an example of a data processing device and a data processing method according to a first embodiment; [Figure 2] FIG. 10 is a diagram illustrating an example of the amount of change in the value of a penalty function due to a change in the value of a state variable. [Figure 3] FIG. 10 is a diagram illustrating an example of updating the local field when the value of xj changes. [Figure 4] FIG. 10 is a diagram illustrating an example procedure for updating a local field. [Figure 5] FIG. 1 is a diagram illustrating a data processing device according to a first comparative example. [Figure 6] FIG. 10 is a diagram illustrating a data processing device according to a second comparative example. [Figure 7] FIG. 10 is a diagram illustrating an example of updating the local field when the value of xk changes in Comparative Example 2, and an example of updating the local field when the value of hk changes in the first embodiment. [Figure 8] FIG. 10 is a diagram illustrating an example of occurrence of a prediction error in a data processing device of Comparative Example 2. [Figure 9] FIG. 10 illustrates examples of possible penalty functions. [Figure 10] FIG. 10 is a diagram illustrating an example of a constraint term. [Figure 11] FIG. 10 is a block diagram illustrating an example of hardware of a data processing device according to a second embodiment. [Figure 12] FIG. 2 is a block diagram illustrating an example of functions of a data processing device. [Figure 13] FIG. 10 illustrates an example of the operation of the data processing device according to the second embodiment. [Figure 14] FIG. 10 is a diagram illustrating an example of a circuit of an hk contribution calculation unit. [Figure 15] FIG. 10 is a diagram showing a first calculation example of Δg. [Figure 16] FIG. 10 is a diagram showing a second calculation example of Δg. [Figure 17] FIG. 10 is a diagram illustrating an example of a Δg generating circuit that generates Δg by combining a plurality of penalty functions. [Figure 18] 10 is a flowchart illustrating the flow of an example of a data processing method. [Figure 19] 10 is a flowchart illustrating an example of a flow of a local field update process. [Figure 20] FIG. 10 is a diagram illustrating another example of a data processing device. DETAILED DESCRIPTION OF THE INVENTION
[0034] Hereinafter, embodiments of the invention will be described with reference to the drawings. (First embodiment) FIG. 1 illustrates an example of a data processing device and a data processing method according to the first embodiment.
[0035] The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The storage unit 11 is, for example, a volatile storage device that is an electronic circuit such as a dynamic random access memory (DRAM), or a non-volatile storage device that is an electronic circuit such as a hard disk drive (HDD) or a flash memory. The storage unit 11 may also include an electronic circuit such as a static random access memory (SRAM) register.
[0036] The storage unit 11 stores H(x), a plurality of (hereinafter referred to as N) state variables (x i ) values, N x i The first weight value (the aforementioned W ij ), N x i The second weight value (W ki ) The storage unit 11 does not need to store the second weight value (second weight value of 0) for a state variable that does not affect any of the M constraint conditions.
[0037] i, n x i k is an identification number representing one of the M constraint terms (or constraint conditions). Furthermore, the storage unit 11 stores N x i The change in H(x) when each value of i ) representing the first local field (h i ) and the second local field (h k) is stored. The state variables can also be called decision variables. Since each second local field corresponds to each constraint term, the second weight value can also be called the weight value between the state variables and the second local field.
[0038] Figure 1 shows multiple state variables (in the example of Figure 1, x1, x i , x N ) and the interactions between each of the multiple state variables and multiple second local fields (h p , h k , h r ) are indicated by arrows. The magnitude of these interactions corresponds to the first weight value or the second weight value.
[0039] H(x) stored in the storage unit 11 can be expressed as H(x) = E(x) + P(x), where E(x) is the sum of the first and second terms on the right side of the above-mentioned equation (3). The total energy P(x) of M constraint terms corresponding to M constraint conditions is hereinafter expressed by equation (7).
[0040]
number
[0041] gamma k is a proportional coefficient for the constraint term with the identification number = k, and represents the weight of the constraint term. k can be different for each constraint. g(h k ) may be, for example, a Max function as expressed by equation (4), or may be another function (for example, a step function). k ) is called the penalty function.
[0042] The second local field (h k ) can be expressed by the following equation (8).
[0043]
number
[0044] In equation (8), b k is a coefficient related to the constraint condition of identification number = k. When the constraint condition of identification number = k is an inequality constraint, one item on the right side of equation (8) is R in the above equation (4). k corresponds to +b k is the -U in equation (4). k Therefore, as mentioned above, h k is R k and U k It can be said that it is a variable used to identify the difference between the two, that is, the amount of constraint violation.
[0045] Note that a certain state variable (x i ) when the value of ΔH changes i can be expressed by the following equation (9) using a penalty function.
[0046]
number
[0047] g(h k +W ki Δx i )-g(h k ) is a state variable (x i ) changes, the change in the value of the penalty function (which can also be called the change in the constraint term).
[0048] FIG. 2 is a diagram showing an example of the amount of change in the value of the penalty function due to a change in the value of the state variable. The vertical axis is g(h k ) and the horizontal axis represents the magnitude of h k represents. In Figure 2, an example of a penalty function is g(h k )=max[0,h k ] is used. x i With the change in the value of h k h k +W ki Δx i When the value of the penalty function changes to g(h k +Wki Δx i )-g(h k )
[0049] The data processing device 10 of this embodiment calculates the first local field (h i ) as x i We use a value that reflects not only the change in E(x) due to the change in the value of h but also the change in P(x). i can be expressed by the following equation (10).
[0050]
number
[0051] In equation (10), Δg(h k ,W ki Δx i ) is expressed by the following equation (11), and x i , h k , W ki It is a quantity that can be calculated from
[0052]
number
[0053] h as in equation (10) i By using ΔH i is ΔH i =-h i Δx i It is expressed as: The storage unit 11 further stores a bias coefficient (b i ), proportionality coefficient (γ k ), the coefficients related to the constraints (b k ) The storage unit 11 may also store various data such as calculation conditions when the processing unit 12 executes a data processing method described below. In addition, when the processing unit 12 executes part or all of the processing of the data processing method described below using software, the storage unit 11 stores a program for executing that processing.
[0054] 1 can be realized by a hardware processor such as a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), etc. Alternatively, the processing unit 12 may be realized by an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).
[0055] For example, the processing unit 12 searches for a state where E(x) is minimal. The state where E(x) is the smallest of the minimal values is the optimal solution. Note that by exchanging the signs of E(x) and P(x), the processing unit 12 can also search for a state where the value of E(x) is maximal (in this case, the state where E(x) is maximal is the optimal solution).
[0056] FIG. 1 shows an example of the flow of processing by the processing unit 12. Here, H(x), h i , h k , x k As x1~x N It is assumed that a value based on the initial value of is stored in the storage unit 11.
[0057] The processing unit 12 selects state variables of candidates whose values are to be changed (hereinafter referred to as flip candidates) from among the N state variables (step S1). The processing unit 12 selects the state variables of the flip candidates, for example, randomly or in a predetermined order.
[0058] Then, the processing unit 12 calculates ΔH when the value of the selected state variable changes (step S2). For example, x i If is selected, ΔH i As above, h i Based on ΔH i =-h i Δx i It can be calculated by the formula:
[0059] Next, the processing unit 12 determines whether or not to allow a change in the value of the state variable of the flip candidate (whether or not a flip is possible) based on the result of comparing ΔH with a predetermined value (step S3). Hereinafter, this determination process will be referred to as a flip determination process.
[0060] The predetermined value is, for example, a noise value obtained based on a random number and a temperature parameter value. 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, the processing unit 12 calculates -ΔH i If ≧log(rand)×T, it is determined that the change in the value of the state variable of the flip candidate is permitted (flip allowed).
[0061] If the processing unit 12 determines that flipping is permitted, it performs an update process (step S4). The processing unit 12 may, for example, j If it is determined that the flip is possible, the original h for each of the N state variables is i , Δh i =W ij Δx j By adding h i In addition, when i=j, W ii =0, and h i Since x does not change, it is not necessary to update it. j If it is determined that flipping is possible, then x j The second weight value (W kj ) is non-zero k For Δh k =W kj Δx j By adding h k Update the following.
[0062] Figure 3 shows the x j 3 is a diagram showing an example of updating the local field when the value of the first local field (h i ) is h1~h N and the second local field (h k ) is h N+1 ~hN+M Such calculations can be performed by parallel calculations with a parallelism of N+M.
[0063] Furthermore, the processing unit 12 calculates the h before and after the update. k Based on h i is further updated according to the following equation (12):
[0064]
number
[0065] In equation (12), h k (old) is the h before update k In addition, when i=j, h i does not change, so no update is required. FIG. 4 is a diagram illustrating an example of a procedure for updating a local field.
[0066] x1, x i , x N is a state variable, and h p , h k , h r is the second local field. The state variables x1 and x i , x N Of which, x i If the value of x changes, i The first local field x corresponds to the state variable whose first weight value between i The second local field with a non-zero second weight between x and x is updated. i The first weight value (W 1i ) is non-zero, the h1 corresponding to x1 is Δh1=W 1i Δx i is updated by adding x i The first weight value (W iN ) is nonzero x N h corresponding to N But Δh N =W iN Δx i It is updated by adding xi The second weight value (W pi ) is non-zero p But Δh p =W pi Δx i is updated by adding x i The second weight value (W ri ) is non-zero r But Δh r =W ri Δx i is updated by adding
[0067] Next, the first local field corresponding to the state variable whose second weight value is non-zero with respect to the second local field whose value has changed is updated based on Equation (12). For example, h r The second weight value (W ri , W rN ) is nonzero x i , x N h corresponding to i , h N is updated based on equation (12). p The second weight value (W p1 , W pi , W pN ) are nonzero for x1, x i , x N h1, h corresponding to i , h N is updated based on equation (12).
[0068] In the process of step S4, the processing unit 12 further updates H(x) by adding ΔH to the original H(x), and updates the state variables that are determined to be flippable (for example, x j ) value.
[0069] The processing unit 12 repeats the above steps S1 to S4. In the above explanation, an example has been shown in which flip candidate state variables are selected one by one from the N state variables, and the processing of steps S2 to S4 is performed, but the processing of steps S2 to S3 may be performed in parallel for a plurality of state variables (for example, all N state variables). In this case, when there are a plurality of state variables whose values are allowed to change, the processing unit 12 selects the state variable whose value is to be changed randomly or in accordance with a predetermined rule.
[0070] When performing simulated annealing, for example, the processing unit 12 decreases the value of the temperature parameter (T) according to a predetermined temperature parameter change schedule each time the flip determination process for the state variables is repeated a predetermined number of times. Then, the processing unit 12 outputs the state obtained when the flip determination process is repeated a predetermined number of times (or when a predetermined T is reached) as the calculation result of the discrete optimization problem. Note that the processing unit 12 may store the total energy and the state when the minimum energy has been achieved so far in the storage unit 11. In this case, the processing unit 12 may output the state corresponding to the minimum energy stored after the flip determination process is repeated a predetermined number of times as the calculation result.
[0071] When the processing unit 12 performs the replica exchange method, the processing unit 12 repeats the above steps S1 to S4 for each of multiple replicas, each of which has a different T value. The processing unit 12 then performs replica exchange every 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 and each auxiliary variable between the two selected replicas with a predetermined exchange probability based on the energy difference between the replicas and the difference in T value. Note that the value of T may be exchanged between the two replicas instead of the values of each state variable and each auxiliary variable. Alternatively, the processing unit 12 stores the total energy and the state when the minimum energy is reached. The processing unit 12 then outputs, as a calculation result, the state corresponding to the minimum energy among all replicas, among the minimum energies stored for each replica after the above flip determination process is repeated a predetermined number of times.
[0072] By using the replica exchange method, the state changes even at low temperatures (replicas with small T values) where the state hardly changes, increasing the possibility of finding a good solution in a short time.
[0073] According to the data processing device 10 and data processing method described above, as shown in FIG. 3, h i , h k can be updated, and the second weight value between the state variables whose values are allowed to change is 0. k No update is performed for h, which is used to identify the amount of constraint violation for the constraint condition that is affected by the change in the state variable. k It will be updated only when the update is not performed. k Since the value does not change, k h by using equation (12) i No further updates are made to the
[0074] This reduces the amount of calculation required for the update process. In addition, the first local field (h i) as x i Not only the change in E(x) with the change in the value of , but also the change in P(x) (g(h k +W ki Δx i )-g(h k ) is used, flip determination can be performed based on a more accurate ΔH, thereby improving solution performance.
[0075] (Comparative Example) Two comparative data processing devices will be described below. FIG. 5 is a diagram illustrating a data processing device according to a first comparative example.
[0076] The data processing device 20 of the comparative example 1, when calculating ΔH accompanying a change in the value of the state variable, uses the coefficients related to each constraint term (W in the example of the above-mentioned equation (5)). kj , in the example of Equation (6), a ij ) are used in the calculation.
[0077] The data processing device 20 of the comparative example includes a state holding unit 21, a ΔE calculation unit 22, a ΔP addition unit 23, a transition possibility determination unit 24, a selection unit 25, an update unit 26, and a ΔP calculation unit 27. The state holding unit 21 holds the state x (x1 to x N ) and outputs x. The state holding unit 21 also holds Δx j Output.
[0078] The ΔE calculation unit 22 calculates x1 to x N When each of these changes, ΔE j Calculate (one term on the right side of equation (5)). The ΔP adder 23 calculates ΔE j to ΔP j (The two terms on the right side of equation (5)) are added. This results in ΔH in equation (5). j is calculated.
[0079] The transition possibility determination unit 24 determines ΔH j Based on the comparison result with the predetermined value, x1 to x NA flip determination process is performed for each of the above. If there are a plurality of state variables that are determined to be flippable, the selection unit 25 selects any one of the state variables.
[0080] The update unit 26 sends the identification number of the state variable that is determined to be flippable to the state holding unit 21, and changes the value of that state variable. j Updates and H updates. The ΔP calculation unit 27 calculates x1 to x N ΔP when each of j Calculate ΔP j The calculation is performed, for example, as follows:
[0081] The ΔP calculation unit 27 calculates h k (Step S10). In the example of FIG. k is calculated using j instead of i in equation (4). Next, the ΔP calculation unit 27 sets k=1 and P=0 (step S11), and calculates P+λ based on the two items on the right side of equation (5). k (g(h k +W kj Δx j )-g(h k The result of calculating P is set as a new P (step S12).
[0082] Then, the ΔP calculation unit 27 determines whether or not k=M (step S13). If the ΔP calculation unit 27 determines that k=M is not true, it sets k to k+1 (step S14) and repeats the processing from step S12.
[0083] When it is determined that k=M, the ΔP calculation unit 27 calculates P as ΔP j (step S15). In the above process, x1~x N For each of these, ΔP j In order to calculate W, the process of step S12 is repeated M times. kj Therefore, N ΔP jThe calculation of requires a calculation amount proportional to N × M, which is large. Also, the amount of data transfer required for reading is large. j In calculating kj This is because the data is read out serially.
[0084] In order to reduce the amount of calculation, it is possible to use the following data processing device. FIG. 6 is a diagram illustrating a data processing device according to a second comparative example. The data processing device 30 of the comparative example 2 includes a state variable holding unit 31, an auxiliary variable holding unit 32, multipliers 33, 34, 35, and h i Update circuit 36, h k It has an update circuit 37, an update state variable determination unit 38, and an update auxiliary variable determination unit 39.
[0085] The state variable holding unit 31 holds N state variables (x i ) is stored in the state variable storage unit 31. j The change in (Δx j ) is output. The auxiliary variable storage unit 32 stores M auxiliary variables (x k ) x k is a variable that is 0 when the constraint of the identification number = k is satisfied, and is 1 when it is not satisfied. k The change in (Δx k ) is output.
[0086] When such auxiliary variables are used, H(x) can be expressed by, for example, the following equation (13).
[0087]
number
[0088] In the data processing device 30 of Comparative Example 2, h i can be expressed by the following equation (14).
[0089]
number
[0090] Also, h k can be expressed by the following equation (15).
[0091]
number
[0092] In addition, equation (15) is -U k =b k This is the same as equation (8). Multiplier 33 multiplies the flip candidate x j When the value of h changes, as shown in equation (14), i The change in Δx j and W ij Outputs the product of
[0093] Multiplier 34 multiplies the flip candidate x j When the value of h changes, as shown in equation (15), k The change in Δx j and W kj Outputs the product of Multiplier 35 multiplies the flip candidate x k When the value of h changes, as shown in equation (14), i The change in Δx k and W ki Outputs the product of
[0094] h i The update circuit 36 updates the flip candidate x j If the value of h changes, i To, W ij Δx j By adding h i Update h i The update circuit 36 updates the flip candidate x k If the value of h changes, i to, -λ k W ki Δx kBy adding h i Update.
[0095] h k The update circuit 37 updates the flip candidate x j If the value of h changes, k To, W kj Δx j By adding h k Update. The update state variable determination unit 38 determines the flip candidate x j h, the first local field with respect to j Based on this, ΔH=-h j Δx j Then, the updated state variable determination unit 38 calculates x based on the comparison result between ΔH and the predetermined value. j Decide whether to change the value of x j When it is decided to change the value of x j Change the value of .
[0096] The update auxiliary variable determination unit 39 determines the x of the flip candidate. k The second local field with respect to h k Based on this, ΔH=+λ k h k Δx k Then, the update auxiliary variable determination unit 39 calculates x based on the comparison result between ΔH and the predetermined value. k Decide whether to change the value of x k When it is decided to change the value of x k Change the value of .
[0097] In such a data processing device 30, an auxiliary variable (x k ) are allowed to change, ki Based on h i This updates W for all M constraints. ki It is no longer necessary to read out the addition process (original h i to Δh i =-λ k Wki Δx k This reduces the number of times the update process (process of adding the new value) is performed, thereby reducing the amount of calculation required for the update process.
[0098] FIG. 7 shows the results of Comparative Example 2. k An example of updating the local field when the value of changes, and k 10 is a diagram illustrating an example of updating the local field when the value of σ changes. In the data processing device 30 of Comparative Example 2, x k If the value of changes, N h i (h1~h N ) to -λ k Δx k W ki (W k1 ~W kN On the other hand, in the data processing device 10 of the first embodiment, updating is performed by adding h k If the value of changes, N h i (h1~h N ) to δh i (δh1~δh N ) is added to update. i is -γ in Eq. (12). k [Δg(h k ,W ki Δx i )-Δg(h k (old) ,W ki Δx i )].
[0099] In the data processing device 30 of Comparative Example 2, when determining whether to change the value of the state variable of the flip candidate, the change amount of the constraint term accompanying the change is not taken into consideration. Therefore, when the value of the auxiliary variable changes, ΔH=+λ k h k Δx k Until H(x) is updated by
[0100] 8 is a diagram showing an example of occurrence of a prediction error in the data processing device of Comparative Example 2. The vertical axis represents the magnitude of the constraint term, and the horizontal axis represents h kIn Figure 8, the constraint term of the inequality constraint is λ k max[0,h k ] is represented as follows.
[0101] Prediction error occurrence case 1 shows a prediction error that occurs when an inequality constraint changes from a satisfied state to a violated state. Prediction error occurrence case 2 shows a prediction error that occurs when an inequality constraint changes from a violated state to a satisfied state.
[0102] In either case, a prediction error may occur as shown in FIG. Therefore, it may be difficult to improve the performance of solving inequality constraint problems with high difficulty. Furthermore, in the data processing device 30 of Comparative Example 2, the penalty functions that can be used are limited to ReLU (Rectified Linear Unit) functions.
[0103] In contrast, the data processing device 10 of the first embodiment uses h i As, x i Not only the change in E(x) with the change in the value of , but also the change in P(x) (g(h k +W ki Δx i )-g(h k )) is used. Therefore, a more accurate ΔH i This allows for flip determination, improving solution performance.
[0104] Furthermore, the penalty function that can be handled by the data processing device 10 of the first embodiment is not limited to the ReLU type function. FIG. 9 shows examples of usable penalty functions.
[0105] In Example 1, the penalty function g(h k ) as a ReLU type function, max[0,h k ] is shown. In Example 2, the penalty function g(h k ) as the step function u(hk ) is shown.
[0106] It is also possible to use constraint terms that combine the above two penalty functions. FIG. 10 is a diagram showing an example of constraint terms.
[0107] In Figure 10, the step function u(h k ) with the proportionality coefficient μ k and max[0,h k ] as the proportionality coefficient λ k γ k g(h k )=μ k u(h k )+λ k max[0,h k ] is shown as an example of a constraint term.
[0108] Note that the available penalty functions are not limited to the above examples. i Since the calculation of equation (12) is performed when updating, it is desirable that the penalty function be a function that is relatively easy to calculate.
[0109] (Second embodiment) FIG. 11 is a block diagram illustrating an example of hardware of a data processing device according to the second embodiment.
[0110] The data processing device 40 is, for example, a computer, and includes a CPU 41, a RAM 42, a HDD 43, a GPU 44, an input interface 45, a media reader 46, and a communication interface 47. The above units are connected to a bus.
[0111] The CPU 41 is a processor including an arithmetic circuit that executes program instructions. The CPU 41 loads at least a portion of the program and data stored in the HDD 43 into the RAM 42 and executes the program. The CPU 41 may have multiple processor cores, and the data processing device 40 may have multiple processors, and the processes described below may be executed in parallel using multiple processors or processor cores. A collection of multiple processors (a multiprocessor) may also be called a "processor."
[0112] The RAM 42 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 41 and data used in calculations by the CPU 41. Note that the data processing device 40 may include a type of memory other than the RAM 42, or may include multiple memories.
[0113] The HDD 43 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The programs include, for example, a program that causes the data processing device 40 to execute a process for searching for a solution to a discrete optimization problem. Note that the data processing device 40 may also be equipped with other types of storage devices, such as a flash memory or an SSD (Solid State Drive), or may be equipped with multiple non-volatile storage devices.
[0114] The GPU 44 outputs an image to a display 44a connected to the data processing device 40 in accordance with an instruction from the CPU 41. The display 44a may be a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display (PDP: Plasma Display Panel), an organic EL (OEL: Organic Electro-Luminescence) display, or the like.
[0115] The input interface 45 receives an input signal from an input device 45a connected to the data processing device 40 and outputs the signal to the CPU 41. The input device 45a may be a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, or a button switch. Multiple types of input devices may be connected to the data processing device 30.
[0116] The medium reader 46 is a reading device that reads programs and data recorded on a recording medium 46a. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), or a semiconductor memory can be used as the recording medium 46a. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).
[0117] The medium reader 46 copies programs and data read from the recording medium 46a to another recording medium such as the RAM 42 or the HDD 43. The read programs are executed by the CPU 41, for example. The recording medium 46a may be a portable recording medium and may be used to distribute programs and data. The recording medium 46a and the HDD 43 may also be referred to as computer-readable recording media.
[0118] The communication interface 47 is connected to a network 47a and communicates with other information processing devices via the network 47a. The communication interface 47 may be a wired communication interface connected to a communication device such as a switch via a cable, or may be a wireless communication interface connected to a base station via a wireless link.
[0119] Next, the functions and processing procedures of the data processing device 40 will be described. FIG. 12 is a block diagram illustrating an example of functions of the data processing device. The data processing device 40 includes an input unit 51, a control unit 52, a search unit 53, and an output unit .
[0120] The input unit 51, the control unit 52, the search unit 53, and the output unit 54 can be implemented, for example, using a program module executed by the CPU 41 or a storage area (register or cache memory) within the CPU 41. The search unit 53 may also be implemented using a storage area secured in the RAM 42 or the HDD 43.
[0121] The input unit 51 receives input of, for example, initial values of N state variables, problem information, and calculation conditions. ki ya b k In addition, W in Eq. (10) ij , b i , γ k The calculation conditions include, for example, the number of replicas when the replica exchange method is performed, the replica exchange period, the temperature parameter values to be set for each replica, the temperature parameter change schedule when the simulated annealing method is performed, and the calculation termination conditions.
[0122] This information may be input by the user operating the input device 45a, or may be input via the recording medium 46a or the network 47a. The control unit 52 controls each unit of the data processing device 40 to execute the processes described below.
[0123] The search unit 53, under the control of the control unit 52, repeats the flip determination process and the update process to search for a state where the value (energy) of the evaluation function is minimized. The output unit 54 outputs the search result (calculation result) by the search unit 53.
[0124] The output unit 54 may, for example, output the calculation results to the display 44a for display, or may transmit the results to another information processing device via the network 47a, or may store the results in an external storage device.
[0125] The search unit 53 includes a weight value storage unit 53a, a state variable storage unit 53b, an auxiliary variable storage unit 53c, a local field update unit 53d, and k Update detection units 53e, h k The search unit 53 further includes a contribution calculation unit 53f. i Holding part 53g, h k The circuit has a holding unit 53h, a ΔH calculation unit 53i, a ΔH holding unit 53j, a FF (flip-flop) 53k, a flip determination processing unit 53l, and an H holding unit 53m.
[0126] The weight value storage unit 53a stores N×N W ij and M×N W ki and N × M W ik It holds that W ki =W ik Therefore, the weight value storage unit 53a stores N×M W ik In addition, the weight value storage unit 53a does not need to store W ki It is not necessary to retain the above.
[0127] The state variable holding unit 53b holds N state variables (x i ) is stored. When a flip candidate state variable is designated among the N state variables, the state variable storage unit 53b outputs the amount of change in the value of that state variable. For example, x j If is specified, Δx j =1-2x j will be output.
[0128] The auxiliary variable holding unit 53c holds M auxiliary variables (x k ) value of x k is the same as that used in the data processing device 30 of the second comparative example, and is used, for example, to detect whether a constraint condition is satisfied. k The illustration of the configuration for updating h is omitted. k If >0, g(h k )>0, and the constraint is violated. For example, h k If >0 then x k =1, hk If ≦0, then x k However, the data processing device 40 of this embodiment is configured to set x k In this case, the auxiliary variable storage unit 53c is not required.
[0129] When a change in the value of a state variable of a flip candidate is permitted (when flipping is permitted), the local field update unit 53d reads out the weight value between the state variable and other state variables from the weight value storage unit 53a and updates the local field using the weight value. For example, x j If it is determined that flipping is allowed, the local field update unit 53d ij Δx j For each h i By adding to h i Update.
[0130] Furthermore, when a state variable of a flip candidate is determined to be flippable, the local field update unit 53d updates the state variable and the M local fields (h k ) and read out the weight values that are non-zero, and use those weight values to calculate h k Update x. j If it is determined that flipping is allowed, the local field update unit 53d kj Δx j h k By adding to h k Update.
[0131] h k The update detection unit 53e k Detect updates. h k The contribution calculation unit 53f detects the update. k Changes in the value of h i The change in (δh in Figure 7) i ), a non-zero W is stored in the weight value storage unit 53a. ki Furthermore, h k The contribution calculation unit 53f calculates h k h k Obtained from the holding unit 53h, h k (old)Get it from FF53k. And h k The contribution calculation unit 53f calculates Δh i Calculate the original h i δh i By adding h i Update.
[0132] h i The holding portion 53g has N h i Hold. h k The holding portion 53h has M h k Hold. The ΔH calculation unit 53i calculates ΔH based on the local field corresponding to the state variable of the flip candidate. For example, if the flip candidate is x j If so, the ΔH calculation unit 53i calculates ΔH j =-h j Δx j Calculate.
[0133] The ΔH holding unit 53j holds the ΔH calculated by the ΔH calculation unit 53i. j Hold. FF53k is h k Hold and h k By delaying the timing of outputting h k (old) h k The result is supplied to the contribution calculation unit 53f.
[0134] The flip determination processor 53l performs a flip determination process to determine whether the state 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 a temperature parameter value. For example, if -ΔH≧log(rand)×T, the flip determination processor 53l determines that the change in the value of the state variable of the flip candidate is permitted.
[0135] Furthermore, the flip determination processing unit 53l sends the identification number of the state variable determined to be flippable to the state variable holding unit 53b, and updates the value of that state variable. Furthermore, the flip determination processing unit 53l updates H(x) held in the H holding unit 53m based on ΔH caused by a change in the value of the state variable for which flipping is permitted.
[0136] The H holder 53m holds H(x). Note that the H holder 53m may hold H(x) and the state when the minimum energy has been reached so far. Next, an example of the operation of the data processing device 40 according to the second embodiment will be described.
[0137] Fig. 13 is a diagram illustrating an example of the operation of the data processing device according to the second embodiment. Fig. 13 illustrates an example in which pipeline processing is performed using eight replicas. 0 to 7 are replica numbers. Fig. 13 illustrates details of the processing for the replica with replica number = 0, and the other replicas are illustrated simply.
[0138] In the replica with replica number = 0, a flip decision process is performed (t1), and depending on the result, x i , x k Updates will be made to h i , h k Then, the local field update unit 53d reads out the weight values for updating h i , h k The update of three h k (In Figure 13, 0 ka , 0 kb , 0 kc When updates are made to the k (old) The output of h k h by the update detection unit 53e k Update detection is performed (t4~t5).
[0139] And update detection is finished h k In order, the corresponding W ki is read (t5), and k The contribution calculation unit 53f calculates the above-mentioned Δh i Based on hi is updated (t6). i is read out (t7), and ΔH is calculated, a flip determination process is performed, and H(x) is calculated (t8).
[0140] Incidentally, the search unit 53 shown in FIG. 12 can also be realized using an electronic circuit such as an FPGA, as will be described later (see FIG. 20). For example, k The contribution calculation unit 53f can be realized by the following circuit.
[0141] Figure 14 shows the k FIG. 10 is a diagram illustrating an example of a circuit of a contribution calculation unit. h k The contribution calculation unit 53f includes Δg generation circuits 53f1 and 53f2, an adder 53f3, and a multiplier 53f4.
[0142] The Δg generating circuit 53f1 calculates Δg(h) shown in equation (12) based on equation (11). k ,W ki Δx i ) is generated (calculated) and output. The Δg generating circuit 53f2 calculates Δg(h) shown in equation (12) based on equation (11). k (old) ,W ki Δx i ) is generated (calculated) and output.
[0143] The adder 53f3 calculates Δg(h k ,W ki Δx i )-Δg(h k (old) ,W ki Δx i ) and print it. The multiplier 53f4 multiplies Δg(h k ,W ki Δx i )-Δg(h k (old) ,W ki Δx i ) to -γ k δh is the value multiplied by iOutput.
[0144] FIG. 15 is a diagram showing a first calculation example of Δg. FIG. 15 shows an example of calculating Δg when g(h) is a step function (u(h)).
[0145] The value before the change is x i = 0, Δg(h k ,W ki Δx i ) is h k ≦-W ki 0 for -W ki <h k 1 if < 0, h k If ≧0, it is 0. The value before the change is x i = 1, Δg(h k ,W ki Δx i ) is h k 0,0 if ≦0 <h k <W ki 1 for h k ≧W ki In this case, it is 0.
[0146] FIG. 16 is a diagram showing a second calculation example of Δg. FIG. 16 shows an example of calculation of Δg when g(h) is the Max function (max[0,h]).
[0147] The value before the change is x i = 0, Δg(h k ,W ki Δx i ) is h k ≦-W ki 0 for -W ki <h k h if <0 k +W ki , h k If ≧0, W ki is. The value before the change is x i = 1, Δg(h k ,W ki Δx i ) is hk 0,0 if ≦0 <h k <W ki In the case of h k , h k ≧W ki In the case of W ki is.
[0148] It is also possible to combine Δg as shown in FIG. 15 and FIG. FIG. 17 is a diagram showing an example of a Δg generating circuit that generates Δg obtained by combining a plurality of penalty functions.
[0149] The Δg generating circuit 53f1 includes a multiplier 60, an adder 61, a Δg1 generating circuit 62, a Δg2 generating circuit 63, multipliers 64 and 65, and an adder 66. The multiplier 60 is W ki and Δx i The product of W ki Δx i Output.
[0150] The adder 61 calculates h k and-W ki Δx i Output the sum of and . The Δg1 generating circuit 62 generates a Δg(h k ,W ki Δx i ) is generated.
[0151] The Δg2 generating circuit 63 generates, for example, Δg(h k ,W ki Δx i ) is generated. The multiplier 64 multiplies the Δg(h k ,W ki Δx i ) to -μ k The value multiplied by is output.
[0152] The multiplier 65 multiplies the Δg(h k ,W ki Δx i) to -λ k The value multiplied by is output. The adder 66 outputs the sum of the outputs of the multipliers 64 and 65 .
[0153] The processing procedure (data processing method) of the data processing device 40 of the second embodiment will be described below with reference to a flowchart. FIG. 18 is a flowchart showing the flow of an example of a data processing method.
[0154] In the following, an example in which a search is performed using simulated annealing will be shown. Step S20: The input unit 51 receives input of initial values of N state variables, problem information, and calculation conditions (for example, parameters d and Tstop, which will be described later). The initial values of the N state variables are stored in the state variable storage unit 53b. The weight values included in the problem information are stored in the weight value storage unit 53a. The calculation conditions are supplied to the control unit 52.
[0155] Step S21: The control unit 52 performs an initialization process. In the initialization process, for example, the following processes are performed. The control unit 52 calculates h shown in equation (8) based on the initial values of the N state variables and the problem information. k The initial value of h shown in Eq. (10) i Calculate the initial value of h. i The initial value of h i The calculated M h values are stored in the storage unit 53g. k The initial value of h k It is held by the holding portion 53h.
[0156] Furthermore, the control unit 52 calculates an initial value of H(x) based on the initial values of the N state variables and the problem information. The calculated initial value of H(x) is held in, for example, the H holding unit 53m.
[0157] Step S22: Flip determination processing is performed by the search unit 53. In the processing of step S22, for example, a state variable of a flip candidate is selected, and h corresponding to the state variable is iBased on this, ΔH is calculated. Then, based on the comparison result between ΔH and a predetermined value, it is determined whether the state variable of the flip candidate can be flipped. The predetermined value is a noise value (for example, log(rand)×T) obtained based on a random number and the value of the temperature parameter (T).
[0158] Step S23: The search unit 53 performs an update process. In the process of step S23, the value of the state variable determined to be flippable is updated. Further, along with the update of the value of the state variable, h i h k and H(x) are updated. An example of the procedure for updating the local fields (h i and h k ) will be described later.
[0159] Step S24: The control unit 52 determines whether it is the T change timing. For example, every time the update of the state variable is performed a predetermined number of times, it is determined that it is the T change timing. When the control unit 52 determines that it is the T change timing, it performs the process of step S25. When it determines that it is not the T change timing, the process from step S22 is repeated.
[0160] Step S25: The control unit 52 updates T by performing d×T. d is one of the parameters included in the calculation conditions and has a value smaller than 1 (for example, 0.99, etc.). Step S26: The control unit 52 determines whether T<Tstop. Tstop is a parameter representing the end condition of the calculation. When the control unit 52 determines that T<Tstop, the process of step S27 is performed. When the control unit 52 determines that T<Tstop is not true, the process from step S22 is repeated.
[0161] Step S27: The output unit 54 outputs the calculation result. Thereby, the process ends. The calculation result is, for example, the total energy and state when the minimum energy so far is reached.
[0162] FIG. 19 is a flowchart showing an example of the flow of the update process of the local field. Step S30: If it is determined that the state variables of the flip candidates are flippable, the local field update unit 53d updates N local fields (h1 to h2) corresponding to the N state variables. N The local field update unit 53d updates the x of the flip candidate. j When the change of the value of is allowed (when flip is allowed), N W ij Read out W ij Δx j N h i By adding each of the N h i Update.
[0163] Step S31: The control unit 52 sets 1 to a loop variable s. Step S32: The control unit 52 determines k as the identification number of the constraint term. s (j) Set k s (j) is W kj An ascending list of identification numbers k where ≠ 0 {k1 (j) ,k2 (j) ,…,k m(j) (j)}, where j is the identification number of the state variable that is allowed to be flipped. Such a list is created in advance for each of the N state variables and stored in a storage unit (not shown).
[0164] Step S33: The local field update unit 53d updates h k For example, x j If it is determined that flipping is allowed, the local field update unit 53d kj Δx j h k By adding to h k Update.
[0165] Step S34:h k The contribution calculation unit 53f calculates h i Update the. h k The contribution calculation unit 53f calculates h k h corresponding to the state variables with non-zero weights between iUpdate it based on Equation (12).
[0166] Step S35: The control unit 52 determines whether s < m(j). If the control unit 52 determines that s < m(j), it performs the process of Step S36. If it determines that s ≥ m(j), it ends the update process.
[0167] Step S36: The control unit 52 sets s to s + 1. Thereafter, the process from Step S32 is repeated. Note that the order of the processes shown in FIGS. 18 and 19 is an example, and the order of the processes may be changed as appropriate.
[0168] According to the data processing apparatus 40 and the data processing method of the second embodiment as described above, h can be updated with a parallelism of N + M i h k and h for which the weight value with the state variable whose value change is allowed is 0 k is not updated (see FIG. 19). Also, for such h k since the value does not change, further update of h k by Equation (12) using that h i is not performed. Also, further update of h k corresponding to the state variable whose weight value with h whose value has changed is 0 i is not performed either. Therefore, the amount of calculation can be reduced. Also, the amount of data transfer can be made small.
[0169] Also, according to the data processing apparatus 40 and the data processing method of the second embodiment, h i used for the calculation of ΔH becomes a value that reflects not only the change amount of E(x) accompanying the change in the value of the state variable but also the change amount of P(x). That is, a more accurate ΔH can be calculated. Therefore, even when determining whether to change the value of the state variable of the flip candidate, a flip determination can be made based on the change amount of the constraint term accompanying the change. Thereby, the solution performance can be improved.
[0170] Furthermore, the penalty functions that can be used are not limited to the ReLU type, and it is also possible to use a penalty function that combines multiple penalty functions by using the configuration shown in Fig. 17. This makes it possible to selectively use inequality constraints (hard constraints) that must be observed and soft constraints that are allowed to be violated in comparison with E(x).
[0171] As mentioned above, the above processing contents can be realized by causing the data processing device 40 to execute a program. The program can be recorded on a computer-readable recording medium (e.g., recording medium 46a). Examples of recording media that can be used include magnetic disks, optical disks, magneto-optical disks, and semiconductor memories. Magnetic disks include FDs and HDDs. Optical disks include CDs, CD-R (Recordable) / RW (Rewritable), DVDs, and DVD-R / RWs. The program may be recorded on a portable recording medium and distributed. In this case, the program may be copied from the portable recording medium to another recording medium (e.g., HDD 43) and executed.
[0172] Fig. 20 is a diagram showing another example of a data processing device, in which the same elements as those shown in Fig. 11 are denoted by the same reference numerals. The data processing device 70 has an accelerator card 71 connected to the bus.
[0173] The accelerator card 71 is a hardware accelerator that searches for a solution to a discrete optimization problem and includes an FPGA 71a and a DRAM 71b.
[0174] In the data processing device 70, the FPGA 71a performs the processing of the control unit 52 and the search unit 53 shown in FIG. 12, for example. The DRAM 71b also functions as the weight value holding unit 53a shown in FIG. 12, for example.
[0175] It should be noted that there may be multiple accelerator cards 71. While one aspect of the data processing device, program, and data processing method of the present invention has been described above based on the embodiment, these are merely examples and the present invention is not limited to the above description. [Explanation of symbols]
[0176] 10 Data processing device 11 Storage section 12 Processing section
Claims
1. 1. A data processing device that searches for a combination of values of a plurality of state variables that results in a minimum or maximum value of an Ising-type evaluation function including the plurality of state variables, a storage unit that stores a total energy that is the sum of a plurality of constraint terms having values corresponding to the presence or absence of violation of each of a plurality of constraint conditions and the value of the evaluation function; values of the plurality of state variables; first weight values between each of the plurality of state variables; second weight values between any of the plurality of state variables and each of the plurality of constraint conditions; a first local field that represents a first amount of change in the total energy when the values of each of the plurality of state variables change; and a second local field that is used to identify an amount of constraint violation for each of the plurality of constraint conditions; a processing unit that repeats the following processes: determining, based on the first local field, whether or not a change in the value of a first state variable among the plurality of state variables is permitted; and, when it is determined that the change in the value of the first state variable is permitted, updating the first local field based on the first weight value, updating the second local field corresponding to a constraint condition in which the second weight value between the first local field and the first state variable is non-zero, based on the second weight value, and further updating the first local field based on the second local field before and after the update; A data processing device having:
2. 2. The data processing device according to claim 1, wherein the first local field is represented by a difference between a second change amount in the value of the evaluation function and a sum of third change amounts in each of the plurality of constraint terms when the values of each of the plurality of state variables change.
3. 3. The data processing device according to claim 2, wherein, when it is determined that a change in the value of the first state variable is permitted, the processing unit updates the first local field based on a difference between the third amount of change calculated using the second local field before updating and the third amount of change calculated using the second local field after updating.
4. 4. The data processing apparatus according to claim 1, wherein the plurality of constraint terms are expressed by a step function, a Max function, or a combination of the step function and the Max function.
5. 1. A program for causing a computer to execute a search for a combination of values of a plurality of state variables that results in a minimum or maximum value of an Ising-type evaluation function including the plurality of state variables, a total energy that is the sum of a plurality of constraint terms having values corresponding to the presence or absence of violation of each of a plurality of constraint conditions, which are stored in a storage unit, and the value of the evaluation function; values of the plurality of state variables; first weight values between each of the plurality of state variables; second weight values between any of the plurality of state variables and each of the plurality of constraint conditions; a first local field that represents a first amount of change in the total energy when the value of each of the plurality of state variables changes; and a second local field that is used to identify an amount of constraint violation for each of the plurality of constraint conditions. a process of determining whether or not to allow a change in a value of a first state variable among the plurality of state variables based on the first local field; a process of updating the first local field based on the first weight value stored in the storage unit when it is determined that the change in the value of the first state variable is allowed, updating the second local field corresponding to a constraint condition in which the second weight value between the first local field and the first state variable is non-zero based on the second weight value stored in the storage unit, and further updating the first local field based on the second local field before and after the update; A program that causes a computer to execute a process that repeats the above.
6. a computer that searches for a combination of values of a plurality of state variables that results in a minimum or maximum value of an Ising-type evaluation function including the plurality of state variables, a total energy that is the sum of a plurality of constraint terms having values corresponding to the presence or absence of violation of each of a plurality of constraint conditions, which are stored in a storage unit, and the value of the evaluation function; values of the plurality of state variables; first weight values between each of the plurality of state variables; second weight values between any of the plurality of state variables and each of the plurality of constraint conditions; a first local field that represents a first amount of change in the total energy when the value of each of the plurality of state variables changes; and a second local field that is used to identify an amount of constraint violation for each of the plurality of constraint conditions. a process of determining whether or not to allow a change in a value of a first state variable among the plurality of state variables based on the first local field; a process of updating the first local field based on the first weight value stored in the storage unit when it is determined that the change in the value of the first state variable is allowed, updating the second local field corresponding to a constraint condition in which the second weight value between the first local field and the first state variable is non-zero based on the second weight value stored in the storage unit, and further updating the first local field based on the second local field before and after the update; A data processing method that repeats the above.
Citation Information
Patent Citations
Information processing apparatus, PUBO solver, information processing method, and program
JP2020201598A
Optimization device and optimization method
JP2020204928A
Data processor, program and data processing method
JP2023000462A