WO2022264414A1 - シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法 - Google Patents

シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法 Download PDF

Info

Publication number
WO2022264414A1
WO2022264414A1 PCT/JP2021/023239 JP2021023239W WO2022264414A1 WO 2022264414 A1 WO2022264414 A1 WO 2022264414A1 JP 2021023239 W JP2021023239 W JP 2021023239W WO 2022264414 A1 WO2022264414 A1 WO 2022264414A1
Authority
WO
WIPO (PCT)
Prior art keywords
solution
sat
combinatorial optimization
optimization problem
simulated annealing
Prior art date
Application number
PCT/JP2021/023239
Other languages
English (en)
French (fr)
Inventor
拓也 荒木
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2023528924A priority Critical patent/JPWO2022264414A1/ja
Priority to PCT/JP2021/023239 priority patent/WO2022264414A1/ja
Publication of WO2022264414A1 publication Critical patent/WO2022264414A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Definitions

  • the present invention relates to a simulated annealing device, a simulated annealing method and a simulated annealing program.
  • a quantum computer expresses a combinatorial optimization problem with an Ising model and uses quantum superposition to search for a state that minimizes an energy function corresponding to the objective function of the combinatorial optimization problem.
  • a quantum computer takes the energy function in the Ising model as input and solves a combinatorial optimization problem.
  • combinatorial optimization problems include the traveling salesman problem, the knapsack problem, the graph partitioning problem, and the nurse shift scheduling problem. Also, the combinatorial optimization problem may be another problem.
  • the Ising model is a statistical mechanics model that represents the spin behavior of a magnetic material.
  • the state of each spin is represented by "1" or "-1".
  • FIG. 9 is an explanatory diagram showing an example of a partially connected Ising model. As shown in FIG. 9, the Ising model is composed of lattice points representing either of two spin states (“1” or “ ⁇ 1”).
  • the arrows at the lattice points shown in FIG. 9 represent spins.
  • Upward arrows represent spins in the "1" state.
  • a downward arrow represents a spin whose state is "-1".
  • the lattice points shown in FIG. 9 interact with each other.
  • the direction of the spin changes so that the energy function in the Ising model becomes smaller.
  • the energy function in the Ising model is represented by the following formula (1).
  • s i and s j in equation (1) are variables representing spin states.
  • J ij is a constant corresponding to i and j.
  • hi is a constant corresponding to i .
  • QUBO Quadrattic Unconstrained Binary Optimization
  • x i and x j in equation (2) are variables representing spin states. Also, Q ij is a constant corresponding to i and j.
  • a simulated annealing method (simulated annealing method, hereinafter also referred to as the SA method), which inputs the energy function in the Ising model or QUBO, is used to find solutions to various combinatorial optimization problems in general. It is Combinatorial optimization problems can be solved even on classical computers when the SA method is used.
  • the SA method can handle various combinatorial optimization problems.
  • Combinatorial optimization problems formulated in the Ising model format or QUBO format can be solved by both quantum computers and classical computers.
  • the SA method is a general-purpose method that approximately solves combinatorial optimization problems.
  • the SA method solves a combinatorial optimization problem with the following four processes as one cycle.
  • the direction of the spin selected in step 2 above is reversed from “-1” to “1” or “1” to “-1”, and the spin is flipped. Calculate the amount of change in energy ⁇ .
  • the SA method accepts a spin flip in step 3 above if the calculated ⁇ is negative. Also, if the calculated ⁇ is positive, the SA scheme accepts spin flips with the probability calculated above.
  • the SA method if the flip is accepted, the spin selected in step 4 above is flipped. That is, the SA method searches for a state in which the energy becomes smaller while changing the direction of the spin (variable) one by one.
  • T is a temperature parameter.
  • FIG. 10 is an explanatory diagram showing an example of solving a combinatorial optimization problem using the SA method.
  • a curve in each rectangle shown in FIG. 10 represents an energy function.
  • the black circles in each rectangle shown in FIG. 10 are examples of energy values when the solution obtained by the SA method is used.
  • the graph shown in FIG. 10 represents changes in the temperature parameter T over time in solving the combinatorial optimization problem.
  • the graph shown in FIG. 10 represents the decrease of the temperature parameter T over time.
  • the SA method starts the solution-finding process from a random combination (solution) of multiple spin orientations, evaluates nearby solutions, and transitions. Because of the introduction of the temperature parameter T, the SA method can also transition in the direction of poor solution evaluation when T is high.
  • the SA method can overcome high peaks in the energy function if T is high. By crossing a high mountain and making a transition in the direction in which the solution evaluation is bad, the SA method can avoid finding the local optimum solution as the final solution of the combinatorial optimization problem.
  • the peak that can be overcome in the energy function gradually lowers, as in the middle stage of the solution-finding process shown in FIG. That is, the number of transitions in the direction in which the evaluation of the solution is bad is reduced.
  • the SA method will not be able to overcome the peak in the energy function. Ultimately, the SA method transitions to the deepest valley in the energy function with high probability and stabilizes, as in the latter stage of the solution-finding process shown in FIG.
  • the traveling salesman problem is the question of what order to visit each city in order to travel the minimum distance.
  • N 2 spins are defined for the number of cities N (N is a positive integer). Each spin also indicates that there is a salesman at point k at time t.
  • FIG. 11 is an explanatory diagram showing an example of a target city for the traveling salesman problem.
  • the black circles shown in FIG. 11 represent cities.
  • the lines shown in FIG. 11 represent routes.
  • the traveling salesman problem is the question of in what order city A, city B, city C, and city D should be visited so that the travel distance can be minimized.
  • an equation representing the energy in the traveling salesman problem is generated.
  • the traveling salesman problem is expressed in QUBO format.
  • the energy function in the traveling salesman problem is generated by adding a heavily weighted constraint term to the objective function.
  • the reason for adding the constraint term to the objective function is to impose the constraint on the optimization target (energy).
  • j represents time.
  • v and u represent cities.
  • W uv is the distance between city u and city v.
  • W uv is predetermined as a constant for each set of cities.
  • ⁇ and ⁇ are predetermined as constants.
  • Equation (3) expresses the constraint that the salesman must pass through the same city only once, that is, he cannot pass through the same city more than once.
  • Equation (3) expresses the constraint that the salesman is only in one city at the same time.
  • Equation (3) represents the sum of the distances between cities that salesmen pass through.
  • the third term on the right side is the objective function to be minimized.
  • the SA method identifies the state of each spin when the energy is minimized. Once the state of each spin at which the energy is minimized is identified, the optimal solution to the traveling salesman problem is obtained.
  • FIG. 12 is a schematic diagram showing an example of representation of the state of each spin in the traveling salesman problem. "1" or "0" shown in FIG. 12 corresponds to spin (variable).
  • the spins shown in FIG. 12 correspond to City A, City B, City C, and City D in order from the left. Also, the spins shown in FIG. 12 correspond to time 1, time 2, time 3, and time 4, respectively, from the top. That is, FIG. 12 shows a route that goes around city A, city C, city B, and city D in this order.
  • the original problem space of the traveling salesman problem is N! if there are N cities.
  • the traveling salesman problem is transformed into the Ising model form, etc., the problem space increases to 2 to the N square.
  • the SA method calculates the amount of change in energy ⁇ for any of the many spin combinations that do not satisfy the constraints in the problem space.
  • the SA method excludes combinations that do not satisfy the constraint from solution candidates.
  • the SA method solves a combinatorial optimization problem using an energy function including constraint terms in the Ising model or QUBO, the accuracy of the obtained solution deteriorates, or until an optimal or suboptimal solution is obtained. may increase the computational time required for
  • Patent Document 1 A solution-seeking system for solving the above problems is described in Patent Document 1.
  • the solution-seeking system described in Patent Literature 1 flips the spins so as to satisfy the constraint terms.
  • the solution-seeking system described in Patent Document 1 uses a one-hot constraint that satisfies "1" for only one spin in a combination of spins (variables).
  • the solution-seeking system described in Patent Document 1 that uses the one-hot constraint flips the other spins of "0" at the same time when flipping the only "1" spin.
  • Non-Patent Document 1 describes a method of converting constraints into SAT (Boolean Satisfiability Testing).
  • Patent Document 1 does not support flipping the spin so that all constraints are satisfied when multiple constraints are imposed on the combinatorial optimization problem.
  • FIG. 13 is a schematic diagram showing another representation example of the state of each spin in the traveling salesman problem.
  • variable x A,1 and the variable x C,2 are flipped like the state of each spin shown on the right side of FIG. "become. That is, the one-hot constraint on time 2 and the one-hot constraint on city A are no longer satisfied.
  • Non-Patent Document 1 does not describe flipping spins so that all constraints are satisfied when multiple constraints are imposed on a combinatorial optimization problem.
  • an object of the present invention is to provide a simulated annealing apparatus, a simulated annealing method, and a simulated annealing program that can easily obtain candidate solutions that satisfy all of the constraints imposed on a combinatorial optimization problem.
  • the simulated annealing apparatus solves SAT (Boolean Satisfiability Testing) expressed in CNF (Conjunctive Normal Form) format in which constraint information representing one or more constraints imposed on a combinatorial optimization problem is converted. and finding a set of values of a plurality of variables of the combinatorial optimization problem satisfying one or more constraints, which are candidates for the solution of the combinatorial optimization problem.
  • SAT Boolean Satisfiability Testing
  • the simulated annealing method according to the present invention solves SAT (Boolean Satisfiability Testing) expressed in the form of CNF (Conjunctive Normal Form) in which constraint information indicating one or more constraints imposed on a combinatorial optimization problem is converted. to obtain a set of values of a plurality of variables of a combinatorial optimization problem that satisfy one or more constraints, which are candidates for the solution of the combinatorial optimization problem.
  • SAT Boolean Satisfiability Testing
  • the simulated annealing program according to the present invention provides a computer with SAT (Boolean Satisfiability Testing) in which constraint information indicating one or more constraints imposed on a combinatorial optimization problem is converted and expressed in CNF (Conjunctive Normal Form) format. ) to find a set of values of a plurality of variables of a combinatorial optimization problem satisfying one or more constraints, which are candidates for the solution of the combinatorial optimization problem.
  • SAT Boolean Satisfiability Testing
  • FIG. 1 is a block diagram showing a configuration example of a simulated annealing apparatus according to an embodiment of the present invention
  • FIG. FIG. 11 is an explanatory diagram showing an example of processing in which the SAT solution-finding unit 112 solves the SAT
  • FIG. 10 is an explanatory diagram showing an example in which the SAT solution-seeking unit 112 searches for solution candidates in the process of finding a solution to a combinatorial optimization problem
  • FIG. 11 is an explanatory diagram showing another example in which the SAT-solving unit 112 searches for solution candidates in the process of finding a solution to a combinatorial optimization problem
  • 4 is a flowchart showing the operation of combinatorial optimization problem solving processing by the simulated annealing apparatus 100 of the present embodiment.
  • FIG. 4 is a flow chart showing the operation of another combinatorial optimization problem solving process by the simulated annealing apparatus 100 of the present embodiment.
  • 1 is an explanatory diagram showing a hardware configuration example of a simulated annealing apparatus according to the present invention
  • FIG. 1 is a block diagram showing an outline of a simulated annealing apparatus according to the present invention
  • FIG. 10 is an explanatory diagram showing an example of a partially connected Ising model
  • FIG. 10 is an explanatory diagram showing an example of solving a combinatorial optimization problem by the SA method
  • FIG. 4 is an explanatory diagram showing an example of a target city for the traveling salesman problem
  • FIG. 4 is a schematic diagram showing an example of representation of the state of each spin in the traveling salesman problem
  • FIG. 11 is a schematic diagram showing another representation example of the state of each spin in the traveling salesman problem;
  • FIG. 1 is a block diagram showing a configuration example of a simulated annealing apparatus according to an embodiment of the present invention.
  • the simulated annealing apparatus 100 of this embodiment includes a neighborhood solution generation unit 110, an energy calculation unit 120, a transition determination unit 130, and a temperature control unit 140.
  • the neighborhood solution generation unit 110 of this embodiment includes a constraint information conversion unit 111 and a SAT solution calculation unit 112 .
  • the simulated annealing apparatus 100 of this embodiment is characterized by searching for combinations of spins (variables) that satisfy all the constraints imposed on the combinatorial optimization problem using the SAT solver.
  • SAT is the problem of determining whether there exists a value that makes a given logical expression true.
  • a SAT solver is a system that solves the SAT.
  • SAT is given in the form of CNF (Conjunctive Normal Form).
  • CNF Consjunctive Normal Form
  • xi in equation (4) is a variable representing either true or false.
  • ⁇ in equation (4) means OR, “ ⁇ ” means AND, and “ ⁇ ” means NOT.
  • (x 1 ⁇ x 2 ), etc. in equation (4) are called clauses.
  • the simulated annealing apparatus 100 of this embodiment regards xi as variables in QUBO and SAT given in the form of CNF as constraints imposed on the combinatorial optimization problem. Generate a set of values. The function of each component of the simulated annealing apparatus 100 of this embodiment will be described below.
  • the constraint information conversion unit 111 of the neighborhood solution generation unit 110 has a function of converting constraint information indicating constraints imposed on the combinatorial optimization problem to be solved into SAT expressed in CNF format. Constraint information is input to the constraint information conversion unit 111 .
  • Non-Patent Document 1 A method of expressing one-hot constraints in CNF is described, for example, in Non-Patent Document 1.
  • Non-Patent Document 1 for example, the following equation (5), which is a generalized constraint, is subject to conversion.
  • the constraint information conversion unit 111 inputs the generated SAT represented in the CNF format to the SAT solution calculation unit 112 .
  • the SAT represented in the CNF format in which constraints other than the one-hot constraint have been converted may be input directly from the outside to the SAT solving unit 112 . If the SAT represented in the CNF format is directly input from the outside to the SAT solving section 112 , the constraint information converting section 111 does not have to be provided in the neighborhood solution generating section 110 .
  • the SAT solving unit 112 has a function of solving the SAT expressed in the input CNF format. That is, the SAT solving section 112 is a component corresponding to the SAT solver.
  • the SAT solver 112 inputs the solution candidates of the combinatorial optimization problem obtained by the solver to the energy calculator 120 .
  • the energy calculation unit 120 has a function of calculating the amount of change ⁇ in energy based on the input candidate solution, which is the process of step 2 above.
  • the energy calculator 120 handles an energy function as shown in Equation (3), for example.
  • the energy function handled by the energy calculation unit 120 may not include a constraint term.
  • the reason for this is that the candidate solution input to the energy calculation unit 120 always satisfies the constraint, so that the constraint term in the energy function becomes 0 when the candidate solution is substituted.
  • the energy calculation unit 120 inputs the calculated energy change amount ⁇ to the transition determination unit 130 .
  • the transition determination unit 130 has a function of determining whether or not to accept the spin flip in the solution candidate using the input energy change amount ⁇ , which is the process of step 3 above. If the flip is accepted, transition determination section 130 flips the spin in the solution candidate as the process of step 3 above.
  • the temperature control unit 140 has a function of controlling the temperature parameter T. As shown in FIG. 10, the temperature control unit 140 decreases the temperature parameter T as the time of the solution-finding process elapses.
  • the SAT solver ends processing when it finds one SAT solution.
  • SA after one variable is flipped from the current combination of variables, it is required to obtain a combination that satisfies the constraint while keeping other variables unchanged as much as possible.
  • the SAT solver 112 of this embodiment operates according to an algorithm called DPLL (Davis-Putnam-Logemann-Loveland).
  • the SAT solver 112 searches for definite xi in the SAT expressed in CNF format. If there is no definite xi , the SAT solver 112 selects one variable from xi and sets the selected xi to true or false.
  • the SAT solver 112 substitutes the determined xi into the SAT represented in the CNF format.
  • a definite xi is substituted, a new definite xi is generated.
  • SAT solver 112 obtains a combination of variables by repeating unit propagation.
  • FIG. 2 is an explanatory diagram showing an example of processing for solving the SAT by the SAT solution finding unit 112.
  • the SAT solving unit 112 solves the SAT shown in Equation (4).
  • (1), (2), . . . shown in FIG. 2 represent stages of processing.
  • the circles shown in FIG. 2 represent the state of combinations of variables at each stage.
  • FIG. 2 The straight arrows shown in FIG. 2 represent the setting of variables and the change of states. Also, ⁇ x i , . . . ⁇ shown in FIG. 2 represent fixed combinations of variables. ⁇ shown in FIG. 2 represents an initial state of an empty set. Note that the meanings of the notations shown in FIG. 2 are the same in FIGS. 3 and 4 as well.
  • the SAT solver 112 sets x1 to false. If x1 is set to false, the clause ( x1 ⁇ x2 ) establishes x2 to be false. Thus, after step (1), the fixed combination of variables is ⁇ x1 , ⁇ x2 ⁇ .
  • the SAT solution-finding unit 112 sets x3 to false. If x3 is set to false, the clause ( x1 ⁇ x3 ⁇ x4 ) establishes x4 to be false. However, the clause (x 3 ⁇ x 4 ) confirms that x 4 is true.
  • the SAT solution finding unit 112 determines that the setting of x3 is incorrect, and backtracks to the previous state. Then, in step (3), the SAT solver 112 resets x3 to true.
  • the SAT solution finding unit 112 determines that the setting of x1 is incorrect, and backtracks to the previous state. Then, in step (4), the SAT solver 112 resets x1 to true.
  • step (4) Even if x1 is set to true, there are no variables to be determined. Thus, after step (4), the fixed variable combination is ⁇ x 1 ⁇ .
  • step (5) the SAT solver 112 sets x3 to false. If x3 is set to false, the clause ( x3 ⁇ x4 ) establishes x4 to be true. Thus, after step (5), the fixed combination of variables is ⁇ x 1, ⁇ x 3, x 4 ⁇ .
  • step (6) the SAT solver 112 sets x2 to false. Even if x2 is set to false, there is no fixed variable. Thus, after step (6), the fixed combination of variables is ⁇ x 1, ⁇ x 2, ⁇ x 3, x 4 ⁇ .
  • step (7) the SAT solver 112 sets x5 to false. If x5 is set to false then all clauses are satisfied.
  • step (7) the combination of variables is determined as ⁇ x 1, ⁇ x 2, ⁇ x 3, x 4, ⁇ x 5 ⁇ , so the SAT solving unit 112 terminates the process of solving the SAT. do.
  • the processing for solving the SAT is depth-first search processing, as shown in FIG.
  • the solution candidate As described above, in SA, after one variable is flipped from the current combination of variables, it is required to obtain a combination (solution candidate) that satisfies the constraints while the other variables remain unchanged as much as possible.
  • the current combination of variables is the solution candidate ⁇ x 1, ⁇ x 2, ⁇ x 3, x 4, ⁇ x 5 ⁇ shown in Fig. 2, or the temporary combinatorial optimization problem solved by the SA method. is the solution.
  • the SAT solving unit 112 that sets variable values according to the DPLL uses current variable values as much as possible.
  • Methods that use the current variable values as much as possible include “1. method of first setting the variable candidate to be flipped and then resolving” and “2. There are two ways of tracking. Each method will be described below.
  • FIG. 3 is an explanatory diagram showing an example in which the SAT solution finding unit 112 searches for solution candidates in the process of finding a solution to a combinatorial optimization problem.
  • the SAT solution finding unit 112 searches for solution candidates according to "1. method of first setting variable candidates to be flipped and then resolving".
  • the SAT solver 112 re-solves the SAT based on the solution candidates ⁇ x1 , .omega.x2 , .omega.x3 , x4 , .omega.x5 ⁇ shown in FIG.
  • the SAT solving section 112 solves the SAT shown in Equation (4).
  • the SAT solving unit 112 first sets x2 as a variable candidate to be flipped. Therefore, in step (8), the SAT solver 112 sets x2 to true.
  • the clause ( x1 ⁇ x2 ) establishes x1 to be true.
  • the fixed variable combination is ⁇ x 1 , x 2 ⁇ .
  • the SAT solution-finding unit 112 sets x3 , which was false in the previous solution candidate, to false. If x3 is set to false, the clause ( x3 ⁇ x4 ) establishes x4 to be true.
  • the fixed combination of variables is ⁇ x 1, x 2, ⁇ x 3, x 4 ⁇ .
  • the SAT solution-finding unit 112 sets x5 , which was false in the previous solution candidate, to false. If x5 is set to false then all clauses are satisfied.
  • step (10) the combination of variables is determined as ⁇ x 1, x 2, ⁇ x 3, x 4, ⁇ x 5 ⁇ , so the SAT solving unit 112 terminates the process of solving the SAT. .
  • the value of the variable after flipping does not satisfy the constraint, the value of the variable is changed after backtracking. In the example shown in FIG. 3, even if x1 is set as a flip target variable candidate, the constraint is not satisfied.
  • FIG. 4 is an explanatory diagram showing another example in which the SAT solution finding unit 112 searches for solution candidates in the process of finding a solution to a combinatorial optimization problem.
  • the SAT solution finding unit 112 searches for solution candidates according to "2. Method of forcibly backtracking on the previously generated search tree".
  • the SAT solving unit 112 forcibly backtracks from the state where the solution candidates ⁇ x 1, ⁇ x 2, ⁇ x 3, x 4, ⁇ x 5 ⁇ shown in FIG. 2 are obtained. and explore other options.
  • the SAT solving section 112 solves the SAT shown in Equation (4).
  • the search tree shown in FIG. 4 is composed of one or more nodes that represent a set of multiple variable values generated when candidate solutions to a combinatorial optimization problem are sought. Note that even when the SAT solving unit 112 searches for solution candidates based on the provisional solution of the combinatorial optimization problem solved by the SA method, a similarly generated search tree is used.
  • the SAT solver 112 backtracks from the state a in which the first solution candidate is obtained to the state b in which the variable x5 is set.
  • the backtrack width is "1" when backtracking from state a to state b.
  • the SAT solver 112 sets x5 to true.
  • x5 is set to true, all clauses are satisfied. Therefore, in state c, the combination of variables is determined as ⁇ x1 , ⁇ x2 , ⁇ x3 , x4, x5 ⁇ .
  • the SAT solver 112 further backtracks the search tree. For example, the SAT solver 112 backtracks from the state a in which the first solution candidate is obtained to the state d in which the variable x2 is set.
  • the backtrack width for backtracking from state a to state d is "2".
  • the SAT solving unit 112 searches for nodes that have not yet been generated in the search tree by solving the SAT starting from the node indicating the provisional solution.
  • the SAT solution obtaining unit 112 obtains a set of values of a plurality of variables indicated by the searched node as solution candidates.
  • the SAT solution-obtaining unit 112 solves the SAT again and recreates the search tree.
  • the SAT solving unit 112 changes the shape of the generated search tree by randomly changing the order of variable selection.
  • the simulated annealing apparatus 100 of this embodiment is particularly effective when solving problems that are difficult to satisfy all the imposed constraints, such as Sudoku (registered trademark) and nurse shift scheduling problems. was done. In addition, compared to "1. Method of first setting a variable candidate to be flipped and then resolving", "2. Method of forcibly backtracking on the search tree generated last time” is more combinatorially optimal. It has also been confirmed that the problem can be solved about 10 times faster.
  • the SAT solving unit 112 of the present embodiment solves the SAT represented in the CNF format in which the constraint information indicating one or more constraints imposed on the combinatorial optimization problem is converted, A set of values of a plurality of variables of a combinatorial optimization problem that satisfy one or more constraints that are candidate solutions for the combinatorial optimization problem are determined. Also, the constraint information conversion unit 111 converts the constraint information into SAT.
  • the combinatorial optimization problem to be solved by the simulated annealing device 100 is the nurse shift scheduling problem.
  • FIG. 5 is a flow chart showing the operation of the combinatorial optimization problem solving process by the simulated annealing apparatus 100 of this embodiment.
  • FIG. 5 shows the combinatorial optimization problem solving process when the SAT solving unit 112 employs “1. method of first setting variable candidates to be flipped and then resolving”.
  • the constraint information of the combinatorial optimization problem to be solved is input to the constraint information conversion unit 111 of the neighborhood solution generation unit 110 .
  • the constraint information conversion unit 111 converts the input constraint information into SAT expressed in CNF format (step S101).
  • the constraint information conversion unit 111 inputs the generated SAT to the SAT solution calculation unit 112 .
  • the generated initial solution of the SAT is input to the SAT solution finding unit 112 .
  • the initial solution of the SAT is, for example, a user-specified value (true or false) or a randomly generated set of values.
  • the SAT solving unit 112 solves the input SAT while selecting the input initial solution value as the initial value, thereby generating a set of variable values that satisfy the constraints (step S102). For example, the process shown in FIG. 2 is the process of step S102.
  • the SAT solving unit 112 may solve the SAT input from outside other than the constraint information converting unit 111.
  • the SAT solver 112 inputs the generated set of variable values to the energy calculator 120 .
  • the energy calculation unit 120 calculates energy based on the set of input variable values (step S103).
  • the SAT solution obtaining unit 112 selects one variable candidate to be flipped from among the variables included in the provisional solution (step S104). Note that in the first iterative process, the provisional solution is a set of variable values generated in step S102.
  • the SAT solving unit 112 first sets the value of the selected variable candidate. Next, the SAT solving unit 112 solves the input SAT while selecting the value of the provisional solution as the initial value (step S105).
  • the SAT solution finding unit 112 takes variables whose values differ between the provisional solution and the solution candidate found in step S105 as flip target variable candidates (step S106).
  • the SAT solution-obtaining unit 112 inputs to the energy calculating unit 120 solution candidates including the obtained variable candidate group to be flipped.
  • the energy calculation unit 120 calculates the amount of change in energy when the input variable candidate group is flipped (step S107).
  • the energy calculation unit 120 inputs the calculated amount of change in energy and the solution candidates to the transition determination unit 130 .
  • the transition determination unit 130 calculates a transition probability based on the input amount of change in energy and the temperature parameter (step S108).
  • the transition determination unit 130 determines whether or not to accept the state transition based on the calculated transition probability (step S109). When determining that the state transition is not accepted ("reject" in step S109), the transition determination unit 130 proceeds to step S111.
  • the transition determining unit 130 flips the variable candidate group included in the solution candidate (step S110).
  • the solution candidate becomes the current provisional solution.
  • the temperature control unit 140 decreases the temperature parameter T (step S111).
  • the transition determination unit 130 determines whether or not the solution-finding process satisfies a termination condition (step S112).
  • the end condition is, for example, that the number of times the processes of steps S104 to S111 have been repeatedly executed reaches a predetermined number of times.
  • step S112 If the solution-finding process does not satisfy the end condition (No in step S112), the transition determination unit 130 inputs the current provisional solution to the SAT solution-finding unit 112 (step S113). The SAT solving unit 112 executes the process of step S104 again.
  • the transition determination unit 130 outputs the current provisional solution as the optimum solution (step S114). After outputting, the simulated annealing apparatus 100 ends the combinatorial optimization problem-solving process.
  • FIG. 6 is a flow chart showing the operation of another combinatorial optimization problem solving process by the simulated annealing apparatus 100 of this embodiment.
  • FIG. 6 shows a combinatorial optimization problem-solving process when the SAT solving unit 112 adopts "2. method of forcibly backtracking on the previously generated search tree".
  • the SAT solving unit 112 backtracks by the backtrack width on the search tree generated when the provisional solution was obtained, starting from the state where the provisional solution was obtained.
  • the provisional solution is a set of variable values generated in step S202.
  • the SAT solving unit 112 solves the input SAT after changing the variable values in the backtracked state. After solving the SAT, the SAT solving unit 112 increases the backtrack width by one (step S204).
  • the SAT solution obtaining unit 112 sets variables having different values between the provisional solution and the solution candidate obtained in step S204 as flip target variable candidates (step S205).
  • the SAT solution-obtaining unit 112 inputs to the energy calculating unit 120 solution candidates including the obtained variable candidate group to be flipped.
  • the SAT solution-seeking unit 112 determines whether or not the current backtrack width is greater than the threshold (step S212).
  • the transition determination unit 130 inputs the current provisional solution to the SAT solution-finding unit 112.
  • the SAT solution obtaining unit 112 sets the input from the transition determination unit 130 as the provisional solution (step S214), and executes the process of step S204 again.
  • the SAT solving unit 112 selects the value of the provisional solution as the initial value while re-solving the SAT input in random variable order. do. After re-solving the SAT, the SAT-solving unit 112 sets the backtrack width to "1" (step S213).
  • the SAT solution finding unit 112 sets the solution candidate found in step S213 as a provisional solution (step S214).
  • the SAT solving unit 112 executes the process of step S204 again.
  • the transition determination unit 130 outputs the current provisional solution as the optimum solution (step S215). After outputting, the simulated annealing apparatus 100 ends the combinatorial optimization problem-solving process.
  • the SAT solving unit 112 uses Select one variable candidate to be flipped from among the included variables, change the value of the selected variable candidate, and solve the SAT to find the solution candidate for the combinatorial optimization problem.
  • the SAT solving unit 112 obtains a temporary solution of the combinatorial optimization problem solved by the SA method. Search for nodes that have not yet been generated in the search tree, which consists of one or more nodes that indicate pairs of values of multiple variables that were generated when Then, the set indicated by the found node is obtained as a solution candidate.
  • the SAT solving unit 112 uses the value of the provisional solution as the initial value of the variable, and among the variables included in the obtained solution candidate, the variable whose value has been changed from the initial value is Set as a variable candidate to be flipped.
  • the transition determination unit 130 determines whether or not to accept the flip of the variable candidate to be flipped included in the solution candidate.
  • the transition determination unit 130 flips the variable candidate determined to accept the flip, and updates the provisional solution to the solution candidate to which the variable candidate is flipped.
  • the simulated annealing apparatus 100 of this embodiment includes a constraint information conversion unit 111 that converts constraint information indicating constraints imposed on a combinatorial optimization problem to be solved into SAT expressed in CNF format.
  • the simulated annealing apparatus 100 also includes a SAT solving section 112 that solves the SAT expressed in the input CNF format.
  • the SAT solver 112 can find a solution candidate for a combinatorial optimization problem that satisfies the constraints as a SAT solver, so all constraints imposed on the combinatorial optimization problem
  • the search for the solution can proceed while satisfying
  • the simulated annealing apparatus 100 of the present embodiment imposes a plurality of constraints compared to the solution-seeking system described in Patent Document 1, even if it is implemented by a classical computer. It can easily solve combinatorial optimization problems.
  • FIG. 7 is an explanatory diagram showing a hardware configuration example of the simulated annealing apparatus according to the present invention.
  • a simulated annealing device 100 shown in FIG. It also has an input unit 15 for user operation, and an output unit 16 for presenting the processing result or the progress of the processing content to the user.
  • the simulated annealing apparatus 100 is realized by software by the CPU 11 shown in FIG. 7 executing a program that provides the functions of each component.
  • the CPU 11 loads the program stored in the auxiliary storage unit 14 into the main storage unit 12, executes it, and controls the operation of the simulated annealing device 100, whereby each function is realized by software.
  • the simulated annealing apparatus 100 shown in FIG. 7 may have a DSP (Digital Signal Processor) instead of the CPU 11.
  • the simulated annealing apparatus 100 shown in FIG. 7 may include both the CPU 11 and DSP.
  • the main storage unit 12 is used as a data work area and a data temporary save area.
  • the main storage unit 12 is, for example, a RAM (Random Access Memory).
  • the communication unit 13 has a function of inputting data to and outputting data from peripheral devices via a wired network or a wireless network (information communication network).
  • the auxiliary storage unit 14 is a non-temporary tangible storage medium.
  • non-temporary tangible storage media include magnetic disks, magneto-optical disks, CD-ROMs (Compact Disk Read Only Memory), DVD-ROMs (Digital Versatile Disk Read Only Memory), and semiconductor memories.
  • the input unit 15 has a function of inputting data and processing instructions.
  • the input unit 15 is, for example, an input device such as a keyboard or mouse.
  • the output unit 16 has a function of outputting data.
  • the output unit 16 is, for example, a display device such as a liquid crystal display device, or a printing device such as a printer.
  • each component is connected to the system bus 17.
  • the auxiliary storage unit 14 stores programs for realizing the neighborhood solution generation unit 110, the energy calculation unit 120, the transition determination unit 130, and the temperature control unit 140.
  • simulated annealing apparatus 100 may be implemented with a circuit containing hardware components such as LSI (Large Scale Integration) that implements the functions shown in FIG.
  • LSI Large Scale Integration
  • the simulated annealing apparatus 100 may be realized by hardware that does not include computer functions using elements such as a CPU.
  • part or all of each component may be implemented by general-purpose circuitry, dedicated circuitry, processors, etc., or combinations thereof. These may be composed of a single chip (for example, the LSI described above), or may be composed of a plurality of chips connected via a bus. A part or all of each component may be implemented by a combination of the above-described circuit or the like and a program.
  • some or all of the components of the simulated annealing device 100 may be composed of one or more information processing devices each having a computing unit and a storage unit.
  • the plurality of information processing devices, circuits, etc. may be centrally arranged or distributed.
  • the information processing device, circuits, and the like may be implemented as a client-and-server system, a cloud computing system, or the like, each of which is connected via a communication network.
  • FIG. 8 is a block diagram outlining a simulated annealing apparatus according to the present invention.
  • the simulated annealing device 20 solves the SAT expressed in the form of CNF in which constraint information indicating one or more constraints imposed on the combinatorial optimization problem is converted, thereby solving the combinatorial optimization problem. It comprises a solution finding means 21 (for example, SAT solution finding section 112) that finds a set of values of a plurality of variables of a combinatorial optimization problem that satisfies one or more constraints as solution candidates.
  • SAT solution finding section 112 finds a set of values of a plurality of variables of a combinatorial optimization problem that satisfies one or more constraints as solution candidates.
  • the simulated annealing device can easily find solution candidates that satisfy all of the multiple constraints imposed on the combinatorial optimization problem.
  • the simulated annealing device 20 may also include conversion means (for example, the constraint information conversion unit 111) that converts the constraint information into SAT.
  • conversion means for example, the constraint information conversion unit 111 that converts the constraint information into SAT.
  • the simulated annealing device can convert constraint information into SAT.
  • the solution finding means 21 selects one variable candidate to be flipped from variables included in the provisional solution of the combinatorial optimization problem solved by the simulated annealing method, and changes the value of the selected variable candidate. After that, the solution candidates for the combinatorial optimization problem may be obtained by solving the SAT.
  • the simulated annealing device can easily find solution candidates that satisfy all of the multiple constraints imposed on the combinatorial optimization problem.
  • the solution obtaining means 21 is composed of one or more nodes indicating a set of values of a plurality of variables generated when a provisional solution of the combinatorial optimization problem solved by the simulated annealing method is obtained. It is also possible to search for nodes that have not yet been generated in the existing search tree by solving the SAT, and obtain the pairs indicated by the searched nodes as solution candidates.
  • the simulated annealing device can solve combinatorial optimization problems faster.
  • the solution obtaining means 21 uses the value of the provisional solution as the initial value of the variable, and sets the variable whose value is changed from the initial value among the variables included in the obtained solution candidate as the variable candidate to be flipped.
  • the simulated annealing device can find solution candidates that are close to the provisional solution.
  • the simulated annealing apparatus 20 may also include determination means (for example, the transition determination unit 130) that determines whether or not to accept the flip of the variable candidate to be flipped included in the solution candidate. Further, the determination means may flip the variable candidate to be flipped that has been determined to accept the flip, and update the provisional solution to the solution candidate.
  • determination means for example, the transition determination unit 130
  • the simulated annealing device can find a new solution close to the provisional solution.
  • the combinatorial optimization problem may be a nurse shift scheduling problem.
  • the simulated annealing device can easily solve the nurse shift scheduling problem.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

