Combinatorial optimization problem solution device and combinatorial optimization problem solution method

By employing a SAT solver to directly handle original constraints in the form of Conjunctive Normal Form (CNF), the method addresses inefficiencies in current simulated annealing approaches for combinatorial optimization, achieving faster solution times and improved accuracy.

JP2025045980APending Publication Date: 2025-04-02NEC CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023154091
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-21
Publication Date
2025-04-02

AI Technical Summary

Technical Problem

Current methods for solving combinatorial optimization problems using simulated annealing are inefficient, particularly when dealing with constraints in Ising models or QUBO formats, leading to increased calculation time and potential deterioration in solution accuracy.

Method used

A combination optimization problem solving device and method that utilizes a SAT solver to directly handle original constraints, converting them into Conjunctive Normal Form (CNF) only when necessary, thereby speeding up the solution process.

Benefits of technology

The proposed solution enables faster determination of candidate solutions for combinatorial optimization problems, significantly reducing the time required to obtain optimal or suboptimal solutions while maintaining constraint satisfaction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025045980000001_ABST
    Figure 2025045980000001_ABST
Patent Text Reader

Abstract

To provide a combinatorial optimization problem solution device that can find a candidate of the solution to combinatorial optimization problems faster.SOLUTION: A combinatorial optimization problem solution device 20 comprises a solution unit 21. By solving SAT expressed in a form of CNF in which constraints other than a no-transformation constraint, which is a constraint that satisfies a prescribed condition among one or more constraints imposed on a combinatorial optimization problem, are transformed, so that the no-transformation constraint is satisfied, the solution unit obtains a combination of values of multiple variables of the combinatorial optimization problem, where the combination is a candidate of the solution of the combinatorial optimization problem and satisfies the one or more constraints.SELECTED DRAWING: Figure 14
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a device, a method, and a program for solving combinatorial optimization problems. In particular, the present disclosure relates to a device, a method, and a program for solving combinatorial optimization problems that achieves high speeds for combinatorial optimization solvers known as pseudo-quantum annealing. [Background technology]

[0002] Research is underway on quantum computers that can quickly solve combinatorial optimization problems using quantum annealing. Quantum computers represent combinatorial optimization problems using an Ising model and use quantum superposition to search for a state that minimizes an energy function, which corresponds to the objective function of the combinatorial optimization problem.

[0003] A quantum computer solves combinatorial optimization problems using the energy function in the Ising model as input. Examples of combinatorial optimization problems include the traveling salesman problem, the knapsack problem, the graph partitioning problem, and the nurse shift scheduling problem. However, other problems may also be used as combinatorial optimization problems.

[0004] The Ising model is a statistical mechanical model that describes the behavior of spin in magnetic materials. In the Ising model, each spin state is represented as either "1" or "-1."

[0005] When a combinatorial optimization problem is solved, the spin direction changes so that the energy function in the Ising model becomes smaller. The energy function in the Ising model is expressed as follows:

[0006]

number

[0007] s in Equation (1) i ,s jis a variable that represents the state of spin. ij is a constant depending on i and j. i is a constant depending on i.

[0008] QUBO (Quadratic Unconstrained Binary Optimization) is also known as a model that represents the state of each spin as either "1" or "0." The energy function in the Ising model and the energy function in QUBO are mutually convertible.

[0009] The energy function in QUBO is expressed as the following equation (2).

[0010]

number

[0011] x in equation (2) i ,x j is a variable that represents the spin state. ij is a constant depending on i and j. When a combinatorial optimization problem is solved, the spin direction changes so that the energy function in QUBO becomes smaller. More specifically, when a combinatorial optimization problem is solved, the spin direction changes so that the sum of the weighted products of the variables shown in equation (2) is minimized.

[0012] Currently, quantum computers large enough to solve real-world combinatorial optimization problems have not yet been realized, but the advent of quantum computers has prompted research into the application of combinatorial optimization techniques.

[0013] For example, to find general solutions to various combinatorial optimization problems, currently, the simulated annealing method (hereinafter also referred to as the SA method) is used, which uses the energy function of the Ising model or QUBO as input. When the SA method is used, it is possible to find solutions to combinatorial optimization problems even on a classical computer.

[0014] When the combinatorial optimization problem to be solved is expressed in the Ising model format or QUBO format, the SA method can handle a variety of combinatorial optimization problems. Note that combinatorial optimization problems formulated in the Ising model format or QUBO format can be solved by both quantum and classical computers.

[0015] The SA method is a general-purpose method for approximately solving combinatorial optimization problems. The SA method solves combinatorial optimization problems by performing the following four processes as one cycle:

[0016] 1. Select one spin 2. Calculate the energy change Δ when the selected spin is flipped. 3. Accept the spin flip with transition probability min(exp(-Δ / T),1) 4. If the flip is accepted, flip the selected spin.

[0017] Specifically, when a combinatorial optimization problem is expressed in QUBO format, the SA method flips the spin direction selected in step 2 above from "0" to "1" or from "1" to "0" and calculates the change in energy Δ when the spin is flipped.

[0018] The SA method then accepts the spin flip in step 3 above if the calculated Δ is negative, and if the calculated Δ is positive, the SA method accepts the spin flip with the probability calculated above.

[0019] Next, if the flip is accepted, the SA method flips the spin selected in step 4 above. That is, the SA method searches for a state where the energy becomes smaller while changing the direction of the spin (variable) one by one. By searching for a state where the energy becomes smaller, the SA method obtains a nearby solution. Note that T is a temperature parameter.

[0020] Fig. 15 is an explanatory diagram showing an example of a process for solving a combinatorial optimization problem using SA. The curves in each rectangle shown in Fig. 15 represent energy functions. The black circles in each rectangle shown in Fig. 15 are examples of energy values ​​when a solution obtained by SA is used.

[0021] 15 shows the change in the temperature parameter T over time in the process of solving the combinatorial optimization problem. The graph shown in Fig. 15 shows that the temperature parameter T decreases over time.

[0022] The SA method starts the solution process from a random combination (solution) of multiple spin directions, and then evaluates nearby solutions to transition. Because a temperature parameter T is introduced, when T is high, the SA method can transition to a solution with a poor evaluation.

[0023] For example, as shown in the early stage of the solution-finding process in Figure 15, the SA method can overcome high peaks in the energy function if T is high. By overcoming high peaks and transitioning to a worsening evaluation of the solution, the SA method can avoid finding a locally optimal solution as the final solution to the combinatorial optimization problem.

[0024] As the temperature parameter T is lowered, the peaks that can be overcome in the energy function become gradually lower, as shown in the middle stage of the solution-finding process in Figure 15. In other words, the number of transitions in the direction of poor solution evaluation decreases.

[0025] If the temperature parameter T is further reduced, the SA method is unable to overcome the peak in the energy function. Eventually, the SA method transitions with a high probability to the deepest valley in the energy function and stabilizes, as shown in the later stage of the solution process in FIG.

[0026] Below, we will explain the process of solving a combinatorial optimization problem using the SA method as an example of finding a solution to the traveling salesman problem. The traveling salesman problem is a problem of determining the order in which to visit each city in the shortest travel distance. In the traveling salesman problem, for the number of cities N (N is a positive integer), N 2 spins (variables) are defined, and each spin indicates that a salesman exists at point k at time t.

[0027] FIG. 16 is an explanatory diagram showing an example of cities that are the subject of the traveling salesman problem. The black circles in FIG. 16 represent cities. The lines in FIG. 16 represent routes. In the example shown in FIG. 16, the traveling salesman problem becomes a question of what order to visit cities A, B, C, and D in order to travel the shortest distance.

[0028] First, an equation representing the energy in the traveling salesman problem is generated. In this example, the traveling salesman problem is expressed in QUBO format. The energy function in the traveling salesman problem is generated by adding a constraint term with a large weight to the objective function. The reason for adding a constraint term to the objective function is to impose a constraint condition on the optimization target (energy).

[0029] As an energy function in the traveling salesman problem, for example, the following equation (3) is generated.

[0030]

number

[0031] In equation (3), j represents time, v and u represent cities, and x v,jis a variable that indicates whether a salesman is present in city v at time j, and corresponds to the spin. That is, x v,j = 1 indicates that the salesman is in city v at time j. v,j = 0 indicates that the salesman is not present in city v at time j.

[0032] Also, in equation (3), W uv is the distance between city u and city v. W uv is determined as a constant for each pair of cities. Also, α and β are determined as constants.

[0033] The first term on the right-hand side of equation (3) represents the constraint that a salesman may only pass through the same city once, i.e., may not pass through the same city more than twice.

[0034] Furthermore, the second term on the right-hand side of equation (3) represents the constraint that a salesman can only be in one city at a time.

[0035] Furthermore, the third term on the right-hand side of equation (3) represents the total distance between cities that the salesman passes through. The third term on the right-hand side is the objective function to be minimized.

[0036] Once the energy function in QUBO is obtained, the SA method identifies the state of each spin when the energy is minimized. Once the state of each spin when the energy is minimized is identified, the optimal solution to the traveling salesman problem is obtained.

