Optimization systems, methods, and programs

JP2026141117APending Publication Date: 2026-09-04NEC SOLUTION INNOVATORS LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025027491
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-25
Publication Date
2026-09-04

AI Technical Summary

Benefits of technology

【0013】 本開示によれば、組み合わせ最適化問題の厳密解を得る確率を向上させることができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026141117000001_ABST
    Figure 2026141117000001_ABST
Patent Text Reader

Abstract

This invention provides an optimization system that can improve the probability of obtaining an exact solution to a combinatorial optimization problem. [Solution] The reduction cost calculation unit 82 calculates the reduction cost for each of the indices included in the union of the first set and the second set of indices, which was initially selected as an index of the first set, by removing the second set of indices from the index set, and identifies the first reduction cost and the second reduction cost. The set derivation unit 83 derives a third set, which is the set of indices included in the set obtained by removing the second set from the index set, whose reduction cost is equal to the first reduction cost and whose reduction cost satisfies the first criterion value, and a fourth set, which is the set of indices included in the first set, whose reduction cost is equal to the second reduction cost and whose reduction cost satisfies the second criterion value. The restriction update unit 84 updates the first set with the set obtained by removing the fourth set from the union of the first set and the third set, and updates the second set with the union of the second set and the third set.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an optimization system, an optimization method, and an optimization program for solving a combinatorial optimization problem. Background Art

[0002] It is known that when solving combinatorial optimization problems (0-1 integer programming problems) such as the set partitioning problem and the maximum matching problem, as the problem scale increases, calculation becomes difficult due to insufficient memory, and it takes a long time to obtain a solution.

[0003] The set partitioning problem described above is a problem of finding a solution that covers the entire subset family without omission or duplication. For example, let a set V and its subset family {U i} i=1 N be given. In the set partitioning problem, for each U i , when a cost c i is given, the problem is to appropriately select a subset J of {1,…,N}, thereby deriving a subset family that directly partitions V with the smallest possible sum of costs Σ j∈J c j

[0004] Here, direct sum partitioning means V=∪ j∈J U j (covers without omission), and for j1,j2∈J, if j1≠j2, then U ji ∩U j2 = ∅, which is the type of partitioning referred to.

[0005] Non-Patent Document 1 describes the column generation method, which is one method for solving problems when combinatorial optimization problems such as the set partitioning problem become large-scale. The column generation method is a method that starts processing from a subproblem obtained by restricting the original master problem to only some variables, evaluates the expandability of the subproblem, and gradually adds variables to obtain a solution close to the optimal solution. Prior Art Literature Non-Patent Literature​

[0006] [Non-Patent Document 1] Nishino, M.; Suzuki, J.; Umetani, S.; Hirao, T.; Nagata, M.; “Modeling of Sequence Alignment Based on the Set Partition Problem”, Natural Language Processing, Association for Natural Language Processing, 2016, Vol. 23, No. 2, pp. 175-194. [Overview of the project] [Problems that the invention aims to solve]

[0007] While column generation methods have low computational cost, they do not always yield an exact solution (the true optimal solution). For example, in the case of the set partitioning problem, the constraints are stricter than in the similar set covering problem, which significantly reduces the probability of obtaining an exact solution.

[0008] Furthermore, the branch-pricing method, which applies the branch-and-bound method to the column generation method, is also known. While it can obtain an exact solution, it has the problems of being complex to implement and consuming a lot of memory.

[0009] Therefore, the purpose of this disclosure is to provide an optimization system, an optimization method, and an optimization program that can improve the probability of obtaining an exact solution to a combinatorial optimization problem. [Means for solving the problem]

[0010] The optimization system disclosed herein includes a dual problem processing unit that obtains a first set, which is a subset of the index set of feasible solutions in the primal problem of the optimization problem, and solves the dual problem of the linear relaxation problem of the restricted primal problem, which is restricted to the indices of the variables in the primal problem. For each index included in the union of the first set and the second set, which is the set of indices that were once selected as indices of the first set, the system calculates a reduction cost, which is the cost reduced when the variable of that index is added to the restriction. The system then calculates a first reduction cost that satisfies the first condition among the reduction costs included in the set obtained by removing the second set from the index set, and a second reduction cost that satisfies the second condition among the reduction costs included in the first set. The system is characterized by comprising: a cost reduction calculation unit that identifies costs; a set derivation unit that derives a third set which is a set of indices included in the set obtained by removing the second set from the set of indices, the set whose cost reduction is equal to the first cost reduction and whose cost reduction satisfies the first criterion value; and a fourth set which is a set of indices included in the first set, the set whose cost reduction is equal to the second cost reduction and whose cost reduction satisfies the second criterion value; a restricted update unit that updates the first set with the set obtained by removing the fourth set from the union of the first set and the third set, and updates the second set with the union of the second set and the third set; and an optimization unit that uses the updated first set to solve the primal problem as an integer programming problem and obtain the optimal solution to the primal problem.

