Data processing device, program, and data processing method

The data processing device adjusts coefficients in the MCMC search for combinatorial optimization problems, addressing inefficiencies caused by inappropriate constraint weights, enhancing search efficiency by reducing constraint violations and promoting state transitions.

JP2025114234APending Publication Date: 2025-08-05FUJITSU LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024008804
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-24
Publication Date
2025-08-05

AI Technical Summary

Technical Problem

Inappropriate values of coefficients representing the weights of constraints in Markov Chain Monte Carlo (MCMC) search for combinatorial optimization problems lead to poor search efficiency, either due to increased constraint-violating solutions or reduced state transitions.

Method used

A data processing device and method that adjusts the coefficients corresponding to constraint conditions based on the evaluation function's second-order cost term and first-order cost term, increasing or decreasing the coefficients when constraint violations occur or improve the evaluation function's value, respectively.

Benefits of technology

Improves the efficiency of searching for solutions to combinatorial optimization problems by reducing constraint violations and promoting state transitions, thus optimizing the search process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025114234000001_ABST
    Figure 2025114234000001_ABST
Patent Text Reader

Abstract

To provide a data processing device, a program, and a data processing method that improve efficiency of searching for a solution to a combinatorial optimization problem.SOLUTION: A storage unit 11 stores evaluation function information of an evaluation function for a combinatorial optimization problem expressed as a sum of a second-order cost term and a first-order cost term which is a sum of a plurality of constraint terms weighted by coefficients representing each weight of a plurality of constraint conditions. A processing unit 12 acquires the evaluation function information from the storage unit 11, and searches, on the basis of the evaluation function information, for a solution to the combinatorial optimization problem and increases, when there is a first constraint condition among the plurality of constraint conditions that is violated at a first time point during search for a solution, a value of the coefficient corresponding to a first constraint condition; and determines, when the plurality of constraint conditions are satisfied at the first time point, on the basis of a comparison result between a value of the second-order cost term at the first time point and a value of the evaluation function obtained before the first time point, whether to decrease or maintain the value of the coefficient corresponding to the plurality of constraint conditions.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a data processing device, a program, and a data processing method. [Background technology]

[0002] When searching for a solution to a combinatorial optimization problem, there is a method for converting the combinatorial optimization problem into an Ising model that represents the spin behavior of magnetic materials. The Ising model is represented by an Ising-type evaluation function that evaluates the solution to the combinatorial optimization problem. The Ising-type evaluation function includes multiple state variables (representing the state of the Ising model) and multiple weight values. In an Ising-type evaluation function, the state variables are binary variables that take on the values 0 or 1 (or -1 or +1). The state variables may also be expressed as bits. The value of the Ising-type evaluation function can also be considered the energy of the Ising model.

[0003] The Markov Chain Monte Carlo (MCMC) method is used to search for a solution. Hereinafter, searching for a solution using the MCMC method will be referred to as MCMC search. In MCMC search, a state transition is accepted with an acceptance probability for that state transition defined, for example, by the Metropolis method or the Gibbs method. At this time, state transitions that increase energy are also probabilistically allowed. Note that the greater the increase in energy, the lower the acceptance probability. Types of MCMC methods include simulated annealing and replica exchange. In this type of MCMC search, a search is made for the state of the Ising model where the value of the Ising-type evaluation function is minimized. The state where the smallest of the minimum values of the evaluation function is the optimal solution.

[0004] Incidentally, some combinatorial optimization problems have constraints that the solution must satisfy, and methods for performing searches that take constraints into consideration have been proposed (see, for example, Patent Documents 1 to 4). Constraints include inequality constraints, equality constraints, and absolute value constraints. An evaluation function that reflects constraints includes constraint terms whose values depend on whether or not the constraints are violated. The constraint terms are weighted by coefficients that represent the weights of the constraints. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Patent Publication No. 2021-089596 [Patent Document 2] Japanese Patent Publication No. 2022-047362 [Patent Document 3] US Patent Application Publication No. 2016 / 0217380 [Patent Document 4] Japanese Patent Application Publication No. 2023-149726 Summary of the Invention [Problem to be solved by the invention]

[0006] Inappropriate values of the coefficients representing the weights of the constraints may result in poor search efficiency in MCMC search. For example, if the values of the coefficients representing the weights of the constraints are small, the increase in energy when transitioning to a state that does not satisfy the constraints (hereinafter referred to as a constraint-violating solution) is small. In this case, constraint-violating solutions are more likely to occur, resulting in poor search efficiency. Conversely, if the values of the coefficients are large, state transitions are less likely to occur, resulting in poor search efficiency.

[0007] In one aspect, the present invention aims to provide a data processing device, a program, and a data processing method that can improve the efficiency of searching for a solution to a combinatorial optimization problem. [Means for solving the problem]

[0008] In one embodiment, there is provided a data processing device comprising: a memory unit that stores evaluation function information of an evaluation function for a combinatorial optimization problem represented by the sum of a second-order cost term and a first-order cost term, which is the sum of multiple constraint terms weighted by coefficients representing the weights of each of multiple constraint conditions; and a processing unit that acquires the evaluation function information from the memory unit, searches for a solution to the combinatorial optimization problem based on the evaluation function information, and, if there is a first constraint condition among the multiple constraint conditions that is causing a constraint violation at a first time point during the search for the solution, increases the value of the coefficient corresponding to the first constraint condition, and, if the multiple constraint conditions are satisfied at the first time point, determines whether to decrease or maintain the value of the coefficient corresponding to the multiple constraint conditions based on a result of comparing the value of the second-order cost term at the first time point with the value of the evaluation function obtained before the first time point.

[0009] Also, in one embodiment, a program is provided. Also, in one embodiment, a data processing method is provided. [Effects of the Invention]

[0010] In one aspect, the present invention can improve the efficiency of searching for a solution to a combinatorial optimization problem. [Brief explanation of the drawings]

[0011] [Figure 1] 1 illustrates an example of a data processing device and a data processing method according to a first embodiment; [Figure 2] FIG. 10 is a block diagram illustrating an example of hardware of a data processing device according to a second embodiment. [Figure 3] FIG. 2 is a block diagram illustrating an example of functions of a data processing device. [Figure 4] FIG. 10 is a diagram illustrating an example of a variable setting unit and a λk adjusting unit. [Figure 5] 10 is a flowchart illustrating the flow of an example of a data processing method. [Figure 6] 10 is a flowchart illustrating an example of the flow of a processing procedure for MCMC search. [Figure 7] FIG. 10 is a diagram illustrating another example of a data processing device. DETAILED DESCRIPTION OF THE INVENTION

[0012] Hereinafter, embodiments of the invention will be described with reference to the drawings. (First embodiment) FIG. 1 illustrates an example of a data processing device and a data processing method according to the first embodiment.

[0013] The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The storage unit 11 is a volatile storage device (for example, an electronic circuit such as a DRAM (Dynamic Random Access Memory)) or a non-volatile storage device (for example, an electronic circuit such as a flash memory, an HDD (Hard Disk Drive), etc.). The storage unit 11 may include an electronic circuit such as a register.