[0037] Figure 17 is a schematic diagram showing an example of the representation of the state of each spin in the traveling salesman problem. "1" or "0" shown in Figure 17 corresponds to the spin (variable).

[0038] The spins shown in FIG. 17 correspond to city A, city B, city C, and city D, respectively, from left to right. Also, the spins shown in FIG. 17 correspond to time 1, time 2, time 3, and time 4, respectively, from top to bottom. In other words, FIG. 17 shows a route that goes around city A, city C, city B, and city D in that order.

[0039] As mentioned above, applying the energy functions in the Ising model or QUBO to SA allows generalized solutions to various combinatorial optimization problems. However, when the original combinatorial optimization problem is converted into the Ising model format or QUBO format, the problem space, which is the range within which a solution can be searched, increases.

[0040] For example, the original problem space of the traveling salesman problem is N! if the number of cities is N. However, when the traveling salesman problem is converted to an Ising model format, the problem space becomes 2! 2 It increases exponentially.

[0041] The SA method also calculates the energy change Δ for each of the many spin combinations in the problem space that do not satisfy the constraints. If the energy change Δ becomes large due to the constraints, the SA method eliminates the combinations that do not satisfy the constraints from the solution candidates.

[0042] By setting the above α to a large value, the calculated energy change Δ becomes large even when only one spin flip occurs in a combination that does not satisfy the constraints. In other words, the steepness of the solution space caused by the constraint term of the Ising model, in which a single spin flip does not satisfy the constraints and the energy change Δ increases too much, makes it difficult for the SA method to transition from a local solution to another solution.

[0043] For the reasons above, when the SA method solves a combinatorial optimization problem using an energy function that includes constraint terms in the Ising model or QUBO, the accuracy of the solution obtained may deteriorate, or the calculation time required to obtain an optimal or suboptimal solution may increase.

[0044] The solution system for solving the above problem flips the spin so as to satisfy the constraint terms.

[0045] For example, in the case of the traveling salesman problem, the above solution system uses a one-hot constraint that ensures that only one spin among the combinations of spins (variables) satisfies "1." When the above solution system uses a one-hot constraint and flips the spin of the only "1," it also flips the spin of the other "0" at the same time.

[0046] However, when multiple constraints are imposed on a combinatorial optimization problem, the above-mentioned solution system does not support flipping the spin so that all constraints are satisfied.

[0047] Figure 18 is a schematic diagram showing another example of the representation of the state of each spin in the traveling salesman problem. For example, if the above solution system is to represent the variables x C,1 Let's say we flip =0.

[0048] variable x C,1 When flips from "0" to "1", the above solution system changes to the variable x C,1 The other variables are flipped so that the one-hot constraint directly related to x is satisfied. Specifically, the above solution system flips the circled variables x as shown in the right of Figure 18. A,1 From "1" to "0", the circled variable x C,2 Flip each from "1" to "0".

[0049] However, as shown in the right of Figure 18, the variable x A,1 and the variable x C,2 When flipped, the variables for time 2 and city A enclosed by the dashed line all become "0." In other words, the one-hot constraints for time 2 and city A are no longer satisfied.

[0050] As described above, it is easy for the solution-finding system to flip other variables so that the constraints directly related to the variable to be flipped are satisfied. However, it is difficult for the solution-finding system to flip other variables so that other constraints not directly related to the variable to be flipped are also satisfied.

[0051] Patent Document 1 describes a simulated annealing device that can solve the above-mentioned problems and easily find solution candidates that satisfy all of the multiple constraints imposed on a combinatorial optimization problem.

[0052] The simulated annealing apparatus described in Patent Document 1 is characterized by using a SAT (Boolean Satisfiability Testing) solver to search for a combination of spins (variables) that satisfies all constraints imposed on a combinatorial optimization problem.

[0053] SAT is a problem of determining whether there exists a value that makes a given logical formula true, and a SAT solver is a system that solves SAT.

[0054] The SAT is given in the form of CNF (Conjunctive Normal Form). The SAT given in the form of CNF is written, for example, as in the following formula (4).

[0055]

number

[0056] In addition, x in equation (4) i is a variable that represents either true or false. In addition, "∨" in formula (4) means OR, "∧" means AND, and "¬" means NOT. In addition, (x1 ∨ ¬x2) etc. in formula (4) are called clauses.

[0057] In other words, in a SAT given in CNF format, clauses in which variables are connected by OR are connected by AND. A SAT solver finds x that satisfies a SAT given in CNF format. i If there are no variables that satisfy the SAT, the SAT solver returns an unsatisfiable result.

[0058] The simulated annealing apparatus described in Patent Document 1 is x i By regarding the variables in QUBO and the SAT given in CNF format as constraints imposed on the combinatorial optimization problem, a SAT solver generates a set of variable values ​​that satisfy the constraints.

[0059] It should be noted that a method for expressing one-hot constraints and the like in CNF is generally known. In the generally known method, for example, the following formula (5), which is a generalized constraint (hereinafter referred to as a weighted sum constraint), is the target of conversion.

[0060]

number

[0061] "w" in Equation (5) i " is converted to "1" and "≧k" is converted to "=1", so that the constraint shown in equation (5) is converted to a one-hot constraint. [Prior art documents] [Patent documents]

[0062] [Patent Document 1] International Publication No. 2022 / 264414 Summary of the Invention [Problem to be solved by the invention]

[0063] When a combinatorial optimization problem is expressed in the QUBO format, the SA method can obtain a nearby solution simply by flipping any spin as described above. However, because it uses SAT, the simulated annealing device described in Patent Document 1 is required to use a SAT solver to obtain a nearby solution.

[0064] When a SAT solver is used, a solution that satisfies the constraints is always obtained. However, it takes time to obtain the solution. Therefore, although it is guaranteed that the constraints are satisfied, it takes time to obtain nearby solutions, and therefore the simulated annealing device described in Patent Document 1 has the problem that it takes a long time to obtain the optimal solution for the combinatorial optimization problem itself.

[0065] Therefore, an object of the present disclosure is to provide a combinatorial optimization problem-solving device, a combinatorial optimization problem-solving method, and a combinatorial optimization problem-solving program that can find solution candidates for a combinatorial optimization problem more quickly. [Means for solving the problem]

[0066] The combinatorial optimization problem solving device according to the present disclosure is characterized by comprising a solving unit that determines sets of values ​​of multiple variables of the combinatorial optimization problem that are candidate solutions to the combinatorial optimization problem and that satisfy one or more constraints, by solving a SAT (Boolean Satisfiability Testing) expressed in the form of CNF (Conjunctive Normal Form) in which constraints other than the non-transformation constraint, which is a constraint that satisfies a predetermined condition out of one or more constraints imposed on the combinatorial optimization problem, are transformed so that the non-transformation constraint is satisfied.

[0067] The method for solving a combinatorial optimization problem according to the present disclosure is characterized in that it finds a set of values ​​of multiple variables of the combinatorial optimization problem that are candidate solutions to the combinatorial optimization problem and that satisfy one or more constraints, by solving a SAT (Boolean Satisfiability Testing) expressed in the form of a Conjunctive Normal Form (CNF) in which constraints other than the non-transformation constraint, which is a constraint that satisfies a predetermined condition out of one or more constraints imposed on the combinatorial optimization problem, are transformed so that the non-transformation constraint is satisfied.

[0068] The combinatorial optimization problem-solving program according to the present disclosure is characterized in that it causes a computer to execute a solution-finding process to find sets of values ​​of multiple variables of the combinatorial optimization problem that are candidate solutions to the combinatorial optimization problem and that satisfy one or more constraints, by solving a SAT (Boolean Satisfiability Testing) expressed in the form of a Conjunctive Normal Form (CNF) in which constraints other than the untransformed constraint, which is a constraint that satisfies a predetermined condition out of one or more constraints imposed on the combinatorial optimization problem, are transformed so that the untransformed constraint is satisfied. [Effects of the Invention]

[0069] According to the present disclosure, candidate solutions to combinatorial optimization problems can be found more quickly. [Brief explanation of the drawings]

