Optimization device, optimization method and optimization program
Patent Information
- Application Number
- JP2024231484
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-11-30
- Filing Date
- 2024-12-27
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2042-11-07
AI Technical Summary
【0014】 本発明によれば、QUBOモデル化された最適化問題に応じて適切な最適化処理を実施できる。
Smart Images

Figure 2025036675000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an optimization device, an optimization method, and an optimization program that perform optimization in response to a combinatorial optimization problem. [Background technology]
[0002] A combinatorial optimization problem is a problem of trying to find the best combination based on a certain index from among options related to combinations, and deriving a combination of variable values that optimizes a certain index under various constraints. Combinatorial optimization problems are problems that are applied in various situations in daily life, but due to the nature of the problem, it is known that the amount of calculations required explodes when the scale becomes large.
[0003] In order to solve such problems, various methods have been proposed in recent years for solving optimization problems using simulated annealing (hereinafter sometimes referred to as SA) or quantum annealing. For example, Patent Document 1 describes a production planning method for creating a production plan that maximizes productivity. In the method described in Patent Document 1, the objective function and constraint conditions related to the product production planning problem are formulated into a QUBO (Quadratic Unconstrained Binary Optimization) model or an Ising model, and an optimal solution is obtained using an annealing machine.
[0004] Non-Patent Document 1 describes a method for solving a constrained slot placement problem using an Ising machine. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] JP 2020-140615 A [Non-patent literature]
[0006] [Non-Patent Document 1] 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 Summary of the Invention [Problem to be solved by the invention]
[0007] The Ising model is a simple model that calculates the spin orientation of atoms that make up a crystal, and is one formulation of a combinatorial optimization problem. The QUBO model is also one formulation of a combinatorial optimization problem, and the matrix that represents the coefficients of the QUBO model is called the QUBO matrix. Because the QUBO model and the Ising model can be transformed one-to-one, combinatorial optimization problems modeled as a QUBO model can be solved by an annealing machine.
[0008] In principle, it is possible to solve a QUBO modeled combinatorial optimization problem directly using an annealing machine. However, when using a simple QUBO model for a combinatorial optimization problem, it may be difficult to obtain a solution close to the optimal solution, and it may take a long time.
[0009] In the method described in Patent Document 1, a combinatorial optimization problem, which is formulated by a time-space network model for a production plan in a production line, is converted into a QUBO model or an Ising model to derive an optimal solution. However, even when solving a QUBO model converted from a combinatorial optimization problem formulated in this way, the above-mentioned possibilities exist, and therefore a more appropriate optimization method is unclear. Therefore, it is preferable to be able to perform a more appropriate optimization process according to the QUBO modeled optimization problem.
[0010] Therefore, 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 in accordance with a QUBO modeled optimization problem. [Means for solving the problem]
[0011] The optimization device according to the present invention comprises a problem dividing means for extracting blocks, which are square matrices containing non-zero components according to the type of combinatorial optimization problem, from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem containing a two-dimensional one-hot condition as a constraint condition; a subproblem optimization means for optimizing sub-problems, which are problems indicated by each component matrix of the extracted blocks, 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 by combining the optimization results of the obtained sub-problems; and a super problem optimization means for performing optimization processing of the super problem, wherein the problem combining means selects, for each region, two cities whose order is consecutive from the order of regions optimized in the sub-problems, and formulates as a new combinatorial optimization problem a traveling salesman problem of visiting the two cities selected for each region, and the super problem optimization means inserts the optimization result optimized for each region into the optimization result of the optimized combinatorial optimization problem. Another optimization device according to the present invention includes a problem division means for extracting blocks, which are square matrices containing non-zero components, according to the type of combinatorial optimization problem from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem containing a two-dimensional one-hot condition as a constraint condition; a subproblem optimization means for optimizing subproblems, which are problems represented by each component matrix of the extracted blocks, by a method determined according to the original combinatorial optimization problem; a problem combination means for formulating a superproblem, which is a new combinatorial optimization problem that combines the optimization results of the obtained subproblems; and a superproblem optimization means for performing optimization processing of the superproblem, wherein the problem division means extracts blocks relating to constraints between products of the subproblems from the QUBO matrix with respect to constraints on the order of the products, the subproblem optimization means optimizes subproblems by adding a two-dimensional one-hot condition to the QUBO matrix of the objective function of the extracted block, the problem combination means formulates the first product and the last product in the order derived as the optimal solution of the subproblems as a problem that determines the order of the subproblems, and the superproblem optimization means optimizes the superproblem that determines the order of the generated subproblems.
[0012] The optimization method according to the present invention is characterized in that it extracts blocks, which are square matrices containing non-zero components, according to the type of combinatorial optimization problem from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem that includes a two-dimensional one-hot condition as a constraint, according to the type of combinatorial optimization problem, optimizes sub-problems, which are problems represented by each component matrix of the extracted blocks, using a method determined according to the original combinatorial optimization problem, formulates the optimization results of the obtained sub-problems into a super-problem, which is a new combinatorial optimization problem by combining them, performs optimization processing of the super-problem, and in formulating the super-problem, selects two cities for each region that are consecutive in order from the order of regions optimized in the sub-problems, formulates a traveling salesman problem of visiting the two cities selected for each region as a new combinatorial optimization problem, and in optimizing the super-problem, inserts the optimization results optimized for each region into the optimization results of the optimized combinatorial optimization problem. Another optimization method according to the present invention is characterized in that, from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem that includes a two-dimensional one-hot condition as a constraint condition, a block that is a square matrix containing non-zero components is extracted according to the type of combinatorial optimization problem, and sub-problems that are problems represented by each component matrix of the extracted block are optimized by a method determined according to the original combinatorial optimization problem, and the optimization results of the obtained sub-problems are combined to form a super-problem that is a new combinatorial optimization problem, and an optimization process for the super-problem is performed. In formulating the super-problem, a block related to constraints between products of the sub-problems is extracted from the QUBO matrix with respect to constraints on the order of the products, and a sub-problem with a two-dimensional one-hot condition added to the QUBO matrix of the objective function of the extracted block is optimized. In the order derived as the optimal solution for the sub-problem, the first product and the last product are used to formulate the problem of determining the order of the sub-problems, and the super-problem that determines the order of the generated sub-problems is optimized.
[0013] The optimization program according to the present invention has a computer execute a problem division process that extracts blocks, which are square matrices containing non-zero components, according to the type of combinatorial optimization problem from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem that includes a two-dimensional one-hot condition as a constraint condition; a subproblem optimization process that optimizes sub-problems, which are problems represented by each component matrix of the extracted blocks, by a method determined according to the original combinatorial optimization problem; a problem combination process that formulates a super problem, which is a new combinatorial optimization problem by combining the optimization results of the obtained sub-problems; and a super problem optimization process that performs optimization processing of the super problem, wherein the problem combination process selects, for each region, two cities whose order is consecutive from the order of regions optimized in the sub-problems, and formulates a traveling salesman problem of visiting the two cities selected for each region as a new combinatorial optimization problem, and wherein the super problem optimization process inserts the optimization results optimized for each region into the optimization results of the optimized combinatorial optimization problem. Another optimization program according to the present invention has a computer execute a problem division process for extracting blocks, which are square matrices containing non-zero components, from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem containing a two-dimensional one-hot condition as a constraint condition, according to the type of combinatorial optimization problem; a subproblem optimization process for optimizing subproblems, which are problems represented by each component matrix of the extracted blocks, using a method determined according to the original combinatorial optimization problem; a problem combination process for formulating a superproblem, which is a new combinatorial optimization problem that combines the optimization results of the obtained subproblems; and a superproblem optimization process for performing an optimization process for the superproblem. In the problem division process, a block related to constraints between products in the subproblems is extracted from the QUBO matrix with respect to constraints on the order of products; in the subproblem optimization process, a subproblem with a two-dimensional one-hot condition added to the QUBO matrix of the objective function of the extracted block is optimized; in the problem combination process, the first product and the last product in the order derived as the optimal solution for the subproblem are used to formulate the block as a problem that determines the order of the subproblems; and in the superproblem optimization process, the superproblem that determines the order of the generated subproblems is optimized. Effect of the Invention
[0014] According to the present invention, an appropriate optimization process can be performed according to the QUBO modeled optimization problem. [Brief description of the drawings]
[0015] [Figure 1] FIG. 1 is an explanatory diagram illustrating an example of the configuration of a first embodiment of an optimization device of the present invention. [Diagram 2] FIG. 11 is an explanatory diagram showing an example of a two-dimensional one-hot condition. [Diagram 3] FIG. 1 is an explanatory diagram illustrating an example of a sequence optimization problem. [Figure 4] FIG. 1 is an explanatory diagram showing an example of a QUBO matrix including a one-hot condition. [Diagram 5] FIG. 11 is an explanatory diagram showing another example of a QUBO matrix including a one-hot condition. [Figure 6] FIG. 13 is an explanatory diagram showing an example of the distribution of non-zero components in a permutation optimization problem. [Figure 7] FIG. 1 is an explanatory diagram showing an example of the distribution of non-zero components of a TSP. [Figure 8] FIG. 11 is an explanatory diagram showing an example of a distribution of non-zero components of a QAP. [Figure 9] FIG. 1 is an explanatory diagram showing an example of a QUBO matrix. [Figure 10] FIG. 1 is an explanatory diagram showing an example of a block extracted from a TSP QUBO matrix. [Figure 11] FIG. 11 is an explanatory diagram showing another example of a block extracted from a QUBO matrix of a TSP. [Figure 12] FIG. 11 is an explanatory diagram showing an example of clustering by sorting. [Figure 13] FIG. 11 is an explanatory diagram showing an example of clustering by sorting. [Figure 14] FIG. 13 is an explanatory diagram showing an example of divided sub-problems. [Figure 15] FIG. 1 is an explanatory diagram showing an example of a TSP between regions. [Figure 16] FIG. 13 is an explanatory diagram showing an example of the results obtained by inserting solutions for each region. [Figure 17] FIG. 11 is an explanatory diagram showing an example of a process of inserting an optimal solution. [Figure 18] FIG. 11 is an explanatory diagram showing an example of the contents output by an output unit. [Figure 19] FIG. 1 is an explanatory diagram showing an example of a QUBO matrix showing the objective function portion of a TSP and a QAP. [Figure 20] FIG. 13 is an explanatory diagram showing an example in which division is attempted in each direction for a variable. [Figure 21] FIG. 13 is an explanatory diagram showing an example in which the result "only one side can be divided" is derived. [Figure 22] FIG. 11 is an explanatory diagram showing an example of optimization processing performed for each index. [Diagram 23] FIG. 13 is an explanatory diagram showing an example in which the result "case in which both can be divided" is derived. [Figure 24] FIG. 11 is an explanatory diagram showing another example of the contents output by the output unit. [Diagram 25] FIG. 1 is an explanatory diagram illustrating an overview of an algorithm for solving a sequence optimization problem. [Figure 26] FIG. 1 is an explanatory diagram showing an example of a QUBO matrix illustrating a setup time optimization problem. [Figure 27] FIG. 13 is an explanatory diagram showing an example of a matrix indicating setup times. [Figure 28] FIG. 1 is an explanatory diagram showing an example of a process for extracting necessary components from a QUBO matrix. [Figure 29] FIG. 1 is an explanatory diagram showing an example of a method for formulating a problem. [Diagram 30] FIG. 11 is an explanatory diagram showing another example of a method for formulating a problem. [Diagram 31] FIG. 11 is an explanatory diagram showing another example of the contents output by the output unit. [Diagram 32] 4 is a flowchart illustrating an example of the operation of the optimization device according to the first embodiment. [Diagram 33] 13 is a flowchart showing another operation example of the optimization device according to the first embodiment. [Diagram 34] 13 is a flowchart showing an example of an operation when a problem is determined to be a sequence optimization problem. [Diagram 35] 13 is a flowchart showing an example of an operation when a TSP is determined. [Diagram 36] 13 is a flowchart showing an example of an operation when a QAP is identified. [Figure 37] FIG. 11 is an explanatory diagram illustrating a configuration example of a second embodiment of an optimization device according to the present invention. [Figure 38] 13 is a flowchart illustrating an example of the operation of the optimization device according to the second embodiment. [Figure 39] FIG. 13 is an explanatory diagram illustrating a configuration example of a third embodiment of an optimization device of the present invention. [Diagram 40] 13 is a flowchart illustrating an example of the operation of the optimization device according to the third embodiment. [Diagram 41] 1 is a block diagram showing an overview of an optimization device according to the present invention; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] Embodiment 1. Hereinafter, an embodiment of the present invention will be described with reference to the drawings. Fig. 1 is an explanatory diagram showing a configuration example of a first embodiment of an optimization device of the present invention. The optimization device of the embodiment shown below is a device that performs an appropriate optimization process according to a QUBO modeled optimization problem.
[0017] First, a combinatorial optimization problem that will be dealt with in the following embodiment will be described. In the following embodiment, a situation is assumed in which a problem of determining the order of things, such as the Traveling Salesman Problem (hereinafter also referred to as the TSP), or a problem of creating a one-to-one correspondence between two types of things, such as the Quadratic Assignment Problem (hereinafter also referred to as the QAP), is optimized.
[0018] It is known that in these problems, the one-hot condition is imposed on the variables to be optimized. Specifically, to solve the TSP or QAP, a two-dimensional binary (0 or 1) array x i,jWhen a variable is defined as, the one-hot condition is imposed on this variable in the horizontal (i) and vertical (j) directions. In the following explanation, such a condition is referred to as a two-dimensional one-hot condition. In other words, in a QUBO matrix, the two-dimensional one-hot condition is a part of the QUBO matrix represented by a square matrix in which non-zero elements do not overlap in the vertical and horizontal directions.
[0019] The two-dimensional one-hot condition can be formulated as the following Equations 1 and 2 for the horizontal (i) and vertical (j) directions, respectively.
[0020]
number
[0021] For example, in the case of TSP, if the order of visits is i and the location to be visited is j, then x ij is a variable (array) that indicates whether the i-th place j is visited (1) or not (0). This is a variable that indicates that a place is visited only once, and that only one place is visited at a time. Here, d j,k If is the distance between location j and location k, the objective function to be optimized (minimized) is expressed as Equation 3 below. This is because the TSP only requires combining locations that are adjacent in order. Also, in the case of the TSP, the distance from the last location to be visited to the first location to be visited is included in the objective function, so when i in Equation 3 is equal to the number of cities, i+1 should be read as 1. For example, if five locations are to be visited, i+1 in Equation 3 should be read as 1.
[0022]
number
[0023] Another example of QAP is the problem of placing one factory in each region. This is a problem of minimizing the total transportation cost (value expressed as the product of distance and flow of materials) between factories when placing one factory in each of multiple regions. In this case, if the factory is i and the region is j, then x ij is a variable (array) that indicates whether factory i exists in region j (1) or not (0). This can be said to be a variable that indicates that a certain region has only one factory, and that a certain factory has only one region.
[0024] where f i,k Let be the flow between factory i and factory k, and d j,l If we define the distance between region j and region l, the objective function to be optimized (minimized) is expressed as Equation 4 below. Unlike TSP, QAP includes not only connections between regions that are adjacent in order, but also connections with other regions in the objective function.
[0025]
number
[0026] Fig. 2 is an explanatory diagram showing an example of a two-dimensional one-hot condition. In the example shown in Fig. 2, array 101 shows an example of variables of a two-dimensional array, and array 102 shows an example of variable values that satisfy the two-dimensional one-hot condition. For example, if array 102 shown in Fig. 2 is a variable used in TSP, it indicates that location 4 is visited first, location 1 is visited second, location 3 is visited third, and location 2 is visited fourth.
[0027] In the following embodiment, a problem to which a two-dimensional one-hot condition is imposed, such as TSP or QAP, is dealt with. However, the combinatorial optimization problem to which the following embodiment deals is not limited to TSP or QAP. As long as the optimization problem is to which a two-dimensional one-hot condition as described above is imposed, it is not limited to widely known optimization problems such as TSP or QAP.
[0028] For example, a problem of minimizing the setup costs for each product when producing multiple products one at a time is also an optimization problem subject to a two-dimensional one-hot condition. This is because the setup costs (e.g., changing equipment, changing personnel, etc.) vary depending on the order of the products to be produced. In the following explanation, a problem of optimizing the order like this will be referred to as a sequence optimization problem. This problem can also be called a non-cyclic TSP.
[0029] FIG. 3 is an explanatory diagram showing an example of a sequence optimization problem. The example shown in FIG. 3 shows that when producing three types of products A, B, and C, the production time is calculated assuming not only the production time of each product but also the time required to prepare for the production of each product (setup time). As shown in the example in FIG. 3, the total production time differs depending on the order in which the products are produced, so the sequence optimization problem can be said to be a problem of optimizing the order so as to minimize this production time. For example, in the example shown in FIG. 3, if it takes a long time to set up from product A to product B, it can be said that this order should be avoided.
[0030] In this sequence optimization problem, if the production sequence is i and the product is j, then x ij is a variable (array) that indicates whether (1) or not (0) the i-th product j is produced. This can be said to be a variable that indicates that a product is produced only once, and that only one product is produced at a time.
[0031] where c j,k If we define cost as the setup cost required to change from product j to product k, the objective function to be optimized (minimized) is expressed as Equation 5 below.
[0032]
number
[0033] Another example of a combinatorial optimization problem is the problem of determining a route that minimizes travel distance when the starting city and the goal city are determined and all intermediate cities are visited once. This is different from the commonly known TSP, but it can be said to be a combinatorial optimization problem in which a two-dimensional one-hot condition is imposed.
[0034] As described above, in the following embodiment, a method for performing an appropriate optimization process according to the type of combinatorial optimization problem including a two-dimensional one-hot condition will be described.
[0035] As illustrated in FIG. 1, an 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, an optimization unit 50, and an output unit 60.
[0036] The optimization device 100 is connected to an Ising computer 1 that performs optimization processing. The Ising computer 1 is a device that searches for optimal solutions of an Ising model and a QUBO model. The Ising computer 1 is realized by, for example, an annealing machine.
[0037] The input unit 10 accepts an input of a combinatorial optimization problem. The input unit 10 may accept, for example, an input of a formulated optimization problem (objective function and constraint conditions). The input unit 10 may also accept an input of a QUBO modeled optimization problem (for example, a QUBO matrix). When the input unit 10 accepts an input of a QUBO modeled optimization problem, the optimization device 100 does not need to include the modeling unit 20.
[0038] The modeling unit 20 converts the combinatorial optimization problem into a QUBO model to obtain a QUBO matrix. The modeling unit 20 may convert the combinatorial optimization problem into a QUBO model using a known method. For example, TSP, QAP, and order optimization problems are all well-known problems that can be expressed by the QUBO model, and the method of converting into a QUBO model and obtaining a QUBO matrix is widely known, so a detailed description will be omitted here.
[0039] The one-hot condition identification unit 30 identifies two-dimensional one-hot conditions included in the QUBO matrix. Specifically, the one-hot condition identification unit 30 identifies a square matrix from the QUBO 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 from the QUBO matrix as illustrated in FIG. 2. The QUBO matrix is a matrix that represents the coefficients of a QUBO modeled combinatorial optimization problem, and corresponds to the underlined matrix in the Hamiltonian illustrated in the following formula 6.
[0040]
number
[0041] In addition, in Equation 6, the diagonal components of the QUBO matrix (Q 11 etc.) is h i The off-diagonal elements (Q 12 etc.) are J ij Corresponds to.
[0042] FIG. 4 is an explanatory diagram showing an example of a QUBO matrix including a one-hot condition. The QUBO matrix shown in FIG. 4 is a matrix in which the horizontal direction (more specifically, the variable x ij This is a QUBO matrix showing the one-hot condition of i) in , which indicates that the variables are a 4 × 4 combination. As shown in Figure 4, this QUBO matrix shows that the elements are arranged in a triangular range along the diagonal.
[0043] FIG. 5 is an explanatory diagram showing another example of a QUBO matrix including a one-hot condition. The QUBO matrix shown in FIG. 5 is a vertical matrix (more specifically, a variable x ij This is a QUBO matrix showing the one-hot condition of j) in j, which indicates that the variables are a 4 × 4 combination. As shown in Figure 5, this QUBO matrix shows that the j elements are arranged in a direction parallel to the diagonal.
[0044] Then, the one-hot condition identification unit 30 removes the components indicating the identified two-dimensional one-hot conditions from the original QUBO matrix. Note that removing here means setting the components to 0. In the following description, the matrix from which the two-dimensional one-hot conditions have been removed is referred to as the objective function part of the QUBO matrix.
[0045] The method of the one-hot condition specification unit 30 for specifying the two-dimensional one-hot condition included in the QUBO matrix and the method for specifying the objective function part are arbitrary. The one-hot condition specification unit 30 may specify the objective function part from the QUBO matrix using, for example, coefficient parameters of the two-dimensional one-hot condition predicted from the values of the diagonal elements of the QUBO matrix, or coefficient parameters that are indicated in advance.
[0046] In this case, the objective function part is generated by removing the two-dimensional one-hot condition from the QUBO matrix. However, if the part excluding the two-dimensional one-hot condition can be specified by a method, the one-hot condition specification unit 30 does not need to explicitly remove the component. The one-hot condition specification unit 30 may generate a matrix indicating a mask that specifies the components to be removed (or left), for example.
[0047] The problem discrimination unit 40 discriminates the type of combinatorial optimization problem from a matrix (i.e., the objective function part) in which the two-dimensional one-hot condition is removed from the QUBO matrix. Specifically, the problem discrimination unit 40 discriminates the type of combinatorial optimization problem based on the distribution of non-zero components of the objective function part.
[0048] The reason why the type of combinatorial optimization problem can be identified based on the distribution of non-zero components in the objective function part will be described in detail below. For example, the above-mentioned TSP and QAP are examples of problems that include two-dimensional one-hot conditions. It is also known that the TSP and QAP have different levels of difficulty, and QAP is more difficult. The inventors of the present invention have found that the difference in these problems appears in the matrix (i.e., the objective function part) excluding the two-dimensional one-hot condition in the QUBO matrix when the TSP and QAP are modeled as QUBO models. For example, the TSP has more zero components in the matrix (i.e., the objective function part) excluding the two-dimensional one-hot condition compared to the QAP.
[0049] In addition, the shape of the elements of the QUBO matrix based on the two-dimensional one-hot condition is fixed, and it is clearly stated that the two-dimensional one-hot condition includes constraints in the TSP and QAP. Therefore, by observing the distribution of non-zero elements in the objective function, the type of combinatorial optimization problem can be identified.
[0050] Furthermore, the inventors have discovered that a characteristic distribution of non-zero components appears in the objective function depending on the problem. Here, the distribution of non-zero components includes not only the distribution of each non-zero component but also the distribution of a square matrix (hereinafter sometimes referred to as a block) that includes non-zero components.
[0051] Therefore, a distribution of non-zero components may be determined in advance according to the type of combinatorial optimization problem, and the problem determination unit 40 may compare the objective function portion with the determined distribution to determine the type of optimization problem corresponding to a matching or similar distribution.
[0052] Below, we will explain the distribution of non-zero components in the above-mentioned TSP, QAP, and sequence optimization problem. First, we will explain the distribution of the sequence optimization problem. Fig. 6 is an explanatory diagram showing an example of the distribution of non-zero components in the sequence optimization problem. The example shown in Fig. 6 is an example of a case where there are four items (products) when the QUBO matrix is an upper triangular matrix. As illustrated in Fig. 6, in the case of the sequence optimization problem, the non-zero components (blocks) are the first index of the variable (i.e., the variable x ij It appears at the location where i) in is shifted by 1. In the case of a sequence optimization problem, the objective function is the sum of the costs (for example, the setup time mentioned above) associated with moving to the next item (product), so this block can be said to be a matrix of costs.
[0053] Next, the distribution in the case of TSP will be described. 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 of a case where four cities exist when the QUBO matrix is an upper triangular matrix. As shown in FIG. 7, the non-zero components (blocks) of TSP are the first index of the variable (i.e., the variable x ij It appears in the upper right corner and at the point where i) in is shifted by 1. In the case of TSP, the objective function is the total travel distance, so this block can be said to be a matrix of distances.
[0054] Next, the distribution in the case of QAP will be described. 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 of a case where four factories exist when the QUBO matrix is an upper triangular matrix. As illustrated in FIG. 8, the non-zero components (blocks) of QAP appear comprehensively in the upper triangular part of the matrix. In the case of QAP, since the objective function is the sum of distance and flow, this block can be said to include two types of matrices (distance matrix 111 and flow matrix 112).
[0055] In these three types of problems, the components in the blocks only differ by a constant multiple. However, even if the components in the blocks are different, they can still be solved in the same way as long as they are greater than 0.
[0056] Here, the relationship between the constraint conditions and the objective function in the QUBO matrix will be described. Fig. 9 is an explanatory diagram showing an example of a QUBO matrix. Matrix 121 in Fig. 9 is an example of a matrix showing the constraint conditions (two-dimensional one-hot conditions), and matrix 122 is an example of a matrix showing the objective function (for example, a collection of distance matrices).
[0057] The constraint conditions are conditions that must be satisfied, and the objective function aims to optimize (minimize) the constraint conditions while satisfying them. Therefore, in the Hamiltonian, the absolute values of the components of the QUBO matrix are larger than the components of the constraint conditions. To achieve 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 components of matrix 121 are larger than the absolute values of the components of matrix 122.
[0058] The optimization unit 50 performs optimization processing according to the type of combinatorial optimization problem that has been determined. For example, when solving a combinatorial optimization problem using 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 optimal solution in a short period of time. Therefore, the optimization unit 50 of this embodiment divides the problem according to the type of combinatorial optimization problem, thereby enabling more appropriate optimization processing to be performed.
[0059] As illustrated in FIG. 1, the optimization unit 50 includes a problem division unit 51, a subproblem optimization unit 52, a problem combination unit 53, and a super problem optimization unit .
[0060] The problem dividing unit 51 divides the QUBO matrix into problems according to the type of combinatorial optimization problem that has been determined. Problem dividing for a QUBO matrix is a process of extracting a block (i.e., a part of the objective function) that is a square matrix containing non-zero components from the QUBO matrix (more specifically, the objective function part). Note that any block may be extracted. For example, in the case of the QUBO matrix illustrated in FIG. 7, the problem dividing unit 51 may extract the upper left block (a 4×4 square matrix).
[0061] Hereinafter, the specific processing of the optimization unit 50 will be described by taking the problem division of TSP as an example. FIG. 10 is an explanatory diagram showing an example of a block extracted from the QUBO matrix of TSP. FIG. 10 illustrates a case where there are two groups of three adjacent cities. In the example shown in FIG. 10, city 0, city 1, and city 2 are adjacent, and city 3, city 4, and city 5 are adjacent. In the case of TSP, the block that is a part of the objective function can be said to be a matrix of distances. Therefore, each component of the block illustrated in FIG. 10 represents the distance between the cities.
[0062] In the example shown in Figure 10, cities 0, 1, and 2 are close to each other, so the distances (components) between these cities are small (distance = 1), and cities 3, 4, and 5 are also close to each other, so the distances (components) between each city are small (distance = 1 or 2). Similarly, the example shown in Figure 10 indicates that the distances (components) between cities that are not close to each other are large (distance is 10 or more).
[0063] Since the TSP aims to minimize the distance, it is assumed that sub-blocks 132 and 133 illustrated in FIG. 10 are not used, but sub-blocks 131 and 134 are used.
[0064] In the example shown in FIG. 10, a case is illustrated in which cities close to each other are defined as close indices. However, it is also possible that cities far from each other are defined as close indices. FIG. 11 is an explanatory diagram showing another example of a block extracted from the QUBO matrix of TSP.
[0065] The example shown in FIG. 11 is an example in which cities close to each other are not defined as close indices. In this case, the problem dividing unit 51 can sort the city indices so that the components are in ascending order. For example, by focusing on row 141 shown in FIG. 11 and rearranging the indices 0' to 5' to 0, 3, 4, 1, 5, and 2, respectively, it is possible to obtain the block shown in FIG. 10. Note that this sorting allows adjacent processes to be grouped, and therefore this sorting process can be called clustering by sorting (hereinafter, may be simply referred to as clustering).
[0066] The sorting (clustering) of components in a block will be described in more general terms below. FIG. 12 and FIG. 13 are explanatory diagrams showing an example of clustering by sorting. First, the problem dividing unit 51 extracts a block 152, which is a square matrix including components that are not 0, from a QUBO matrix (specifically, an objective function portion) 151. In the case of a TSP, the block 152 is a matrix of distances, and in the case of a TSP of N cities, all distance matrices appearing in the objective function portion are equal. Therefore, the problem dividing unit 51 may extract, for example, a square matrix from the 0th row to the N-1th row and the Nth column to the 2N-1th column, as illustrated in FIG. 12.
[0067] Next, the problem division unit 51 generates a block 155 by sorting the index so that the values of the components in the first row (row 0) 154 of the extracted block 153 are in ascending order. cl is defined in advance, and the problem division unit 51 divides adjacent components by a column index i div Note that this threshold t cl The definition of the threshold t cl may be, for example, a ratio between adjacent components, or a difference between adjacent components.
[0068] In the example shown in FIG. 12, in the top row 156 of the sorted block, component d 0,idiv-1 and component d0,idiv The ratio between t cl The fact that the number is more than double indicates that it has been determined that there is a possibility of division.
[0069] Next, as shown in FIG. 13, the problem dividing unit 51 divides each row of the components of the upper triangular portion 161 in the block excluding the diagonal components by a column index i div - The left component matrix 162 up to the first column and the column index i div 10. The problem dividing unit 51 judges whether it is possible to divide the left-side component matrix 162 and the right-side component matrix 163 from the column 101. Specifically, the problem dividing unit 51 judges whether it is possible to divide the left-side component matrix 162 and the right-side component matrix 163 for each row, and whether the ratio or difference between the left-side component matrix 162 and the right-side component matrix 163 is equal to or larger than a threshold value t cl If greater than or equal to column index i div Extract the left component matrix 162 up to the minus 1st column.
[0070] For example, t cl is defined as a multiple threshold, the problem division unit 51 divides each row by a factor of t cl Then, we determine whether the threshold t cl If the number of columns is more than twice the number of times, the problem division unit 51 div Extract the component matrix 162 on the left side up to the -1st column. Hereinafter, the problem indicated by the extracted component matrix may be referred to as a sub-problem. In addition, in Fig. 13, max[·] and min[·] respectively mean the maximum and minimum values of the components.
[0071] Then, the problem division unit 51 divides the remaining i div Line i div The lower right side is extracted from the column 161. The above process is repeated for the components of the extracted upper triangle portion 161.
[0072] In this way, the problem division unit 51 generates blocks by sorting the index 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 equal to or exceeds a predetermined threshold t clIf the number of elements exceeds , a new block is generated by dividing the square matrix including the row up to the adjacent element to the left. This makes it possible to divide the square matrix (block) from which the element to be considered is extracted.
[0073] Next, we will explain another method for dividing a problem. The method we will explain next is a division method that uses agglomerative clustering. Agglomerative clustering assumes that all points are included in different clusters in the initial state, and calculates the distance between clusters d(C i ,C j ) is the smallest cluster C i and C j This method repeats the process of combining these data into one cluster.
[0074] There are various known methods for defining the distance between clusters, and methods that do not require the center of gravity include the shortest distance method (single linkage method), the longest distance method (complete linkage method), and the group averaging method. Here, we use a method similar to the commonly known group averaging method to define the interaction term (off-diagonal component) Q of the QUBO matrix of the problem to be divided. ij (where i ≠ j) is used to explain how to divide the problem. Note that, like distance, off-diagonal elements are set to 0 or more, so the division process is performed using the absolute values of the elements.
[0075] In a general group averaging method, the distance between different clusters is calculated as the average value of the distance between points by the number of elements of the cluster, as shown in the following formula 7. Note that |C i | and |C j | denotes the number of elements in cluster i and cluster j.
[0076]
number
[0077] On the other hand, in a method similar to the group averaging method used in this embodiment, the average of the absolute values of the interaction terms between variables in different clusters is taken as the absolute value of the interaction term between the clusters after the combination. Specifically, a cluster is taken as a set of variable indexes, and a matrix D ij is defined as the following formula 8. i ={i0,i1,…,i ni-1}, C j ={j0,j1,…,j nj-1}. Also, the distance D ij The subscript (m) in indicates the number of updates. (0) ij =|Q ij |is.
[0078]
number
[0079] In addition, in the general group averaging method, the newly combined cluster (C i +C j ) and Cluster C k The distance is calculated using Equation 9 below.
[0080]
number
[0081] On the other hand, in the method similar to the group averaging method used in this embodiment, the newly combined cluster (C i +C j ) and Cluster C k The absolute value of the interaction term is calculated using Equation 10 below.
[0082]
number
[0083] The problem dividing unit 51 combines the variables to create clusters, and when the clusters are combined, repeats the process of updating the distance matrix until a predetermined condition (number of clusters, etc.) is satisfied.
[0084] In this way, in the division method using agglomerative clustering, as shown in the above formula 8, the average of the sum of the components of the QUBO matrix of the cluster, which is a set of variable indexes, is defined as the distance between clusters, and the problem division unit 51 combines clusters that are close to each other and repeats the process of combining clusters until a predetermined condition is satisfied to extract blocks. This allows the indexes of the QUBO matrix to be aggregated until a predetermined condition (for example, the number of divisions) is met, making it possible to divide the QUBO matrix into desired blocks.
[0085] The subproblem optimization unit 52 formulates the problem indicated by each component matrix of the extracted block (i.e., each subproblem) and performs optimization processing. The formulation and optimization method are determined according to the original combinatorial optimization problem. For example, if the divided problem is a TSP, the subproblem can be said to be a TSP targeting the divided region. FIG. 14 is an explanatory diagram showing an example of a divided subproblem. The example shown in FIG. 14 shows that an objective function part 171 indicating a distance matrix is divided into a distance matrix 172 for each region.
[0086] The subproblem optimization unit 52 optimizes each of the problems indicated by the divided matrices. In the case of the TSP, the subproblem optimization unit 52 optimizes each of the TSPs indicated by the divided matrices (i.e., the TSPs divided for each region). The subproblem optimization unit 52 may, for example, cause the Ising computer 1 to search for an optimal solution to the subproblem. Note that the method of causing the Ising computer 1 to search for an optimal solution to the TSP is widely known, and a detailed description thereof will be omitted here.
[0087] Since the number of variables contained in the distance matrix 172 is smaller than the number of variables contained in the objective function portion 171, it becomes possible to obtain an optimal solution for each sub-problem in a short time.
[0088] Problem combining unit 53 formulates a new combinatorial optimization problem by combining the obtained optimization results of the sub-problems. In the following description, the new combinatorial optimization problem by combining the optimization results of the sub-problems may be referred to as a super problem.
[0089] A super problem is a combinatorial optimization problem that is generated by optimizing and combining subproblems that are divided from the combinatorial optimization problem that was originally intended to be solved, and therefore the result of optimizing the super problem can be regarded as the result of optimizing the original combinatorial optimization problem.
[0090] The formulation method can be determined according to the original combinatorial optimization problem. Below, we will specifically explain the case where the original combinatorial optimization problem is TSP.
[0091] Problem combining unit 53 selects two cities whose order is consecutive from the order within the region optimized in the sub-problem. These two cities are cities that connect to other regions, and correspond to the start city and goal city within the region. The method of selecting these two cities is arbitrary, and problem combining unit 53 may select them at random, for example. Note that if there is only one city, problem combining unit 53 may select only that city. In this case, that city serves as both the start city and the goal city.
[0092] Then, the problem combination unit 53 formulates the TSP of visiting the two cities selected for each region as a new combinatorial optimization problem. Fig. 15 is an explanatory diagram showing an example of a TSP between regions. The example shown in Fig. 15 shows that two cities are selected for each region, and the problem is formulated as one in which the cities are visited in order.
[0093] The super problem optimization unit 54 performs optimization processing of the formulated new combinatorial optimization problem (i.e., the super problem). The super problem optimization unit 54 may optimize the super problem formulated by the problem combination unit 53 using a known method. Specifically, the super problem optimization unit 54 may cause the Ising computer 1 to search for an optimal solution to the super problem.
[0094] In the case of TSP, the super problem optimization unit 54 performs optimization processing of the super problem, and then derives a final optimal solution (i.e., a result of optimizing the original combinatorial optimization problem) by inserting a solution of the TSP in the region between two cities in each region. Fig. 16 is an explanatory diagram showing an example of the result of inserting the solution of 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. 16.
[0095] Here, the process of inserting the optimal solution will be described in more detail. FIG. 17 is an explanatory diagram showing an example of the process of inserting the optimal solution. Assume that the order of the TSP solution is (0, 1, ..., i, i+1, ..., N-1) as the optimal solution 181 for a certain region. Assume also that the i-th and i+1-th cities are selected as the two cities. Here, the optimal solution of the entire TSP is to travel from the previous region to the cities in this region and then to the next region. Therefore, the route of travel within the region is determined depending on whether the city connected to the previous region is the i-th city or the i+1-th city.
[0096] First, assume that the city connected to the previous region is the i-th city, and the city connected to the next region is the i+1-th city. In this case, as shown in optimal solution 182, the route that visits the regional TSP solutions in reverse order is the optimal solution for the entire TSP. On the other hand, assume that the city connected to the previous region is the i+1-th city, and the city connected to the next region is the i-th city. In this case, as shown in optimal solution 183, the route that visits the regional TSP solutions in the same order is the optimal solution for the entire TSP.
[0097] The output unit 60 outputs the optimization result. The content output by the output unit 60 is arbitrary as long as the optimization result can be confirmed. The output unit 60 may display the optimization result on a screen, or may output the optimization result to a file such as a comma separated value (csv). When there are many elements to be sorted, outputting the optimization result to a file makes it easier to perform operations such as sorting.
[0098] Fig. 18 is an explanatory diagram showing an example of the contents output by the output unit 60. The output contents shown in Fig. 18 are the output contents of a TSP. Here, it is assumed that there are six types of rearrangement elements (i.e., cities to visit), 0, 1, 2, 3, 4, and 5.
[0099] In the example shown in Fig. 18, element numbers are shown as examples, but it is possible to output specific cities and product names by associating element numbers with element names. The same applies to the following output examples.
[0100] The example shown in Fig. 18 indicates that the output unit 60 outputs the final order result together with the problem type TSP (Traveling Salesman Problem). Note that the solution to TSP is interpreted as "2→1→0→3→4→5→2" by connecting the first and last numbers in the order, so the result shown in Fig. 18 is an example of an optimization result. For example, the starting point may be "1" instead of "2".
[0101] 18 shows that the output unit 60 outputs the final order and the energy calculated from the QUBO matrix of the original optimization problem. This energy can be used as an index that indicates that the smaller the number, the better the solution.
[0102] Further, FIG. 18 shows an example in which the output unit 60 outputs the number of elements for each partial problem (sub-problem), the elements for each partial problem (sub-problem), and the order for each partial problem (sub-problem). The example shown in FIG. 18 shows that the original problem can be divided into two sub-problems, each having three variables, and the variables in each sub-problem are {0,1,2} and {3,4,5}. Furthermore, it shows that the order for each sub-problem is [2,1,0] and [3,4,5]. Note that the display mode shown in FIG. 18 (for example, displaying parentheses, etc.) is merely an example, and various methods may be used. The same applies to the following output examples.
[0103] The operations of the optimization unit 50 and the output unit 60 have been described above by taking the TSP as an example. However, the combinatorial optimization problem targeted by the optimization device 100 of this embodiment is not limited to the TSP. Next, other specific processing of the optimization unit 50 will be described while comparing the problem division of the QAP with the problem division of the TSP described above. FIG. 19 is an explanatory diagram showing an example of a QUBO matrix showing the objective function part of the TSP and the QAP.
[0104] 19, a matrix 191 shows the matrix of the objective function of the TSP (objective function part), and a matrix 192 shows the matrix of the objective function of the QAP (objective function part). As in FIG. 7, a non-zero component (block) 193 of the TSP is the first index of the variable (i.e., the variable x ij In QAP, the non-zero elements (blocks) 194 of QAP appear comprehensively in the upper triangular part of the objective function part of the QUBO matrix. In the following explanation, each block 194 may be referred to as a "distance" matrix. Unlike the blocks of TSP, the blocks 194 of QAP are not equal to each other.
[0105] Among the "distance" matrices, there are a maximum of (N-1)(N-1) / 2 matrices whose components are not 0. Therefore, problem dividing unit 51 specifies a block to be used as a reference for clustering, and performs clustering of variables using the specified block.
[0106] The method by which the problem dividing unit 51 specifies the matrix is arbitrary. For example, the problem dividing unit 51 may specify the block having the largest component among the blocks as the reference block. Alternatively, the problem dividing unit 51 may specify the block having the largest sum of components in the block as the reference block. In this case, the problem dividing unit 51 may store the order of the blocks calculated when specifying them in descending order of the calculated value.
[0107] Next, the problem dividing unit 51 tries whether clustering is possible for each of the horizontal (i) direction and the vertical (j) direction. Specifically, the problem dividing unit 51 exchanges the indexes of the variables (i.e., x ij →x ji ), and then try to find in which direction the clustering can be done. This will result in either no splitting on either variable, splitting on one variable, or splitting on both variables.
[0108] Figure 20 shows the variable x ij 20 is an explanatory diagram showing an example of attempting to divide a QAP in the i and j directions. For example, if the QAP is a problem of placing one factory in each region, in FIG. 20, "case where both can be divided" means that division was possible for both factory i and region j. Also, "case where only one can be divided" means that division was possible for either factory i or region j.
[0109] First, a case where the result "only one side can be divided" is derived will be described. Fig. 21 is an explanatory diagram showing an example of a case where the result "only one side can be divided" is derived. If the QAP is a problem of placing one factory in each region, the situation illustrated in Fig. 21 can be said to be, for example, a problem where land is gathered in each region and where to place the factory.
[0110] Here, it can be seen that the problem illustrated in FIG. 21 is similar to the TSP problem illustrated in FIG. 15. Therefore, the subproblem optimization unit 52 optimizes the QAP subproblem as a TSP problem. Specifically, the subproblem optimization unit 52 uses the divided “distance” matrix to optimize the k-th cluster c jk For each, determine the variable index order j.
[0111] Next, the problem combining unit 53 selects two elements that are adjacent in order, and formulates a new combinatorial optimization problem, similar to the method illustrated in Fig. 15. Then, the super problem optimization unit 54 performs optimization processing of the formulated new combinatorial optimization problem (i.e., the super problem). Specifically, as illustrated in Fig. 16, the super problem optimization unit 54 derives a final optimal solution (i.e., a result of optimizing the original combinatorial optimization problem) by inserting the solution of the TSP in the cluster between two elements of each cluster.
[0112] In this embodiment, the super problem optimization unit 54 optimizes the QAP problem as a TSP problem. Since the matrix of "distance" is the cost, it is expected that solving the TSP will reduce the cost.
[0113] Also, the solution of optimization performed for one index is simply a sequence related to index j. However, generally speaking, the cost varies depending on which i is assigned to index j. Therefore, the optimization unit 50 executes optimization processing for all patterns while changing i by 1, and sets the solution with the lowest cost as the optimal solution. Therefore, the optimization unit 50 only needs to solve the TSP for a maximum of twice the number of cities as the number of clusters.
[0114] Fig. 22 is an explanatory diagram showing an example of optimization processing performed for each index. The example shown in Fig. 22 shows that optimization processing is performed on the assignment of index j to i while changing the value of i to 0, 1, 2, ....
[0115] Next, a case where the result "case where both can be divided" is derived will be described. Fig. 23 is an explanatory diagram showing an example where the result "case where both can be divided" is derived. The example shown in Fig. 23 shows a case where land is concentrated in each region, and factories with a large amount of material exchange are close to each other.
[0116] The "case where both can be divided" can also be solved using TSP, just like the method for "only one side can be divided." In the "only one side can be divided" case, optimization processing was performed for all patterns while changing i by 1, as shown in Figure 22. On the other hand, in the "case where both can be divided," optimization processing can be performed for each cluster of i, as shown in Figure 23.
[0117] FIG. 24 is an explanatory diagram showing another example of the contents output by the output unit 60. The output contents shown in FIG. 24 are QAP output contents. In the example shown in FIG. 24, a combinatorial optimization problem is assumed in which six types of elements (0 to 5) are assigned, and the solution is written as (assigned elements, assigned elements). In addition, the variable x ij In this case, i is assigned element 1 and j is assigned element 2.
[0118] 24 assumes that both element 1 and element 2 can be clustered, and shows that the output unit 60 outputs the final allocation result together with the problem type QAP (Quadratic Allocation Problem). For example, (0,2) indicates that the 2nd "element to be assigned" is assigned to the 0th "element to be assigned".
[0119] In addition, the example shown in Fig. 24 shows that the final allocation result and the energy calculated from the QUBO matrix of the original optimization problem are output together, similar to the content shown in Fig. 18. This energy can also be used as an index that indicates that the smaller the number, the better the solution.
[0120] Furthermore, Fig. 24 shows an example of outputting the number of elements for each subproblem, the elements for each subproblem, and the order for each subproblem for each assigned element. Note that only clustering is performed for the "elements to be assigned" (element 1). Also, the order for the "elements to be assigned" (element 2) is derived in order to optimize it like TSP.
[0121] In addition, if only one of the elements can be clustered, for example, for assigned element 1, "Number of elements per subproblem (6)" and "Elements per subproblem {0, 1, 2, 3, 4, 5}" will be displayed.
[0122] The operations of the optimization unit 50 and the output unit 60 have been described above by taking QAP as an example. The optimization device 100 can also be used to solve the order optimization problem described above. Next, further specific processing of the optimization unit 50 when solving the order optimization problem will be described in comparison with the TSP and QAP described above.
[0123] Below, we explain how to solve a sequence optimization problem by taking as a concrete example the problem of optimizing a production plan (production sequence) so as to minimize the setup time shown in Figure 3 (hereinafter referred to as the production plan setup time optimization problem or the setup time optimization problem). Setup time refers to the time during which production is not possible due to equipment preparation (setting changes, cleaning, etc.) when switching between products to be produced.
[0124] In addition, the sequence optimization problem may include a constraint on the order of products. For example, a constraint that "product l must not be manufactured after product k" can be defined by the following formula 11. Here, P is a coefficient for penalty and is set to a large positive number.
[0125]
number
[0126] In the production plan setup time optimization problem, there are cases where the setup time does not change even if the order is changed (hereinafter referred to as the case where the setup time is symmetric), and cases where the setup time changes when the order is changed (hereinafter referred to as the case where the setup time is asymmetric).
[0127] 25 is an explanatory diagram for explaining an outline of an algorithm for solving a sequence optimization problem. In the sequence optimization problem, too, the problem dividing unit 51 extracts a block 201 from a QUBO matrix. In the case of a production planning setup time optimization problem, the block becomes a matrix representing the setup time. The problem dividing unit 51 performs clustering 202 of products based on the setup times included in the extracted blocks.
[0128] The sub-problem optimization unit 52 optimizes the sub-problems indicated by the matrix 203 including the clustered product groups (e.g., {0, 3, 7}). Here, the sub-problem optimization unit 52 only needs to solve the production plan setup time optimization problem for the clustered range. The problem combining unit 53 formulates a new combinatorial optimization problem (super problem) 204 that combines the optimization results of the obtained sub-problems. Then, the super problem optimization unit 54 performs optimization processing of the formulated new combinatorial optimization problem (i.e., the super problem).
[0129] In the example shown in Fig. 25, for example, an optimized order has been derived for the products {0,3,7} (for example, the start is "0" and the goal is "7"), so it is sufficient to optimize the partially optimized order optimization problem. That is, the order within a cluster is determined by a sub-problem, and the order between clusters is further determined by a super-problem, and the combined solution can be regarded as the overall solution.
[0130] FIG. 26 is an explanatory diagram showing an example of a QUBO matrix showing a setup time optimization problem. In the case of a setup time optimization problem, the QUBO matrix includes a TSP-like component and a component representing a sequence constraint in addition to a two-dimensional one-hot condition. Specifically, a block 213 of information on the setup time of each product appears along the diagonal components of the QUBO matrix 211, and a block 214 of sequence constraints appears comprehensively in the upper triangular part of the QUBO matrix 212. Note that, unlike the case of TSP, the block 213 of information on the setup time does not appear in the upper right corner.
[0131] When setup times are asymmetric, there are some points to keep in mind when dividing the setup times, compared to when the setup times are symmetric. FIG. 27 is an explanatory diagram showing an example of a matrix (block) indicating setup times. For example, when there is a sequence constraint, it is expected that a large component is set as a penalty to the setup times corresponding to prohibited sequences. For example, when j must not be performed before i, C j,i is the penalty term.
[0132] In this case, the problem dividing unit 51 clusters the sub-problems by dividing the shortest component of the setup time min(C i,j ,C j,i ) is used for clustering. Note that the clustering method may be the same as the method shown in the above TSP.
[0133] Next, the subproblem optimization unit 52 optimizes the subproblem variables {s0, s1, ..., s n-1}, optimize the setup time for n products.
[0134] Specifically, the problem dividing unit 51 divides the necessary components C si , sj Furthermore, the problem dividing unit 51 extracts only blocks related to constraints between products of sub-problems with respect to constraints on the order of products from the QUBO matrix. FIG. 28 is an explanatory diagram showing an example of a process for extracting necessary components from a QUBO matrix. The problem dividing unit 51 may extract blocks 223 by extracting necessary components for each sub-problem 222 along the diagonal components from a QUBO matrix 221 that combines an objective function and an order constraint, for example.
[0135] 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 setup time optimization problem of the sub-problem.
[0136] The problem combining unit 53 uses the first and last products in the order derived as optimal solutions to the subproblems to determine the order of the subproblems. Specifically, the problem combining unit 53 sets the setup time between the subproblems as the setup time between the last product of the previous subproblem and the first product of the next subproblem. Similarly, the problem combining unit 53 determines the order constraint by comparing the time between the last product of the previous subproblem and the first product of the next subproblem.
[0137] The problem combining unit 53 extracts components along the diagonal elements from the original QUBO matrix in the same manner as in formulating the subproblems. The super problem optimization unit 54 adds a two-dimensional one-hot condition to the QUBO matrix of the objective function of the extracted super problem, and solves the setup time optimization problem of the super problem.
[0138] If the products on which the order constraints are imposed are included in the same subproblem, it is possible to perform optimization to satisfy the constraints using the QUBO matrix of the subproblem. On the other hand, if the products on which the order constraints are imposed are included in different subproblems, the constraint conditions may not be satisfied. In this case, the optimization unit 50 may respond in the following manner.
[0139] FIG. 29 is an explanatory diagram showing an example of a method for formulating a problem. In the example shown in FIG. 29, it is assumed that there is an order constraint between element 231 and element 232. Furthermore, it is assumed that as a result of the problem division, clusters 233, 234, and 235 are generated, element 231 is included in cluster 233, and element 232 is included in cluster 234. Here, in order to satisfy the order constraint between element 231 and element 232, optimization unit 50 (for example, problem division unit 51) may combine cluster 233 and cluster 234 to generate cluster 236 including both element 231 and element 232. Then, subproblem optimization unit 52 may optimize the problem indicated by the generated cluster 236.
[0140] Moreover, Fig. 30 is an explanatory diagram showing another example of a method for formulating a problem. The order constraint illustrated in Fig. 30 is similar to the order constraint illustrated in Fig. 29. In this case, the optimization unit 50 (for example, the problem division unit 51) may divide the cluster 233 into the cluster 237, the element 231, and the cluster 238, and divide the cluster 234 into the cluster 239, the element 232, and the cluster 240.
[0141] Then, the super problem optimization unit 54 optimizes a super problem that combines the clusters based on the results of optimizing each cluster. Specifically, the super problem optimization unit 54 optimizes the super problem generated according to the determined order of the sub-problems.
[0142] Fig. 31 is an explanatory diagram showing another example of the contents output by the output unit 60. The output contents shown in Fig. 31 are for an order optimization problem. In the example shown in Fig. 31, an optimization problem of rearranging six types of elements (0 to 5) is also assumed. The example shown in Fig. 31 shows that the output unit 60 is outputting the final order result together with the order optimization problem, which is the problem type.
[0143] The example shown in Figure 31 also shows that the final order and the energy calculated from the QUBO matrix of the original optimization problem are output together, as in the example shown in Figure 18. This energy can also be used as an index that indicates that the smaller the number, the better the solution.
[0144] Furthermore, FIG. 31 also shows an example in which the number of elements for each partial problem (sub-problem), the elements for each partial problem (sub-problem), and the order for each partial problem (sub-problem) are output for each assigned element.
[0145] The input unit 10, the modeling unit 20, the one-hot condition identification unit 30, the problem discrimination 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 are realized by a computer processor (e.g., a CPU (Central Processing Unit), a GPU (Graphics Processing Unit)) that operates according to a program (optimization program).
[0146] For example, the program may be stored in a memory unit (not shown) of the optimization device 100, and the processor may read the program and operate as the input unit 10, the modeling unit 20, the one-hot condition identification unit 30, the problem discrimination 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 in accordance with the program.
[0147] In addition, each function of the input unit 10, the modeling unit 20, the one-hot condition identification unit 30, the problem discrimination 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 SaaS (Software as a Service) format.
[0148] Furthermore, the input unit 10, the modeling unit 20, the one-hot condition identification unit 30, the problem discrimination 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 each be realized by dedicated hardware. Furthermore, some or all of the components of each device may be realized by a general-purpose or dedicated circuit, processor, or a combination of these. These may be configured by a single chip, or may be configured by multiple chips connected via a bus. Some or all of the components of each device may be realized by a combination of the above-mentioned circuits, etc., and a program.
[0149] Furthermore, when some or all of the components of the input unit 10, the modeling unit 20, the one-hot condition identification unit 30, the problem discrimination 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 are realized by a plurality of information processing devices, circuits, etc., the plurality of information processing devices, circuits, etc. may be centrally arranged or distributed. For example, the information processing devices, circuits, etc. may be realized as a client-server system, a cloud computing system, etc., each of which is connected via a communication network.
[0150] Next, a description will be given of an example of the operation of the optimization device 100 of this embodiment. Fig. 32 is a flowchart showing an example of the operation of the optimization device 100 of this embodiment.
[0151] The problem discrimination unit 40 discriminates the type of combinatorial optimization problem based on a matrix obtained by removing two-dimensional one-hot conditions from the QUBO matrix (step S11). The problem division unit 51 extracts blocks from the QUBO matrix according to the discriminated type of combinatorial optimization problem (step S12). The subproblem optimization unit 52 formulates subproblems indicated by each component matrix of the extracted blocks and performs optimization (step S13). The problem combination unit 53 formulates a super problem that combines the optimization results of the obtained subproblems (step S14). Then, the super problem optimization unit 54 performs optimization processing of the super problem (step S15). After that, the super problem optimization unit 54 uses the solutions of the subproblems and the super problem to find the original solution.
[0152] Next, a more detailed operation example according to the determination result of the type of combinatorial optimization problem will be described. Figs. 33 to 36 are flowcharts showing other operation examples of the optimization device 100 of this embodiment. Specifically, Fig. 34 is a flowchart showing an operation example when the problem is determined to be a sequence optimization problem. Fig. 35 is a flowchart showing an operation example when the problem is determined to be a TSP. Fig. 36 is a flowchart showing an operation example when the problem is determined to be a QAP.
[0153] First, as shown in the flowchart of Fig. 32, the problem determination unit 40 determines the type of the combinatorial optimization problem (step S101). Here, it is assumed that the problem determination unit 40 determines the type of the combinatorial optimization problem to be any one of a sequential optimization problem, a TSP, and a QAP.
[0154] It is assumed that the problem determination unit 40 determines that the type of the combinatorial optimization problem is an order optimization problem ("Order Optimization Problem" in step S101). At this time, the problem division unit 51 performs clustering for one index (step S111 in FIG. 34). Specifically, the problem division unit 51 performs clustering of variables for an index representing an item to be arranged.
[0155] The sub-problem optimization unit 52 formulates the sub-problems (step S112) and performs an optimization process for the sub-problems (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 an optimization process by annealing.
[0156] Next, the problem combination unit 53 formulates the problem into a super problem (step S114). Specifically, the problem combination unit 53 extracts only the first and last items in the order obtained as the solutions of the sub-problems for all the sub-problems, and formulates a problem (super problem) of determining the order of clusters using the extracted items as an order optimization problem.
[0157] Then, the super problem optimization unit 54 performs optimization processing of the super problem by annealing (step S115), combines the solutions of the sub-problems and the super problem, and the output unit 60 outputs the result (step S116). Specifically, the super problem optimization unit 54 determines the order of the clusters based on the obtained solution of the super problem, and also creates a solution to the original order optimization problem by determining the order within the clusters based on the solutions of the sub-problems.
[0158] Next, it is assumed that the problem determination unit 40 determines that the type of the combinatorial optimization problem is TSP ("TSP" in step S101 in FIG. 33). At this time, the problem division unit 51 performs clustering for one index (step S121 in FIG. 35). Specifically, the problem division unit 51 performs clustering of variables for an index representing the cities to be arranged.
[0159] The sub-problem optimization unit 52 formulates the sub-problem (step S122) and performs an optimization process for 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 an optimization process by annealing.
[0160] Next, the problem combining unit 53 randomly selects variables from the solutions of the sub-problems and formulates them into a super problem (step S124). Specifically, the problem combining unit 53 randomly extracts two adjacent cities from the sequences of cities obtained as the solutions of the sub-problems for all the sub-problems, and formulates a problem (super problem) of determining the order of clusters using the extracted cities as a TSP.
[0161] Then, the super problem optimization unit 54 performs an optimization process of the super problem by annealing (step S125), and combines the solutions of the sub-problems and the super problem (step S126). Specifically, the super problem optimization unit 54 creates a solution to the original TSP by determining the order of the clusters as the solution of the super problem, and determining the order of the cities in the clusters from the solutions of the sub-problems.
[0162] If the optimal solution obtained at this time is the best result (sometimes referred to as the best solution) among the optimal solutions obtained in the past (Yes in step S127), the super problem optimization unit 54 records the best solution (step S128).
[0163] Thereafter, the super problem optimization unit 54 judges whether or not the specified number of repetitions have been performed (step S129). If the specified number of repetitions have been performed (Yes in step S129), the output unit 60 outputs the best solution (step S130). On the other hand, if the specified number of repetitions have not been performed (No in step S129), the processing from step S124 onwards is repeated.
[0164] Next, it is assumed that the problem determination unit 40 determines that the type of the combinatorial optimization problem is QAP ("QAP" in step S101 in FIG. 33). At this time, the problem division unit 51 defines a distance matrix to be used for clustering (step S131 in FIG. 36). The problem division unit 51 also performs clustering for two indexes (step S132). Specifically, in order to perform clustering of variables in the same manner as TSP using a QUBO matrix, the problem division unit 51 defines an amount equivalent to the distance in TSP from the QUBO matrix, and attempts clustering of variables for both indexes of the variables represented by a two-dimensional array.
[0165] If clustering of both indexes is possible (Yes in step S133), subproblem optimization unit 52 sorts the indexes of the second variable by cluster (step S134) and proceeds to the process of step S135. Specifically, subproblem optimization unit 52 determines whether or not clustering is possible for both indexes, and if clustering is possible for both, rearranges the clustered indexes of the second variable so that they are arranged by cluster.
[0166] After step S134 is performed when clustering of both indexes is possible, or when clustering of both indexes is not possible (No in step S133), subproblem optimization unit 52 optimizes the subproblem as a TSP for the first index (step S135). Specifically, subproblem optimization unit 52 clusters the indexes of variables that are not clustered at this point in time using the matrix (distance matrix) defined in step S132, and optimizes the subproblem from this matrix as a TSP rather than a QAP.
[0167] Next, the problem combination unit 53 randomly selects variables from the solutions of the sub-problems and formulates them into a super problem (step S136). Specifically, the problem combination unit 53 uses the sequence of solutions of the sub-problems obtained in step S135, and randomly extracts two consecutive items from the sequence of items obtained as the solutions of the sub-problems for all the sub-problems, in the same way as when solving the TSP. Then, the problem combination unit 53 formulates a problem (super problem) for determining the order of clusters using the extracted items as the TSP.
[0168] Then, the super problem optimization unit 54 performs an optimization process of the super problem by annealing (step S137), and combines the solutions of the sub-problems and the super problem (step S138). Specifically, the super problem optimization unit 54 determines the order of the solutions of the clusters as the solution of the super problem, and also creates the order of the solutions of the original problem by determining the order of the items in the cluster from the solutions of the sub-problems.
[0169] Furthermore, the super problem optimization unit 54 also determines the combined solution with the second index shifted as a solution (step S139). Specifically, the super problem optimization unit 54 shifts the arrangement of the obtained solutions with respect to the other index to search for a better solution.
[0170] If the optimal solution obtained at this time is the best result (i.e., the best solution) among the optimal solutions obtained in the past (Yes in step S140), the super problem optimization unit 54 records the best solution (step S141). This is because the two items extracted from the solution of the sub-problem are selected randomly, and it is assumed that the obtained solution will be different each time.
[0171] After that, the super problem optimization unit 54 judges whether or not the specified number of repetitions have been performed (step S142). If the specified number of repetitions have been performed (Yes in step S142), the output unit 60 outputs the best solution (step S143). On the other hand, if the specified number of repetitions have not been performed (No in step S142), the processing from step S136 onwards is repeated.
[0172] As described above, in this embodiment, the problem discrimination unit 40 discriminates the type of combinatorial optimization problem from the QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint condition, and the optimization unit 50 performs optimization processing according to the discriminated type of combinatorial optimization problem. Therefore, it is possible to perform an appropriate optimization processing according to the QUBO modeled optimization problem.
[0173] For example, engineers who are familiar with using equipment such as simulated annealing or quantum annealing are likely to be able to divide the problem appropriately. However, those who have difficulty dividing the problem appropriately may not divide the problem and may have the equipment solve the problem of the original scale (i.e., large scale) as it is. In this case, it is difficult to perform appropriate optimization processing.
[0174] Also, from the viewpoint of observing constraints, having many variables makes it difficult to solve the problem. Combinatorial optimization problems that include constraints are more difficult than those without constraints, in the sense that the obtained solution cannot be interpreted as a meaningful solution unless all the given constraints are satisfied. Note that the constraints here refer to conditions that must be satisfied by the solution after the annealing calculation by simulated annealing or quantum annealing, such as the one-hot condition.
[0175] Furthermore, in formulating the Hamiltonian used in the annealing calculation, if the coefficient parameters are not set appropriately, there is a problem that a solution that satisfies the constraints may be obtained but is far from the optimal solution.
[0176] To explain in more detail, specialized engineers think that "many real-world problems are large in scale, and it is not realistic to solve them as is," and consider whether the problem can be divided, and also consider how to combine the solutions of the divided problems to form a solution to the original problem. On the other hand, general users think that "if the problem can be formulated, the rest can be calculated by an Ising computer," and turn the entire optimization problem into a QUBO model and have an Ising computer perform the calculation. However, in this case, there are inherent problems such as the difficulty of having to adjust the coefficient parameters to satisfy the constraints, and the fact that satisfying the constraints does not necessarily mean that the solution is close to the optimal solution.
[0177] On the other hand, in this embodiment, the optimization unit 50 divides the problem according to the determined type of combinatorial optimization problem, which makes it possible to perform a more appropriate optimization process.
[0178] Embodiment 2. Next, a second embodiment of the optimization device of the present invention will be described. In the first embodiment, a method for dividing and optimizing a QUBO matrix based on the type of combinatorial optimization problem determined is described. In the second embodiment, a method for converting a QUBO matrix based on the type of combinatorial optimization problem determined and optimizing it in accordance with a dedicated algorithm is described.
[0179] 37 is an explanatory diagram showing a configuration example of a second embodiment of an optimization device of the present invention. An 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 discrimination unit 40, an optimization unit 70, and an output unit 60. The optimization unit 70 includes a conversion unit 71 and an optimization process execution unit 72.
[0180] That is, 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. The other configurations are the same as those of the first embodiment.
[0181] The conversion unit 71 converts the QUBO matrix based on the type of the determined combinatorial optimization problem. Specifically, a format to be converted is determined in advance according to the type of the determined combinatorial optimization problem, and the conversion unit 71 converts the QUBO matrix into the format determined according to the determined type. Note that this format is determined according to the mode in which the optimization process execution unit 72 described later can execute the optimization process.
[0182] For example, when the combinatorial optimization problem is a TSP, the conversion unit 71 may convert the QUBO matrix so that an existing TSP solver can be executed. Note that any method may be used to convert the QUBO matrix, and any known method may be used.
[0183] The optimization process execution unit 72 executes the optimization process of the original combinatorial optimization problem in the converted format. The optimization process execution unit 72 may execute the optimization process, for example, by an optimization solver according to the combinatorial optimization problem. The optimization process execution unit 72 may, for example, issue an execution instruction to another device (not shown) that executes the optimization process, or the optimization device 200 may execute the optimization process itself.
[0184] The input unit 10, the modeling unit 20, the one-hot condition identification unit 30, the problem discrimination unit 40, the optimization unit 70 (more specifically, the conversion unit 71 and the optimization process execution unit 72), and the output unit 60 are realized by a computer processor that operates according to a program (optimization program).
[0185] Next, an example of the operation of the optimization device 200 of this embodiment will be described. Fig. 38 is a flowchart showing an example of the operation of the optimization device 200 of this embodiment. Note that the process of determining the type of the combinatorial optimization problem is similar to the process of step S11 illustrated in Fig. 32.
[0186] The conversion unit 71 converts the QUBO matrix into a format determined according to the type of the combinatorial optimization problem (step S21). Then, the optimization process execution unit 72 executes the optimization process of the combinatorial optimization problem in the converted format (step S22).
[0187] As described above, in this embodiment, the conversion unit 71 converts the QUBO matrix into a format determined according to the type of the determined combinatorial optimization problem, and the optimization process execution unit 72 executes the optimization process of the combinatorial optimization problem in the converted format. Therefore, as in the first embodiment, an appropriate optimization process can be executed according to the QUBO modeled optimization problem.
[0188] Embodiment 3. Next, a third embodiment of the optimization device of the present invention will be described. In the second embodiment, a method of converting a QUBO matrix according to an algorithm for performing optimization processing will be described. In the third embodiment, a method of searching for a better solution to the result output by an Ising computer will be described. In this embodiment, a case will be described in which the optimization processing of a QUBO modeled combinatorial optimization problem is directly performed by an Ising computer such as an annealing machine. Note that the processing performed by the optimization device of this 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.
[0189] 39 is an explanatory diagram showing a configuration example of a third embodiment of an optimization device of the present invention. An 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 discrimination unit 40, an optimization unit 80, and an output unit 60. The optimization unit 80 includes an optimization process execution unit 81 and a post-processing unit 82.
[0190] That is, 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.
[0191] The optimization process execution unit 81 executes the QUBO modeled optimization problem. Specifically, the optimization process execution unit 81 executes the QUBO modeled optimization problem in the Ising computer 1 to perform the optimization process. Note that in this embodiment, the optimization process execution unit 81 executes the QUBO modeled optimization problem itself in the Ising computer 1.
[0192] The post-processing unit 82 performs post-processing of the solution obtained as a result of the optimization processing according to the type of combinatorial optimization problem. The content of the post-processing performed by the post-processing unit 82 is arbitrary. For example, the post-processing unit 82 may 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.
[0193] Since the above-mentioned order optimization problem, TSP, and QAP can all be considered problems for determining allocations, the post-processing unit 82 may perform, for example, an operation of exchanging allocations as post-processing. In this case, the post-processing unit 82 may perform post-processing using a local search algorithm (an algorithm for searching for a better solution by exchanging two elements). For example, the 2-opt method can be used as post-processing in the case of TSP.
[0194] In addition, even if a problem that must satisfy the one-hot condition is being solved, the solution obtained by the annealing machine may not satisfy the one-hot condition. Therefore, the post-processing unit 82 may perform post-processing to adjust 0 and 1 as appropriate so that the obtained solution satisfies the one-hot condition, for example, using the method described in Non-Patent Document 1.
[0195] The input unit 10, the modeling unit 20, the one-hot condition identification unit 30, the problem discrimination unit 40, the optimization unit 80 (more specifically, the optimization process execution unit 81 and the post-processing unit 82), and the output unit 60 are realized by a computer processor that operates according to a program (optimization program).
[0196] Next, an example of the operation of the optimization device 300 of this embodiment will be described. Fig. 40 is a flowchart showing an example of the operation of the optimization device 300 of this embodiment. Note that the process of determining the type of the combinatorial optimization problem is similar to the process of step S11 illustrated in Fig. 32.
[0197] The optimization process execution unit 81 performs optimization processing by having an Ising computer 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).
[0198] As described above, in this embodiment, the optimization process execution unit 81 executes the QUBO modeled optimization problem on the Ising computer device to perform the optimization process, and 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. Therefore, as in the first embodiment, an appropriate optimization process can be performed according to the QUBO modeled optimization problem.
[0199] Next, an overview of the present invention will be described. Fig. 41 is a block diagram showing an overview of an optimization device according to the present invention. An optimization device 90 according to the present invention (for example, optimization devices 100, 200, 300) includes a discrimination means 91 (for example, problem discrimination unit 40) that discriminates the type of a 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 condition, and an optimization means 92 (for example, optimization units 50, 70, 80) that performs optimization processing according to the discriminated type of the combinatorial optimization problem.
[0200] With such a configuration, appropriate optimization processing can be performed according to the QUBO modeled optimization problem.
[0201] In addition, the discrimination means 91 may discriminate the type of combinatorial optimization problem by comparing the distribution of 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, with the distribution of components determined according to the type of combinatorial optimization problem.
[0202] The optimization means 92 may include problem division means (e.g., problem division unit 51) that extracts blocks, which are square matrices containing non-zero components, from the QUBO matrix according to the type of combinatorial optimization problem determined, sub-problem optimization means (e.g., sub-problem optimization unit 52) that optimizes sub-problems, which are problems represented by each component matrix of the extracted blocks, by a method determined according to the original combinatorial optimization problem, problem combination means (e.g., problem combination unit 53) that formulates a super-problem, which is a new combinatorial optimization problem by combining the optimization results of the obtained sub-problems, and super-problem optimization means (e.g., super-problem optimization unit 54) that performs optimization processing of the super-problem.
[0203] At this time, the problem division means generates blocks by sorting the index so that the values of the components in the first row of the extracted blocks are in ascending order, and sorts the blocks so that the ratio or difference of adjacent components is equal to or exceeds a predetermined threshold (for example, a threshold t cl ), a new block may be generated by splitting the square matrix containing the rows up to the adjacent left element.
[0204] Alternatively, the problem division means may define the average of the sum of the components of the QUBO matrix of the cluster, which is a set of variable indexes, as the distance between clusters (for example, Equation 8 shown above), combine clusters that are close to each other, and divide the block by repeating the process of combining clusters until a predetermined condition is satisfied.
[0205] The problem combining means may also perform formulation according to a method determined according to the original combinatorial optimization problem.
[0206] On the other hand, the optimization means may include a conversion means (e.g., the conversion unit 71) that converts the QUBO matrix into a format determined according to the type of the determined combinatorial optimization problem, and a first optimization process execution means (e.g., the optimization process execution unit 72) that executes an optimization process for the combinatorial optimization problem in the converted format.
[0207] In addition, as another aspect, the optimization means may include a second optimization process execution means (e.g., an optimization process execution unit 81) that performs optimization processing by having an Ising computer execute a QUBO modeled optimization problem, and a post-processing means (e.g., a post-processing unit 82) that performs post-processing of the solution obtained as a result of the optimization process depending on the type of combinatorial optimization problem.
[0208] A part or all of the above-described embodiments can be described as, but is not limited to, the following supplementary notes.
[0209] (Appendix 1) A discrimination means for discriminating the type of a 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 condition; and an optimization means for performing optimization processing according to the type of the determined combinatorial optimization problem. Optimization device characterized by:
[0210] (Appendix 2) The discrimination means discriminates the type of combinatorial optimization problem by comparing the distribution of non-zero components of the objective function, 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. 2. The optimization apparatus of claim 1.
[0211] (Appendix 3) Optimization measures are: A problem division means for extracting blocks, which are square matrices including non-zero elements, from the QUBO matrix according to the type of combinatorial optimization problem determined; a sub-problem optimization means for optimizing a sub-problem, which is a problem represented 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, by combining the obtained optimization results of the sub problems; and a super problem optimization means for performing an optimization process for the super problem. 10. The optimization device of claim 1 or 2.
[0212] (Appendix 4) The problem division means generates a block by sorting the index so that the values of the components in the first row of the extracted block are in ascending order, and if the ratio or difference between adjacent components exceeds a predetermined threshold, divides the square matrix including the rows up to the adjacent component on the left side to generate a new block. 4. The optimization apparatus of claim 3.
[0213] (Appendix 5) The problem division method defines the average sum of the components of the QUBO matrix of the cluster, which is a set of variable indexes, as the distance between clusters, combines clusters that are close to each other, and divides blocks by repeating the process of combining clusters until a predetermined condition is met. 4. The optimization apparatus of claim 3.
[0214] (Appendix 6) The problem combination method is formulated according to the method determined according to the original combinatorial optimization problem. 6. The optimization device according to claim 3,
[0215] (Appendix 7) The problem combination method selects two cities for each region that are consecutive in the order optimized in the subproblem, and formulates a traveling salesman problem of visiting the two cities selected for each region as a new combinatorial optimization problem; The super problem optimization means inserts the optimization result optimized for each region into the optimization result of the combinatorial optimization problem that has been optimized. 7. The optimization device according to claim 3,
[0216] (Appendix 8) The problem division means identifies a block to be used as a basis for clustering, and attempts to determine whether clustering can be performed in the vertical and horizontal directions of the identified block; The super problem optimization means repeats the optimization process while changing the index value of the other clustering by 1 depending on the results of the clustering trials in either the vertical or horizontal directions. 8. The optimization apparatus of claim 7.
[0217] (Appendix 9) The problem division means extracts blocks related to the constraints between products of the subproblems from the QUBO matrix with respect to the constraints on the order of the products, The subproblem optimization means optimizes the subproblem by adding a two-dimensional one-hot condition to the QUBO matrix of the objective function of the extracted block, The problem combination means formulates the problem as a problem of determining the order of the sub-problems using the first product and the last product in the order derived as the optimal solutions of the sub-problems; The super problem optimization means optimizes the super problem that determines the order of the generated sub problems. 7. The optimization device according to claim 3,
[0218] (Appendix 10) The optimization method is as follows: A conversion means for converting the QUBO matrix into a format determined according to the type of the determined combinatorial optimization problem; and a first optimization process execution means for executing an optimization process for the combinatorial optimization problem in the converted format. 10. The optimization device of claim 1 or 2.
[0219] (Appendix 11) The optimization method is as follows: A second optimization process execution means for executing an optimization problem modeled as a QUBO model on an Ising computer; and a post-processing means for performing post-processing of a solution obtained as a result of the optimization process according to the type of combinatorial optimization problem. 10. The optimization device of claim 1 or 2.
[0220] (Appendix 12) A problem division means for extracting blocks, which are square matrices containing non-zero elements, from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint, according to the type of combinatorial optimization problem; a sub-problem optimization means for optimizing a sub-problem, which is a problem represented 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, by combining the obtained optimization results of the sub problems; A super problem optimization means for performing an optimization process of the super problem, The problem division means generates a block by sorting the index so that the values of the components in the first row of the extracted block are in ascending order, and when the ratio or difference between adjacent components exceeds a predetermined threshold, divides the square matrix including the rows up to the adjacent component on the left side to generate a new block. Optimization device characterized by:
[0221] (Appendix 13) A problem division means for extracting blocks, which are square matrices containing non-zero elements, from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint, according to the type of combinatorial optimization problem; a sub-problem optimization means for optimizing a sub-problem, which is a problem represented 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, by combining the obtained optimization results of the sub problems; A super problem optimization means for performing an optimization process of the super problem, The problem division means defines the average of the sum of the components of the QUBO matrix of the cluster, which is a set of variable indexes, as the distance between the clusters, combines clusters that are close to each other, and divides blocks by repeating the process of combining clusters until a predetermined condition is satisfied. Optimization device characterized by:
[0222] (Appendix 14) A computer determines the type of combinatorial optimization problem from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem that includes a two-dimensional one-hot condition as a constraint, The computer performs optimization processing according to the type of the determined combinatorial optimization problem. Optimization method according to claim 1,
[0223] (Appendix 15) To the computer, A discrimination process for discriminating the type of 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 condition; and Optimization process that performs optimization processing according to the type of combinatorial optimization problem identified An optimization program for executing.
[0224] Although the present invention has been described above with reference to the embodiments and examples, the present invention is not limited to the above-mentioned embodiments and examples. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
[0225] This application claims priority based on Japanese patent application No. 2021-194081, filed on November 30, 2021, the disclosure of which is incorporated herein in its entirety. [Explanation of symbols]
[0226] 1 Ising computer 10 Input section 20 Modeling Department 30 One-hot condition specification part 40 Problem determination part 50,70,80 Optimization section 51 Problem division part 52 Subproblem Optimization Unit 53 Problem connection part 54 Super Problem Optimization Department 60 Output section 71 Conversion unit 72 Optimization Processing Execution Unit 81 Optimization Processing Execution Unit 82 Post-processing section
Claims
1. A problem dividing means for extracting a block, which is a square matrix including non-zero elements, from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint condition according to the type of the combinatorial optimization problem; a sub-problem optimization means for optimizing a sub-problem, which is a problem represented by each component matrix of the extracted block, by a method determined according to the original combinatorial optimization problem; A problem combination means for formulating a super problem, which is a new combinatorial optimization problem, by combining the optimization results of the obtained sub-problems; A super problem optimization means for performing an optimization process of the super problem, the problem combination means selects, for each region, two cities whose orders are consecutive from the orders of the regions optimized in the sub-problems, and formulates a traveling salesman problem of visiting the two cities selected for each region as a new combinatorial optimization problem; The super problem optimization means inserts the optimization result optimized for each region into the optimization result of the optimized combinatorial optimization problem. Optimization device characterized by:
2. The problem division means identifies a block to be used as a basis for clustering, and attempts to determine whether clustering can be performed vertically and horizontally with respect to the indexes of variables represented by the two-dimensional array of the identified block; The super problem optimization means repeats the optimization process while changing the value of the index of the other clustering by one depending on the result of the clustering trial in either the vertical or horizontal direction for the index of the variables represented by the two-dimensional array. The optimization device according to claim 1 .
3. A problem dividing means for extracting a block, which is a square matrix including non-zero elements, from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint condition according to the type of the combinatorial optimization problem; a sub-problem optimization means for optimizing a sub-problem, which is a problem represented by each component matrix of the extracted block, by a method determined according to the original combinatorial optimization problem; A problem combination means for formulating a super problem, which is a new combinatorial optimization problem, by combining the optimization results of the obtained sub-problems; A super problem optimization means for performing an optimization process of the super problem, The problem dividing means extracts a block related to a constraint between products of the sub-problem from the QUBO matrix with respect to a constraint on the order of the products; The sub-problem optimization means optimizes the sub-problem by adding a two-dimensional one-hot condition to a QUBO matrix of an objective function of the extracted block, the problem combining means formulates the problem as a problem of determining the order of the sub-problems using the first product and the last product in the order derived as optimal solutions of the sub-problems; The super problem optimization means optimizes a super problem that determines the order of the generated sub problems. Optimization device characterized by:
4. The problem division means generates a block by sorting the index so that the values of the components in the first row of the extracted block are in ascending order, and if the ratio or difference between adjacent components exceeds a predetermined threshold, divides the square matrix including the rows up to the adjacent component on the left side to generate a new block.
4. The optimization device according to claim 3.
5. The problem division means defines the average sum of the elements of the QUBO matrix of the cluster, which is a set of variable indexes, as the distance between the clusters, combines clusters that are close to each other, and divides the block by repeating the process of combining clusters until a predetermined condition is satisfied.
4. The optimization device according to claim 3.
6. A block is extracted from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint, the block being a square matrix including a non-zero component according to the type of the combinatorial optimization problem; optimizing sub-problems, which are problems represented by each component matrix of the extracted blocks, by a method determined according to the original combinatorial optimization problem; The optimization results of the subproblems are combined to formulate a new combinatorial optimization problem, a superproblem, and Optimizing the super problem; In formulating the super problem, two cities whose order is consecutive among the orders of the regions optimized in the subproblem are selected for each region, and a traveling salesman problem of visiting the two cities selected for each region is formulated as a new combinatorial optimization problem; In the optimization process of the super problem, the optimization result optimized for each region is inserted into the optimization result of the optimized combinatorial optimization problem. Optimization method according to claim 1,
7. A block is extracted from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem including a two-dimensional one-hot condition as a constraint, the block being a square matrix including a non-zero component according to the type of the combinatorial optimization problem; optimizing sub-problems, which are problems represented by each component matrix of the extracted blocks, by a method determined according to the original combinatorial optimization problem; The optimization results of the subproblems are combined to formulate a new combinatorial optimization problem, a superproblem, and Optimizing the super problem; In formulating the super problem, regarding the constraint on the order of products, extract a block regarding the constraint between products of the sub problem from the QUBO matrix; Optimizing the subproblem by adding a two-dimensional one-hot condition to the QUBO matrix of the objective function of the extracted block; Formulating the problem as a problem of determining the order of the sub-problems using the first product and the last product in the order derived as optimal solutions of the sub-problems; Optimize the super problem that determines the order of the generated sub problems. Optimization method according to claim 1,
8. On the computer, A problem division process in which a block that is a square matrix containing non-zero elements is extracted from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem that includes a two-dimensional one-hot condition as a constraint condition, according to the type of combinatorial optimization problem; a sub-problem optimization process for optimizing sub-problems, which are problems represented by the component matrices of the extracted blocks, by a method determined according to the original combinatorial optimization problem; A problem combination process that combines the optimization results of the obtained sub-problems to formulate a new combinatorial optimization problem, that is, a super problem; and executing a super problem optimization process that performs an optimization process for the super problem; In the problem combination process, two cities whose order is consecutive are selected for each region from the order of the regions optimized in the sub-problems, and a traveling salesman problem of visiting the two cities selected for each region is formulated as a new combinatorial optimization problem; In the super problem optimization process, an optimization result optimized for each region is inserted into an optimization result of the combinatorial optimization problem that has been optimized. Optimization program for.
9. On the computer, A problem division process in which a block that is a square matrix containing non-zero elements is extracted from a QUBO matrix obtained by QUBO modeling a combinatorial optimization problem that includes a two-dimensional one-hot condition as a constraint condition, according to the type of combinatorial optimization problem; a sub-problem optimization process for optimizing sub-problems, which are problems represented by the component matrices of the extracted blocks, by a method determined according to the original combinatorial optimization problem; A problem combination process that combines the optimization results of the obtained sub-problems to formulate a new combinatorial optimization problem, that is, a super problem; and executing a super problem optimization process that performs an optimization process for the super problem; In the problem division process, regarding the constraint on the order of the products, a block regarding the constraint between the products of the sub-problem is extracted from the QUBO matrix; In the sub-problem optimization process, the sub-problem is optimized by adding a two-dimensional one-hot condition to the QUBO matrix of the objective function of the extracted block; In the problem combination process, the first product and the last product in the order derived as optimal solutions to the sub-problems are used to formulate the problem of determining the order of the sub-problems; In the super problem optimization process, a super problem that determines the order of the generated sub problems is optimized. Optimization program for.
Citation Information
Patent Citations
Optimization problem calculation program and optimization problem calculation system
JP2020004387A
Solution finding method selection device and method
WO2022091408A1
Production planning method and production planning system
JP2020140615A