Combinational optimization method, combinational optimization device, and program
The combinatorial optimization device uses a repair and improvement process to convert and enhance tentative solutions, ensuring high-quality feasible outcomes in combinatorial optimization problems.
Patent Information
- Application Number
- JP2024039942
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-14
- Publication Date
- 2025-09-29
AI Technical Summary
Conventional combinatorial optimization devices using Ising machines struggle to obtain high-quality feasible solutions, as they either output infeasible solutions or feasible solutions of low quality, and existing correction techniques require large penalty coefficients.
A combinatorial optimization device that combines a conversion unit, an Ising machine, a repair processing unit, and an improvement processing unit to convert and improve tentative solutions, ensuring feasibility and quality.
The device consistently outputs high-quality feasible solutions by synergistically utilizing repair and improvement processes, even with smaller penalty coefficients, enhancing solution quality.
Smart Images

Figure 2025140504000001_ABST
Abstract
Description
[Technical Field]
[0001] The disclosed technology relates to a technology for solving combinatorial optimization problems using a computer called an Ising machine, and in particular to a technology for obtaining high-quality feasible solutions to constrained optimization problems. [Background technology]
[0002] Combinatorial optimization is a technique for selecting the best possible solution for a specific evaluation index (objective function) from a large number of combinations that satisfy specific conditions, i.e., a high-quality solution. Combinatorial optimization appears in a wide range of fields, from business decision-making such as personnel planning, route planning, and drug discovery to academic research. On the other hand, it is difficult for conventional general-purpose computers to solve combinatorial optimization problems efficiently (in polynomial time relative to the problem size). Therefore, technology that utilizes physical phenomena and other factors to perform high-speed combinatorial optimization using computer hardware that searches for optimal solutions has become important.
[0003] Ising machines are computers (different from conventional general-purpose computers) that implement heuristic solutions in combinatorial optimization. Ising machines are hardware that efficiently executes ground state searches for the Ising model. The Ising model is a physical model defined by a quadratic polynomial (Hamiltonian) related to multiple variables (spins) that take on the binary values of +1 or -1. A combination of spin values is called a state, and the value obtained by substituting each spin value into the Hamiltonian for a state is called energy. The state that minimizes energy is called the ground state. An Ising machine is a general term for computers that implement an algorithm that outputs a solution with low energy for an input Hamiltonian.
[0004] By definition, Ising machines are applied to combinatorial optimization. Ising machines can be realized using quantum processors (computational processors that use the principles of quantum mechanics), degenerate optical parametric oscillators, or dedicated integrated circuits that use conventional semiconductor technology.
[0005] A model in which the spin in the Ising model is replaced with a binary variable that takes the value of either 0 or 1 is called a QUBO model. i ∈{+1, -1}, binary variables q i ∈{0, 1}, the Ising model and the QUBO model are mutually convertible and equivalent using the following equation:
number
[0006] Figure 1 shows a typical combinatorial optimization device that uses an Ising machine. The combinatorial optimization device 10 includes a QUBO conversion unit 101, an Ising machine 102, an inverse conversion unit 103, an evaluation unit 104, and a penalty coefficient update unit 105, and receives a combinatorial optimization problem as input and outputs an optimal solution.
[0007] FIG. 2 is a flowchart illustrating the operation of the combinatorial optimization device 10. The conventional technology will be explained below using Figures 1 and 2. Here, we will explain the case of solving a "constrained combinatorial optimization problem." When a user inputs a combinatorial optimization problem (step S201), the QUBO conversion unit 101 converts it into a QUBO model (step S202). At this time, the variables of the original problem are converted into (possibly multiple) binary variables. If the problem is a "constrained combinatorial optimization problem," the QUBO model consists of an objective function, a penalty function, and a penalty coefficient (details will be provided later). The penalty coefficient update unit 106 initializes the penalty coefficient (step S203).
[0008] The Ising machine 102 solves the QUBO model and outputs a tentative solution (step S204). The inverse conversion unit 103 converts the values of the variables of the tentative solution (variables of the QUBO model) into the values of the variables of the original combinatorial optimization problem (primitive solution) (step S205). The evaluation unit 104 determines whether the primitive solution satisfies the termination condition (step S206). Specifically, it determines whether the primitive solution satisfies the constraint (whether the primitive solution is a feasible solution), whether the output probability of a feasible solution has reached a certain level, whether the number of executions of the Ising machine has reached a certain number, etc.
[0009] If the termination condition is not satisfied (No in step S206), the penalty coefficient update unit 105 updates the penalty coefficient so that the constraint is satisfied or so that the probability of outputting a feasible solution becomes higher (step S207). The Ising machine 102 solves the QUBO model with the updated penalty coefficient (step S204). If the termination condition is satisfied (Yes in step S206), the primitive solution is output as the solution to the optimization problem.
[0010] We will now provide additional information on conversion to an Ising model and penalty coefficients when inputting a combinatorial optimization problem. The ground state search of the Ising model can be regarded as a minimization problem without constraints on binary variables. Therefore, the constraints that arise when expressing a combinatorial optimization problem with binary variables are converted into a function (called a penalty function) that returns a positive value for infeasible solutions and zero for feasible solutions. By adding a positive constant (called a penalty coefficient) multiplied by the objective function to create a new objective function, the problem is converted into an Ising model / QUBO model with no constraints. A specific example is provided in paragraph
[0041] of this specification.
[0011] If the penalty coefficient is small, the output of the Ising machine will not satisfy the constraints. On the other hand, if the penalty coefficient is large, the objective function value of the obtained solution will be poor. The value of the penalty coefficient may be input by the user or may be determined automatically within the device. In either case, the penalty coefficient is set to a large value so that the output of the Ising machine is a feasible solution. Alternatively, the penalty coefficient is adjusted by trying to run the device multiple times to reach such a large value. When adjustment is made through multiple trials, if a feasible solution is obtained, the penalty coefficient is evaluated based on the probability of the solution and the objective function value of the solution, and the penalty coefficient is updated to a larger value if a higher feasible solution probability is required, or updated to a smaller value if a sufficiently high feasible solution probability has been achieved.In addition, if a feasible solution is not obtained, the penalty coefficient is updated to a larger value.
[0012] The problem with the above device is that it is not possible to obtain a high-quality feasible solution. That is, no matter what penalty coefficient is set, the output of the Ising machine either does not satisfy the constraints (is infeasible), or satisfies the constraints (is feasible) but has a poor objective function value and is of low quality. A technology has been proposed to convert the output of an Ising machine that is infeasible into a feasible solution (Non-Patent Document 1). However, the feasible solution obtained by correcting the output of the Ising machine to satisfy constraints often fails to achieve local optimum for the original combinatorial optimization problem, and is not a high-quality solution. Furthermore, a technique has been proposed for performing post-processing to improve the feasible solution output by an Ising machine (Non-Patent Document 2). However, this technique requires that the Ising machine output a feasible solution, and therefore requires a large penalty coefficient. Even if the output of an Ising machine with a large penalty coefficient is corrected, a high-quality solution cannot be achieved, and therefore this technique also fails to obtain a high-quality solution. [Prior art documents] [Non-patent literature]
[0013] [Non-Patent Document 1] S. Kanamaru et al., "Solving constrained slot placement problems using an Ising machine and its evaluations", IEICE Transactions on Information and Systems, Vol.E104-D, No.2, pp.226-236, 2021. [Non-patent document 2] M. Parizy et al., "Analysis and acceleration of the quadratic knapsack problem on an Ising machine", IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Vol.E104-A, No.11, pp. 1526-1535, 2021. Summary of the Invention [Problem to be solved by the invention]
[0014] As described above, the conventional combinatorial optimization device 10 is unable to obtain a high-quality feasible solution. As in Non-Patent Document 1, a feasible solution obtained by modifying the output of an Ising machine to satisfy constraints cannot achieve local optimum of the original combinatorial optimization problem, and is not a high-quality solution. The technique of Non-Patent Document 2 requires a large penalty coefficient, so that a high-quality solution cannot be achieved even by correcting the output of the Ising machine. [Means for solving the problem]
[0015] A combinatorial optimization device according to the disclosed technology solves the above-described problems and includes a conversion unit, an Ising machine, a repair processing unit, and an improvement processing unit. The conversion unit converts the constrained combinatorial problem into an Ising model consisting of an objective function, a penalty function, and a penalty coefficient. The Ising machine solves the Ising model to generate a tentative solution. If the tentative solution does not satisfy the constraints, the repair processor corrects the tentative solution so that the constraints are satisfied, thereby generating a feasible solution. The improvement processing unit corrects the feasible solution to generate an improved solution so that the constraints are satisfied, or so that the constraints are satisfied and the value of the objective function is improved. [Effects of the Invention]
[0016] By performing a process of converting an infeasible solution into a feasible solution and a process of improving the feasible solution in two stages, a high-quality feasible solution can be obtained. [Brief explanation of the drawings]
[0017] [Figure 1] FIG. 1 is a functional block diagram of a combinatorial optimization device according to the prior art. [Figure 2] 1 is a flowchart illustrating the operation of a combinatorial optimization device according to a conventional technique. [Figure 3] FIG. 1 is a functional block diagram of a combinatorial optimization device according to a first embodiment. [Figure 4] 3 is a flowchart illustrating the operation of the combinatorial optimization device according to the first embodiment. [Figure 5] 10 is a flowchart illustrating an example of the operation of a repair processing unit. [Figure 6] 10 is a flowchart illustrating an example of the operation of the improvement processing unit. [Figure 7] FIG. 2 is a diagram showing an example of the functional configuration of a computer. DETAILED DESCRIPTION OF THE INVENTION
[0018] Hereinafter, embodiments of the disclosed technology will be described in detail. Note that components having the same functions are assigned the same numbers, and duplicated descriptions will be omitted.
[0019] The disclosed technology uses an Ising machine to obtain high-quality feasible solutions in combinatorial optimization, and is comprised of the following ideas: (1) If the output of the Ising machine cannot be converted into a feasible solution for the combinatorial optimization problem, it is corrected so that it can be converted into a feasible solution. This is called repair processing. (2) Then, the feasible solution is modified to improve its quality. This is called the refinement process. The key to the above idea is to use the repair process and the improvement process in combination to synergistically utilize their effects. More specifically, the repair process makes it possible to always obtain a feasible solution even with a small penalty coefficient in the penalty method. By applying the improvement process to a solution obtained using a small penalty coefficient, a high-quality feasible solution can be obtained.
[0020] Because all outputs of an Ising machine are converted into feasible solutions, the disclosed technology differs significantly from conventional combinatorial optimization devices in that the probability of outputting a feasible solution is not evaluated when evaluating and updating the penalty coefficient. By setting a penalty coefficient (which is often smaller than the penalty coefficient required for the output to be a feasible solution) adjusted based on the objective function value of the solution after repair and improvement processing, it is possible to obtain a solution of better quality than when using only one of the repair and improvement processing.
[0021] [First embodiment] 3 shows a functional block diagram of a combinatorial optimization device 30 according to the first embodiment of the disclosed technology. The combinatorial optimization device 30 includes a QUBO conversion unit 101, an Ising machine 102, an inverse conversion unit 103, an evaluation unit 104, a penalty coefficient update unit 105, as well as a constraint determination unit 301, a repair processing unit 302, and an improvement processing unit 303. FIG. 4 is a flowchart illustrating the operation of the combinatorial optimization device 30. The first embodiment will be described in detail below with reference to FIGS.
[0022] When a user inputs a combinatorial optimization problem (step S401), the QUBO conversion unit 101 converts the problem into a QUBO model (step S402). If the problem is a "constrained combinatorial optimization problem," the QUBO model consists of an objective function, a penalty function, and a penalty coefficient. The penalty coefficient update unit 105 initializes the penalty coefficient (step S403). The Ising machine 102 solves the QUBO model and outputs a tentative solution consisting of a plurality of variables (step S404).
[0023] The constraint determination unit 301 determines whether the provisional solution satisfies the constraints (step S405). If the constraints are not satisfied (No in step S405), the repair processing unit 302 corrects the variables of the tentative solution so that the constraints are satisfied, and generates a feasible solution (a specific example of the repair processing will be described later). Note that a feasible solution obtained by correcting part of the tentative solution also consists of multiple variables.
[0024] The inverse transformation unit 103 transforms the values of the variables of the feasible solution or the tentative solution that satisfies the constraints into the values of the variables of the original combinatorial optimization problem (primitive solution) (step S407). The evaluation unit 104 evaluates the initially input combinatorial optimization problem using the obtained primitive solution, and if the termination condition is satisfied (Yes in step S408), outputs the primitive solution as a solution to the combinatorial optimization problem. If the termination condition is not satisfied (No in step S408), the improvement processing unit 303 corrects the variables of the feasible solution so that the constraints are not violated, or so that the constraints are observed and the value of the objective function is improved, to generate an improved solution (a specific example of the improvement processing will be described later). Note that an improved solution, in which part of the feasible solution is corrected, also consists of multiple variables.
[0025] The penalty coefficient update unit 105 adjusts the value of the penalty coefficient based on the value of the objective function into which the improved solution has been substituted (step S410). The Ising machine 102 solves the QUBO model with the updated penalty coefficient (step S404).
[0026] The above is the description of the basic operation of the combinatorial optimization device according to the first embodiment.
[0027] [Specific Examples of Repair Processing and Improvement Processing] The repair processing (step S406) and the improvement processing (step S409) will be described using specific examples. Note that the specific implementation methods of the repair processing and the improvement processing depend on the type of the optimization problem to be solved, and there may be multiple implementation methods for one problem. Hereinafter, the case where the input combinatorial optimization problem is the "quadratic knapsack problem" will be described, but these do not limit the scope of application of the disclosed technology.
[0028] The quadratic knapsack problem is a combinatorial optimization problem defined from data on a plurality of items and the knapsack capacity. Let the number of items be n. For the i-th (i = 1,..., n) item, there is a weight w i ≥ 0 and a profit p i ≥ 0 when placed in the knapsack, and further, a profit p ij [ ≥ 0 when both the two items i and j (i < j) are placed in the knapsack. At this time, the problem of maximizing the profit so that the total weight of the items is less than or equal to the knapsack capacity (the limit of the weight that can be accommodated in the knapsack) is the quadratic knapsack problem. That is, with the total profit being V and the knapsack capacity being C, it is formulated as a problem of maximizing V in Equation (2) under the constraints of Equation (3). [Equation] [ [ [ [ [Equation] [ [ [ [
[0029] [ [ For the method of converting the quadratic knapsack problem into a QUBO model, refer to Non-Patent Document 2. Hereinafter, the repair processing and the improvement processing for the output x → [ ∈ {0, 1} n [ obtained by running the quantum computer will be described. [
[0030] <Repair process> An infeasible solution to the quadratic knapsack problem is one that satisfies the following relationship: → =(x1,x2,…,x n )
number
[0031] An example of the operation of the restoration processing unit 302 will be described below with reference to FIG. The repair processing unit 302 repairs the provisional solution x output by the Ising machine. → is acquired (step S501).
[0032] x i For the selection of item i, we focus on the efficiency of item i (its contribution to the objective function value and its load on the constraints). From equations (2) and (3), the efficiency of item i, e i is defined, for example, by the following equation:
number
[0033] The repair processing unit 302 calculates the value of the variable xi The smallest e among the subscripts i of i (Step S503) and obtain i that gives x i The value of is changed from 1 to 0 (step S504). Next, assuming that W is given by the following equation,
number
[0034] If W is equal to or smaller than C and the constraint is satisfied (No in step S505), the process proceeds to step S506 and the corrected x → is output as a feasible solution (step S506).
[0035] <Improvement process> Next, we will explain the improvement process. The improvement process first adds items to the knapsack within the scope that satisfies the constraints (first process), and then replaces the items in the knapsack under the condition that the constraints are not violated (second process). An example of the operation of the improvement processing unit 303 will be described below with reference to FIG.
[0036] The improvement unit 303 detects a feasible solution x that does not satisfy the termination condition. → is acquired (step S601). Then, e k Calculate (k=1, 2, ..., n) (step S602) Then, the variable x with a value of 0 j Among the subscripts j of j The following is performed starting from j, which gives the following (Loop 1). Where W is given by equation (6), W+w jIt is determined whether or not the constraint is less than or equal to C. In other words, it is confirmed that the constraint is still satisfied even if the item j is added (step S603). W+w j If exceeds C (No in step S603), the next largest e j Attempt to add an item with j. If W+wj is equal to or less than C (Yes in step S603), x j The value of is corrected to 1 (step S604). Then, the corrected x j Using e k (k=1, 2, ..., n) is updated (step S605), and the next j (item) is processed. k (k=1,2,…,n) is x → It is not necessary to recalculate as defined using all of the corrected elements and the related gain p ij Just add and recalculate. In addition, e k Even if (k=1,2,...,n) is updated, the items and order targeted by Loop 1 will not change.
[0037] When loop 1 is completed, proceed to the second process. In the second process, the x updated in the first process is → and e k (k=1,2,…,n) is used. The improvement processing unit 303 calculates the value of the variable x i The small e in the subscript i of i Starting with i (loop 2), and then the variable x with value 0 j The largest e among the subscripts j of j Starting from j that gives i (loop 3), create a pair of i and j and perform the following. The improvement processing unit 303 determines whether the following equation (7) is satisfied (i.e., whether the value of V decreases when the item is replaced) under the condition that W-wi+wj is less than or equal to C (i.e., assuming that the constraint is met even when item i is removed and item j is inserted) (step S606).
number
[0038] If the answer is No in step S606, the pair of i and j is advanced to the next value and an exchange of goods is attempted. If Yes in step S606, x i Set the value of x to 0. j The value is corrected to 1 (step S607). Then, the corrected x i and x j Using e k (k=1, 2, ..., n) is recalculated (step S608), and the next pair of i and j is processed. k (k=1,2,…,n) update is x → It is not necessary to recalculate as defined using all of the corrected elements and the related gain p ij Just add or subtract and recalculate. In addition, e k Even if (k=1, 2, ..., n) is updated, the i / j pair and order to be targeted in the loop 2-3 are not changed. However, the updated e k Use the value (k=1,2,…,n).
[0039] When loop 2-3 is finished, the latest x → is output as an improved solution (step S608).
[0040] The above is an explanation of a specific example of repair processing and improvement processing using the quadratic knapsack problem as an example.
[0041] [Supplementary note: Constraint formulation] A method for formulating constraints for combinatorial optimization problems as penalty functions will be explained using a concrete example. Let x1, x2, x3∈{0, 1}. Suppose the function (objective function) H0 that we want to minimize is the following equation.
number
[0042] <In the case of equality constraints> Suppose we are given the constraints in the following equations:
number
number
[0043] <In the case of inequality constraints> Suppose we are given the constraints in the following inequalities:
number
number
number
number
[0044] This is the explanation of the formulation of constraints. For more details, please refer to, for example, Reference 1 (A. Lucas, "Ising formulations of many NP problems", Frontiers in Physics, Vol. 2, Article 5, 2014).
[0045] [Programs, recording media] The functions performed by the components described herein may be implemented in circuitry or processing circuitry, including general-purpose processors, application-specific processors, integrated circuits, ASICs (Application Specific Integrated Circuits), a CPU (a Central Processing Unit), conventional circuits, and / or combinations thereof, programmed to perform the described functions. A processor includes transistors and other circuits and is considered to be circuitry or processing circuitry. A processor may also be a programmed processor that executes programs stored in memory.
[0046] In this specification, a circuitry, unit, or means is hardware that is programmed to realize or performs the described functions, which may be any hardware disclosed herein or any hardware known to be programmed to realize or perform the described functions.
[0047] If the hardware is a processor considered to be a type of circuitry, the circuitry, means, or unit is a combination of the hardware and software used to configure the hardware and / or processor.
[0048] The various processes described above can be implemented by loading a program that executes each step of the above method into the recording unit 2020 of the computer 2000 shown in Figure 7, and operating the control unit 2010, input unit 2030, output unit 2040, display unit 2050, etc.
[0049] The program describing the processing contents can be recorded on a computer-readable recording medium, which may be, for example, a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, or any other suitable recording medium.
[0050] The program may be distributed, for example, by selling, transferring, lending, etc. a portable recording medium such as a DVD or CD-ROM on which the program is recorded. Furthermore, the program may be stored in a storage device of a server computer, and then transferred from the server computer to another computer via a network, thereby distributing the program.
[0051] A computer that executes such a program may first temporarily store the program recorded on a portable recording medium or transferred from a server computer in its own storage device. Then, when executing a process, the computer reads the program stored on its own recording medium and executes the process in accordance with the read program. Alternatively, the computer may read the program directly from a portable recording medium and execute the process in accordance with the program. Furthermore, the computer may execute the process in accordance with the program each time a program is transferred from a server computer to the computer. The server computer may not transfer the program to the computer, but may instead execute the process through a so-called ASP (Application Service Provider) service, which realizes the processing function by issuing an execution instruction and obtaining the results. Furthermore, the server computer may execute the process on a terminal using a so-called SaaS (Software as a Service) service, which allows users to use part of the server computer along with the program. In this embodiment, the program includes information used for computer processing that is equivalent to a program (such as data that is not a direct instruction to the computer but has properties that define computer processing).
[0052] Furthermore, in this embodiment, the device is configured by executing a predetermined program on a computer, but at least a part of the processing contents may be realized by hardware. [Explanation of symbols]
[0053] 10,30 Combinatorial optimization device 101 QUBO conversion unit 102 Ising machine 103 Inverse conversion unit 104 Evaluation Department 105 Penalty coefficient update unit 301 Constraint judgment part 302 Repair Processing Unit 303 Improvement Department 2000 Computer 2010 Control Unit 2020 Records Department 2030 Input section 2040 Output Unit 2050 Display section
Claims
1. 1. A method for finding an optimal solution to a constrained combinatorial problem, comprising: a conversion unit converting the constrained combinatorial problem into an Ising model including an objective function, a penalty function, and a penalty coefficient; an Ising machine solves the Ising model to generate a tentative solution; If the tentative solution does not satisfy the constraint, a repair processing unit corrects the tentative solution so that the constraint is satisfied to generate a feasible solution; An improvement processing unit corrects the feasible solution to generate an improved solution so that the constraint is satisfied or so that the constraint is satisfied and the value of the objective function is improved. Combinatorial optimization methods.
2. 2. The combinatorial optimization method according to claim 1, The variables of the objective function are arranged in ascending order of contribution to the objective function and load on the constraint, The repair processing unit corrects the values of variables selected in the ascending order from among the variables having a value of 1 in the tentative solution to 0, and obtains the feasible solution. A combinatorial optimization method comprising:
3. 2. The combinatorial optimization method according to claim 1, The variables of the objective function are arranged in descending order of contribution to the objective function and load on the constraint, The improvement processing unit corrects the value of a variable selected from the variables having a value of 0 in the feasible solution based on the descending order to 1, and obtains the improved solution. A combinatorial optimization method comprising:
4. 2. The combinatorial optimization method according to claim 1, The variables of the objective function are arranged in ascending order in descending order, with the order being the order of least contribution to the objective function and greatest load on the constraint, and the order being the order of most contribution to the objective function and least load on the constraint, The improvement processing unit corrects to 0 the values of variables selected in the ascending order from among the variables whose value is 1 in the feasible solution, and corrects to 1 the values of variables selected in the descending order from among the variables whose value is 0 in the feasible solution, to obtain the feasible solution. A combinatorial optimization method comprising:
5. An apparatus for finding an optimal solution to a constrained combinatorial problem, comprising: a conversion unit that converts the constrained combinatorial problem into an Ising model including an objective function, a penalty function, and a penalty coefficient; an Ising machine that solves the Ising model to generate a tentative solution; a repair processing unit that, if the tentative solution does not satisfy the constraint, corrects the tentative solution to generate a feasible solution so that the constraint is satisfied; an improvement processing unit that corrects the feasible solution to generate an improved solution so that the constraint is satisfied or so that the constraint is satisfied and the value of the objective function is improved; A combinatorial optimization device equipped with the above.
6. 6. A combinatorial optimization device according to claim 5, The variables of the objective function are arranged in ascending order of contribution to the objective function and load on the constraint, The repair processing unit corrects the values of variables selected in the ascending order from among the variables having a value of 1 in the tentative solution to 0, and obtains the feasible solution. A combinatorial optimization device characterized by:
7. 6. The combinatorial optimization method according to claim 5, The variables of the objective function are arranged in descending order of contribution to the objective function and load on the constraint, The improvement processing unit corrects the value of a variable selected from the variables having a value of 0 in the feasible solution based on the descending order to 1, and obtains the improved solution. A combinatorial optimization device characterized by:
8. 6. The combinatorial optimization method according to claim 5, The variables of the objective function are arranged in ascending order in descending order, with the order being the order of least contribution to the objective function and greatest load on the constraint, and the order being the order of most contribution to the objective function and least load on the constraint, The improvement processing unit corrects to 0 the values of variables selected in the ascending order from among the variables whose value is 1 in the feasible solution, and corrects to 1 the values of variables selected in the descending order from among the variables whose value is 0 in the feasible solution, to obtain the feasible solution. A combinatorial optimization device characterized by:
9. A program for causing a computer to function as the combinatorial optimization device according to any one of claims 5 to 8.