[0070] [Figure 1] FIG. 1 is a block diagram illustrating an example configuration of a simulated annealing apparatus according to the present disclosure. [Figure 2] 11 is an explanatory diagram showing an example of a process in which the DPLL·CDCL execution unit 1121 solves the SAT. FIG. [Figure 3] FIG. 11 is an explanatory diagram showing an example of a CNF representing a SAT solved by a DPLL·CDCL execution unit 1121. [Figure 4] 11 is an explanatory diagram showing an example of an implication graph generated by a DPLL·CDCL execution unit 1121. FIG. [Figure 5]11 is an explanatory diagram showing another example of an implication graph generated by the DPLL·CDCL executing unit 1121. FIG. [Figure 6] 11 is an explanatory diagram showing another example of an implication graph generated by the DPLL·CDCL executing unit 1121. FIG. [Figure 7] 11 is an explanatory diagram showing another example of an implication graph generated by the DPLL·CDCL executing unit 1121. FIG. [Figure 8] FIG. 11 is an explanatory diagram showing another example of the process in which the DPLL·CDCL execution unit 1121 solves the SAT. [Figure 9] 11 is an explanatory diagram showing another example of an implication graph generated by the DPLL·CDCL executing unit 1121. FIG. [Figure 10] 1 is a flowchart showing the operation of a process for solving a combinatorial optimization problem by a simulated annealing apparatus 1000 according to the present disclosure. [Figure 11] 11 is a flowchart showing the operation of a SAT solution-finding process by a SAT solution-finding unit 1120 according to the present disclosure. [Figure 12] 1 is an explanatory diagram showing the performance of the simulated annealing apparatus described in Patent Document 1 and the performance of the simulated annealing apparatus 1000 according to the present disclosure. FIG. [Figure 13] FIG. 1 is an explanatory diagram illustrating an example of the hardware configuration of a simulated annealing apparatus according to the present disclosure. [Figure 14] 1 is a block diagram showing an overview of a combinatorial optimization problem solving device according to the present disclosure. FIG. [Figure 15] FIG. 1 is an explanatory diagram showing an example of a process for solving a combinatorial optimization problem using the SA method. [Figure 16] FIG. 1 is an explanatory diagram showing an example of a target city for the traveling salesman problem. [Figure 17] FIG. 1 is a schematic diagram showing an example of representation of the state of each spin in the traveling salesman problem. [Figure 18] FIG. 10 is a schematic diagram showing another example of representation of the state of each spin in the traveling salesman problem. DETAILED DESCRIPTION OF THE INVENTION

[0071] [Configuration Description] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In the present disclosure, the drawings may be associated with one or more embodiments.

[0072] 1 is a block diagram showing an example of the configuration of a simulated annealing apparatus according to the present disclosure. As shown in FIG. 1, a simulated annealing apparatus 1000 according to this embodiment includes a neighborhood solution generation unit 1100, an energy calculation unit 1200, a transition determination unit 1300, and a temperature control unit 1400.

[0073] 1, the neighborhood solution generation unit 1100 of this embodiment includes a constraint information conversion unit 1110 and a SAT solution unit 1120. Also, as shown in FIG. 1, the SAT solution unit 1120 of this embodiment includes a DPLL / CDCL execution unit 1121 and a constraint interpretation unit 1122.

[0074] The simulated annealing apparatus 1000 of this embodiment regards the SAT given in the CNF format as constraints imposed on a combinatorial optimization problem, and generates a set of variable values ​​that satisfy the constraints using a SAT solver.

[0075] As mentioned above, converting constraints to CNF may reduce the computational efficiency of the solution process by a SAT solver. Among constraints, one-hot constraints and weighted sum constraints are typical heavy constraints. Note that "heavy constraints" refer to constraints that take a long time to solve using a SAT given in CNF format because the converted CNF becomes complex.

[0076] Therefore, if a SAT solver can directly handle the original constraints, the SAT solver can speed up the solution process. In order for a SAT solver to directly handle the original constraints, it is required that the SAT solver be able to handle One Hot constraints, Weighted Sum constraints, etc. simultaneously with CNF.

[0077] Below, we will explain an example of handling the One Hot constraint simultaneously with CNF. For example, to satisfy the One Hot constraint, it is necessary to satisfy both the at least one constraint and the at most one constraint. The at least one constraint can be converted into a simple CNF in which all variables are connected with OR. Therefore, we will consider satisfying the at most one constraint as an example.

[0078] For example, if a variable becomes 1, the other variables must become 0 to satisfy the at most one constraint. In other words, the other variables propagate. Also, if a variable becomes 1 while the other variables are already 1, a contradiction occurs because the at most one constraint is not satisfied.

[0079] The above-mentioned process of determining variables and checking for the occurrence of contradictions is carried out seamlessly with the process of solving the SAT given in CNF format, so that the process of solving the SAT and the process of satisfying the constraints are carried out simultaneously.

[0080] The simulated annealing apparatus 1000 of this embodiment is characterized in that it enables the SAT solver to handle original constraints and CNFs simultaneously. The functions of each component of the simulated annealing apparatus 1000 of this embodiment will be described below.

[0081] The constraint information conversion unit 1110 of the neighborhood solution generation unit 1100 has the function of normalizing constraints imposed on the combinatorial optimization problem to be solved that satisfy predetermined conditions, and converting constraints other than those that satisfy the predetermined conditions into a SAT expressed in CNF format.

[0082] A constraint satisfying a predetermined condition ("non-converted constraint" to be described later) is, for example, the heavy constraint described above. That is, the time required to solve a SAT expressed in the converted CNF format for constraints satisfying the predetermined condition is longer than the time required to solve a SAT expressed in the converted CNF format for constraints other than the constraint satisfying the predetermined condition. Also, a constraint satisfying the predetermined condition is a One Hot constraint or a Weighted Sum constraint.

[0083] Flip constraint information is input to the constraint information conversion unit 1110. The flip constraint information indicates constraints imposed on the combinatorial optimization problem to be solved.

[0084] The constraint information conversion unit 1110 inputs the generated SAT expressed in the CNF format and the normalized constraints to the SAT solving unit 1120. Note that the SAT expressed in the CNF format in which constraints other than those satisfying predetermined conditions have been converted may be input directly to the SAT solving unit 1120 from outside.

[0085] The SAT solving unit 1120 has a function of solving the SAT expressed in the input CNF format. The SAT solving unit 1120 inputs the solution candidates of the combinatorial optimization problem obtained by solving the SAT to the energy calculation unit 1200.

[0086] The energy calculation unit 1200 has a function of calculating the amount of change Δ in energy based on the input solution candidates, which is the process of step 2. The energy calculation unit 1200 handles, for example, an energy function such as that shown in equation (3).

[0087] The energy function handled by the energy calculation unit 1200 does not need to include a constraint term. The reason is that a solution candidate input to the energy calculation unit 1200 always satisfies the constraint, and therefore, when the solution candidate is substituted, the constraint term in the energy function becomes 0. The energy calculation unit 1200 inputs the calculated energy change amount Δ to the transition determination unit 1300.

[0088] The transition determination unit 1300 has a function of determining whether to accept a spin flip in a solution candidate using the input energy change amount Δ, which is the processing of step 3. If the flip is accepted, the transition determination unit 1300 flips the spin in the solution candidate as the processing of step 3.

[0089] The temperature control unit 1400 has a function of controlling the temperature parameter T. As shown in Fig. 15, the temperature control unit 1400 decreases the temperature parameter T as time passes during the solution-finding process.

[0090] Next, a specific operation of the SAT solving unit 1120 of this embodiment will be described. The DPLL·CDCL executing unit 1121 of the SAT solving unit 1120 is a component equivalent to a SAT solver. The DPLL·CDCL executing unit 1121 solves the SAT by a simulated annealing method.

[0091] Generally, a SAT solver stops processing when it finds a single SAT solution, but SA requires that after flipping one variable from the current combination of variables, it obtains a combination that satisfies the constraints while leaving other variables unchanged as much as possible.

[0092] The DPLL·CDCL execution unit 1121 of this embodiment operates according to an algorithm called DPLL (Davis-Putnam-Logemann-Loveland).

[0093] The DPLL·CDCL execution unit 1121 according to the DPLL performs the following operations: i If x is determined, i If there is no x, the DPLL·CDCL execution unit 1121 i Choose one variable from the list and select the selected x i Determines whether the value is true or false.

[0094] Next, the DPLL·CDCL execution unit 1121 executes the determined x iSubstitute the SAT expressed in CNF format. i When is substituted, the newly determined x i occurs.

[0095] For example, in the case of the clause (x1 ∨ x2 ∨ x3), if x1 and x2 are false, then the clause itself must be true, and so x3 is determined to be true. This operation of determining new variables is called unit propagation. The DPLL·CDCL execution unit 1121 finds combinations of variables by repeating unit propagation.

[0096] If¬x i and x i If a contradiction occurs, such as both must be true, then the previously selected variable's true or false decision was incorrect. Therefore, when a contradiction occurs, the DPLL·CDCL execution unit 1121 backtracks to the previously determined variable and changes the value of that variable.

[0097] There are other methods known for speeding up SAT solvers. However, all of these methods are extensions of DPLL. The basic operation of these methods is the same as that of DPLL.

[0098] An example of the process in which the DPLL·CDCL execution unit 1121 solves the SAT in accordance with the above-mentioned DPLL will be described with reference to Fig. 2. Fig. 2 is an explanatory diagram showing an example of the process in which the DPLL·CDCL execution unit 1121 solves the SAT.

[0099] In the example shown in Fig. 2, the DPLL·CDCL execution unit 1121 solves the SAT shown in equation (4). Note that (1), (2), ... shown in Fig. 2 represent processing stages. Also, the circles shown in Fig. 2 represent the state of the combination of variables at each stage.

[0100] The straight arrows in Figure 2 represent the determination of variables and changes in state. i,} represents a combination of determined variables. Also, φ in FIG. 2 represents the initial state, which is an empty set. The meanings of each notation in FIG. 2 are the same in FIG. 8.

[0101] In the first step (1), the DPLL·CDCL execution unit 1121 determines x1 to be false. When x1 is determined to be false, x2 is determined to be false by the clause (x1 ∨ ¬x2). Therefore, after step (1), the determined combination of variables is {¬x 1, It becomes ¬x2}.