[0014] The storage unit 11 stores evaluation function information for an evaluation function for a combinatorial optimization problem having multiple constraints. The evaluation function (H(x)) for combinatorial optimization problems with multiple constraints can be expressed by the following formula (1).

[0015]

number

[0016] H(x) is sometimes called the total energy. In equation (1), E(x) is a quadratic cost term, and can be expressed, for example, by the following equation (2).

[0017]

number

[0018] The first item on the right side is the total state variable (x i) for all combinations of the two state variables, without omissions or overlaps, and multiplying the values of the two state variables (0 or 1) by the weight value (which represents the strength of the interaction between the two state variables). x i is the state variable with identification number i, x j is the state variable with identification number j, and W ij is a weight value that indicates the magnitude of the interaction between the state variables with identification numbers i and j. The two terms on the right side are the sum of the products of the bias coefficient and the state variable for each identification number. b i indicates the bias coefficient for the identification number = i.

[0019] Note that D represents a set of identification numbers for state variables. State variables can also be called decision variables. Equation (2) is sometimes called the aforementioned Ising-type evaluation function. In equation (1), P(x) is a first-order cost term expressed as the sum of multiple constraint terms, and can be expressed as the following equation (3).

[0020]

number

[0021] k represents the identification number of the constraint (or constraint term). k is a predetermined positive coefficient representing the weight of the constraint with identification number k. k Each constraint term is weighted by A. Note that A represents a set of identification numbers of constraint conditions.

[0022] g(h k ) is a penalty function that varies depending on the type of constraint. k g(h k ) can be considered as one constraint. k is a value used to identify the amount of constraint violation for the constraint with identification number k.

[0023] If the constraint is an inequality constraint, g(h k ) can be expressed by the following equation (4).

[0024]

number

[0025] In equation (4), max[0,h k ] is 0 and h k It is a function that outputs the larger value of W. ki is the x in the inequality constraint with identification number k. i is the coefficient (weight value) that represents the weight of b k denotes the bias coefficient for the inequality constraint with identification number k.

[0026] As shown in equations (1) to (3), H(x) is a function of the quadratic cost term (E(x)) and the coefficients (λ k ) and a first-order cost term (P(x)), which is the sum of multiple constraint terms weighted by

[0027] The evaluation function information stored in the storage unit 11 includes, for example, W in equation (2) ij , b i , λ in Eq. (3) k The value of W in Eq. (4) ki , b k The storage unit 11 includes the state variable (x i The storage unit 11 may store the values of H(x), H(x), E(x), and P(x). The storage unit 11 may store M auxiliary variables (x k ) may be stored. In the following explanation, k In the following description, x is set to 1 when the constraint of the identification number = k is violated and set to 0 when the constraint is satisfied, but this is not limiting. k It is also possible to use a spin variable with a value of -1 or +1 as

[0028] Furthermore, the storage unit 11 stores a plurality of x i h represents the change in E(x) when each value of i In the following, hi is the first local field, k is sometimes called the second local field. h i and h k If you remember the initial value of b in equation (2), i and b in equation (3) k The storage unit 11 does not need to store λ. k The increase in Δλ when adjusting k+ , decrease amount Δλ k- Δλ may be stored. k+ , Δλ k- Each of these can be set to a different value for each constraint.

[0029] The storage unit 11 may also store various data such as calculation conditions when the processing unit 12 executes a data processing method described below. When the processing unit 12 executes part or all of the processing of the data processing method described below using software, the storage unit 11 stores a program for executing the processing.

[0030] 1 can be realized by a hardware processor such as a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), etc. Alternatively, the processing unit 12 may be realized by an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

[0031] The processing unit 12 acquires the evaluation function information from the storage unit 11 and searches for a solution to the combinatorial optimization problem based on the evaluation function information. For example, a state (combination of values of state variables) where H(x) shown in equation (1) is minimized is searched for as a solution. The state where H(x) is the smallest of the minimum values becomes the optimal solution. Note that by changing the signs of the terms on the right side of equation (1), the processing unit 12 can also search for a state where the value of H(x) is maximized (in this case, the state where H(x) is maximized becomes the optimal solution).

[0032] FIG. 1 shows an example of the flow of processing by the processing unit 12. In the following, the auxiliary variable (x k ) is shown below, but x k Instead of h k Also, here, E(x), P(x), h i , h k , x k As the initial value of i (x i =x1~x N ) is stored in the storage unit 11.

[0033] When searching for a solution using the MCMC method, the processing unit 12 performs the following steps S1 to S4. First, the processing unit 12 performs a solution search process using the MCMC method (MCMC search) (step S1). The search process includes, for example, flip determination of state variables (step S1a), x i , h i , update E(x) (step S1b), flip decision of auxiliary variables (step S1c), x k , h k , h i , P(x), and H(x) (step S1d).

[0034] The process of step S1a is performed, for example, as follows. The processing unit 12 calculates N x i Whether or not to allow a change in the value of one of the state variables (hereafter referred to as the flip candidate state variable) is determined by h i The processing unit 12 selects the state variables of the flip candidates, for example, randomly or in a predetermined order. i can be expressed by the following equation (5).

[0035]

number

[0036] However, in this embodiment, h i As, xi The value that reflects not only the change in E(x) but also the change in P(x) is used. i can be expressed by the following equation (6).

[0037]

number

[0038] In equation (6), Δg(h k ,W ki Δx i ) is expressed by the following equation (7), and the change in the state variable of the flip candidate, Δx i And the aforementioned h k , W ki It is a quantity that can be calculated from

[0039]

number

[0040] Also, h i x indicates whether each constraint is violated or not. k h expressed by the following equation (8) using i can also be used.

[0041]

number

[0042] The processing unit 12 calculates the amount of change (ΔE) in E(x) when the value of the state variable of the flip candidate changes. For example, x i ΔE when the value of i is the h shown in equation (6) or equation (8). i Based on ΔE i =-h i Δx i It can be calculated by the formula:

[0043] Next, the processing unit 12 determines whether or not to allow a change in the value of the state variable of the flip candidate (whether or not a flip is possible) based on the comparison result between max(0, ΔE) and a predetermined value. In the MCMC search, the predetermined value is, for example, a noise value obtained based on a random number and a temperature parameter value. For example, -log(rand)×T, which is an example of a noise value obtained based on a uniform random number (rand) greater than 0 and less than 1 and a temperature parameter (T), can be used as the predetermined value. In this case, the processing unit 12 determines that a change in the value of the state variable of the flip candidate is allowed (whether a flip is possible) when max(0, ΔE)<-log(rand)×T.

[0044] The process of step S1b is performed, for example, as follows. When the processing unit 12 determines that the flip is possible, x i In addition to the state variables that are judged to be flippable, N h i , E(x). If the processing unit 12 determines that the flip is not possible, it updates x i , h i , E(x) is not updated. The processing unit 12 updates E(x) by adding ΔE to the original E(x). j If it is determined that the flip is possible, the original h for each of the N state variables is i , Δh i =W ij Δx j By adding N h i Update the following.