シミュレーテッドアニーリング装置20は、組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF(Conjunctive Normal Form)の形式で表されたSAT(Boolean satisfiability testing) を求解することによって、組合せ最適化問題の解の候補である1つ以上の制約を満たす組合せ最適化問題の複数の変数の値の組を求める求解手段21を備える。

Description

シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法
 本発明は、シミュレーテッドアニーリング装置、シミュレーテッドアニーリング方法およびシミュレーテッドアニーリングプログラムに関する。
 組合せ最適化問題を量子アニーリング方式で高速に求解可能な量子コンピュータの研究が進められている。量子コンピュータは、組合せ最適化問題をイジングモデルで表し、量子重ね合わせを利用して、組合せ最適化問題の目的関数に相当するエネルギー関数を最小にする状態を探索する。
 量子コンピュータは、イジングモデルにおけるエネルギー関数を入力として、組合せ最適化問題を解く。なお、組合せ最適化問題の例として、巡回セールスマン問題、ナップサック問題、グラフ分割問題、ナースシフトスケジューリング問題が挙げられる。また、組合せ最適化問題は、他の問題でもよい。
 イジングモデルは、磁性体のスピンの振る舞いを表す統計力学上のモデルである。イジングモデルでは、個々のスピンの状態は、“1”または“-1”で表される。
 図9は、部分結合イジングモデルの例を示す説明図である。図9に示すように、イジングモデルは、2つのスピンの状態(“1”または“-1”)のいずれかを示す格子点で構成される。
 例えば、図9に示す格子点における矢印は、スピンを表している。上向きの矢印は、状態が“1”のスピンを表す。また、下向きの矢印は、状態が“-1”のスピンを表す。
 図9に示す格子点同士は、相互に作用する。組合せ最適化問題が求解される際、イジングモデルにおけるエネルギー関数が小さくなるようにスピンの向きが変化する。
 イジングモデルにおけるエネルギー関数は、以下の式(1)のように表される。