[0102] In the next step (2), the DPLL·CDCL execution unit 1121 determines x3 to be false. When x3 is determined to be false, x4 is determined to be false according to the clause (x1 ∨ x3 ∨ → x4). However, according to the clause (x3 ∨ x4), x4 is determined to be true.

[0103] Because a contradiction has occurred regarding x4 as described above, the DPLL·CDCL execution unit 1121 determines that the decision regarding x3 was incorrect and backtracks to the previous state. Next, in step (3), the DPLL·CDCL execution unit 1121 re-decides x3 to be true.

[0104] If x3 is determined to be true, then by clause (¬x3 ∨ ¬x5), x5 is determined to be false. However, by clause (¬x3 ∨x5), x5 is determined to be true.

[0105] Because a contradiction has occurred regarding x5 as described above, the DPLL·CDCL execution unit 1121 determines that the decision on x1 was incorrect and backtracks to the previous state. Next, in step (4), the DPLL·CDCL execution unit 1121 re-decides x1 to be true.

[0106] Even if x1 is determined to be true, there are no variables to be determined. Therefore, after step (4), the combination of variables determined is {x1}.

[0107] Next, in step (5), the DPLL·CDCL execution unit 1121 determines x3 to be false. When x3 is determined to be false, x4 is determined to be true by the clause (x3 ∨ x4). Therefore, after step (5), the determined combination of variables is {x 1, ¬x 3, x4}.

[0108] Next, in step (6), the DPLL·CDCL execution unit 1121 determines x2 to be false. Even if x2 is determined to be false, there are no variables to be determined. Therefore, after step (6), the combination of variables that is determined is {x 1, ¬x 2, ¬x 3, x4}.

[0109] Next, in step (7), the DPLL·CDCL execution unit 1121 determines x5 to be false. When x5 is determined to be false, all clauses are satisfied.

[0110] Therefore, after step (7), the combination of variables is {x 1, ¬x 2, ¬x 3, x 4, 2. Therefore, the DPLL·CDCL execution unit 1121 ends the process of solving the SAT. The process of solving the SAT is a depth-first search process, as shown in FIG.

[0111] As mentioned above, SA requires that after flipping one variable from the current combination of variables, a combination (a solution candidate) that satisfies the constraints is obtained while keeping other variables as unchanged as possible. The current combination of variables is the solution candidate {x 1, ¬x 2, ¬x 3, x 4, ¬x5} and provisional solutions to combinatorial optimization problems solved using the SA method.

[0112] The DPLL / CDCL execution unit 1121 of this embodiment also operates according to an algorithm called CDCL (Conflict Driven Clause Learning).

[0113] When the DPLL·CDCL execution unit 1121 that follows CDCL discovers a contradiction during DPLL execution, it generates (learns) a new clause based on the variable that caused the contradiction. By using the generated clause in unit propagation, the DPLL·CDCL execution unit 1121 prevents the same contradiction from occurring again. In other words, CDCL is a program that improves the efficiency of the process of solving SAT.

[0114] In addition, the DPLL·CDCL execution unit 1121 also performs an operation called back jump, which performs multiple backtracks at once, when generating a new clause.

[0115] Furthermore, the DPLL·CDCL execution unit 1121 that complies with CDCL is required to store the clauses on which unit propagation is based when performing unit propagation.

[0116] That is, the DPLL·CDCL execution unit 1121 that complies with CDCL learns clauses using as input the clauses that are the basis of a contradiction when a contradiction is discovered and the clauses that are saved as the basis when performing unit propagation.

[0117] An example of the process in which the DPLL·CDCL execution unit 1121 solves the SAT according to the above CDCL will be described with reference to Figures 3 to 7. Figure 3 is an explanatory diagram showing an example of a CNF representing the SAT solved by the DPLL·CDCL execution unit 1121.

[0118] For the CNF shown in Figure 3, the DPLL·CDCL execution unit 1121 determines x1 to be true. When x1 is determined to be true, x2 is determined to be false by the clause (→x1 ∨ →x2). Furthermore, x3 is determined to be true by the clause (→x1 ∨ x3). Furthermore, x4 is determined to be false by the clause (→x3 ∨ →x4). Furthermore, x5 is determined to be true by the clause (x2 ∨ x4 ∨ x5).

[0119] By using the clause of the determination basis, the DPLL·CDCL execution unit 1121 can generate a graph (hereinafter referred to as an implication graph) in which the variables that are the reason for determining each variable are connected. Figure 4 is an explanatory diagram showing an example of the implication graph generated by the DPLL·CDCL execution unit 1121.

[0120] In the implication graph shown in Figure 4, for example, x5 is determined from the node (x2 ∨ x4 ∨ x5), so it is connected from x2 and x4. Note that the variable (x1) surrounded by a bold frame in Figure 4 is a variable whose value has been determined. Also, the variables with an overline in Figure 4 are negated variables.

[0121] The numbers at the bottom left of each variable in Fig. 4 indicate the level of the determined variable. In the example shown in Fig. 4, the level of the determined variable is "1" because the first unit propagation has been performed. The meanings of the notations in Fig. 4 are the same in Figs. 5 to 7 and 9.

[0122] Next, the DPLL·CDCL execution unit 1121 determines x6 to be false. When x6 is determined to be false, a contradiction occurs. The implication graph when a contradiction occurs is shown in FIG.

[0123] Fig. 5 is an explanatory diagram showing another example of an implication graph generated by the DPLL·CDCL executing unit 1121. The symbol "⊥" shown in Fig. 5 represents a contradiction (the same applies to Figs. 6 to 7 and 9).

[0124] Next, the DPLL·CDCL execution unit 1121 divides the implication graph shown in FIG. 5 into a set including contradictions and a set including determined variables.

[0125] 6 is an explanatory diagram showing another example of the implication graph generated by the DPLL·CDCL executing unit 1121. The DPLL·CDCL executing unit 1121 divides the implication graph at the locations indicated by the dashed lines in FIG.

[0126] 6, a contradiction occurs due to ¬x2, x5, and ¬x6 connected to the edge that crosses the dashed line shown in Fig. 6. Therefore, the DPLL·CDCL execution unit 1121 learns ¬(¬x2 ∧ x5 ∧ ¬x6) = (x2 ∨ ¬x5 ∨ x6), which is the negation of ¬x2, x5, and ¬x6.

[0127] Next, the DPLL·CDCL execution unit 1121 checks the levels of the determined variables of the learned clause. The levels of the determined variables ¬x2, x5, and ¬x6 are “1”, “1”, and “2”, respectively.

[0128] From the above, the DPLL·CDCL execution unit 1121 can grasp that it was able to infer that the variable x6 at level 2 was true using the learned clause, even if it went back to the variables at the highest level (1) excluding the highest level (2). Therefore, the DPLL·CDCL execution unit 1121 back jumps to the variables at level 1 (before x6 was determined).

[0129] The DPLL·CDCL executing unit 1121 may divide the implication graph at a location other than the dashed line shown in Fig. 6. Fig. 7 is an explanatory diagram showing another example of the implication graph generated by the DPLL·CDCL executing unit 1121.

[0130] In the example shown in Figure 7, the DPLL·CDCL execution unit 1121 learns ¬x8. Because the learned clause is short, the division method shown in Figure 7 is better than the division method shown in Figure 6. A shorter learned clause is a more general clause, and therefore more likely to be used.

[0131] Furthermore, the fact that there is only one variable (¬x8) in the learned clause means that x8 can be determined to be false at level 0. Therefore, the DPLL·CDCL execution unit 1121 jumps back to level 0 before the determination of x1, and determines x8 to be false at level 0. Note that the DPLL·CDCL execution unit 1121 may divide the implication graph at a point other than the dashed line shown in FIG. 7.

[0132] As described above, the DPLL·CDCL execution unit 1121 that follows CDCL finds the clauses of the basis for determining variables in order to generate an implication graph when a contradiction occurs or for unit propagation.

[0133] The SAT solving unit 1120 of this embodiment directly handles heavy constraints such as the "at most one" constraint while maintaining the above specifications. To directly handle heavy constraints, the constraint interpretation unit 1122 of the SAT solving unit 1120 of this embodiment dynamically generates clauses that explain the basis for determining variables. Below, we will explain examples of when a contradiction occurs and when unit propagation occurs.

[0134] For example, {x 1, x 2, x 3, x 4, Assume that an at most one constraint is imposed on {x2} and x5}, and x2 and x4 are determined to be true. When x2 and x4 are determined to be true, a contradiction occurs because the at most one constraint is violated. Therefore, the constraint interpreter 1122 dynamically generates a clause (|x2 ∨ |x4). The constraint interpreter 1122 returns the contradiction to the DPLL·CDCL execution unit 1121 based on the generated clause. The process of "returning the contradiction" corresponds to the process of inputting information indicating the contradiction.

[0135] Also, suppose that the same constraints as above are imposed, x1 is false, x3, x4, and x5 are undetermined, and x2 is determined to be true. Based on the "at most one" constraint, the constraint interpretation unit 1122 determines that x3 can be determined to be false. Therefore, the constraint interpretation unit 1122 dynamically generates a clause (|x2 ∨|x3) and returns x3 to the DPLL·CDCL execution unit 1121 so that it will propagate to false based on the generated clause.

[0136] Similarly, the constraint interpretation unit 1122 dynamically generates clauses (→x2∨→x4) and (→x2∨→x5), and returns x4 and x5 to the DPLL·CDCL execution unit 1121 so that they each propagate to false based on the generated clauses.

[0137] The operation of the SAT solving unit 1120 described above is equivalent to the operation of a SAT solver when all clauses that can be virtually dynamically generated (in the above example, (→x1∨→x2), (→x1∨→x3), (→x1∨→x4), ···, (→x4∨→x5)) are included in the CNF. Therefore, when the solution method of this embodiment is implemented in an existing SAT solver, the SAT solver can solve the SAT seamlessly and consistently.

[0138] Therefore, the DPLL / CDCL execution unit 1121 of this embodiment performs normal unit propagation for SAT expressed in CNF format according to DPLL. During unit propagation, clauses that are the basis for determining variables are saved. If a contradiction occurs, the DPLL / CDCL execution unit 1121 backtracks normally according to CDCL.

[0139] Next, the DPLL·CDCL execution unit 1121 performs unit propagation directly using the heavy constraints. As with the case of SAT expressed in CNF format, the DPLL·CDCL execution unit 1121 saves the clauses of the basis for determining variables generated by the constraint interpretation unit 1122 as described above. If a contradiction occurs, the DPLL·CDCL execution unit 1121 backtracks according to the CDCL.

[0140] A specific example of the operation of the SAT solving unit 1120 of this embodiment will be described below with reference to Fig. 8. Fig. 8 is an explanatory diagram showing another example of the process in which the DPLL·CDCL executing unit 1121 solves the SAT.

[0141] In this example, the SAT to be solved by the SAT solving unit 1120 is expressed in the CNF format of (→x1∨x2)∧(→x1∨x3). 2, x 3, x4} has an at most one constraint.

