WO2023100595A1 - 最適化装置、最適化方法および最適化プログラム - Google Patents

最適化装置、最適化方法および最適化プログラム Download PDF

Info

Publication number
WO2023100595A1
WO2023100595A1 PCT/JP2022/041342 JP2022041342W WO2023100595A1 WO 2023100595 A1 WO2023100595 A1 WO 2023100595A1 JP 2022041342 W JP2022041342 W JP 2022041342W WO 2023100595 A1 WO2023100595 A1 WO 2023100595A1
Authority
WO
WIPO (PCT)
Prior art keywords
optimization
qubo
matrix
unit
sub
Prior art date
Application number
PCT/JP2022/041342
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 日本電気株式会社
Publication of WO2023100595A1 publication Critical patent/WO2023100595A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Definitions

  • the present invention relates to an optimization device, optimization method, and optimization program that perform optimization according to combinatorial optimization problems.
  • a combinatorial optimization problem is a problem of trying to find the best combination based on a certain index from options related to combinations, and derives a combination of variable values that optimizes a given index under various constraints. It is a matter of Combinatorial optimization problems are problems that are applied to various everyday situations, but it is also known that due to the nature of the problem, the computational complexity explodes when the scale of the problem increases.
  • Patent Literature 1 describes a production planning method for creating a production plan that maximizes productivity.
  • the objective function and constraints related to the production planning problem of a product are formulated as a QUBO (Quadratic Unconstrained Binary Optimization) model or an Ising model, and an annealing machine is used. to obtain the optimal solution.
  • QUBO Quadrattic Unconstrained Binary Optimization
  • Non-Patent Document 1 describes a method for solving the constrained slot placement problem using an Ising machine.
  • the Ising model is a simple model for calculating the spin orientation of the atoms that make up the crystal, and is one of the formulations of combinatorial optimization problems.
  • the QUBO model is also one of the formulations of combinatorial optimization problems, and the matrix representing the coefficients of the QUBO model is called the QUBO matrix. Since the QUBO model and the Ising model can be transformed one-to-one, the QUBO-modeled combinatorial optimization problem can be solved by an annealing machine.
  • an object of the present invention is to provide an optimization device, an optimization method, and an optimization program that can perform appropriate optimization processing according to a QUBO-modeled optimization problem.
  • the optimization apparatus comprises a discrimination means for discriminating the type of the combinatorial optimization problem from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint; and optimization means for performing optimization processing according to the type of the combinatorial optimization problem.
  • the computer determines the type of the combinatorial optimization problem from the QUBO matrix obtained by QUBO modeling the combinatorial optimization problem including the two-dimensional one-hot condition as a constraint, and the computer is characterized by performing optimization processing according to the type of combinatorial optimization problem identified.
  • the optimization program according to the present invention is a discrimination process for discriminating the type of the combinatorial optimization problem from the QUBO matrix obtained by QUBO modeling the combinatorial optimization problem including the two-dimensional one-hot condition as a constraint in the computer. , and optimization processing that performs optimization processing according to the type of the determined combinatorial optimization problem.
  • FIG. 1 is an explanatory diagram showing a configuration example of a first embodiment of an optimization device of the present invention
  • FIG. FIG. 4 is an explanatory diagram showing an example of two-dimensional one-hot conditions
  • FIG. 4 is an explanatory diagram showing an example of an order optimization problem
  • FIG. 10 is an explanatory diagram showing an example of a QUBO matrix including one-hot conditions
  • FIG. 10 is an explanatory diagram showing another example of a QUBO matrix including one-hot conditions
  • FIG. 10 is an explanatory diagram showing an example of distribution of non-zero components in an order optimization problem
  • FIG. 4 is an explanatory diagram showing an example of distribution of non-zero components of TSP;
  • FIG. 4 is an explanatory diagram showing an example of the distribution of non-zero components of QAP;
  • FIG. 4 is an explanatory diagram showing an example of a QUBO matrix;
  • FIG. 4 is an explanatory diagram showing an example of blocks extracted from a TSP QUBO matrix;
  • FIG. 10 is an explanatory diagram showing another example of blocks extracted from the TSP QUBO matrix;
  • FIG. 10 is an explanatory diagram showing an example of clustering by sorting;
  • FIG. 10 is an explanatory diagram showing an example of clustering by sorting;
  • FIG. 4 is an explanatory diagram showing an example of divided sub-problems;
  • FIG. 4 is an explanatory diagram showing an example of TSP between regions;
  • FIG. 10 is an explanatory diagram showing an example of a result of inserting solutions for each region; It is explanatory drawing which shows the example of the process which inserts an optimal solution.
  • FIG. 4 is an explanatory diagram showing an example of contents output by an output unit;
  • FIG. 4 is an explanatory diagram showing an example of a QUBO matrix showing objective function parts of TSP and QAP;
  • FIG. 10 is an explanatory diagram showing an example of trying to divide a variable in each direction;
  • FIG. 13 is an explanatory diagram showing an example of a case where a result of "only one side can be split" is derived;
  • FIG. 4 is an explanatory diagram showing an example of optimization processing performed for each index;
  • FIG. 11 is an explanatory diagram showing an example of a case where a result of "a case where both can be divided" is derived;
  • FIG. 10 is an explanatory diagram showing another example of contents output by the output unit;
  • FIG. 4 is an explanatory diagram for explaining an outline of an algorithm for solving a sequential optimization problem;
  • FIG. 10 is an explanatory diagram showing an example of a QUBO matrix representing a setup time optimization problem;
  • FIG. 5 is an explanatory diagram showing an example of a matrix indicating setup times;
  • FIG. 4 is an explanatory diagram showing an example of processing for extracting necessary components from a QUBO matrix;
  • FIG. 4 is an explanatory diagram showing an example of how to formulate a problem;
  • FIG. 4 is an explanatory diagram showing another example of a method of formulating a problem
  • FIG. 10 is an explanatory diagram showing another example of contents output by the output unit
  • 4 is a flow chart showing an operation example of the optimization device of the first embodiment
  • 9 is a flowchart showing another operation example of the optimization device of the first embodiment
  • 10 is a flow chart showing an operation example when it is determined that the problem is an order optimization problem.
  • 10 is a flow chart showing an operation example when it is determined as a TSP
  • 10 is a flowchart showing an operation example when it is determined to be QAP
  • It is an explanatory view showing a configuration example of a second embodiment of the optimization device of the present invention. It is a flow chart which shows an example of an optimization device of a second embodiment of operation.
  • FIG. 11 is an explanatory diagram showing a configuration example of a third embodiment of the optimization device of the present invention. It is a flow chart which shows an example of an optimization device of a third embodiment of operation. 1 is a block diagram showing an overview of an optimization device according to the invention; FIG.
  • FIG. 1 is an explanatory diagram showing a configuration example of the first embodiment of the optimization device of the present invention.
  • the optimization device of the embodiments described below is a device that performs appropriate optimization processing in accordance with the QUBO-modeled optimization problem.
  • TSP Traveling Salesman Problem
  • QAP Quadrattic Assignment Problem
  • a variable is defined as a binary (0 or 1) two-dimensional array x i,j , this variable has a horizontal (i) direction and a vertical (j) direction.
  • a one-hot condition is imposed on the direction.
  • such conditions are referred to as two-dimensional one-hot conditions. That is, in the QUBO matrix, the two-dimensional one-hot condition is a part of the QUBO matrix represented by a square matrix in which components other than 0 do not overlap vertically and horizontally.
  • the two-dimensional one-hot conditions can be formulated as the following formulas 1 and 2 for the horizontal (i) direction and vertical (j) direction, respectively.
  • x ij is a variable (array) representing whether (1) or not (0) the i-th place j is to be visited. This can be said to be a variable indicating that a place is visited only once, and that only one place is visited at a time.
  • d j,k is the distance between location j and location k
  • the objective function to be optimized is expressed as Equation 3 below. This is because the TSP only needs to consider the connection between locations that are adjacent in order.
  • the distance from the last visited place to the first visited place is also included in the objective function. For example, when visiting five locations, i+1 in Equation 3 should be read as 1.
  • a QAP consider the problem of arranging one factory in each region. This becomes a problem of minimizing the total cost of transporting goods between factories (distance multiplied by the flow of goods) when one factory is located in each of a plurality of regions.
  • x ij becomes a variable (array) representing whether the factory i exists in the area j (1) or not (0). This can be said to be a variable indicating that there is only one factory in a certain region and that the region in which a certain factory exists is only one.
  • the objective function to optimize (minimize) is given below: It is expressed as Equation 4.
  • the objective function includes not only the connection between adjacent regions in order but also the connection with other regions.
  • FIG. 2 is an explanatory diagram showing an example of two-dimensional one-hot conditions.
  • an array 101 shows an example of variables in a two-dimensional array
  • an array 102 shows an example of values of variables that satisfy the two-dimensional one-hot condition. For example, if the array 102 illustrated in FIG. 2 is a variable used in the TSP, visit location 4 first, visit location 1 second, visit location 3 third, and visit location 4 fourth. 2 to visit.
  • the problem of minimizing the cost required for the setup of each product when producing multiple products one at a time is also an optimization problem that imposes a two-dimensional one-hot condition.
  • the cost required for setup for example, change of equipment, change of personnel, etc.
  • the problem of optimizing the order in this way is referred to as the order optimization problem.
  • This problem can also be referred to as a non-circulating TSP.
  • FIG. 3 is an explanatory diagram showing an example of the order optimization problem.
  • production is performed by assuming not only the production time of each product but also the time to prepare for the production of each product (setup time). Indicates that the time is being calculated.
  • the total production time varies depending on the order in which products are produced, so the order optimization problem can be said to be a problem of optimizing the order so as to minimize the production time. For example, in the example shown in FIG. 3, if a long setup time is required from product A to product B, it can be said that the order should be avoided.
  • x ij is a variable (array) representing whether (1) or not (0) the i-th production of product j. This can be said to be a variable indicating that a certain product is produced only once, and that only one product is produced at a time.
  • Equation 5 the objective function to be optimized (minimized) is expressed as shown in Equation 5 below.
  • Another example of a combinatorial optimization problem is the problem of determining a route that minimizes the distance traveled when the city of the starting point and the city of the goal point are decided, and each city on the way is visited once. mentioned. Although this is different from the generally known TSP, it can be said to be a combinatorial optimization problem to which a two-dimensional one-hot condition is imposed.
  • the optimization device 100 of the first embodiment includes an input unit 10, a modeling unit 20, a one-hot condition identification unit 30, a problem determination unit 40, and an optimization unit 50. , and an output unit 60 .
  • the optimization device 100 is connected to the Ising computer 1 that performs optimization processing.
  • the Ising computer 1 is a device that searches for the optimum solution of the Ising model and the QUBO model.
  • the Ising computer 1 is implemented by, for example, an annealing machine.
  • the input unit 10 accepts input of combinatorial optimization problems.
  • the input unit 10 may, for example, receive input of a formulated optimization problem (objective function and constraints).
  • the input unit 10 may also accept an input of a QUBO-modeled optimization problem (for example, a QUBO matrix). If the input unit 10 receives an input of a QUBO-modeled optimization problem, the optimization device 100 may not include the modeling unit 20 .
  • the modeling unit 20 acquires a QUBO matrix by QUBO modeling the combinatorial optimization problem.
  • the modeling unit 20 may QUBO model the combinatorial optimization problem using a known method.
  • TSP, QAP, and sequential optimization problems are all well-known problems that can be represented by the QUBO model, and the method of obtaining the QUBO matrix by modeling the QUBO model is widely known. omitted.
  • the one-hot condition specifying unit 30 specifies two-dimensional one-hot conditions included in the QUBO matrix. Specifically, from the QUBO matrix, the one-hot condition specifying unit 30 specifies a square matrix in which components other than 0 do not overlap in the vertical and horizontal directions.
  • the one-hot condition identification unit 30 identifies, for example, a two-dimensional one-hot condition as illustrated in FIG. 2 from the QUBO matrix.
  • the QUBO matrix is the matrix representation of the coefficient portion of the QUBO-modeled combinatorial optimization problem, and corresponds to the underlined matrix in the Hamiltonian illustrated in Equation 6 below.
  • Equation 6 the diagonal elements (such as Q11 ) of the QUBO matrix correspond to hi , and the off-diagonal elements (such as Q12 ) correspond to Jij .
  • FIG. 4 is an explanatory diagram showing an example of a QUBO matrix including one-hot conditions.
  • the QUBO matrix exemplified in FIG. 4 is a QUBO matrix that indicates a one-hot condition in the horizontal direction (more specifically, i in the variable x ij ), and indicates that the variables are a 4 ⁇ 4 combination. As illustrated in FIG. 4, this QUBO matrix shows the elements arranged in triangular ranges along the diagonal.
  • FIG. 5 is an explanatory diagram showing another example of a QUBO matrix including one-hot conditions.
  • the QUBO matrix exemplified in FIG. 5 is a QUBO matrix that indicates a one-hot condition in the vertical direction (more specifically, j in the variable xij ), and indicates that the variables are a 4 ⁇ 4 combination. As illustrated in FIG. 5, this QUBO matrix indicates that the j components are arranged in a direction parallel to the diagonal.
  • the one-hot condition specifying unit 30 removes the component indicating the specified two-dimensional one-hot condition from the original QUBO matrix. It should be noted that the removal here means to set the component to 0.
  • the matrix obtained by removing the two-dimensional one-hot condition from the QUBO matrix is referred to as the objective function part of the QUBO matrix.
  • the method by which the one-hot condition specifying unit 30 specifies the two-dimensional one-hot condition included in the QUBO matrix and the method of specifying the objective function part are arbitrary.
  • the one-hot condition identification unit 30 uses coefficient parameters of a two-dimensional one-hot condition predicted from the values of the diagonal components of the QUBO matrix, or coefficient parameters indicated in advance, for example, to determine the target from the QUBO matrix.
  • a function part may be specified.
  • the objective function part is generated by removing the two-dimensional one-hot condition from the QUBO matrix.
  • the one-hot condition specifying unit 30 does not need to explicitly remove the component if the method can specify the portion excluding the two-dimensional one-hot condition.
  • the one-hot condition specifying unit 30 may generate, for example, a matrix representing a mask that specifies components to be removed (or left).
  • the problem determination unit 40 determines the type of combinatorial optimization problem from the matrix (that is, the objective function part) obtained by removing the two-dimensional one-hot condition from the QUBO matrix. Specifically, the problem determination unit 40 determines the type of combinatorial optimization problem based on the distribution of non-zero components of the objective function portion.
  • problems involving two-dimensional one-hot conditions include the above-mentioned TSP and QAP.
  • TSP and QAP have different difficulty levels, and QAP is known to be more difficult.
  • the inventor of the present invention found that the difference in this problem appears in the matrix excluding the two-dimensional one-hot condition (that is, the objective function part) in the QUBO matrix when TSP and QAP are QUBO modeled. Found it.
  • TSP has more 0 components in the matrix excluding the two-dimensional one-hot condition (that is, the objective function part) than QAP.
  • the form formed by the elements of the QUBO matrix based on the two-dimensional one-hot condition is fixed, and TSP and QAP clearly indicate that the two-dimensional one-hot condition includes constraints. Therefore, the type of combinatorial optimization problem can be determined by observing the distribution of non-zero components in the objective function portion.
  • the inventors discovered that characteristic distributions of non-zero components appear in the objective function part, depending on the problem.
  • the distribution of non-zero components includes not only the distribution of individual non-zero components but also the distribution of square matrices (hereinafter also referred to as blocks) containing non-zero components.
  • the distribution of non-zero components is determined in advance according to the type of combinatorial optimization problem, and the problem determination unit 40 compares the objective function part with the determined distribution, and determines the matching or similar distribution.
  • the type of optimization problem may be determined.
  • FIG. 6 is an explanatory diagram showing an example of the distribution of non-zero components in the order optimization problem.
  • the example shown in FIG. 6 is an example in which there are four items (products) when the QUBO matrix is an upper triangular matrix.
  • a non-zero component (block) appears at a position shifted by 1 from the first index of the variable (i.e., i in the variable x ij ).
  • the objective function is the sum of the costs associated with moving to the next item (product) (for example, the setup time mentioned above), so this block can be said to be a matrix of costs.
  • FIG. 7 is an explanatory diagram showing an example of the distribution of non-zero components of TSP.
  • the example shown in FIG. 7 is an example in which there are four cities when the QUBO matrix is an upper triangular matrix.
  • the non-zero components (blocks) of the TSP appear at the position where the first index of the variable (i.e., i in the variable xij ) is shifted by 1 and at the upper right.
  • the objective function is the total distance traveled, so this block can be said to be a matrix of distances.
  • FIG. 8 is an explanatory diagram showing an example of the distribution of non-zero components of QAP.
  • the example shown in FIG. 8 is an example in which there are four factories when the QUBO matrix is an upper triangular matrix.
  • the non-zero components (blocks) of QAP appear exhaustively in the upper triangular part of the matrix.
  • the objective function is the sum of distance x flow, so this block can be said to contain two types of matrices (distance matrix 111 and flow matrix 112).
  • the components in the blocks differ from each other only by a constant multiple. However, even if the components in the block are different from each other, if the components are greater than 0, they can be solved in the same way.
  • FIG. 9 is an explanatory diagram showing an example of a QUBO matrix.
  • a matrix 121 in FIG. 9 is an example of a matrix indicating a constraint (two-dimensional one-hot condition), and a matrix 122 is an example of a matrix indicating an objective function (for example, a collection of distance matrices).
  • Constraints are conditions that must be satisfied, and the objective function aims at optimization (minimization) after satisfying the constraints. Therefore, in the Hamiltonian, the absolute values of the elements of the QUBO matrix are larger for the elements of the constraint. To accomplish this, each term of the Hamiltonian is multiplied by a coefficient. In the example shown in FIG. 9, the coefficients are set so that the absolute values of the elements of the matrix 121 are larger than the absolute values of the elements of the matrix 122 .
  • the optimization unit 50 performs optimization processing according to the type of combinatorial optimization problem identified. For example, when solving a combinatorial optimization problem by simulated annealing, the problem may be divided according to the context of the problem to be solved in order to obtain a solution closer to the optimum solution in a short time. Therefore, the optimization unit 50 of the present embodiment divides the problem according to the type of combinatorial optimization problem so that more appropriate optimization processing can be performed.
  • the optimization unit 50 includes a problem division unit 51, a sub-problem optimization unit 52, a problem combination unit 53, and a super-problem optimization unit .
  • the problem division unit 51 divides the QUBO matrix according to the type of the determined combinatorial optimization problem.
  • Problem partitioning for a QUBO matrix is a process of extracting a block that is a square matrix containing non-zero components (that is, a part of the objective function) from the QUBO matrix (more specifically, the objective function part). Any block can be extracted.
  • the problem dividing unit 51 may extract the upper left block (4 ⁇ 4 square matrix).
  • FIG. 10 is an explanatory diagram showing an example of blocks extracted from the TSP QUBO matrix.
  • FIG. 10 illustrates a case where there are two groups of three neighboring cities. In the example shown in FIG. 10, it is assumed that cities 0, 1 and 2 are close, and cities 3, 4 and 5 are close.
  • the block that is part of the objective function can be said to be a matrix of distances. Therefore, each component of the blocks illustrated in FIG. 10 represents the distance between cities.
  • the example shown in FIG. 10 indicates that the distance (component) between cities that are not close to each other is large (the distance is 10 or more).
  • FIG. 11 is an explanatory diagram showing another example of blocks extracted from the TSP QUBO matrix.
  • the example shown in FIG. 11 is an example in which cities that are close to each other are not defined as indices that are close to each other.
  • the problem dividing unit 51 may sort the city indexes so that the components are in ascending order. For example, by focusing on the row 141 illustrated in FIG. 11 and rearranging the indexes 0′ to 5′ as 0, 3, 4, 1, 5, and 2, respectively, the blocks illustrated in FIG. 10 can be obtained. can be done. Note that this sorting can group adjacent processes, so this sorting process can be called clustering by sorting (hereinafter also simply referred to as clustering).
  • the problem dividing unit 51 extracts a block 152 that is a square matrix including non-zero components from the QUBO matrix (specifically, the objective function part) 151 .
  • block 152 is a matrix of distances, and for N city TSPs, all the distance matrices appearing in the objective function part are equal. Therefore, the problem dividing unit 51 may extract square matrices from the 0th row to the N-1th row and from the Nth column to the 2N-1th column, as illustrated in FIG. 12, for example.
  • the problem dividing unit 51 generates a block 155 by sorting the indices so that the component values of the first row (0th row) 154 of the extracted block 153 are in ascending order. Then, a threshold value t cl for a component to be divided into sub-blocks is defined in advance, and when the difference between adjacent components exceeds a predetermined threshold value, the problem dividing unit 51 determines the sequence by which the components may be divided. Hold the index i div . Note that the definition of the threshold tcl is arbitrary. The threshold t cl may be, for example, a ratio between adjacent components or a difference between adjacent components.
  • the ratio between component d 0,idiv ⁇ 1 and component d 0,idiv is greater than or equal to t cl times. Indicates that it was determined that there was
  • the problem dividing unit 51 divides each row in the component of the upper triangular part 161 in the block excluding the diagonal component, up to the column index i div ⁇ 1st column that may be divided. and the component matrix 163 on the right side from the column index i div column can be divided. Specifically, for each row, if the ratio or difference between the left component matrix 162 and the right component matrix 163 is equal to or greater than the threshold value t cl , the problem dividing unit 51 calculates the column index i div ⁇ 1 column to the left Extract the component matrix 162 .
  • the problem dividing unit 51 determines whether all the components in the component matrix 163 on the right side are equal to or greater than the threshold t cl times the components in the component matrix 162 on the left side for each row. to judge whether Then, if it is equal to or greater than the threshold t cl times, the problem dividing unit 51 extracts the left component matrix 162 up to the column index i div ⁇ 1-th column.
  • the problem indicated by the extracted component matrix may be referred to as a sub-problem. Note that in FIG. 13, max[.] and min[.] mean the maximum and minimum values of the components, respectively.
  • the problem dividing unit 51 extracts the lower right side from the remaining i div row i div column. The above processing is repeated for the components of the extracted upper triangular portion 161 .
  • the problem dividing unit 51 generates blocks in which indexes are sorted so that the values of the components of the first row of the extracted blocks are in ascending order, and the ratio or difference between adjacent components exceeds a predetermined threshold value tcl . If so, split the square matrix containing the rows up to its leftmost adjacent component to generate a new block. This makes it possible to divide the square matrix (block) from which the elements to be considered have been extracted.
  • the method described below is a division method using agglomerative clustering.
  • Agglomerative clustering assumes that all points are included in different clusters in the initial state, and combines clusters C i and C j with the smallest inter-cluster distance d (C i , C j ). It is a method of repeating and finally combining into one cluster.
  • Various methods for defining the distance between clusters are known, and examples of methods that do not require centroids include the shortest distance method (single linkage method), the longest distance method (complete linkage method), and the group average method.
  • the problem is divided using the interaction term (off-diagonal element) Q ij (where i ⁇ j) of the QUBO matrix of the problem to be divided by a method similar to the generally known group average method.
  • the off-diagonal components are set to 0 or more, as is the case with the distance, so division processing is performed using the absolute values of the components.
  • the distance between different clusters is calculated as a value obtained by averaging the distances between points by the number of cluster elements, as shown in Equation 7 below.
  • exemplified in Expression 7 indicate the number of elements of cluster i and cluster j.
  • the average of the absolute values of interaction terms between variables between different clusters is used as the absolute value of interaction terms between clusters after combination.
  • a cluster is defined as a set of variable indices
  • a matrix D ij of distances between clusters is defined as shown in Equation 8 below.
  • C i ⁇ i 0 , i 1 , . . . , i ni-1 ⁇
  • C j ⁇ j 0 , j 1 , .
  • the subscript (m) of the distance D ij represents the number of updates.
  • D (0) ij
  • the problem dividing unit 51 combines each variable to create a cluster, and when the clusters are combined, repeats the process of updating the distance matrix until a predetermined condition (the number of clusters, etc.) is satisfied.
  • the average sum of the elements of the QUBO matrix of clusters is defined as the distance between clusters, and the problem is divided.
  • the unit 51 extracts blocks by repeating the process of joining clusters that are close to each other and joining the clusters until a predetermined condition is satisfied.
  • the indices of the QUBO matrix can be aggregated until a predetermined condition (for example, the number of divisions) is met, so that the QUBO matrix can be divided into desired blocks.
  • the sub-problem optimization unit 52 formulates the problem (that is, each sub-problem) indicated by each component matrix of the extracted block and performs optimization processing.
  • the formulation and optimization methods are determined according to the original combinatorial optimization problem. For example, if the divided problem is TSP, the sub-problem can be said to be TSP for the divided region.
  • FIG. 14 is an explanatory diagram showing an example of divided sub-problems. The example shown in FIG. 14 shows that the objective function part 171 indicating the matrix of distances has been divided into a matrix 172 of distances for each region.
  • the sub-problem optimization unit 52 optimizes each problem indicated by the divided matrix.
  • the sub-problem optimization unit 52 optimizes the TSPs indicated by the divided matrices (that is, the TSPs divided for each region).
  • the sub-problem optimization unit 52 may, for example, cause the Ising computer 1 to search for the optimal solution of the sub-problem. Note that the method of causing the Ising computer 1 to search for the optimal solution of the TSP is widely known, and detailed description thereof will be omitted here.
  • the problem combining unit 53 formulates a new combinatorial optimization problem by combining the obtained optimization results of the sub-problems.
  • a new combinatorial optimization problem obtained by combining the optimization results of sub-problems may also be referred to as a super-problem.
  • a super-problem is a combinatorial optimization problem generated by optimizing and combining sub-problems obtained by dividing the combinatorial optimization problem to be solved first. Therefore, the result of optimizing the super-problem can be regarded as the result of optimizing the original combinatorial optimization problem.
  • the formulation method should be determined according to the original combinatorial optimization problem.
  • TSP the original combinatorial optimization problem
  • the problem combining unit 53 selects two consecutive cities from the sub-problem-optimized order within the region. These two cities are cities connected to other regions and correspond to the start city and goal city within the region. Any method can be used to select these two cities, and the problem combining unit 53 may select them randomly, for example. If there is only one city, the problem combining unit 53 should select only that city. In this case, that city serves as both the start city and the goal city.
  • FIG. 15 is an explanatory diagram showing an example of TSP between regions. The example shown in FIG. 15 shows that two cities are selected for each region, and the problem is formulated as visiting these cities in turn.
  • the super-problem optimization unit 54 performs optimization processing of the newly formulated combinatorial optimization problem (that is, super-problem).
  • the super-problem optimization unit 54 may optimize the super-problem formulated by the problem combining unit 53 by a known method. Specifically, the super-problem optimization unit 54 may cause the Ising computer 1 to search for the optimal solution of the super-problem.
  • the super-problem optimization unit 54 performs optimization processing of the super-problem, and then inserts the TSP solution in each region between two cities in each region to obtain the final optimal solution ( That is, the result of optimizing the original combinatorial optimization problem) is derived.
  • FIG. 16 is an explanatory diagram showing an example of the result of inserting solutions for each region. The example shown in FIG. 16 shows an example in which the optimal solution of each region is inserted into the optimal solution of the super problem illustrated in FIG.
  • FIG. 17 is an explanatory diagram of an example of processing for inserting an optimal solution.
  • the order of TSP solutions is obtained as (0, 1, . . . , i, i+1, .
  • the i-th and i+1-th cities are selected as the two cities.
  • the optimal solution of the entire TSP is to travel from the previous region to the city of this region and go to the next region. Therefore, a route for traveling within a region is determined depending on whether the city connected from the previous region is the i-th city or the (i+1)-th city.
  • the path that visits the local TSP solutions in reverse order becomes the global TSP optimal solution, as shown by optimal solution 182 .
  • the city connected to the previous region is the (i+1)th city
  • the city connected to the next region is the i-th city.
  • the path that visits the local TSP solutions in their exact order becomes the overall TSP optimal solution.
  • the output unit 60 outputs the optimization result. Any content output by the output unit 60 can be used as long as the optimization result can be confirmed.
  • the output unit 60 may display the optimization result on the screen or output it to a file such as csv (Comma Separated Value). When there are many elements to be rearranged, outputting them to a file makes it possible to easily perform operations such as sorting.
  • FIG. 18 is an explanatory diagram showing an example of the content output by the output unit 60.
  • FIG. The output contents illustrated in FIG. 18 indicate the output contents of the TSP.
  • sorting elements that is, cities to visit
  • FIG. 18 shows that the output unit 60 outputs the result of the final order together with the question type TSP (Traveling Salesman Problem).
  • TSP Traveling Salesman Problem
  • the TSP solution is interpreted as "2 ⁇ 1 ⁇ 0 ⁇ 3 ⁇ 4 ⁇ 5 ⁇ 2" by connecting the beginning and end of the order, so the results illustrated in FIG. 18 are the optimization results is an example.
  • the starting point may be set to "1" instead of "2".
  • the example shown in FIG. 18 shows that the output unit 60 outputs together the final order and the energy calculated from the QUBO matrix of the original optimization problem. This energy can be used as an indicator that lower numbers are considered better solutions.
  • FIG. 18 shows an example in which the output unit 60 outputs the number of elements for each partial problem (subproblem), the elements for each partial problem (subproblem), and the order for each partial problem (subproblem). show.
  • the original problem can be split into two sub-problems with 3 variables each, and the variables within each sub-problem are ⁇ 0,1,2 ⁇ and ⁇ 3,4,5 ⁇ . indicates that Furthermore, we show that the order for each sub-problem is [2, 1, 0] and [3, 4, 5].
  • the display mode shown in FIG. 18 (for example, display of parentheses, etc.) is an example, and various methods may be used. The same is true for the output examples below.
  • FIG. 19 is an explanatory diagram showing an example of a QUBO matrix showing objective function parts of TSP and QAP.
  • a matrix 191 illustrated in FIG. 19 indicates a matrix of objective functions of TSP (objective function part), and a matrix 192 indicates a matrix of objective functions of QAP (objective function part).
  • the non-zero component (block) 193 of the TSP appears at the position where the first index of the variable (ie, i in the variable x ij ) is shifted by 1 and at the upper right.
  • non-zero components (blocks) 194 of QAP exhaustively appear in the upper triangular part of the matrix.
  • each block 194 may also be referred to as a "distance" matrix.
  • the QAP blocks 194 differ from the TSP blocks in that each block 194 is not equal.
  • the problem dividing unit 51 specifies a block as a reference for clustering, and clusters variables using the specified block.
  • the method by which the problem dividing unit 51 identifies the matrix is arbitrary.
  • the problem dividing unit 51 may specify a block having the largest component among the blocks as a reference block.
  • the problem dividing unit 51 may specify, for example, a block having the largest sum of components in the block as a reference block. In this case, the problem dividing unit 51 may keep the blocks calculated at the time of identification in descending order of calculated values.
  • the problem dividing unit 51 tries whether clustering is possible in each of the horizontal (i) direction and the vertical (j) direction. Specifically, the problem dividing unit 51 replaces the indices of the variables (that is, x ij ⁇ x ji ) and tries in which direction clustering can be performed. This leads to a result that is either indivisible for either variable, divisible for one variable, or divisible for both variables.
  • FIG. 20 is an explanatory diagram showing an example of trying to divide the variable x ij in the i direction and the j direction.
  • case where both can be divided means that factory i and region j can be divided.
  • "A case where only one can be divided” means that either one of the factory i and the region j can be divided.
  • FIG. 21 is an explanatory diagram showing an example of the case where the result that "only one side can be split" is derived. If QAP is a problem of locating one factory in each area, the situation illustrated in FIG. 21 can be said to be a problem of deciding where to locate a factory when land is clustered by area, for example.
  • the sub-problem optimization unit 52 optimizes the QAP sub-problem as a TSP problem. Specifically, the sub-problem optimizer 52 uses the partitioned "distance" matrix to determine the variable index order j for each k-th cluster c jk of index j.
  • the problem combining unit 53 selects two elements next to each other and formulates a new combinatorial optimization problem, similar to the method illustrated in FIG. Then, the super-problem optimization unit 54 performs optimization processing of the newly formulated combinatorial optimization problem (that is, super-problem). Specifically, as illustrated in FIG. 16, the super-problem optimization unit 54 inserts the solution of the TSP in the cluster between the two elements of each cluster to obtain the final optimal solution (that is, The result of optimizing the original combinatorial optimization problem) is derived.
  • the super-problem optimization unit 54 optimizes the QAP problem as a TSP problem. Since the "distance" matrix is a cost, solving the TSP is expected to reduce the cost.
  • the optimization solution performed for one index is simply the order with respect to index j.
  • the cost varies depending on which i is assigned the index j. Therefore, the optimization unit 50 may perform optimization processing for all patterns while changing i by 1, and determine the solution with the lowest cost as the optimum solution. Therefore, the optimization unit 50 may solve the TSP for the number of cities twice the number of clusters at maximum.
  • FIG. 22 is an explanatory diagram showing an example of optimization processing performed for each index.
  • the example shown in FIG. 22 shows that the optimization process for assigning index j to i is being performed while changing the value of i to 0, 1, 2, .
  • FIG. 23 is an explanatory diagram showing an example of a case where a result of "a case where both can be divided” is derived.
  • the example shown in FIG. 23 shows, for example, a case where lands are clustered in each region and factories with many exchanges of goods are located close to each other.
  • FIG. 24 is an explanatory diagram showing another example of the content output by the output unit 60.
  • the output contents illustrated in FIG. 24 indicate the output contents of QAP.
  • a combinatorial optimization problem in which six types of elements (0 to 5) are assigned is assumed, and the solution is indicated by (assigned element, assigned element).
  • i be the allocation element 1
  • j be the allocation element 2 in the QAP variable x ij .
  • FIG. 24 shows an example of outputting the number of elements for each subproblem (subproblem), the element for each subproblem (subproblem), and the order for each subproblem (subproblem) for each assignment element. show. Note that only clustering is performed for the “assigned element” (element 1). Also, regarding the "element to be assigned" (element 2), the order is also derived in order to optimize like TSP.
  • optimization unit 50 and the output unit 60 have been described above using QAP as an example. Besides, the optimization device 100 can also be used to solve the order optimization problem described above. Next, still another specific processing of the optimization unit 50 when solving the sequential optimization problem will be described in comparison with the above-described TSP and QAP.
  • the setup time indicates the time during which production is not possible due to facility preparation (setting change, cleaning, etc.) when switching products to be produced.
  • the order optimization problem may include constraints on the order of products.
  • the constraint "Do not manufacture product l after product k" can be defined by Equation 11 below. where P is a coefficient for penalty and is set to a positive large number.
  • setup time when the setup time does not change even if the order is changed (hereinafter referred to as the case where the setup time is symmetrical), and when the order is changed the setup time changes (hereinafter referred to as When the setup time is asymmetrical, it is described as ).
  • FIG. 25 is an explanatory diagram outlining the algorithm for solving the order optimization problem. Also in the order optimization problem, the problem dividing unit 51 extracts the block 201 from the QUBO matrix. In the production planning setup time optimization problem, the blocks are matrices representing setup times. The problem dividing unit 51 performs product clustering 202 based on the setup times included in the extracted blocks.
  • the sub-problem optimization unit 52 optimizes the sub-problem indicated by the matrix 203 including the clustered product group (eg ⁇ 0, 3, 7 ⁇ , etc.).
  • the sub-problem optimizing unit 52 may solve the production planning setup time optimization problem within the clustered range.
  • the problem combining unit 53 formulates a new combinatorial optimization problem (super-problem) 204 by combining the obtained optimization results of the sub-problems.
  • the super-problem optimization unit 54 performs optimization processing of the newly formulated combinatorial optimization problem (that is, super-problem).
  • an optimized order has been derived (eg, the start is '0' and the goal is '7'), so , a partially optimized sequential optimization problem. That is, the sub-problem determines the order within the cluster, and the super-problem determines the order of the clusters, so that the combined solution can be regarded as the overall solution.
  • FIG. 26 is an explanatory diagram showing an example of a QUBO matrix showing the setup time optimization problem.
  • the QUBO matrix contains TSP-like components and order constraint components in addition to the two-dimensional one-hot conditions. Specifically, a block 213 of setup time information for each product appears along the diagonal elements of the QUBO matrix 211 , and a block 214 of order constraints appears exhaustively in the upper triangular portion of the QUBO matrix 212 . Note that unlike the TSP, the setup time information block 213 does not appear on the upper right.
  • FIG. 27 is an explanatory diagram showing an example of a matrix (block) indicating setup times. For example, if there is an order constraint, it is assumed that a large component is set as a penalty in the setup time corresponding to the prohibited order. For example, if j must not occur before i, then C j,i becomes the penalty term.
  • the problem dividing unit 51 uses the short component min(C i,j , C j,i ) of the setup time for clustering the sub-problems.
  • a clustering method a method similar to the method shown in the above TSP may be used.
  • the sub-problem optimization unit 52 extracts sub-problem variables ⁇ s 0 , s 1 , . ⁇ , the setup time of n products is optimized.
  • the problem dividing unit 51 extracts necessary components C si and sj from the original set-up time matrix as the set-up time. Further, the problem dividing unit 51 also extracts only the blocks related to the restrictions between the products of the sub-problems regarding the restrictions on the order of the products from the QUBO matrix.
  • FIG. 28 is an explanatory diagram showing an example of processing for extracting necessary components from the QUBO matrix. For example, the problem dividing unit 51 extracts a block 223 by extracting a necessary component for each sub-problem 222 along the diagonal component from the QUBO matrix 221 that combines the objective function and the order constraint. good.
  • the sub-problem optimization unit 52 adds a two-dimensional one-hot condition to the QUBO matrix of the objective function of the extracted block (sub-problem) to solve the sub-problem setup time optimization problem.
  • the problem combining unit 53 determines the order of the sub-problems using the first product and the last product in the order derived as the optimal solution of the sub-problems. Specifically, the problem combining unit 53 sets the setup time between sub-problems to be the setup time between the last product of the previous sub-problem and the first product of the next sub-problem. Similarly, the problem combining unit 53 determines the order constraint by comparing the last product of the previous sub-problem with the first product of the next sub-problem.
  • the problem combining unit 53 extracts components from the original QUBO matrix along the diagonal components in the same manner as in the formulation of the sub-problems.
  • the super-problem optimization unit 54 adds a two-dimensional one-hot condition to the extracted QUBO matrix of the objective function of the super-problem to solve the setup time optimization problem of the super-problem.
  • the optimization unit 50 may respond by the following method.
  • FIG. 29 is an explanatory diagram showing an example of how to formulate the problem.
  • the optimization unit 50 for example, the problem dividing unit 51
  • a cluster 236 may be generated that includes any of
  • the sub-problem optimization unit 52 may then optimize the problem indicated by the generated clusters 236 .
  • FIG. 30 is an explanatory diagram showing another example of the method of formulating the problem.
  • the order constraint illustrated in FIG. 30 is similar to the order constraint illustrated in FIG.
  • the optimization unit 50 (for example, the problem division unit 51) divides the cluster 233 into the cluster 237, the element 231 and the cluster 238, and divides the cluster 234 into the cluster 239, the element 232 and the cluster 240. good.
  • the super-problem optimization unit 54 optimizes a super-problem that combines these clusters based on the results of optimizing each cluster. Specifically, the super-problem optimization unit 54 optimizes the generated super-problem according to the determined order of the sub-problems.
  • FIG. 31 is an explanatory diagram showing another example of the content output by the output unit 60.
  • the output content illustrated in FIG. 31 indicates the output content of the order optimization problem.
  • the example shown in FIG. 31 also assumes an optimization problem in which six types of elements (0 to 5) are rearranged.
  • the example shown in FIG. 31 indicates that the output unit 60 outputs the result of the final order together with the order optimization problem which is the problem type.
  • FIG. 31 also shows that the final order and the energy calculated from the QUBO matrix of the original optimization problem are output together, similar to the contents illustrated in FIG. This energy can also be used as an indicator that the smaller the number, the better the solution.
  • FIG. 31 also shows an example of outputting the number of elements for each partial problem (subproblem), the element for each partial problem (subproblem), and the order for each partial problem (subproblem) for each assignment element. show.
  • Input unit 10 modeling unit 20, one-hot condition identification unit 30, problem determination unit 40, optimization unit 50 (more specifically, problem division unit 51, sub-problem optimization unit 52, The problem combination unit 53, the super-problem optimization unit 54), and the output unit 60 are computer processors (e.g., CPU (Central Processing Unit), GPU (Graphics Processing Unit)) that operate according to a program (optimization program). realized by CPU (Central Processing Unit), GPU (Graphics Processing Unit)) that operate according to a program (optimization program).
  • the program is stored in the storage unit (not shown) of the optimization device 100, the processor reads the program, and according to the program, the input unit 10, the modeling unit 20, the one-hot condition specifying unit 30, the problem determination unit It operates as a unit 40, an optimization unit 50 (more specifically, a problem division unit 51, a sub-problem optimization unit 52, a problem combination unit 53, and a super-problem optimization unit 54), and an output unit 60. good too.
  • the input unit 10, the modeling unit 20, the one-hot condition identification unit 30, the problem determination unit 40, the optimization unit 50 (more specifically, the problem division unit 51, the sub-problem optimization unit 52, the problem combination unit 53 , and the super-problem optimization unit 54) and the output unit 60 may be provided in a SaaS (Software as a Service) format.
  • SaaS Software as a Service
  • the input unit 10, the modeling unit 20, the one-hot condition specifying unit 30, the problem determination unit 40, the optimization unit 50 (more specifically, the problem division unit 51, the sub-problem optimization unit 52 , the problem combining unit 53, the super-problem optimizing unit 54), and the output unit 60 may each be realized by dedicated hardware. Also, part or all of each component of each device may be implemented by general-purpose or dedicated circuitry, processors, etc., or combinations thereof. These may be composed of a single chip, or may be composed of multiple chips connected via a bus. A part or all of each component of each device may be implemented by a combination of the above-described circuits and the like and programs.
  • the input unit 10, the modeling unit 20, the one-hot condition specifying unit 30, the problem determination unit 40, the optimization unit 50 (more specifically, the problem division unit 51, the sub-problem optimization unit 52 , the problem combining unit 53, the super-problem optimizing unit 54), and the output unit 60 are realized by a plurality of information processing devices, circuits, etc., in part or in whole.
  • the processing units, circuits, etc. may be centrally arranged or distributed.
  • the information processing device, circuits, and the like may be implemented as a form in which each is connected via a communication network, such as a client-server system, a cloud computing system, or the like.
  • FIG. 32 is a flowchart showing an operation example of the optimization device 100 of this embodiment.
  • the problem determination unit 40 determines the type of combinatorial optimization problem based on the matrix obtained by removing the two-dimensional one-hot condition from the QUBO matrix (step S11).
  • the problem dividing unit 51 extracts blocks from the QUBO matrix according to the determined combinatorial optimization problem type (step S12).
  • the sub-problem optimization unit 52 formulates the sub-problem indicated by each component matrix of the extracted block and performs optimization (step S13).
  • the problem combination unit 53 formulates a super-problem by combining the obtained optimization results of the sub-problems (step S14). Then, the super-problem optimization unit 54 performs optimization processing of the super-problem (step S15).
  • Super-problem optimizer 54 uses the sub-problem and super-problem solutions to find the original solution.
  • FIG. 34 is a flowchart showing an operation example when it is determined that the problem is an order optimization problem.
  • FIG. 35 is a flow chart showing an operation example when it is determined to be a TSP.
  • FIG. 36 is a flow chart showing an operation example when it is determined to be QAP.
  • the problem determination unit 40 determines the type of combinatorial optimization problem (step S101).
  • the problem determination unit 40 determines the type of combinatorial optimization problem as one of order optimization problem, TSP, and QAP.
  • the problem determination unit 40 determines that the type of combinatorial optimization problem is an order optimization problem ("order optimization problem" in step S101).
  • the problem dividing unit 51 performs clustering for one index (step S111 in FIG. 34). Specifically, the problem dividing unit 51 clusters variables with respect to indexes representing items to be arranged.
  • the sub-problem optimization unit 52 formulates the sub-problem (step S112) and performs optimization processing of the sub-problem (step S113). Specifically, the sub-problem optimization unit 52 formulates a part of the problem (sub-problem) obtained by clustering as the same order optimization problem as the original, and performs optimization processing by annealing.
  • the problem combining unit 53 formulates the super problem (step S114). Specifically, the problem combining unit 53 extracts only the first and last items in the order obtained as the solutions of the sub-problems for all sub-problems, and uses the extracted items to determine the cluster order. We formulate the problem (superproblem) as a sequential optimization problem.
  • the super-problem optimization unit 54 performs super-problem optimization processing by annealing (step S115), combines the sub-problem and super-problem solutions, and the output unit 60 outputs the result (step S116). .
  • the super-problem optimizing unit 54 determines the order of the clusters based on the obtained super-problem solution, and determines the order within the cluster based on the solution of the sub-problem. Create a solution to the sequential optimization problem of .
  • the problem determination unit 40 determines that the type of combinatorial optimization problem is TSP ("TSP" in step S101 of FIG. 33).
  • TSP type of combinatorial optimization problem
  • the problem dividing unit 51 performs clustering for one index (step S121 in FIG. 35). Specifically, the problem dividing unit 51 performs clustering of variables with respect to indexes representing cities to be arranged.
  • the sub-problem optimization unit 52 formulates the sub-problem (step S122) and performs optimization processing of the sub-problem (step S123). Specifically, the sub-problem optimization unit 52 formulates a part of the problem (sub-problem) obtained by clustering as the same TSP as the original, and performs optimization processing by annealing.
  • the problem combining unit 53 randomly selects variables from the solutions of the sub-problems and formulates them into super-problems (step S124). Specifically, the problem combining unit 53 randomly extracts two consecutive cities from among the sequences of cities obtained as solutions of the subproblems for all subproblems, and uses the extracted cities to create clusters. We formulate the order-determining problem (super-problem) as a TSP.
  • the super-problem optimization unit 54 performs optimization processing of the super-problem by annealing (step S125), and combines the solutions of the sub-problem and the super-problem (step S126). Specifically, the super-problem optimization unit 54 determines the order of the clusters as the solution of the super-problem, and the order of the cities in the cluster from the solutions of the sub-problems, thereby optimizing the original TSP. create a solution.
  • the super-problem optimization unit 54 The best solution is recorded (step S128).
  • the super-problem optimization unit 54 determines whether or not it has been repeated a specified number of times (step S129). If the process has been repeated the prescribed number of times (Yes in step S129), the output unit 60 outputs the best solution (step S130). On the other hand, if the predetermined number of repetitions has not been performed (No in step S129), the processes after step S124 are repeated.
  • the problem determination unit 40 determines that the type of combinatorial optimization problem is QAP ("QAP" in step S101 of FIG. 33).
  • the problem dividing unit 51 defines a matrix of distances used for clustering (step S131 in FIG. 36).
  • the problem dividing unit 51 also clusters the two indexes (step S132). Specifically, in order to cluster variables in the same way as TSP using the QUBO matrix, the problem dividing unit 51 defines the amount corresponding to the distance in TSP from the QUBO matrix, Attempt to cluster the variables with respect to both indices.
  • the sub-problem optimization unit 52 sorts the indices of the second variable by cluster (step S134), and proceeds to the process of step S135. move on. Specifically, the sub-problem optimization unit 52 determines whether clustering is possible for both indexes, and if both can be clustered, the index of the clustered second variable is Arrange them so that they line up.
  • step S134 is performed when both indexes can be clustered, or when both indexes cannot be clustered (No in step S133)
  • the sub-problem optimization unit 52 performs the first , the sub-problem is optimized as a TSP (step S135). Specifically, the sub-problem optimization unit 52 clusters the indices of the variables that have not been clustered at this point by the matrix (distance matrix) defined in step S132, and uses this matrix to extract the sub-problem instead of QAP. , optimize like TSP.
  • the problem combining unit 53 randomly selects variables from the solutions of the sub-problems and formulates them into super-problems (step S136). Specifically, the problem combining unit 53 uses the sequence of sub-problem solutions obtained in step S135, and uses the sequence of items obtained as the solutions of the sub-problems in the same way as when solving the TSP. Randomly extract consecutive two items for all subproblems. Then, the problem combination unit 53 formulates a problem (super problem) for determining the order of clusters using the extracted items as a TSP.
  • the super-problem optimization unit 54 performs optimization processing of the super-problem by annealing (step S137), and combines the solutions of the sub-problem and the super-problem (step S138). Specifically, the super-problem optimizing unit 54 determines the sequence of solutions between clusters as the super-problem solution, and determines the order of items in the cluster from the sub-problem solutions, thereby optimizing the original Create a sequence of solutions to the problem.
  • the super-problem optimizing unit 54 also considers the combined solution with the second index shifted (step S139). Specifically, the super-problem optimizing unit 54 shifts the sequence of obtained solutions with respect to the other index to search for a better solution.
  • the super-problem optimization unit 54 selects the best solution as Record (step S141). This is because the two items to be extracted from the solution of the sub-problem are randomly selected, so it is assumed that the obtained solution will be different each time.
  • the super-problem optimization unit 54 determines whether or not it has been repeated a specified number of times (step S142). If the process has been repeated the prescribed number of times (Yes in step S142), the output unit 60 outputs the best solution (step S143). On the other hand, if the predetermined number of repetitions has not been performed (No in step S142), the processes after step S136 are repeated.
  • the problem determination unit 40 determines the type of the combinatorial optimization problem from the QUBO matrix obtained by QUBO modeling the combinatorial optimization problem including the two-dimensional one-hot condition as a constraint condition. is determined, and the optimization unit 50 performs optimization processing according to the determined type of combinatorial optimization problem. Therefore, appropriate optimization processing can be performed according to the QUBO-modeled optimization problem.
  • constraints have many variables makes it difficult to solve the problem.
  • a combinatorial optimization problem with constraints is more difficult than a combinatorial optimization problem without constraints in the sense that the solution obtained cannot be interpreted as a meaningful solution unless all given constraints are satisfied.
  • the constraint here means a condition that the solution after annealing calculation by simulated annealing or quantum annealing must satisfy, for example, a one-hot condition.
  • the optimization unit 50 divides the problem according to the type of combinatorial optimization problem determined. Therefore, it becomes possible to perform more appropriate optimization processing.
  • Embodiment 2 Next, a second embodiment of the optimization device of the present invention will be described.
  • the method of dividing and optimizing the QUBO matrix based on the determined type of combinatorial optimization problem has been described.
  • a method of transforming the QUBO matrix based on the determined combinatorial optimization problem type and optimizing it according to a dedicated algorithm will be described.
  • FIG. 37 is an explanatory diagram showing a configuration example of the second embodiment of the optimization device of the present invention.
  • the optimization device 200 of the second embodiment includes an input unit 10, a modeling unit 20, a one-hot condition identification unit 30, a problem determination unit 40, an optimization unit 70, and an output unit 60.
  • the optimization unit 70 also includes a conversion unit 71 and an optimization processing execution unit 72 .
  • the optimization device 200 of this embodiment differs from the configuration of the first embodiment in that it includes an optimization unit 70 instead of the optimization unit 50 .
  • Other configurations are the same as those of the first embodiment.
  • the conversion unit 71 converts the QUBO matrix based on the determined type of combinatorial optimization problem. Specifically, a format for conversion is determined in advance according to the type of combinatorial optimization problem identified, and the conversion unit 71 converts the QUBO matrix into the format determined according to the type identified. This format is determined according to the mode in which the optimization process execution unit 72 (to be described later) can execute the optimization process.
  • the conversion unit 71 may convert the QUBO matrix so that an existing TSP solver can execute it. Any method may be used to transform the QUBO matrix, and a known method may be used.
  • the optimization processing execution unit 72 executes the optimization processing of the original combinatorial optimization problem in the converted format.
  • the optimization process executing section 72 may execute the optimization process by, for example, an optimization solver corresponding to the combinatorial optimization problem.
  • the optimization processing execution unit 72 may, for example, issue an execution instruction to another device (not shown) that executes the optimization processing, or the optimization device 200 itself may execute the optimization processing. good too.
  • the output unit 60 is implemented by a computer processor that operates according to a program (optimization program).
  • FIG. 38 is a flowchart showing an operation example of the optimization device 200 of this embodiment.
  • the process of determining the type of combinatorial optimization problem is the same as the process of step S11 illustrated in FIG.
  • the conversion unit 71 converts the QUBO matrix into a format determined according to the type (step S21). Then, the optimization process executing unit 72 executes the optimization process of the combinatorial optimization problem in the converted format (step S22).
  • the conversion unit 71 converts the QUBO matrix into a format determined according to the type of combinatorial optimization problem determined based on the type of the combinatorial optimization problem, and the optimization processing execution unit 72 performs the optimization process of the combinatorial optimization problem in the transformed format. Therefore, as in the first embodiment, appropriate optimization processing can be performed according to the QUBO-modeled optimization problem.
  • Embodiment 3 Next, a third embodiment of the optimization device of the present invention will be described.
  • the method of transforming the QUBO matrix according to the optimization algorithm has been described.
  • a method of searching for a better solution for the results output by the Ising computer will be described.
  • a case will be described in which optimization processing of a QUBO-modeled combinatorial optimization problem is directly performed by an Ising computer such as an annealing machine.
  • the processing performed by the optimization device of the present embodiment may be performed on the results output by the optimization device 100 of the first embodiment and the optimization device 200 of the second embodiment.
  • FIG. 39 is an explanatory diagram showing a configuration example of the third embodiment of the optimization device of the present invention.
  • the optimization device 300 of the third embodiment includes an input unit 10, a modeling unit 20, a one-hot condition identification unit 30, a problem determination unit 40, an optimization unit 80, and an output unit 60.
  • the optimization unit 80 also includes an optimization processing execution unit 81 and a post-processing unit 82 .
  • the optimization device 300 of this embodiment differs from the configuration of the first embodiment in that it includes an optimization unit 80 instead of the optimization unit 50 .
  • Other configurations are the same as those of the first embodiment.
  • the optimization processing execution unit 81 executes QUBO-modeled optimization problems. Specifically, the optimization processing execution unit 81 performs the optimization processing by causing the Ising computer 1 to execute the QUBO-modeled optimization problem. In this embodiment, the optimization processing execution unit 81 causes the Ising computer 1 to execute the QUBO-modeled optimization problem itself.
  • the post-processing unit 82 performs post-processing of the solution obtained as a result of the optimization process according to the type of combinatorial optimization problem.
  • the content of the post-processing performed by the post-processing unit 82 is arbitrary.
  • the post-processing unit 82 may, for example, perform a process of correcting the optimal solution so as to satisfy the constraint conditions, or a process of further searching for a more appropriate solution.
  • the post-processing unit 82 may perform an operation of exchanging assignments, for example, as post-processing. At this time, the post-processing unit 82 may perform post-processing using a local search algorithm (an algorithm that searches for a better solution by exchanging two elements). Post-processing that can be performed in the case of TSP includes, for example, the 2-opt method.
  • the post-processing unit 82 may use the method described in Non-Patent Document 1, for example, to perform post-processing that appropriately adjusts 0 and 1 so that the obtained solution satisfies the one-hot condition.
  • an input unit 10 a modeling unit 20, a one-hot condition identification unit 30, a problem determination unit 40, an optimization unit 80 (more specifically, an optimization processing execution unit 81 and a post-processing unit 82); , and the output unit 60 are realized by a computer processor that operates according to a program (optimization program).
  • FIG. 40 is a flow chart showing an operation example of the optimization device 300 of this embodiment.
  • the process of determining the type of combinatorial optimization problem is the same as the process of step S11 illustrated in FIG.
  • the optimization processing execution unit 81 performs optimization processing by causing the Ising computer to execute the QUBO-modeled optimization problem (step S31). Then, the post-processing unit 82 performs post-processing of the solution obtained as a result of the optimization process according to the type of combinatorial optimization problem (step S32).
  • the optimization processing execution unit 81 performs optimization processing by causing the Ising computer device to execute the QUBO-modeled optimization problem, and the post-processing unit 82 executes the combinatorial optimization problem Post-processing of the solution obtained as a result of the optimization process is performed according to the type of . Therefore, as in the first embodiment, appropriate optimization processing can be performed according to the QUBO-modeled optimization problem.
  • FIG. 41 is a block diagram showing an outline of an optimization device according to the present invention.
  • the optimization device 90 (for example, the optimization devices 100, 200, and 300) according to the present invention uses a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint to extract the combination
  • a discrimination means 91 for example, the problem discrimination section 40
  • an optimization means 92 for example, the optimization section 50, 70, 80.
  • the discriminating means 91 compares the distribution of non-zero components of the objective function portion, which is a matrix obtained by removing the two-dimensional one-hot condition from the QUBO matrix, with the distribution of components determined according to the type of combinatorial optimization problem. The comparison may be made to determine the type of combinatorial optimization problem.
  • the optimizing means 92 includes problem dividing means (for example, the problem dividing unit 51) for extracting from the QUBO matrix blocks that are square matrices containing non-zero components according to the type of the identified combinatorial optimization problem; a sub-problem optimization means (for example, a sub-problem optimization unit 52) that optimizes a sub-problem, which is a problem indicated by each component matrix of the block, by a method determined according to the original combinatorial optimization problem; , problem combining means (e.g., problem combining unit 53) for formulating a super-problem, which is a new combinatorial optimization problem combining the optimization results of the obtained sub-problems, and a super-problem for performing optimization processing of the super-problem optimization means (eg, super-problem optimizer 54).
  • problem dividing means for example, the problem dividing unit 51
  • a sub-problem optimization means for example, a sub-problem optimization unit 52
  • problem combining means e.g., problem combining unit 53
  • a super-problem
  • the problem dividing means generates blocks by sorting the indexes so that the values of the components in the first row of the extracted blocks are in ascending order, and the ratio or difference between adjacent components is a predetermined threshold value (for example, the threshold value t cl ), a new block may be generated by splitting the square matrix containing the rows up to its leftmost adjacent component.
  • a predetermined threshold value for example, the threshold value t cl
  • the problem dividing means defines the average sum of the elements of the QUBO matrix of clusters, which are a set of variable indices, as the distance between clusters (for example, Equation 8 shown above). are combined, and the block may be divided by repeating the process of combining clusters until a predetermined condition is satisfied.
  • the problem combining means may be formulated according to a method determined according to the original combinatorial optimization problem.
  • the optimization means includes, based on the type of combinatorial optimization problem identified, conversion means (for example, a conversion unit 71) that converts the QUBO matrix into a format determined according to the type; and a first optimization process execution means (for example, the optimization process execution unit 72) that executes the optimization process for the combinatorial optimization problem.
  • conversion means for example, a conversion unit 71
  • first optimization process execution means for example, the optimization process execution unit 72
  • the optimization means includes a second optimization process execution means (for example, the optimization process execution unit 81) that performs the optimization process by causing the Ising computer to execute the QUBO-modeled optimization problem. and post-processing means (for example, a post-processing unit 82) for post-processing the solution obtained as a result of the optimization process according to the type of combinatorial optimization problem.
  • a second optimization process execution means for example, the optimization process execution unit 81
  • post-processing means for example, a post-processing unit 82 for post-processing the solution obtained as a result of the optimization process according to the type of combinatorial optimization problem.
  • the discriminating means determines the distribution of the non-zero components of the objective function part, which is a matrix obtained by removing the two-dimensional one-hot condition from the QUBO matrix, the distribution of components determined according to the type of combinatorial optimization problem. 1.
  • the optimization means is a problem dividing means for extracting a block, which is a square matrix containing non-zero components, from the QUBO matrix according to the type of the identified combinatorial optimization problem; sub-problem optimization means for optimizing a sub-problem, which is a problem indicated by each component matrix of the extracted block, by a method determined according to the original combinatorial optimization problem; a problem combining means for formulating a super-problem, which is a new combinatorial optimization problem combining the optimization results of the obtained sub-problems; and super-problem optimization means for performing optimization processing of the super-problem.
  • the problem dividing means generates blocks by sorting the indexes so that the values of the components in the first row of the extracted blocks are in ascending order, and if the ratio or difference between adjacent components exceeds a predetermined threshold, 3.
  • the optimization device according to appendix 3, wherein a square matrix including rows up to the adjacent left-hand component is divided to generate a new block.
  • the problem dividing means defines the average of the sums of the components of the QUBO matrix of clusters, which are a set of variable indices, as the distance between clusters, and combines clusters with close distances to meet a predetermined condition 3.
  • Appendix 6 The optimization apparatus according to any one of Appendices 3 to 5, wherein the problem combining means performs formulation according to a method determined according to the original combinatorial optimization problem.
  • the problem combining means selects two consecutive cities for each region from the order of each region optimized by the sub-problem, and travels to visit the two cities selected for each region.
  • the super-problem optimization means inserts an optimization result optimized for each region into the optimization result of the optimized combinatorial optimization problem. Optimizer.
  • the problem dividing means specifies a reference block for clustering, and attempts clustering in the vertical and horizontal directions of the specified block,
  • the super-problem optimizing means repeats the optimization process while changing the index value of the other clustering by 1 according to the result of trial clustering in either the vertical direction or the horizontal direction. Optimizer.
  • the problem dividing means extracts a block related to the constraint between products of the sub-problem from the QUBO matrix regarding the constraint on the order of products
  • the sub-problem optimization means optimizes the sub-problem by adding a two-dimensional one-hot condition to the QUBO matrix of the objective function of the extracted block
  • the problem combining means is formulated as a problem for determining the order of sub-problems using the first product and the last product in the order derived as the optimal solution of the sub-problems, 7.
  • the optimizer according to any one of Appendixes 3 to 6, wherein the super-problem optimizer optimizes a super-problem that determines the order of generated sub-problems.
  • the optimization means is conversion means for converting the QUBO matrix into a format determined according to the type of combinatorial optimization problem determined based on the type; and a first optimization process executing means for executing the optimization process of the combinatorial optimization problem in the converted format.
  • the optimization means is a second optimization processing execution means for performing optimization processing by causing an Ising computer to execute the QUBO modeled optimization problem;
  • the optimization device according to appendix 1 or appendix 2 further comprising post-processing means for post-processing the solution obtained as a result of the optimization process according to the type of the combinatorial optimization problem.
  • (Appendix 12) A square matrix containing non-zero components according to the type of combinatorial optimization problem from the QUBO matrix obtained by QUBO modeling a combinatorial optimization problem that includes a two-dimensional one-hot condition as a constraint.
  • a problem dividing means for extracting blocks; sub-problem optimization means for optimizing a sub-problem, which is a problem indicated by each component matrix of the extracted block, by a method determined according to the original combinatorial optimization problem; a problem combining means for formulating a super-problem, which is a new combinatorial optimization problem combining the optimization results of the obtained sub-problems; a super-problem optimization means for performing optimization processing of the super-problem,
  • the problem dividing means generates blocks by sorting the indexes so that the values of the components in the first row of the extracted blocks are in ascending order, and when the ratio or difference between adjacent components exceeds a predetermined threshold, the adjacent
  • An optimization device characterized by dividing a square matrix including rows up to the left-hand component
  • a problem dividing means for extracting blocks; sub-problem optimization means for optimizing a sub-problem, which is a problem indicated by each component matrix of the extracted block, by a method determined according to the original combinatorial optimization problem; a problem combining means for formulating a super-problem, which is a new combinatorial optimization problem combining the optimization results of the obtained sub-problems; a super-problem optimization means for performing optimization processing of the super-problem,
  • the problem dividing means defines the average of the sums of the components of the QUBO matrix of clusters, which are a set of variable indices, as the distance between clusters, and combines clusters with close distances until a predetermined condition is satisfied.
  • An optimization device characterized by dividing a block by repeating a process of combining clusters
  • the computer determines the type of the combinatorial optimization problem from the QUBO matrix obtained by QUBO modeling the combinatorial optimization problem including the two-dimensional one-hot condition as a constraint, An optimization method, wherein the computer performs optimization processing according to the type of combinatorial optimization problem determined.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