[0045] The process of step S1c is performed, for example, as follows. The processing unit 12 calculates M x k The processing unit 12 determines whether to allow a change in the value of one of the auxiliary variables (hereinafter referred to as the flip candidate auxiliary variable) based on the amount of change (ΔP) in P(x) when the value of the flip candidate state variable changes. The processing unit 12 selects the auxiliary variables of the flip candidate, for example, randomly or in a predetermined order. k ΔP when i can be expressed by the following equation (9).

[0046]

number

[0047] Next, the processing unit 12 determines whether or not a change in the value of the auxiliary variable of the flip candidate is permitted (whether or not flipping is permitted) based on the comparison result between ΔP and a predetermined value. The predetermined value may be a fixed value (for example, 0) or log(rand)×T. For example, if ΔP>0 or ΔP>log(rand)×T, the processing unit 12 determines that the auxiliary variable of the flip candidate is flippable.

[0048] When the constraint condition of identification number = k is no longer satisfied due to a change in the value of the state variable caused by the processing of step S1b, ΔP becomes a positive value. log(rand) × T is a negative value. Therefore, by using the above judgment formula, x k is allowed to vary from 0 to 1.

[0049] In addition, if an auxiliary variable is not used, the processing of step S1c may be a processing to determine whether or not the state of whether the constraint condition of identification number = k is satisfied is changeable based on the result of comparing ΔP with, for example, the aforementioned predetermined value.

[0050] The process of step S1d is performed, for example, as follows. The processing unit 12 selects the flip candidate x k If it is determined that flipping is possible, then x k , h k , h i , P(x), and H(x). If the processing unit 12 determines that the flip is not possible, k , h k , h i , P(x), H(x) are not updated.

[0051] The processing unit 12 calculates the state variable x in the process of step S1a. j If it is determined that flipping is possible, h k , Δh k =Wkj Δx j By adding h k The processing unit 12 updates h i When is expressed as in equation (6), h before and after the update k Based on N h i is updated according to the following equation (10).

[0052]

number

[0053] In equation (10), h k (old) is the h before update k In addition, when i=j, h i does not change, so no update is required. The processing unit 12 is i When is expressed as in equation (8), the original h for each of the N state variables is i , Δh i =-λ k W ki Δx k By adding h i Update.

[0054] Furthermore, the processing unit 12 updates P(x) by adding ΔP to the original P(x). Also, the processing unit 12 updates H(x) by adding ΔH to the original H(x). x i When the value of ΔH changes i is ΔH i = ΔE i +ΔP i This can be expressed as:

[0055] The processing unit 12 may perform steps S1c and S1d after repeating steps S1a and S1b a predetermined number of times. Alternatively, the processing unit 12 may not perform steps S1c and S1d until the state variable of the flip candidate is determined to be flippable in step S1a and updated in step S1b.

[0056] During the above search process, the processing unit 12 k The processing unit 12 determines whether it is time to adjust the solution (step S2). For example, the processing unit 12 determines that it is time to adjust the solution every time the above search process is performed a predetermined number of times. If the processing unit 12 determines that it is not time to adjust the solution, it repeats the process from step S1. If the processing unit 12 determines that it is time to adjust the solution at a certain point during the search for a solution, it performs the following process.

[0057] The processing unit 12 determines whether or not a constraint violation occurs in any of the M constraint conditions (step S3). For example, if the value of P(x) is 0, the processing unit 12 determines that all of the M constraint conditions are satisfied, and if the value of P(x) is greater than 0, the processing unit 12 determines that a constraint violation occurs in any of the M constraint conditions. If the processing unit 12 determines that a constraint condition exists that causes a constraint violation, it performs the processing of step S4, and if it determines that all of the M constraint conditions are satisfied, it performs the processing of step S5.

[0058] In the process of step S4, the processing unit 12 calculates λ corresponding to the constraint condition in which a constraint violation occurs among the M constraint conditions. k For example, the processing unit 12 individually increases the value of λ k to Δλ k+ By adding λ k Then, the process of step S7 is performed.

[0059] In the process of step S5, the processing unit 12 calculates λ k For example, the processing unit 12 compares E(x) at the adjustment timing λ with H(x) obtained before the current adjustment timing to determine whether E(x) has improved. k The E(x) at the adjustment timing is the minimum value of H(x) so far (hereinafter referred to as H best If E(x) is smaller than the

[0060] When it is determined that E(x) has improved, the processing unit 12 k The process from step S1 is repeated while maintaining the value of E(x), and if it is determined that E(x) has not improved, the process proceeds to step S6.

[0061] In the process of step S6, the processing unit 12 calculates λ corresponding to the M constraints. k , i.e., all λ k For example, the processing unit 12 reduces the value of each λ k From each λ k Δλ corresponding to k- By subtracting , the total λ k Decrease the value of

[0062] In addition, Δλ k+ and Δλ k- For example, the value of the original λ k A value such as 0.1 times Δλ is set appropriately. k+ and Δλ k- The value of λ k The initial value of may be changed during the MCMC search. k The method of adjusting λ is not limited to the above method. k The adjustment may be made by multiplying by a predetermined value (for example, 1.1 or 0.9).

[0063] After the process of step S6, the process of step S7 is performed. In the process of step S7, the processing unit 12 corrects P(x). The correction of P(x) is performed by λ k The change in Δλ k This can be done, for example, based on the following equation (11):

[0064]

number

[0065] Δλ k is, for example, the aforementioned Δλ k+ or Δλ k- Also, U krepresents the upper limit of the resource amount, and U k =-b k is. The correction of P(x) is x k It can also be performed based on the following equation (12) without using

[0066]

number

[0067] After the process of step S7, the process is repeated from step S1. In the above description, an example is shown in which flip candidate state variables are selected one by one from among the N state variables, and the processes of steps S1a and S1b are performed, but this is not limiting. The processes of steps S1a and S1b may be performed in parallel for multiple (e.g., all N) state variables. In this case, when there are multiple state variables whose values are allowed to change, the processing unit 12 selects the state variable whose value is to be changed randomly or according to a predetermined rule.

[0068] Similarly, in the above description, an example was given in which flip candidate auxiliary variables are selected one by one from among the M state variables, and the processes of steps S1c and S1d are performed, but this is not limiting. The processes of steps S1c and S1d may be performed in parallel for multiple (e.g., all M) state variables. In this case, when there are multiple auxiliary variables whose values are allowed to change, the processing unit 12 selects the auxiliary variable whose value is to be changed randomly or according to a predetermined rule.

[0069] When performing the simulated annealing method, for example, the processing unit 12 decreases the value of the temperature parameter (T) described above in accordance with a predetermined temperature parameter change schedule each time the flip determination for the state variables is repeated a predetermined number of times. Then, the processing unit 12 outputs the state obtained when the flip determination is repeated a predetermined number of times as the calculation result of the combinatorial optimization problem (for example, displays it on a display device not shown). Note that the processing unit 12 performs the above-mentioned H best and Hbest The state (combination of values of N state variables) when the flip determination is obtained may be stored in the storage unit 11. In this case, the processing unit 12 stores the stored H best The state corresponding to the above may be output as the calculation result.

[0070] When the processing unit 12 performs the replica exchange method, the processing unit 12 repeats the above-described steps S1 to S7 for each of a plurality of replicas, each of which has a different value of T set. Then, the processing unit 12 performs replica exchange every time the flip determination for the state variables is repeated a predetermined number of times. For example, the processing unit 12 selects two replicas having adjacent values of T, and exchanges the values of each state variable and each auxiliary variable between the two selected replicas with a predetermined exchange probability based on the energy difference between the replicas or the difference in the value of T. Note that the value of T may be exchanged between the two replicas instead of the values of each state variable and each auxiliary variable. Alternatively, the processing unit 12 may exchange H best and H best The storage unit 11 stores the state when the flip determination is obtained. Then, the processing unit 12 stores the stored H best Among all replicas, the smallest H best The state corresponding to is output as the calculation result.

[0071] As described above, the data processing device 10 has a storage unit 11 and a processing unit 12. The storage unit 11 stores evaluation function information. The evaluation function information includes a quadratic cost term (E(x)) and a coefficient (λ) representing the weight of each of a plurality of constraint conditions. k ), and a first-order cost term (P(x)), which is the sum of multiple constraint terms weighted by λ(x). The processing unit 12 acquires the evaluation function information from the storage unit 11, and searches for a solution to the combinatorial optimization problem based on the evaluation function information. Then, at a first time point (the aforementioned adjustment timing) during the search for a solution, if there is a first constraint condition among the multiple constraint conditions that is causing a constraint violation, the processing unit 12 adjusts λ corresponding to the first constraint condition. kIf all of the constraints are satisfied at the first time point, the processing unit 12 calculates a value of E(x) at the first time point and a value of H(x) obtained before the first time point (for example, H best ) based on the comparison result. k Decide whether to decrease or maintain the value of