[0011] The optimization method disclosed herein obtains a first set, which is a subset of the index set of feasible solutions in the primal problem of the optimization problem. Solves the dual problem of the linear relaxation problem of the restricted primal problem, which restricts the indices of the variables in the primal problem to that subset. For each index included in the union of the first set and the second set (which is the set of indices that were once selected as indices of the first set), the method calculates a reduction cost, which is the cost reduced when the variable of that index is added to the restriction. The first reduction cost that satisfies the first condition among the reduction costs corresponding to the indices included in the set obtained by removing the second set from the index set, and the second reduction cost that satisfies the first condition among the reduction costs corresponding to the indices included in the first set. The method is characterized by identifying a second reduction cost that satisfies the conditions, deriving a third set which is the set of indices in the set obtained by subtracting the second set from the index set, whose reduction cost is equal to the first reduction cost and whose reduction cost satisfies the first criterion, and a fourth set which is the set of indices in the first set whose reduction cost is equal to the second reduction cost and whose reduction cost satisfies the second criterion, updating the first set with the set obtained by subtracting the fourth set from the union of the first and third sets, updating the second set with the union of the second and third sets, and using the updated first set to solve the primal problem as an integer programming problem to obtain the optimal solution to the primal problem.

[0012] The optimization program disclosed herein performs a dual problem processing on a computer, which involves obtaining a first set, which is a subset of the index set of feasible solutions in the primal problem of the optimization problem, solving the dual problem of the linear relaxation problem of the restricted primal problem, which restricts the indices of the variables in the primal problem to that subset, and for each index included in the union of the first set and the second set, which is the set of indices that were once selected as indices of the first set, the program calculates the reduction cost, which is the cost reduced when the variable of that index is added to the restriction, and then calculates the first reduction cost that satisfies the first condition among the reduction costs included in the set obtained by removing the second set from the index set, and the second reduction cost that satisfies the second condition among the reduction costs included in the first set. The method is characterized by performing a reduction cost calculation process to identify costs, a set derivation process to derive a third set which is the set of indices in the set obtained by removing the second set from the set of indices, the set whose reduction cost is equal to the first reduction cost and whose reduction cost satisfies the first criterion value, and a fourth set which is the set of indices in the first set whose reduction cost is equal to the second reduction cost and whose reduction cost satisfies the second criterion value, a restricted update process which updates the first set with the set obtained by removing the fourth set from the union of the first set and the third set, and updates the second set with the union of the second set and the third set, and an optimization process which uses the updated first set to solve the primal problem as an integer programming problem and obtain the optimal solution to the primal problem. [Effects of the Invention]

[0013] According to this disclosure, the probability of obtaining an exact solution to a combinatorial optimization problem can be improved. [Brief explanation of the drawing]

[0014] [Figure 1] This is an explanatory diagram showing an example configuration of one embodiment of the optimization system disclosed herein. [Figure 2] This flowchart shows an example of how a common column generation method works. [Figure 3] This flowchart shows an example of the operation of the optimization system disclosed herein. [Figure 4]This flowchart shows another example of the operation of the optimization system in this disclosure. [Figure 5] This is an explanatory diagram showing the results of the verification experiment. [Figure 6] Block diagram showing an overview of the optimization system in this disclosure. [Figure 7] This is a schematic block diagram showing the configuration of a computer according to at least one embodiment. [Modes for carrying out the invention]

[0015] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.

[0016] Figure 1 is an explanatory diagram showing an example configuration of one embodiment of the optimization system of the present disclosure. The optimization system 100 of this embodiment includes a storage unit 10, an executable solution derivation unit 20, a limit update unit 30, a limit addition unit 40, an optimization unit 50, and an output unit 60.

[0017] The following explanation uses the set partitioning problem as an example of a combinatorial optimization problem (0-1 integer programming problem) and describes an improved version of the sequence generation method described above. Note that the optimization problems that can be solved using this disclosed method are not limited to set partitioning problems; it can also be applied to set cover problems and maximal matching problems. An example of applying this disclosed method to a maximal matching problem will be described later.

[0018] First, we formulate the set partitioning problem as a mathematical optimization problem. Subset family U i Whether or not to include it in the subset J is represented using the binary variable xi. That is,

[0019]

number

[0020] By introducing a variable defined by , the set partitioning problem can be defined as a combinatorial optimization problem (0-1 integer programming problem) as shown in Equation 1 below. In Equation 1, M is the number of elements in the set V (i.e., V = {v1, ..., v M}) represents, 1 M This represents an M-dimensional vector whose components are all 1. Also, A = (a i ,j) i,j This is an M×N matrix whose components are only 1 or 0, a i,j =1⇔v i ∈U j That is the case.

[0021]

number

[0022] Next, we will explain the operation of a general column generation method. Figure 2 is a flowchart showing an example of how a general column generation method works. Here, we assume that a computer (not shown) performs each process in the column generation method.

[0023] The computer finds a feasible solution z={z1,…,z} to the set partitioning problem (primary problem) of the original optimization problem. N} T The result is derived using a greedy algorithm (step S101). Next, the computer finds a subset J of the index set I = {1, ..., N} from the derived z. ini :={j∈I|z j Extract} = 1} and J = J ini (Step S102). From here on, the computer uses the set of indices contained in J as the constraint on the main problem. From here on, the computer repeats the loop processing from step S103 to step S107.

[0024] The computer solves the dual of the linear relaxation problem of the restricted master problem (RMP), shown in Equation 2 below, where the subscripts of the variables in the primal problem are restricted to J (step S103).

[0025]

number

[0026] The computer uses the solution y^ (where ^ represents a superscript hat) to the dual problem to calculate the reduced cost (hereinafter sometimes referred to as the reduced cost) for each j ∈ I \J using the following equation 3. The reduced cost is the cost reduced when the subscripted variable is added to the restriction. Then, as shown in the following equation 4, the computer identifies the smallest value α among the calculated reduced costs (step S104).