最適化装置90は、判別手段91と、最適化手段92とを備えている。判別手段91は、二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、その組合せ最適化問題の種類を判別する。最適化手段92は、判別された組合せ最適化問題の種類に応じた最適化処理を行う。

Description

最適化装置、最適化方法および最適化プログラム
 本発明は、組合せ最適化問題に応じた最適化を行う最適化装置、最適化方法および最適化プログラムに関する。
 組合せ最適化問題は、組合せに関する選択肢の中から、ある指標に基づいて最も良い組合せを探そうとする問題であり、様々な制約の下で所定の指標を最適化する変数の値の組合せを導出する問題である。組合せ最適化問題は、日常の様々な場面に適用される問題であるが、その問題の特性上、規模が大きくなると計算量が爆発することも知られている。
 このような問題を解決するため、近年、最適化問題をシミュレーテッドアニーリング(Simulated Annealing 。以下、SAと記すこともある。)や量子アニーリングにより解く方法が各種提案されている。例えば、特許文献1には、生産性が最大になる生産計画を作成する生産計画方法が記載されている。特許文献1に記載された方法では、製品の生産計画作成問題に関する目的関数及び制約条件をQUBO(Quadratic Unconstrained Binary Optimization:制約なし二次バイナリ最適化)モデルもしくはイジングモデルに定式化し、アニーリングマシンを用いて最適解を取得する。
 なお、非特許文献1には、イジングマシンを用いた制約付きスロット配置問題の解決方法が記載されている。