[0072] As shown above, λ k By adjusting , the solution search status (for example, whether E(x) is improving or not) and the constraint satisfaction status are reflected. k This allows for appropriate adjustment, thereby improving the efficiency of searching for solutions to combinatorial optimization problems.

[0073] For example, λ according to this embodiment k According to the adjustment method of

[0046] , if there is a constraint condition that is violated among multiple constraint conditions at the time of adjustment, the λ corresponding to that constraint condition is k This increases the value of λ. This makes it possible to suppress the occurrence of solutions that violate the constraint conditions, improving the efficiency of searching for solutions. k According to the adjustment method, when all of the constraints are satisfied, λ is calculated based on the comparison result between the value of E(x) at the adjustment timing and the value of H(x) obtained before the adjustment timing. k For example, if the value of E(x) at the adjustment timing is H best If the above condition is satisfied, the λ corresponding to multiple constraints is k By reducing the value of H, the state transition is promoted and the search efficiency is improved. best If it is smaller than the current λ k The current value of λ k This is because the value of is likely to be appropriate.

[0074] In addition, λ kThe adjustment method of is that when multiple constraints are all satisfied (no constraint violations occur), all λ k Since the amount of calculation is not uniformly reduced, the amount of calculation can be reduced.

[0075] In addition, λ k The adjustment method is to make sure that the value of E(x) is H best Then, for all λ k The λ in this embodiment is not reduced uniformly. k The adjustment method of E(x) and, for example, H best Based on the comparison results of all λ k This determines whether to decrease or maintain the value of λ for a given constraint, even if that constraint is violated. k This reduces the possibility of solutions violating the constraints, and suppresses the deterioration of search efficiency.

[0076] Also, λ k If is adjusted, λ k Since P(x) is corrected based on the change in λ k This can suppress the occurrence of calculation errors caused by changing λ. k When is adjusted, N h i However, by correcting P(x) as described above instead, the amount of calculation can be reduced.

[0077] Such a data processing device 10 is expected to be useful as a means of reducing the amount of calculations and hardware required to solve various problems in modern society that can be converted into combinatorial optimization problems with constraints, and to efficiently obtain accurate solutions.

[0078] (Second embodiment) FIG. 2 is a block diagram illustrating an example of hardware of a data processing device according to the second embodiment.

[0079] The data processing device 20 is, for example, a computer, and includes a processor 21, a RAM (Random Access Memory) 22, a HDD 23, a GPU 24, an input interface 25, a media reader 26, and a communication interface 27. The above units are connected to a bus.

[0080] The processor 21 is a processor such as a GPU or CPU that includes an arithmetic circuit that executes program instructions. The processor 21 loads at least a portion of the program and data stored in the HDD 23 into the RAM 22 and executes the program. The processor 21 may include multiple processor cores. The data processing device 20 may also include multiple processors. A set of multiple processors (multiprocessor) may also be called a "processor."

[0081] The RAM 22 is a volatile semiconductor memory that temporarily stores programs executed by the processor 21 and data used in calculations by the processor 21. Note that the data processing device 20 may include a type of memory other than the RAM 22, or may include multiple memories.

[0082] The HDD 23 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The programs include, for example, a program that causes the data processing device 20 to execute a process for searching for a solution to a combinatorial optimization problem. Note that the data processing device 20 may also be equipped with other types of storage devices, such as a flash memory or an SSD (Solid State Drive), or may be equipped with multiple non-volatile storage devices.

[0083] The GPU 24 outputs an image to a display 24a connected to the data processing device 20 in accordance with an instruction from the processor 21. The display 24a may be a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display (PDP: Plasma Display Panel), an organic EL (OEL: Organic Electro-Luminescence) display, or the like.

[0084] The input interface 25 receives an input signal from an input device 25a connected to the data processing device 20 and outputs the signal to the processor 21. The input device 25a may be a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, or a button switch. Multiple types of input devices may be connected to the data processing device 20.

[0085] The medium reader 26 is a reading device that reads programs and data recorded on a recording medium 26a. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), or a semiconductor memory can be used as the recording medium 26a. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).

[0086] The medium reader 26 copies programs and data read from the recording medium 26a to another recording medium such as the RAM 22 or the HDD 23. The read programs are executed by the processor 21, for example. The recording medium 26a may be a portable recording medium and may be used to distribute programs and data. The recording medium 26a and the HDD 23 may also be referred to as computer-readable recording media.

[0087] The communication interface 27 is connected to a network 27a and communicates with other information processing devices via the network 27a. The communication interface 27 may be a wired communication interface connected to a communication device such as a switch via a cable, or may be a wireless communication interface connected to a base station via a wireless link.

[0088] Next, the functions and processing procedures of the data processing device 20 will be described. FIG. 3 is a block diagram illustrating an example of functions of the data processing device. The data processing device 20 has an input unit 31, a control unit 32, a search unit 33, and an output unit 34. These units perform processing similar to that performed by the processing unit 12 shown in Fig. 1. Note that various pieces of information such as evaluation function information stored in the storage unit 11 shown in Fig. 1 are stored, for example, in various holding units (to be described later) included in the search unit 33. In other words, the search unit 33 may include the functions of the storage unit 11 shown in Fig. 1. However, the data processing device 20 may have a functional block corresponding to the storage unit 11 separate from the search unit 33.