Figure JPOXMLDOC01-appb-M000001
 式(1)におけるsi,sjは、スピンの状態を表す変数である。また、Jij は、i ,j に応じた定数である。また、hiは、i に応じた定数である。
 また、個々のスピンの状態を“1”または“0”で表すモデルとして、QUBO(Quadratic Unconstrained Binary Optimization) も知られている。イジングモデルにおけるエネルギー関数と、QUBOにおけるエネルギー関数とは、相互に変換可能である。
 QUBOにおけるエネルギー関数は、以下の式(2)のように表される。
Figure JPOXMLDOC01-appb-M000002
 式(2)におけるxi,xjは、スピンの状態を表す変数である。また、Qij は、i ,j に応じた定数である。
 現状では、現実世界における組合せ最適化問題を求解可能な程、規模が十分に大きい量子コンピュータは実現されていない。しかし、量子コンピュータの登場を契機として、組合せ最適化技術が応用された研究も進められている。
 例えば、種々の組合せ最適化問題の解を汎用的に求めるために、現状では、イジングモデルやQUBOにおけるエネルギー関数を入力とするシミュレーテッドアニーリング方式(焼きなまし方式。以下、SA方式とも呼ぶ。)が使用されている。SA方式が使用されると、古典コンピュータであっても組合せ最適化問題の解を求めることができる。
 求解対象の組合せ最適化問題がイジングモデル形式またはQUBO形式で表されると、SA方式は、様々な組合せ最適化問題に対応できる。なお、イジングモデル形式またはQUBO形式で定式化された組合せ最適化問題は、量子コンピュータと古典コンピュータのいずれでも求解可能である。
 SA方式は、組合せ最適化問題を近似的に求解する汎用手法である。SA方式は、以下の4つの処理を1つのサイクルとして組合せ最適化問題を求解する。
 1.スピンを1つ選択する
 2.選んだスピンをフリップさせた場合のエネルギーの変化量Δを計算する
 3.遷移確率min(exp(-Δ/T),1)で、スピンのフリップを受理する
 4.フリップが受理された場合、選んだスピンをフリップさせる
 具体的には、SA方式は、上記のステップ2で選択されたスピンの向きを“-1”→“1”、または“1”→“-1”に反転させ、スピンをフリップさせた場合のエネルギーの変化量Δを計算する。
 次いで、SA方式は、計算されたΔが負の場合、上記のステップ3でスピンのフリップを受理する。また、計算されたΔが正の場合、SA方式は、上記のように計算される確率でスピンのフリップを受理する。
 次いで、SA方式は、フリップが受理された場合、上記のステップ4で選んだスピンをフリップさせる。すなわち、SA方式は、スピン(変数)の向きを1つずつ変えてみながら、エネルギーが小さくなる状態を探索する。なお、T は、温度パラメータである。
 図10は、SA方式による組合せ最適化問題の求解処理の例を示す説明図である。図10に示す各矩形内の曲線が、エネルギー関数を表す。また、図10に示す各矩形内の黒色の円は、SA方式により得られた解が用いられたときのエネルギーの値の一例である。
 また、図10に示すグラフは、組合せ最適化問題の求解処理の時間の経過に伴う温度パラメータT の変化を表す。図10に示すグラフは、時間の経過に伴い温度パラメータT が低減することを表す。
 SA方式は、複数のスピンの向きのランダムな組合せ(解)から求解処理を開始し、近傍の解を評価して遷移していく。温度パラメータT が導入されているため、T が高温の際には、SA方式は、解の評価が悪い方向にも遷移できる。
 例えば、図10に示す求解処理の初期のように、SA方式は、T が高温であればエネルギー関数における高い山も越えることができる。高い山を越えて解の評価が悪い方向にも遷移することによって、SA方式は、局所最適解を組合せ最適化問題の最終的な解として求めることを回避できる。
 温度パラメータT が下げられることによって、図10に示す求解処理の中期のように、エネルギー関数において越えられる山が次第に低くなる。すなわち、解の評価が悪い方向への遷移が減る。
 さらに温度パラメータT が下げられると、SA方式は、エネルギー関数における山を越えられなくなる。最終的に、SA方式は、図10に示す求解処理の後期のように、エネルギー関数において最も深い谷底に高い確率で遷移し、安定する。
 以下、SA方式で巡回セールスマン問題の解を求める場合を例に、組合せ最適化問題の求解処理を説明する。巡回セールスマン問題は、各都市をどういう順番で回れば最小移動距離で回れるかという問題である。巡回セールスマン問題では、都市数N (N は正の整数)に対して、N2個のスピン(変数)が定義される。また、各スピンは、時刻t に地点k にセールスマンが存在することを示す。
 図11は、巡回セールスマン問題の対象の都市の例を示す説明図である。図11に示す黒色の円は、都市を表す。また、図11に示す線は、経路を表す。図11に示す例の場合、巡回セールスマン問題は、都市A、都市B、都市C、および都市Dをどういう順番で回れば最小移動距離で回れるかという問題になる。
 まず、巡回セールスマン問題におけるエネルギーを表す式が生成される。本例では、巡回セールスマン問題をQUBO形式で表す。巡回セールスマン問題におけるエネルギー関数は、重みが大きい制約項が目的関数に加えられることによって生成される。制約項を目的関数に加える理由は、制約条件を最適化対象(エネルギー)に課すためである。
 巡回セールスマン問題におけるエネルギー関数として、例えば以下に示す式(3)が生成される。