[0027]

number

[0028] Next, the computer considers the set of elements J corresponding to costs whose cost reduction is equal to α and whose cost reduction is less than 0. gen Derive the following (step S105). That is, the computer determines the set J that satisfies the following conditions. gen Derive the following.

[0029]

number

[0030] set J gen The element does not exist (i.e., J gen If the set is empty (YES in step S106), the computer terminates the loop.

[0031]

number

[0032] On the other hand, set J gen The element exists (i.e., J gen If (NO in step S106) the set J and the set J genThe set J is updated with the union of the sets (step S107), and the process from step S103 onwards is repeated.

[0033] After the loop processing is complete, the computer uses the finally obtained set J to solve the constrained primal problem (RMP) shown in Equation 5 as an integer programming problem, thereby finding the optimal solution x * (Step S108) obtains the optimal solution x * Output (step S109).

[0034]

number

[0035] The above is an example of how a general column generation method works. Below, we will explain the configuration for implementing an improved version of the column generation method.

[0036] The storage unit 10 stores various information used by the optimization system 100 for processing. In this embodiment, the storage unit 10 stores candidate feasible solutions. The storage unit 10 is implemented, for example, by a magnetic disk or the like.

[0037] The feasible solution derivation unit 20 derives the feasible solution z={z1,…,z N} T The method by which the feasible solution derivation unit 20 derives the feasible solution z of the main problem is arbitrary. The feasible solution derivation unit 20 may, for example, derive the feasible solution using a greedy algorithm, similar to the column generation method illustrated above. Note that each variable of the feasible solution can be identified by the subscripts {1, ..., N} described above.

[0038] The feasible solution derivation unit 20 uses a subset of the index set I={1,…,N} of the feasible solution z (hereinafter sometimes referred to as the first set) J ini :={j∈I|z j Extract {=1}. Note that subset J ini Regarding this, the method of acquisition is arbitrary as long as it satisfies the constraints of the main problem, and the same acquisition method as general column generation methods can be used.

[0039] Below, the initial state is J=J ini This is defined as follows. Furthermore, the feasible solution derivation unit 20 defines a set of indices K (hereinafter sometimes referred to as the second set) that has been selected as indices of the first set J. In the initial state, K = J ini That is the case.

[0040] The restriction update unit 30 performs a process to update the restrictions in order to obtain the optimal solution to the main problem. The restriction update unit 30 includes a dual problem processing unit 31, an update candidate derivation unit 32, and a restriction update unit 33.

[0041] The dual problem processing unit 31 obtains the first set J from the feasible solution derivation unit 20. The dual problem processing unit 31 solves the dual problem of the linear relaxation problem of the restricted primal problem (RMP), in which the subscript j of the variables in the primal problem of the optimization problem is restricted to the first set J. Specifically, the dual problem processing unit 31 solves the dual problem of the linear relaxation problem of the restricted primal problem shown in Equation 2 above.

[0042] In this case, the dual problem processing unit 31 may solve the dual problem using constraints that restrict the range of the variable y. Specifically, the dual problem processing unit 31 may solve the dual problem using the constraints shown in Equation 6 below. The constraints shown in Equation 6 are the domain of the variable y, which is determined based on various verification experiments. By using constraints that restrict the range of the variable in the dual problem in this way, it becomes possible to improve the likelihood of obtaining an exact solution.

[0043]

number

[0044] The update candidate derivation unit 32 calculates the cost reduction (i.e., reduction cost) c^ that occurs when the subscript variable is added to the restriction. Specifically, the update candidate derivation unit 32 calculates the reduction cost c^ for each subscript j ∈ (I\K)∪J that is included in the union of the subscript set I excluding the second set K (I\K) and the first set J.

[0045] Next, the update candidate derivation unit 32 identifies the smallest reduction cost α among the reduction costs c^ corresponding to the index j included in the set (I\K) obtained by removing the second set K from the index set I. Hereafter, the reduction cost α identified from the index j included in the set (I\K) may be referred to as the first reduction cost. Furthermore, the update candidate derivation unit 32 identifies the largest reduction cost β among the reduction costs c^ corresponding to the index j included in the first set J. Hereafter, the reduction cost β identified from the index j included in the first set J may be referred to as the second reduction cost. That is, the update candidate derivation unit 32 calculates α and β as shown in the following equation 7.

[0046]

number

[0047] Next, the update candidate derivation unit 32 determines the set J of indices j included in the set (I\K) such that the reduction cost c^ is equal to the reduction cost α and the reduction cost c^ is 0 or less. gen The update candidate derivation unit 32 derives the set of indices j included in the first set J such that the reduction cost c^ is equal to the reduction cost β and that the reduction cost c^ is 1 or greater. eli (Hereafter sometimes referred to as the fourth set) is derived. That is, the update candidate derivation unit 32 is J shown in the following equation 8. gen and J eli Derive the following.

[0048]

number

[0049] In this embodiment, compared to a general column generation method, the conditions for the subscripts added to J (i.e., set J) gen The subscript condition to include is that the condition to compare with the reduction cost is less than 0 (c j ^<0) to less than or equal to 0 (c jThe constraint is relaxed to ^≦0). This indicates a sequence that violates the constraints of the dual problem, and which, when adopted, brings the optimal value of the dual problem closer to the optimal value of the original problem. This relaxation makes it possible to increase the likelihood of achieving strictness.

[0050] Furthermore, in this embodiment, in order to suppress the increase in problem size due to the excessive addition of columns (i.e., variables), J is not derived using general column generation methods. eli A new method is derived. This method shows columns that sufficiently satisfy the constraints of the dual problem and columns that, if deleted, are assumed not to change the optimal value of the dual problem. This suppresses the addition of unnecessary columns, thereby reducing the size of the problem. For these reasons, the method of this embodiment, which is an improvement on the column generation method, can be called the column generation elimination method.

[0051] The restriction update unit 33 uses the J derived by the update candidate derivation unit 32. gen and J eli Determine whether any of them are empty sets or not. gen and J eli If neither set is empty, the restriction update unit 33 updates set J and set J. gen From the union of these sets, we get set J. eli The set excluding ((J∪J gen )\J eli The set J is updated using ). Furthermore, the restriction update unit 33 updates set K and set J gen The union of (K∪J) gen The set K is updated using the following formula. That is, the restriction update unit 33 updates J and K as shown in Equation 9 below.

[0052]

number

[0053] Furthermore, J gen and J eli The fact that it is an empty set corresponds to the following:

[0054]

number

[0055] The restriction addition section 40 is a subset J of the index set of feasible solutions z. ini This is added to the set J. Thus, the subset J of the index set of the initially obtained feasible solution z is created. ini Adding this guarantees that integer solutions will be obtained in the optimization process described later.

[0056] The optimization unit 50 solves the constrained primate problem as an integer programming problem using the finally obtained updated set J to find the optimal solution x * For example, by the restriction addition section 40, J ini If is added to set J, the optimization unit 50 will perform the following: ini The integer programming problem may also be solved using the set J to which the elements have been added. Specifically, the optimization unit 50 solves the constrained primal problem (RMP) shown in equation 5 above as an integer programming problem to obtain the optimal solution x * To obtain

[0057] The output unit 60 outputs the optimal solution x obtained as a result of the optimization process performed by the optimization unit 50. * Outputs.

[0058] The executable solution derivation unit 20, the restriction update unit 30 (more specifically, the dual problem processing unit 31, the update candidate derivation unit 32, and the restriction update unit 33), the restriction addition unit 40, the optimization unit 50, and the output unit 60 are implemented by a computer processor (e.g., a CPU (Central Processing Unit) or GPU (Graphics Processing Unit)) that operates according to a program (optimization program).

[0059] For example, the program may be stored in the memory unit 10 of the optimization system 100, and the processor may read the program and operate according to the program as the executable solution derivation unit 20, the restriction update unit 30 (more specifically, the dual problem processing unit 31, the update candidate derivation unit 32, and the restriction update unit 33), the restriction addition unit 40, the optimization unit 50, and the output unit 60. Alternatively, each function of the optimization system 100 may be provided in SaaS (Software as a Service) format.

[0060] Furthermore, the executable solution derivation unit 20, the restriction update unit 30 (more specifically, the dual problem processing unit 31, the update candidate derivation unit 32, and the restriction update unit 33), the restriction addition unit 40, the optimization unit 50, and the output unit 60 may each be implemented using dedicated hardware.

[0061] Furthermore, some or all of the components of each device may be implemented by general-purpose or dedicated circuits, processors, etc., or combinations thereof. These may be comprised of a single chip or multiple chips connected via a bus. Some or all of the components of each device may be implemented by a combination of the aforementioned circuits, etc., and programs.

[0062] Furthermore, if some or all of the components of the optimization system 100 are implemented by multiple information processing devices or circuits, these multiple information processing devices or circuits may be centrally located or distributed. For example, the information processing devices or circuits may be implemented in a form in which each is connected via a communication network, such as a client-server system or a cloud computing system.

[0063] Next, an example of the operation of the optimization system 100 of this embodiment will be described. Figure 3 is a flowchart of an example of the operation of the optimization system 100 of this embodiment. The example of operation illustrated in Figure 3 is an example of operation when solving a set partitioning problem. The feasible solution derivation unit 20 derives the feasible solution z={z1,…,z N} TThe feasible solution derivation unit 20 derives a subset J of the index set I={1,…,N} from the derived feasible solution z. ini :={j∈I|z j Extract} =1}, and J:=J ini , K:=J ini (Step S1b). Subsequently, the loop processing from Step S2a to Step 2e is repeated.

[0064] The dual problem processing unit 31 solves the dual problem of the linear relaxation problem of the restricted primal problem (RMP), in which the subscripts of the variables in the primal problem are restricted to J (step S2a). Specifically, the dual problem processing unit 31 solves the dual problem shown in equation 10 below.

[0065]

number

[0066] The update candidate derivation unit 32 uses the solution y^ of the dual problem to determine the reduction cost c for each j∈(I\K)∪J. j ^ is calculated, and α and β are determined as shown in Equation 7 above (step S2b). Then, the update candidate derivation unit 32 determines J as shown in Equation 8 above. gen and J eli Derive the following (step S2c).

[0067] The restriction update unit 33 is J gen and J eli Determine whether either of them is an empty set (step S2d). If at least one of them is not an empty set (NO in step S2d), the restriction update unit 33 checks whether set J and set J gen From the union of these sets, we get set J. eli The set excluding ((J∪J gen )\J eli ) Update set J with set K and set J gen The union of (K∪J) gen The set K is updated (step S2e). That is, the restriction update unit 33 updates J and K as shown in equation 9 above. The process from step S2a onward is repeated thereafter.

[0068] On the other hand, J gen and J eli are both empty sets (YES in step S2d), the loop processing is terminated, and the constraint adding unit 40 adds the set J ini to the set J (step S3). The optimization unit 50 obtains an optimal solution x * by solving the restricted master problem (RMP) represented by the above formula (5) as an integer programming problem using the set J (step S4). Then, the output unit 60 outputs the optimal solution x * (step S5).

[0069] As described above, in the present embodiment, the dual problem processing unit 31 acquires a set J that is a subset of the index set I of feasible solutions z in the master problem of an optimization problem, and solves the dual problem of the linear relaxation problem of the restricted master problem in which the indices j of variables of the master problem are restricted to J ini . Further, the update candidate derivation unit 32 calculates a reduced cost c^ for each index j included in the union of the set (I\K) and the set J, and identifies a reduced cost α that satisfies a first condition (min or max) among the reduced costs corresponding to indices j included in the set (I\K), and a reduced cost β that satisfies a second condition (max or min) among the reduced costs corresponding to indices j included in the set J. Furthermore, the update candidate derivation unit 32 derives a set J gen of indices among the indices j included in the set (I\K) whose reduced cost is equal to the reduced cost α and the reduced cost satisfies a first reference value, and a set J eli of indices among the indices j included in the set J whose reduced cost is equal to the reduced cost β and the reduced cost satisfies a second reference value. Then, the restriction updating unit 33 updates the set J with a set obtained by removing the set J gen from the union of the set J and the set J eli , updates the set K with the union of the set K and the set J gen , and the optimization unit 50 solves the master problem as an integer programming problem using the updated set J to obtain an optimal solution of the master problem. Therefore, the probability of obtaining an exact solution for a combinatorial optimization problem can be improved.

[0070] Next, we will explain how to solve a maximal matching problem, which is a type of combinatorial optimization problem (0-1 integer programming problem), using the optimization system of this embodiment. Figure 4 is a flowchart showing another example of operation of the optimization system 100 of this embodiment. The example of operation shown in Figure 4 is an example of operation when solving a maximal matching problem. The process up to deriving a feasible solution and setting J and K is the same as the process in steps S1a and S1b shown in Figure 3.

[0071] The dual problem processing unit 31 solves the dual problem of the linear relaxation problem of the restricted primal problem (RMP), in which the subscripts of the variables in the primal problem are restricted to J (step S2a). Specifically, the dual problem processing unit 31 solves the dual problem shown in equation 11 below.

[0072]

number

[0073] Next, the update candidate derivation unit 32 calculates the reduction cost c^ in the same manner as in step S2b illustrated in Figure 3. Here, in the case of a maximal matching problem, the update candidate derivation unit 32 identifies the largest reduction cost α among the reduction costs c^ corresponding to the index j included in the set (I\K). Furthermore, the update candidate derivation unit 32 identifies the smallest reduction cost β among the reduction costs c^ corresponding to the index j included in the set J. That is, the update candidate derivation unit 32 calculates α and β as shown in the following equation 12 (step S2b').

[0074]

number

[0075] Furthermore, in the case of a maximal matching problem, the update candidate derivation unit 32 derives the set J of indices j included in the set (I\K) such that the reduction cost c^ is equal to the reduction cost α, and the reduction cost c^ is 1 or greater. genis derived. Further, the update candidate deriving unit 32 obtains, among the subscripts j included in the set J, a set J of subscripts for which the reduced cost c^ is equal to the reduced cost β and the reduced cost c^ is less than or equal to -1 eli is derived. That is, the update candidate deriving unit 32 derives J represented by the following Equation 13 gen and J eli (step S2c´).

[0076]

Mathematical Expression

[0077] Thereafter, the process of determining whether both J gen and J eli are empty sets and updating J and K is the same as the processing of step S2d, step S2e and step S3 illustrated in FIG. 3. In the maximum matching problem, that J gen and J eli are empty sets corresponds to the following content.

[0078]

Mathematical Expression

[0079] The optimization unit 50 solves the Restricted Master Problem (RMP) represented by the following Equation 14 using the set J as an integer programming problem, thereby obtaining an optimal solution x * (step S4´). Then, the output unit 60 outputs the optimal solution x * (step S5).

[0080]

Mathematical Expression

[0081] Next, we will explain how to solve the set cover problem, a type of combinatorial optimization problem (0-1 integer programming problem), using the optimization system of this embodiment. The method for solving the set cover problem is the same as the method for solving the set partition problem. However, in the set cover problem, the constraint condition shown in Equation 1 above is different in that Ax≧1.

[0082] Next, we will describe some application examples of the optimization system of this embodiment. For example, as an application to set partitioning problems, it can be applied to crew scheduling problems, delivery planning problems, facility placement problems, electoral district demarcation problems, and bin packing problems. Other examples include serial alignment of strings, DNA (deoxyribonucleic acid) sequences, time series data, community detection and graph clustering utilizing modularity maximization.

[0083] More specifically, the optimization system of this embodiment can be applied to community detection that identifies trending topics on social networking services (SNS), traffic guidance that predicts congestion, and metabolic network analysis that identifies enzymes involved in metabolism.

[0084] The following describes a specific example of applying the optimization system of this embodiment to the crew scheduling problem. The following example describes two cases: (1) obtaining a solution for the first time or using it offline, and (2) obtaining a new schedule candidate after already obtaining the optimal solution or using it online.

[0085] The memory unit 10 stores various patterns of driver schedule candidates (job candidates) created by the administrator or others. A job refers to a schedule from departing the depot, driving several service routes, and finally returning to service. The variable N shown in Equation 2 above corresponds to the number of schedule candidates (number of job candidates), and the variable M corresponds to the number of schedule candidates (number of job candidates) after narrowing them down. The number of rows in matrix A corresponds to the number of bus service routes, and the number of columns in A corresponds to N (i.e., the number of job candidates).

[0086] Then, set J corresponds to a list of the numbers (corresponding to subscripts) of the selected duty candidates, and c corresponds to the cost of selecting a duty candidate. For example, in the minimum crew problem, all cost values ​​will be 1.

[0087] First, we will explain the case of obtaining a solution for the first time or using it offline. The feasible solution derivation unit 20 derives a feasible solution to the crew scheduling problem and provides a set of indices J of a small number of schedule candidates. ini The following candidates are extracted. These candidates do not necessarily yield the optimal solution, but they do, for example, yield a feasible solution that satisfies the constraints shown in Equation 1. The feasible solution derivation unit 20 may derive a feasible solution, for example, by a greedy algorithm.

[0088] The restriction update unit 30 repeats the process from step S2a to step S2e, as illustrated in Figure 3, and the restriction addition unit 40 obtains the set of indices J of the enhanced schedule candidates. The optimization unit 50 uses this set J to solve the constrained primal problem as an integer programming problem to obtain the optimal solution x * To obtain.

[0089] Next, we will explain the case where a new schedule candidate is obtained after the optimal solution has already been obtained, or where it is used online. In this case, the memory unit 10 integrates and stores the existing crew schedule (duty candidate) and the new schedule candidate.

[0090] The feasible solution derivation unit 20 derives a feasible solution to the crew scheduling problem and generates a set of indices J of a small number of schedule candidates. ini Extracts the following. The feasible solution derivation unit 20 then uses the already obtained optimal solution to J ini It may also be used as such. Thereafter, the restriction update unit 30 repeats the process from step S2a to step S2e, as illustrated in Figure 3, and the restriction addition unit 40 obtains the subscript set J of the enhanced schedule candidates.

[0091] The optimization unit 50 determines whether the index of the new schedule candidate is included in the enhanced set of indexes J of the schedule candidates. If the index of the new schedule candidate is not included, it determines that no new optimal solution can be obtained and interrupts the optimization process. [Examples]

[0092] The following describes embodiments of the optimization system of this disclosure. However, the embodiments of the optimization system of this disclosure are not limited to those shown below.

[0093] As a verification experiment of the optimization system disclosed herein, an optimization process was performed using GTFS (General Transit Feed Specification) data (open data) of a certain bus route. Specifically, in order to verify various scales among all 19 routes included in the GTFS data, a pattern of randomly selecting 11 routes from 2 routes was repeated 10 times for each pattern.

[0094] Furthermore, based on a predetermined timetable, we systematically generated potential service assignments, taking into account the connections between flights and working hours. Based on this data, we formulated the minimum crew problem (i.e., the minimum number of crew members required to implement the given timetable) as a set partitioning problem. We then obtained an exact solution using the branch cut method and compared it with solutions obtained using the column generation method and the method disclosed here (column generation elimination method).

[0095] Figure 5 is an explanatory diagram showing the results of the verification experiment. The table in Figure 5(a) shows the results of the verification experiment when using the column generation method, and the table in Figure 5(b) shows the results of the verification experiment when using the column generation elimination method. When using the column generation method, the probability of obtaining an exact solution was 3%, whereas when using the column generation elimination method, an exact solution could be obtained with a probability of 99%. Furthermore, the size of the problem (compression ratio) could be reduced to about 30% of the original size. It can be said that the implementation of the column generation elimination method was comparable to that of the column generation method, while also reducing memory consumption.

[0096] Next, an overview of this disclosure will be provided. Figure 6 is a block diagram illustrating the overview of the optimization system of this disclosure. The optimization system 80 (for example, optimization system 100) according to this disclosure is a subset (for example, J=J) of the index set (for example, I) of the feasible solution (for example, z) in the primal problem of the optimization problem (for example, combinatorial optimization problem: set partitioning problem / maximal matching problem, etc.). ini ) obtain the first set (e.g., J) and the subscript of the variable in the main problem (e.g., j) is a subset (e.g., J) ini A dual problem processing unit 81 (e.g., dual problem processing unit 31) solves the dual problem of the linear relaxation problem of the restricted primal problem, and calculates a reduction cost (e.g., c^) for each index j included in the union of the index set (e.g., I\K) obtained by removing the second set (e.g., K), which is the set of indices that were once selected as indices of the first set, and the first set J, and the cost that is reduced when the variable of that index is added to the restriction. The index included in the index set (e.g., I\K) obtained by removing the second set from the index set A reduction cost calculation unit 82 (e.g., update candidate derivation unit 32) identifies a first reduction cost (e.g., α) that matches a first condition (e.g., maximum or minimum) among the reduction costs corresponding to the index included in the first set, and a second reduction cost (e.g., β) that matches a second condition (e.g., minimum or maximum) among the reduction costs corresponding to the index included in the first set, and identifies an index included in the set obtained by removing the second set from the index set (e.g., I\K) whose reduction cost is equal to the first reduction cost, and whose reduction cost is the first reference value (e.g., c j The third set is the set of indices satisfying ^≦0) (for example, J gen ), and among the indices included in the first set, those whose reduction cost is equal to the second reduction cost, and whose reduction cost is equal to the second criterion value (for example, c j The fourth set is the set of indices satisfying ^≧1) (for example, J eliThe system includes a set derivation unit 83 (for example, an update candidate derivation unit 32) that derives the set, a restricted update unit 84 (for example, a restricted update unit 33) that updates the first set with the union of the first set and the third set excluding the fourth set, and updates the second set with the union of the second set and the third set, and an optimization unit 85 (for example, an optimization unit 50) that uses the updated first set to solve the primal problem as an integer programming problem and obtain the optimal solution to the primal problem.

[0097] Such a configuration can improve the probability of obtaining an exact solution to a combinatorial optimization problem.

[0098] Furthermore, the optimization system 80 uses a subset of the index set of feasible solutions (for example, J ini The system may also include a restriction addition unit (for example, a restriction addition unit 40) that adds the first set to the first set. The optimization unit 85 may then use the first set to solve the primate problem as an integer programming problem and obtain the optimal solution to the primate problem.

[0099] For example, in the case of a set partitioning problem, the reduction cost calculation unit 82 may identify the smallest first reduction cost among the reduction costs corresponding to the indices in the set obtained by removing the second set from the index set (e.g., I\K), and the largest second reduction cost among the reduction costs corresponding to the indices in the first set. Then, the set derivation unit 83 may derive a third set, which is the set of indices in the set obtained by removing the second set from the index set (e.g., I\K), whose reduction cost is equal to the first reduction cost and whose reduction cost is 0 or less, and a fourth set, which is the set of indices in the first set, whose reduction cost is equal to the second reduction cost and whose reduction cost is 1 or more.

[0100] Alternatively, for example, in the case of a maximal matching problem, the reduction cost calculation unit 82 may identify the largest first reduction cost among the reduction costs corresponding to the indices in the set obtained by removing the second set from the index set (e.g., I\K), and the smallest second reduction cost among the reduction costs corresponding to the indices in the first set. Then, the set derivation unit 83 may derive a third set, which is the set of indices in the set obtained by removing the second set from the index set (e.g., I\K) whose reduction cost is equal to the first reduction cost and whose reduction cost is 1 or greater, and a fourth set, which is the set of indices in the first set whose reduction cost is equal to the second reduction cost and whose reduction cost is -1 or less.

[0101] Furthermore, if either the third set or the fourth set is not an empty set, the processing by the restriction update unit 84, the dual problem processing unit 81, the reduction cost calculation unit 82, and the set derivation unit 83 may be repeated in sequence.

[0102] Alternatively, the dual problem processing unit 81 may solve the dual problem using constraints that restrict the range of the variable (e.g., y^) (e.g., equation 6 above).

[0103] Figure 7 is a schematic block diagram showing the configuration of a computer according to at least one embodiment. Computer 1000 comprises a processor 1001, main memory 1002, auxiliary memory 1003, and interface 1004. Computer 1000 may also be connected to a computer for running a mathematical programming solver, an annealing machine, a simulator, etc.

[0104] The optimization system 80 described above is implemented in the computer 1000. The operation of each processing unit described above is stored in the auxiliary storage device 1003 in the form of a program (optimization program). The processor 1001 reads the program from the auxiliary storage device 1003, loads it into the main memory 1002, and executes the above processing according to the program.

[0105] In at least one embodiment, the auxiliary storage device 1003 is an example of a non-temporary tangible medium. Other examples of non-temporary tangible media include magnetic disks, magneto-optical disks, CD-ROMs (Compact Disc Read-only memory), DVD-ROMs (Read-only memory), and semiconductor memory connected via the interface 1004. Furthermore, if this program is distributed to the computer 1000 via a communication line, the computer 1000 that receives the program may expand it into the main memory 1002 and execute the above processing.

[0106] Furthermore, the program may be intended to implement some of the functions described above. In addition, the program may be a so-called differential file (differential program) that implements the functions described above in combination with other programs already stored in the auxiliary storage device 1003.

[0107] Although the present invention has been described above with reference to the embodiments and examples, the present invention is not limited to the above embodiments and examples. Various modifications to the structure and details of the present invention can be made, as can be understood by those skilled in the art within the scope of the present invention. [Explanation of Symbols]

[0108] 10 Storage section 20 Executable Solution Derivation Unit 30 Restriction Update Section 31 Dual Problem Processing Section 32 Update candidate derivation part 33 Restriction Update Section 40 Additional Restrictions 50 Optimization Section 60 Output section 100 Optimization Systems

Claims

1. A dual problem processing unit obtains a first set which is a subset of the index set of feasible solutions in the primal problem of an optimization problem, and solves the dual problem of a linear relaxation problem of a restricted primal problem in which the index of the variables in the primal problem is restricted to the subset, and A reduction cost calculation unit calculates a reduction cost for each index included in the union of the first set and the second set, which is the set of indices that were once selected as indices of the first set, and for each index included in the union of the second set and the first set, the reduction cost is the cost that is reduced when the variable of that index is added to the restriction. The reduction cost calculation unit identifies a first reduction cost that satisfies the first condition among the reduction costs corresponding to the index included in the set obtained by removing the second set from the index set, and a second reduction cost that satisfies the second condition among the reduction costs corresponding to the index included in the first set. A set derivation unit that derives a third set of subscripts from the set obtained by removing the second set from the aforementioned set of subscripts, wherein the reduction cost is equal to the first reduction cost and the reduction cost satisfies the first criterion value, and a fourth set of subscripts from the first set, wherein the reduction cost is equal to the second reduction cost and the reduction cost satisfies the second criterion value, A restriction update unit updates the first set with the set obtained by subtracting the fourth set from the union of the first set and the third set, and updates the second set with the union of the second set and the third set, The system includes an optimization unit that uses the updated first set to solve the primate problem as an integer programming problem, thereby obtaining the optimal solution to the primate problem. An optimization system characterized by the following features.

2. It includes a restriction appender that adds a subset of the index set of feasible solutions to the first set, The optimization unit uses the first set to solve the primate problem as an integer programming problem, thereby obtaining the optimal solution to the primate problem. The optimization system according to claim 1.

3. The cost reduction calculation unit identifies the first cost reduction, which is the smallest cost reduction corresponding to an index in the set obtained by removing the second set from the index set, and the second cost reduction, which is the largest cost reduction corresponding to an index in the first set. The set derivation unit derives a third set, which is the set of subscripts included in the set obtained by removing the second set from the subscript set, whose reduction cost is equal to the first reduction cost and whose reduction cost is 0 or less, and a fourth set, which is the set of subscripts included in the first set, whose reduction cost is equal to the second reduction cost and whose reduction cost is 1 or more. The optimization system according to claim 1 or claim 2.

4. The cost reduction calculation unit identifies the largest first cost reduction among the cost reductions corresponding to the indices in the set obtained by removing the second set from the set of indices, and the smallest second cost reduction among the cost reductions corresponding to the indices in the first set. The set derivation unit derives a third set, which is the set of subscripts included in the set obtained by removing the second set from the subscript set, whose reduction cost is equal to the first reduction cost and whose reduction cost is 1 or more, and a fourth set, which is the set of subscripts included in the first set, whose reduction cost is equal to the second reduction cost and whose reduction cost is -1 or less. The optimization system according to claim 1 or claim 2.

5. If either the third set or the fourth set is not an empty set, the processing by the restriction update unit, the dual problem processing unit, the reduction cost calculation unit, and the set derivation unit is repeated sequentially. The optimization system according to claim 1 or claim 2.

6. The dual problem processing unit solves the dual problem using constraints that limit the range of variables. The optimization system according to claim 1 or claim 2.

7. We obtain a first set which is a subset of the index set of feasible solutions in the primal problem of the optimization problem, and solve the dual problem of the linear relaxation problem of the restricted primal problem, which restricts the index of the variables in the primal problem to the subset. For each index included in the union of the first set and the second set (a set of indices that was once selected as an index of the first set), calculate the reduction cost, which is the cost reduced when the variable of that index is added to the restriction. Then, identify the first reduction cost that satisfies the first condition among the reduction costs corresponding to the index included in the set obtained by removing the second set from the index set, and the second reduction cost that satisfies the second condition among the reduction costs corresponding to the index included in the first set. A third set is derived from the set of subscripts obtained by removing the second set from the aforementioned set of subscripts, wherein the reduction cost is equal to the first reduction cost and the reduction cost satisfies the first criterion value, and a fourth set is derived from the subscripts included in the first set, wherein the reduction cost is equal to the second reduction cost and the reduction cost satisfies the second criterion value. The first set is updated with the set obtained by subtracting the fourth set from the union of the first set and the third set, and the second set is updated with the union of the second set and the third set. The optimal solution to the primate problem is obtained by solving the primate problem as an integer programming problem using the updated first set. An optimization method characterized by the following:

8. Add a subset of the index set of feasible solutions to the first set, By using the aforementioned first set, the optimal solution to the primate problem is obtained by solving it as an integer programming problem. The optimization method according to claim 7.

9. On the computer, A dual problem processing method that obtains a first set which is a subset of the index set of feasible solutions in the primal problem of an optimization problem, and solves the dual problem of a linear relaxation problem of the restricted primal problem, where the index of the variables in the primal problem is restricted to the above subset. A reduction cost calculation process that calculates a reduction cost for each index included in the union of the first set and the second set (a set of indices that were once selected as indices of the first set), where the second set is the set of indices that were once selected as indices of the first set, and the reduction cost that is the cost reduced when the variable of that index is added to the restriction; identifies a first reduction cost that satisfies the first condition among the reduction costs corresponding to the index included in the set obtained by removing the second set from the index set, and a second reduction cost that satisfies the second condition among the reduction costs corresponding to the index included in the first set. A set derivation process that derives a third set of subscripts from the set obtained by removing the second set from the aforementioned set of subscripts, wherein the reduction cost is equal to the first reduction cost and the reduction cost satisfies the first criterion value, and a fourth set of subscripts from the first set, wherein the reduction cost is equal to the second reduction cost and the reduction cost satisfies the second criterion value. A restricted update process that updates the first set with the set obtained by subtracting the fourth set from the union of the first set and the third set, and updates the second set with the union of the second set and the third set, and An optimization process that obtains the optimal solution to the primate problem by solving the primate problem as an integer programming problem using the updated first set. An optimization program to run.

10. On the computer, Perform a restriction addition process that adds a subset of the index set of feasible solutions to the first set. The optimization process uses the aforementioned first set to solve the primate problem as an integer programming problem, thereby obtaining the optimal solution to the primate problem. The optimization program according to claim 9.