[0089] The input unit 31, the control unit 32, the search unit 33, and the output unit 34 can be implemented, for example, using a program module executed by the processor 21 or a storage area (register or cache memory) within the processor 21. The search unit 33 may also be implemented using a storage area secured in the RAM 22 or the HDD 23.

[0090] The input unit 31 receives input of, for example, initial values of N state variables, evaluation function information, and calculation conditions. The evaluation function information is, for example, W ij ya b i In addition, W in Eq. (4) ki , b k The calculation conditions include, for example, the number of replicas when the replica exchange method is performed, the replica exchange period, the temperature parameter values to be set for each replica, the temperature parameter change schedule when the simulated annealing method is performed, and the calculation termination conditions.

[0091] Furthermore, the calculation conditions are: k It includes parameters for adjusting λ. k The parameters for adjusting are, for example, λ k The initial value of (λ kinit ), λ k The increase in (Δλ k+ ) and the amount of decrease (Δλ k- ), λ kinit and Δλ k+ and Δλ k- Variable (T1) that indicates the interval to set, λ k There is a variable (T0) that indicates the adjustment interval. Note that T1>T0.

[0092] Furthermore, the input unit 31 calculates h i The initial value of and h in Eq. (3) k When M auxiliary variables are used, the input unit 31 may accept input of the initial values of the M auxiliary variables.

[0093] This information may be input by the user operating the input device 25a, or may be input via the recording medium 26a or the network 27a. The control unit 32 controls each unit of the data processing device 20 to execute the processes described below.

[0094] The search unit 33, under the control of the control unit 32, repeats the MCMC search to search for a state where the value of the evaluation function (total energy) is minimized. The output unit 34 outputs the search result (calculation result) by the search unit 33.

[0095] The output unit 34 may, for example, output the calculation results to the display 24a for display, or may transmit the results to another information processing device via the network 27a, or may store the results in an external storage device.

[0096] The search unit 33 includes a variable setting unit 33a, a state variable holding unit 33b, an auxiliary variable holding unit 33c, a weight value holding unit 33d, and a λ k The search unit 33 further includes an adjustment unit 33e.i Calculation section 33f, h k The system includes a calculation unit 33g, a ΔE calculation unit 33h, a ΔP calculation unit 33i, transition possibility determination units 33j and 33k, a selection unit 33l, an update unit 33m, an energy calculation unit 33n, a constraint violation detection unit 33o, and a ΔH calculation unit 33p.