Figure JPOXMLDOC01-appb-M000003
 なお、式(3)において、j は、時刻を表す。また、v ,u は、都市を表す。また、xv,jは、時刻j にセールスマンが都市v に存在するか否かを表す変数であり、スピンに該当する。すなわち、xv,j=1は、時刻j にセールスマンが都市v に存在することを表す。また、xv,j=0は、時刻j にセールスマンが都市v に存在しないことを表す。
 また、式(3)において、Wuv は、都市u と都市v の距離である。Wuv は、都市の組毎に予め定数として定められている。また、αおよびβは、予め定数として定められている。
 式(3)における右辺の第1項は、セールスマンは同じ都市を1度しか通らない、すなわち2回以上通過することは無いという制約を表す。
 また、式(3)における右辺の第2項は、セールスマンは同じ時刻に1つの都市にしか存在しないという制約を表す。
 また、式(3)における右辺の第3項は、セールスマンが通過する都市間の距離の総和を表す。右辺の第3項が、最小化対象の目的関数である。
 QUBOにおけるエネルギー関数が得られると、SA方式は、エネルギーが最小になるときの各スピンの状態を特定する。エネルギーが最小になるときの各スピンの状態が特定されると、巡回セールスマン問題の最適解が得られる。
 図12は、巡回セールスマン問題での各スピンの状態の表現例を示す模式図である。図12に示す“1”または“0”が、スピン(変数)に対応する。
 図12に示すスピンは左から順に、都市A、都市B、都市C、都市Dにそれぞれ対応している。また、図12に示すスピンは上から順に、時刻1、時刻2、時刻3、時刻4にそれぞれ対応している。すなわち、図12は、都市A、都市C、都市B、都市Dの順に回る経路を示す。
 上記のように、イジングモデルやQUBOにおけるエネルギー関数をSAに適用すれば、種々の組合せ最適化問題の解が汎用的に求められる。しかし、元の組合せ最適化問題がイジングモデル形式やQUBO形式に変換されると、解の探索の範囲である問題空間が増加するという問題がある。
 例えば、巡回セールスマン問題の本来の問題空間は、都市数がN であればN!である。しかし、巡回セールスマン問題がイジングモデル形式等に変換されると、問題空間は2のN2乗に増加する。
 また、SA方式は、問題空間における制約を満たさない多くのスピンの組合せのいずれに対しても、エネルギーの変化量Δを計算する。制約項に起因してエネルギーの変化量Δが大きくなると、SA方式は、制約を満たさない組合せを解の候補から外す。
 上記のαが大きな値に設定されていること等により、制約を満たさない組合せにおいてスピンが1つだけフリップしたときでも、計算されるエネルギーの変化量Δは大きくなる。すなわち、スピンが1つフリップしただけでは制約が満たされずにエネルギーの変化量Δが増加しすぎるという、イジングモデルの制約項に起因する解空間の急峻性により、SA方式が局所解から別の解に遷移することが困難になる。
 以上の理由により、イジングモデルやQUBOにおける制約項を含むエネルギー関数を用いてSA方式が組合せ最適化問題を求解する場合、得られる解の精度が悪化する、または最適解や準最適解を得るまでに要する計算時間が増加する可能性がある。
 上記の課題を解決するための求解システムが特許文献1に記載されている。特許文献1に記載されている求解システムは、制約項を満たすようにスピンをフリップさせる。
 例えば、巡回セールスマン問題の場合、特許文献1に記載されている求解システムは、スピン(変数)の組合せの中で1つのスピンだけ“1”を満たすようにするone-hot 制約を用いる。one-hot 制約を用いる特許文献1に記載されている求解システムは、1つしかない“1”のスピンをフリップさせる場合、同時に他の“0”のスピンもフリップさせる。
 また、非特許文献1には、制約をSAT(Boolean Satisfiability Testing) に変換する方法が記載されている。