特開2020-140615号公報
Sho KANAMARU, Kazushi KAWAMURA, Shu TANAKA, Yoshinori TOMITA, Nozomu TOGAWA, "Solving Constrained Slot Placement Problems Using an Ising Machine and Its Evaluations", IEICE Transactions on Information and Systems, Volume E104.D, Issue 2, Pages 226-236, 2021
 イジングモデルは、結晶を構成する原子のスピンの向きを計算する簡易的なモデルであり、組合せ最適化問題の定式化の一つである。また、QUBOモデルも、組合せ最適化問題の定式化の一つであり、QUBOモデルの係数を表わす行列は、QUBO行列と呼ばれる。QUBOモデルとイジングモデルは一対一に変形できるため、QUBOモデル化された組合せ最適化問題は、アニーリングマシンで解くことが可能である。
 そして、QUBOモデル化された組合せ最適化問題をそのままアニーリングマシンで解くことも原理的には可能である。しかし、組合せ最適化問題の単純なQUBOモデルを用いた場合、最適解に近い解が得にくい場合も存在し、また、多くの時間を要してしまう可能性もある。
 特許文献1に記載された方法では、生産ラインにおける生産計画を時空間ネットワークモデルで定式化した組合せ最適化問題をQUBOモデルもしくはイジングモデルに変換して最適解を導出する。しかし、このように定式化された組合せ最適化問題を変換したQUBOモデルを解く場合にも、上記のような可能性が存在することから、より適切に最適化する方法は不明である。そのため、QUBOモデル化された最適化問題に応じて、より適切な最適化処理を実施できることが好ましい。
 そこで、本発明は、QUBOモデル化された最適化問題に応じて適切な最適化処理を実施できる最適化装置、最適化方法および最適化プログラムを提供することを目的とする。
 本発明による最適化装置は、二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、その組合せ最適化問題の種類を判別する判別手段と、判別された組合せ最適化問題の種類に応じた最適化処理を行う最適化手段とを備えたことを特徴とする。
 本発明による最適化方法は、コンピュータが、二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、その組合せ最適化問題の種類を判別し、コンピュータが、判別された組合せ最適化問題の種類に応じた最適化処理を行うことを特徴とする。
 本発明による最適化プログラムは、コンピュータに、二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、その組合せ最適化問題の種類を判別する判別処理、および、判別された組合せ最適化問題の種類に応じた最適化処理を行う最適化処理を実行させることを特徴とする。
 本発明によれば、QUBOモデル化された最適化問題に応じて適切な最適化処理を実施できる。