[0142] In the first step (8), the DPLL·CDCL execution unit 1121 determines x1 to be true. Then, the DPLL·CDCL execution unit 1121 performs unit propagation on the CNF. That is, when x1 is determined to be true, x2 is determined to be true by the clause (→x1 ∨ x2). Also, when x1 is determined to be true, x3 is determined to be true by the clause (→x1 ∨ x3). Therefore, after step (8), the determined combination of variables is {x 1, x 2, x3} (the "provisional candidate solution" described below).

[0143] Next, the constraint interpretation unit 1122 checks whether there is a contradiction with the at most one constraint and whether there is a determinable variable. Since both x2 and x3 are determined to be true, the constraint interpretation unit 1122 confirms that a contradiction has occurred.

[0144] Next, the constraint interpreter 1122 generates (|x2 ∨|x3), which is a clause that is the basis for determining the variables. Next, the constraint interpreter 1122 returns a contradiction to the DPLL·CDCL execution unit 1121 using (|x2 ∨|x3) as the basis.

[0145] The DPLL·CDCL execution unit 1121 generates an implication graph using the returned node (→x2∨→x3). FIG. 9 is an explanatory diagram showing another example of the implication graph generated by the DPLL·CDCL execution unit 1121.

[0146] The DPLL·CDCL execution unit 1121 learns ¬x1 based on the implication graph shown in Fig. 9. Next, the DPLL·CDCL execution unit 1121 backtracks to level 0 before the determination of x1.

[0147] In the next step (9), the DPLL / CDCL execution unit 1121 determines x1 to be false based on the learned ¬x1. Even if x1 is determined to be false, no variables are determined by unit propagation for the CNF. The constraint interpretation unit 1122 also confirms that there are no contradictions or determinable variables for the at most one constraint. Therefore, after step (9), the determined combination of variables becomes {¬x1} (the "tentative solution candidate" described later).

[0148] In the next step (10), the DPLL / CDCL execution unit 1121 determines x2 to be true. Even if x2 is determined to be true, no variables are determined by unit propagation for the CNF. The constraint interpretation unit 1122 also confirms that there is no contradiction with the at most one constraint.

[0149] Next, the constraint interpretation unit 1122 checks whether there is a determinable variable for the at most one constraint. Based on the at most one constraint, the constraint interpretation unit 1122 determines that x3 can be determined to be false.

[0150] Therefore, the constraint interpreter 1122 dynamically generates a clause (|x2 ∨|x3). Next, the constraint interpreter 1122 returns x3 to the DPLL·CDCL execution unit 1121 so that it propagates to false based on the generated clause.

[0151] Similarly, based on the "at most one" constraint, the constraint interpreter 1122 determines that x4 can be determined to be false. Therefore, the constraint interpreter 1122 dynamically generates a clause (|x2 ∨|x4). Next, the constraint interpreter 1122 returns x4 to the DPLL·CDCL execution unit 1121 so that it propagates to false based on the generated clause.

[0152] Next, the DPLL·CDCL execution unit 1121 propagates x3 and x4 to false by using the returned clauses (→x2∨→x3) and (→x2∨→x4).

[0153] Therefore, after step (10), the combination of variables determined is {¬x 1, x 2, ¬x 3, ¬x4} (a "candidate solution" to be described later). Now that all variables have been determined, SAT solution finding unit 1120 ends the solution finding process.

[0154] Next, an example of handling a weighted sum constraint together with a CNF will be described. The weighted sum constraint is expressed by the following equation (6), for example.

[0155]

number

[0156] Note that a, b, c, and C in equation (6) are all arbitrary constants. First, the constraint information conversion unit 1110 normalizes equation (6).

[0157] Specifically, the constraint information conversion unit 1110 transforms the equation (6) so that only the inequality sign "≦" is used in the equation representing the Weighted Sum constraint.

[0158] For example, if the equality sign "=" is used, the constraint information conversion unit 1110 prepares both an expression in which the inequality sign "≧" is used instead of the equality sign "=", and an expression in which the inequality sign "≦" is used instead of the equality sign "=".

[0159] Furthermore, if the inequality sign "≧" is used, the constraint information conversion unit 1110 multiplies both sides of equation (6) by -1.

[0160] Next, the constraint information conversion unit 1110 transforms equation (6) so that the coefficients of the equation representing the Weighted Sum constraint become positive. For example, suppose the equation representing the Weighted Sum constraint is -ax1···≦C, where a is positive. Since -a(1-¬x1)···≦C, the constraint information conversion unit 1110 can transform the equation representing the Weighted Sum constraint to a·x1···≦C+a. Hereinafter, x1 or ¬x1 will be represented as l1.

[0161] Next, the constraint information conversion unit 1110 sorts the terms of the equation representing the Weighted Sum constraint in descending order of coefficient. Equation (6) is converted into, for example, the following equation (7).

[0162]

number

[0163] In the following, when the equation representing the Weighted Sum constraint is a1+bl2+cl3≦C(a≧b≧c), it is assumed that l2 is determined to be true, for example.

[0164] The constraint interpretation unit 1122 checks each term in the order of al1, bl2, and cl3. i is true, the constraint interpreter 1122 i The coefficient of is subtracted from the right-hand side of the equation. For example, since l2 is true, the right-hand side becomes Cb. Since there may be other true variables besides l2, which is true, the constraint interpretation unit 1122 checks each term in order from the left.

[0165] If the right-hand side becomes negative while the above check is repeated, a contradiction occurs. i l that is true i is set as a variable to be included in the clause of the basis. Next, the constraint interpreter 1122 generates clauses (|l1 ∨|l2) and so on.

[0166] Note that there may be true variables after the term whose right-hand side is confirmed to be negative for the first time. However, since a shorter clause to be learned is a more general and better clause, the constraint interpretation unit 1122 does not check the remaining terms after it is confirmed that the right-hand side is negative, so that the clause to be learned will be shorter.

[0167] If the right-hand side remains positive after checking up to the last term, no contradiction occurs. Next, the constraint interpretation unit 1122 searches for determinable variables.

[0168] The constraint interpretation unit 1122 also performs the above check starting from the left term. Of the undetermined variables, variables whose coefficients are larger than those on the right side are required to be false. The constraint interpretation unit 1122 returns the variables to the DPLL·CDCL execution unit 1121 so that they are propagated to false by a unity.

[0169] For example, if the equation representing the Weighted Sum constraint is 3l1+2l2+1l3≦3 and l2 is true, then the right-hand side becomes 3−2=1. In other words, the variable of the term with a coefficient greater than 1 is not allowed to be true.

[0170] Therefore, if l1 is undetermined, the constraint interpreter 1122 returns l1 to the DPLL / CDCL execution unit 1121 so that it propagates to false. A clause of the basis is generated from the variables of the true term and the variables of the confirmed term. For example, the constraint interpreter 1122 dynamically generates a clause (|l1 ∨|l2).

[0171] Next, we will explain an example of handling conditional constraints together with CNF. A conditional constraint is a constraint such that a One Hot constraint or a Weighted Sum constraint is imposed when any variable (spin) is 0 or 1.