国際公開第2021/059338号
Niklas Een and Niklas Sorensson, "Translating Pseudo-Boolean Constraints into SAT," Journal on Satisfiability, Boolean Modeling and Computation, 2(1-4), 1-26, 2006.
 しかし、特許文献1に記載されている求解システムは、組合せ最適化問題に複数の制約が課せられている場合、全ての制約が満たされるようにスピンをフリップさせることには対応していない。
 図13は、巡回セールスマン問題での各スピンの状態の他の表現例を示す模式図である。例えば、特許文献1に記載されている求解システムが、図13の左に示す各スピンの状態における、円で囲まれた変数xC,1=0をフリップさせるとする。
 変数xC,1が“0”から“1”にフリップすると、特許文献1に記載されている求解システムは、変数xC,1が直接関連するone-hot 制約を満たすように他の変数をフリップさせる。具体的には、特許文献1に記載されている求解システムは、図13の右に示す各スピンの状態のように、円で囲まれた変数xA,1を“1”から“0”に、円で囲まれた変数xC,2を“1”から“0”にそれぞれフリップさせる。
 しかし、図13の右に示す各スピンの状態のように、変数xA,1と変数xC,2がフリップすると、破線で囲まれた時刻2に関する変数、および都市Aに関する変数が全て“0”になる。すなわち、時刻2に関するone-hot 制約と、都市Aに関するone-hot 制約がそれぞれ満たされなくなる。
 以上のように、特許文献1に記載されている求解システムにとって、フリップさせようとする変数が直接関連する制約が満たされるように他の変数をフリップさせることは容易である。しかし、特許文献1に記載されている求解システムにとって、フリップさせようとする変数が直接関連しない他の制約も満たされるように他の変数をフリップさせることは困難である。また、非特許文献1にも、組合せ最適化問題に複数の制約が課せられている場合、全ての制約が満たされるようにスピンをフリップさせることは記載されていない。
 そこで、本発明は、組合せ最適化問題に課せられた複数の制約を全て満たす解の候補を容易に求めることができるシミュレーテッドアニーリング装置、シミュレーテッドアニーリング方法およびシミュレーテッドアニーリングプログラムを提供することを目的とする。
 本発明によるシミュレーテッドアニーリング装置は、組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF(Conjunctive Normal Form)の形式で表されたSAT(Boolean Satisfiability Testing) を求解することによって、組合せ最適化問題の解の候補である1つ以上の制約を満たす組合せ最適化問題の複数の変数の値の組を求める求解手段を備えることを特徴とする。
 本発明によるシミュレーテッドアニーリング方法は、組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF(Conjunctive Normal Form)の形式で表されたSAT(Boolean Satisfiability Testing) を求解することによって、組合せ最適化問題の解の候補である1つ以上の制約を満たす組合せ最適化問題の複数の変数の値の組を求めることを特徴とする。
 本発明によるシミュレーテッドアニーリングプログラムは、コンピュータに、組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF(Conjunctive Normal Form)の形式で表されたSAT(Boolean Satisfiability Testing) を求解することによって、組合せ最適化問題の解の候補である1つ以上の制約を満たす組合せ最適化問題の複数の変数の値の組を求める求解処理を実行させることを特徴とする。
 本発明によれば、組合せ最適化問題に課せられた複数の制約を全て満たす解の候補を容易に求めることができる。
本発明の実施形態のシミュレーテッドアニーリング装置の構成例を示すブロック図である。 SAT 求解部112がSAT を求解する処理の例を示す説明図である。 組合せ最適化問題の求解処理においてSAT 求解部112が解の候補を探索する例を示す説明図である。 組合せ最適化問題の求解処理においてSAT 求解部112が解の候補を探索する他の例を示す説明図である。 本実施形態のシミュレーテッドアニーリング装置100による組合せ最適化問題求解処理の動作を示すフローチャートである。 本実施形態のシミュレーテッドアニーリング装置100による他の組合せ最適化問題求解処理の動作を示すフローチャートである。 本発明によるシミュレーテッドアニーリング装置のハードウェア構成例を示す説明図である。 本発明によるシミュレーテッドアニーリング装置の概要を示すブロック図である。 部分結合イジングモデルの例を示す説明図である。 SA方式による組合せ最適化問題の求解処理の例を示す説明図である。 巡回セールスマン問題の対象の都市の例を示す説明図である。 巡回セールスマン問題での各スピンの状態の表現例を示す模式図である。 巡回セールスマン問題での各スピンの状態の他の表現例を示す模式図である。
[構成の説明]
 以下、本発明の実施形態を図面を参照して説明する。図1は、本発明の実施形態のシミュレーテッドアニーリング装置の構成例を示すブロック図である。
 図1に示すように、本実施形態のシミュレーテッドアニーリング装置100は、近傍解生成部110と、エネルギー計算部120と、遷移判定部130と、温度制御部140とを備える。
 また、図1に示すように、本実施形態の近傍解生成部110は、制約情報変換部111と、SAT 求解部112とを含む。
 本実施形態のシミュレーテッドアニーリング装置100は、SAT ソルバを用いて、組合せ最適化問題に課せられた全ての制約を満たすスピン(変数)の組合せを探索することを特徴とする。
 SAT は、与えられた論理式を真にする値が存在するか否かを判定する問題である。また、SAT ソルバは、SAT を求解するシステムである。
 また、SAT は、CNF(Conjunctive Normal Form)の形式で与えられる。CNF の形式で与えられたSAT は、例えば以下の式(4)のように記載される。
Figure JPOXMLDOC01-appb-M000004
 なお、式(4)におけるxiは、trueまたはfalse のいずれかを表す変数である。また、式(4)における“∨”はORを、“∧”はAND を、“¬”はNOT をそれぞれ意味する。また、式(4)における(x1∨¬x2)等を節(clause)と呼ぶ。
 すなわち、CNF の形式で与えられたSAT では、各変数がORで結合された節同士が、AND で結合されている。SAT ソルバは、CNF の形式で与えられたSAT を満たすxiを返す。また、SAT を充足する変数が無い場合、SAT ソルバは、充足不能である旨を返す。
 本実施形態のシミュレーテッドアニーリング装置100は、xiをQUBOにおける変数、CNF の形式で与えられたSAT を組合せ最適化問題に課せられた制約とそれぞれみなすことによって、SAT ソルバで制約を満たす変数の値の組を生成する。以下、本実施形態のシミュレーテッドアニーリング装置100の各構成要素の機能を説明する。
 近傍解生成部110の制約情報変換部111は、求解対象の組合せ最適化問題に課せられた制約を示す制約情報を、CNF の形式で表されたSAT に変換する機能を有する。制約情報変換部111には、制約情報が入力される。
 one-hot 制約等をCNF で表現する方法は、例えば非特許文献1に記載されている。非特許文献1では、例えば一般化された制約である以下の式(5)が変換の対象とされている。
