Data processing device, data processing method, and program
The data processing device addresses the computational challenge of numerous constraints in optimization problems by employing two-pass updates of local fields, enhancing solution-finding efficiency and handling complex constraint scenarios.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- FUJITSU LTD
- Filing Date
- 2024-10-16
- Publication Date
- 2026-04-28
AI Technical Summary
The computational cost of updating local fields in response to changes in state variables increases with the number of constraints in optimization problems, hindering efficient problem-solving performance.
A data processing device and method that utilize a storage unit to store weight coefficients and local fields, and a processing unit to perform a search process involving two-pass updates of local fields based on constraint conditions, reducing computational overhead by selectively updating fields in parallel and correcting contributions from other constraints later.
Improves solution-finding performance by reducing computational cost and enabling handling of optimization problems with a large number of constraints, while exploring solution spaces that would otherwise be inaccessible.
Smart Images

Figure 2026070805000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a data processing device, a data processing method, and a program. [Background technology]
[0002] An Ising machine, which uses an Ising-type evaluation function, is a device that can compute large-scale discrete optimization problems that von Neumann computers are not good at. The evaluation function is also called an energy function. An Ising machine is also called a Boltzmann machine.
[0003] The Ising apparatus converts a discrete optimization problem into an Ising model that represents the behavior of a magnetic material's spin. The Ising apparatus uses Markov chain Monte Carlo methods, such as pseudo-annealing and replica exchange, to search for a state in the Ising model where the value of an Ising-type evaluation function is minimized. The value of the Ising-type evaluation function corresponds to energy. The optimal solution is the state where the evaluation function has its minimum value. The Ising apparatus can also search for a state where the evaluation function has a maximum value by changing the sign of the evaluation function. The state of the Ising model can be represented by a combination of values for multiple state variables. For example, each state variable can be represented by a value of 0 or 1.
[0004] Here, a device has been proposed that, in solving an optimization problem with constraints, updates the local field corresponding to the constraint, which represents the amount of constraint violation according to the value of the state variable, and then updates the local field corresponding to the state variable based on the local field before and after the update. The local field of the state variable is used to calculate the amount of change in the value of the evaluation function when the value of the state variable is changed.
[0005] Furthermore, there is a proposal for a device that introduces auxiliary variables corresponding to constraints, and maintains the satisfaction or violation of the constraints based on the values of these auxiliary variables. Furthermore, there is a proposed optimization device that efficiently searches for solutions to optimization problems with a constraint called the 2-Way 1-Hot constraint.
[0006] Furthermore, a method has been proposed in which logical qubits are encoded into an arbitrary number of physical qubits, and then quantum annealing processing is performed by a quantum processor after encoding. [Prior art documents] [Patent Documents]
[0007] [Patent Document 1] Japanese Patent Publication No. 2023-149428 [Patent Document 2] Japanese Patent Publication No. 2023-149726 [Patent Document 3] Japanese Patent Publication No. 2021-157361 [Patent Document 4] U.S. Patent Application Publication No. 2017 / 0364362 [Overview of the project] [Problems that the invention aims to solve]
[0008] As the number of constraints included in an optimization problem increases, the computational cost of updating the local field in response to changes in the state variable values also increases. In one aspect, the present invention aims to improve problem-solving performance. [Means for solving the problem]
[0009] In one embodiment, a data processing device is provided that searches for a solution represented by a combination of values of multiple state variables based on an evaluation function that includes terms corresponding to multiple state variables and multiple constraint conditions. The data processing device has a storage unit and a processing unit. The storage unit stores a first group of weight coefficients indicating the weights between each of the multiple state variables, a second group of weight coefficients indicating the weights between each of the multiple state variables and each of the multiple constraint conditions, a first local field representing the amount of change in the value of the evaluation function when the value of each of the multiple state variables changes, and a second local field used to identify the amount of constraint violation for each of the multiple constraint conditions. The processing unit performs a search process that repeats the following steps: first, select a first constraint from among multiple constraints and determine, based on a first local field, whether or not to allow a change in the value of the first state variable among multiple state variables; second, if it determines that a change in the value of the first state variable is to be allowed, update the first local field based on the first weight coefficient corresponding to the first state variable from the first weight coefficient group; update the second local field corresponding to the first constraint based on the second weight coefficient corresponding to the first state variable and the first constraint from the second weight coefficient group; and further update the first local field based on the second local field before and after the update corresponding to the first constraint. After the completion of this search process, the processing unit repeats the following steps: first, select a first constraint from among multiple constraints and determine, based on the second weight coefficient corresponding to the second constraint that was not used in this search process, update the second local field corresponding to the second constraint; and correct the first local field based on the second local field before and after the update corresponding to the second constraint.
[0010] In one embodiment, a data processing method is provided. In another embodiment, a program to be executed by a computer is provided. [Effects of the Invention]
[0011] In one respect, it can improve the ability to solve problems. [Brief explanation of the drawing]
[0012] [Figure 1] This is a diagram illustrating a data processing device according to the first embodiment. [Figure 2] This figure shows an example of how the value of a constraint term changes due to a change in the value of a state variable. [Figure 3] This figure shows an example of a two-pass update in the search process. [Figure 4] This figure shows an example of processing performed by a data processing device. [Figure 5] This figure shows an example of the hardware of a data processing device according to the second embodiment. [Figure 6] This figure shows an example of the functions of a data processing device. [Figure 7] This figure shows an example of the search unit. [Figure 8] This figure shows a first example of the auxiliary variable selection section. [Figure 9] This figure shows a first example of the search index set generation unit. [Figure 10] This figure shows a second example of the search index set generation unit. [Figure 11] This figure shows a second example of the auxiliary variable selection section. [Figure 12] This figure shows a third example of the search index set generation unit. [Figure 13] This figure shows a fourth example of the search index set generation unit. [Figure 14] This flowchart shows an example of the overall processing of a data processing device. [Figure 15] This is a flowchart illustrating an example of the solution search process. [Figure 16] This flowchart shows an example of the correction process. [Modes for carrying out the invention]
[0013] This embodiment will be described below with reference to the drawings. [First Embodiment] A first embodiment will be described.
[0014] Figure 1 is a diagram illustrating a data processing device according to the first embodiment. The data processing device 10 performs the solution of a combinatorial optimization problem. For example, pseudo-annealing or replica exchange methods are used to solve the combinatorial optimization problem. It has a storage unit 11 and a processing unit 12.
[0015] The memory unit 11 may be a volatile semiconductor memory such as RAM (Random Access Memory), or a non-volatile storage such as an HDD (Hard Disk Drive) or flash memory. The processing unit 12 is a processor such as a CPU (Central Processing Unit), GPU (Graphics Processing Unit), or DSP (Digital Signal Processor). However, the processing unit 12 may also include application-specific electronic circuits such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). The processor executes programs stored in memory such as RAM (which may also be the memory unit 11). A collection of multiple processors is sometimes called a "multiprocessor" or simply a "processor."
[0016] Combinatorial optimization problems can be formulated using a predetermined evaluation function and can be rephrased as a problem of minimizing the value of the evaluation function, i.e., the evaluation score. The evaluation function is sometimes called the objective function or energy function. The evaluation function includes multiple state variables. These state variables are, for example, binary variables that take values of 0 or 1. These state variables may also be called bits or spins.
[0017] The solution to a combinatorial optimization problem is represented by the values of multiple state variables. The value of the evaluation function indicates the energy of the Ising model. The solution that minimizes the value of the evaluation function represents the ground state of the Ising model and corresponds to the optimal solution of the combinatorial optimization problem.
[0018] An Ising-type evaluation function can be expressed, for example, by equation (1).
[0019]
number
[0020] The state vector x consists of a plurality of state variables and represents the state of the Ising model. Equation (1) is an evaluation function formulated in the QUBO (Quadratic Unconstrained Binary Optimization) form. In the case of the problem of maximizing energy, the sign of the evaluation function may be reversed.
[0021] The first term on the right side of Equation (1) is the sum of the products of the values of two state variables and the weight coefficients without omission or duplication for all combinations of two state variables selectable from all state variables. The subscripts i and j are the indices of the state variables. x i is the i-th state variable. x j is the j-th state variable. W ij is the weight between the i-th state variable and the j-th state variable, or the coupling coefficient indicating the strength of the coupling. W ij = W ji and W ii = 0. The total number of state variables is N.
[0022] The second term on the right side of Equation (1) is the sum of the products of the bias of each state variable and the value of the state variable. b i indicates the bias for the i-th state variable. Problem information including weight coefficients and biases included in the evaluation function is stored in the storage unit 11.
[0023] When the value of the i-th state variable changes, the state vector x (i) is represented by Equation (2) using the change amount Δx i of the value of the i-th state variable.
[0024]
Equation
[0025] Tr indicates transpose. x (i)This can be said to be the neighboring state when bit i, i.e., the i-th state variable, is inverted in a given state x. ΔE represents the change in the value of the evaluation function due to the change in the value of the i-th state variable. i This is expressed by equation (3).
[0026]
number
[0027] Δx i This is expressed by equation (4).
[0028]
number
[0029] Here, the state variable x i The value changes as 1-x i Therefore, the state variable x i The increase is Δx i =(1-x i )-x i = 1 - 2x i Thus, equation (4) is derived. ΔE in equation (3) i This can be expressed by equation (5).
[0030]
number
[0031] h i This is called the local field and is represented by equation (6). ΔE i This can be computed in parallel for each i.
[0032]
number
[0033] j-th state variable x j Change in value Δx jFor the i-th state variable x i local field h corresponding to i h is updated as shown in equation (7). i This can be updated in parallel for each i.
[0034]
number
[0035] Here, methods such as the steepest descent method, which always transition states in a direction that decreases energy, become trapped in local optima and cannot escape. Therefore, the Metropolis method and the Gibbs method are used to determine the transition probability A from one state to the next by changing a certain state variable. That is, changes that increase the value of the evaluation function are probabilistically allowed. In this case, the transition probability A for the change ΔE is calculated by equation (8).
[0036]
number
[0037] β is the reciprocal of the temperature value T, and is called the inverse temperature. Incidentally, some combinatorial optimization problems have constraints that the solution must satisfy. For example, in the knapsack problem, a type of combinatorial optimization problem, there is a constraint that the total capacity of the items that can be packed into the knapsack must be less than or equal to the capacity of the knapsack. Such constraints are called inequality constraints and can be expressed by constraint terms that have values depending on whether or not the constraint is violated. In addition to inequality constraints, there are other types of constraints, such as equality constraints, absolute value constraints, AND type constraints, and XOR type constraints.
[0038] The total energy (H(x)) including the constraint term can be expressed by the following equation (9).
[0039]
number
[0040] E(x) represents the energy corresponding to equation (1). G(x) represents the total magnitude (energy) of the constraint term. G(x) is sometimes called the additional energy. E(x) and G(x) are expressed by equations (10) and (11), respectively.
[0041]
number
[0042]
number
[0043] D represents the set of identification numbers for state variables, k represents the identification number for constraint terms, and A represents the set of identification numbers for constraint terms. k The expression represents the constraint term for identification number k. The identification number is also called the index. The number of constraint terms, i.e., the number of constraint conditions, is M. M is an integer greater than or equal to 2. Also, λ k The constraint term G k h is a positive coefficient that indicates the weight. k The constraint term G k This is the local field corresponding to h. k The constraint term G k This is a quantity used to identify the amount of restriction violation (penalty) related to h. k This is expressed by equation (12).
[0044]
number
[0045] W ki The constraint term G k x in i This is a coefficient that indicates the weight of (weight coefficient). k The constraint term G k This is a bias toward [something]. The processing unit 12 solves the combinatorial optimization problem based on the evaluation function of equation (9). For example, if the constraint is an inequality constraint, then G of equation (11) k (hk ) is expressed by equation (13).
[0046]
number
[0047] The max operator is an operation that outputs the maximum value among its arguments. In equation (9), x i The change in total energy (ΔH) associated with a change in the value of is expressed by the following equation (14).
[0048]
number
[0049] (h) in equation (14) i +g i ) is the state variable x i This corresponds to the local field of x. Here, the state variable x i local field h corresponding to i This is called the first local field, and the constraint condition k, i.e., the constraint term G k local field h corresponding to k This is called the second local field. In this case, h i g is the local secondary energy field corresponding to E. i is the additional energy local field corresponding to G. h in equation (14) i and g i These are expressed by equations (15) and (16), respectively.
[0050]
number
[0051]
number
[0052] Here, set A no_update is, x i For changes in the value of G kThis is the set of identification numbers for constraint terms whose value does not change. Therefore, the set (AA) no_update ) is x i For changes in the value of G k This shows the set of identification numbers for constraint terms whose values change. Also, Δg(h k ,W ki Δx i ) is expressed by equation (17).
[0053]
number
[0054] For example, x j The acceptance probability of accepting a change in the value of is, similarly to equation (8), A j =min[1,exp(-βΔH j This can be expressed as ). The min operator indicates an operation that outputs the smallest value among the arguments.
[0055] The processing unit 12, for example, x j If it is determined that the value of will be changed, the original h for each of the multiple state variables will be changed. i , Δh i =W ij Δx j By adding h i Update the following: Note that if i=j, W ii = 0, h i Since it does not change, no update is necessary. i The update for this is represented by equation (18).
[0056]
number
[0057] h i The state variable x i The first local field (=h i +g i ) is included in h i The update of the state variable x i The first local field will be updated. Also, when the processing unit 12 determines to change the value of x j , for h j with a non-zero weight coefficient (W kj ) between x k , Δh k = W kj Δx j is added to update h k . The update for h k is represented by Equation (19).
[0058]
Equation
[0059] The processing unit 12 can efficiently update h i , h k with a parallelism of N + M according to Equations (15) and (16). Then, the processing unit 12 further updates g k for each of the plurality of state variables based on the second local field h i before and after the update according to the following Equation (20).
[0060]
Equation
[0061] In Equation (20), h k (old) represents h k before the update. When i = j, g i does not change and thus no update is required. g i is included in the first local field (= h i + g i ) of the state variable x i . Therefore, the update of g i updates the first local field of the state variable x i .
[0062] Here, if we search for a solution using all M constraint terms, the processing unit 12 will perform O(N) parallel updates serially M times for k for all i (≠j) corresponding to the N state variables in relation to updating equation (20). Therefore, the more constraints there are, the more x i The computational cost associated with updating the local field increases, and the time required to find the solution increases. Therefore, the data processing device 10 performs the solution search as follows.
[0063] The memory unit 11 stores the first weight coefficient group, the second weight coefficient group, the first local field, and the second local field. The first weight coefficient group contains the weights W between each of the multiple state variables. ij This shows that the second set of weight coefficients is the weight W between each of the multiple state variables and each of the multiple constraints. ki This shows that a constraint condition is associated with a term in the evaluation function that represents that constraint condition, i.e., a constraint term. The first local field (h i +g i ) represents the change in the value of the evaluation function H(x) when the values of each of the multiple state variables change. Second local field h k This is used to identify the amount of constraint violation for each of the multiple constraints. In the initial stages of the search, H(x), h i ,g i ,h k x1~x N A value based on the initial value is stored in the memory unit 11.
[0064] Figure 1 shows a flowchart illustrating an example of processing performed by the processing unit 12. The processing unit 12 selects a first constraint condition from among multiple constraint conditions (step S1). The processing unit 12 can select one or more first constraint conditions.
[0065] The processing unit 12 repeatedly performs a search process including the following first and second processes using the selected first constraint (step S2). The first process is the flip determination. The processing unit 12 performs the flip determination (step S3). Specifically, the processing unit 12 selects a state variable that is a candidate for value change (hereinafter referred to as a flip candidate) from N state variables. The processing unit 12 selects the state variable of the flip candidate, for example, randomly or in a predetermined order. Then, the processing unit 12 calculates ΔH when the value of the selected state variable changes. For example, when x i is selected, ΔH i can be calculated by the formula ΔH i +g i = -(h i +g i )Δx i as described above based on the first local field (h i +g i ). Next, the processing unit 12 determines whether to allow the change of the value of the state variable of the flip candidate (whether flipping is possible) based on the comparison result between ΔH and a predetermined value.
[0066] The predetermined value is, for example, a noise value obtained based on a random number and the value of a temperature parameter. For example, log(rand)×T, which is an example of a noise value obtained based on a uniform random number (rand) between 0 and 1 and a temperature parameter (T), can be used as the predetermined value. In this case, when -ΔH i ≧log(rand)×T, the processing unit 12 determines that the change of the value of the state variable of the flip candidate is allowed (flipping is possible). When -ΔH i <log(rand)×T, the processing unit 12 does not allow the change of the value of the state variable of the flip candidate.
[0067] When the processing unit 12 determines that flipping is possible, it performs the second process. The second process is an update process including steps S4 and S5 described below regarding the first local field (h i +g i ) and the second local field (h k ).
[0068] The processing unit 12 performs an update of the first local field corresponding to the flip of the first state variable and an update of the second local field corresponding to the first constraint condition (step S4). For example, x jIf it is determined that it can be flipped, then the original h for each of the N state variables i , Δh i =W ij Δx j By adding this, the first local field (h i +g i The processing unit 12 updates the x that it has determined can be flipped (step S4). j Flip it over. Note that if i=j, W ii = 0, h i Since it does not change, no update is necessary. Also, processing unit 12, x j If it is determined that flipping is possible, x j The second weighting coefficient (W) between kj The second local field h of the first constraint condition is non-zero. k For Δh k =W kj Δx j By adding h k The update is performed. Processing unit 12 performs h k The update is performed for the first constraint selected in step S1, and for the other constraints h k Do not update each h in step S4. i ,h k The updates can be performed in parallel with a degree of parallelism of N + (number of first constraints selected).
[0069] Then, the processing unit 12 checks the second local field (h) before and after updating, which corresponds to the first constraint condition. k (old) ,h k Based on ), the first local field (h i +g i ) is further updated (step S5). Here, the processing unit 12 calculates the first local field (h) according to equation (20). i +g i The update of the constraints is performed with respect to the first constraint selected in step S1, but not with respect to the other constraints.
[0070] After repeating the search process in steps S3 to S5 a predetermined number of times, the processing unit 12 completes the search process using the first constraint condition selected this time (the current search process) (step S6). Then, the processing unit 12 proceeds to the next step S7.
[0071] The processing unit 12 updates the second local field corresponding to the second constraint based on change information showing the changes in the values of multiple state variables at the start and end of the current search process, and the second weight coefficient corresponding to the second constraint that was not used in the current search process among the multiple constraint conditions. The processing unit 12 can update the second local field corresponding to the second constraint based on equation (16). Note that there may be one or more second constraint conditions. Furthermore, the processing unit 12 can obtain the above change information by storing the values of multiple state variables at the start of the current search process in the storage unit 11 and comparing them with the values of multiple state variables at the end of the current search process. Then, the processing unit 12 updates the second local field (h) before and after the update corresponding to the second constraint. k_before ,h k_after Based on ), the first local field (h i +g i ) is corrected (step S7).
[0072]
number
[0073] Here, h k_before This is the second local field corresponding to the second constraint condition before the update in step S7. k_after This is the second local field corresponding to the second constraint condition after the update in step S7. Then, the processing unit 12 proceeds to step S1 and repeats the above procedure starting from the selection of the first constraint condition.
[0074] When the processing unit 12 next executes step S1, it selects a different constraint condition or set of constraint conditions than the one selected previously. For example, the processing unit 12 may control the selection of the first constraint condition each time step S1 is performed so that ultimately all constraint conditions are selected equally as the first constraint condition. For example, the processing unit 12 may sequentially select one or more first constraint conditions from multiple constraint conditions. Alternatively, the processing unit 12 may randomly select one or more first constraint conditions from multiple constraint conditions based on a uniform random number.
[0075] In the above explanation, an example was shown where one state variable is selected from among the N state variables as a flip candidate, and the flip determination in step S3 is performed. However, the flip determination in step S3 may be performed in parallel for multiple (for example, all N) state variables. In that case, when there are multiple state variables whose values are allowed to change, the processing unit 12 randomly or according to a predetermined rule selects one state variable whose value will be changed.
[0076] Furthermore, the processing unit 12 determines in step S3 that x can be flipped. j Depending on the change in the value, the total energy H is H + ΔH j This can be updated. In this case, in step S7, the processing unit 12 can correct the total energy H (=E+G) by correcting G according to equation (22).
[0077]
number
[0078] When performing a pseudo-annealing method, the processing unit 12, for example, decreases the value of the aforementioned temperature parameter (T) according to a predetermined temperature parameter change schedule each time the flip determination for the state variable is repeated a certain number of times. Then, the processing unit 12 outputs the state obtained when the flip determination process has been repeated a predetermined number of times (or when a predetermined T is reached) as the calculation result of the combinatorial optimization problem. The processing unit 12 may also store the total energy and state at the point where the minimum energy has been reached so far in the storage unit 11. In that case, the processing unit 12 may output the state corresponding to the stored minimum energy after the procedure of steps S1 to S7 has been repeated a predetermined number of times as the calculation result.
[0079] When the processing unit 12 performs the replica exchange method, the processing unit 12 repeats the processes in steps S1 to S7 above for each of a plurality of replicas, each with a different value of T. Then, the processing unit 12 performs a replica exchange each time the flip determination process is repeated a predetermined number of times. Specifically, the processing unit 12 selects two replicas with adjacent values of the temperature parameter T, and exchanges the values of each state variable between the two selected replicas at a predetermined exchange probability based on the energy difference and the difference in inverse temperature between the replicas. Note that instead of the values of each state variable, the values of the temperature parameter T may be exchanged between the two replicas. The processing unit 12 also stores the total energy and state when the minimum energy up to that point is reached. Then, after the procedures in steps S1 to S7 are repeated a predetermined number of times for each replica, the processing unit 12 outputs the state corresponding to the stored minimum energy as a calculation result.
[0080] The replica exchange method is also known as the exchange Monte Carlo method or the parallel tempering (PT) method. In this way, the data processing device 10 can improve its solution-finding performance by performing the search process shown in steps S3 to S5 using some of the constraints out of all constraints, and then correcting the contributions to the local field by the other constraints all at once later. For example, the data processing device 10 performs the first local field (h) in step S5. i +g i This reduces the computational cost associated with updating the data. As a result, the data processing device 10 can speed up the solution process. Furthermore, the data processing device 10 will be able to handle combinatorial optimization problems that include a large number of constraints.
[0081] Furthermore, if the search process is performed using all constraints, the penalty contribution to ΔH may limit the number of state variables that can be flipped, potentially narrowing the search range in the state space. On the other hand, by performing the search process using only some of the constraints, the data processing device 10 can reach a solution space that could not be explored when all constraints are used, thereby speeding up the solution process.
[0082] Here, the state variable x i The local field of (=h i +g i I will add some information about this. Figure 2 shows an example of how the value of a constraint term changes due to a change in the value of a state variable. The vertical axis of Graph 20 is G k (h k The size of the penalty is represented by the horizontal axis, and the horizontal axis is h k It represents.
[0083] Figure 2 shows G as an example of a constraint term. k (h k ) = max(0,h k ) is used. i As the value of h changes, k ga h k +W ki Δx i When it changes to, constraint term G k The change in the value of G k (h k +Wki Δx i )-G k (h k It is expressed as ).
[0084] The aforementioned data processing device 10 processes the state variable x i As a local field of x, i We are using a local field that reflects not only the change in equation E(x) due to the change in the value of h, but also the change in the value of G(x). Such a local field is given by equation (15) h i and g of equation (16) i The sum of (h i +g i It is represented as follows:
[0085] In this case, the processing unit 12 is x j Depending on the change in the value of x i The local field of (=h i +g i The values are updated using a method called a two-pass update, which is represented by equations (18) to (20). The two-pass update corresponds to the second process.
[0086] Figure 3 shows an example of a two-pass update in the search process. x1, x i , x N h is a state variable, p h k h r This is the local field (second local field) corresponding to the constraints p, k, and r. Here, the constraints p, k, and r are some of the constraints selected as the first constraint from among the M constraints. In the example in Figure 3, M is an integer greater than or equal to 4.
[0087] State variables x1, x i , x N Of these, x i If the value changes, x i The local field (first local field) corresponding to the state variable whose weight coefficients between and are non-zero, x i The local field (second local field) corresponding to the constraint condition where the weight coefficients between x and x are non-zero is updated. For example, x i Weight coefficient (W) between these two points 1i) If the h1 corresponding to x1 is non-zero, then Δh1=W 1i Δx i It is updated by adding x i Weight coefficient (W) between these two points iN x is non-zero N h corresponding to N However, Δh N =W iN Δx i It is updated by adding x. i Weight coefficient (W) between these two points pi h ) is non-zero p However, Δh p =W pi Δx i It is updated by adding x i Weight coefficient (W) between these two points ri h ) is non-zero r However, Δh r =W ri Δx i It will be updated when this is added.
[0088] Next, the local fields corresponding to state variables whose values have changed and whose weight coefficients with respect to the local fields corresponding to the constraints are non-zero are updated based on equation (20). For example, h r Weight coefficient (W) between these two points ri , W rN x is non-zero i , x N g corresponding to i , g N However, it is updated based on equation (20). Furthermore, h p Weight coefficient (W) between these two points p1 , W pi , W pN x1, x i , x N g1, g i , g N However, it is updated based on equation (20). In the search process using constraints p, k, r, the processing unit 12 only needs to reflect the contribution of the local field corresponding to constraints p, k, r out of the M constraints into the first local field based on equation (20).
[0089] Next, an example of the processing steps S1 to S7 by the data processing device 10 will be described. Figure 4 shows an example of processing performed by a data processing device. Here, the processing unit 12 may associate the M constraint conditions with M auxiliary variables. The auxiliary variables are, for example, binary variables that take values of 0 or 1. For example, auxiliary variable y p This corresponds to the constraint condition p. Auxiliary variable y k This corresponds to the constraint condition k. Auxiliary variable y r This corresponds to the constraint condition r. In contrast to auxiliary variables, state variables are sometimes referred to as decision variables.
[0090] For example, the value of the auxiliary variable indicates whether the constraint condition is satisfied. For example, the processing unit 12 performs the operation when the constraint condition p is satisfied (G p (If = 0), y p Let = 0. Also, the processing unit 12 will perform the operation if the constraint condition p is not satisfied (G p (If >0), y p Let = 1. The same applies to the other constraints k and r.
[0091] In this case, the processing unit 12 can select the first constraint condition by selecting an auxiliary variable corresponding to the first constraint condition. In the example in Figure 4, M=3, and the processing unit 12 selects one of the three constraint conditions p, k, and r as the first constraint condition.
[0092] First, the processing unit 12 processes the auxiliary variable y p ,y k ,y r From there, the auxiliary variable y is selected using a predetermined method. r Select the auxiliary variable y. r The selection of corresponds to the selection of constraint condition r (step S1). In this case, constraint condition r is an example of a first constraint condition used in the solution search.
[0093] The processing unit 12 searches for a solution based on the first local field of each state variable and the second local field corresponding to the first constraint (steps S2 to S6). For example, if constraint condition r is selected as the first constraint, the processing unit 12 considers the auxiliary variable y with respect to the first local field of each state variable.r , that is, two-pass update is performed using the second local field corresponding to the constraint condition r. In this case, the processing unit 12 uses the auxiliary variable y p , y k , that is, the update of the second local field corresponding to the constraint conditions p, k and the reflection of the contribution to the first local field by the second local field corresponding to the constraint conditions p, k are not performed.
[0094] When the processing unit 12 performs the search process of steps S2 to S6 a certain number of times, it performs a correction process (step S7). Specifically, the processing unit 12 updates the second local field corresponding to the constraint conditions p, k based on Equation (19). Δx in Equation (19) j uses the differences in the values of the state variables at the start and end of the current search process. Then, the processing unit 12 uses the second local fields before and after the update corresponding to each of the constraint conditions p, k to correct the first local field (h i + g i ) of each state variable based on Equation (21). Then, the processing unit 12 returns to step S1 and repeats the execution of steps S1 to S7 starting from the selection of the first constraint condition.
[0095] Note that in steps S2 to S6 above, when updating the value of the state variable, the processing unit 12 changes the value of the auxiliary variable y r according to the satisfaction status of the constraint condition r. In step S7, the processing unit 12 changes the value of the auxiliary variable y p , y k according to the satisfaction status of the constraint conditions p, k based on the second local field after the update of each of the constraint conditions p, k.
[0096] Furthermore, in steps S2 to S6, the processing unit 12 updates the total energy H to H + ΔH according to the update of the value of the state variable. Also, in step S7, the processing unit 12 corrects the total energy H (= E + G) based on Equation (22).
[0097] As described above, according to the data processing device 10 of the first embodiment, a first constraint condition is selected from among a plurality of constraint conditions. A search process is executed, which repeats the first process and the second process. The first process is a process that determines whether or not to allow a change in the value of the first state variable among a plurality of state variables, based on the first local field. The second process is a process that, if it is determined that a change in the value of the first state variable is to be allowed, updates the first local field based on the first weight coefficient corresponding to the first state variable from the first weight coefficient group, updates the second local field corresponding to the first constraint condition based on the second weight coefficients corresponding to the first state variable and the first constraint condition from the second weight coefficient group, and further updates the first local field based on the second local field before and after the update corresponding to the first constraint condition. After the completion of this search process, the second local field corresponding to the second constraint condition is updated based on change information showing the changes in the values of the plurality of state variables at the start and end of this search process, and the second weight coefficient corresponding to the second constraint condition that was not used in this search process among the plurality of constraint conditions. The first local field is corrected based on the second local field before and after the update corresponding to the second constraint. Then, the above process is repeated again, starting from the selection of the first constraint.
[0098] This allows the data processing device 10 to improve its solution-finding performance. For example, the data processing device 10 performs the search process using some of the constraints out of all constraints, and then corrects the contribution of the other constraints to the local field all at once at a later date, thereby improving the first local field (h) in the search process. i +g i This reduces the computational cost associated with updating the data. As a result, the data processing device 10 can speed up the solution process. Furthermore, the data processing device 10 will be able to handle combinatorial optimization problems that include a large number of constraints.
[0099] Furthermore, by performing the search process using only some of the constraints, the data processing device 10 can reach a solution space that could not be explored when using all constraints, thereby speeding up the solution process.
[0100] [Second Embodiment] Next, a second embodiment will be described. Figure 5 shows an example of the hardware of the data processing device according to the second embodiment.
[0101] The data processing unit 100 includes a processor 101, DRAM (Dynamic Random Access Memory) 102, HDD 103, GPU 104, input interface 105, media reader 106, communication interface 107, and accelerator card 108. These units of the data processing unit 100 are connected to a bus inside the data processing unit 100.
[0102] The processor 101 is an arithmetic unit that executes program instructions. The processor 101 is, for example, a CPU. The processor 101 loads at least a portion of the program and data stored in the HDD 103 into the DRAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing unit 100 may also have multiple processors. The processor that executes one of the multiple processes performed by the data processing unit 100 may be different from the processor that executes a different process from the multiple processes. A collection of multiple processors is sometimes called a "multiprocessor" or simply a "processor". The processor may also be called a "processor circuitry".
[0103] DRAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used by the processor 101 for calculations. The data processing device 100 may also be equipped with other types of memory, and may be equipped with multiple types of memory.
[0104] HDD103 is a non-volatile storage device that stores software programs such as the OS (Operating System), middleware, and application software, as well as data. The data processing device 100 may also include other types of storage devices such as flash memory or SSD (Solid State Drive), and may include multiple non-volatile storage devices.
[0105] The GPU 104 outputs an image to the display 51 connected to the data processing unit 100, according to instructions from the processor 101. Any type of display can be used as the display 51, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display, or an organic electro-luminescence (OEL) display.
[0106] The input interface 105 acquires input signals from the input device 52 connected to the data processing unit 100 and outputs them to the processor 101. The input device 52 can be a pointing device such as a mouse, touch panel, touchpad, or trackball, a keyboard, a remote controller, or a button switch. Furthermore, multiple types of input devices may be connected to the data processing unit 100.
[0107] The media reader 106 is a reading device that reads programs and data recorded on the recording medium 53. The recording medium 53 can be, for example, a magnetic disk, an optical disk, a magneto-optical disk (MO), or semiconductor memory. Magnetic disks include flexible disks (FD) and HDDs. Optical disks include CDs (Compact Discs) and DVDs (Digital Versatile Discs).
[0108] The media reader 106 copies programs and data read from the recording medium 53 to other recording media such as DRAM 102 or HDD 103. The read programs are executed by the processor 101, for example. The recording medium 53 may be a portable recording medium and may be used for distributing programs and data. The recording medium 53 and HDD 103 are sometimes referred to as computer-readable recording media.
[0109] The communication interface 107 is connected to the network 54 and communicates with other information processing devices via the network 54. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or router, or a wireless communication interface connected to a wireless communication device such as a base station or access point.
[0110] The accelerator card 108 is a hardware accelerator that searches for solutions to combinatorial optimization problems using methods such as replica exchange and pseudo-annealing. Combinatorial optimization problems are represented by the evaluation function of equation (9), which shows the total energy of the Ising model. In the example of the second embodiment, the number of constraints, i.e., the number of constraint terms M, is 2 or greater. Hereafter, state variables will be referred to as decision variables, and binary variables corresponding to constraints will be referred to as auxiliary variables.
[0111] The accelerator card 108 has a processor 110 and DRAM 120. The processor 110 is, for example, a GPU, DSP, ASIC, FPGA, etc. The processor 110 has internal memory 111. The internal memory 111 is, for example, SRAM. The DRAM 120 stores data used for processing by the processor 110.
[0112] Processor 110 is an example of the processing unit 12 of the first embodiment. The internal memory 111 or the DRAM 120 is an example of the storage unit 11 of the first embodiment. However, the function of solving the solution of the data processing device 100 may be realized by executing the program stored in the DRAM 102 by the processor 101. In that case, the processor 101 is an example of the processing unit 12, and the DRAM 102 is an example of the storage unit 11.
[0113] FIG. 6 is a diagram showing a functional example of a data processing device. The data processing device 100 includes an input unit 130, a control unit 140, an output unit 150, and a search unit 160. The input unit 130, the control unit 140, and the output unit 150 are realized, for example, by executing a program stored in the DRAM 102 by the processor 101. The search unit 160 is realized by the processor 110. However, the search unit 160 may be realized by executing a program stored in the DRAM 102 by the processor 101.
[0114] The input unit 130 receives the input of the initial values of N decision variables, problem information, and calculation conditions. The problem information includes, for example, W in Equation (12) kj and b k In addition to, W in Equation (15) ij b i and λ in Equation (16) k . The calculation conditions include, for example, the number of replicas when performing the replica exchange method, the replica exchange period, the value of the temperature parameter set for each replica, the temperature parameter change schedule when performing the simulated annealing method, the calculation end condition, and the like.
[0115] These pieces of information may be input by an operation of the input device 52 by the user, or may be input via the recording medium 53 or the network 54. The control unit 140 controls the input unit 130, the output unit 150, and the search unit 160.
[0116] The output unit 150 outputs the search results from the search unit 160. The output unit 150 may, for example, output the search results to the display 51 for display, transmit them to another information processing device via the network 54, or store them in an external storage device.
[0117] The search unit 160 performs the solution of the combinatorial optimization problem based on the evaluation function shown in equation (9). The search unit 160 searches for a state in which the value (energy) of the evaluation function is minimized by repeatedly performing flip judgment processing and update processing of the decision variables.
[0118] Figure 7 shows an example of the search unit. The search unit 160 includes a weight coefficient holding unit 161, a decision variable holding unit 162, an auxiliary variable holding unit 163, a decision variable local field holding unit 164, an auxiliary variable local field holding unit 165, an auxiliary variable selection unit 166, a local field update unit 167, h k_before Preservation part 168, h k Update detection unit 169, h k Contribution calculation unit 170, ΔH calculation unit 171, ΔH holding unit 172, FF (flip-flop) 173, flip determination processing unit 174, H holding unit 175, h k_after It has a calculation unit 176 and a correction processing unit 177.
[0119] The weight coefficient holding unit 161 has N × N W ij It holds M × N W ki and N × M W ik It retains W ki =W ik Therefore, the weight coefficient holding unit 161 has N × M W ik It is not necessary to retain the weight coefficient. Also, the weight coefficient holding unit 161 does not retain W if the value is 0. ki It is not necessary to retain that information.
[0120] The decision variable holding unit 162 holds N decision variables (x i The value of ) is stored. In addition, the decision variable storage unit 162 outputs the change in the value of the decision variable when a decision variable for a flip candidate is specified among the N decision variables. For example, x jWhen is specified, Δx j = 1 - 2x j is output.
[0121] The auxiliary variable holding unit 163 holds the values of M auxiliary variables (y k ). y k is used to detect whether the constraint condition of index k is satisfied. In FIG. 7, the illustration of the configuration for updating y k is omitted. When h k > 0, G k (h k )> 0, indicating a constraint violation. For example, when h k > 0, y k = 1, and when h k ≦ 0, a configuration is provided such that y k = 0. However, the data processing device 100 may not use y k . In that case, the auxiliary variable holding unit 163 is unnecessary.
[0122] The decision variable local field holding unit 164 holds the local field (h i + g i ) corresponding to the decision variable. The decision variable local field holding unit 164 may hold h i in Equation (15) and g i in Equation (16) separately.
[0123] The auxiliary variable local field holding unit 165 holds the constraint condition, that is, the local field (h k ) corresponding to the auxiliary variable. The auxiliary variable selection unit 166 selects, from among a plurality of auxiliary variables, the auxiliary variables corresponding to the constraint conditions used for solution search each time an iteration for updating the values of the decision variables is performed a predetermined number of times. The auxiliary variable selection unit 166 can select one or more auxiliary variables. Let the number of auxiliary variables selected by the auxiliary variable selection unit 166 be P. P is an integer such that 1 ≦ P < M. The number P of the selected auxiliary variables may be the same value or different values in each selection. The auxiliary variable selection unit 166 notifies the local field update unit 167 of the information indicating the selected auxiliary variables. The details of the auxiliary variable selection unit 166 will be described later.
[0124] The local field update unit 167 reads the weight coefficients between the decision variable of the flip candidate and other decision variables from the weight coefficient holding unit 161 when a change in the value of the decision variable of the flip candidate is permitted (when flipping is allowed), and updates the local field using those weight coefficients. For example, x j If flipping is permitted, the local field update unit 167 will ij Δx j each h i By adding to h i Update.
[0125] Furthermore, if the decision variable of the flip candidate is deemed flippable, the local field update unit 167 updates the local field (h) corresponding to that decision variable and the P auxiliary variables selected by the auxiliary variable selection unit 166. k Among the weight coefficients between ) and , read out the weight coefficients whose values are non-zero, h k Update x. For example, x j If flipping is permitted, the local field update unit 167 will kj Δx j h k By adding to h k Update.
[0126] h k_before The storage unit 168 stores the local field h corresponding to the auxiliary variable that was not selected by the auxiliary variable selection unit 166. k Save it. h k The update detection unit 169 is h by the local field update unit 167 k Detect updates.
[0127] h k The contribution calculation unit 170 calculates the h when an update is detected. k Changes in the value of g i To calculate the change (the second term on the right-hand side of equation (20)), a non-zero W is obtained from the weight coefficient holding unit 161. ki Read out h k The contribution calculation unit 170 is h k The auxiliary variable local field holding unit 165 is obtained, h k (old)Obtain it from FF173. Then, h k The contribution calculation unit 170 is g i Calculate the change in the original g as shown in equation (20). i By applying this change to g i This updates the local field (h) of the decision variable. i +g i ) will be updated.
[0128] The ΔH calculation unit 171 calculates ΔH in equation (14) based on the local field corresponding to the decision variable of the flip candidate. For example, if the flip candidate is x j If this is the case, the ΔH calculation unit 171 calculates ΔH j =-(h j +g j )Δx j Calculate.
[0129] The ΔH holding unit 172 holds the ΔH calculated by the ΔH calculation unit 171. j It holds. FF173 is h k Hold and h k By delaying the timing of outputting h k ( old) h k It is supplied to the contribution calculation unit 170.
[0130] The flip determination processing unit 174 performs a flip determination process to determine whether the decision variable of the flip candidate is flippable or not, based on the comparison result between ΔH and a predetermined value. The predetermined value is, for example, a noise value obtained based on a random number and the value of a temperature parameter. For example, if -ΔH ≥ log(rand) × T, the flip determination processing unit 174 determines that a change in the value of the decision variable of the flip candidate is permissible.
[0131] Furthermore, the flip determination processing unit 174 sends the identification number of the determination variable determined to be flippable to the determination variable holding unit 162, causing it to update the value of that determination variable. In addition, the flip determination processing unit 174 updates H(x) held in the H holding unit 175 based on ΔH resulting from the change in the value of the determination variable determined to be flippable.
[0132] The flip determination processing unit 174 may sequentially select the decision variables for the flip candidates, or it may perform flip determination processing in parallel on multiple decision variables as flip candidates. In the latter case, the flip determination processing unit 174 randomly selects one decision variable from among the decision variables that have been determined to be flippable as the target for flipping. For example, when performing flip determination processing in parallel on multiple decision variables, the flip determination processing unit 174 generates a noise value to be used for flip determination processing for each decision variable.
[0133] The H-holding section 175 holds H(x). The H-holding section 175 may also hold the H(x) and state when the minimum energy is reached. Furthermore, the H-holding section 175 may hold E and G separately.
[0134] h k_after When a predetermined number of iterations, i.e., the current search process, is completed, the calculation unit 176 calculates h for each auxiliary variable that was not used in the current search process, based on the changes in the values of each decision variable before and after the current search process. k_after Calculate h k_after The calculation unit 176 sequentially performs the calculation of equation (19) for the decision variable whose value has changed, k_after It is possible to calculate this.
[0135] The correction processing unit 177 processes h corresponding to each auxiliary variable that was not used in the current search process. k_before and h k_after Using this, g based on equation (21) i Correction is performed on the local field (h) of the decision variable held in the decision variable local field holding unit 164. i +g i ), and the H held in the H holding part 175 is corrected.
[0136] Note that the weight coefficient holding unit 161, the decision variable holding unit 162, the auxiliary variable holding unit 163, the decision variable local field holding unit 164, the auxiliary variable local field holding unit 165, h k_beforeIn the storage unit 168, the ΔH holding unit 172, and the H holding unit 175, the storage area for storing variable values, local field values, evaluation function values, etc., is the storage area of the internal memory 111, DRAM 120, or DRAM 102.
[0137] Next, an example of the auxiliary variable selection unit 166 will be described. Figure 8 shows a first example of the auxiliary variable selection unit. The auxiliary variable selection unit 166 includes a search index set generation unit 166a and selection processing units 166b1, 166b2, 166b3, ...
[0138] The search index set generation unit 166a generates a search index set S, which is a set of indexes of auxiliary variables used in the search process. search It generates and outputs to the selection processing units 166b1, 166b2, 166b3, ... The details of the search index set generation unit 166a will be described later.
[0139] The selection processing units 166b1, 166b2, 166b3, ... each search index set S for each replica. search Based on this, auxiliary variables are selected. The search index set S is input to each selection processing unit. search These may be different from one another. For example, the selection processing units 166b1, 166b2, 166b3, ... each select auxiliary variables for replicas 1, 2, 3, ..., respectively. Below, we will mainly describe the selection processing unit 166b1, but the selection processing units 166b2, 166b3, ... are the same.
[0140] The selection processing unit 166b1 has a selector SL1. Selector SL1 is one of M auxiliary variables, where j∈S search Auxiliary variable y j Select the appropriate option. Figure 8 shows an example where three auxiliary variables y2, y3, and y6 are selected from M = six auxiliary variables (y1 to y6).
[0141] Next, an example of the search index set generation unit 166a in the auxiliary variable selection unit 166 shown in Figure 8 will be described. FIG. 9 is a diagram showing a first example of the search index set generation unit.
[0142] For example, the search index set generation unit 166a has a random number generation unit R1 and an index selection unit SL2. The random number generation unit R1 generates a uniform random number r j (0 < r j <1) for each index j of the auxiliary variable. The index selection unit SL2 receives the input of q, and selects the index j of r j <q and outputs the set of the selected indices j as the search index set S search q is a predetermined value of 0 < q < 1.
[0143] In this way, the search index set generation unit 166a may select an index with a probability q. In this case, the number of indices included in the search index set S search will vary probabilistically.
[0144] FIG. 10 is a diagram showing a second example of the search index set generation unit. The search index set generation unit 166a may have an index selection unit SL2a instead of the index selection unit SL2.
[0145] The index selection unit SL2a receives the input of p, and among the uniform random numbers r j generated by the random number generation unit R1 for each index j of the auxiliary variable, may select the lower p indices j. Then, the index selection unit SL2a outputs the set of the selected indices j as the search index set S search .
[0146] In this way, the search index set generation unit 166a may select p auxiliary variables with equal probability from the entire M auxiliary variables. In this case, by setting p to be constant, the number of selected auxiliary variables becomes constant.
[0147] FIG. 11 is a diagram showing a second example of the auxiliary variable selection unit. The auxiliary variable selection unit 166 may include a search index set generation unit 166c and selection processing units 166d1, 166d2, 166d3, ...
[0148] The search index set generation unit 166c generates a search index set S, which is a set of indexes of auxiliary variables used in the search process. search It generates and outputs to the selection processing units 166d1, 166d2, 166d3, ... Details of the search index set generation unit 166c will be described later.
[0149] The selection processing units 166d1, 166d2, 166d3, ... each search index set S for each replica. search Based on this, auxiliary variables are selected. The search index set S is input to each selection processing unit. search These may be different from one another. For example, the selection processing units 166d1, 166d2, 166d3, ... each select auxiliary variables for replicas 1, 2, 3, ..., respectively. Below, we will mainly describe the selection processing unit 166d1, but the selection processing units 166d2, 166d3, ... are the same.
[0150] The selection processing unit 166d1 has selectors SL3 and SL3a. Selector SL3 is selected from among the M auxiliary variables, y j The auxiliary variable y corresponds to a constraint condition where the constraint is not satisfied, i.e., >0. j Select the appropriate option. Figure 11 shows an example where four auxiliary variables y1, y3, y4, and y6 are selected by the selector SL3 from among M=6 auxiliary variables (y1 to y6).
[0151] Selector SL3a is selected from the auxiliary variables j∈S selected by selector SL3. search Auxiliary variable y j Select the appropriate option. Figure 11 shows an example where two auxiliary variables, y3 and y4, are selected from the four auxiliary variables (y1, y3, y4, y6) selected by selector SL3a.
[0152] Next, an example of the search index set generation unit 166c in the auxiliary variable selection unit 166 of FIG. 11 will be described. FIG. 12 is a diagram showing a third example of the search index set generation unit.
[0153] For example, the search index set generation unit 166c includes a random number generation unit R2 and an index selection unit SL4. The random number generation unit R2 generates a uniform random number r j for an index j that satisfies y j (0 < r j < 1). The index selection unit SL4 receives an input of q, selects the index j of r j < q, and outputs the set of the selected indexes j as the search index set S search .
[0154] In this way, the search index set generation unit 166c may select an index with a probability q for a constraint condition that is not satisfied. In this case, the number of indexes included in the search index set S search will vary probabilistically.
[0155] FIG. 13 is a diagram showing a fourth example of the search index set generation unit. The search index set generation unit 166c may have an index selection unit SL4a instead of the index selection unit SL4.
[0156] The index selection unit SL4a receives an input of p, and among the uniform random numbers r j for each index j of the auxiliary variable generated by the random number generation unit R2, may select the lower p indexes j. Then, the index selection unit SL4a outputs the set of the selected indexes j as the search index set S search .
[0157] Thus, the search index set generation unit 166c may select p auxiliary variables with equal probability from among the auxiliary variables corresponding to the constraints that are not satisfied. In this case, by keeping p constant, the number of auxiliary variables selected will be constant. However, if the number of constraints that are not satisfied is less than p, the number of auxiliary variables selected may be less than p. Alternatively, in addition to the auxiliary variables that are not satisfied, the search index set generation unit 166c may select additional auxiliary variables from among the auxiliary variables that satisfy the constraints until it reaches p.
[0158] The auxiliary variable selection unit 166 may select variables in index order or randomly. Furthermore, the number of auxiliary variables (number of constraints) used in the solution search may be determined by the total number of auxiliary variables or by their proportion to all pairs of unsatisfied auxiliary variables.
[0159] Next, the processing procedure of the data processing device 100 will be explained. Figure 14 is a flowchart showing an example of the overall processing of a data processing device. (S10) The control unit 140 initializes the search unit 160. For example, during initialization, the initial values of each variable received by the input unit 130, problem information, calculation conditions, etc., are set in the search unit 160.
[0160] (S11) The search unit 160 selects auxiliary variables to be used in the solution search. Specifically, the auxiliary variable selection unit 166 of the search unit 160 selects auxiliary variables using the methods illustrated in Figures 8 to 13. The method to be used is predetermined by the user.
[0161] (S12) The search unit 160 performs a solution search process based on the constraints corresponding to the auxiliary variables selected in step S11. Details of the solution search process will be described later. (S13) The search unit 160 determines the local field of the decision variable (h i +g i Correction processing is performed on the (H) and total energy. Details of the correction processing will be described later.
[0162] (S14) The search unit 160 determines whether the search is complete or not. If the search is complete, the entire process ends. If the search is not complete, the process proceeds to step S11. For example, the search unit 160 determines that the search is complete after executing the series of steps S11 to S14 a predetermined number of times or for a predetermined time. For example, when the processing of the search unit 160 is complete, the output unit 150 outputs the solution with the minimum total energy among the solutions obtained so far.
[0163] For example, when the search unit 160 performs a pseudo-annealing method, it lowers the temperature value (value of temperature parameter T) used for the solution search process in step S12 each time steps S11 to S13 are repeated a certain number of times.
[0164] Figure 15 is a flowchart showing an example of a solution search process. The solution search process corresponds to step S12. (S20) The search unit 160 repeatedly executes the procedure shown in steps S21 to S33 for the number of iterations i. Here, the initial value of i is 0. The number of iterations i is incremented by 1 until the total number of iterations T is reached.
[0165] (S21) The search unit 160 executes steps S22 to S32 for each replica. The number of replicas is R. The search unit 160 can execute steps S22 to S32 for each replica, for example, in a pipeline.
[0166] (S22) The search unit 160 calculates ΔH for each decision variable based on equation (14). The calculation of ΔH is performed in parallel for each decision variable. (S23) The flip determination processing unit 174 performs a flip determination process based on equation (8) and selects a flip bit based on the result of the flip determination process. For example, the flip determination processing unit 174 can perform the flip determination process in parallel for each decision variable. If there are multiple decision variables that are allowed to change in the result of the flip determination process, the flip determination processing unit 174 selects one of them, for example, using a random number. Note that in step S23, ΔH is used instead of ΔE in equation (8). Also, as mentioned above, the flip determination processing unit 174 can perform the flip determination process based on the comparison result between the noise value obtained based on the random number and the temperature parameter value and ΔH.
[0167] (S24) The flip determination processing unit 174 flips the decision variable selected in step S23, i.e., the selected bit, and updates E, G, and H. Specifically, the flip determination processing unit 174 updates E held in the H holding unit 175 to E+ΔE, G to G+ΔG, and H to H+ΔH. ΔE=-h i Δx i Therefore, ΔG = -g i Δx i Therefore, ΔH = -(h i +g i )Δx i That is the case.
[0168] (S25) The search unit 160 performs a local field update. Specifically, the search unit 160 updates the local field (h) corresponding to each decision variable. i +g i ) of h i The search unit 160 updates the local field h corresponding to some of the auxiliary variables selected in step S11. k Update.
[0169] (S26) The search unit 160 checks the local field h before and after the update corresponding to the said auxiliary variables. k (old) ,h k Based on this, the additional energy local field g i Contribution to λ k [Δg(h k ,Wki Δx i )-Δg(h k (old) ,W ki Δx i ) is calculated. The contribution calculation in step S26 is h k The update detection unit 169 k This is done for the updated auxiliary variable, h k This process is not performed for auxiliary variables that were not updated.
[0170] (S27) The search unit 160 calculates the additional energy local field g based on the contribution calculated in step S26 using equation (20). i Update the local field (h) corresponding to each decision variable. i +g i ) is updated. The update in step S27 is performed on some of the auxiliary variables h k This is executed only for updated auxiliary variables.
[0171] (S28) The search unit 160 calculates the current E and the minimum value of E obtained so far. min Compared with E <E min Determine whether or not it is true. <E min In this case, the process proceeds to step S29. E≧E min In that case, the process proceeds to step S33.
[0172] (S29) The search unit 160 acquires the current state and detects bit change information. The state indicates the value of each decision variable. The bit change information indicates the decision variables whose values have changed when comparing the state at the start of the solution search process with the current state.
[0173] (S30) The search unit 160 processes the state change detected in step S29, i.e., the bit change information, and the auxiliary variable and the local field h of the auxiliary variable. k The local field h of the auxiliary variable not selected in step S11 is updated. In step S30, the local field h of the auxiliary variable not selected in step S11 is updated. k However, it is updated to match the current state. kThe update of is performed based on formula (19). Note that h after the update in step S30 k h before update in step S30 only needs to be temporarily held for the constraint satisfaction determination in the next step S31, and may be discarded after the completion of step S31. k This is maintained in the auxiliary variable local field holding unit 165.
[0174] (S31) The search unit 160 determines whether the current state satisfies all constraints. If all constraints are satisfied, the process proceeds to step S32. If at least one constraint is not satisfied, the process proceeds to step S33. Here, as shown in equation (13), G k (h k ) = max(0,h k Therefore, the search unit 160 determines whether the constraint condition k is satisfied, for example, h k This can be determined by whether or not it is 0 or less. k If h is greater than 0, the constraint is violated, i.e., the constraint condition k is not satisfied. k The constraint k is satisfied if k is less than or equal to 0.
[0175] (S32) Search unit 160 is E min The data is updated and saved in the H-holding unit 175, corresponding to the current state. (S33) Once the search unit 160 has completed processing the current iteration for all replicas, it proceeds to step S34.
[0176] (S34) When the search unit 160 has completed processing all iterations, it terminates the current solution search process. Figure 16 is a flowchart showing an example of the correction process.
[0177] The correction process corresponds to step S13. (S40) The search unit 160 executes steps S41 to S46 for each replica. The number of replicas is R. The search unit 160 can execute steps S41 to S46 for each replica, for example, through a pipeline.
[0178] (S41) The current state is obtained, and bit change information is detected. The bit change information indicates the decision variables whose values have changed when comparing the state at the start and end of the solution search process performed in step S12 (the current state).
[0179] (S42) The search unit 160 processes the state change detected in step S41, i.e., the bit change information, and the auxiliary variable and the local field h of the auxiliary variable. k The local field h of the auxiliary variable not selected in step S11 is updated. In step S42, the local field h of the auxiliary variable not selected in step S11 is updated. k However, it is updated to match the current state. k The update is performed based on equation (19).
[0180] (S43) The search unit 160 detects the change in the local field of the auxiliary variable in step S42, and with respect to the said auxiliary variable h k_before and h k_after Obtain it. (S44) The search unit 160 calculates the additional energy local field g according to the change in the local field of the auxiliary variable using equation (21). i This corrects the decision variable x. i local field (h i +g i ) is corrected.
[0181] (S45) The search unit 160 corrects the additional energy G in accordance with the local field change of the auxiliary variable using equation (22). (S46) The search unit 160 corrects the total energy H (=E+G) based on the corrected additional energy G.
[0182] (S47) When the search unit 160 has completed the processing in steps S41 to S46 for all replicas, it terminates the correction process. When the search unit 160 performs the replica exchange method, it exchanges the values of each state variable between two replicas with adjacent temperature values at a predetermined exchange probability based on the energy difference or inverse temperature difference between the two replicas.
[0183] In the examples of the first and second embodiments, G k (h k Although we mainly explained inequality constraints, the data processing device 100 can handle higher-order costs not limited to inequality constraints. k (h k It can also be handled by ). For example, an AND-type constraint can be expressed as the AND product of positive and negative literals, as in equation (23).
[0184]
number
[0185] Here, S k This is the set of variable indices included in constraint k. G in equation (23) k The functional form is W of equation (24). kj and b of equation (25) k Using this, we obtain the same form as the aforementioned inequality constraint, as shown in equation (26).
[0186]
number
[0187]
number
[0188]
number
[0189] As another example, the data processing device 100 can also handle XOR type constraints. k This is W in equation (27). kj and h in equation (28) k Using this, it can be expressed as in equation (29).
[0190]
number
[0191]
number
[0192]
number
[0193] In this way, the data processing device 100 selects auxiliary variables to be used in the solution search for a certain period of time from the total number of auxiliary variables. The data processing device 100 performs a solution search considering only the selected auxiliary variables, without updating the auxiliary variables and their local fields, or reflecting the penalty contribution of the decision variables to the local fields for the remaining auxiliary variables that are not used in the solution search. After a certain number of solution searches, the data processing device 100 processes all at once the updates of the auxiliary variables that were not updated and their local fields, the reflection of the contribution from the auxiliary variables to the decision variables, and energy correction according to the change in the local fields of the auxiliary variables. By repeating the above selection of auxiliary variables and solution searches considering only some of the auxiliary variables, the data processing device 100 can efficiently process a large number of inequality constraints and higher-order products and search for the optimal value.
[0194] The data processing device 100 can improve the solution-finding performance. For example, the data processing device 100 performs the search process using some of the constraints out of all constraints, and then corrects the contribution of the other constraints to the local field all at once at the end, thereby improving the local field (h) in the search process. i +g i This reduces the computational cost associated with updating the data. As a result, the data processing device 100 can speed up the solution process. Furthermore, the data processing device 100 will be able to handle combinatorial optimization problems that include a large number of constraints.
[0195] Furthermore, by performing the search process using only some of the constraints among all the constraints, the data processing device 100 can reach a solution space that could not be explored when all constraints were used, thereby speeding up the solution search.
[0196] As explained above, the data processing device 100 performs, for example, the following process: The data processing device 100 searches for a solution represented by a combination of values for multiple state variables based on an evaluation function that includes terms corresponding to multiple state variables and multiple constraint conditions (constraint terms).
[0197] The storage unit, implemented by at least one of the internal memory 111, DRAM 120, or DRAM 102, stores a first weight coefficient group, a second weight coefficient group, a first local field, and a second local field. The first weight coefficient group represents the weights between each of the multiple state variables. The second weight coefficient group represents the weights between each of the multiple state variables and each of the multiple constraint conditions. The first local field represents the change in the value of the evaluation function when the value of each of the multiple state variables changes. The second local field is used to identify the amount of constraint violation for each of the multiple constraint conditions.
[0198] The search unit 160 repeatedly executes the selection process, the search process, and the correction process. In the selection process, the search unit 160 selects a first constraint condition from among multiple constraint conditions. In the search process, the search unit 160 repeatedly performs the first process and the second process. The first process is a process that determines, based on the first local field, whether or not to allow a change in the value of the first state variable among multiple state variables. The second process is a process that, if it is determined that a change in the value of the first state variable is to be allowed, updates the first local field based on the first weight coefficient corresponding to the first state variable from the first weight coefficient group, updates the second local field corresponding to the first constraint condition based on the second weight coefficient corresponding to the first state variable and the first constraint condition from the second weight coefficient group, and further updates the first local field based on the second local field before and after the update corresponding to the first constraint condition. After the completion of the current search process, the search unit 160 executes the correction process. In the correction process, the search unit 160 updates the second local field corresponding to the second constraint based on the change information and the second weight coefficient corresponding to the second constraint that was not used in this search process among the multiple constraint conditions. The change information shows the changes in the values of multiple state variables at the start and end of this search process. Then, in the correction process, the search unit 160 corrects the first local field based on the second local field before and after the update corresponding to the second constraint.
[0199] This allows the data processing device 100 to improve its solution-finding performance. For example, the data processing device 100 performs the search process using some of the constraints out of all constraints, and then corrects the contribution of the other constraints to the local field all at once at a later date, thereby improving the first local field (h) in the search process. i +g i This reduces the computational cost associated with updating the data. As a result, the data processing device 100 can speed up the solution process. Furthermore, the data processing device 100 can handle combinatorial optimization problems that include a large number of constraints that it could not handle before. In addition, by performing the search process using only a portion of the total constraints, the data processing device 100 can reach solution spaces that could not be explored when using all constraints, thereby speeding up the solution process.
[0200] Furthermore, selecting the first constraint condition can also be said to be selecting the constraint term corresponding to the first constraint condition. As mentioned above, the search unit 160 may maintain multiple auxiliary variables corresponding to multiple constraint conditions. In that case, the search unit 160 may select the first constraint condition by selecting the auxiliary variable corresponding to the first constraint condition or the index of said auxiliary variable.
[0201] Furthermore, the memory unit may store values of evaluation functions corresponding to the values of multiple state variables. During the search process, if the search unit 160 determines that a change in the value of the first state variable is permissible, it may update the value of the evaluation function stored in the memory unit based on the first local field corresponding to the first state variable. After completing the current search process, the search unit 160 may correct the value of the evaluation function stored in the memory unit based on the second local field before and after the update, which corresponds to the second constraint condition.
[0202] This allows the data processing device 100 to obtain an appropriate value for the evaluation function at the end of the current search process. As a result, when using, for example, the replica exchange method, the data processing device 100 can appropriately control the exchange probability of states between replicas using the value of the evaluation function, i.e., the energy.
[0203] Furthermore, the memory unit may store the best value of the evaluation function corresponding to the values of multiple state variables obtained through the search process to date, and the values of the multiple state variables corresponding to that best value. The search unit 160 may, during the search process, determine whether the first value shown by the part of the evaluation function other than the terms corresponding to the multiple constraints is better than the best value stored in the memory unit for the current values of the multiple state variables. If the first value is better than the best value, the search unit 160 may calculate a second local field corresponding to the second constraint based on change information showing the changes in the values of the multiple state variables at the start of the current search process and at the present time, and a second weight coefficient corresponding to the second constraint. The search unit 160 may determine whether all of the multiple constraints are satisfied based on the second local field of each of the multiple constraints. If all of the multiple constraints are satisfied, the search unit 160 may update the best value stored in the memory unit and the values of the multiple state variables corresponding to that best value with the first value and the values of the multiple state variables corresponding to the first value.
[0204] This allows the data processing device 100 to appropriately store the best solution obtained during each search process. After repeating the selection process, search process, and correction process a certain number of times, the data processing device 100 can terminate the repetition and output the best solution stored in the memory unit. In the case of a problem to minimize the value of the evaluation function, a solution with a smaller evaluation function value is judged to be a good solution. In the case of a problem to maximize the value of the evaluation function, a solution with a larger evaluation function value is judged to be a good solution.
[0205] The search unit 160 is configured to determine whether the first value indicated by the part of the evaluation function other than the terms corresponding to multiple constraints is better than the best value stored in the memory unit. However, other processing is also possible. For example, instead of this determination, the search unit 160 may determine whether the value of the evaluation function corresponding to the current values of multiple state variables is better than the best value stored in the memory unit, and if that value is better than the best value, it may proceed to determine whether all constraints are satisfied.
[0206] Furthermore, for example, the search unit 160 may select the first constraint condition from among multiple constraint conditions in a predetermined order or randomly. This allows the data processing device 100 to appropriately select the first constraint condition to be used in the search process. For example, the search unit 160 may be controlled to select all of the multiple constraint conditions equally throughout the entirety of multiple search processes.
[0207] Furthermore, the search unit 160 may keep the number of first constraint conditions selected from among multiple constraint conditions for the search process constant, or it may determine the number of first constraint conditions based on random values.
[0208] This allows the data processing device 100 to appropriately select the first constraints to be used in the search process. For example, as illustrated in Figures 9 and 12, the search unit 160 selects the number of first constraints to be used, i.e., the search index set S. search The number of elements can be determined based on random values generated for each constraint or auxiliary variable index. In this case, the number of first constraints selected from among multiple constraints for the current search process may be different from the number of first constraints selected for the previous search process.
[0209] Furthermore, the search unit 160 may select a first constraint from among multiple constraints that are not satisfied for the current values of the multiple state variables. This allows the data processing unit 100 to appropriately select the first constraint to be used in the search process. In addition, by narrowing down the first constraint to unsatisfied constraints, the data processing unit 100 can increase the possibility of reaching a better state (solution) in the search process. Here, when the search unit 160 selects a first constraint from among multiple constraints that are not satisfied for the current values of the multiple state variables, it may select all of the multiple constraints that are not satisfied for the current values of the multiple state variables as the first constraint.
[0210] Note that the "search unit 160" mentioned above can be replaced with a "processing unit" corresponding to the processor 110 or processor 101. Furthermore, the information processing of the first embodiment can be realized by having the processing unit 12 execute a program. The information processing of the second embodiment may also be realized by having the processor 101 execute a program. The program can be recorded on a computer-readable recording medium 53.
[0211] For example, a program can be distributed by distributing a recording medium 53 on which the program is stored. Alternatively, the program may be stored on another computer and distributed via a network. A computer may, for example, store (install) a program stored on the recording medium 53 or a program received from another computer into a storage device such as a DRAM 102 or HDD 103, and then read and execute the program from that storage device. [Explanation of Symbols]
[0212] 10 Data Processing Devices 11 Storage section 12 Processing Units S1-S7 Steps
Claims
1. In a data processing device that searches for a solution represented by a combination of values of multiple state variables based on an evaluation function that includes terms corresponding to multiple state variables and multiple constraints, A storage unit that stores: a first group of weight coefficients indicating the weights between each of the plurality of state variables; a second group of weight coefficients indicating the weights between each of the plurality of state variables and each of the plurality of constraint conditions; a first local field representing the amount of change in the value of the evaluation function when the value of each of the plurality of state variables changes; and a second local field used to identify the amount of constraint violation for each of the plurality of constraint conditions. From among the aforementioned multiple constraints, select the first constraint, A search process is executed which repeats the following steps: a first process that determines 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 a second process that, if it is determined that a change in the value of the first state variable is to be allowed, updates the first local field based on the first weight coefficient corresponding to the first state variable from the first weight coefficient group; updates the second local field corresponding to the first constraint condition based on the second weight coefficient corresponding to the first state variable and the first constraint condition from the second weight coefficient group; and further updates the first local field based on the second local field before and after the update corresponding to the first constraint condition. After the completion of the current search process, the second local field corresponding to the second constraint is updated based on change information showing the changes in the values of the multiple state variables at the start and end of the current search process, and the second weight coefficient corresponding to the second constraint that was not used in the current search process among the multiple constraints, and the first local field is corrected based on the second local field before and after the update corresponding to the second constraint. A processing unit that repeats the process, A data processing device having
2. The storage unit stores the values of the evaluation function corresponding to the values of the plurality of state variables, The aforementioned processing unit, In the search process, if it is determined that a change in the value of the first state variable is permissible, the value of the evaluation function stored in the memory is updated based on the first local field corresponding to the first state variable. Upon completion of the search process, the value of the evaluation function stored in the memory unit is corrected based on the second local field before and after the update corresponding to the second constraint condition. The data processing device according to claim 1.
3. The storage unit stores the best value of the evaluation function corresponding to the values of the plurality of state variables obtained by the search process and the values of the plurality of state variables corresponding to the best value. The aforementioned processing unit, In the search process described above, it is determined whether the first value shown by the part of the evaluation function other than the terms corresponding to the multiple constraints is better than the best value, given the current values of the multiple state variables. If the first value is better than the best value, the second local field corresponding to the second constraint is calculated based on the change information showing the changes in the values of the multiple state variables at the start of the current search process and at the present time, and the second weight coefficient corresponding to the second constraint. Based on the second local field of each of the aforementioned plurality of constraints, it is determined whether all of the aforementioned plurality of constraints are satisfied. If all of the above constraints are satisfied, the best value and the values of the multiple state variables corresponding to the best value stored in the memory unit are updated to the first value and the values of the multiple state variables corresponding to the first value. The data processing device according to claim 1.
4. The processing unit selects the first constraint condition from the plurality of constraint conditions in a predetermined order or randomly. The data processing device according to claim 1.
5. The processing unit keeps the number of first constraint conditions selected from the plurality of constraint conditions for the search process constant, or determines the number of first constraint conditions based on a random value. The data processing device according to claim 1.
6. The processing unit selects a first constraint condition from among the multiple constraint conditions that are not satisfied with the current values of the multiple state variables. The data processing device according to claim 1.
7. In a data processing method that searches for a solution represented by a combination of values of multiple state variables based on an evaluation function that includes terms corresponding to multiple state variables and multiple constraints, The data processing device From among the aforementioned multiple constraints, select the first constraint, A search process is performed which repeats the following steps: first, determine whether to allow a change in the value of a first state variable among the plurality of state variables, based on a first local field representing the amount of change in the value of the evaluation function when the value of each of the plurality of state variables changes; second, if it is determined that a change in the value of the first state variable is to be allowed, update the first local field based on the first weight coefficient corresponding to the first state variable from a first weight coefficient group representing the weights between each of the plurality of state variables; update the second local field corresponding to the first constraint from a second local field used to identify the amount of constraint violation for each of the plurality of constraint conditions, based on the second weight coefficient corresponding to the first state variable and the first constraint condition from a second weight coefficient group representing the weights between each of the plurality of state variables and each of the plurality of constraint conditions; and further update the first local field based on the second local field before and after the update corresponding to the first constraint condition. After the completion of the current search process, the second local field corresponding to the second constraint is updated based on change information showing the changes in the values of the multiple state variables at the start and end of the current search process, and the second weight coefficient corresponding to the second constraint that was not used in the current search process among the multiple constraints, and the first local field is corrected based on the second local field before and after the update corresponding to the second constraint. Repeat the process. Data processing method.
8. In a program that searches for a solution represented by a combination of values for multiple state variables based on an evaluation function that includes terms corresponding to multiple state variables and multiple constraints, From among the aforementioned multiple constraints, select the first constraint, A search process is performed which repeats the following steps: first, determine whether to allow a change in the value of a first state variable among the plurality of state variables, based on a first local field representing the amount of change in the value of the evaluation function when the value of each of the plurality of state variables changes; second, if it is determined that a change in the value of the first state variable is to be allowed, update the first local field based on the first weight coefficient corresponding to the first state variable from a first weight coefficient group representing the weights between each of the plurality of state variables; update the second local field corresponding to the first constraint from a second local field used to identify the amount of constraint violation for each of the plurality of constraint conditions, based on the second weight coefficient corresponding to the first state variable and the first constraint condition from a second weight coefficient group representing the weights between each of the plurality of state variables and each of the plurality of constraint conditions; and further update the first local field based on the second local field before and after the update corresponding to the first constraint condition. After the completion of the current search process, the second local field corresponding to the second constraint is updated based on change information showing the changes in the values of the multiple state variables at the start and end of the current search process, and the second weight coefficient corresponding to the second constraint that was not used in the current search process among the multiple constraints, and the first local field is corrected based on the second local field before and after the update corresponding to the second constraint. Repeat the process. A program that instructs a computer to perform a process.
Citation Information
Patent Citations
Optimization device and optimization method
JP2021157361A
Data processing apparatus, program, and data processing method
JP2023149428A
Data processing apparatus, program, and data processing method
JP2023149726A
Nested quantum annealing correction
US20170364362A1