[0172] To express a conditional constraint in CNF, one can add ¬Condition∨ to each clause that makes up the CNF. For example, if the CNF is (x∨y)∧(p∨q) and the variable representing the condition is c, consider expressing that the constraint represented by the CNF is imposed when c is 1. c→(x∨y)∧(p∨q) is ¬c∨((x∨y)∧(p∨q)), which is converted to the clause (¬c∨x∨y)∧(¬c∨p∨q).

[0173] The constraint interpretation unit 1122 of this embodiment treats the converted clause with the meaning of the original constraint intact. Regardless of the constraint expressed by the converted clause, the constraint interpretation unit 1122 checks the variable corresponding to the Condition when checking for the presence or absence of a contradiction or a determinable variable.

[0174] For example, if c is true, then {x 1, x 2, When an at most one constraint is imposed on {x3}, the constraint interpretation unit 1122 checks whether c is true. If c is true, the constraint interpretation unit 1122 checks whether there is a contradiction or a determinable variable using the at most one constraint. If c is false or undefined, the constraint interpretation unit 1122 does nothing.

[0175] Furthermore, the constraint interpretation unit 1122 generates a clause of the basis including a variable corresponding to Condition. Specifically, the constraint interpretation unit 1122 adds ¬Condition∨ to the clause. For example, if c is true and x 1, If x2 is true, the constraint interpreter 1122 returns a contradiction to the DPLL·CDCL execution unit 1121 on the basis of the clause (|c∨|x1∨|x2).

[0176] [Explanation of operation] The operation of the simulated annealing apparatus 1000 of this embodiment will be described below with reference to Figures 10 and 11. Figure 10 is a flowchart showing the operation of the process of solving a combinatorial optimization problem by the simulated annealing apparatus 1000 according to the present disclosure.

[0177] First, flip constraint information of the combinatorial optimization problem to be solved is input to the constraint information conversion unit 1110 of the neighborhood solution generation unit 1100. The constraint information conversion unit 1110 normalizes constraints that satisfy predetermined conditions among the constraints indicated by the input flip constraint information into a format that can be processed by the constraint interpretation unit 1122.

[0178] Furthermore, the constraint information conversion unit 1110 converts the constraints indicated by the input flip constraint information, other than the constraints that satisfy a predetermined condition, into a SAT expressed in the CNF format (step S1010). The constraint information conversion unit 1110 inputs the normalized constraints and the generated SAT to the SAT solving unit 1120.

[0179] Next, the generated initial solution of the SAT is input to the SAT solving unit 1120. The initial solution of the SAT is, for example, a value (true or false) specified by the user, or a set of randomly generated values.

[0180] The SAT solving unit 1120 generates a set of variable values ​​by solving the input SAT while selecting the input initial solution value as the initial value (step S1020). For example, the process shown in FIG. 2 is the process of step S1020.

[0181] The SAT solving unit 1120 may solve a SAT input from an external source other than the constraint information conversion unit 1110. The SAT solving unit 1120 inputs the generated set of variable values ​​to the energy calculation unit 1200.

[0182] Next, the energy calculation unit 1200 calculates the energy based on the set of input variable values ​​(step S1030).

[0183] Next, the SAT solution finding unit 1120 selects one variable candidate to be flipped from among the variables included in the tentative solution (step S1040). Note that in the first iteration, the tentative solution is the set of variable values ​​generated in step S1020.

[0184] Next, the SAT solution unit 1120 executes the SAT solution process (step S1050).

[0185] Next, the SAT solution finding unit 1120 sets variables whose values ​​differ between the tentative solution and the solution candidates found in step S1050 as variable candidates to be flipped (step S1060). Next, the SAT solution finding unit 1120 inputs the solution candidates including the found group of variable candidates to be flipped to the energy calculation unit 1200.

[0186] Next, the energy calculation unit 1200 calculates the amount of change in energy when the input variable candidate set is flipped (step S1070). The energy calculation unit 1200 inputs the calculated amount of change in energy and the solution candidate to the transition determination unit 1300.

[0187] Next, the transition determination unit 1300 calculates the transition probability based on the input amount of change in energy and the temperature parameter (step S1080).

[0188] Next, the transition determination unit 1300 determines whether or not to accept the state transition based on the calculated transition probability (step S1090). If it determines not to accept the state transition ("reject" in step S1090), the transition determination unit 1300 proceeds to step S1110.

[0189] If it is determined that the state transition is to be accepted ("accept" in step S1090), the transition determination unit 1300 flips the variable candidates included in the solution candidates (step S1100). When the variable candidates are flipped, the solution candidate becomes the current tentative solution.

[0190] Next, the temperature control unit 1400 decreases the temperature parameter T (step S1110).

[0191] Next, the transition determination unit 1300 determines whether the combinatorial optimization problem solving process satisfies an end condition (step S1120). The end condition is, for example, that the number of times the processes of steps S1040 to S1110 have been repeatedly executed reaches a predetermined number.

[0192] If the combinatorial optimization problem solving process does not satisfy the termination condition (No in step S1120), the transition determination unit 1300 inputs the current tentative solution to the SAT solution solving unit 1120 (step S1130). The SAT solution solving unit 1120 executes the process of step S1040 again.

[0193] If the process of solving the combinatorial optimization problem satisfies the termination condition (Yes in step S1120), the transition determination unit 1300 outputs the current tentative solution as the optimal solution (step S1140). After outputting the tentative solution, the simulated annealing apparatus 1000 terminates the process of solving the combinatorial optimization problem.

[0194] Next, the SAT solution-finding process of step S1050, which is a sub-process constituting the combinatorial optimization problem-solving process shown in Fig. 10, will be described with reference to Fig. 11. Fig. 11 is a flowchart showing the operation of the SAT solution-finding process by the SAT solution-finding unit 1120 according to the present disclosure.

[0195] The DPLL·CDCL execution unit 1121 of the SAT solving unit 1120 first determines the values ​​of the selected variable candidates. Next, the DPLL·CDCL execution unit 1121 solves the input SAT according to the DPLL while selecting the values ​​of the tentative solutions as initial values. If a contradiction occurs during the solution, the DPLL·CDCL execution unit 1121 learns a new clause according to the CDCL (step S1051).

[0196] If there is no contradiction as a result of solving the SAT according to the DPLL and CDCL, the DPLL / CDCL execution unit 1121 inputs the variables after unit propagation to the constraint interpretation unit 1122 (step S1052).

[0197] Next, the constraint interpretation unit 1122 determines whether or not the input variables cause a contradiction with respect to the normalized constraint (step S1053).

[0198] If a contradiction is generated (Yes in step S1053), the constraint interpretation unit 1122 generates a clause of the basis using the variable that generated the contradiction (step S1055). Next, the constraint interpretation unit 1122 inputs the clause generated together with the contradiction to the DPLL·CDCL execution unit 1121 (step S1056). The DPLL·CDCL execution unit 1121 performs the process of step S1051 again.

[0199] If no contradiction occurs (No in step S1053), the constraint interpretation unit 1122 determines whether or not there is a determinable variable (step S1054). If there is no determinable variable (No in step S1054), the SAT solution solving unit 1120 returns to the combinatorial optimization problem solving process shown in FIG.

[0200] If there are determinable variables (Yes in step S1054), the constraint interpretation unit 1122 generates a basis clause using the determinable variables (step S1055). Next, the constraint interpretation unit 1122 inputs the generated clause together with the determinable variables to the DPLL·CDCL execution unit 1121 (step S1056). The DPLL·CDCL execution unit 1121 performs the process of step S1051 again.

[0201] As described above, the SAT solving unit 1120 of this embodiment solves a SAT expressed in the CNF format in which constraints other than the non-transformation constraint, which is a constraint that satisfies a predetermined condition among one or more constraints imposed on a combinatorial optimization problem, are transformed so that the non-transformation constraint is satisfied, thereby finding sets of values ​​of multiple variables of the combinatorial optimization problem that are candidate solutions to the combinatorial optimization problem and satisfy one or more constraints.

[0202] The SAT solving unit 1120 also includes a DPLL / CDCL executing unit 1121 that finds tentative solution candidates by solving the SAT, and a constraint interpreting unit 1122 that determines whether the found tentative solution candidates satisfy the no-conversion constraint.

[0203] As described above, a CNF consists of one or more clauses, each of which is connected to one or more variables. If the tentative solution candidate does not satisfy the no-transformation constraint, the constraint interpretation unit 1122 generates a clause using the variables that do not satisfy the no-transformation constraint of the tentative solution candidate. The DPLL / CDCL execution unit 1121 uses the generated clause to solve the SAT again.

[0204] Furthermore, if the tentative solution candidate satisfies the no-conversion constraint, the constraint interpretation unit 1122 identifies variables whose values ​​can be determined based on the no-conversion constraint among the variables whose values ​​are undetermined in the tentative solution candidate, and generates clauses using the identified variables. The DPLL / CDCL execution unit 1121 solves the SAT again using the generated clauses.

[0205] [Effect description] The SAT solving unit 1120 of this embodiment solves a SAT given in the CNF format in which constraints other than heavy constraints are converted. The SAT solving unit 1120 can seamlessly perform operations for determining variables based on heavy constraints, checking for the occurrence of contradictions, and solving the SAT.

[0206] In other words, since it is possible to obtain candidate solutions that also satisfy the heavy constraints by solving a SAT from which the heavy constraints have been removed, the SAT solving unit 1120 of this embodiment can obtain candidate solutions to a combinatorial optimization problem more quickly. The SAT solving unit 1120 of this embodiment has the functionality of an extended SAT solver. [Example]

[0207] The performance of the simulated annealing apparatus 1000 of this embodiment was evaluated using a traveling salesman problem and a nurse shift scheduling problem. Fig. 12 is an explanatory diagram showing the performance of the simulated annealing apparatus described in Patent Document 1 and the performance of the simulated annealing apparatus 1000 according to the present disclosure.

[0208] eil51 shown in Figure 12 is a traveling salesman problem provided in the benchmark called TSPLIB. eil51 was solved under the condition of 300 sweeps, all with one thread.

[0209] Additionally, nrp instances 1 to 12 shown in Figure 12 are nurse shift scheduling problems provided in the benchmark called Nurse Rostering Benchmark Instances. nrp instances 1 to 12 were solved under the condition of 100 sweeps, all with one thread.

[0210] Note that "sweep" refers to the number of tries to flip all input variables. The SAT solver also has the ability to launch multiple threads and start the solution process with different initial values ​​for each thread. In this example, this function was not used, so each problem was solved in one thread.

[0211] "Patent Document 1" shown in Fig. 12 describes the time required for the simulated annealing apparatus described in Patent Document 1 to solve each problem. Also, "This Disclosure" shown in Fig. 12 describes the time required for the simulated annealing apparatus 1000 of this embodiment to solve each problem.

[0212] Furthermore, the "speed improvement rate" shown in FIG. 12 indicates the ratio of the time required for the simulated annealing apparatus described in Patent Document 1 to the time required for the simulated annealing apparatus 1000 of this embodiment to solve each problem.

[0213] As shown in FIG. 12, the simulated annealing apparatus 1000 of this embodiment can solve problems approximately 1.5 to 4.5 times faster than the simulated annealing apparatus described in Patent Document 1.

[0214] The constraints imposed on each problem used in this example are relatively simple. The more complex the constraints imposed on each problem, the greater the "speed improvement rate" shown in Figure 12 is expected to be.

[0215] A specific example of the hardware configuration of the simulated annealing apparatus 1000 of this embodiment will be described below. Fig. 13 is an explanatory diagram showing an example of the hardware configuration of a simulated annealing apparatus according to the present disclosure.

[0216] 13 includes a CPU (Central Processing Unit) 11, a main memory unit 12, a communication unit 13, and an auxiliary memory unit 14. It also includes an input unit 15 for user operation and an output unit 16 for presenting the processing results or the progress of the processing contents to the user.

[0217] The simulated annealing apparatus 1000 is realized by software when the CPU 11 shown in FIG. 13 executes a program that provides the functions of each component.

[0218] That is, the CPU 11 loads a program stored in the auxiliary storage unit 14 into the main storage unit 12, executes it, and controls the operation of the simulated annealing apparatus 1000, thereby realizing each function by software.

[0219] 13 may include a DSP (Digital Signal Processor) instead of the CPU 11. Alternatively, the simulated annealing apparatus 1000 shown in FIG. 13 may include both the CPU 11 and a DSP.

[0220] The main memory unit 12 is used as a data working area and a data temporary saving area, and is, for example, a RAM (Random Access Memory).

[0221] The communication unit 13 has a function of inputting and outputting data to and from peripheral devices via a wired network or a wireless network (information communication network).

[0222] The auxiliary storage unit 14 is a non-transitory tangible storage medium, such as a magnetic disk, a magneto-optical disk, a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory), or a semiconductor memory.

