Data processing device, program and data processing method
By employing auxiliary variables to manage constraint violations, the computational overhead in Ising machines is reduced, improving the efficiency of solving discrete optimization problems with inequality constraints.
Patent Information
- Application Number
- JP2022058462
- 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
Smart Images

Figure 0007795095000014 
Figure 0007795095000015 
Figure 0007795095000016
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 the 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 overhead in calculation time.
[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 overhead of calculation time 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 memory that stores: values of a plurality of constraint terms having a value according to whether or not each of a plurality of constraint conditions is violated; a total energy that is the sum of the values of the evaluation function; values of the plurality of state variables; values of a plurality of auxiliary variables that represent whether or not each of the plurality of constraint conditions is violated; a first weight value between each of the plurality of state variables; a second weight value between any of the plurality of state variables and each of the plurality of auxiliary variables; a first local field that represents a change amount of the total energy when the value of each of the plurality of state variables changes; and a second local field that is a value proportional to the change amount of the total energy when the value of each of the plurality of auxiliary variables changes. a first process including: a process of 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, if it is determined that the change in the value of the first state variable is permitted, a process of updating the value of the first state variable, updating the first local field based on the first weight value for the first state variable, and updating the second local field based on the second weight value for the first state variable; and a second process including: a process of determining, based on the second local field, whether or not a change in the value of a first auxiliary variable among the plurality of auxiliary variables is permitted; and, if it is determined that the change in the value of the first auxiliary variable is permitted, a process of updating the value of the first auxiliary variable and updating the first local field based on the second weight value for the first auxiliary variable.
[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 time overhead for discrete optimization problems 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 illustrates an example of the interaction between state variables and auxiliary variables. [Figure 3] FIG. 10 is a diagram illustrating an example of error correction. [Figure 4] FIG. 1 is a diagram illustrating a data processing device of a comparative example. [Figure 5] FIG. 10 is a block diagram illustrating an example of hardware of a data processing device according to a second embodiment. [Figure 6] FIG. 2 is a block diagram illustrating an example of functions of a data processing device. [Figure 7] FIG. 10 is a diagram illustrating an example of a local field update process. [Figure 8] 1 is a flowchart showing the flow of a first example of a data processing method. [Figure 9] 10 is a flowchart showing the flow of a second example of a data processing method. [Figure 10] FIG. 10 is a diagram illustrating another example of a data processing device. [Figure 11] FIG. 10 is a diagram illustrating an example using four auxiliary variables. 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 DRAM (Dynamic Random Access Memory), or a non-volatile storage device that is an electronic circuit such as an HDD (Hard Disk Drive) or a flash memory. The storage unit 11 may include an electronic circuit such as a register.
[0036] The storage unit 11 stores H(x), a plurality of (hereinafter referred to as N) state variables (x i ) values, multiple (hereinafter M) auxiliary variables (x k ) values, N x i The first weight value (the aforementioned W ij ), N x i and M x's k The second weight value (W ki ) to remember.
[0037] i, n x i k is an identification number representing one of M x k or any of the M constraint terms (or M constraint conditions). M x k indicates whether or not each of the M constraints is violated. In the following explanation, x k In the following description, x is set to 1 when the constraint of the identification number = k is violated and set to 0 when the constraint is satisfied, but this is not limiting. k A spin variable with a value of -1 or +1 can be used as the constraint. The auxiliary variable may also have multiple values other than 0 in case of constraint violation (see Figure 11).
[0038] Furthermore, the storage unit 11 stores N x i The first local field (h i ) and M x k The second local field (h k ) is stored. The state variables can also be called decision variables.
[0039] The total energy P(x) of the M constraint terms corresponding to the M inequality constraints can be expressed by the following equation (7).
[0040]
number
[0041] λ k is a proportional coefficient for the constraint term with identification number = k, and represents the weight of the constraint term. k can be different for each constraint. U k is the resource amount (R k (x)) represents the upper limit that must be satisfied. k (x) can be expressed by the following equation (8).
[0042]
number
[0043] H(x) expressed by equations (3) and (4) is the auxiliary variable (x k ), it can be expressed by the following equation (9).
[0044]
number
[0045] x k M is used corresponding to the number of inequality constraints. In the following example, x k is expressed by the following equation (10).
[0046]
number
[0047] Figure 1 shows an example of a neural network where the state variables (decision variables) and auxiliary variables are each considered as neurons. The neural network is configured by adding neurons based on auxiliary variables that detect constraint violations to the neural network of a Boltzmann machine based on the state variables.
[0048] In the example in Figure 1, the auxiliary variable x p The neuron representing the state variables x1,x i ,x j It is connected to a neuron that represents x p and x1,x i ,x j The second weight value between each of the auxiliary variables x q The neuron representing the state variables x2,x i etc. Since not all state variables often have an effect on each inequality constraint, the second weight value only needs to be stored for the state variables that have an effect on each inequality constraint.
[0049] FIG. 2 is a diagram illustrating an example of the interaction between state variables and auxiliary variables. The strength of interaction between N state variables is expressed as N × N W ij For example, x1 and x i The strength of the interaction between 1i , x i and x N The strength of the interaction between iN , x1 and x N The strength of the interaction between 1N On the other hand, the interaction between the state variable and the auxiliary variable is different depending on the influence of the change in the value of the state variable on the auxiliary variable and the influence of the change in the auxiliary variable on the state variable. For example, as shown in Figure 2, the x value of the state variable i The change in the value of the auxiliary variable x k The influence on is weighted by W ki The auxiliary variable x k The change in the value of the state variable x i The effect on -λ k Wki This can be expressed as:
[0050] The N first local fields (h i ) can be expressed by the following equation (11).
[0051]
number
[0052] The M second local fields (h k ) can be expressed by the following equation (12).
[0053]
number
[0054] The storage unit 11 further stores a bias coefficient (b i ), proportionality coefficient (λ k ), upper limit (U 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.
[0055] 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).
[0056] The processing unit 12 searches for a state where the value (energy) of the evaluation function shown in equation (1) is minimized, for example. The state where the evaluation function is at its smallest among its minimum values is the optimal solution. Note that by exchanging the signs of the evaluation function shown in equation (1) and the constraint term shown in equation (7), the processing unit 12 can also search for a state where the value of the evaluation function is at its maximum (in this case, the state where the value is at its maximum is the optimal solution).
[0057] 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.
[0058] Steps S1 to S5 are processes relating to state variables, and steps S6 to S10 are processes relating to auxiliary variables. 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.
[0059] Then, the processing unit 12 calculates ΔH when the value of the selected state variable changes (step S2). For example, x i When is selected, ΔH is calculated by the equation (11) i Based on this, ΔH=-h i Δx i It can be calculated by the formula:
[0060] 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.
[0061] 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).
[0062] When the processing unit 12 determines that the flip is possible, i , h k , H(x), x i If the processing unit 12 determines that the flip is not possible, it updates the state variables (h i , h k , H(x), x i Do not update.
[0063] The processing unit 12 updates H(x) by adding ΔH to the original H(x). 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 Furthermore, the processing unit 12 updates x j If it is determined that the flip is possible, the original h for each of the M state variables is k , Δh k =W kj Δx j By adding h k Update x j If changing the value of h causes a violation of the constraint of the identification number = k, then this update k becomes a positive value, and by the processing of step S8 described later, x k is allowed to vary from 0 to 1.
[0064] Thereafter, the processing unit 12 determines whether or not the above-described processing has been performed A times (step S5), where A is an integer equal to or greater than 1. If the processing unit 12 determines that the above-described processing has not been performed A times, it repeats the processing from step S1.
[0065] When the processing unit 12 determines that the above process has been performed A times, it selects auxiliary variables of flip candidates from the M auxiliary variables (step S6). The processing unit 12 selects auxiliary variables of flip candidates, for example, randomly or in a predetermined order.
[0066] Then, the processing unit 12 calculates ΔH when the value of the selected auxiliary variable changes (step S7). For example, x k When is selected, ΔH is calculated by the equation (12) k Using this, ΔH=+λ k h k Δx k It can be calculated by the formula:
[0067] Next, the processing unit 12 determines whether or not a change in the value of the auxiliary variable of the flip candidate is permitted (whether or not flip is permitted) based on the result of the comparison between ΔH and a predetermined value (flip determination process) (step S8).
[0068] The predetermined value may be the same as the value used in the process of step S3, or may be a fixed value (for example, 0). When log(rand)×T is used as the predetermined value, the processing unit 12 determines that the auxiliary variable of the flip candidate can be flipped if ΔH>log(rand)×T. If a constraint violation occurs due to a change in the value of the state variable caused by the process of step S4, h in equation (12) is k is a positive value, and x k The change in Δx when changing from 0 to 1 k = 1, ΔH is a positive value. Also, log(rand) × T is a negative value. Therefore, by using the formula ΔH>log(rand) × T, x k is allowed to vary from 0 to 1.
[0069] The processing unit 12 selects the flip candidate x k If it is determined that flipping is possible, h i , H(x), x k If the processing unit 12 determines that the flip is not possible, it updates the auxiliary variables (h i , H(x), x k Do not update.
[0070] The processing unit 12 updates H(x) by adding ΔH to the original H(x). k If it is determined that the flip is possible, the original h for each of the N state variables is i , Δh i =-λ k W ki Δx k By adding h i Update the following.
[0071] Thereafter, the processing unit 12 determines whether or not the above-described processing has been performed B times (step S10), where B is an integer equal to or greater than 1. If the processing unit 12 determines that the above-described processing has not been performed B times, it repeats the processing from step S6.
[0072] If the processing unit 12 determines that the above-described processing has been performed B times, it repeats the processing from step S1 again. In the process of step S2, ΔH is calculated without changing the value of the auxiliary variable, so an error may occur depending on whether or not the value of the auxiliary variable has changed. However, the value of ΔH=+λ obtained by the process of step S7 k h k Δx k This allows the error to be corrected.
[0073] 3 is a diagram showing an example of error correction. The vertical axis represents the magnitude of the constraint term with the identification number k, and the horizontal axis represents R k (x) represents the amount of resources. R k (x) is U kSince the inequality constraint is satisfied until R is exceeded, the magnitude of the constraint term is also 0. On the other hand, k (x) is U k When it exceeds λ k max[0,R k (x)-U k However, as described above, in the process of step S2, ΔH is calculated without changing the value of the auxiliary variable, so an error may occur in ΔH at that time.
[0074] For example, at point A in Figure 3, R k (x) is U k Even though x exceeds (constraints are violated), k =0, the magnitude of the constraint term is 0, and λ k h k Δx k Therefore, the processing unit 12 calculates the error x k The value of ΔH=+λ is allowed to change (from 0 to 1), and the value obtained by the processing in step S7 is k h k Δx k The constraint term is corrected to an appropriate size (the size of point B) using
[0075] Also, for example, at point C in Figure 3, R k (x) is U k Even though it is less than or equal to x (the constraint violation has been resolved), k = 1, the magnitude of the constraint term is not 0, λ k h k Δx k Therefore, the processing unit 12 calculates the error x k The value of ΔH=+λ is allowed to change (from 1 to 0), and the value obtained by the processing in step S7 is k h k Δx k The constraint term is corrected to an appropriate size (size of point D) using
[0076] The order of processing shown in FIG. 1 is an example, and the order of processing may be changed as appropriate. 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 S3 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 be changed, the processing unit 12 selects the state variable whose value is to be changed randomly or in accordance with a predetermined rule.
[0077] Similarly, in the above explanation, an example has been shown in which flip candidate auxiliary variables are selected one by one from the M number of state variables, and the processing of steps S7 to S8 is performed, but the processing of steps S7 to S8 may be performed in parallel for a plurality of (for example, all M) state variables. In this case, when there are a plurality of auxiliary variables whose values are allowed to be changed, the processing unit 12 selects the auxiliary variable whose value is to be changed randomly or in accordance with a predetermined rule.
[0078] 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 as a calculation result of the discrete optimization problem (for example, displays it on a display device not shown). 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 a calculation result.
[0079] When the processing unit 12 performs the replica exchange method, the processing unit 12 repeats the above steps S1 to S10 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 having 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.
[0080] 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.
[0081] According to the data processing device 10 and the data processing method described above, an auxiliary variable (x k ) is allowed to change, N W 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 W ki Δx k This reduces the number of times the update process (process of adding new data) is performed, thereby reducing the calculation time overhead required for the update process.
[0082] FIG. 4 is a diagram illustrating a data processing device of a comparative example. The data processing device 20 of the comparative example uses the ΔHj When calculating the coefficients for each constraint term (in the example of equation (5) above, W kj , in the example of Equation (6), a ij ) are used in the calculation.
[0083] 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.
[0084] 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.
[0085] The transition possibility determination unit 24 determines ΔH j Based on the comparison result with the predetermined value, x1 to x N A 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.
[0086] 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 the 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:
[0087] The ΔP calculation unit 27 calculates h k(Step S20). 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 S21), 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 S22).
[0088] Then, the ΔP calculation unit 27 determines whether or not k=M (step S23). If the ΔP calculation unit 27 determines that k=M is not true, it sets k to k+1 (step S24) and repeats the processing from step S22.
[0089] When it is determined that k=M, the ΔP calculation unit 27 calculates P as ΔP j Output as In the above process, x1~x N For each of these, ΔP j In order to calculate W, the process of step S22 is repeated M times. kj Therefore, N ΔP j The calculation of takes time proportional to N × M, which means the overhead of the calculation time 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.
[0090] In contrast, in the data processing device 10 of the first embodiment, for the auxiliary variables whose values are allowed to change among the M auxiliary variables, Δh i =-λ k W ki Δx k By h i To update N W ki This reduces the overhead of the calculation time and also reduces the kiThe amount of data transfer required for reading can also be reduced.
[0091] (Second embodiment) FIG. 5 is a block diagram illustrating an example of hardware of a data processing device according to the second embodiment.
[0092] The data processing device 30 is, for example, a computer, and includes a CPU 31, a RAM 32, a HDD 33, a GPU 34, an input interface 35, a media reader 36, and a communication interface 37. The above units are connected to a bus.
[0093] The CPU 31 is a processor including an arithmetic circuit that executes program instructions. The CPU 31 loads at least a portion of the program and data stored in the HDD 33 into the RAM 32 and executes the program. The CPU 31 may have multiple processor cores, and the data processing device 30 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."
[0094] The RAM 32 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 31 and data used in calculations by the CPU 31. Note that the data processing device 30 may include a type of memory other than the RAM 32, or may include multiple memories.
[0095] The HDD 33 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 30 to execute a process for searching for a solution to a discrete optimization problem. Note that the data processing device 30 may also be provided with other types of storage devices, such as a flash memory or an SSD (Solid State Drive), or may be provided with multiple non-volatile storage devices.
[0096] The GPU 34 outputs an image to a display 34a connected to the data processing device 30 in accordance with an instruction from the CPU 31. The display 34a 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.
[0097] The input interface 35 receives an input signal from an input device 35a connected to the data processing device 30 and outputs the signal to the CPU 31. The input device 35a may be a pointing device such as a mouse, touch panel, touch pad, or trackball, a keyboard, a remote controller, or a button switch. Multiple types of input devices may be connected to the data processing device 30.
[0098] The medium reader 36 is a reading device that reads programs and data recorded on a recording medium 36a. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), a semiconductor memory, etc. can be used as the recording medium 36a. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).
[0099] The medium reader 36 copies programs and data read from the recording medium 36a to another recording medium such as the RAM 32 or the HDD 33. The read programs are executed by the CPU 31, for example. The recording medium 36a may be a portable recording medium and may be used to distribute programs and data. The recording medium 36a and the HDD 33 may also be referred to as computer-readable recording media.
[0100] The communication interface 37 is connected to a network 37a and communicates with other information processing devices via the network 37a. The communication interface 37 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.
[0101] Next, the functions and processing procedures of the data processing device 30 will be described. FIG. 6 is a block diagram illustrating an example of functions of the data processing device. The data processing device 30 includes an input unit 41, a control unit 42, a search unit 43, and an output unit 44.
[0102] The input unit 41, the control unit 42, the search unit 43, and the output unit 44 can be implemented, for example, using a program module executed by the CPU 31 or a storage area (register or cache memory) within the CPU 31. The search unit 43 may also be implemented using a storage area secured in the RAM 32 or the HDD 33.
[0103] The input unit 41 receives input of, for example, initial values of N state variables, initial values of M auxiliary variables, problem information, and calculation conditions. ij ya b i In addition, W in Eq. (9) ki , U k , λ 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.
[0104] This information may be input by the user operating the input device 35a, or may be input via the recording medium 36a or the network 37a. The control unit 42 controls each unit of the data processing device 30 to execute the processes described below.
[0105] The search unit 43, under the control of the control unit 42, 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 44 outputs the search result (calculation result) by the search unit 43.
[0106] The output unit 44 may, for example, output the calculation results to the display 34a for display, transmit the results to another information processing device via the network 37a, or store the results in an external storage device.
[0107] The search unit 43 includes a variable setting unit 43a, a state variable holding unit 43b, an auxiliary variable holding unit 43c, a weight value holding unit 43d, and a i Calculation section 43e, h k The system includes a calculation unit 43f, ΔH calculation units 43g and 43h, transition possibility determination units 43i and 43j, a selection unit 43k, and an update unit 43l.
[0108] The variable setting unit 43a sets, for example, the order in which state variables of flip candidates are selected, the order in which auxiliary variables of flip candidates are selected, the flip determination process for state variables, and the number of times the flip determination process for auxiliary variables is performed (corresponding to A times and B times in Figure 8 described below).
[0109] The state variable holding unit 43b holds N state variables (x i ) is stored in the state variable storage unit 43b. i The change in (Δx i ) is output. The auxiliary variable holding unit 43c holds M auxiliary variables.
[0110] The weight value holding unit 43d holds the weight values (W ij ) and the weights (W ki ) is held. W ij can be expressed as an N-by-N matrix, and W ki can be expressed as a matrix with M rows and N columns.
[0111] Note that it is not necessary to retain weights between the M auxiliary variables and the state variables that do not affect any of the M auxiliary variables among the N state variables. Hereinafter, the ratio of such state variables among the N state variables is referred to as the sparse ratio η.
[0112] h i The calculation unit 43e calculates N h i and adjusts h according to the changes in the state variables and auxiliary variables. i Update. h k The calculation unit 43f calculates M h k and changes the value of the state variable k Update.
[0113] The ΔH calculation unit 43g calculates the flip candidate x i About h i Based on this, ΔH=-h i Δx i Calculate. The ΔH calculation unit 43h calculates the flip candidate x k About h k Based on this, ΔH=+λ k h k Δx k Calculate.
[0114] The transition possibility determination unit 43i performs a flip determination process to determine whether or not to allow a change in the value of the state variable of the flip candidate based on a comparison result between ΔH output by the ΔH calculation unit 43g 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 transition possibility determination unit 43i determines that the change in the value of the state variable of the flip candidate is allowed.
[0115] The transition possibility determination unit 43j performs a flip determination process to determine whether or not to allow a change in the value of the auxiliary variable of the flip candidate based on the comparison result between ΔH output by the ΔH calculation unit 43h and a predetermined value. The predetermined value may be the same as the value used by the transition possibility determination unit 43i, or may be a fixed value (e.g., 0). For example, if ΔH>log(rand)×T, the transition possibility determination unit 43j determines that the change in the value of the auxiliary variable of the flip candidate is allowed.
[0116] When performing flip determination processing on a state variable, the selection unit 43k selects and outputs the determination result of the transition possibility determination unit 43i, and when performing flip determination processing on an auxiliary variable, the selection unit 43k selects and outputs the determination result of the transition possibility determination unit 43j.
[0117] The update unit 43l sends the identification numbers of the state variables determined to be flippable to the state variable storage unit 43b, and changes the values of the state variables. The update unit 43l also sends the identification numbers of the auxiliary variables determined to be flippable to the auxiliary variable storage unit 43c, and changes the values of the auxiliary variables.
[0118] Furthermore, when the state variable of the flip candidate is determined to be flippable, the update unit 43l updates h i Calculation section 43e and h k N h i and M h k When the auxiliary variable of the flip candidate is determined to be flippable, the updating unit 43l updates h i The calculation unit 43e calculates N h i The update unit 43l may also hold H and update H based on ΔH that occurs due to a change in the value of a state variable or auxiliary variable that is set to be flippable.
[0119] FIG. 7 is a diagram illustrating an example of the local field update process. In the example of Figure 7, the state variable of the flip candidate is x j and the auxiliary variable of the flip candidate is x k In this case, the clock signal clk supplied from the control unit 42 is DIn synchronization with this, the state variable holding unit 43b outputs Δx j is output, and the clock signal clk supplied from the control unit 42 A In synchronization with this, the auxiliary variable holding unit 43c outputs Δx k will be output.
[0120] Also, x j If it is determined that the flip is possible, the weight value storage unit 43d stores x j and N state variables, where N are the weights between ij and x j and each of the M auxiliary variables. kj is read out. Also, x k If it is determined that the flip is possible, the weight value storage unit 43d stores x k and N state variables, where N are the weights between ki is read out.
[0121] h i The calculation unit 43e includes multipliers 43e1, 43e2, and h i It has an update holding unit 43e3. h k The calculation unit 43f includes multipliers 43f1, h k It has an update holding unit 43f2.
[0122] The multiplier 43e1 multiplies Δx j and N W ij Outputs the product of The multiplier 43e2 multiplies Δx k and N W ki Outputs the product of The multiplier 43f1 multiplies Δx j and M W kj Outputs the product of
[0123] h i The update holding unit 43e3 holds N h i And, h i The update holding unit 43e3 is j If it is determined that the flip is possible, then N h i For each of these, Δh i =Wij Δx j By adding h i Update h i The update holding unit 43e3 is k If it is determined that the flip is possible, then N h i For each of these, Δh i =-λ k W ki Δx k By adding h i Update.
[0124] h k The update holding unit 43f2 holds M h k And, h k The update holding unit 43f2 is x j If it is determined that the flip is possible, M h k For each of these, Δh k =W kj Δx j By adding h k Update.
[0125] Two examples of the processing procedure (data processing method) of the data processing device 30 will be described below. FIG. 8 is a flowchart showing the flow of a first example of a data processing method. Step S30: The input unit 41 receives input of initial values of N state variables, initial values of M auxiliary variables, problem information, and calculation conditions. The initial values of the N state variables are held in the state variable holding unit 43b, and the initial values of the M auxiliary variables are held in the auxiliary variable holding unit 43c. Furthermore, the weight values included in the problem information are held in the weight value holding unit 43d. The calculation conditions are supplied to the control unit 42.
[0126] Step S31: The control unit 42 performs an initialization process. In the initialization process, for example, the following processes are performed. The control unit 42 calculates h shown in Equation (11) based on the initial values of the N state variables, the initial values of the M auxiliary variables, and the problem information. i The initial value of h shown in Eq. (12) k The initial values of the calculated N state variables are the initial values of hi The initial values of the M auxiliary variables calculated and held in the update holding unit 43e3 are the values of h k The updated value is stored in the update storage unit 43f2.
[0127] Furthermore, the control unit 42 calculates, for example, the initial value of H(x) shown in equation (3) based on the initial values of the N state variables, the initial values of the M auxiliary variables, and the problem information. The calculated initial value of H(x) is held, for example, in the update unit 43l.
[0128] Furthermore, in the initialization process, the order in which the state variables of the flip candidates are selected, the order in which the auxiliary variables of the flip candidates are selected, the number of times A to perform the flip determination process for the state variables, and the number of times B to perform the flip determination process for the auxiliary variables are set in the variable setting unit 43a.
[0129] Step S32: The control unit 42 sets r1=0. Step S33: The state variables (x) of the flip candidates are calculated in accordance with the processing order (which may be random) set in the variable setting unit 43a. i When a flip candidate state variable is selected, the change amount (Δx i ) is output.
[0130] Step S34: The ΔH calculation unit 43g of the search unit 43 calculates ΔH=-h i Δx i Calculate ΔH using the formula: Step S35: The transition possibility determination unit 43i of the search unit 43 determines x based on the result of comparison between ΔH and the predetermined value. i Flip decision is made for x i If it is determined that the change of x is permitted (if "flip allowed"), the process of step S36 is performed, and x i If it is determined that the change in is not permitted (if "flip not permitted"), the process of step S37 is carried out.
[0131] Step S36: The search unit 43 performs the above-described process to find h i , hk , H(x), x i Update the following. Step S37: The control unit 42 determines whether the process satisfies a predetermined termination condition. For example, the control unit 42 determines that the termination condition is satisfied when the number of times the search unit 43 has performed the flip determination process reaches the maximum number of flip determinations, or when H(x) becomes equal to or smaller than a predetermined magnitude. If it is determined that the process satisfies the predetermined termination condition, the process of step S48 is performed. If it is determined that the process does not satisfy the predetermined termination condition, the process of step S38 is performed.
[0132] Step S38: The control unit 42 determines whether r1=A. If it is determined that r1=A, the process of step S40 is performed, and if it is determined that r1=A is not true, the process of step S39 is performed.
[0133] Step S39: The control unit 42 sets r1 = r1 + 1. Thereafter, the processing from step S33 is repeated. Step S40: The control unit 42 sets r2=0.
[0134] Step S41: The auxiliary variables (x k When the auxiliary variable of the flip candidate is selected, the change amount (Δx k ) is output.
[0135] Step S42: The ΔH calculation unit 43h of the search unit 43 calculates ΔH=+λ k h k Δx k Calculate ΔH using the formula: Step S43: The transition possibility determination unit 43j of the search unit 43 determines x based on the result of comparison between ΔH and, for example, the predetermined value described above. k Flip decision is made for x k If it is determined that the change of x is permitted (if "flip allowed"), the process of step S44 is performed, and x kIf it is determined that the change in is not permitted (if "flip not permitted"), the process of step S45 is carried out.
[0136] Step S44: The search unit 43 performs the above-described process to find h i , H(x), x k Update the following. Step S45: The control unit 42 determines whether the process satisfies the predetermined termination condition described above. If it is determined that the process satisfies the predetermined termination condition, the process of step S48 is performed. If it is determined that the process does not satisfy the predetermined termination condition, the process of step S46 is performed.
[0137] Step S46: The control unit 42 determines whether r2=B. If it is determined that r2=B, the process from step S32 is repeated, and if it is determined that r2=B is not true, the process of step S47 is performed.
[0138] Step S47: The control unit 42 sets r2 = r2 + 1. Thereafter, the processing from step S41 is repeated. Step S48: The output unit 44 outputs the calculation result. This ends the process. The output unit 44 may, for example, output the calculation result to be displayed on the display 34a, transmit the calculation result to another information processing device via the network 37a, or store the calculation result in an external storage device.
[0139] When the simulated annealing method is performed, for example, the control unit 42 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, under the control of the control unit 42, the output unit 44 outputs the state obtained when the flip determination process is repeated a predetermined number of times as the calculation result of the discrete optimization problem. The update unit 43l may retain the total energy and the state when the minimum energy is obtained up to that point. In this case, the control unit 42 may cause the output unit 44 to output the state corresponding to the minimum energy retained after the flip determination process is repeated a predetermined number of times as the calculation result.
[0140] When the replica exchange method is performed, the above steps S32 to S47 are repeated for each of a plurality of replicas, each having a different T value. The control unit 42 then performs replica exchange every time the flip determination process is repeated a predetermined number of times. For example, the control unit 42 selects two replicas having adjacent T values and exchanges the T values or 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 or the difference in T value. For example, the update unit 431 stores the total energy and the state when the minimum energy is reached. The control unit 42 then outputs 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, to the output unit 44 as the calculation result.
[0141] According to the data processing method described above, when the number of state variables that affect the constraint conditions is relatively small, adjustments can be made to efficiently correct H(x) in accordance with the discrete optimization problem to be calculated, such as increasing the number of processing times A and decreasing the number of processing times B.
[0142] FIG. 9 is a flowchart showing the flow of a second example of the data processing method. The processing of steps S50 and S51 is almost the same as the processing of steps S30 and S31 shown in Figure 8, but in the initialization processing of step S51, the number of times A to perform the flip determination processing for the state variables and the number of times B to perform the flip determination processing for the auxiliary variables are not set.
[0143] Step S52: The control unit 42 sets i to 1. i corresponds to the identification number of the state variable. Step S53: The state variables (x i When a flip candidate state variable is selected, the change amount (Δx i ) is output.
[0144] Step S54: The ΔH calculation unit 43g of the search unit 43 calculates ΔH=-h i Δx i Calculate ΔH using the formula: Step S55: The transition possibility determination unit 43i of the search unit 43 determines x based on the result of comparison between ΔH and the predetermined value. i Flip decision is made for x i If it is determined that the change of x is permitted (if "flip allowed"), the process of step S56 is performed, and x i If it is determined that the change in is not permitted (if "flip not permitted"), the process of step S57 is carried out.
[0145] Step S56: The search unit 43 performs the above-described process to find h i , h k , H(x), x i Update the following. Step S57: The control unit 42 determines whether or not i = N. If it is determined that i = N, the process from step S52 is repeated, and if it is determined that i = N is not true, the process of step S58 is performed.
[0146] Step S58: The control unit 42 sets i to i + 1. Thereafter, the process from step S53 is repeated. Step S59: The control unit 42 sets k=1.
[0147] Step S60: The auxiliary variables (x k When the auxiliary variable of the flip candidate is selected, the change amount (Δx k ) is output.
[0148] Step S61: The ΔH calculation unit 43h of the search unit 43 calculates ΔH=+λ k h k Δx k Calculate ΔH using the formula: Step S62: The transition possibility determination unit 43j of the search unit 43 determines x based on the result of comparison between ΔH and, for example, the predetermined value described above. k Flip decision is made for x k If it is determined that the change of x is permitted (if "flip allowed"), the process of step S63 is performed, and x k If it is determined that the change in is not permitted (if "flip not permitted"), the process of step S64 is carried out.
[0149] Step S63: The search unit 43 performs the above-described process to find h i , H(x), x k Update the following. Step S64: The control unit 42 determines whether or not k = M. If it is determined that k = M, the process of step S66 is performed, and if it is determined that k = M is not true, the process of step S65 is performed.
[0150] Step S65: The control unit 42 sets k to k + 1. Thereafter, the processing from step S60 is repeated. Step S66: The control unit 42 determines whether the process satisfies a predetermined termination condition. For example, the control unit 42 determines that the termination condition is satisfied when the number of times the search unit 43 has performed the flip determination process reaches the maximum number of flip determinations, or when H(x) becomes equal to or smaller than a predetermined magnitude. If it is determined that the process satisfies the predetermined termination condition, the process of step S67 is performed. If it is determined that the process does not satisfy the predetermined termination condition, the process from step S57 is repeated.
[0151] Step S67: The output unit 44 outputs the calculation result. This ends the process. The output unit 44 may, for example, output the calculation result to the display 34a for display, transmit the calculation result to another information processing device via the network 37a, or store the calculation result in an external storage device.
[0152] According to the data processing method described above, a flip decision is made for M auxiliary variables each time it is determined that a change in the value of a state variable is allowed. Therefore, when the number of state variables that affect the constraint conditions is relatively large, H(x) can be corrected efficiently.
[0153] As in the first example of the data processing method, the simulated annealing method and the replica exchange method can also be applied to the second example. In the second example, the state variables and auxiliary variables of the flip candidates are selected in the order of their identification numbers, but they may be selected randomly.
[0154] The order of the processes shown in FIGS. 8 and 9 is an example, and the order of the processes may be changed as appropriate. According to the data processing device 30 and the data processing method of the second embodiment described above, the same effects as those of the data processing device 10 and the data processing method of the first embodiment can be obtained. That is, the overhead of the calculation time can be reduced. In addition, the amount of data transfer can be reduced.
[0155] For example, in the data processing device 20 of the comparative example shown in FIG. 4, x1 to x NFor each of these, ΔP j In order to calculate W, the process of step S22 shown in FIG. 4 is repeated M times. kj Therefore, N ΔP j The calculation of takes time proportional to N × M, which means the overhead of the calculation time 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.
[0156] In contrast, the data processing device 30 of the second embodiment calculates Δh for the auxiliary variables whose values are allowed to change among the M auxiliary variables. i =-λ k W ki Δx k By h i To update N W ki This reduces the overhead of the calculation time and also reduces the ki The amount of data transfer required for reading can also be reduced.
[0157] h i Updates for x j When changes occur, Δh i =W ij Δx j The process of adding x k When changes occur, Δh i =-λ k W ki Δx k For example, when the flip decision process is performed once for N state variables, h i The overhead for updating is at most W ij Δx j The process of adding N times and -λ k W ki Δx k Mp(p is x kIn this case, the overhead is proportional to N+Mp, which is smaller than that of the data processing device 20 of the comparative example, in which the overhead is proportional to N×M. Note that when the sparse ratio η is smaller than 1, the overhead is proportional to N+ηMp, which allows for further reduction in overhead.
[0158] As mentioned above, the above processing contents can be realized by causing the data processing device 30 to execute a program. The program can be recorded on a computer-readable recording medium (e.g., recording medium 36a). 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 33) and executed.
[0159] Fig. 10 is a diagram showing another example of a data processing device, in which the same elements as those shown in Fig. 5 are denoted by the same reference numerals. The data processing device 50 has an accelerator card 51 connected to the bus.
[0160] The accelerator card 51 is a hardware accelerator that searches for a solution to a discrete optimization problem and includes an FPGA 51a and a DRAM 51b.
[0161] In the data processing device 50, the FPGA 51a performs the processing of the control unit 42 and the search unit 43 shown in FIG. 6, for example. The DRAM 51b also functions as the weight value holding unit 43d shown in FIG.
[0162] There may be multiple accelerator cards 51. 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.
[0163] In the above, the case where inequality constraints are mainly used as constraints has been described, but other constraints such as equality constraints can also be used. For example, when equality constraints are used, the total energy (H(x)) is expressed by the following equation (13) instead of equation (9).
[0164]
number
[0165] where the auxiliary variables (x k ) can be a spin variable with a value of -1 or 1. In that case, Δx k =-2x k If the equality constraints are not satisfied (R k (x)≠U k ), x k is -1, and if the equality constraints are satisfied (R k (x)=U k ), x k will be +1.
[0166] When such auxiliary variables are used, ΔH is calculated as ΔH=+λ as in the above case. k h k Δx k This can be expressed as: If we use binary variables instead of spin variables, ΔH=+λ k h k Δx k Instead of ΔH=+2λ k h k Δx k This can be done as follows.
[0167] Additionally, the auxiliary variable may have three or more values. Figure 11 shows an example using four auxiliary variables. The vertical axis represents the magnitude of the constraint term with the identification number k, and the horizontal axis represents the magnitude of the constraint term h. k Represents.
[0168] x k x has four values: 0, 1, 2, and 3. k =0 indicates that the constraint is satisfied, and x k = 1, 2, and 3, three constraint violation states are shown. In the example of Fig. 11, the constraint violation state from (h1, g1) to (h2, g2), the constraint violation state from (h2, g2) to (h3, g3), and the constraint violation state above (h3, g3) are shown.
[0169] Also, the aforementioned λ k As, x k = 1, λ1, x k = 2, then λ2, x k If = 3, λ3 is used. This means that x k Depending on whether h = 1, 2, or 3, k Constraint terms that increase with different slopes as σ increases can be used.
[0170] When using the auxiliary variables mentioned above, (h i ,g i ) to (h j ,g j ) ΔH i→j is ΔH i→j =[λ j (h k -h j )+g j ]-[λ i (h k -h i )+g i ]=(λ j -λ i )h k +[(g j -λ j h j )-(g i -λ i h i )] can be expressed as [Explanation of symbols]
[0171] 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 values of a plurality of constraint terms, each of which has a value corresponding to whether or not each of a plurality of constraint conditions is violated, and the value of the evaluation function; values of the plurality of state variables; values of a plurality of auxiliary variables that indicate whether or not each of the plurality of constraint conditions is violated; a first weight value between each of the plurality of state variables; a second weight value between any of the plurality of state variables and each of the plurality of auxiliary variables; a first local field that indicates a change in the total energy when the value of each of the plurality of state variables changes; and a second local field that is a value proportional to the change in the total energy when the value of each of the plurality of auxiliary variables changes; a processing unit that performs a first process including: a process of 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 a process of updating the value of the first state variable, updating the first local field based on the first weight value related to the first state variable, and updating the second local field based on the second weight value related to the first state variable, when it is determined that the change in the value of the first state variable is permitted; and a second process including: a process of determining, based on the second local field, whether or not a change in the value of a first auxiliary variable among the plurality of auxiliary variables is permitted; and a process of updating the value of the first auxiliary variable, and updating the first local field based on the second weight value related to the first auxiliary variable, when it is determined that the change in the value of the first auxiliary variable is permitted; A data processing device having:
2. 2. The data processing device according to claim 1, wherein, when a change in the value of the first state variable causes a violation of a first constraint condition among the plurality of constraint conditions, the processing unit allows the value of the first auxiliary variable corresponding to the first constraint condition to be changed to a value indicating that a violation has occurred, and corrects the total energy.
3. 2. The data processing device according to claim 1, wherein, when a change in the value of the first state variable eliminates a violation of a first constraint condition among the plurality of constraint conditions, the processing unit allows the value of the first auxiliary variable corresponding to the first constraint condition to be changed to a value indicating no violation, and corrects the total energy.
4. The data processing device according to claim 1 , wherein the processing unit repeats a process of performing the first process a first number of times and then performing the second process a second number of times.
5. 4. The data processing device according to claim 1, wherein the processing unit performs the second processing a number of times corresponding to the number of the plurality of auxiliary variables each time it determines in the first processing that a change in the value of the first state variable is permitted.
6. 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 values of a plurality of constraint terms, each having a value corresponding to whether or not each of a plurality of constraint conditions is violated, and the value of the evaluation function, which are stored in a storage unit; values of the plurality of state variables; values of a plurality of auxiliary variables that indicate whether or not each of the plurality of constraint conditions is violated; a first weight value between each of the plurality of state variables; a second weight value between any of the plurality of state variables and each of the plurality of auxiliary variables; a first local field that indicates a change in the total energy when the value of each of the plurality of state variables changes; and a second local field that is a value proportional to the change in the total energy when the value of each of the plurality of auxiliary variables changes. performing a first process including: a process of determining, based on the first local field, whether or not to allow a change in the value of a first state variable among the plurality of state variables; and a process of updating the value of the first state variable 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 related to the first state variable stored in the storage unit, and updating the second local field based on the second weight value related to the first state variable stored in the storage unit; performing a second process including: determining whether or not to allow a change in the value of a first auxiliary variable among the plurality of auxiliary variables based on the second local field stored in the storage unit; and updating the value of the first auxiliary variable when it is determined that the change in the value of the first auxiliary variable is allowed, and updating the first local field based on the second weight value related to the first auxiliary variable; A program that causes a computer to perform a process.
7. 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 values of a plurality of constraint terms, each having a value corresponding to whether or not each of a plurality of constraint conditions is violated, and the value of the evaluation function, which are stored in a storage unit; values of the plurality of state variables; values of a plurality of auxiliary variables that indicate whether or not each of the plurality of constraint conditions is violated; a first weight value between each of the plurality of state variables; a second weight value between any of the plurality of state variables and each of the plurality of auxiliary variables; a first local field that indicates a change in the total energy when the value of each of the plurality of state variables changes; and a second local field that is a value proportional to the change in the total energy when the value of each of the plurality of auxiliary variables changes. performing a first process including: a process of determining, based on the first local field, whether or not to allow a change in the value of a first state variable among the plurality of state variables; and a process of updating the value of the first state variable 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 related to the first state variable stored in the storage unit, and updating the second local field based on the second weight value related to the first state variable stored in the storage unit; performing a second process including: determining whether or not to allow a change in the value of a first auxiliary variable among the plurality of auxiliary variables based on the second local field stored in the storage unit; and updating the value of the first auxiliary variable when it is determined that the change in the value of the first auxiliary variable is allowed, and updating the first local field based on the second weight value related to the first auxiliary variable; Data processing methods.
Citation Information
Patent Citations
Information processing apparatus, PUBO solver, information processing method, and program
JP2020201598A
Optimization device and optimization method
JP2020204928A
Optimization device, optimization method, and optimization program
JP2021174260A
Data processor, program and data processing method
JP2023000462A