[0097] The variable setting unit 33a sets various variables (λ k and the above λ k The variable setting unit 33a holds parameters for adjusting λ and sets them in each unit. k E(x), which is used to determine whether to increase or decrease H best The variable setting unit 33a may also hold P(x), which is used by the constraint violation detection unit 33o to detect the occurrence of a constraint violation.

[0098] The state variable holding unit 33b holds N state variables (x i ) is stored in the state variable storage unit 33b. i The change in (Δx i ) is output. The auxiliary variable holding unit 33c holds M auxiliary variables. If the data processing device 20 does not use auxiliary variables, the auxiliary variable holding unit 33c may be omitted.

[0099] The weight value storage unit 33d stores the weight values (W ij ) and each of the N state variables and the x in the M inequality constraints i The weight value (W ki ) is held. W ij can be expressed as an N-by-N matrix, and W ki can be expressed as a matrix with M rows and N columns. Note that it is not necessary to retain weight values between the M inequality constraints and state variables among the N state variables that do not affect any of the M inequality constraints.

[0100] λ k The adjustment unit 33e adjusts λ every time the search process (MCMC search) is performed T0 times. kThe value of λ is adjusted. k The adjusting unit 33e adjusts the λ k is supplied to the variable setting unit 33a, and Δλ k is supplied to update section 33m.

[0101] h i The calculation unit 33f calculates N h i and adjusts h according to the changes in the state variables and auxiliary variables. i Update. h k The calculation unit 33g calculates M h k and changes the value of the state variable k Update.

[0102] The ΔE calculation unit 33h calculates ΔE=-h i Δx i Calculate ΔE expressed by the following formula. The ΔP calculation unit 33i calculates ΔP expressed by the above-mentioned equation (9). The transition possibility determination unit 33j performs a flip determination process to determine whether or not to allow a change in the value of the state variable of the flip candidate based on the comparison result between ΔE output by the ΔE calculation unit 33h and a predetermined value. The predetermined value is, for example, a noise value obtained based on a random number and a temperature parameter value. If max(0, ΔE)<-log(rand)×T, the transition possibility determination unit 33j determines that the change in the value of the state variable of the flip candidate is allowed (flip is allowed).

[0103] The transition possibility determination unit 33k performs a flip determination process to determine whether or not to allow a change in the value of the auxiliary variable of the flip candidate based on the comparison result between ΔP output by the ΔP calculation unit 33i and a predetermined value. The predetermined value may be a fixed value (for example, 0) or log(rand)×T. For example, if ΔP>0 or ΔP>log(rand)×T, the transition possibility determination unit 33k determines that the auxiliary variable of the flip candidate is flippable.

[0104] When making a flip determination for a state variable, the selection unit 33l selects and outputs the determination result of the transition possibility determination unit 33j, and when making a flip determination for an auxiliary variable, the selection unit 33l selects and outputs the determination result of the transition possibility determination unit 33k.

[0105] The update unit 33m sends the identification numbers of the state variables determined to be flippable to the state variable storage unit 33b and changes the values of the state variables. The update unit 33m also sends the identification numbers of the auxiliary variables determined to be flippable to the auxiliary variable storage unit 33c and changes the values of the auxiliary variables.

[0106] Furthermore, when the state variable of the flip candidate is determined to be flippable, the update unit 33m updates h i Calculation section 33f and h k N h in the calculation unit 33g i and M h k When the auxiliary variable of the flip candidate is determined to be flippable, the updating unit 33m updates h i N h i Update.

[0107] Furthermore, when it is determined that the state variable or the auxiliary variable is flippable, the updating unit 33m causes the energy calculation unit 33n to update the value of E(x), P(x), or H(x). k When is adjusted, Δλ is input to the energy calculation unit 33n. k and correct P(x).

[0108] The energy calculation unit 33n holds the values of E(x), P(x), and H(x), and updates these values when an update instruction is received from the update unit 33m. Furthermore, when an instruction to correct P(x) is received from the update unit 33m, the energy calculation unit 33n updates Δλ k Based on this, P(x) is corrected according to the above-mentioned equation (11) or equation (12).

[0109] In addition, the energy calculation unit 33n calculates H best and the updated H(x) is H bestIf H(x) is smaller than the threshold and no constraints are violated when H(x) is obtained, then H(x) is used as a new H best Let's say.

[0110] The constraint violation detection unit 33o detects a constraint violation based on P(x) held in the variable setting unit 33a. When P(x)>0, the constraint violation detection unit 33o determines that a constraint violation has occurred in any of the M constraint conditions, and outputs a signal (Flag) indicating that a constraint violation has occurred. In the following, it is assumed that the constraint violation detection unit 33o outputs Flag=1 when P(x)>0, and outputs Flag=0 when P(x)=0 (i.e., no constraint violation has occurred).

[0111] The ΔH calculation unit 33p receives ΔE from the ΔE calculation unit 33h and ΔP from the ΔP calculation unit 33i, and calculates and outputs ΔH=ΔE+ΔP. The calculated ΔH is supplied to the energy calculation unit 33n to update H(x).

[0112] Figure 4 shows the variable setting section and λ k 4 is a diagram illustrating an example of an adjustment unit, and FIG. 4 illustrates an example in which an auxiliary variable is used. The variable setting unit 33a sets λ k An adjustment parameter storage unit 33a1, a state storage unit 33a2, an energy storage unit 33a3, λ k It has a holding portion 33a4. k An adjustment parameter storage unit 33a1, a state storage unit 33a2, an energy storage unit 33a3, λ k The holding unit 33a4 can be realized using a memory circuit such as a register.

[0113] λ k The adjustment unit 33e adjusts λ k Adjustment determination unit 33e1, λ k Adjustment amount setting section 33e2, λ k It has a setting section 33e3. λ k The adjustment parameter storage unit 33a1 stores T0, T1 (>0), λ kinit , Δλ k+ , Δλ k-λ k The adjustment parameter storage unit 33a1 stores T0 as λ k The adjustment determination unit 33e1 receives T1, λ kinit , Δλ k+ , Δλ k- λ k The adjustment amount setting unit 33e2 receives the adjustment amount.

[0114] The state holding unit 33a2 holds the values of the state variables and auxiliary variables. When the state holding unit 33a2 receives the identification number i of the state variable determined to be flippable from the update unit 33m, the state holding unit 33a2 updates the state variable (x i When the state holding unit 33a2 receives the identification number k of the auxiliary variable determined to be flippable from the update unit 33m, the state holding unit 33a2 changes the value of the auxiliary variable (x k The state holding unit 33a2 changes the value of M x k λ k The setting unit 33e3 receives the data.

[0115] The energy storage unit 33a3 receives E(x), P(x), and H from the energy calculation unit 33n. best The energy storage unit 33a3 receives and stores E(x), H best λ k The energy storage unit 33a3 supplies P(x) to the constraint violation detection unit 33o.

[0116] λ k The holding unit 33a4 holds λ under all constraint conditions. k Then, λ k The holding portion 33a4 is k At the adjustment timing of λ k The λ calculated by the setting unit 33e3 k Hold (k∈M).

[0117] λ k The adjustment determination unit 33e1 adjusts λ every time the MCMC search is performed T0 times. k It is determined that it is time to adjust the λ kThe adjustment amount setting unit 33e2 adjusts λ every time the MCMC search is performed T1 times. kinit , Δλ k+ , Δλ k- λ k This is set in the setting unit 33e3. k is initialized.

[0118] λ k When the Flag output by the constraint violation detection unit 33o is Flag=1, the setting unit 33e3 sets M x k Of which, x k Identify the constraints for which λ = 1 (constraint violation occurs). k (λ k The value of Δλ k+ Add.

[0119] λ k When the Flag output by the constraint violation detection unit 33o is Flag=0, the setting unit 33e3 sets E(x) and H best Then, λ k The setting unit 33e3 determines whether E(x) is H best If greater than or equal to λ, then each λ k From each λ k Δλ corresponding to k- By subtracting all M λ k Decrease the value of λ k The setting unit 33e3 determines whether E(x) is H best If M λs are smaller than k Maintain the value of

[0120] λ k The setting unit 33e3 sets λ k If the value of Δλ is adjusted, k- and Δλ k+ The value used for adjustment is Δλ k Output as In the data processing device 20, when an auxiliary variable is not used, the variable setting unit 33a sets x k Instead of h k In that case, λ k The setting unit 33e is kIf k is greater than 0, it is determined that a constraint violation has occurred in the constraint condition for identification number=k.

[0121] An example of the processing procedure (data processing method) of the data processing device 20 will be described below. FIG. 5 is a flowchart showing an example of a data processing method. k ) is shown below, but x k Instead of h k can also be used.

[0122] Step S10: The input unit 31 receives input of the initial values of N state variables, the initial values of M auxiliary variables, evaluation function information, and calculation conditions. Step S11: The control unit 32 performs an initialization process. In the initialization process, for example, the following process is performed. The control unit 32 stores the initial values of N state variables in the variable setting unit 33a and the state variable storage unit 33b, and stores the initial values of M auxiliary variables in the variable setting unit 33a and the auxiliary variable storage unit 33c. The control unit 32 also stores the weight values included in the evaluation function information in the weight value storage unit 33d, and stores the λ k The parameter for adjusting the above is stored in the variable setting unit 33a.

[0123] Furthermore, the control unit 32 calculates h shown in equation (6) or equation (8) based on the initial values of the N state variables, the initial values of the M auxiliary variables, and the evaluation function information. i The initial value of h shown in Eq. (4) k The control unit 32 calculates the initial value of the calculated N h i The initial value of h i The M calculated h k The initial value of h k The calculation unit 33g stores the result.

[0124] Furthermore, based on the initial values of the N state variables, the initial values of the M auxiliary variables, and the evaluation function information, the control unit 32 calculates, for example, the initial value of E(x) shown in equation (2), the initial value of P(x) shown in equation (3), and the initial value of H(x) shown in equation (1). The control unit 32 causes the energy calculation unit 33n and the energy storage unit 33a3 to store the calculated initial values of E(x) and P(x).

[0125] Furthermore, in the initialization process, the number of replicas=R and the like are set in the variable setting unit 33a. Step S12: The control unit 32 sets t = 0. t is a variable representing the number of MCMC searches. In the following example, the number of MCMC searches is counted as one when an MCMC search is performed for each of the N state variables.

[0126] Step S13: The control unit 32 sets r to 0. r is a variable representing the replica number. Step S14: The control unit 32 sets i to 1, where i is the identification number of the state variable. Step S15: λ k λ of the adjustment unit 33e k The adjustment amount setting unit 33e2 sets λ kinit and Δλ k+ and Δλ k- It is determined whether the variable (T1) indicating the interval for setting t is divisible by t (whether (t%T1)=0). If it is determined that (t%T1)=0, the process of step S16 is performed, and if it is determined that t%T1=0 is not, the process of step S17 is performed.

[0127] Step S16: λ k The adjustment amount setting unit 33e2 sets the λ of the replica with replica number r (hereinafter referred to as replica r). kinit , Δλ k+ , Δλ k- The setting of λ k This is performed on the setting unit 33e3. k is λ kinit It is initialized to Δλ k+ , Δλ k- The value of can be changed.

[0128] Step S17: The search unit 33 performs an MCMC search. The procedure for the MCMC search will be described later (see FIG. 6). Step S18: λ k λ of the adjustment unit 33e k The adjustment determination unit 33e1 determines λ k It is determined whether the variable (T0) indicating the adjustment interval is divisible by t (whether (t%T0)=0). If it is determined that t%T0=0, the process of step S19 is performed, and if it is determined that t%T0=0 is not true, the process of step S27 is performed.

[0129] Step S19: The constraint violation detection unit 33o determines whether P(x) > 0. If it is determined that P(x) > 0, k is set to 1 (not shown), and then the process of step S20 is performed. If it is determined that P(x) > 0 does not hold, the process of step S24 is performed.

[0130] Step S20: λ k The setting unit 33e3 is k Determine whether x = 1. k If it is determined that x = 1, the process of step S21 is performed. k If it is determined that λ is not 1, the process of step S22 is performed. k The setting unit 33e3 is k Instead of checking whether h = 1, k You can also check whether h is >0. k If it is determined that h is greater than 0, the process of step S21 is performed. k If it is determined that the value is not >0, the process of step S22 is carried out.

[0131] Step S21: λ k The setting unit 33e3 sets the original λ k to Δλ k+ By adding λ k Adjust. Step S22: The control unit 32 determines whether or not k = M. If it is determined that k = M, the process of step S26 is performed, and if it is determined that k = M is not true, the process of step S23 is performed.

[0132] Step S23: The control unit 32 sets k to k + 1. Thereafter, the process from step S20 is repeated. Step S24: λ k λ of the adjustment unit 33e k The setting unit 33e3 determines whether E(x)≧H best Determine whether E(x)≧H best If it is determined that E(x)≧H, the process of step S25 is performed. best If it is determined that this is not the case, the process of step S27 is carried out.

[0133] Step S25: λ k The setting unit 33e3 sets the total λ k From Δλ k- By subtracting λ k Adjust. Step S26: Correction of P(x) The energy calculation unit 33n corrects P(x) according to, for example, equation (11).

[0134] Step S27: The control unit 32 determines whether or not i = N. If it is determined that i = N, the process of step S29 is performed, and if it is determined that i = N is not true, the process of step S28 is performed.

[0135] Step S28: The control unit 32 sets i to i + 1. After that, the process from step S15 is repeated. Step S29: The control unit 32 determines whether r=R-1. If it is determined that r=R-1, the process of step S31 is performed, and if it is determined that r=R-1 is not true, the process of step S30 is performed.

[0136] Step S30: The control unit 32 sets r to r + 1. After that, the process from step S14 is repeated. Step S31: The control unit 32 determines whether or not a termination condition is satisfied. For example, the control unit 32 determines whether or not the number of MCMC searches (t) has reached the maximum number of times, or whether or not H best If it is determined that the process satisfies the predetermined termination condition, the process proceeds to step S33, and if it is determined that the process does not satisfy the predetermined termination condition, the process proceeds to step S32.

[0137] Step S32: The control unit 32 sets t to t + 1. Thereafter, the processing from step S13 is repeated. Step S33: The output unit 34 outputs the calculation result. This ends the process. The output unit 34 may, for example, output the calculation result to be displayed on the display 24a, transmit the calculation result to another information processing device via the network 27a, or store the calculation result in an external storage device.

[0138] When the simulated annealing method is performed, for example, the control unit 32 decreases the value of the temperature parameter (T) according to a predetermined temperature parameter change schedule each time the MCMC search for the state variables is repeated a predetermined number of times. Then, under the control of the control unit 32, the output unit 34 outputs, for example, the H of each replica obtained when the MCMC search is repeated the maximum number of times. best The state corresponding to the smallest value among these is output as the calculation result.

[0139] When the replica exchange method is used, replica exchange is performed every time the MCMC search is repeated a predetermined number of times. For example, the control unit 32 selects two replicas having adjacent values of T, and exchanges the value of T or the value of each state variable and each auxiliary variable between the two selected replicas with a predetermined exchange probability based on the difference in H(x) between the replicas or the difference in the value of T. Then, under the control of the control unit 32, the output unit 34 outputs, for example, the H(x) of each replica obtained when the MCMC search is repeated the maximum number of times. best The state corresponding to the smallest value among these is output as the calculation result.

[0140] FIG. 6 is a flowchart showing an example of the procedure for the MCMC search. Step S40: The state variables (x i When a flip candidate state variable is selected, the change amount (Δx i ) is output.

[0141] Step S41: The ΔE calculation unit 33h of the search unit 33 calculates ΔE=-h i Δx i Calculate ΔE using the following formula: Step S42: The transition possibility determination unit 33j of the search unit 33 determines x based on the result of comparison between ΔE and the predetermined value. i Flip decision is made for x i If it is determined that the change of x is permitted (if "flip allowed"), the process of step S43 is performed, and x i If it is determined that the change in is not allowed (in the case of "flip not allowed"), one MCMC search ends.

[0142] Step S43: The search unit 33 performs the above-described process to find x i , h i , update E(x). Step S44: The control unit 32 sets k=1.

[0143] Step S45: The auxiliary variables (x k When the flip candidate auxiliary variable is selected, the change amount (Δx k ) is output. If no auxiliary variables are used, the process of step S45 may be omitted.

[0144] Step S46: The ΔP calculation unit 33i of the search unit 33 calculates ΔP according to equation (9). Furthermore, the ΔH calculation unit 33p calculates ΔH=ΔE+ΔP. Step S47: The transition possibility determination unit 33k of the search unit 33 determines x based on the result of comparison between ΔP and, for example, the above-mentioned predetermined value. k Flip decision is made for x k If it is determined that the change of x is permitted (if "flip allowed"), the process of step S48 is performed, and x k If it is determined that the change in ΔP is not permitted (in the case of "flip not permitted"), the process of step S49 is performed. Note that if an auxiliary variable is not used, the process of step S47 may be a process of determining whether or not the state of whether or not the constraint condition of identification number = k is satisfied is permitted to change based on the result of comparing ΔP with, for example, the above-mentioned predetermined value.

[0145] Step S48: The search unit 33 performs the above-described process to find x k , h k , h i , P(x), H(x) are updated. Step S49: The control unit 32 determines whether or not k = M. If it is determined that k = M, the process of step S51 is performed, and if it is determined that k = M is not true, the process of step S50 is performed.

[0146] Step S50: The control unit 32 sets k to k + 1. Thereafter, the process from step S45 is repeated. Step S51: The control unit 32 k Determine whether all x is 0. k If it is determined that all x is 0, the process of step S52 is performed. k is not 0 (any one of x k is not 0), one MCMC search is completed.

[0147] Step S52: The energy calculation unit 33n calculates H best The energy calculation unit 33n updates the updated H(x). best If it is smaller than H(x), we use that H(x) as a new H best After the process of step S52, one MCMC search is completed.

[0148] 5 and 6 are merely examples, and the order of the processes may be changed as appropriate. Also, in the above processing example, the state variables and auxiliary variables of the flip candidates are selected in the order of their identification numbers, but they may also be selected randomly.

[0149] As described above, the data processing device 20 calculates the λ that arrives every time the MCMC search is performed T0 times. k If there is a constraint condition among the M constraint conditions that is violated at the adjustment timing of k In addition, the data processing device 20 increases the value of λ k If all M constraints are satisfied at the adjustment timing, the value of E(x) at the adjustment timing and H best Based on the comparison result, the data processing device 20 calculates λ corresponding to the M constraints. k Decide whether to decrease or maintain the value of

[0150] As shown above, λ k By adjusting , the solution search status and constraint satisfaction status are reflected. k Since it becomes possible to appropriately adjust the above, it is possible to improve the efficiency of searching for a solution to a combinatorial optimization problem, similar to the data processing device 10 of the first embodiment.

[0151] In addition, λ k The adjustment method of is that when multiple constraints are all satisfied (no constraint violations occur), all λ k Since the amount of calculation is not uniformly reduced, the amount of calculation can be reduced.

[0152] In addition, λ k The adjustment method is to make sure that the value of E(x) is H best Then, for all λ k The λ in this embodiment is not reduced uniformly. k The adjustment method of E(x) and, for example, H best Based on the comparison results of all λk This determines whether to decrease or maintain the value of λ for a given constraint, even if that constraint is violated. k This reduces the possibility of solutions violating the constraints, and suppresses the deterioration of search efficiency.

[0153] Also, λ k If is adjusted, λ k Since P(x) is corrected based on the adjustment amount of λ k This can suppress the occurrence of calculation errors caused by changing λ. k When is adjusted, h i However, by correcting P(x) instead, as in the process of step S26, the amount of calculation can be reduced.

[0154] As mentioned above, the above processing contents can be realized by causing the data processing device 20 to execute a program. The program can be recorded on a computer-readable recording medium (e.g., recording medium 26a). Examples of recording media that can be used include magnetic disks, optical disks, magneto-optical disks, and semiconductor memories. Magnetic disks include FDs and HDDs. Optical disks include CDs, CD-R (Recordable) / RW (Rewritable), DVDs, and DVD-R / RWs. The program may be recorded on a portable recording medium and distributed. In this case, the program may be copied from the portable recording medium to another recording medium (e.g., HDD 23) and executed.

[0155] Fig. 7 is a diagram showing another example of a data processing device, in which the same elements as those shown in Fig. 2 are denoted by the same reference numerals. The data processing device 40 has an accelerator card 41 connected to the bus.

[0156] The accelerator card 41 is a hardware accelerator that searches for a solution to a combinatorial optimization problem and includes an FPGA 41a and a DRAM 41b.

[0157] In the data processing device 40, the FPGA 41a and the DRAM 41b perform the processing of, for example, the processing unit 12 and the storage unit 11 shown in Fig. 1, or the control unit 32 and the search unit 33 shown in Fig. 3. In this case, the processing unit 12 and the storage unit 11 shown in Fig. 1, or the control unit 32 and the search unit 33 shown in Fig. 3 are realized by various circuits constructed within the FPGA 41a, memories within the FPGA 41a, or the DRAM 41b.

[0158] It should be noted that there may be multiple accelerator cards 41. While one aspect of the data processing device, program, and data processing method of the present invention has been described above based on the embodiment, these are merely examples and the present invention is not limited to the above description. [Explanation of symbols]

[0159] 10 Data processing device 11 Storage section 12 Processing section

Claims

1. a storage unit that stores evaluation function information of an evaluation function for a combinatorial optimization problem that is expressed as a sum of a second-order cost term and a first-order cost term that is the sum of a plurality of constraint terms weighted by coefficients that represent the weights of each of a plurality of constraint conditions; a processing unit that acquires the evaluation function information from the storage unit, searches for a solution to the combinatorial optimization problem based on the evaluation function information, and if there is a first constraint condition among the plurality of constraint conditions that is violated at a first time point during the search for the solution, increases the value of the coefficient corresponding to the first constraint condition, and if the plurality of constraint conditions are satisfied at the first time point, determines whether to decrease or maintain the value of the coefficient corresponding to the plurality of constraint conditions based on a result of comparing the value of the second-order cost term at the first time point with the value of the evaluation function obtained before the first time point; A data processing device having:

2. the processing unit decreases the values of the coefficients corresponding to the plurality of constraint conditions when the value of the second-order cost term at the first time point is equal to or greater than the minimum value of the values of the evaluation function obtained before the first time point, and maintains the values of the coefficients corresponding to the plurality of constraint conditions when the value of the second-order cost term at the first time point is smaller than the minimum value.

2. The data processing device according to claim 1.

3. 2. The data processing apparatus according to claim 1, wherein the first point in time is a point in time that occurs every time the solution search process is performed a predetermined number of times.

4. 2. The data processing device according to claim 1, wherein, when the value of the coefficient is changed, the processing unit corrects the value of the first-order cost term using an amount of change in the value of the coefficient.

5. 2. The data processing device according to claim 1, wherein the processing unit determines that the plurality of constraint conditions are satisfied when the value of the first-order cost term is 0, and determines that a constraint violation has occurred in any of the plurality of constraint conditions when the value of the first-order cost term is greater than 0.

6. acquiring evaluation function information from a storage unit that stores evaluation function information of an evaluation function for a combinatorial optimization problem that is represented by a sum of a second-order cost term and a first-order cost term that is the sum of a plurality of constraint terms weighted by coefficients that represent the respective weights of a plurality of constraint conditions; searching for a solution to the combinatorial optimization problem based on the evaluation function information; If there is a first constraint condition among the plurality of constraint conditions that is violated at a first time point during the search for the solution, increasing the value of the coefficient corresponding to the first constraint condition; if the plurality of constraint conditions are satisfied at the first time point, determining whether to decrease or maintain the values of the coefficients corresponding to the plurality of constraint conditions based on a comparison result between the value of the second-order cost term at the first time point and the value of the evaluation function obtained before the first time point; A program that causes a computer to perform a process.

7. a storage unit stores evaluation function information of an evaluation function for a combinatorial optimization problem expressed as a sum of a second-order cost term and a first-order cost term which is the sum of a plurality of constraint terms weighted by coefficients representing respective weights of a plurality of constraint conditions; a processing unit that acquires the evaluation function information from the storage unit; the processing unit searches for a solution to the combinatorial optimization problem based on the evaluation function information; the processing unit, when there is a first constraint condition among the plurality of constraint conditions that is violated at a first time point during the search for the solution, increases the value of the coefficient corresponding to the first constraint condition; when the plurality of constraint conditions are satisfied at the first time point, the processing unit determines whether to decrease or maintain the values of the coefficients corresponding to the plurality of constraint conditions based on a comparison result between the value of the second-order cost term at the first time point and the value of the evaluation function obtained before the first time point. Data processing methods.

Citation Information

Patent Citations

  • Integer programming apparatus, integer programming method, and integer programming program

    JP2021089596A

  • Information processing system, information processing method, and program

    JP2022047362A

  • Data processing apparatus, program, and data processing method

    JP2023149726A

  • Method and device for three-weight message-passing optimization scheme using splines

    US20160217380A1