Information processing device, simulated annealing device, method, and program
The information processing device simplifies constraints by converting and reducing variables in combinatorial optimization problems, addressing inefficiencies in existing methods and enhancing solution speed.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- NEC CORP
- Filing Date
- 2024-11-07
- Publication Date
- 2026-05-19
AI Technical Summary
Current methods for solving combinatorial optimization problems, such as those using quantum annealing and simulated annealing, face challenges with increased problem space and prolonged solution times due to the need for SAT solvers to satisfy constraints, which can be inefficient.
An information processing device and method that simplifies constraints by deleting constraints or binary variables using a constraint simplification unit, which converts constraints to weighted sums and simplifies them through decidable variable and deletable constraint searches.
The simplification of constraints reduces the problem space and solution time, enabling more efficient and effective solving of combinatorial optimization problems.
Smart Images

Figure 2026082171000001_ABST
Abstract
Description
[Technical Field]
[0001] This disclosure relates to an information processing apparatus, a simulated annealing apparatus, a method, and a program for performing a process that simplifies a given constraint. [Background technology]
[0002] Research is underway on quantum computers that can rapidly solve combinatorial optimization problems using a quantum annealing method. Quantum computers represent combinatorial optimization problems using the Ising model and utilize quantum superposition to search for the state that minimizes the energy function, which corresponds to the objective function of the combinatorial optimization problem.
[0003] However, currently, quantum computers large enough to solve real-world combinatorial optimization problems have not yet been realized. Nevertheless, research applying combinatorial optimization techniques is progressing, spurred by the advent of quantum computers.
[0004] For example, to find solutions to various combinatorial optimization problems in a general way, currently, simulated annealing (SA method), which takes the energy function from the Ising model or QUBO (Quadratic Unconstrained Binary Optimization) as input, is used. When the SA method is used, even classical computers can find solutions to combinatorial optimization problems.
[0005] Patent Document 1 describes a simulated annealing device that can easily find candidate solutions that satisfy all of the constraints imposed on a combinatorial optimization problem. The simulated annealing device described in Patent Document 1 uses a SAT (Boolean Satisfiability Testing) solver to search for combinations of spins (variables) that satisfy all the constraints imposed on a combinatorial optimization problem.
[0006] Non-patent document 1 describes the weighted sum constraint, which is a type of constraint. [Prior art documents] [Patent Documents]
[0007] [Patent Document 1] International Publication No. 2022 / 264414 [Non-patent literature]
[0008] [Non-Patent Document 1] Timo Berthold, Stefan Heinz, Marc Pfetsch, "Solving Pseudo-Boolean Problems with SCIP", ZIB-Report 08-12, March 2008 [Overview of the project] [Problems that the invention aims to solve]
[0009] Applying the energy functions from the Ising model and QUBO to the SA method allows for the general acquisition of solutions to various combinatorial optimization problems. However, when the original combinatorial optimization problem is transformed into the Ising model or QUBO form, the problem space, which represents the scope of solution search, increases.
[0010] Furthermore, the simulated annealing apparatus described in Patent Document 1 requires the use of a SAT solver to obtain a neighboring solution. However, while the use of a SAT solver guarantees obtaining a solution that satisfies the constraints, it has the problem of taking a long time to obtain the solution.
[0011] Therefore, this disclosure aims to provide an information processing device, an optimization system, a method, and a program that can simplify the given constraints themselves. [Means for solving the problem]
[0012] The information processing device according to this disclosure is characterized by comprising a constraint simplification unit that simplifies a plurality of constraints by deleting one of the constraints or by deleting the number of binary variables used in any of the constraints, based on a plurality of constraints that are represented by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values.
[0013] The simulated annealing apparatus according to this disclosure comprises an optimization processing unit that performs simulated annealing based on input constraints represented by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, and a constraint simplification unit that simplifies a plurality of constraints by deleting one of the plurality of constraints or by deleting the number of binary variables used in any of the plurality of constraints, wherein the optimization processing unit performs simulated annealing based on the simplified plurality of constraints.
[0014] The method according to this disclosure is characterized by simplifying a set of constraints, which are expressed as a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, by deleting one of the constraints or by deleting the number of binary variables used in any of the constraints.
[0015] The program provided for this disclosure is characterized by causing a computer to perform a constraint simplification process that simplifies a plurality of constraints, which are expressed as a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, by deleting one of the constraints or by deleting the number of binary variables used in any of the constraints. [Effects of the Invention]
[0016] According to this disclosure, the given constraints themselves can be simplified. [Brief explanation of the drawing]
[0017] [Figure 1] This is an explanatory diagram showing an example configuration of a simulated annealing apparatus according to this disclosure. [Figure 2] This is an explanatory diagram showing an example configuration of the constraint simplification section. [Figure 3] This flowchart shows an example of the operation of the decidable variable search unit. [Figure 4] This flowchart shows an example of the processing of the decidable variable search subroutine. [Figure 5] This flowchart shows an example of how the deleteable constraint search unit works. [Figure 6] This flowchart shows an example of the processing of the deleteable constraint search subroutine. [Figure 7] This block diagram shows an overview of the information processing device described herein. [Figure 8] This block diagram shows an overview of the simulated annealing apparatus as disclosed herein. [Figure 9] This is a schematic block diagram showing the configuration of a computer according to at least one embodiment. [Modes for carrying out the invention]
[0018] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.
[0019] Figure 1 is an explanatory diagram showing an example configuration of a simulated annealing apparatus according to the present disclosure. The simulated annealing apparatus 1000 of this embodiment includes a nearest-neighbor solution generation unit 1100, an energy calculation unit 1200, a transition determination unit 1300, and a temperature control unit 1400.
[0020] Furthermore, as shown in Figure 1, the neighborhood solution generation unit 1100 includes a constraint simplification unit 1110 and a constraint solution unit 1120. The constraint simplification unit 1110 performs a process to simplify the given constraints.
[0021] Figure 2 is an explanatory diagram showing an example configuration of the constraint simplification unit 1110 of this embodiment. The constraint simplification unit 1110 includes a conversion unit 1111, a determinable variable search unit 1112, and a deleteable constraint search unit 1113. Note that the unidirectional arrows shown in Figures 1 and 2 simply indicate the direction of information flow and do not exclude bidirectional flow.
[0022] The transformation unit 1111 accepts input of multiple constraints to be simplified. Simplification in this disclosure means deleting one of the multiple constraints, or deleting the number of binary variables used in any of the multiple constraints.
[0023] In this embodiment, the information indicating the input constraints may also be referred to as flip constraint information. Flip constraint information is information indicating the constraints imposed on the combinatorial optimization problem to be solved. In this embodiment, the conversion unit 1111 accepts input as flip constraint information, which indicates a one-hot constraint or a constraint that can be converted to CNF (Conjunctive Normal Form).
[0024] The conversion unit 1111 then converts the input constraint into a weighted sum constraint. A weighted sum constraint is a constraint expressed by comparing the weighted sum of integer values of binary variables with an integer value (more specifically, a constraint that shows that the weighted sum of integer values of binary variables is less than or equal to an integer value). In other words, the conversion unit 1111 converts constraints expressed using binary variables into weighted sum constraints.
[0025] In the following explanation, the binary variable is v i (1≦i≦n), the weights that become the coefficients of the binary variable are w i Let (1≦i≦n) be written as (1≦i≦n). Also, v i or ¬v i A literal is something that expresses both of the above, i This is written as (1≦i≦n).
[0026] CNF is l1∨l2∨…∨l nrepresented in the form of this, which is l1 + l2 + … + l n ≧ 1, and thus it can be converted into a weighted sum constraint. Also, the one hot constraint is represented as v1 + v2 + … + v n = 1, so this can also be converted into a weighted sum constraint.
[0027] Furthermore, the conversion unit 1111 normalizes the converted weighted sum constraint. Specifically, the conversion unit 1111 normalizes the weighted sum constraint by converting the expression representing the weighted sum constraint into an expression in which all coefficients are positive and the inequality sign (more specifically, less than or equal to ≦) is used.
[0028] For example, assume that the weighted sum constraint is represented as w1l1 + w2l2 + … + w n l n = 1. The conversion unit 1111 converts this expression into two equivalent expressions: (1) w1l1 + w2l2 + … + w n l n ≦ 1, and (2) w1l1 + w2l2 + … + w n l n ≧ 1. Furthermore, the conversion unit 1111 converts the expression (2) in which ≧ (greater than or equal to) is used into an expression in which ≦ (less than or equal to) is used by multiplying both sides by -1.
[0029] Next, when the coefficient w i is negative, since l i = 1 - ¬l i holds, the conversion unit 1111 substitutes l i = 1 - ¬l i for the negative coefficient to convert the coefficient to positive. After performing the above processing, the conversion unit 1111 may rearrange the literals in descending order of the coefficients.
[0030] The following explains the processing of the conversion unit 1111 using a specific example. Here, we will convert the expression 3v1+4v2+5v3≧7. First, the conversion unit 1111 multiplies both sides by -1, converting 3v1+4v2+5v3≧7 to -3v1-4v2-5v3≦-7. This changes the direction of the inequality sign to "≦".
[0031] Next, the conversion unit 1111 applies l to all negative coefficients. i = 1 - ¬l i By substituting this, -3v1-4v2-5v3≦-7 is transformed into -3(1-¬v1)v1-4(1-¬v2)-5(1-¬v3)≦-7. Rearranging the transformed expression, we get 3¬v1+4¬v2+5¬v3≦5, and by rearranging the literals, we obtain the normalized result 5¬v3+4¬v2+3¬v1≦5.
[0032] The transformation unit 1111 generates a normalized weighted sum constraint by transforming each of the multiple input constraints.
[0033] The decidable variable search unit 1112 simplifies multiple constraints by determining the value of a binary variable included in any of the constraints. Specifically, the decidable variable search unit 1112 searches for a variable whose value can be determined from the relationships between the multiple constraints, and reduces the number of binary variables by substituting the determined value into that variable. The decidable variable search unit 1112 repeats the process of searching whether the value of a variable can be determined for all constraints.
[0034] For example, suppose we have two constraints: 5x + 4y + 3z ≤ 7 and y ∨ z. In this case, if either y or z is 1, then x must be 0. Therefore, these two constraints can be simplified to 4y + 3z ≤ 7 and y ∨ z.
[0035] To explain in more detail, since y∨z is equivalent to y+z≧1, we can transform (normalize) it to generate the equation ¬y+¬z≦1. This is as follows: By multiplying both sides of y+z≧1 by -1, we obtain the equation -yz≦1. Then, since y=1-¬y and z=1-¬z, substituting these into the constraints we obtain, we get -1+¬y-1+¬z≦-1, which rearranges to give the equation ¬y+¬z≦1.
[0036] Since y + ¬y = 1 and z + ¬z = 1 hold true, we multiply both sides of 5x + 4y + 3z ≤ 7 and ¬y + ¬z ≤ 1 by 3, and then add both sides of the two equations together: 5x + y + 3(y + ¬y = 1) + 3(z + ¬z) ≤ 7 + 3, which gives us the equation 5x + y ≤ 4. Since the coefficient of x is greater than the constant on the right side, we can be certain that x must be 0.
[0037] The following describes in detail the generalized processing that the decidable variable search unit 1112 performs for each normalized weighted sum constraint. Here, we assume that the decidable variable search unit 1112 takes weighted sum constraint A as input and executes a first subroutine that outputs whether or not the variable has been determined.
[0038] First, constraint A is w a1 l a1 + w a2 l a2 +…+w an l an ≤C a to, l ai The variable v ai The decidable variable search unit 1112 searches among all constraints other than constraint A for the variables being used, and for the variables v used in constraint A. a1 ,…,v an It is a subset of and at least one of the subsets is ¬l ai We search for constraints that are... b1 l b1 + w b2 l b2 +…+w bm l bm ≤C bLet's assume that.
[0039] Next, the decidable variable search unit 1112 determines the constraint selected from among the constraints B, ¬l ai (==l bj For each variable (where 1 ≤ j ≤ m), the following steps 1-1 through 1-4 (hereinafter sometimes referred to as loop processing) are executed.
[0040] (Step 1-1) In order to eliminate the selected variable, the decidable variable search unit 1112 multiplies both sides by coefficients and adds constraints A and B. Specifically, w ai and lol bi When the least common multiple of the variables is LCM, the decidable variable search unit 1112 calculates LCM / w on both sides of constraint A. ai , LCM / w on both sides of constraint B bi Multiply by the given value, then add constraint A and constraint B to each edge.
[0041] For example, suppose we have constraints A: 5x + 4y + 3z ≤ 7 and constraint B: 3¬y + 2¬z ≤ 2, and we want to eliminate y. Since the LCM of 4 and 3 is 12, constraint A multiplied by 3 and constraint B multiplied by 4 are added together.
[0042] (Step 1-2) The decidable variable search unit 1112 uses the newly generated constraints to determine v i +¬v i We organize using =1. Specifically, the decidable variable search unit 1112 selects v for the variable to be eliminated. i +¬v i By substituting =1, the variable is eliminated.
[0043] In the example above, the new constraint becomes 15x + 12(y + ¬y) + 8(z + ¬z) ≤ 29, so substituting y + ¬y = 1 gives the result 15x + z ≤ 9.
[0044] (Step 1-3) The decidable variable search unit 1112 searches for variables with coefficients greater than the integer value (constant) on the right-hand side and determines the value of those variables to be 0.
[0045] Since the coefficients of literals are all positive and the variables are binary variables (1 or 0), a variable with a coefficient greater than the constant on the right-hand side cannot be 1 (i.e., it can only be 0). In the example above, for 15x + z ≤ 9, the coefficient of x, "15", is greater than the constant on the right-hand side, "9", so the equation does not hold when x = 1. Therefore, it is specified that x = 0.
[0046] (Step 1-4) If the value of the variable can be determined (to 0), the decidable variable search unit 1112 simplifies the constraints by substituting the determined value of the variable into all constraints. Then, the decidable variable search unit 1112 outputs that the variable has been determined and terminates the first subroutine. On the other hand, if the value of the variable cannot be determined, the decidable variable search unit 1112 recursively executes the first subroutine with the constraint from which the variable has been removed as an argument (input).
[0047] In the recursive first subroutine, if the value of a variable can be determined, the decidable variable search unit 1112 outputs that the variable has been determined and terminates the first subroutine. On the other hand, if the value of a variable cannot be determined, the decidable variable search unit 1112 selects the next variable and continues the loop process. If the value cannot be determined for any of the variables, the decidable variable search unit 1112 terminates the loop process.
[0048] Furthermore, since the variable is decremented each time the first subroutine is executed, it is guaranteed that the process will eventually terminate.
[0049] If the value of the variable cannot be determined under the selected constraint, the decidable variable search unit 1112 selects the next constraint and continues the loop processing described above. If the value of the variable cannot be determined for all constraints B, the decidable variable search unit 1112 outputs that the value of the variable could not be determined and terminates the first subroutine.
[0050] The deletable constraint search unit 1113 simplifies multiple constraints by deleting one constraint that satisfies among them. Specifically, if the deletable constraint search unit 1113 determines from the relationships between multiple constraints that the value of a variable that should satisfy the first constraint, or a combination of values, must also satisfy the second constraint, it deletes the second constraint itself, thereby reducing the number of binary variables. The deletable constraint search unit 1113 repeatedly searches for all constraints to determine whether or not they can be deleted.
[0051] For example, suppose we have two constraints: 5x+4y+3z≦9 and ¬y∨¬z. In this case, if either y or z is 0, then 5x+4y+3z≦9 is always satisfied. Therefore, the constraint 5x+4y+3z≦9 can be removed, and as a result, the expression can be simplified to a single y∨z.
[0052] More specifically, since ¬y ∨ ¬z is equivalent to ¬y + ¬z ≥ 1, we can transform (normalize) it to generate the expression y + z ≤ 1. This is the same reason explained when determining the value of a binary variable.
[0053] Here, assuming we want to eliminate y, we move the terms other than y to the right side, and we obtain the equation y ≤ 1 - z. Substitute the right side of the obtained equation (i.e., the terms other than y) for y in the left side of 5x + 4y + 3z ≤ 9. It is obvious that the result of the substitution will be greater than the left side, so we obtain 5x + 4y + 3z ≤ 5x + 4(1 - z) + 3z = 5x - z + 4 ≤ 9.
[0054] Next, to normalize the equation so that the coefficients become positive, we substitute z = 1 - ¬z into the resulting equation, which gives us 5x - (1 - ¬z) + 4 = 5x + ¬z + 3 ≤ 9. Rearranging this, we get 5x + ¬z + ≤ 6.
[0055] Since the sum of the coefficients on the left side of 5x + ¬z + ≤ 6 is 6, and both x and z are binary variables, the value on the left side is always less than or equal to 6, so this equation is always true. If 5x + ¬z + 3 ≤ 9 is always true, then 5x + 4y + 3z ≤ 5x + ¬z + 3, so the original constraint 5x + 4y + 3z ≤ 9 is also always true.
[0056] The following describes in detail the generalized processing that the deleteable constraint search unit 1113 performs for each normalized weighted sum constraint. Here, we assume that the deleteable constraint search unit 1113 has a second subroutine that takes weighted sum constraint A as input and outputs whether or not the constraint could be deleted.
[0057] First, constraint A is w a1 l a1 + w a2 l a2 +…+w an l an ≤C a to, l ai The variable v ai The deleteable constraint search unit 1113 searches among all constraints other than constraint A for variables that are used in constraint A, and the variables v a1 ,…,v an It is a subset of and at least one of the subsets is l ai We search for constraints that are... b1 l b1 + w b2 l b2 +…+w bm l bm ≤C b Let's assume that.
[0058] Next, the deleteable constraint search unit 1113 selects one constraint from among the constraints B and performs the following: ai (==l bj For each variable (where 1 ≤ j ≤ m), the following steps 2-1 through 2-4 (sometimes referred to as loop processing) are executed.
[0059] (Step2-1) The deletion possible constraint search section 1113 transforms the selected constraint so that the literal to be deleted appears on the left side, i.e., w bj l bj ≦C b -w b1 l b1 -w b2 l b2 -…-w bm l bm (However, the right side does not include terms with w bj l bj ). For example, the deletion possible constraint search section 1113 may select w bj l bj as w b1 l b1 first.
[0060] (Step2-2) To delete the selected literal l bj (variable v aj ), the deletion possible constraint search section 1113 multiplies both sides of each of constraint A and constraint B by coefficients and replaces the variable. Specifically, when the least common multiple of w ai and w bi is LCM, the deletion possible constraint search section 1113 multiplies both sides of constraint A by LCM / w ai and both sides of constraint B by LCM / w[[ID= ]] bi . Then, the deletion possible constraint search section 1113 replaces LCM / w ai l bi with LCM / w bj C b -LCM / w bj C b -LCM / w bj w b1 l b1 -…-LCM / w bj w bm l bm . Further, the deletion possible constraint search section 1113 arranges the obtained expression using v i +¬v i =1.
[0061] For example, suppose we have constraints A: 5x + 4y + 3z ≤ 7 and constraint B: 3y + 2z ≤ 2, and we want to eliminate y. 3y ≤ 2 - 2z, and the LCM of 4 and 3 is 12, so we get constraint A: 15x + 12y + 9z ≤ 21 (multiplied by 3) and constraint B: 12y ≤ 8 - 8z (multiplied by 4). Substituting 12y from constraint B into 12y from constraint A, we get 15x + (8 - 8z) + 9z ≤ 21, and rearranging gives us the equation 15x + z ≤ 13.
[0062] (Step 2-3) The deleteable constraint search unit 1113 determines whether the sum of the coefficients on the left side of the obtained expression is less than or equal to the constant on the right side. If the sum of the coefficients on the left side is less than or equal to the constant on the right side, the deleteable constraint search unit 1113 determines that this constraint can be deleted, deletes constraint A, outputs that the constraint has been deleted, and terminates the second subroutine.
[0063] Since all literal coefficients are positive and the variables are binary (1 or 0), the value on the left side is maximized when all variables are 1. In the example above, for 15x + z ≤ 13, the sum of the values of the coefficients on the left side is 16, which is greater than the constant "13" on the right side, so this constraint is deemed irremovable.
[0064] (Step 2-4) If it is determined that the constraint cannot be deleted, the deleteable constraint search unit 1113 recursively executes the second subroutine with the constraint from which the variable has been deleted as an argument (input).
[0065] In the recursive second subroutine, if it is determined that a constraint can be deleted, the deleteable constraint search unit 1113 deletes the constraint, outputs that the constraint has been deleted, and terminates the second subroutine. On the other hand, if it is determined that a constraint can be deleted, the deleteable constraint search unit 1113 selects the next variable and continues the above loop processing. If the constraint cannot be deleted even after processing all variables, the deleteable constraint search unit 1113 terminates the above loop processing.
[0066] If the selected constraint cannot be deleted, the deleteable constraint search unit 1113 selects the next constraint and continues the loop processing. If the constraint cannot be deleted even after processing all constraints B, the deleteable constraint search unit 1113 outputs that the constraint could not be deleted and terminates the second subroutine.
[0067] In this embodiment, an example is given in which the constraint simplification unit 1110 has a transformation unit 1111, a determinable variable search unit 1112, and a deleteable constraint search unit 1113. Note that if a normalized weighted sum constraint is input in advance, the constraint simplification unit 1110 does not need to have a transformation unit 1111.
[0068] Furthermore, the constraint simplification unit 1110 may have either a decidable variable search unit 1112 or a deleteable constraint search unit 1113, or both. It is preferable for the constraint simplification unit 1110 to have both a decidable variable search unit 1112 and a deleteable constraint search unit 1113, as this increases the likelihood of simplifying the constraints. The order in which the processing performed by the decidable variable search unit 1112 and the processing performed by the deleteable constraint search unit 1113 is arbitrary.
[0069] Furthermore, the constraint simplification unit 1110 may generate an energy function for a combinatorial optimization problem represented by an Ising model (QUBO model) based on the simplified constraints. For example, the QUBO model for the traveling salesman problem is represented by Equation 1, which is illustrated below. Note that the method for generating the energy function is widely known, so a detailed explanation is omitted here.
[0070]
number
[0071] The constraint-solving unit 1120 finds candidate solutions to the combinatorial optimization problem based on the input constraints. The constraint-solving unit 1120 may, for example, use a SAT solver to find candidate solutions. However, the method by which the constraint-solving unit 1120 finds candidate solutions is not limited to using a SAT solver; any known method may be used.
[0072] The energy calculation unit 1200 calculates the change in energy Δ based on the input candidate solutions. If the SA method described above is used, the energy calculation unit 1200 selects one spin from the states representing the candidate solutions and calculates the change in energy Δ when the selected spin is flipped. For example, the energy function described above may be used to calculate the energy.
[0073] The transition determination unit 1300 uses the energy change Δ to determine whether or not to accept a spin flip in the candidate solution. If the flip is accepted, the transition determination unit 1300 flips the spin in the candidate solution. For example, if the energy change Δ is negative, the transition determination unit 1300 may accept the spin flip. Also, if the energy change Δ is positive, the transition determination unit 1300 may accept the spin flip with a transition probability of min(exp(-Δ / T),1). T is a temperature parameter, which will be described later.
[0074] The temperature control unit 1400 controls the temperature parameter T used in the SA method. Specifically, the temperature control unit 1400 decreases the temperature parameter T as time progresses during the problem solving process.
[0075] As described above, the constraint solving unit 1120, energy calculation unit 1200, transition determination unit 1300, and temperature control unit 1400 included in the nearest neighbor solution generation unit 1100 perform processing to find the optimal solution based on the constraints simplified by the constraint simplification unit 110. Therefore, these can be collectively referred to as the optimization processing unit.
[0076] Furthermore, the nearest-neighbor solution generation unit 1100 (more specifically, the constraint simplification unit 1110) of this embodiment can be said to improve the capabilities of the computer performing the optimization process by simplifying the constraints used in the combinatorial optimization problem.
[0077] The constraint simplification unit 1110 (more specifically, the transformation unit 1111, the decidable variable search unit 1112, and the deleteable constraint search unit 1113) is implemented by a computer processor (e.g., a CPU (Central Processing Unit) or GPU (Graphics Processing Unit)) that operates according to the program.
[0078] For example, the program may be stored in the memory unit (not shown) of the simulated annealing device 1000, and the processor may read the program and operate as the constraint simplification unit 1110 (more specifically, the transformation unit 1111, the decidable variable search unit 1112, and the deleteable constraint search unit 1113) according to the program. Alternatively, the functions of the constraint simplification unit 1110 may be provided in SaaS (Software as a Service) format.
[0079] Furthermore, the constraint simplification unit 1110 (more specifically, the conversion unit 1111, the decidable variable search unit 1112, and the deleteable constraint search unit 1113) may each be implemented with dedicated hardware. Also, some or all of the components of each device may be implemented by general-purpose or dedicated circuits, processors, etc., or combinations thereof. These may be configured by a single chip or by multiple chips connected via a bus. Some or all of the components of each device may be implemented by a combination of the above-mentioned circuits, etc., and programs.
[0080] Furthermore, if some or all of the components of the constraint simplification unit 1110 (more specifically, the conversion unit 1111, the determinable variable search unit 1112, and the deleteable constraint search unit 1113) are implemented by multiple information processing devices or circuits, these multiple information processing devices or circuits may be centrally located or distributed. For example, the information processing devices or circuits may be implemented in a form in which each is connected via a communication network, such as a client-server system or a cloud computing system.
[0081] Furthermore, in addition to the nearby solution generation unit 1100, the energy calculation unit 1200, the transition determination unit 1300, and the temperature control unit 1400 are also implemented by a computer processor that operates according to a program.
[0082] Next, the operation of the simulated annealing device of this embodiment will be described. First, the operation of the decidable variable search unit 1112 of this embodiment will be described. The decidable variable search unit 1112 simplifies multiple constraints by determining the value of a binary variable included in any of the constraints. Figure 3 is a flowchart showing an example of the operation of the decidable variable search unit 1112. In the example shown in Figure 3, it is assumed that multiple normalized weighted sum constraints are input.
[0083] The decidable variable search unit 1112 creates a constraint list from all weighted sum constraints (step S101). The decidable variable search unit 1112 selects one constraint from the created constraint list (step S102) and calls the decidable variable search subroutine (corresponding to the first subroutine above) with the selected constraint as an argument (step S103).
[0084] The decidable variable search unit 1112 refers to the output of the subroutine and determines whether or not the variable has been determined (step S104). If the variable has been determined (YES in step S104), the processing from step S101 onwards is repeated. On the other hand, if the variable cannot be determined (NO in step S104), the decidable variable search unit 1112 determines whether or not there are still target constraints (step S105). If there are still target constraints (YES in step S105), the processing from step S102 onwards is repeated. On the other hand, if there are no target constraints (NO in step S105), the process terminates.
[0085] Figure 4 is a flowchart showing an example of the processing of the decidable variable search subroutine. The input in this example is the weighted sum constraint A.
[0086] First, constraint A is w a1 l a1 + w a2 l a2 +…+w an l an ≤C a to, l ai The variable v ai (Step S111). The decidable variable search unit 1112 searches among all constraints other than constraint A for the variables used, and for the variables used in constraint A, v a1 ,…,v an It is a subset of and at least one of the subsets is ¬l ai Search for constraints that are (step S112).
[0087] The decidable variable search unit 1112 selects one of the searched constraints, and sets constraint B:w b1 l b1 + w b2 l b2 +…+w bm l bm ≤C b (Step S113). The decidable variable search unit 1112 determines ¬l ai (==l bj Select the variable that is (step S114).
[0088] w ai and lol bi When the least common multiple of the variables is LCM, the decidable variable search unit 1112 calculates LCM / w on both sides of constraint A. ai , LCM / w on both sides of constraint B bi Multiply by the specified value, then add constraint A and constraint B to each edge. This eliminates the selected variable (step S115).
[0089] The decidable variable search unit 1112 uses the newly generated constraints, v i +¬v i The expression is rearranged and normalized using =1 (step S116). The decidable variable search unit 1112 determines whether there is a literal whose coefficient is greater than the constant on the right-hand side (step S117). If there is a literal (YES in step S117), the decidable variable search unit 1112 determines the variable value so that the target literal is 0, and substitutes the determined value into all constraints (step S118). Then, the decidable variable search unit 1112 outputs that it has been able to determine the variable and terminates the subroutine (step S119).
[0090] On the other hand, if the above literal does not exist (NO in step S117), the decidable variable search unit 1112 recursively calls the decidable variable search subroutine with the constraint from which the variable has been removed as an argument (step S120). Then, the decidable variable search unit 1112 determines whether or not the variable was determined in the recursively called subroutine (step S121). If the variable was determined (YES in step S121), the decidable variable search unit 1112 outputs that the variable was determined and terminates the subroutine (step S119).
[0091] On the other hand, if a variable cannot be determined (NO in step S121), the determinable variable search unit 1112 determines whether there are still target variables (step S122). If there are target variables (YES in step S122), the process from step S114 onwards is repeated. On the other hand, if there are no target variables (NO in step S122), the determinable variable search unit 1112 determines whether there are still target constraints (step S123).
[0092] If there are any constraints that apply (YES in step S123), the processing from step S113 onwards is repeated. On the other hand, if there are no constraints that apply (NO in step S123), the decidable variable search unit 1112 outputs that it could not determine the variable and terminates the subroutine (step S124).
[0093] Next, the operation of the deleteable constraint search unit 1113 of this embodiment will be described. The deleteable constraint search unit 1113 simplifies multiple constraints by deleting one constraint that is satisfied from among multiple constraints. Figure 5 is a flowchart showing an example of the operation of the deleteable constraint search unit 1113. In the operation example shown in Figure 5, it is assumed that multiple normalized weighted sum constraints are input.
[0094] The deleteable constraint search unit 1113 creates a constraint list from all weighted sum constraints (step S201). The deleteable constraint search unit 1113 selects one constraint from the created constraint list (step S202) and calls the deleteable constraint search subroutine (corresponding to the second subroutine above) with the selected constraint as an argument (step S203).
[0095] The deleteable constraint search unit 1113 refers to the output of the subroutine and determines whether there are still any target constraints (step S204). If there are still target constraints (YES in step S204), the processing from step S202 onwards is repeated. On the other hand, if there are no target constraints (NO in step S204), the process terminates.
[0096] Figure 6 is a flowchart showing an example of the processing of the deleteable constraint search subroutine. The input in this example is also the weighted sum constraint A.
[0097] First, constraint A is w a1 l a1 + w a2 l a2 +…+w an l an ≤C a to, l ai The variable v ai (Step S211). The deleteable constraint search unit 1113 searches among all constraints other than constraint A for variables that are used in constraint A, and for variables v a1 ,…,v an It is a subset of and at least one of the subsets is l ai Search for constraints that are (step S212).
[0098] The deleteable constraint search unit 1113 selects one constraint from the searched constraints and sets constraint B:w b1 l b1 + w b2 l b2 +…+w bm l bm ≤C b (Step S213). The deleteable constraint search unit 1113 performs the following: ai (==l bj ) selects a variable (step S214). Then, the deleteable constraint search unit 1113 selects constraint B, w bj l bj ≤C b -w b1 l b1 -…-w bm l bm It transforms into this. However, w is added to the right side. bj l bj The section is not included (step S215).
[0099] w ai and lol bi When the least common multiple of the two is LCM, the deleteable constraint search unit 1113 calculates LCM / w on both sides of constraint A. ai, LCM / w on both sides of constraint B bi Multiply by the following. Then, the deleteable constraint search unit 1113 calculates the LCM / w of constraint A. ai l bi The section, LCM / w bj C b -LCM / w bj C b -LCM / w bj w b1 l b1 -…-LCM / w bj w bm l bm Replace with this. This eliminates the target variable (step S216). Furthermore, the deleteable constraint search unit 1113 uses the obtained expression v i +¬v i Normalize using =1 (step S217).
[0100] The deleteable constraint search unit 1113 determines whether the sum of the coefficients on the left side is less than or equal to the constant on the right side (step S218). If it is less than or equal to the constant (YES in step S218), the deleteable constraint search unit 1113 determines that this constraint can be deleted and removes the constraint determined to be deleteable from the constraint list (step S219). It outputs that the constraint has been deleted and terminates the subroutine (step S220).
[0101] On the other hand, if the value is not less than or equal to a constant (NO in step S218), the deleteable constraint search unit 1113 recursively calls the deleteable constraint search subroutine with the constraint from which the variable has been removed as an argument (step S221). Then, the deleteable constraint search unit 1113 determines whether or not the constraint was deleted in the recursively called subroutine (step S222). If the constraint was deleted (YES in step S222), the deleteable constraint search unit 1113 outputs that the constraint was deleted and terminates the subroutine (step S220).
[0102] On the other hand, if the constraint could not be deleted (NO in step S222), the deleteable constraint search unit 1113 determines whether there are still variables to be deleted (step S223). If there are variables to be deleted (YES in step S223), the process from step S214 onwards is repeated. On the other hand, if there are no variables to be deleted (NO in step S223), the deleteable constraint search unit 1113 determines whether there are still constraints to be deleted (step S224).
[0103] If there is a constraint to be deleted (YES in step S224), the processing from step S213 onwards is repeated. On the other hand, if there is no constraint to be deleted (NO in step S224), the deleteable constraint search unit 1113 outputs that it was not possible to delete the constraint and terminates the subroutine (step S225).
[0104] As described above, according to this embodiment, the constraint simplification unit 1110 simplifies multiple constraints by deleting one of the constraints or by deleting the number of binary variables used in any of the constraints, based on a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values. The given constraints themselves can be simplified.
[0105] Next, a specific example of applying the simulated annealing apparatus of this disclosure will be described. This example will describe the case where a portfolio optimization problem is applied to the simulated annealing apparatus of this disclosure.
[0106] The portfolio optimization problem is a problem in which, given the expected rate of return and risk (variance) for each of several stocks, the goal is to find a combination of stocks that minimizes risk while maintaining an expected rate of return above a certain level. In this specific example, the variables are represented as binary values: buy or don't buy, and the number of stocks to buy is fixed.
[0107] The stock is v1...v n And the expected rate of return for each stock is w1...w nTherefore, the constraints on the portfolio optimization problem can be expressed as follows: w1v1+w2v2+…+w n v n ≥ Expected Rate of Return v1+v2+…+v n = Number of brands
[0108] Under these constraints, we aim to minimize the sum of the risks of each security represented by the QUBO matrix. The expected rate of return for each security, the required overall expected rate of return, and the number of securitys can take arbitrary values as inputs during optimization. Depending on the values, the proposed method may allow for simplification of the constraints.
[0109] For example, suppose the following constraints are given regarding the expected rate of return and the number of stocks. 10v1 + 9v2 + 8v3 + 4v4 ≥ 15 v1+v2+v3+v4=2
[0110] The constraint simplification unit 1110 derives the following equation by normalizing these equations. 10¬v1+9¬v2+8¬v3+4¬v4≦16 … (Formula C1) v1+v2+v3+v4≦2… (Formula C2) ¬v1+¬v2+¬v3+¬v4≦2 … (Formula C3)
[0111] As shown in the processing of the decidable variable search unit 1112 described above, variable v1 is eliminated using (Equation C2) with (Equation C1) as the target. v2 + 2v3 + 6v4 ≤ 5
[0112] Since the coefficient of v4, 6, is greater than the coefficient of 5 on the right side, we can conclude that v4 = 0.
[0113] Furthermore, suppose that constraints on the expected rate of return and the number of stocks are given as follows: 10v1 + 9v2 + 8v3 + 7v4 ≥ 14 v1+v2+v3+v4=2
[0114] The constraint simplification unit 1110 derives the following equation by normalizing these equations. 10¬v1+9¬v2+8¬v3+7¬v4≦20… (Formula D1) v1+v2+v3+v4≦2… (Formula D2) ¬v1+¬v2+¬v3+¬v4≦2 … (Formula D3)
[0115] As shown in the processing of the deleteable variable search unit 1113 described above, the variable v1 is deleted using (expression D3) targeting (expression D1). 10¬v1 + 9¬v2 + 8¬v3 + 7(2 - ¬v1 - ¬v2 - ¬v3) ≤ 20 3¬v1 + 2¬v2 + ¬v3 ≤ 20 - 14 = 6
[0116] Since the sum of the coefficients on the left side is 3+2+1≦6, we can eliminate 10v1+9v2+8v3+7v4≧14.
[0117] Next, an overview of the present disclosure will be described. Figure 7 is a block diagram showing an overview of the information processing device according to the present disclosure. The information processing device 80 according to the present disclosure includes a constraint simplification unit 81 (for example, a constraint simplification unit 1110) that simplifies a plurality of constraints (for example, a weighted sum constraint) that are expressed by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, by deleting one of the constraints or deleting the number of binary variables used in any of the constraints.
[0118] Such a configuration allows for the simplification of the given constraints themselves.
[0119] Furthermore, the constraint simplification unit 81 (for example, the decidable variable search unit 1112) may simplify multiple constraints by determining the value of a binary variable included in any of the multiple constraints.
[0120] Specifically, the constraint simplification unit 81 may determine the value of a binary variable to 0 if its coefficient is an integer value that is larger than the integer value being compared.
[0121] Furthermore, the constraint simplification unit 81 (for example, the deleteable constraint search unit 1113) may simplify multiple constraints by deleting one of the constraints that is valid.
[0122] Specifically, the constraint simplification unit 81 may remove one of the constraints that generated the expression if the sum of the integer values that are coefficients of the binary variable is less than or equal to the integer value being compared.
[0123] Furthermore, the constraint simplification unit 81 may simplify the constraints based on a plurality of constraints (for example, a normalized weighted sum constraint) that show that the weighted sum of positive integer values of binary variables is less than or equal to a predetermined integer value.
[0124] Furthermore, the constraint simplification unit 81 may convert constraints expressed using binary variables into weighted sum constraints, normalize the converted weighted sum constraints, and simplify multiple constraints based on the normalized weighted sum constraints.
[0125] Figure 8 is a block diagram illustrating the overview of the simulated annealing apparatus according to the present disclosure. The simulated annealing apparatus 90 according to the present disclosure comprises an optimization processing unit 91 (e.g., a constraint solving unit 1120, an energy calculation unit 1200, a transition determination unit 1300, and a temperature control unit 1400) that performs simulated annealing based on input constraints represented by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, and a constraint simplification unit 81. The contents of the constraint simplification unit 81 are the same as those illustrated in Figure 7.
[0126] The optimization processing unit 91 then performs simulated annealing based on the simplified constraints.
[0127] Such a configuration makes it possible to improve the computer's ability to perform optimization by simplifying the constraints used in combinatorial optimization problems.
[0128] Figure 9 is a schematic block diagram showing the configuration of a computer according to at least one embodiment. The computer 1000 comprises a processor 1001, main memory 1002, auxiliary memory 1003, and interface 1004.
[0129] The information processing device 80 and simulated annealing device 90 described above are implemented in the computer 1000. The operation of each processing unit described above is stored in auxiliary storage device 1003 in the form of a program. The processor 1001 reads the program from auxiliary storage device 1003, expands it into main memory 1002, and executes the above processing according to the program.
[0130] In at least one embodiment, the auxiliary storage device 1003 is an example of a non-temporary tangible medium. Other examples of non-temporary tangible media include magnetic disks, magneto-optical disks, CD-ROMs (Compact Disc Read-only memory), DVD-ROMs (Read-only memory), and semiconductor memory connected via the interface 1004. Furthermore, if this program is distributed to the computer 1000 via a communication line, the computer 1000 that receives the program may expand it into the main memory 1002 and execute the above processing.
[0131] Furthermore, the program may be intended to implement some of the functions described above. In addition, the program may be a so-called differential file (differential program) that implements the functions described above in combination with other programs already stored in the auxiliary storage device 1003.
[0132] Some or all of the above embodiments may also be described as follows, but are not limited to the following:
[0133] (Note 1) The system includes a constraint simplification unit that simplifies the multiple constraints by deleting one of the multiple constraints or by deleting the number of binary variables used in any of the multiple constraints, based on the multiple constraints represented by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values. An information processing device characterized by the following:
[0134] (Note 2) The constraint simplification unit simplifies multiple constraints by determining the value of a binary variable included in any of the constraints. The information processing device described in Appendix 1.
[0135] (Note 3) The constraint simplification unit determines the value of the binary variable whose coefficient is an integer value that is larger than the integer value being compared to the binary variable to 0. The information processing device described in Appendix 2.
[0136] (Note 4) The constraint simplification unit simplifies multiple constraints by deleting one of the constraints that is valid. The information processing device described in Appendix 1 or Appendix 2.
[0137] (Note 5) The constraint simplification unit removes the constraint that generated the expression for any expression in which the sum of integer values that are coefficients of a binary variable is less than or equal to the integer value being compared. The information processing device described in Appendix 4.
[0138] (Note 6) The constraint simplification unit simplifies a plurality of constraints based on the fact that the weighted sum of positive integer values of binary variables is less than or equal to a predetermined integer value. An information processing device as described in any one of the appendices 1 through 5.
[0139] (Note 7) The constraint simplification unit converts constraints expressed using binary variables into weighted sum constraints, normalizes the converted weighted sum constraints, and simplifies multiple constraints based on the normalized weighted sum constraints. An information processing device described in any one of the appendices 1 through 6.
[0140] (Note 8) An optimization processing unit that performs simulated annealing based on input constraints represented by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, The system includes a constraint simplification unit that simplifies the plurality of constraints by deleting one of the plurality of constraints or by deleting the number of binary variables used in any of the plurality of constraints, based on the plurality of constraints. The optimization processing unit performs simulated annealing based on the simplified set of constraints. A simulated annealing apparatus characterized by the following features.
[0141] (Note 9) Based on a set of constraints expressed by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, the set of constraints can be simplified by deleting one of the constraints or by deleting the number of binary variables used in any of the constraints. A method characterized by the following:
[0142] (Note 10) An optimization processing unit that performs simulated annealing based on input constraints represented by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, Based on multiple constraints expressed by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, the multiple constraints are simplified by deleting one of the constraints or by deleting the number of binary variables used in any of the constraints. Perform simulated annealing based on the simplified constraints described above. A simulated annealing method characterized by the following features.
[0143] (Note 11) To the computer, A constraint simplification process that simplifies multiple constraints, which are expressed as a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, by deleting one of the constraints or by reducing the number of binary variables used in any of the constraints. A program to execute.
[0144] (Note 12) To the computer, An optimization process that performs simulated annealing based on input constraints represented by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, and Based on the aforementioned constraints, a constraint simplification process is performed to simplify the constraints by deleting one of the constraints or by deleting the number of binary variables used in any of the constraints. The optimization process performs simulated annealing based on the simplified set of constraints. A program for that purpose.
[0145] Although the present invention has been described above with reference to the embodiments and examples, the present invention is not limited to the above embodiments and examples. Various modifications to the structure and details of the present invention can be made, as can be understood by those skilled in the art within the scope of the present invention. [Explanation of symbols]
[0146] 1000 Simulated Annealing Device 1100 Nearby Solution Generation Unit 1110 Constraint simplification section 1111 Conversion Unit 1112 Decidable Variable Search Unit 1113 Deletable constraint search unit 1120 Constraint solver 1200 Energy Calculation Unit 1300 Transition judgment section 1400 Temperature Control Unit
Claims
1. The system includes a constraint simplification unit that simplifies a set of constraints, which are expressed as a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, by deleting one of the constraints or by deleting the number of binary variables used in any of the constraints. An information processing device characterized by the following:
2. The constraint simplification unit simplifies multiple constraints by determining the value of a binary variable included in any of the constraints. The information processing apparatus according to claim 1.
3. The constraint simplification unit determines the value of the binary variable to 0 if its coefficient is an integer value that is larger than the integer value being compared. The information processing apparatus according to claim 2.
4. The constraint simplification unit simplifies multiple constraints by removing one of the constraints that is valid. The information processing apparatus according to claim 1 or claim 2.
5. The constraint simplification unit removes the constraint that generated the expression for any expression where the sum of the integer values that are coefficients of a binary variable is less than or equal to the integer value being compared. The information processing apparatus according to claim 4.
6. The constraint simplification unit simplifies a plurality of constraints based on the fact that the weighted sum of positive integer values of binary variables is less than or equal to a predetermined integer value. The information processing apparatus according to claim 1.
7. The constraint simplification unit converts constraints expressed using binary variables into weighted sum constraints, normalizes the converted weighted sum constraints, and simplifies multiple constraints based on the normalized weighted sum constraints. The information processing apparatus according to claim 1.
8. An optimization processing unit that performs simulated annealing based on input constraints represented by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, The system includes a constraint simplification unit that simplifies the plurality of constraints by deleting one of the plurality of constraints or by deleting the number of binary variables used in any of the plurality of constraints, based on the plurality of constraints. The optimization processing unit performs simulated annealing based on the simplified set of constraints. A simulated annealing apparatus characterized by the following features.
9. Based on a set of constraints expressed by a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, the constraints are simplified by deleting one of the constraints or by reducing the number of binary variables used in any of the constraints. A method characterized by the following:
10. On the computer, A constraint simplification process that simplifies multiple constraints, which are expressed as a weighted sum of integer values of binary variables and a comparison of the magnitudes of integer values, by deleting one of the constraints or by reducing the number of binary variables used in any of the constraints. A program to execute.