Figure JPOXMLDOC01-appb-M000005
 式(5)における“wi”が“1”、“≧k ”が“=1”にそれぞれ変換されることによって、式(5)に示す制約がone-hot 制約に変換される。
 制約情報変換部111は、生成されたCNF の形式で表されたSAT をSAT 求解部112に入力する。
 なお、one-hot 制約以外の制約が変換されたCNF の形式で表されたSAT は、外部から直接SAT 求解部112に入力されてもよい。CNF の形式で表されたSAT が外部から直接SAT 求解部112に入力される場合、制約情報変換部111は、近傍解生成部110に設けられていなくてもよい。
 SAT 求解部112は、入力されたCNF の形式で表されたSAT を求解する機能を有する。すなわち、SAT 求解部112は、SAT ソルバに相当する構成要素である。SAT 求解部112は、求解することによって得られた組合せ最適化問題の解の候補をエネルギー計算部120に入力する。
 エネルギー計算部120は、上記のステップ2の処理である、入力された解の候補を基にエネルギーの変化量Δを計算する機能を有する。エネルギー計算部120は、例えば式(3)に示すようなエネルギー関数を扱う。
 なお、エネルギー計算部120が扱うエネルギー関数には、制約項が含まれていなくてもよい。その理由は、エネルギー計算部120に入力される解の候補が必ず制約を満たすため、解の候補が代入されるとエネルギー関数における制約項は0になるためである。エネルギー計算部120は、計算されたエネルギーの変化量Δを遷移判定部130に入力する。
 遷移判定部130は、上記のステップ3の処理である、入力されたエネルギーの変化量Δを用いて解の候補におけるスピンのフリップを受理するか否かを判定する機能を有する。フリップが受理された場合、遷移判定部130は、上記のステップ3の処理として、解の候補におけるスピンをフリップさせる。
 温度制御部140は、温度パラメータT を制御する機能を有する。図10に示すように、温度制御部140は、求解処理の時間の経過に伴い温度パラメータT を減少させる。
 一般的に、SAT ソルバは、SAT の解を1つ発見した段階で処理を終了する。しかし、SAでは、現在の変数の組合せから変数が1つフリップした後で、可能な限り他の変数が変更されないまま制約を満たす組合せを得ることが求められる。
 以下、上記の目的を実現するための本実施形態のSAT 求解部112の具体的な動作を説明する。本実施形態のSAT 求解部112は、DPLL(Davis-Putnam-Logemann-Loveland)と呼ばれるアルゴリズムに従って動作する。
 DPLLに従うSAT 求解部112は、CNF の形式で表されたSAT において、確定しているxiを探す。もし確定しているxiが無ければ、SAT 求解部112は、xiの中から変数を1つ選び、選ばれたxiをtrueまたはfalse に設定する。
 次いで、SAT 求解部112は、確定したxiを、CNF の形式で表されたSAT に代入する。確定したxiが代入されると、新たに確定するxiが生じる。
 例えば、節(x1∨x2∨x3)の場合、x1とx2がfalse であれば、節自体がtrueでなければならないため、x3はtrueに確定する。このような新たに変数を確定させる操作を、単位伝搬(unit propagation)と呼ぶ。SAT 求解部112は、単位伝搬を繰り返すことによって、変数の組合せを求める。
 もし¬xiとxiの両方が真でなければならない等の矛盾が発生したら、先ほど選ばれた変数のtrueまたはfalse への設定が間違っていたことになる。よって、矛盾が発生したら、SAT 求解部112は、先に設定された変数までバックトラックし、変数の値を変える。
 なお、SAT ソルバの高速化手法として他の手法も知られている。しかし、いずれの手法もDPLLが拡張された手法である。他の手法の基本的な動作は、DPLLと同じである。
 上記のアルゴリズムに従ってSAT 求解部112がSAT を求解する処理の例を、図2を参照して説明する。図2は、SAT 求解部112がSAT を求解する処理の例を示す説明図である。
 図2に示す例では、SAT 求解部112は、式(4)に示すSAT を求解する。なお、図2に示す(1)、(2)、・・・は、処理の段階を表す。また、図2に示す円は、各段階での変数の組合せの状態を表す。
 また、図2に示す直線の矢印は、変数の設定と状態の変化を表す。また、図2に示す{xi,・・・}は、確定した変数の組合せを表す。また、図2に示すφは、空集合である初期状態を表す。なお、図2に示す各表記の意味は、図3、4においても同様である。
 最初の段階(1)で、SAT 求解部112は、x1をfalse に設定する。x1がfalse に設定されると、節(x1∨¬x2)により、x2がfalse に確定する。よって、段階(1)の後、確定した変数の組合せは{¬x1,¬x2}になる。
 次の段階(2)で、SAT 求解部112は、x3をfalse に設定する。x3がfalse に設定されると、節(x1∨x3∨¬x4)により、x4がfalse に確定する。しかし、節(x3∨x4)によれば、x4がtrueに確定する。
 上記のようにx4に関して矛盾が発生したため、SAT 求解部112は、x3の設定が間違っていたと判断し、1つ前の状態までバックトラックする。次いで、段階(3)で、SAT 求解部112は、x3をtrueに設定し直す。
 x3がtrueに設定されると、節(¬x3∨¬x5)により、x5がfalse に確定する。しかし、節(¬x3∨x5)によれば、x5がtrueに確定する。
 上記のようにx5に関して矛盾が発生したため、SAT 求解部112は、x1の設定が間違っていたと判断し、2つ前の状態までバックトラックする。次いで、段階(4)で、SAT 求解部112は、x1をtrueに設定し直す。
 x1がtrueに設定されても、確定する変数は無い。よって、段階(4)の後、確定した変数の組合せは{x1}になる。
 次いで、段階(5)で、SAT 求解部112は、x3をfalse に設定する。x3がfalse に設定されると、節(x3∨x4)により、x4がtrueに確定する。よって、段階(5)の後、確定した変数の組合せは{x1,¬x3,x4}になる。
 次いで、段階(6)で、SAT 求解部112は、x2をfalse に設定する。x2がfalse に設定されても、確定する変数は無い。よって、段階(6)の後、確定した変数の組合せは{x1,¬x2,¬x3,x4}になる。
 次いで、段階(7)で、SAT 求解部112は、x5をfalse に設定する。x5がfalse に設定されると、全ての節が充足される。
 よって、段階(7)の後、変数の組合せが{x1,¬x2,¬x3,x4,¬x5}で確定するため、SAT 求解部112は、SAT を求解する処理を終了する。SAT を求解する処理は、図2に示すように、深さ優先探索処理になる。
 上述したように、SAでは、現在の変数の組合せから変数が1つフリップした後で、可能な限り他の変数が変更されないまま制約を満たす組合せ(解の候補)を得ることが求められる。なお、現在の変数の組合せは、図2に示す解の候補{x1,¬x2,¬x3,x4,¬x5}や、SA方式で求解されている組合せ最適化問題の暫定解である。
 よって、本実施形態のシミュレーテッドアニーリング装置100が組合せ最適化問題を求解する際、DPLLに従って変数の値を設定するSAT 求解部112は、可能な限り現在の変数の値を用いる。
 可能な限り現在の変数の値を用いる方法には、「1.フリップ対象の変数候補を最初に設定した上で解き直す方法」と、「2.前回生成された探索木上で強制的にバックトラックする方法」の2つの方法がある。以下、各方法をそれぞれ説明する。
 図3は、組合せ最適化問題の求解処理においてSAT 求解部112が解の候補を探索する例を示す説明図である。図3に示す例では、SAT 求解部112は、「1.フリップ対象の変数候補を最初に設定した上で解き直す方法」に従って解の候補を探索する。
 図3に示す例では、SAT 求解部112は、図2に示す解の候補{x1,¬x2,¬x3,x4,¬x5}に基づいてSAT を解き直す。なお、図3に示す例でも、SAT 求解部112は、式(4)に示すSAT を求解する。
 図3に示す例では、SAT 求解部112は、最初にx2をフリップ対象の変数候補に設定する。よって、段階(8)で、SAT 求解部112は、x2をtrueに設定する。
 x2がtrueに設定されると、節(x1∨¬x2)により、x1がtrueに確定する。よって、段階(8)の後、確定した変数の組合せは{x1,x2}になる。
 次の段階(9)で、SAT 求解部112は、前回の解の候補でfalse だったx3をfalse に設定する。x3がfalse に設定されると、節(x3∨x4)により、x4がtrueに確定する。よって、段階(9)の後、確定した変数の組合せは{x1,x2,¬x3,x4}になる。
 次の段階(10)で、SAT 求解部112は、前回の解の候補でfalse だったx5をfalse に設定する。x5がfalse に設定されると、全ての節が充足される。
 よって、段階(10)の後、変数の組合せが{x1,x2,¬x3,x4,¬x5}で確定するため、SAT 求解部112は、SAT を求解する処理を終了する。
 なお、図3に示す例には記載されていないが、最初にフリップ対象の変数候補の値が変更されたとき、巡回セールスマン問題等で、フリップ対象の変数候補以外の変数の値も制約を満たすために変更される可能性がある。
 また、フリップ後の変数の値では制約が充足されなければ、バックトラック後に変数の値が変更される。図3に示す例であれば、x1がフリップ対象の変数候補に設定されても、制約が充足されない。
 具体的には、x1がフリップ対象の変数候補に設定された場合、すなわちx1がfalse に設定された場合、解の候補が得られないため、SAT 求解部112は、DPLLに従ってx1をtrueに設定する。最終的に、SAT 求解部112は、図2に示す解の候補と同じ解の候補を得る。
 図4は、組合せ最適化問題の求解処理においてSAT 求解部112が解の候補を探索する他の例を示す説明図である。図4に示す例では、SAT 求解部112は、「2.前回生成された探索木上で強制的にバックトラックする方法」に従って解の候補を探索する。
 図4に示す例では、SAT 求解部112は、図2に示す解の候補{x1,¬x2,¬x3,x4,¬x5}が得られた状態から強制的にバックトラックし、別の選択肢を探索する。なお、図4に示す例でも、SAT 求解部112は、式(4)に示すSAT を求解する。
 図4に示す探索木は、組合せ最適化問題の解の候補が求められたときに生成された、複数の変数の値の組を示す1つ以上のノードで構成されている。なお、SA方式で求解されている組合せ最適化問題の暫定解を基にSAT 求解部112が解の候補を探索する場合であっても、同様に生成された探索木が使用される。
 図4に示す例では、SAT 求解部112は、最初に解の候補が得られた状態aから、変数x5が設定される状態bまでバックトラックする。状態aから状態bまでバックトラックする場合のバックトラック幅は「1」である。
 次いで、SAT 求解部112は、x5をtrueに設定する。x5がtrueに設定されると、全ての節が充足される。よって、状態cにおいて変数の組合せが{x1,¬x2,¬x3,x4,x5}で確定するため、SAT 求解部112は、SAT を求解する処理を終了する。
 他の解の候補を得るためには、SAT 求解部112は、探索木をさらにバックトラックする。例えば、SAT 求解部112は、最初に解の候補が得られた状態aから変数x2が設定される状態dまでバックトラックする。状態aから状態dまでバックトラックする場合のバックトラック幅は「2」である。
 すなわち、図4に示す例で、SAT 求解部112は、探索木において未だ生成されていないノードを、暫定解を示すノードを起点にSAT を求解することによって探索する。SAT 求解部112は、探索されたノードが示す複数の変数の値の組を解の候補として求める。
 ただし、探索木を遡りすぎると、SAT の求解に掛かるコストが高くなる。よって、探索木を遡りすぎる場合、SAT 求解部112は、再度SAT を解き直し、探索木を作り直す。例えば、SAT 求解部112は、変数の選択の順番をランダムに変更することによって、生成される探索木の形状を変更する。探索木の形状が変更されると、バックトラック後に値が変更される変数が変わる。
 本実施形態のシミュレーテッドアニーリング装置100は、数独(登録商標)やナースシフトスケジューリング問題等の、課せられた複数の制約を全て満たすことが難しい問題を求解する際に特に有効であることが確認された。また、「1.フリップ対象の変数候補を最初に設定した上で解き直す方法」に比べて、「2.前回生成された探索木上で強制的にバックトラックする方法」の方が、組合せ最適化問題を10倍程度高速に求解できることも確認された。
 以上のように、本実施形態のSAT 求解部112は、組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF の形式で表されたSAT を求解することによって、組合せ最適化問題の解の候補である1つ以上の制約を満たす組合せ最適化問題の複数の変数の値の組を求める。また、制約情報変換部111は、制約情報をSAT に変換する。
 例えば、シミュレーテッドアニーリング装置100の求解対象の組合せ最適化問題は、ナースシフトスケジューリング問題である。