本発明の最適化装置の第一の実施形態の構成例を示す説明図である。 二次元的なワンホット条件の例を示す説明図である。 順番最適化問題の例を示す説明図である。 ワンホット条件を含むQUBO行列の例を示す説明図である。 ワンホット条件を含むQUBO行列の他の例を示す説明図である。 順番最適化問題の0でない成分の分布の例を示す説明図である。 TSPの0でない成分の分布の例を示す説明図である。 QAPの0でない成分の分布の例を示す説明図である。 QUBO行列の例を示す説明図である。 TSPのQUBO行列から抽出されたブロックの例を示す説明図である。 TSPのQUBO行列から抽出されたブロックの他の例を示す説明図である。 ソートによるクラスタリングの例を示す説明図である。 ソートによるクラスタリングの例を示す説明図である。 分割されたサブ問題の例を示す説明図である。 地方同士のTSPの例を示す説明図である。 各地方の解を挿入した結果の例を示す説明図である。 最適解を挿入する処理の例を示す説明図である。 出力部が出力する内容の例を示す説明図である。 TSPおよびQAPの目的関数部分を示すQUBO行列の例を示す説明図である。 変数に対して各方向に分割を試行した例を示す説明図である。 「一方だけ分割できる」という結果が導出された場合の例を示す説明図である。 各インデックスについて行われる最適化処理の例を示す説明図である。 「両方分割できるケース」という結果が導出された場合の例を示す説明図である。 出力部が出力する内容の他の例を示す説明図である。 順番最適化問題を解くアルゴリズムの概要を説明する説明図である。 段取り時間最適化問題を示すQUBO行列の例を示す説明図である。 段取り時間を示す行列の例を示す説明図である。 QUBO行列から必要な成分を抽出する処理の例を示す説明図である。 問題を定式化する方法の例を示す説明図である。 問題を定式化する方法の他の例を示す説明図である。 出力部が出力する内容の他の例を示す説明図である。 第一の実施形態の最適化装置の動作例を示すフローチャートである。 第一の実施形態の最適化装置の他の動作例を示すフローチャートである。 順番最適化問題と判別された際の動作例を示すフローチャートである。 TSPと判別された際の動作例を示すフローチャートである。 QAPと判別された際の動作例を示すフローチャートである。 本発明の最適化装置の第二の実施形態の構成例を示す説明図である。 第二の実施形態の最適化装置の動作例を示すフローチャートである。 本発明の最適化装置の第三の実施形態の構成例を示す説明図である。 第三の実施形態の最適化装置の動作例を示すフローチャートである。 本発明による最適化装置の概要を示すブロック図である。
実施形態1.
 以下、本発明の実施形態を図面を参照して説明する。図1は、本発明の最適化装置の第一の実施形態の構成例を示す説明図である。なお、以下に示す実施形態の最適化装置は、QUBOモデル化された最適化問題に応じて適切な最適化処理を実施する装置である。
 まず初めに、以下の実施形態で扱う組合せ最適化問題について説明する。以下の実施形態では、巡回セールスマン問題(以下、TSP(Traveling Salesman Problem)と記すこともある。)のように物事の順番を決める問題や、二次割当問題(以下、QAP(Quadratic Assignment Problem)と記すこともある。)のように2種類の事柄を一対一に対応させる問題を最適化する状況を想定する。
 これらの問題では、最適化する変数にワンホット条件が課せられることが知られている。具体的には、TSPやQAPを解くために、バイナリ(0または1)の二次元的な配列xi,jとして変数を定義すると、この変数には、横(i)方向と縦(j)方向に関してワンホット条件が課せられる。以下の説明では、このような条件のことを、二次元的なワンホット条件と記す。すなわち、QUBO行列において、二次元的なワンホット条件は、0以外の成分が縦方向と横方向で重複しない正方行列で表わされるQUBO行列の一部分である。
 二次元的なワンホット条件は、横(i)方向と縦(j)方向について、それぞれ、以下の式1および式2のように定式化できる。
Figure JPOXMLDOC01-appb-M000001
 例えば、TSPの場合、訪問する順番をiとし訪問する場所をjとすると、xijは、i番目に場所jを訪問する(1)か否(0)かを表わす変数(配列)になる。これは、ある場所に訪問するのは1回だけであり、1度に訪問するのは一か所だけであることを示す変数と言える。ここで、dj,kを、場所jと場所kの間の距離とすると、最適化(最小化)する目的関数は、以下に示す式3のように表される。TSPは、順番が隣り合う場所同士の結合を考えればよいためである。また、TSPの場合、最後に訪問する場所から最初に訪問する場所への距離も目的関数に含まれるため、式3においてiが都市数と等しいときにはi+1を1と読み替える。例えば、5つの場所を訪問する場合、式3におけるi+1を1と読み替えればよい。
Figure JPOXMLDOC01-appb-M000002
 他にも、例えば、QAPとして、各地域に工場を1つずつ配置する問題を考える。これは、複数の地域それぞれに1つの工場を配置するときに、工場間の物資の輸送コスト(距離と物資のフローの積で表わされる値)の合計を最小化する問題になる。このとき、工場をiとし、地域をjとすると、xijは、工場iが地域jに存在する(1)か否(0)かを表わす変数(配列)になる。これは、ある地域に存在する工場は1つだけであり、ある工場が存在する地域は1つだけであることを示す変数と言える。
 ここで、fi,kを工場iと工場kの間のフローとし、dj,lを地域jと地域lの間の距離とすると、最適化(最小化)する目的関数は、以下に示す式4のように表される。QAPは、TSPと異なり、順番が隣り合う地域間の結合だけでなく、他の地域との結合がすべて目的関数に含まれる。
Figure JPOXMLDOC01-appb-M000003
 図2は、二次元的なワンホット条件の例を示す説明図である。図2に示す例では、配列101が二次元的な配列の変数の例を示し、配列102が二次元的なワンホット条件を満たす変数の値の例を示す。例えば、図2に例示する配列102がTSPで用いられる変数とした場合、1番目に場所4を訪問し、2番目に場所1を訪問し、3番目に場所3を訪問し、4番目に場所2を訪問することを示す。
 以下の実施形態では、TSPやQAPのような二次元的なワンホット条件が課せられる問題を扱う。ただし、以下の実施形態で扱う組合せ最適化問題は、TSPおよびQAPに限定されない。上述するような二次元的なワンホット条件が課される最適化問題であれば、TSPやQAPのように、広く知られた最適化問題に限定されない。
 例えば、複数の製品を全て1回ずつ生産するときに、生産する各製品の段取りに要するコストを最小化するような問題も、二次元的なワンホット条件が課される最適化問題である。生産する製品の順番によって、段取りに要するコスト(例えば、装置の変更、人員の変更等)も異なるからである。以下の説明では、このように順番を最適化する問題を順番最適化問題と記す。この問題は、巡回しないTSPと言うこともできる。
 図3は、順番最適化問題の例を示す説明図である。図3に示す例は、3種類の製品A、製品Bおよび製品Cを生産する際、各製品の生産時間だけでなく、各製品を生産する準備を行う時間(段取り時間)も想定して生産時間を算出していることを示す。図3に例示するように、製品を生産する順番によって全体の生産時間が異なるため、順番最適化問題は、この生産時間を最小化するように順番を最適化する問題と言える。例えば、図3に示す例では、製品Aから製品Bへの段取り時間に多くを要する場合、その順番は避けた方がよいと言える。
 この順番最適化問題では、生産する順番をiとし製品をjとすると、xijは、i番目に製品jを生産する(1)か否(0)かを表わす変数(配列)になる。これは、ある製品を生産するのは1回だけであり、1度に生産するのは1つの製品だけであることを示す変数と言える。
 ここで、cj,kを製品jから製品kへ変更する際に要する段取りのコストとすると、最適化(最小化)する目的関数は、以下に示す式5のように表される。