[0223] The input unit 15 has a function of inputting data and processing commands, and is an input device such as a keyboard or a mouse.

[0224] The output unit 16 has a function of outputting data and is, for example, a display device such as a liquid crystal display device, or a printing device such as a printer.

[0225] As shown in FIG. 13, in the simulated annealing apparatus 1000, each component is connected to a system bus 17.

[0226] In the simulated annealing apparatus 1000 , the auxiliary storage unit 14 stores programs for implementing a neighborhood solution generation unit 1100 , an energy calculation unit 1200 , a transition determination unit 1300 , and a temperature control unit 1400 .

[0227] The simulated annealing apparatus 1000 may be implemented with a circuit including hardware components such as an LSI (Large Scale Integration) that implements the functions shown in FIG.

[0228] The simulated annealing apparatus 1000 may also be realized by hardware that does not include computer functions using elements such as a CPU. For example, some or all of the components may be realized by general-purpose circuits, dedicated circuits, processors, etc., or a combination of these. These may be configured by a single chip (e.g., the above-mentioned LSI), or by multiple chips connected via a bus. Some or all of the components may be realized by a combination of the above-mentioned circuits, etc., and a program.

[0229] Furthermore, some or all of the components of the simulated annealing apparatus 1000 may be configured as one or more information processing devices each including a calculation unit and a storage unit.

[0230] When some or all of the components are realized by multiple information processing devices, circuits, etc., the multiple information processing devices, circuits, etc. may be centrally or decentralized. For example, the information processing devices, circuits, etc. may be realized as a client-server system, a cloud computing system, or the like, in which they are connected via a communication network.

[0231] Next, an overview of the present disclosure will be described. Fig. 14 is a block diagram showing an overview of a combinatorial optimization problem solving device according to the present disclosure. A combinatorial optimization problem solving device 20 according to the present disclosure includes a solution solving unit 21 (e.g., a SAT solving unit 1120) that finds sets of values ​​of multiple variables of a combinatorial optimization problem that are candidate solutions to the combinatorial optimization problem and that satisfy one or more constraints, by solving a SAT expressed in a CNF format in which constraints other than an unconversion constraint, which is a constraint that satisfies a predetermined condition out of one or more constraints imposed on the combinatorial optimization problem, are converted so that the unconversion constraint is satisfied.

[0232] The solution-finding unit 21 may also include a solver (e.g., a DPLL / CDCL execution unit 1121) that finds a tentative solution candidate by solving the SAT, and a determination unit (e.g., a constraint interpretation unit 1122) that determines whether the found tentative solution candidate satisfies the no-transformation constraint.

[0233] With such a configuration, the combinatorial optimization problem solving device can find solution candidates for combinatorial optimization problems more quickly.

[0234] In addition, the CNF is composed of one or more clauses to which one or more variables are connected, and if the tentative candidate solution does not satisfy the no-transformation constraint, the determination unit may generate a clause using variables that do not satisfy the no-transformation constraint of the tentative candidate solution, and the solver may solve the SAT again using the generated clause.

[0235] With such a configuration, the combinatorial optimization problem solving device can seamlessly perform the operation of checking for the presence or absence of contradictions and the operation of solving the SAT.

[0236] In addition, if the tentative candidate solution obtained satisfies the no-conversion constraint, the determination unit may identify variables whose values ​​can be determined based on the no-conversion constraint among the variables whose values ​​are undetermined in the tentative candidate solution, generate clauses using the identified variables, and the solver may solve the SAT again using the generated clauses.

[0237] With such a configuration, the combinatorial optimization problem solving device can seamlessly perform the operation of determining variables and the operation of solving the SAT.

[0238] The solver may also solve the SAT using a simulated annealing method.

[0239] With such a configuration, the combinatorial optimization problem solving device can solve combinatorial optimization problems using the simulated annealing method.

[0240] The time required to solve a SAT in which the untransformed constraints are expressed in the converted CNF format may be longer than the time required to solve a SAT in which the constraints other than the untransformed constraints are expressed in the converted CNF format. The untransformed constraints may be one-hot constraints or weighted-sum constraints.

[0241] With such a configuration, the combinatorial optimization problem solving device can find solution candidates for combinatorial optimization problems more quickly.

[0242] Furthermore, some or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.

[0243] (Appendix 1) The system includes a solution unit that solves a Boolean Satisfiability Test (SAT) expressed in a Conjunctive Normal Form (CNF) format in which constraints other than a non-transformation constraint, which is a constraint that satisfies a predetermined condition among one or more constraints imposed on the combinatorial optimization problem, are transformed so that the non-transformation constraint is satisfied, thereby determining a set of values ​​of multiple variables of the combinatorial optimization problem that are candidate solutions to the combinatorial optimization problem and satisfy the one or more constraints. A combinatorial optimization problem solving device characterized by:

[0244] (Appendix 2) The solution part is A solver that finds tentative solution candidates by solving the SAT; and a determination unit that determines whether the tentative candidate solution satisfies the no-transformation constraint. 2. The combinatorial optimization problem solving device according to claim 1.

[0245] (Appendix 3) CNF is It consists of one or more clauses joined by one or more variables, The determination unit is If the tentative candidate solution does not satisfy the no-transformation constraint, a clause is generated using a variable of the tentative candidate solution that does not satisfy the no-transformation constraint; The solver is Solve the SAT again using the generated clauses 3. The combinatorial optimization problem solving device according to claim 2.

[0246] (Appendix 4) The determination unit is If the tentative candidate solution satisfies the no-conversion constraint, among the variables whose values ​​are undetermined in the tentative candidate solution, a variable whose value can be determined based on the no-conversion constraint is identified; Generate clauses using the identified variables; The solver is Solve the SAT again using the generated clauses 4. The combinatorial optimization problem solving device according to claim 3.