[動作の説明]
 以下、本実施形態のシミュレーテッドアニーリング装置100の動作を図5~6を参照して説明する。
 図5は、本実施形態のシミュレーテッドアニーリング装置100による組合せ最適化問題求解処理の動作を示すフローチャートである。図5は、SAT 求解部112が「1.フリップ対象の変数候補を最初に設定した上で解き直す方法」を採用した場合の組合せ最適化問題求解処理を示す。
 最初に、近傍解生成部110の制約情報変換部111に、求解対象の組合せ最適化問題の制約情報が入力される。制約情報変換部111は、入力された制約情報を、CNF の形式で表されたSAT に変換する(ステップS101)。制約情報変換部111は、生成されたSAT をSAT 求解部112に入力する。
 次いで、SAT 求解部112に、生成されたSAT の初期解が入力される。SAT の初期解は、例えばユーザが指定した値(trueまたはfalse )、またはランダムに生成された値の組である。
 SAT 求解部112は、入力された初期解の値を初期値として選ぶようにしながら入力されたSAT を求解することによって、制約を満たす変数の値の組を生成する(ステップS102)。例えば、図2に示す処理が、ステップS102の処理である。
 なお、SAT 求解部112は、制約情報変換部111以外の外部から入力されたSAT を求解してもよい。SAT 求解部112は、生成された変数の値の組をエネルギー計算部120に入力する。
 次いで、エネルギー計算部120は、入力された変数の値の組を基にエネルギーを計算する(ステップS103)。
 次いで、SAT 求解部112は、暫定解に含まれる変数の中から、フリップ対象の変数候補を1つ選択する(ステップS104)。なお、最初の繰り返し処理では、暫定解は、ステップS102で生成された変数の値の組である。
 次いで、SAT 求解部112は、選択された変数候補の値を最初に設定する。次いで、SAT 求解部112は、暫定解の値を初期値として選ぶようにしながら入力されたSAT を求解する(ステップS105)。
 次いで、SAT 求解部112は、暫定解とステップS105で求められた解の候補とで値が異なる変数を、フリップ対象の変数候補とする(ステップS106)。次いで、SAT 求解部112は、求められたフリップ対象の変数候補群を含む解の候補をエネルギー計算部120に入力する。
 次いで、エネルギー計算部120は、入力された変数候補群をフリップさせたときのエネルギーの変化量を計算する(ステップS107)。エネルギー計算部120は、計算されたエネルギーの変化量と解の候補を遷移判定部130に入力する。
 次いで、遷移判定部130は、入力されたエネルギーの変化量と温度パラメータとを基に、遷移確率を計算する(ステップS108)。
 次いで、遷移判定部130は、計算された遷移確率に基づいて、状態遷移を受理するか否かを判定する(ステップS109)。状態遷移を受理しないと判定した場合(ステップS109における”reject”)、遷移判定部130は、ステップS111に進む。
 状態遷移を受理すると判定した場合(ステップS109における”accept”)、遷移判定部130は、解の候補に含まれる変数候補群をフリップさせる(ステップS110)。変数候補群がフリップすると、解の候補が現時点での暫定解になる。
 次いで、温度制御部140は、温度パラメータT を減少させる(ステップS111)。
 次いで、遷移判定部130は、求解処理が終了条件を満たすか否かを判定する(ステップS112)。終了条件は、例えば、ステップS104~S111の処理が繰り返し実行された回数が所定の回数に達したことである。
 求解処理が終了条件を満たさない場合(ステップS112におけるNo)、遷移判定部130は、現時点での暫定解をSAT 求解部112に入力する(ステップS113)。SAT 求解部112は、再度ステップS104の処理を実行する。
 求解処理が終了条件を満たす場合(ステップS112におけるYes )、遷移判定部130は、現時点での暫定解を最適解として出力する(ステップS114)。出力した後、シミュレーテッドアニーリング装置100は、組合せ最適化問題求解処理を終了する。
 図6は、本実施形態のシミュレーテッドアニーリング装置100による他の組合せ最適化問題求解処理の動作を示すフローチャートである。図6は、SAT 求解部112が「2.前回生成された探索木上で強制的にバックトラックする方法」を採用した場合の組合せ最適化問題求解処理を示す。
 ステップS201~S203の各処理は、図5に示すステップS101~S103の各処理とそれぞれ同様である。
 次いで、SAT 求解部112は、暫定解の求解時に生成された探索木上を、暫定解が得られた状態を起点としてバックトラック幅分バックトラックする。なお、最初の繰り返し処理では、暫定解は、ステップS202で生成された変数の値の組である。
 次いで、SAT 求解部112は、バックトラックした状態で変更可能な変数の値を変更した上で、入力されたSAT を求解する。SAT を求解した後、SAT 求解部112は、バックトラック幅を1つ増やす(ステップS204)。
 次いで、SAT 求解部112は、暫定解とステップS204で求められた解の候補とで値が異なる変数を、フリップ対象の変数候補とする(ステップS205)。次いで、SAT 求解部112は、求められたフリップ対象の変数候補群を含む解の候補をエネルギー計算部120に入力する。
 ステップS206~S211の各処理は、図5に示すステップS107~S112の各処理とそれぞれ同様である。
 求解処理が終了条件を満たさない場合(ステップS211におけるNo)、SAT 求解部112は、現時点でのバックトラック幅が閾値よりも大きいか否かを判定する(ステップS212)。
 現時点でのバックトラック幅が閾値以下である場合(ステップS212におけるNo)、遷移判定部130は、現時点での暫定解をSAT 求解部112に入力する。SAT 求解部112は、遷移判定部130からの入力を暫定解に設定し(ステップS214)、再度ステップS204の処理を実行する。
 現時点でのバックトラック幅が閾値よりも大きい場合(ステップS212におけるYes )、SAT 求解部112は、暫定解の値を初期値として選ぶようにしながら、ランダムな変数順で入力されたSAT を再求解する。SAT を再求解した後、SAT 求解部112は、バックトラック幅を“1”に設定する(ステップS213)。
 次いで、SAT 求解部112は、ステップS213で求められた解の候補を暫定解に設定する(ステップS214)。SAT 求解部112は、再度ステップS204の処理を実行する。
 求解処理が終了条件を満たす場合(ステップS211におけるYes )、遷移判定部130は、現時点での暫定解を最適解として出力する(ステップS215)。出力した後、シミュレーテッドアニーリング装置100は、組合せ最適化問題求解処理を終了する。
 以上のように、「1.フリップ対象の変数候補を最初に設定した上で解き直す方法」を採用する場合、SAT 求解部112は、SA方式で求解されている組合せ最適化問題の暫定解に含まれる変数の中からフリップ対象の変数候補を1つ選択し、選択された変数候補の値を変更した上でSAT を求解することによって、組合せ最適化問題の解の候補を求める。
 また、「2.前回生成された探索木上で強制的にバックトラックする方法」を採用する場合、SAT 求解部112は、SA方式で求解されている組合せ最適化問題の暫定解が求められたときに生成された複数の変数の値の組を示す1つ以上のノードで構成されている探索木において未だ生成されていないノードを、暫定解を示すノードを起点にSAT を求解することによって探索し、探索されたノードが示す組を解の候補として求める。
 いずれの方法を採用するにせよ、SAT 求解部112は、暫定解の値を変数の初期値として利用し、求められた解の候補に含まれる変数のうち値が初期値から変更された変数をフリップ対象の変数候補に設定する。
 また、遷移判定部130は、解の候補に含まれるフリップ対象の変数候補のフリップを受理するか否かを判定する。遷移判定部130は、フリップを受理すると判定された変数候補をフリップさせ、暫定解を変数候補がフリップした解の候補に更新する。