Figure JPOXMLDOC01-appb-M000004
 また、他の組合せ最適化問題の例として、スタート地点の都市とゴール地点の都市が決まっており、途中の都市をすべて一度ずつ訪問するときに移動距離が最も短くなるような経路を決める問題が挙げられる。これは、一般的に知られたTSPとは異なるが、二次元的なワンホット条件が課される組合せ最適化問題と言える。
 以上に示すように、以下の実施形態では、二次元的なワンホット条件を含む組合せ最適化問題の種類に応じて、適切に最適化処理を行う方法を説明する。
 図1に例示するように、第一の実施形態の最適化装置100は、入力部10と、モデル化部20と、ワンホット条件特定部30と、問題判別部40と、最適化部50と、出力部60とを備えている。
 最適化装置100は、最適化処理を行うイジング計算機1に接続される。イジング計算機1は、イジングモデルおよびQUBOモデルの最適解を探索する装置である。イジング計算機1は、例えば、アニーリングマシンにより実現される。
 入力部10は、組合せ最適化問題の入力を受け付ける。入力部10は、例えば、定式化された最適化問題(目的関数および制約条件)の入力を受け付けてもよい。また、入力部10は、QUBOモデル化された最適化問題(例えば、QUBO行列)の入力を受け付けてもよい。入力部10が、QUBOモデル化された最適化問題の入力を受け付ける場合、最適化装置100は、モデル化部20を備えていなくてもよい。
 モデル化部20は、組合せ最適化問題をQUBOモデル化してQUBO行列を取得する。モデル化部20は、組合せ最適化問題を、既知の方法を用いてQUBOモデル化すればよい。例えば、TSPやQAP、順番最適化問題はいずれもQUBOモデルで表わすことができる有名な問題であり、QUBOモデル化してQUBO行列を取得する方法は広く知られているため、ここでは詳細な説明は省略する。
 ワンホット条件特定部30は、QUBO行列に含まれる二次元的なワンホット条件を特定する。具体的には、ワンホット条件特定部30は、QUBO行列から、0以外の成分が縦方向と横方向で重複しない範囲の正方行列を特定する。ワンホット条件特定部30は、例えば、図2に例示するような二次元的なワンホット条件をQUBO行列から特定する。QUBO行列は、QUBOモデル化された組合せ最適化問題の係数の部分を行列で表わしたものであり、以下の式6に例示するハミルトニアンにおいて、下線が引かれた行列に対応する。
Figure JPOXMLDOC01-appb-M000005
 なお、式6において、QUBO行列の対角成分(Q11など)はhに対応し、非対角成分(Q12など)は、Jijに対応する。
 図4は、ワンホット条件を含むQUBO行列の例を示す説明図である。図4に例示するQUBO行列は、横方向(より具体的には、変数xijにおけるi)のワンホット条件を示すQUBO行列であり、変数が4×4の組合せになっていることを示す。図4に例示するように、このQUBO行列は、対角線に沿った三角形の範囲に成分が並んでいることを示す。
 図5は、ワンホット条件を含むQUBO行列の他の例を示す説明図である。図5に例示するQUBO行列は、縦方向(より具体的には、変数xijにおけるj)のワンホット条件を示すQUBO行列であり、変数が4×4の組合せになっていることを示す。図5に例示するように、このQUBO行列は、対角線と平行な方向にjの成分が並んでいることを示す。
 そして、ワンホット条件特定部30は、特定した二次元的なワンホット条件を示す成分を、もとのQUBO行列から取り除く。なお、ここでの取り除くとは、成分を0にすることである。以下の説明では、QUBO行列から二次元的なワンホット条件が取り除かれた行列を、QUBO行列の目的関数部分と記す。
 ワンホット条件特定部30がQUBO行列に含まれる二次元的なワンホット条件を特定する方法および目的関数部分を特定する方法は任意である。ワンホット条件特定部30は、例えば、QUBO行列の対角成分の値から予測される二次元的なワンホット条件の係数パラメータ、または、予め示された係数パラメータを使用して、QUBO行列から目的関数部分を特定してもよい。
 なお、ここでは、QUBO行列から二次元的なワンホット条件を取り除くことにより目的関数部分を生成するとしている。ただし、二次元的なワンホット条件を除いた部分が特定できる方法であれば、ワンホット条件特定部30は、明示的に成分を取り除く処理をしなくてもよい。ワンホット条件特定部30は、例えば、取り除く(または残す)成分を特定するようなマスクを示す行列を生成するようにしてもよい。
 問題判別部40は、QUBO行列から二次元的なワンホット条件が取り除かれた行列(すなわち、目的関数部分)から組合せ最適化問題の種類を判別する。具体的には、問題判別部40は、目的関数部分の0でない成分の分布に基づいて、組合せ最適化問題の種類を判別する。
 以下、目的関数部分の0でない成分の分布に基づいて、組合せ最適化問題の種類を判別できる理由について詳述する。例えば、二次元的なワンホット条件を含む問題として、上述するTSPやQAPが挙げられる。TSPとQAPは、問題の難易度が異なり、QAPの方が難しいことも知られている。そして、この問題の違いが、TSPとQAPをQUBOモデル化したときのQUBO行列において、二次元的なワンホット条件を除いた行列(すなわち、目的関数部分)に現れることを本発明の発明者は見出した。例えば、TSPは、QAPに比べて二次元的なワンホット条件を除いた行列(すなわち、目的関数部分)において0の成分が多くなる。
 また、二次元的なワンホット条件に基づくQUBO行列の成分が成す形は決まっており、TSPやQAPは、二次元的なワンホット条件が制約条件を含むことが明示される。よって、目的関数部分の0でない成分の分布を観察することで、組合せ最適化問題の種類を判別できる。
 さらに、本発明者は、目的関数部分に、問題に応じて、0でない成分の特徴的な分布が現れることを発見した。ここで、0でない成分の分布とは、0でない一つ一つの成分の分布だけでなく、0でない成分を含む正方行列(以下、ブロックと記すこともある。)の分布も含む。
 そこで、組合せ最適化問題の種類に応じて0でない成分の分布を予め定めておき、問題判別部40は、目的関数部分と定められた分布とを比較して、一致または類似する分布に対応する最適化問題の種類を判別してもよい。
 以下、上述するTSP、QAPおよび順番最適化問題における0でない成分の分布について説明する。まず初めに、順番最適化問題の分布を説明する。図6は、順番最適化問題の0でない成分の分布の例を示す説明図である。図6に示す例は、QUBO行列を上三角行列としたときの4アイテム(製品)存在する場合の例である。図6に例示するように、順番最適化問題の場合、0でない成分(ブロック)は、変数の1つめのインデックス(すなわち、変数xijにおけるi)を1ずらした箇所に現れる。順番最適化問題の場合、目的関数は、次アイテム(製品)への移動に伴うコスト(例えば、上述する段取り時間)の和であるため、このブロックは、コストの行列と言うことができる。
 次に、TSPの場合の分布を説明する。図7は、TSPの0でない成分の分布の例を示す説明図である。図7に示す例は、QUBO行列を上三角行列としたときの4都市存在する場合の例である。図7に例示するように、TSPの0でない成分(ブロック)は、変数の1つめのインデックス(すなわち、変数xijにおけるi)を1ずらした箇所と、右上に現れる。TSPの場合、目的関数は、総移動距離であるため、このブロックは、距離の行列と言うことができる。
 次に、QAPの場合の分布を説明する。図8は、QAPの0でない成分の分布の例を示す説明図である。図8に示す例は、QUBO行列を上三角行列としたときの4工場存在する場合の例である。図8に例示するように、QAPの0でない成分(ブロック)は、行列の上三角部分に網羅的に現れる。QAPの場合、目的関数は、距離×フローの和であるため、このブロックは、2種類の行列(距離の行列111、および、フローの行列112)を含むと言える。
 なお、この3種類の問題では、ブロック内の成分は、互いに定数倍の違いしかない。しかし、ブロック内の成分がそれぞれ異なっていても、成分が0より大きければ、同様に解くことが可能である。
 ここで、QUBO行列における制約条件と目的関数との関係について説明する。図9は、QUBO行列の例を示す説明図である。図9における行列121は、制約条件(二次元的なワンホット条件)を示す行列の例であり、行列122は、目的関数(例えば、距離の行列の集まり)を示す行列の例である。
 制約条件は必ず満たされるべき条件であり、目的関数は制約条件を満たしたうえでの最適化(最小化)を目指すものである。そのため、ハミルトニアンにおいて、QUBO行列の成分の絶対値は、制約条件の成分の方が大きくなる。これを実現するため、ハミルトニアンの各項に係数が乗じられる。図9に示す例では、行列121の成分の絶対値を行列122の成分の絶対値よりも大きくするように係数が設定される。
 最適化部50は、判別された組合せ最適化問題の種類に応じた最適化処理を行う。例えば、シミュレーテッドアニーリングで組合せ最適化問題を解く場合、より最適解に近い解を短時間で得るために、解きたい問題の文脈に沿って問題分割を行うことがある。そこで、本実施形態の最適化部50は、組合せ最適化問題の種類に応じて、問題分割を行うことで、より適切な最適化処理を実施できるようにする。
 図1に例示するように、最適化部50は、問題分割部51と、サブ問題最適化部52と、問題結合部53と、スーパー問題最適化部54とを含む。
 問題分割部51は、QUBO行列に対して、判別された組合せ最適化問題の種類に応じた問題分割を行う。QUBO行列に対する問題分割とは、QUBO行列(より具体的には、目的関数部分)から、0でない成分を含む正方行列であるブロック(すなわち、目的関数の一部)を抽出する処理である。なお、取り出すブロックは任意である。例えば、図7に例示するQUBO行列の場合、問題分割部51は、左上のブロック(4×4の正方行列)を抽出してもよい。
 以下、TSPの問題分割を例示して、最適化部50の具体的処理を説明する。図10は、TSPのQUBO行列から抽出されたブロックの例を示す説明図である。図10では、近接する3つの都市が二グループ存在する場合を例示する。図10に示す例では、都市0、都市1および都市2が近接し、都市3、都市4および都市5が近接するものとする。TSPの場合、目的関数の一部であるブロックは距離の行列と言うことができる。そのため、図10に例示するブロックの各成分は、都市間の距離を表わしている。
 図10に示す例では、都市0、都市1および都市2が近接していることから、これらの都市間の距離(成分)が小さく(距離=1)、都市3、都市4および都市5も近接していることから、各都市間の距離(成分)が小さく(距離=1または2)なっていることを示す。同様に、図10に示す例では、近接しない都市間の距離(成分)は大きく(距離が10以上)なっていることを示す。
 TSPでは、距離を最小化することを目的とすることから、図10に例示するサブブロック132およびサブブロック133は使用せず、サブブロック131およびサブブロック134を使用することが想定される。
 なお、図10に示す例では、距離の近い都市同士が近いインデックスとして定義されている場合を例示した。ただし、距離が離れている都市同士が近いインデックスとして定義されている場合も考えられる。図11は、TSPのQUBO行列から抽出されたブロックの他の例を示す説明図である。
 図11に示す例では、距離の近い都市同士が近いインデックスとして定義されていない場合の例である。この場合、問題分割部51は、成分が昇順になるように都市のインデックスをソートすればよい。例えば、図11に例示する行141に着目し、インデックスを0’~5’を、それぞれ、0,3,4,1,5,2と並び替えることで、図10に例示するブロックを得ることができる。なお、このソートにより、近接する処理をグループ化できることから、このソート処理をソートによるクラスタリング(以下、単にクラスタリングと記すこともある。)と言うことができる。
 以下、ブロック内の成分のソート(クラスタリング)について、より一般的に説明する。図12および図13は、ソートによるクラスタリングの例を示す説明図である。まず、問題分割部51は、QUBO行列(具体的には、目的関数部分)151から、0でない成分を含む正方行列であるブロック152を抽出する。TSPの場合、ブロック152は、距離の行列であり、N都市のTSPであれば、目的関数部分に現れる距離の行列はすべて等しい。そのため、問題分割部51は、例えば、図12に例示するように、0行目からN-1行目およびN列目から2N-1列目の正方行列を抽出すればよい。
 次に、問題分割部51は、抽出したブロック153の先頭行(0行目)154の成分の値が昇順になるようにインデックスをソートしたブロック155を生成する。そして、サブブロックに分割する成分の閾値tclを予め定義しておき、問題分割部51は、隣接する成分の差が予め定めた閾値を超える場合、その成分同士を分割する可能性のある列インデックスidivを保持する。なお、この閾値tclの定義内容は任意である。閾値tclは、例えば、隣接する成分同士の比を定めたものであってもよく、隣接する成分同士の差を定めたものであってもよい。
 図12に示す例では、ソートされたブロックの先頭行156において、成分d0,idiv-1と成分d0,idivとの間の比がtcl倍以上になっていることから、分割可能性があると判断されたことを示す。
 次に、図13に示すように、問題分割部51は、対角成分を除くブロック内の上三角の部分161の成分における各行について、分割する可能性のある列インデックスidiv-1列目までの左側の成分行列162と、列インデックスidiv列目から右側の成分行列163とを分割できるか判断する。具体的には、問題分割部51は、各行について、左側の成分行列162と右側の成分行列163との比または差が閾値tcl以上の場合、列インデックスidiv-1列目までの左側の成分行列162を抽出する。
 例えば、tclが倍数の閾値として定義されている場合、問題分割部51は、各行について、右側の成分行列163における成分の全てが、左側の成分行列162における成分の閾値tcl倍以上か否かを判断する。そして、閾値tcl倍以上の場合、問題分割部51は、列インデックスidiv-1列目までの左側の成分行列162を抽出する。以下、抽出された成分行列が示す問題のことをサブ問題と記すこともある。なお、図13において、max[・]、および、min[・]は、それぞれ、成分の最大値および最小値を意味する。
 その後、問題分割部51は、残ったidiv行目idiv列目から右下側を抽出する。抽出された上三角の部分161の成分について、以上の処理を繰り返す。
 このように、問題分割部51が、抽出したブロックの先頭行の成分の値が昇順になるようにインデックスをソートしたブロックを生成し、隣接する成分の比または差が予め定めた閾値tclを超える場合、その隣接する左側の成分までの行を含む正方行列を分割して新たなブロックを生成する。これにより、考慮すべき要素が抽出された正方行列(ブロック)を分割することが可能になる。
 次に、問題分割を行う他の方法を説明する。次に説明する方法は、凝集型クラスタリングを利用した分割方法である。凝集型クラスタリングは、初期状態ですべての点が異なるクラスタに含まれていると想定し、クラスタ間の距離d(C,C)が最も小さいクラスタ同士CおよびCを結合する処理を繰り返して、最終的に1つのクラスタに結合する方法である。
 クラスタ間の距離を定義する方法は各種知られており、重心を必要としない方法として、最短距離法(単連結法)、最長距離法(完全連結法)、群平均法などが挙げられる。ここでは、一般的に知られた群平均法に類する方法により、分割したい問題のQUBO行列の相互作用項(非対角成分)Qij(ただし、i≠j)を用いて、問題分割を行う方法を説明する。なお、非対角成分は、距離と同様、0以上とするため、成分の絶対値を用いて分割処理が行われる。
 一般的な群平均法では、異なるクラスタ間の距離は、以下の式7に示すように、点同士の距離をクラスタの要素数で平均をとった値として算出される。なお、式7に例示する|C|および|C|は、クラスタiおよびクラスタjの要素の数を示す。
Figure JPOXMLDOC01-appb-M000006
 一方、本実施形態で用いる群平均法に類する方法では、異なるクラスタ間の変数同士の相互作用項の絶対値の平均を、結合後のクラスタ間の相互作用項の絶対値とする。具体的には、クラスタを変数のインデックスの集合とし、クラスタ間の距離の行列Dijを、以下の式8のように定義する。なお、C={i,i,…,ini-1}、C={j,j,…,jnj-1}である。また、距離Dijの添え字(m)は、更新回数を表わす。なお、D(0) ij=|Qij|である。
Figure JPOXMLDOC01-appb-M000007
 また、一般的な群平均法では、新しく結合したクラスタ(C+C)とクラスタCの距離は、以下に示す式9で算出される。
Figure JPOXMLDOC01-appb-M000008
 一方、本実施形態で用いる群平均法に類する方法では、新しく結合したクラスタ(C+C)とクラスタCの相互作用項の絶対値は、以下に示す式10で算出される。
Figure JPOXMLDOC01-appb-M000009
 問題分割部51は、各変数を結合してクラスタを作成し、クラスタを結合したときに、距離の行列を更新する処理を予め定めた条件(クラスタ数、等)を満たすまで繰り返す。
 このように、凝集型クラスタリングを利用した分割方法では、上記式8に示すように、変数のインデックスの集合であるクラスタのQUBO行列の成分の和の平均をクラスタ間の距離と定義し、問題分割部51は、この距離の近いクラスタ同士を結合して、予め定めた条件を満たすまでクラスタを結合する処理を繰り返してブロックを抽出する。これにより、予め定めた条件(例えば、分割数)になるまでQUBO行列のインデックスを集約できるため、QUBO行列を所望のブロックに分割することが可能になる。
 サブ問題最適化部52は、抽出されたブロックの各成分行列が示す問題(すなわち、各サブ問題)を定式化して最適化処理を行う。定式化および最適化の方法は、もとの組合せ最適化問題に応じて決定される。例えば、分割された問題がTSPの場合、サブ問題は、分割された地域を対象とするTSPと言える。図14は、分割されたサブ問題の例を示す説明図である。図14に示す例では、距離の行列を示す目的関数部分171が分割され、地方ごとの距離の行列172に分割されたことを示す。
 サブ問題最適化部52は、分割された行列が示す問題をそれぞれ最適化する。TSPの場合、サブ問題最適化部52は、分割された行列が示すTSP(すなわち、地方ごとに分割されたTSP)をそれぞれ最適化する。サブ問題最適化部52は、例えば、イジング計算機1にサブ問題の最適解を探索させればよい。なお、TSPの最適解をイジング計算機1に探索させる方法は広く知られており、ここでは詳細な説明は省略する。
 なお、距離の行列172に含まれる変数は、目的関数部分171に含まれる変数よりも少ないことから、各サブ問題の最適解を短時間で得ることが可能になる。
 問題結合部53は、得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題を定式化する。以下の説明では、サブ問題の最適化結果を結合した新たな組合せ最適化問題のことを、スーパー問題と記すこともある。
 スーパー問題は、最初に解こうとした組合せ最適化問題を分割したサブ問題を最適化して結合することにより生成される組合せ最適化問題である。そのため、スーパー問題を最適化した結果を、もとの組合せ最適化問題を最適化した結果とみなすことができる。
 定式化の方法は、もとの組合せ最適化問題に応じて定めておけばよい。以下、もとの組合せ最適化問題がTSPの場合について具体的に説明する。
 問題結合部53は、サブ問題で最適化した地域内の順序のうち、順序が連続する2都市を選択する。この2都市は、他の地域と接続する都市であり、地域内のスタート都市およびゴール都市に対応する。この2都市の選択方法は任意であり、問題結合部53は、例えば、ランダムに選択すればよい。なお、都市が1つしかない場合、問題結合部53は、その都市のみ選択すればよい。この場合、その都市がスタート都市およびゴール都市を兼用する。
 そして、問題結合部53は、地域ごとに選択された2都市を訪問するTSPを新たな組合せ最適化問題として定式化する。図15は、地方同士のTSPの例を示す説明図である。図15に示す例では、地域ごとに2都市が選択され、それらの都市を順に訪問する問題として定式化されることを示す。
 スーパー問題最適化部54は、定式化された新たな組合せ最適化問題(すなわち、スーパー問題)の最適化処理を行う。スーパー問題最適化部54は、問題結合部53が定式化したスーパー問題を既知の方法で最適化すればよい。具体的には、スーパー問題最適化部54は、イジング計算機1にスーパー問題の最適解を探索させればよい。
 TSPの場合、スーパー問題最適化部54は、スーパー問題の最適化処理を行った後、各地方の2都市の間に、地方内のTSPの解を挿入することで、最終的な最適解(すなわち、もとの組合せ最適化問題を最適化した結果)を導出する。図16は、各地方の解を挿入した結果の例を示す説明図である。図16に示す例は、図16に例示するスーパー問題の最適解に、各地方の最適解を挿入した例を示す。
 ここで、最適解を挿入する処理について、より詳細に説明する。図17は、最適解を挿入する処理の例を示す説明図である。ある地方の最適解181として、TSPの解の順序が(0,1,…,i,i+1,…,N-1)と得られたとする。また、2都市にi番目とi+1番目の都市が選択されたとする。ここで、全体のTSPの最適解は、一つ前の地方からこの地方の都市を巡回して、一つ後の地方へ向かうものである。そのため、一つ前の地方から繋がる都市が、i番目の都市か、i+1番目の都市かによって、地方内の巡回の経路が決定される。
 まず、一つ前の地方から繋がる都市がi番目の都市であり、一つ後の地方へ繋がる都市がi+1番目の都市であったとする。この場合、最適解182に示すように、地方のTSPの解を逆順に訪問する経路が、全体のTSPの最適解になる。一方、一つ前の地方から繋がる都市がi+1番目の都市であり、一つ後の地方へ繋がる都市がi番目の都市であったとする。この場合、最適解183に示すように、地方のTSPの解をそのままの順番に訪問する経路が、全体のTSPの最適解になる。
 出力部60は、最適化結果を出力する。最適化結果を確認できる内容であれば、出力部60が出力する内容は任意である。出力部60は、最適化結果を画面に表示してもよく、csv(Comma Separated Value )などのファイルに出力してもよい。並べ替え要素が多い場合、ファイルに出力することで、ソートなどの操作を容易に行うことが可能になる。
 図18は、出力部60が出力する内容の例を示す説明図である。図18に例示する出力内容は、TSPの出力内容を示す。ここで、並べ替えの要素(すなわち、訪問する都市)が、0,1,2,3,4,5の6種類であるとする。
 なお、図18に示す例では、要素の番号を例示しているが、要素の番号と要素名を対応付けることにより、具体的な都市や製品名を出力することが可能である。以下の出力の例でも同様である。
 図18に示す例では、出力部60が、問題種別であるTSP(巡回セールスマン問題)とともに、最終的な順番の結果を出力していることを示す。なお、TSPの解は、順番の最初と最後を繋げて、「2→1→0→3→4→5→2」のように解釈されるため、図18に例示する結果は、最適化結果の一例である。例えば、スタート地点を「2」とする代わりに「1」としてもよい。
 また、図18に示す例では、出力部60が、最終的な順番と、もとの最適化問題のQUBO行列から算出されるエネルギーを併せて出力していることを示す。このエネルギーは、小さい数ほど良い解とみなす指標として用いることができる。
 さらに、図18では、出力部60が、部分問題(サブ問題)ごとの要素数、部分問題(サブ問題)ごとの要素、および、部分問題(サブ問題)ごとの順番を出力している例を示す。図18に示す例では、それぞれ3つの変数を有する2つのサブ問題に元の問題を分割でき、それぞれのサブ問題内の変数が{0,1,2}および{3,4,5}であることを示す。さらに、サブ問題ごとの順番が、[2,1,0]および[3,4,5]であることを示す。なお、図18に示す表示態様(例えば、カッコの表示など)は例示であり、様々な方法が用いられれば良い。以下の出力の例についても同様である。
 以上、TSPを例示して、最適化部50および出力部60の動作を説明した。ただし、本実施形態の最適化装置100が対象とする組合せ最適化問題は、TSPに限定されない。次に、QAPの問題分割を上述するTSPの問題分割と比較しながら、最適化部50の他の具体的処理を説明する。図19は、TSPおよびQAPの目的関数部分を示すQUBO行列の例を示す説明図である。
 図19に例示する行列191は、TSPの目的関数の行列(目的関数部分)を示し、行列192は、QAPの目的関数の行列(目的関数部分)を示す。図7と同様、TSPの0でない成分(ブロック)193は、変数の1つめのインデックス(すなわち、変数xijにおけるi)を1ずらした箇所と、右上に現れる。また、QAPでは、QUBO行列の目的関数部分において、QAPの0でない成分(ブロック)194が行列の上三角部分に網羅的に現れる。以下の説明では、各ブロック194を、「距離」の行列と記すこともある。QAPのブロック194は、TSPのブロックと異なり、それぞれのブロック194が等しいわけではない。
 「距離」の行列のうち、成分が0でない行列は、最大で(N-1)(N-1)/2個存在する。そこで、問題分割部51は、クラスタリングを行う基準とするブロックを特定し、特定されたブロックを用いて、変数のクラスタリングを行う。
 問題分割部51が行列を特定する方法は任意である。問題分割部51は、例えば、ブロックのうち最も大きい成分を有するブロックを、基準とするブロックとして特定してもよい。他にも、問題分割部51は、例えば、ブロック内の成分の総和が最も大きいブロックを、基準とするブロックとして特定してもよい。その際、問題分割部51は、特定する際に算出したブロックに、算出した値の大きい順に順序を保持しておいてもよい。
 次に、問題分割部51は、横(i)方向と縦(j)方向のそれぞれに対してクラスタリングが可能か試行する。具体的には、問題分割部51は、変数のインデックスを入れ替えて(すなわち、xij→xji)、どちらの方向でクラスタリングができるか試行する。これにより、どちらの変数に関しても分割不可、一方の変数に関して分割可、または、両方の変数ともに分割可、のいずれかの結果が導出される。
 図20は、変数xijに対してi方向およびj方向に分割を試行した例を示す説明図である。例えば、QAPが、各地域に工場を1つずつ配置する問題であった場合、図20において、「両方分割できるケース」は、工場iおよび地域jについて、それぞれ分割できたことを意味する。また、「一方だけ分割できるケース」は、工場iおよび地域jのいずれか一方について分割できたことを意味する。
 まず、「一方だけ分割できる」という結果が導出された場合について説明する。図21は、「一方だけ分割できる」という結果が導出された場合の例を示す説明図である。QAPが、各地域に工場を1つずつ配置する問題であった場合、図21に例示する状況は、例えば、土地が地域ごとに集まっていて、どこに工場を配置するか決定する問題と言える。
 ここで、図21に例示する問題は、図15に例示するTSPの問題と同様になることが分かる。そこで、サブ問題最適化部52は、QAPのサブ問題をTSPの問題として最適化する。具体的には、サブ問題最適化部52は、分割された「距離」の行列を使用し、インデックスjのk番目のクラスタcjkごとに、変数のインデックスの順序jを決定する。
 次に、問題結合部53は、図15に例示する方法と同様、順序が隣りあう2つの要素を選択し、新たな組合せ最適化問題を定式化する。そして、スーパー問題最適化部54は、定式化された新たな組合せ最適化問題(すなわち、スーパー問題)の最適化処理を行う。具体的には、スーパー問題最適化部54は、図16に例示するように、各クラスタの2要素の間に、クラスタ内のTSPの解を挿入することで、最終的な最適解(すなわち、もとの組合せ最適化問題を最適化した結果)を導出する。
 なお、本実施形態では、スーパー問題最適化部54は、QAPの問題をTSPの問題として最適化している。これは、「距離」の行列はコストになるため、TSPを解くことによりコストを低減させる効果が期待される。
 また、1つのインデックスに対して行われた最適化の解は、インデックスjに関する単なる順番である。ただし、一般的には、インデックスjを、どのiに割り当てるかによってコストが変動する。そこで、最適化部50は、iを1ずつ変更しながら、全てのパターンについて最適化処理を実行し、最もコストが低い解を最適解とすればよい。そのため、最適化部50は、最大で、クラスタ数の2倍の都市数に関するTSPを解けばよい。
 図22は、各インデックスについて行われる最適化処理の例を示す説明図である。図22に示す例では、iの値を0,1,2,…と変更しながら、インデックスjのiへの割り当てに関する最適化処理が行われていることを示す。
 次に、「両方分割できるケース」という結果が導出された場合について説明する。図23は、「両方分割できるケース」という結果が導出された場合の例を示す説明図である。図23に示す例は、例えば、土地が地域ごとに集まっていて、物資のやり取りの多い工場が近接する場合を示す。
 「両方分割できるケース」も、「一方だけ分割できる」方法と同様に、TSPで解くことが可能である。なお、「一方だけ分割できる」場合では、図22に示すように、iを1ずつ変更しながら、全てのパターンについて最適化処理を実行した。一方、「両方分割できるケース」場合では、図23に示すように、iのクラスタごとに最適化処理を実行すればよい。
 図24は、出力部60が出力する内容の他の例を示す説明図である。図24に例示する出力内容は、QAPの出力内容を示す。図24に示す例では、6種類の要素(0~5)を割り当てる組合せ最適化問題を想定し、解を、(割り当てられる要素,割り当てる要素)を記す。また、QAPの変数xijにおけるiを割り当て要素1とし、jを割り当て要素2とする。
 図24に示す例では、要素1および要素2のいずれもクラスタリングできた場合を想定しており、出力部60が、問題種別であるQAP(二次割当問題)とともに、最終的な割り当て結果を出力していることを示す。例えば、(0,2)は、0番目の「割り当てられる要素」に、2番目の「割り当てる要素」を割り当てる、ことを示す。
 また、図24に示す例では、図18に例示する内容と同様、最終的な割り当て結果と、もとの最適化問題のQUBO行列から算出されるエネルギーを併せて出力していることを示す。このエネルギーも、小さい数ほど良い解とみなす指標として用いることができる。
 さらに、図24では、各割り当て要素について、部分問題(サブ問題)ごとの要素数、部分問題(サブ問題)ごとの要素、および、部分問題(サブ問題)ごとの順番を出力している例を示す。なお、「割り当てられる要素」(要素1)に関しては、クラスタリングのみ行われる。また、「割り当てる要素」(要素2)に関しては、TSPのように最適化するため、順番も導出されている。
 なお、片方の要素しかクラスタリングできなかった場合、例えば、割り当て要素1に関して「部分問題ごとの要素数(6)」、「部分問題ごとの要素{0,1,2,3,4,5}と表示されることになる。
 以上、QAPを例示して、最適化部50および出力部60の動作を説明した。他にも、最適化装置100は、上述する順番最適化問題を解く場合にも利用できる。次に、順番最適化問題を解く場合の最適化部50のさらに他の具体的処理を、上述するTSPおよびQAPと比較しながら説明する。
 以下、図3に例示する段取り時間が最小になるように生産計画(生産の順番)を最適化する問題(以下、生産計画段取り時間最適化問題、または、段取り時間最適化問題と記す。)を具体例に挙げて、順番最適化問題を解く方法を説明する。段取り時間は、生産する製品を切り替えるとき、設備の準備(設定変更や洗浄など)のために生産することのできない時間のことを示す。
 なお、順番最適化問題では、製品の順番の制約条件が含まれていてもよい。例えば、「製品kの後に、製品lを製造してはならない」という制約条件は、以下に示す式11で定義できる。ここで、Pはペナルティのための係数であり、正の大きな数が設定される。
Figure JPOXMLDOC01-appb-M000010
 なお、生産計画段取り時間最適化問題では、順番を入れ替えても段取り時間が変わらない場合(以下、段取り時間が対称の場合、と記す。)と、順番を入れ替えると段取り時間が変わる場合(以下、段取り時間が非対称の場合、と記す。)が存在する。
 図25は、順番最適化問題を解くアルゴリズムの概要を説明する説明図である。順番最適化問題においても、問題分割部51は、QUBO行列からブロック201を抽出する。生産計画段取り時間最適化問題の場合、ブロックは段取り時間を表わす行列になる。問題分割部51は、抽出されたブロックに含まれる段取り時間に基づいて、製品のクラスタリング202を行う。
 サブ問題最適化部52は、クラスタリングされた製品群(例えば、{0,3,7}など)が含まれる行列203が示すサブ問題を最適化する。ここでは、サブ問題最適化部52は、クラスタリングされた範囲の生産計画段取り時間最適化問題を解けばよい。問題結合部53は、得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題(スーパー問題)204を定式化する。そして、スーパー問題最適化部54は、定式化された新たな組合せ最適化問題(すなわち、スーパー問題)の最適化処理を行う。
 図25に示す例では、例えば、{0,3,7}の製品については、最適化された順序が導出されている(例えば、スタートが「0」で、ゴールが「7」である)ため、一部が最適化された順番最適化問題を最適化すればよい。すなわち、サブ問題によりクラスタ内の順番が決定され、さらにスーパー問題によりクラスタ同士の順番を決定することで、結合された解を全体の解とみなすことができる。
 図26は、段取り時間最適化問題を示すQUBO行列の例を示す説明図である。段取り時間最適化問題の場合、QUBO行列は、二次元的なワンホット条件以外に、TSPのような成分と順番の制約を表わす成分を含む。具体的には、各製品の段取り時間の情報のブロック213がQUBO行列211の対角成分に沿って現われ、順番の制約のブロック214がQUBO行列212の上三角部分に網羅的に現れる。なお、TSPの場合と異なり、段取り時間の情報のブロック213は、右上には現れない。
 なお、段取り時間が非対称の場合、段取り時間が対称の場合と比較して、分割の際に留意すべき事項が存在する。図27は、段取り時間を示す行列(ブロック)の例を示す説明図である。例えば、順番制約がある場合、禁止される順番に対応する段取り時間にペナルティとして大きな成分が設定されることが想定される。例えば、iの前にjが行われてはならない場合、Cj,iがペナルティ項になる。
 この場合、問題分割部51は、サブ問題のクラスタリングにおいて、段取り時間のうち短い成分min(Ci,j,Cj,i)をクラスタリングに使用する。なお、クラスタリングの方法には、上記TSPに示す方法と同様の方法が用いられればよい。
 次に、サブ問題最適化部52は、もとの問題の変数{0,1,2,…,N-1}から抽出したサブ問題の変数{s,s,…,sn-1}について、n個の製品の段取り時間の最適化を行う。
 具体的には、問題分割部51は、段取り時間として、もとの段取り時間の行列から、必要な成分Csisjを抽出する。さらに、問題分割部51は、QUBO行列から製品の順番の制約に関しても、サブ問題の製品間の制約に関するブロックのみ抽出する。図28は、QUBO行列から必要な成分を抽出する処理の例を示す説明図である。問題分割部51は、例えば、目的関数と順番制約とを合わせたQUBO行列221から、対角成分に沿って、サブ問題222ごとに必要な成分を抽出することにより、ブロック223を抽出してもよい。
 サブ問題最適化部52は、抽出したブロック(サブ問題)の目的関数のQUBO行列に、2次元的なワンホット条件を加えて、サブ問題の段取り時間最適化問題を解く。
 問題結合部53は、サブ問題の最適解として導出された順において、最初の製品と最後の製品とを使用して、サブ問題同士の順番を決定する。具体的には、問題結合部53は、サブ問題同士の段取り時間を、一つ前のサブ問題の最後の製品と、一つ後の最初の製品との間の段取り時間とする。順番制約についても同様に、問題結合部53は、一つ前のサブ問題の最後の製品と、一つ後の最初の製品との間とを比較して決定する。
 なお、問題結合部53は、サブ問題の定式化と同様に、もとのQUBO行列から対角成分に沿って、成分を抽出する。スーパー問題最適化部54は、抽出したスーパー問題の目的関数のQUBO行列に、二次元的なワンホット条件を加えて、スーパー問題の段取り時間最適化問題を解く。
 なお、順番の制約が課される製品同士が同じサブ問題に含まれれば、サブ問題のQUBO行列を用いて制約を満たすような最適化を行うことは可能である。一方、順番の制約が課される製品同士が異なるサブ問題に含まれた場合、制約条件が満たされない可能性がある。この場合、最適化部50は、以下のような方法で対応してもよい。
 図29は、問題を定式化する方法の例を示す説明図である。図29に示す例では、要素231と要素232の間に順番の制約があるとする。また、問題分割の結果、クラスタ233、クラスタ234およびクラスタ235が生成され、要素231はクラスタ233に含まれ、要素232はクラスタ234に含まれるとする。ここで、要素231と要素232の間の順番制約を満たすようにするため、最適化部50(例えば、問題分割部51)は、クラスタ233とクラスタ234とを結合して、要素231と要素232のいずれも含むクラスタ236を生成してもよい。そして、サブ問題最適化部52は、生成されたクラスタ236が示す問題を最適化してもよい。
 また、図30は、問題を定式化する方法の他の例を示す説明図である。図30に例示する順番制約は、図29に例示する順番制約と同様である。この場合、最適化部50(例えば、問題分割部51)は、クラスタ233を、クラスタ237、要素231およびクラスタ238に分割し、クラスタ234を、クラスタ239、要素232およびクラスタ240に分割してもよい。
 そして、スーパー問題最適化部54は、各クラスタを最適化した結果をもとに、これらを結合したスーパー問題を最適化する。具体的には、スーパー問題最適化部54は、決定されたサブ問題同士の順番に応じて生成されたスーパー問題を最適化する。
 図31は、出力部60が出力する内容の他の例を示す説明図である。図31に例示する出力内容は、順番最適化問題の出力内容を示す。図31に示す例でも、6種類の要素(0~5)を並べ替える最適化問題を想定する。図31に示す例では、出力部60が、問題種別である順番最適化問題とともに、最終的な順番の結果を出力していることを示す。
 図31に示す例でも、図18に例示する内容と同様、最終的な順番と、もとの最適化問題のQUBO行列から算出されるエネルギーを併せて出力していることを示す。このエネルギーも、小さい数ほど良い解とみなす指標として用いることができる。
 さらに、図31でも、各割り当て要素について、部分問題(サブ問題)ごとの要素数、部分問題(サブ問題)ごとの要素、および、部分問題(サブ問題)ごとの順番を出力している例を示す。
 入力部10と、モデル化部20と、ワンホット条件特定部30と、問題判別部40と、最適化部50(より具体的には、問題分割部51と、サブ問題最適化部52と、問題結合部53と、スーパー問題最適化部54)と、出力部60とは、プログラム(最適化プログラム)に従って動作するコンピュータのプロセッサ(例えば、CPU(Central Processing Unit )、GPU(Graphics Processing Unit))によって実現される。
 例えば、プログラムは、最適化装置100の記憶部(図示せず)に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、入力部10、モデル化部20、ワンホット条件特定部30、問題判別部40、最適化部50(より具体的には、問題分割部51、サブ問題最適化部52、問題結合部53、および、スーパー問題最適化部54)、および、出力部60として動作してもよい。
 また、入力部10、モデル化部20、ワンホット条件特定部30、問題判別部40、最適化部50(より具体的には、問題分割部51、サブ問題最適化部52、問題結合部53、および、スーパー問題最適化部54)、および、出力部60の各機能がSaaS(Software as a Service )形式で提供されてもよい。
 また、入力部10と、モデル化部20と、ワンホット条件特定部30と、問題判別部40と、最適化部50(より具体的には、問題分割部51と、サブ問題最適化部52と、問題結合部53と、スーパー問題最適化部54)と、出力部60とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
 また、入力部10と、モデル化部20と、ワンホット条件特定部30と、問題判別部40と、最適化部50(より具体的には、問題分割部51と、サブ問題最適化部52と、問題結合部53と、スーパー問題最適化部54)と、出力部60との各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
 次に、本実施形態の最適化装置100の動作例を説明する。図32は、本実施形態の最適化装置100の動作例を示すフローチャートである。
 問題判別部40は、QUBO行列から二次元的なワンホット条件を取り除いた行列に基づいて組合せ最適化問題の種類を判別する(ステップS11)。問題分割部51は、判別された組合せ最適化問題の種類に応じて、QUBO行列からブロックを抽出する(ステップS12)。サブ問題最適化部52は、抽出されたブロックの各成分行列が示すサブ問題の定式化を行い、最適化を行う(ステップS13)。問題結合部53は、得られたサブ問題の最適化結果を結合したスーパー問題を定式化する(ステップS14)。そして、スーパー問題最適化部54は、スーパー問題の最適化処理を行う(ステップS15)。その後、スーパー問題最適化部54は、サブ問題とスーパー問題の解を用いて、もとの解を求める。
 次に、組合せ最適化問題の種類の判別結果に応じた、より詳細な動作例を説明する。図33~36は、本実施形態の最適化装置100の他の動作例を示すフローチャートである。具体的には、図34は、順番最適化問題と判別された際の動作例を示すフローチャートである。図35は、TSPと判別された際の動作例を示すフローチャートである。図36は、QAPと判別された際の動作例を示すフローチャートである。
 まず、図32に例示するフローチャートで示すように、問題判別部40が組合せ最適化問題の種類を判別する(ステップS101)。ここでは、問題判別部40は、組合せ最適化問題の種類を、順番最適化問題、TSPおよびQAPのいずれかに判別するものとする。
 問題判別部40が組合せ最適化問題の種類を順番最適化問題と判別したとする(ステップS101における「順番最適化問題」)。このとき、問題分割部51は、1つのインデックスに関してクラスタリングを行う(図34におけるステップS111)。具体的には、問題分割部51は、並べる項目を表わすインデックスに関して変数のクラスタリングを行う。
 サブ問題最適化部52は、サブ問題の定式化を行い(ステップS112)、サブ問題の最適化処理を行う(ステップS113)。具体的には、サブ問題最適化部52は、クラスタリングによって得られた問題の一部(サブ問題)を、もとと同じ順番最適化問題として定式化し、アニーリングにより最適化処理を行う。
 次に、問題結合部53は、スーパー問題への定式化を行う(ステップS114)。具体的には、問題結合部53は、サブ問題の解として得られた順番の最初と最後の項目だけをすべてのサブ問題に関して抽出し、抽出された項目を使用してクラスタの順番を決定する問題(スーパー問題)を順番最適化問題として定式化する。
 そして、スーパー問題最適化部54は、スーパー問題の最適化処理をアニーリングにより行い(ステップS115)、サブ問題およびスーパー問題の解を結合し、出力部60は、その結果を出力する(ステップS116)。具体的には、スーパー問題最適化部54は、得られたスーパー問題の解をもとにクラスタ同士の順番を決定し、また、クラスタ内の順番をサブ問題の解によって決定することによりもとの順番最適化問題の解を作成する。
 次に、問題判別部40が組合せ最適化問題の種類をTSPと判別したとする(図33のステップS101における「TSP」)。このとき、問題分割部51は、1つのインデックスに関してクラスタリングを行う(図35におけるステップS121)。具体的には、問題分割部51は、並べる都市を表わすインデックスに関して変数のクラスタリングを行う。
 サブ問題最適化部52は、サブ問題の定式化を行い(ステップS122)、サブ問題の最適化処理を行う(ステップS123)。具体的には、サブ問題最適化部52は、クラスタリングによって得られた問題の一部(サブ問題)を、もとと同じTSPとして定式化し、アニーリングにより最適化処理を行う。
 次に、問題結合部53は、サブ問題の解からランダムに変数を選択し、スーパー問題への定式化を行う(ステップS124)。具体的には、問題結合部53は、サブ問題の解として得られた都市の並びの中で連続する2都市をすべてのサブ問題に関してランダムに抽出し、抽出された都市を使用してクラスタの順番を決定する問題(スーパー問題)をTSPとして定式化する。
 そして、スーパー問題最適化部54は、スーパー問題の最適化処理をアニーリングにより行い(ステップS125)、サブ問題およびスーパー問題の解を結合する(ステップS126)。具体的には、スーパー問題最適化部54は、クラスタ同士の順番をスーパー問題の解として決定し、また、クラスタ内の都市の順番をサブ問題の解から決定することにより、もとのTSPの解を作成する。
 このとき得られた最適解が、過去に得られた最適解の中で最も良い結果(ベスト解と記すこともある。)である場合(ステップ127におけるYes)、スーパー問題最適化部54は、そのベスト解を記録する(ステップS128)。
 その後、スーパー問題最適化部54は、規定回数繰り返したか否か判断する(ステップS129)。規定回数繰り返した場合(ステップS129におけるYes)、出力部60は、ベスト解を出力する(ステップS130)。一方、規定回数繰り返していない場合(ステップS129におけるNo)、ステップS124以降の処理が繰り返される。
 次に、問題判別部40が組合せ最適化問題の種類をQAPと判別したとする(図33のステップS101における「QAP」)。このとき、問題分割部51は、クラスタリングに用いる距離の行列を定義する(図36におけるステップS131)。また、問題分割部51は、2つのインデックスに関してクラスタリングを行う(ステップS132)。具体的には、QUBO行列を使用してTSPと同様に変数のクラスタリングを行うために、問題分割部51は、TSPでの距離にあたる量をQUBO行列から定義し、2次元配列で表わされる変数のインデックスの両方に関して変数のクラスタリングを試みる。
 両方のインデックスのクラスタリングが可能であった場合(ステップS133におけるYes)、サブ問題最適化部52は、2番目の変数のインデックスをクラスタごとにまとめてソートし(ステップS134)、ステップS135の処理に進む。具体的には、サブ問題最適化部52は、両方のインデックスに関してクラスタリングが可能か否かを判断し、両方ともクラスタリングが可能な場合には、クラスタリングした2番目の変数のインデックスを、クラスタごとに並ぶように並び替える。
 両方のインデックスのクラスタリングが可能であった場合でステップS134が行われた後、または、両方のインデックスのクラスタリングが可能でなかった場合(ステップS133におけるNo)、サブ問題最適化部52は、1番目のインデックスに関して、サブ問題をTSPとして最適化する(ステップS135)。具体的には、サブ問題最適化部52は、この時点でクラスタリングされていない変数のインデックスを、ステップS132で定義した行列(距離の行列)によってクラスタリングし、この行列からサブ問題を、QAPではなく、TSPのように最適化する。
 次に、問題結合部53は、サブ問題の解からランダムに変数を選択し、スーパー問題への定式化を行う(ステップS136)。具体的には、問題結合部53は、ステップS135で得られたサブ問題の解の並びを使用し、TSPを解いたときと同じように、サブ問題の解として得られた項目の並びの中で連続する2項目をすべてのサブ問題に関してランダムに抽出する。そして、問題結合部53は、抽出された項目を使用してクラスタの順番を決定する問題(スーパー問題)をTSPとして定式化する。
 そして、スーパー問題最適化部54は、スーパー問題の最適化処理をアニーリングにより行い(ステップS137)、サブ問題およびスーパー問題の解を結合する(ステップS138)。具体的には、スーパー問題最適化部54は、クラスタ同士の解の並びをスーパー問題の解として決定し、また、クラスタ内の項目の順番をサブ問題の解から決定することにより、もとの問題の解の並びを作成する。
 さらに、スーパー問題最適化部54は、結合した解のうち2番目のインデックスをずらしたものも解とする(ステップS139)。具体的には、スーパー問題最適化部54は、得られた解の並びを、もう一方のインデックスに関してずらしていき、より良い解を探索する。
 このとき得られた最適解が、過去に得られた最適解の中で最も良い結果(すなわち、ベスト解)である場合(ステップ140におけるYes)、スーパー問題最適化部54は、そのベスト解を記録する(ステップS141)。サブ問題の解から抽出する2項目はランダムに選ばれるため、得られる解は毎回違うと想定されるからである。
 その後、スーパー問題最適化部54は、規定回数繰り返したか否か判断する(ステップS142)。規定回数繰り返した場合(ステップS142におけるYes)、出力部60は、ベスト解を出力する(ステップS143)。一方、規定回数繰り返していない場合(ステップS142におけるNo)、ステップS136以降の処理が繰り返される。
 以上のように、本実施形態では、問題判別部40が、二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、その組合せ最適化問題の種類を判別し、最適化部50が、判別された組合せ最適化問題の種類に応じた最適化処理を行う。よって、QUBOモデル化された最適化問題に応じて適切な最適化処理を実施できる。
 例えば、シミュレーテッドアニーリングや量子アニーリングなどの装置の使用に慣れている技術者であれば、適切に問題分割をすることができる可能性は高い。しかし、問題分割を適切に行うことが困難な者は、問題分割をせずに、もとの規模(すなわち、大きな規模)の問題を、そのまま装置に解かせてしまう可能性がある。この場合、適切な最適化処理を実施することは難しい。
 また、制約条件を守るという観点においても、変数が多いことは、問題を解くことを困難にする。制約条件が含まれる組合せ最適化問題は、与えられた制約条件をすべて満たさないと得られた解が意味のある解として解釈できないという意味で、制約条件がない組合せ最適化問題よりも難しい。なお、ここでの制約条件とは、シミュレーテッドアニーリングまたは量子アニーリングによるアニーリング計算の後の解が、必ず満たすべき条件のことであり、例えば、ワンホット条件などである。
 さらに、アニーリング計算で利用するハミルトニアンの定式化においても、係数パラメータを適切に設定しないと、制約条件を満たす一方で、最適解から程遠い解が得られてしまうという問題もある。
 より詳細に説明すると、専門の技術者は、「現実の課題の多くは問題の規模が大きく、そのまま解くのは現実的ではない」と考え、問題を分割できないか思考し、また、分割した問題の解を元の問題の解になるように結合する方法を思考する。一方、一般的なユーザは、「定式化ができれば、あとはイジング計算機が計算できる」と考え、最適化問題全体をQUBOモデル化して、イジング計算機に計算を実行させる。しかし、この場合、制約条件を満たすために係数パラメータの調整が必要になるという困難性や、制約条件を満たしても最適解に近いとは限らないという問題点も内在する。
 一方、本実施形態では、最適化部50が、判別された組合せ最適化問題の種類に応じて問題分割を行う。そのため、より適切な最適化処理を実施することが可能になる。
実施形態2. 
 次に、本発明の最適化装置の第二の実施形態を説明する。第一の実施形態では、判別された組合せ最適化問題の種類に基づいてQUBO行列を分割して最適化する方法を説明した。第二の実施形態では、判別された組合せ最適化問題の種類に基づいてQUBO行列を変換し、専用のアルゴリズムに則して最適化する方法を説明する。
 図37は、本発明の最適化装置の第二の実施形態の構成例を示す説明図である。第二の実施形態の最適化装置200は、入力部10と、モデル化部20と、ワンホット条件特定部30と、問題判別部40と、最適化部70と、出力部60とを備えている。また、最適化部70は、変換部71と、最適化処理実行部72とを含む。
 すなわち、本実施形態の最適化装置200は、第一の実施形態の構成と比較し、最適化部50の代わりに最適化部70を備えている点において異なる。それ以外の構成は、第一の実施形態と同様である。
 変換部71は、判別された組合せ最適化問題の種類に基づいてQUBO行列を変換する。具体的には、判別された組合せ最適化問題の種類に応じて変換するフォーマットを予め定めておき、変換部71は、判別された種類に応じて定められたフォーマットにQUBO行列を変換する。なお、このフォーマットは、後述する最適化処理実行部72が最適化処理を実行できる態様に応じて定められる。
 例えば、組合せ最適化問題がTSPの場合、変換部71は、例えば、既存のTSPソルバが実行できるように、QUBO行列を変換すればよい。なお、QUBO行列を変換する方法は任意であり、既知の方法が用いられればよい。
 最適化処理実行部72は、変換されたフォーマットで、もとの組合せ最適化問題の最適化処理を実行する。最適化処理実行部72は、例えば、組合せ最適化問題に応じた最適化ソルバにより、最適化処理を実行してもよい。最適化処理実行部72は、例えば、最適化処理を実行する他の装置(図示せず)に対して、実行指示を行ってもよいし、最適化装置200自身で最適化処理を実行してもよい。
 入力部10と、モデル化部20と、ワンホット条件特定部30と、問題判別部40と、最適化部70(より具体的には、変換部71と、最適化処理実行部72)と、出力部60とは、プログラム(最適化プログラム)に従って動作するコンピュータのプロセッサによって実現される。
 次に、本実施形態の最適化装置200の動作例を説明する。図38は、本実施形態の最適化装置200の動作例を示すフローチャートである。なお、組合せ最適化問題の種類を判別する処理は、図32に例示するステップS11の処理と同様である。
 変換部71は、判別された組合せ最適化問題の種類に基づいて、その種類に応じて定められたフォーマットにQUBO行列を変換する(ステップS21)。そして、最適化処理実行部72は、変換されたフォーマットで組合せ最適化問題の最適化処理を実行する(ステップS22)。
 以上のように、本実施形態では、変換部71が、判別された組合せ最適化問題の種類に基づいて、その種類に応じて定められたフォーマットにQUBO行列を変換し、最適化処理実行部72は、変換されたフォーマットで組合せ最適化問題の最適化処理を実行する。そのため、第一の実施形態と同様、QUBOモデル化された最適化問題に応じて適切な最適化処理を実施できる。
実施形態3.
 次に、本発明の最適化装置の第三の実施形態を説明する。第二の実施形態では、最適化処理を行うアルゴリズムに応じてQUBO行列を変換する方法を説明した。第三の実施形態では、イジング計算機が出力した結果に対し、さらに良い解を探索する方法を説明する。本実施形態では、QUBOモデル化された組合せ最適化問題の最適化処理をそのままアニーリングマシンなどのイジング計算機で実施した場合について説明する。なお、第一の実施形態の最適化装置100および第二の実施形態の最適化装置200が出力した結果に対して、本実施形態の最適化装置が行う処理が実施されてもよい。
 図39は、本発明の最適化装置の第三の実施形態の構成例を示す説明図である。第三の実施形態の最適化装置300は、入力部10と、モデル化部20と、ワンホット条件特定部30と、問題判別部40と、最適化部80と、出力部60とを備えている。また、最適化部80は、最適化処理実行部81と、後処理部82とを含む。
 すなわち、本実施形態の最適化装置300は、第一の実施形態の構成と比較し、最適化部50の代わりに最適化部80を備えている点において異なる。それ以外の構成は、第一の実施形態と同様である。
 最適化処理実行部81は、QUBOモデル化された最適化問題を実行する。具体的には、最適化処理実行部81は、QUBOモデル化された最適化問題をイジング計算機1に実行させて最適化処理を行う。なお、本実施形態では、最適化処理実行部81は、QUBOモデル化された最適化問題そのものをイジング計算機1に実行させる。
 後処理部82は、組合せ最適化問題の種類に応じて、最適化処理の結果得られた解の後処理を行う。なお、後処理部82が行う後処理の内容は任意である。後処理部82は、例えば、制約条件を満たすように最適解を修正する処理や、より適切な解をさらに探索する処理を行ってもよい。
 上述する順番最適化問題、TSP、および、QAPは、いずれも割り当てを決める問題と言えるため、後処理部82は、例えば、割り当てを交換するという操作を後処理として行ってもよい。このとき、後処理部82は、局所探索アルゴリズム(2つの要素を交換してより良い解を探索するアルゴリズム)を用いて後処理を行ってもよい。TSPの場合に行える後処理として、例えば、2-opt法などが挙げられる。
 また、ワンホット条件を満たさなければならない問題を解いているにもかかわらず、アニーリングマシンによる解がワンホット条件を満たさないことがある。そこで、後処理部82は、例えば、非特許文献1に記載された方法を用いて、得られた解がワンホット条件を満たすように適宜0と1を調整する後処理を行ってもよい。
 入力部10と、モデル化部20と、ワンホット条件特定部30と、問題判別部40と、最適化部80(より具体的には、最適化処理実行部81と、後処理部82)と、出力部60とは、プログラム(最適化プログラム)に従って動作するコンピュータのプロセッサによって実現される。
 次に、本実施形態の最適化装置300の動作例を説明する。図40は、本実施形態の最適化装置300の動作例を示すフローチャートである。なお、組合せ最適化問題の種類を判別する処理は、図32に例示するステップS11の処理と同様である。
 最適化処理実行部81は、QUBOモデル化された最適化問題をイジング計算機に実行させて最適化処理を行う(ステップS31)。そして、後処理部82は、組合せ最適化問題の種類に応じて、最適化処理の結果得られた解の後処理を行う(ステップS32)。
 以上のように、本実施形態では、最適化処理実行部81が、QUBOモデル化された最適化問題をイジング計算機装置に実行させて最適化処理を行い、後処理部82が、組合せ最適化問題の種類に応じて、最適化処理の結果得られた解の後処理を行う。そのため、第一の実施形態と同様、QUBOモデル化された最適化問題に応じて適切な最適化処理を実施できる。
 次に、本発明の概要を説明する。図41は、本発明による最適化装置の概要を示すブロック図である。本発明による最適化装置90(例えば、最適化装置100,200,300)は、二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、その組合せ最適化問題の種類を判別する判別手段91(例えば、問題判別部40)と、判別された組合せ最適化問題の種類に応じた最適化処理を行う最適化手段92(例えば、最適化部50,70,80)とを備えている。
 そのような構成により、QUBOモデル化された最適化問題に応じて適切な最適化処理を実施できる。
 また、判別手段91は、QUBO行列から二次元的なワンホット条件が取り除かれた行列である目的関数部分の0でない成分の分布を、組合せ最適化問題の種類に応じて定められる成分の分布と比較して、組合せ最適化問題の種類を判別してもよい。
 最適化手段92は、判別された組合せ最適化問題の種類に応じて、0でない成分を含む正方行列であるブロックをQUBO行列から抽出する問題分割手段(例えば、問題分割部51)と、抽出されたブロックの各成分行列が示す問題であるサブ問題を、もとの組合せ最適化問題に応じて決定される方法により最適化を行うサブ問題最適化手段(例えば、サブ問題最適化部52)と、得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題であるスーパー問題に定式化する問題結合手段(例えば、問題結合部53)と、スーパー問題の最適化処理を行うスーパー問題最適化手段(例えば、スーパー問題最適化部54)とを含んでいてもよい。
 このとき、問題分割手段は、抽出したブロックの先頭行の成分の値が昇順になるようにインデックスをソートしたブロックを生成し、隣接する成分の比または差が予め定めた閾値(例えば、閾値tcl)を超える場合、その隣接する左側の成分までの行を含む正方行列を分割して新たなブロックを生成してもよい。
 他にも、問題分割手段は、変数のインデックスの集合であるクラスタのQUBO行列の成分の和の平均をクラスタ間の距離と定義し(例えば、上記に示す式8)、その距離の近いクラスタ同士を結合して、予め定めた条件を満たすまでクラスタを結合する処理を繰り返すことによりブロックを分割してもよい。
 また、問題結合手段は、もとの組合せ最適化問題に応じて定められる方法に応じて定式化を行ってもよい。
 一方、最適化手段は、判別された組合せ最適化問題の種類に基づいて、その種類に応じて定められたフォーマットにQUBO行列を変換する変換手段(例えば、変換部71)と、変換されたフォーマットで、組合せ最適化問題の最適化処理を実行する第一最適化処理実行手段(例えば、最適化処理実行部72)とを含んでいてもよい。
 また、最適化手段は、他の態様として、QUBOモデル化された最適化問題をイジング計算機に実行させて最適化処理を行う第二最適化処理実行手段(例えば、最適化処理実行部81)と、組合せ最適化問題の種類に応じて、最適化処理の結果得られた解の後処理を行う後処理手段(例えば、後処理部82)とを含んでいてもよい。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、当該組合せ最適化問題の種類を判別する判別手段と、
 判別された組合せ最適化問題の種類に応じた最適化処理を行う最適化手段とを備えた
 ことを特徴とする最適化装置。
(付記2)判別手段は、QUBO行列から二次元的なワンホット条件が取り除かれた行列である目的関数部分の0でない成分の分布を、組合せ最適化問題の種類に応じて定められる成分の分布と比較して、組合せ最適化問題の種類を判別する
 付記1記載の最適化装置。
(付記3)最適化手段は、
 判別された組合せ最適化問題の種類に応じて、0でない成分を含む正方行列であるブロックをQUBO行列から抽出する問題分割手段と、
 抽出された前記ブロックの各成分行列が示す問題であるサブ問題を、もとの組合せ最適化問題に応じて決定される方法により最適化を行うサブ問題最適化手段と、
 得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題であるスーパー問題に定式化する問題結合手段と、
 前記スーパー問題の最適化処理を行うスーパー問題最適化手段とを含む
 付記1または付記2記載の最適化装置。
(付記4)問題分割手段は、抽出したブロックの先頭行の成分の値が昇順になるようにインデックスをソートしたブロックを生成し、隣接する成分の比または差が予め定めた閾値を超える場合、当該隣接する左側の成分までの行を含む正方行列を分割して新たなブロックを生成する
 付記3記載の最適化装置。
(付記5)問題分割手段は、変数のインデックスの集合であるクラスタのQUBO行列の成分の和の平均をクラスタ間の距離と定義し、当該距離の近いクラスタ同士を結合して、予め定めた条件を満たすまでクラスタを結合する処理を繰り返すことによりブロックを分割する
 付記3記載の最適化装置。
(付記6)問題結合手段は、もとの組合せ最適化問題に応じて定められる方法に応じて定式化を行う
 付記3から付記5のうちのいずれか1つに記載の最適化装置。
(付記7)問題結合手段は、サブ問題で最適化したそれぞれの地域の順序のうち、順序が連続する2都市を当該地域ごとに選択し、地域ごとに選択された2都市を訪問する巡回セールスマン問題を新たな組合せ最適化問題として定式化し、
 スーパー問題最適化手段は、最適化された前記組合せ最適化問題の最適化結果に、地域ごとに最適化された最適化結果を挿入する
 付記3から付記6のうちのいずれか1つに記載の最適化装置。
(付記8)問題分割手段は、クラスタリングを行う基準とするブロックを特定し、特定されたブロックの縦方向および横方向に対してクラスタリングの可否を試行し、
 スーパー問題最適化手段は、縦方向または横方向のうちのいずれか一方のクラスタリングの試行の結果に応じて、他方のクラスタリングのインデックスの値を1ずつ変更しながら最適化処理を繰り返す
 付記7記載の最適化装置。
(付記9)問題分割手段は、製品の順番の制約に関し、QUBO行列からサブ問題の製品間の制約に関するブロックを抽出し、
 サブ問題最適化手段は、抽出されたブロックの目的関数のQUBO行列に、2次元的なワンホット条件を加えたサブ問題を最適化し、
 問題結合手段は、サブ問題の最適解として導出された順において、最初の製品と最後の製品とを使用して、サブ問題同士の順番を決定する問題として定式化し、
 スーパー問題最適化手段は、生成されたサブ問題同士の順番を決定するスーパー問題を最適化する
 付記3から付記6のうちのいずれか1つに記載の最適化装置。
(付記10)最適化手段は、
 判別された組合せ最適化問題の種類に基づいて、当該種類に応じて定められたフォーマットにQUBO行列を変換する変換手段と、
 変換されたフォーマットで、前記組合せ最適化問題の最適化処理を実行する第一最適化処理実行手段とを含む
 付記1または付記2記載の最適化装置。
(付記11)最適化手段は、
 QUBOモデル化された最適化問題をイジング計算機に実行させて最適化処理を行う第二最適化処理実行手段と、
 組合せ最適化問題の種類に応じて、最適化処理の結果得られた解の後処理を行う後処理手段とを含む
 付記1または付記2記載の最適化装置。
(付記12)二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、組合せ最適化問題の種類に応じて、0でない成分を含む正方行列であるブロックを抽出する問題分割手段と、
 抽出された前記ブロックの各成分行列が示す問題であるサブ問題を、もとの組合せ最適化問題に応じて決定される方法により最適化を行うサブ問題最適化手段と、
 得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題であるスーパー問題に定式化する問題結合手段と、
 前記スーパー問題の最適化処理を行うスーパー問題最適化手段とを備え、
 前記問題分割手段は、抽出したブロックの先頭行の成分の値が昇順になるようにインデックスをソートしたブロックを生成し、隣接する成分の比または差が予め定めた閾値を超える場合、当該隣接する左側の成分までの行を含む正方行列を分割して新たなブロックを生成する
 ことを特徴とする最適化装置。
(付記13)二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、組合せ最適化問題の種類に応じて、0でない成分を含む正方行列であるブロックを抽出する問題分割手段と、
 抽出された前記ブロックの各成分行列が示す問題であるサブ問題を、もとの組合せ最適化問題に応じて決定される方法により最適化を行うサブ問題最適化手段と、
 得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題であるスーパー問題に定式化する問題結合手段と、
 前記スーパー問題の最適化処理を行うスーパー問題最適化手段とを備え、
 前記問題分割手段は、変数のインデックスの集合であるクラスタのQUBO行列の成分の和の平均をクラスタ間の距離と定義し、当該距離の近いクラスタ同士を結合して、予め定めた条件を満たすまでクラスタを結合する処理を繰り返すことによりブロックを分割する
 ことを特徴とする最適化装置。
(付記14)コンピュータが、二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、当該組合せ最適化問題の種類を判別し、
 前記コンピュータが、判別された組合せ最適化問題の種類に応じた最適化処理を行う
 ことを特徴とする最適化方法。
(付記15)コンピュータに、
 二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、当該組合せ最適化問題の種類を判別する判別処理、および、
 判別された組合せ最適化問題の種類に応じた最適化処理を行う最適化処理
 を実行させるための最適化プログラム。
 以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2021年11月30日に出願された日本特許出願2021-194081を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1 イジング計算機
 10 入力部
 20 モデル化部
 30 ワンホット条件特定部
 40 問題判別部
 50,70,80 最適化部
 51 問題分割部
 52 サブ問題最適化部
 53 問題結合部
 54 スーパー問題最適化部
 60 出力部
 71 変換部
 72 最適化処理実行部
 81 最適化処理実行部
 82 後処理部

Claims (15)

  1.  二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、当該組合せ最適化問題の種類を判別する判別手段と、
     判別された組合せ最適化問題の種類に応じた最適化処理を行う最適化手段とを備えた
     ことを特徴とする最適化装置。
  2.  判別手段は、QUBO行列から二次元的なワンホット条件が取り除かれた行列である目的関数部分の0でない成分の分布を、組合せ最適化問題の種類に応じて定められる成分の分布と比較して、組合せ最適化問題の種類を判別する
     請求項1記載の最適化装置。
  3.  最適化手段は、
     判別された組合せ最適化問題の種類に応じて、0でない成分を含む正方行列であるブロックをQUBO行列から抽出する問題分割手段と、
     抽出された前記ブロックの各成分行列が示す問題であるサブ問題を、もとの組合せ最適化問題に応じて決定される方法により最適化を行うサブ問題最適化手段と、
     得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題であるスーパー問題に定式化する問題結合手段と、
     前記スーパー問題の最適化処理を行うスーパー問題最適化手段とを含む
     請求項1または請求項2記載の最適化装置。
  4.  問題分割手段は、抽出したブロックの先頭行の成分の値が昇順になるようにインデックスをソートしたブロックを生成し、隣接する成分の比または差が予め定めた閾値を超える場合、当該隣接する左側の成分までの行を含む正方行列を分割して新たなブロックを生成する
     請求項3記載の最適化装置。
  5.  問題分割手段は、変数のインデックスの集合であるクラスタのQUBO行列の成分の和の平均をクラスタ間の距離と定義し、当該距離の近いクラスタ同士を結合して、予め定めた条件を満たすまでクラスタを結合する処理を繰り返すことによりブロックを分割する
     請求項3記載の最適化装置。
  6.  問題結合手段は、もとの組合せ最適化問題に応じて定められる方法に応じて定式化を行う
     請求項3から請求項5のうちのいずれか1項に記載の最適化装置。
  7.  問題結合手段は、サブ問題で最適化したそれぞれの地域の順序のうち、順序が連続する2都市を当該地域ごとに選択し、地域ごとに選択された2都市を訪問する巡回セールスマン問題を新たな組合せ最適化問題として定式化し、
     スーパー問題最適化手段は、最適化された前記組合せ最適化問題の最適化結果に、地域ごとに最適化された最適化結果を挿入する
     請求項3から請求項6のうちのいずれか1項に記載の最適化装置。
  8.  問題分割手段は、クラスタリングを行う基準とするブロックを特定し、特定されたブロックの縦方向および横方向に対してクラスタリングの可否を試行し、
     スーパー問題最適化手段は、縦方向または横方向のうちのいずれか一方のクラスタリングの試行の結果に応じて、他方のクラスタリングのインデックスの値を1ずつ変更しながら最適化処理を繰り返す
     請求項7記載の最適化装置。
  9.  問題分割手段は、製品の順番の制約に関し、QUBO行列からサブ問題の製品間の制約に関するブロックを抽出し、
     サブ問題最適化手段は、抽出されたブロックの目的関数のQUBO行列に、2次元的なワンホット条件を加えたサブ問題を最適化し、
     問題結合手段は、サブ問題の最適解として導出された順において、最初の製品と最後の製品とを使用して、サブ問題同士の順番を決定する問題として定式化し、
     スーパー問題最適化手段は、生成されたサブ問題同士の順番を決定するスーパー問題を最適化する
     請求項3から請求項6のうちのいずれか1項に記載の最適化装置。
  10.  最適化手段は、
     判別された組合せ最適化問題の種類に基づいて、当該種類に応じて定められたフォーマットにQUBO行列を変換する変換手段と、
     変換されたフォーマットで、前記組合せ最適化問題の最適化処理を実行する第一最適化処理実行手段とを含む
     請求項1または請求項2記載の最適化装置。
  11.  最適化手段は、
     QUBOモデル化された最適化問題をイジング計算機に実行させて最適化処理を行う第二最適化処理実行手段と、
     組合せ最適化問題の種類に応じて、最適化処理の結果得られた解の後処理を行う後処理手段とを含む
     請求項1または請求項2記載の最適化装置。
  12.  二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、組合せ最適化問題の種類に応じて、0でない成分を含む正方行列であるブロックを抽出する問題分割手段と、
     抽出された前記ブロックの各成分行列が示す問題であるサブ問題を、もとの組合せ最適化問題に応じて決定される方法により最適化を行うサブ問題最適化手段と、
     得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題であるスーパー問題に定式化する問題結合手段と、
     前記スーパー問題の最適化処理を行うスーパー問題最適化手段とを備え、
     前記問題分割手段は、抽出したブロックの先頭行の成分の値が昇順になるようにインデックスをソートしたブロックを生成し、隣接する成分の比または差が予め定めた閾値を超える場合、当該隣接する左側の成分までの行を含む正方行列を分割して新たなブロックを生成する
     ことを特徴とする最適化装置。
  13.  二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、組合せ最適化問題の種類に応じて、0でない成分を含む正方行列であるブロックを抽出する問題分割手段と、
     抽出された前記ブロックの各成分行列が示す問題であるサブ問題を、もとの組合せ最適化問題に応じて決定される方法により最適化を行うサブ問題最適化手段と、
     得られたサブ問題の最適化結果を結合した新たな組合せ最適化問題であるスーパー問題に定式化する問題結合手段と、
     前記スーパー問題の最適化処理を行うスーパー問題最適化手段とを備え、
     前記問題分割手段は、変数のインデックスの集合であるクラスタのQUBO行列の成分の和の平均をクラスタ間の距離と定義し、当該距離の近いクラスタ同士を結合して、予め定めた条件を満たすまでクラスタを結合する処理を繰り返すことによりブロックを分割する
     ことを特徴とする最適化装置。
  14.  コンピュータが、二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、当該組合せ最適化問題の種類を判別し、
     前記コンピュータが、判別された組合せ最適化問題の種類に応じた最適化処理を行う
     ことを特徴とする最適化方法。
  15.  コンピュータに、
     二次元的なワンホット条件を制約条件として含む組合せ最適化問題をQUBOモデル化して得られるQUBO行列から、当該組合せ最適化問題の種類を判別する判別処理、および、
     判別された組合せ最適化問題の種類に応じた最適化処理を行う最適化処理
     を実行させるための最適化プログラムを記憶するプログラム記憶媒体。
PCT/JP2022/041342 2021-11-30 2022-11-07 最適化装置、最適化方法および最適化プログラム WO2023100595A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021194081 2021-11-30
JP2021-194081 2021-11-30

Publications (1)

Publication Number Publication Date
WO2023100595A1 true WO2023100595A1 (ja) 2023-06-08

Family

ID=86611966

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/041342 WO2023100595A1 (ja) 2021-11-30 2022-11-07 最適化装置、最適化方法および最適化プログラム

Country Status (1)

Country Link
WO (1) WO2023100595A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020004387A (ja) * 2018-06-20 2020-01-09 富士通株式会社 最適化問題計算プログラム及び最適化問題計算システム
WO2022091408A1 (ja) * 2020-11-02 2022-05-05 日本電気株式会社 求解方法選択装置および方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020004387A (ja) * 2018-06-20 2020-01-09 富士通株式会社 最適化問題計算プログラム及び最適化問題計算システム
WO2022091408A1 (ja) * 2020-11-02 2022-05-05 日本電気株式会社 求解方法選択装置および方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAKANO FUMIYO ET AL.: "QUBO solver for combinatorial optimization problems with constraints", IEICE TECHNICAL REPORT, vol. 119, no. 313, November 2019 (2019-11-01), pages 15 - 20, XP009546097, ISSN: 0913-5685 *

Similar Documents

Publication Publication Date Title
US6651235B2 (en) Scalable, partitioning integrated circuit layout system
US5909376A (en) Physical design automation system and process for designing integrated circuit chips using highly parallel sieve optimization with multiple "jiggles"
CN103235974A (zh) 一种提高海量空间数据处理效率的方法
US20150007120A1 (en) Clustering using n-dimensional placement
Saeed Jabal Ameli et al. Cell formation with alternative process routings and machine reliability consideration
CN112232413A (zh) 基于图神经网络与谱聚类的高维数据特征选择方法
CN112181991B (zh) 基于快速构建kd树的地球模拟系统网格重映射方法
WO2005010819A1 (en) Method for partitioning a pattern into optimized sub-patterns
Ab Rashid et al. Integrated optimization of mixed-model assembly sequence planning and line balancing using multi-objective discrete particle swarm optimization
WO2023100595A1 (ja) 最適化装置、最適化方法および最適化プログラム
US5831863A (en) Advanced modular cell placement system with wire length driven affinity system
JP2018101225A (ja) 生成装置、生成方法、及び生成プログラム
US6850936B2 (en) Data extracting method, information processing apparatus, and recording medium
Varvarezos et al. A sensitivity based approach for flexibility analysis and design of linear process systems
CN117493920A (zh) 一种数据分类方法及装置
JP2002183206A (ja) 類似オブジェクト検索方法及び類似オブジェクト検索装置
CN103984794A (zh) 一种针对软模块的固定边框的集成电路布图规划方法
Nirmal et al. Issues of K means clustering while migrating to map reduce paradigm with big data: A survey
US5892688A (en) Advanced modular cell placement system with iterative one dimensional preplacement optimization
Pal et al. Clustering based online automatic objective reduction to aid many-objective optimization
CN103140853A (zh) 在根据高级综合的蚁群优化电路设计中使用熵的方法和装置
WO1998000796A2 (en) Advanced modular cell placement system
JPH10303307A (ja) 配置方式
Chang et al. Flexible multiple-objective reinforcement learning for chip placement
KR20170085396A (ko) 스캔도서 식별을 위한 특징벡터 클러스터링 및 데이터베이스 생성 방법

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: 22901028

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023564832

Country of ref document: JP

Kind code of ref document: A