[0247] (Appendix 5) The solver uses simulated annealing to solve the SAT problem. 5. A combinatorial optimization problem solving device according to any one of appendix 2 to appendix 4.

[0248] (Appendix 6) The time required to solve a SAT in which untransformed constraints are expressed in the form of transformed CNF is longer than the time required to solve a SAT in which constraints other than the untransformed constraints are expressed in the form of transformed CNF. 6. A combinatorial optimization problem solving device according to any one of appendix 1 to appendix 5.

[0249] (Appendix 7) A non-transformation constraint is a One Hot constraint or a Weighted Sum constraint. 7. The combinatorial optimization problem solving device according to claim 6.

[0250] (Appendix 8) A method for solving a combinatorial optimization problem executed by a combinatorial optimization problem solving device, comprising: The combinatorial optimization problem solving device, A Boolean Satisfiability Testing (SAT) expressed in the form of Conjunctive Normal Form (CNF) in which constraints other than the non-transformation constraint, which is a constraint that satisfies a predetermined condition among one or more constraints imposed on a combinatorial optimization problem, is transformed so that the non-transformation constraint is satisfied, thereby obtaining a set of values ​​of multiple variables of the combinatorial optimization problem that are candidate solutions to the combinatorial optimization problem and satisfy the one or more constraints. A method for solving a combinatorial optimization problem.

[0251] (Appendix 9) A combinatorial optimization problem solving device Find tentative candidate solutions by solving SAT, Determine whether the tentative solution candidate satisfies the no-transformation constraint. A method for solving combinatorial optimization problems as described in Appendix 8.

[0252] (Appendix 10) CNF is It consists of one or more clauses joined by one or more variables, A combinatorial optimization problem solving device If the tentative candidate solution does not satisfy the no-transformation constraint, a clause is generated using a variable of the tentative candidate solution that does not satisfy the no-transformation constraint; Solve the SAT again using the generated clauses A method for solving a combinatorial optimization problem as described in Appendix 9.

[0253] (Appendix 11) A combinatorial optimization problem solving device If the tentative candidate solution satisfies the no-conversion constraint, among the variables whose values ​​are undetermined in the tentative candidate solution, a variable whose value can be determined based on the no-conversion constraint is identified; Generate clauses using the identified variables; Solve the SAT again using the generated clauses A method for solving a combinatorial optimization problem as described in Appendix 10.

[0254] (Appendix 12) A combinatorial optimization problem solving device Solving SAT using simulated annealing 12. A method for solving a combinatorial optimization problem according to any one of appendixes 9 to 11.

[0255] (Appendix 13) The time required to solve a SAT problem expressed in CNF format with untransformed constraints is The time required to solve the SAT in the transformed CNF format is longer than the time required to solve the SAT in the transformed CNF format. 13. A method for solving a combinatorial optimization problem according to any one of appendixes 8 to 12.

[0256] (Appendix 14) The no-transformation constraint is It is a One Hot or Weighted Sum constraint 14. A method for solving a combinatorial optimization problem as described in Appendix 13.

[0257] (Appendix 15) On the computer, A solution process for finding a set of values ​​of multiple variables of a combinatorial optimization problem that are candidate solutions to the problem and satisfy one or more constraints by solving a Boolean Satisfiability Test (SAT) expressed in the form of a Conjunctive Normal Form (CNF) in which constraints other than the non-transformation constraint, which is a constraint that satisfies a predetermined condition, are transformed from one or more constraints imposed on the combinatorial optimization problem so that the non-transformation constraint is satisfied. A combinatorial optimization problem solving program for executing the above.

[0258] (Appendix 16) On the computer, In the solution process, a tentative candidate solution is obtained by solving the SAT, and it is determined whether the tentative candidate solution satisfies the no-transformation constraint. A combinatorial optimization problem solving program described in Appendix 15.

[0259] (Appendix 17) A CNF consists of one or more clauses bound by one or more variables. On the computer, In the solution process, if a tentative candidate solution does not satisfy the no-transformation constraint, a clause is generated using variables of the tentative candidate solution that do not satisfy the no-transformation constraint, and the SAT is solved again using the generated clause. A combinatorial optimization problem solving program described in Appendix 16.

[0260] (Appendix 18) On the computer, In the solution process, if a tentative candidate solution satisfies the no-conversion constraint, among the variables whose values ​​are undetermined in the tentative candidate solution, variables whose values ​​can be determined based on the no-conversion constraint are identified, clauses are generated using the identified variables, and the SAT is solved again using the generated clauses. A combinatorial optimization problem solving program described in Appendix 17.

[0261] (Appendix 19) On the computer, In the solution process, the SAT is solved using the simulated annealing method. 19. A combinatorial optimization problem-solving program according to any one of appendices 16 to 18.

[0262] (Appendix 20) The time required to solve a SAT in which untransformed constraints are expressed in the form of transformed CNF is longer than the time required to solve a SAT in which constraints other than the untransformed constraints are expressed in the form of transformed CNF. 19. A combinatorial optimization problem-solving program according to any one of appendices 15 to 19.

[0263] (Appendix 21) A non-transformation constraint is a One Hot constraint or a Weighted Sum constraint. A combinatorial optimization problem solving program described in Appendix 20.

[0264] Although the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present disclosure within the scope of the present disclosure. Furthermore, each embodiment can be combined with other embodiments as appropriate. [Explanation of symbols]

[0265] 11 CPU 12 Main memory 13 Communications Department 14 Auxiliary storage 15 Input section 16 Output section 17 System Bus 20 Combinatorial optimization problem solving device 21 Solving section 1000 Simulated Annealing Machine 1100 Neighborhood solution generation unit 1110 Constraint information conversion unit 1120 SAT solving part 1121 DPLL / CDCL execution unit 1122 Constraint Interpreter 1200 Energy Calculation Department 1300 Transition judgment section 1400 Temperature control unit

Claims

1. The present invention provides a solution unit that solves a Boolean Satisfiability Testing (SAT) expressed in a Conjunctive Normal Form (CNF) format in which constraints other than a non-conversion constraint, which is a constraint that satisfies a predetermined condition among one or more constraints imposed on a combinatorial optimization problem, are converted so that the non-conversion constraint is satisfied, thereby determining a set of values ​​of multiple variables of the combinatorial optimization problem that are candidates for a solution to the combinatorial optimization problem and that satisfy the one or more constraints. A combinatorial optimization problem solving device comprising:

2. The solution part is A solver that finds tentative solution candidates by solving the SAT; and a determination unit for determining whether the tentative candidate solution satisfies the no-transformation constraint.

2. The apparatus for solving combinatorial optimization problems according to claim 1.

3. CNFs are It consists of one or more clauses joined by one or more variables, The determination unit is If the tentative candidate solution does not satisfy the no-transformation constraint, a clause is generated using a variable of the tentative candidate solution that does not satisfy the no-transformation constraint; The solver is Solve the SAT again using the generated clauses 3. The apparatus for solving combinatorial optimization problems according to claim 2.

4. The determination unit is If the tentative candidate for the solution satisfies the no-conversion constraint, a variable whose value can be determined based on the no-conversion constraint is identified among the variables whose values ​​are undetermined in the tentative candidate for the solution; Generate clauses using the identified variables; The solver is Solve the SAT again using the generated clauses 4. The apparatus for solving combinatorial optimization problems according to claim 3.

5. The solver uses simulated annealing to solve SAT.

5. The apparatus for solving a combinatorial optimization problem according to claim 2.

6. The time required to solve a SAT in which untransformed constraints are expressed in the form of transformed CNF is longer than the time required to solve a SAT in which constraints other than the untransformed constraints are expressed in the form of transformed CNF.

2. The apparatus for solving combinatorial optimization problems according to claim 1.

7. A non-transformation constraint is a One Hot constraint or a Weighted Sum constraint.

7. The apparatus for solving combinatorial optimization problems according to claim 6.

8. A Boolean Satisfiability Testing (SAT) expressed in the form of a Conjunctive Normal Form (CNF) in which constraints other than a non-transformation constraint, which is a constraint that satisfies a predetermined condition among one or more constraints imposed on a combinatorial optimization problem, is solved so that the non-transformation constraint is satisfied, thereby determining a set of values ​​of multiple variables of the combinatorial optimization problem that is a candidate solution to the combinatorial optimization problem and satisfies the one or more constraints. A method for solving a combinatorial optimization problem comprising:

9. On the computer, A solving process for finding a combination of values ​​of multiple variables of a combinatorial optimization problem that is a candidate solution to the combinatorial optimization problem and satisfies one or more constraints by solving a SAT (Boolean Satisfiability Testing) expressed in the form of CNF (Conjunctive Normal Form) in which constraints other than a non-transformation constraint, which is a constraint that satisfies a predetermined condition among one or more constraints imposed on the combinatorial optimization problem, are converted so that the non-transformation constraint is satisfied. A combinatorial optimization problem solving program for executing the above.

Citation Information

Patent Citations

  • Simulated annealing device and simulated annealing method

    WO2022264414A1