[効果の説明]
 本実施形態のシミュレーテッドアニーリング装置100は、求解対象の組合せ最適化問題に課せられた制約を示す制約情報を、CNF の形式で表されたSAT に変換する制約情報変換部111を備える。また、シミュレーテッドアニーリング装置100は、入力されたCNF の形式で表されたSAT を求解するSAT 求解部112を備える。
 よって、本実施形態のシミュレーテッドアニーリング装置100は、SAT 求解部112がSAT ソルバとして制約を満たす組合せ最適化問題の解の候補を求めることができるため、組合せ最適化問題に課せられた全ての制約を満たしながら解の探索を進めることができる。
 上記の構成をとることによって、本実施形態のシミュレーテッドアニーリング装置100は、古典コンピュータで実現された場合であっても、特許文献1に記載されている求解システムに比べて、複数の制約が課せられた組合せ最適化問題を容易に求解できる。
 以下、本実施形態のシミュレーテッドアニーリング装置100のハードウェア構成の具体例を説明する。図7は、本発明によるシミュレーテッドアニーリング装置のハードウェア構成例を示す説明図である。
 図7に示すシミュレーテッドアニーリング装置100は、CPU(Central Processing Unit )11と、主記憶部12と、通信部13と、補助記憶部14とを備える。また、ユーザが操作するための入力部15や、ユーザに処理結果または処理内容の経過を提示するための出力部16を備える。
 シミュレーテッドアニーリング装置100は、図7に示すCPU11が各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
 すなわち、CPU11が補助記憶部14に格納されているプログラムを、主記憶部12にロードして実行し、シミュレーテッドアニーリング装置100の動作を制御することによって、各機能がソフトウェアにより実現される。
 なお、図7に示すシミュレーテッドアニーリング装置100は、CPU11の代わりにDSP(Digital Signal Processor)を備えてもよい。または、図7に示すシミュレーテッドアニーリング装置100は、CPU11とDSPとを併せて備えてもよい。
 主記憶部12は、データの作業領域やデータの一時退避領域として用いられる。主記憶部12は、例えばRAM(Random Access Memory)である。
 通信部13は、有線のネットワークまたは無線のネットワーク(情報通信ネットワーク)を介して、周辺機器との間でデータを入力および出力する機能を有する。
 補助記憶部14は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリが挙げられる。
 入力部15は、データや処理命令を入力する機能を有する。入力部15は、例えばキーボードやマウス等の入力デバイスである。
 出力部16は、データを出力する機能を有する。出力部16は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。
 また、図7に示すように、シミュレーテッドアニーリング装置100において、各構成要素は、システムバス17に接続されている。
 シミュレーテッドアニーリング装置100において、補助記憶部14は、近傍解生成部110、エネルギー計算部120、遷移判定部130、および温度制御部140を実現するためのプログラムを記憶している。
 なお、シミュレーテッドアニーリング装置100は、例えば内部に図1に示すような機能を実現するLSI(Large Scale Integration )等のハードウェア部品が含まれる回路が実装されてもよい。
 また、シミュレーテッドアニーリング装置100は、CPU等の素子を用いるコンピュータ機能を含まないハードウェアにより実現されてもよい。例えば、各構成要素の一部または全部は、汎用の回路(circuitry )または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップ(例えば、上記のLSI)によって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
 また、シミュレーテッドアニーリング装置100の各構成要素の一部または全部は、演算部と記憶部とを備えた1つまたは複数の情報処理装置で構成されていてもよい。
 各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
 次に、本発明の概要を説明する。図8は、本発明によるシミュレーテッドアニーリング装置の概要を示すブロック図である。本発明によるシミュレーテッドアニーリング装置20は、組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF の形式で表されたSAT を求解することによって、組合せ最適化問題の解の候補である1つ以上の制約を満たす組合せ最適化問題の複数の変数の値の組を求める求解手段21(例えば、SAT 求解部112)を備える。
 そのような構成により、シミュレーテッドアニーリング装置は、組合せ最適化問題に課せられた複数の制約を全て満たす解の候補を容易に求めることができる。
 また、シミュレーテッドアニーリング装置20は、制約情報をSAT に変換する変換手段(例えば、制約情報変換部111)を備えてもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、制約情報をSAT に変換できる。
 また、求解手段21は、シミュレーテッドアニーリング方式で求解されている組合せ最適化問題の暫定解に含まれる変数の中からフリップ対象の変数候補を1つ選択し、選択された変数候補の値を変更した上でSAT を求解することによって組合せ最適化問題の解の候補を求めてもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、組合せ最適化問題に課せられた複数の制約を全て満たす解の候補を容易に求めることができる。
 また、求解手段21は、シミュレーテッドアニーリング方式で求解されている組合せ最適化問題の暫定解が求められたときに生成された複数の変数の値の組を示す1つ以上のノードで構成されている探索木において未だ生成されていないノードをSAT を求解することによって探索し、探索されたノードが示す組を解の候補として求めてもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、より高速に組合せ最適化問題を求解できる。
 また、求解手段21は、暫定解の値を変数の初期値として利用し、求められた解の候補に含まれる変数のうち値が初期値から変更された変数をフリップ対象の変数候補に設定してもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、暫定解に近い解の候補を求めることができる。
 また、シミュレーテッドアニーリング装置20は、解の候補に含まれるフリップ対象の変数候補のフリップを受理するか否かを判定する判定手段(例えば、遷移判定部130)を備えてもよい。また、判定手段は、フリップを受理すると判定されたフリップ対象の変数候補をフリップさせ、暫定解を解の候補に更新してもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、暫定解に近い新たな解を求めることができる。
 また、組合せ最適化問題は、ナースシフトスケジューリング問題でもよい。
 そのような構成により、シミュレーテッドアニーリング装置は、容易にナースシフトスケジューリング問題を求解できる。
 以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
11 CPU
12 主記憶部
13 通信部
14 補助記憶部
15 入力部
16 出力部
17 システムバス
20、100 シミュレーテッドアニーリング装置
21 求解手段
110 近傍解生成部
111 制約情報変換部
112 SAT 求解部
120 エネルギー計算部
130 遷移判定部
140 温度制御部

Claims (10)

  1.  組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF(Conjunctive Normal Form)の形式で表されたSAT(Boolean Satisfiability Testing) を求解することによって、前記組合せ最適化問題の解の候補である前記1つ以上の制約を満たす前記組合せ最適化問題の複数の変数の値の組を求める求解手段を備える
     ことを特徴とするシミュレーテッドアニーリング装置。
  2.  制約情報をSAT に変換する変換手段を備える
     請求項1記載のシミュレーテッドアニーリング装置。
  3.  求解手段は、
     シミュレーテッドアニーリング方式で求解されている組合せ最適化問題の暫定解に含まれる変数の中からフリップ対象の変数候補を1つ選択し、
     選択された変数候補の値を変更した上でSAT を求解することによって前記組合せ最適化問題の解の候補を求める
     請求項1または請求項2記載のシミュレーテッドアニーリング装置。
  4.  求解手段は、
     シミュレーテッドアニーリング方式で求解されている組合せ最適化問題の暫定解が求められたときに生成された複数の変数の値の組を示す1つ以上のノードで構成されている探索木において未だ生成されていないノードをSAT を求解することによって探索し、
     探索されたノードが示す前記組を解の候補として求める
     請求項1または請求項2記載のシミュレーテッドアニーリング装置。
  5.  求解手段は、
     暫定解の値を変数の初期値として利用し、
     求められた解の候補に含まれる変数のうち値が前記初期値から変更された変数をフリップ対象の変数候補に設定する
     請求項3または請求項4記載のシミュレーテッドアニーリング装置。
  6.  解の候補に含まれるフリップ対象の変数候補のフリップを受理するか否かを判定する判定手段を備える
     請求項3から請求項5のうちのいずれか1項に記載のシミュレーテッドアニーリング装置。
  7.  判定手段は、
     フリップを受理すると判定されたフリップ対象の変数候補をフリップさせ、
     暫定解を解の候補に更新する
     請求項6記載のシミュレーテッドアニーリング装置。
  8.  組合せ最適化問題は、ナースシフトスケジューリング問題である
     請求項1から請求項7のうちのいずれか1項に記載のシミュレーテッドアニーリング装置。
  9.  組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF(Conjunctive Normal Form)の形式で表されたSAT(Boolean Satisfiability Testing) を求解することによって、前記組合せ最適化問題の解の候補である前記1つ以上の制約を満たす前記組合せ最適化問題の複数の変数の値の組を求める
     ことを特徴とするシミュレーテッドアニーリング方法。
  10.  コンピュータで実行されるときに、
     組合せ最適化問題に課せられた1つ以上の制約を示す制約情報が変換されたCNF(Conjunctive Normal Form)の形式で表されたSAT(Boolean Satisfiability Testing) を求解することによって、前記組合せ最適化問題の解の候補である前記1つ以上の制約を満たす前記組合せ最適化問題の複数の変数の値の組を求める
     シミュレーテッドアニーリングプログラム
     を記録したコンピュータ読み取り可能な記録媒体。
PCT/JP2021/023239 2021-06-18 2021-06-18 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法 WO2022264414A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2023528924A JPWO2022264414A1 (ja) 2021-06-18 2021-06-18
PCT/JP2021/023239 WO2022264414A1 (ja) 2021-06-18 2021-06-18 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/023239 WO2022264414A1 (ja) 2021-06-18 2021-06-18 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法

Publications (1)

Publication Number Publication Date
WO2022264414A1 true WO2022264414A1 (ja) 2022-12-22

Family

ID=84525980

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/023239 WO2022264414A1 (ja) 2021-06-18 2021-06-18 シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法

Country Status (2)

Country Link
JP (1) JPWO2022264414A1 (ja)
WO (1) WO2022264414A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524165A (ja) * 2004-01-22 2007-08-23 エヌイーシー ラボラトリーズ アメリカ インク 有限メモリ検査における埋込みメモリの効率的なモデリング方法
JP2015172873A (ja) * 2014-03-12 2015-10-01 富士通株式会社 検証プログラム、検証方法および検証装置
JP2020201598A (ja) * 2019-06-06 2020-12-17 株式会社東芝 情報処理装置、puboソルバ、情報処理方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524165A (ja) * 2004-01-22 2007-08-23 エヌイーシー ラボラトリーズ アメリカ インク 有限メモリ検査における埋込みメモリの効率的なモデリング方法
JP2015172873A (ja) * 2014-03-12 2015-10-01 富士通株式会社 検証プログラム、検証方法および検証装置
JP2020201598A (ja) * 2019-06-06 2020-12-17 株式会社東芝 情報処理装置、puboソルバ、情報処理方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DOI, TSUBASA ET AL.: "A Decomposition Approach to Shift Scheduling Problems.), non-official translation", PROCEEDINGS OF THE 58TH ANNUAL CONFERENCE OF THE INSTITUTE OF SYSTEMS, CONTROL AND INFORMATION ENGINEERS, 23 May 2014 (2014-05-23) *

Also Published As

Publication number Publication date
JPWO2022264414A1 (ja) 2022-12-22

Similar Documents

Publication Publication Date Title
US11675940B2 (en) Generating integrated circuit floorplans using neural networks
US11556690B2 (en) Generating integrated circuit placements using neural networks
US20200234172A1 (en) Systems and methods for hybrid algorithms using cluster contraction
Wang The hybrid genetic algorithm with two local optimization strategies for traveling salesman problem
Ma et al. Understanding graphs in EDA: From shallow to deep learning
Goldie et al. Placement optimization with deep reinforcement learning
Hattori et al. Quantum circuit optimization by changing the gate order for 2D nearest neighbor architectures
JP5881048B2 (ja) 情報処理システム、及び、情報処理方法
CN112905801A (zh) 基于事件图谱的行程预测方法、系统、设备及存储介质
JP7007520B6 (ja) 情報処理装置、演算装置、及び情報処理方法
Singh et al. Edge proposal sets for link prediction
Wu et al. X-architecture Steiner minimal tree construction based on discrete differential evolution
Lu et al. On advancing physical design using graph neural networks
WO2022264414A1 (ja) シミュレーテッドアニーリング装置およびシミュレーテッドアニーリング方法
Gao et al. Multi-objective pointer network for combinatorial optimization
Chen et al. Timing-driven X-architecture Steiner minimum tree construction based on social learning multi-objective particle swarm optimization
Jabbar et al. Grey wolf optimization algorithm for hierarchical document clustering
US20240095424A1 (en) Alignment Cost for Integrated Circuit Placement
JP7207423B2 (ja) 作業集合選択装置、作業集合選択方法および作業集合選択プログラム
Abu Doush et al. MAX-SAT Problem using Hybrid Harmony Search Algorithm
Agarwal Accelerating Physical design Algorithms using CUDA
Palakonda et al. Iterative Sorting-Based Non-dominated Sorting Algorithm for Bi-objective Optimization
Koohestani Genetic Hyper-Heuristics for Graph Layout Problems
Montiel et al. Research Article Reducing the Size of Combinatorial Optimization Problems Using the Operator Vaccine by Fuzzy Selector with Adaptive Heuristics

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21946089

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023528924

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18569705

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE