Problem solving device, problem solving method, and program
The problem-solving device efficiently divides optimization problems into trunk and branch instances, using a simulated bifurcation algorithm to achieve accurate and timely solutions for complex programming tasks.
Patent Information
- Application Number
- JP2024116930
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-22
- Publication Date
- 2026-02-03
- Estimated Expiration
- 2044-07-22
AI Technical Summary
Existing algorithms struggle to calculate solutions for problems with a large number of decision variables in a realistic time, particularly for non-linear programming problems without a natural total or partial order, leading to inefficiencies and inaccurate results.
A problem-solving device and method that divides the main problem into a trunk instance and multiple branch instances, using a simulated bifurcation algorithm to generate candidate vectors that minimize the objective function under constraints, allowing for parallel processing and heuristic solutions.
This approach significantly reduces calculation time while maintaining solution accuracy for complex optimization problems, including quadratic and non-linear programming, by leveraging parallel processing and heuristic methods.
Smart Images

Figure 2026015977000001_ABST
Abstract
Description
[Technical Field]
[0001] An embodiment of the present invention relates to a problem-solving device, a problem-solving method, and a program. [Background technology]
[0002] In real-world optimization problems, the main problem often contains subproblems. Optimizing the entire main problem at once would require an enormous amount of computational time, but by utilizing the structure of the subproblems, it is often possible to optimize the main problem in a realistic computational time. However, it is difficult to discover the structure of the subproblems within the main problem, and there are often cases where the main problem is solved without utilizing the structure of the subproblems, resulting in an inappropriate solution. For this reason, a method is needed to discover the appropriate structure of the subproblems within the main problem.
[0003] An example of a main problem that includes a subproblem structure is the problem of finding a route that minimizes the time it takes to travel by car between two specific points. For example, when searching for a route from a first point in a first city to a second point in a second city, if the search takes into account all of the roads between the first and second points, an enormous amount of calculation time would be required.
[0004] As a method for solving such a problem, the first algorithm, which takes into account the subproblem structure of the road network, can be considered.
[0005] The first algorithm first searches for a route that minimizes the car travel time from a first point to several highway entrances around the first point. The first algorithm secondly searches for a route that minimizes the car travel time from several highway entrances around the first point to several highway exits around a second point. The first algorithm thirdly searches for a route that minimizes the car travel time from several highway exits around the second point to the second point. The first algorithm fourthly searches for a combination that minimizes the car travel time for several highway entrances around the first point and several highway exits around the second point. This first algorithm can solve the main problem of searching for a route that minimizes the car travel time between two specific points in a realistic calculation time.
[0006] In addition, a method is known for shortening the solution time for large-sized linear programming problems using the following second algorithm.
[0007] The second algorithm first determines a division granularity of the linear programming problem based on an allowable time required to solve the linear programming problem to be solved. Second, the second algorithm creates objective functions for each subproblem to be divided from the linear programming problem based on the determined division granularity. Third, the second algorithm creates constraint equations for each subproblem based on a group of constraint equations for the linear programming problem and past allocation result data for the variables included in the linear programming problem. Fourth, the second algorithm calculates a solution to the linear programming problem by solving each subproblem in order based on the objective function and constraint equations created for each subproblem.
[0008] This second algorithm is intended to solve the date-based nurse scheduling problem (NSP), which involves creating a schedule that allocates the required number of nurses with the required skill levels to shifts, assuming a two- or three-shift system, while satisfying the nurses' workloads and vacation requests.
[0009] Typical constraints in NSP are classified into the following three types:
[0010] The first type of constraint is a constraint that assigns the required number of nurses with the required skill level to each shift. The second type is a constraint that calculates the workload for each nurse over a range of a specified number of consecutive shifts or a specified number of days, and keeps the calculated workload within the specified range. The third type is a constraint that assigns vacation time to each nurse on specific dates and times.
[0011] For example, a one-month NSP includes subproblems for weeks 1, 2, 3, and 4. When evaluating the connection between two subproblems based on the number of constraints that span the two subproblems, the connections are strong for combinations of weeks 1 and 2, weeks 2 and 3, and weeks 3 and 4, and the connections become weaker as the time gap increases. Also, in the one-month NSP, there is a shift that is not targeted for optimization before week 1. In the one-month NSP, the shifts that are not targeted for optimization also function as constraints.
[0012] The second algorithm uses this structure of subproblems to solve the NSP as follows: First, the second algorithm optimizes the subproblems for the first week. Second, the second algorithm optimizes the subproblems for the second week by fixing the variables belonging to the first week. Third, the second algorithm optimizes the subproblems for the third week by fixing the variables belonging to the first and second weeks. Third, the second algorithm optimizes the subproblems for the fourth week by fixing the variables belonging to the first, second, and third weeks. In this way, the second algorithm can reduce the calculation time for the NSP while maintaining the accuracy of the solution.
[0013] There is also known a method for shortening the solution time for large-sized linear programming problems using the following third algorithm.
[0014] The third algorithm solves the workflow scheduling problem (WSP) as follows: First, the third algorithm extracts m jobs from the upstream of the dependency chain among the jobs whose execution time slots have not been determined. Second, the third algorithm extracts n time slots from the earlier time slots among the time slots with sufficient remaining resources. Third, the third algorithm optimizes the subproblem of m jobs and n time slots. Fourth, the third algorithm determines the execution time slots for the optimized jobs, reduces the amount of resources for the time slots, and returns to the first process.
[0015] A typical job shop scheduling problem (JSP) includes multiple sequences that must be processed in the following order: job A → job B → job C. In a typical JSP, the amount of resources and processing time required for each job are set. The JSP then optimizes the order in which jobs are executed so that the amount of resources required for jobs that can be executed simultaneously does not exceed the upper limit of the resource amount. The third algorithm reduces the calculation time while maintaining the accuracy of the solution by repeatedly solving subproblems extracted from such a JSP, each consisting of m jobs and n time slots, starting from the beginning of the sequence.
[0016] Unlike JSPs, workflow scheduling problems (WSPs) have a directed acyclic graph of job dependencies. The third algorithm solves subproblems of such WSPs, extracting m jobs and n time slots from the upstream of the dependency chain. Although the algorithm is more complex than solving JSPs, which are simple sequences, it can reduce the calculation time while maintaining the accuracy of the solution.
[0017] As described above, the second algorithm targets problems in the NSP problem class, where a natural total order exists, such as date and time. Therefore, the second algorithm can shorten the calculation time while maintaining the accuracy of the solution by extracting subproblems from the beginning to the end, based on the total order by date and time.
[0018] On the other hand, the third algorithm is intended for WSP problems, which have a natural partial order, i.e., dependency relationships. For this reason, the third algorithm obtains a total order by performing a topological sort on the partial order based on dependency relationships. The third algorithm then extracts subproblems from the front to back on the total order resulting from the topological sort, thereby reducing the calculation time while maintaining the accuracy of the solution.
[0019] As described above, when a natural total or partial order exists in a problem class, it is effective to use a heuristic solution method that utilizes the total or partial order, such as the second and third algorithms.
[0020] However, the second and third algorithms have the problem that they are difficult to obtain accurate solutions for problem classes that do not have a natural total or partial order but contain subproblem structures.Also, the second algorithm only targets linear programming problems, and cannot solve quadratic or nonlinear programming problems. [Prior art documents] [Patent documents]
[0021] [Patent Document 1] Japanese Patent Publication No. 2023-35664 [Patent Document 2] Japanese Patent Publication No. 2021-043667 [Patent Document 3] Japanese Patent Publication No. 2021-043589 [Non-patent literature]
[0022] [Non-Patent Document 1] Atsuko Ikegami, "Nurse Scheduling - Research, Modeling, and Algorithms," Mathematical Planning Institute, Mathematical Planning (2005), Vol. 53, No. 2, pp. 231-259, May 13, 2005 [Non-patent document 2] Pakhomchik, AI, Yudin, S., Perelshtein, MR, Alekseyenko, A and Yarkoni, S, “Solving workflow scheduling problems with QUBO modeling”, 2022, arXiv preprint arXiv:2205.04844 [Non-patent document 3] P Xu, X., Yuruk, N., Feng, Z. and Schweiger, TA, “Scan: a structural clustering algorithm for networks”, August 2007, In Proceedings of the 13th ACM SIGKDD international conference on Knowledge discovery and data mining, pp.824-833 [Non-patent document 4] Hiroaki Shiokawa, Yasuhiro Fujiwara, Makoto Onitsuka, "Accelerating Graph Clustering Based on Structural Similarity," DEIM2014 (The 6th Forum on Data Engineering and Information Management), 2014 [Non-patent document 5] Hayato Goto, Kosuke Tatsumura and Alexander R. Dixon, “Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems,” Science Advances 5, eaav2372, 2019 [Non-patent document 6] Hayato Goto, Kotaro Endo, Masaru Suzuki, Yoshisato Sakai, Taro Kanao, Yohei Hamakawa, Ryo Hidaka, Masaya Yamasaki and Kosuke Tatsumura, “High-performance combinatorial optimization based on classical mechanics”, Science Advances 7, eabe7953, 2021 Summary of the Invention [Problem to be solved by the invention]
[0023] The problem to be solved by the present invention is to calculate, in a realistic time, a solution to a problem of minimizing an objective function that includes a huge number of decision variables. [Means for solving the problem]
[0024] A problem solving device according to an embodiment calculates a main problem solution vector representing a solution that minimizes a main problem objective function, which is a polynomial obtained by adding together multiple terms, under constraints imposed by constraints included in a main problem constraint set. Each of the multiple terms is an expression obtained by multiplying one or more decision variables among multiple decision variables by a coefficient. The problem solving device includes a processing unit. The processing unit acquires a main problem instance including the main problem objective function and the main problem constraint set. The processing unit exclusively divides each of the multiple terms included in the main problem objective function and the main problem constraint set to generate a trunk instance including a trunk objective function that is an expression obtained by adding together some of the multiple terms and a trunk constraint set that is a subset of the main problem constraint set, and M branch instances (M is an integer equal to or greater than 2), each including a branch objective function that is an expression obtained by adding together some of the multiple terms and a branch constraint set that is a subset of the main problem constraint set. The processing unit generates a common decision variable set including decision variables commonly used in the trunk instance and any two of the M branch instances. The processing unit generates a stem candidate vector representing the values of decision variables included in the stem instance and a common candidate vector representing the values of decision variables included in the common decision variable set. For each of the M branch instances, the processing unit generates a branch candidate vector representing a solution that minimizes the branch objective function under constraints imposed by the constraints included in the branch constraint set and constraints that fix the values of the decision variables included in the common decision variable set to the values included in the common candidate vector. The processing unit outputs the primal problem solution vector including the stem candidate vector and the branch candidate vector for each of the M branch decision variables. [Brief explanation of the drawings]
[0025] [Figure 1] FIG. 1 is a functional configuration diagram of a problem-solving device according to a first embodiment. [Figure 2] FIG. 2 is a diagram showing information stored in a storage device. [Figure 3] FIG. 4 is a diagram showing information stored in a memory. [Figure 4] Diagram showing instance relationships. [Figure 5] Diagram showing vectors. [Figure 6] FIG. 2 is a diagram showing the processing flow of the problem-solving device. [Figure 7] 10 is a flowchart showing the flow of a main process. [Figure 8] 10 is a flowchart showing the flow of the division process in S14. [Figure 9] A diagram showing an undirected graph. [Figure 10] A diagram showing a clustered undirected graph. [Figure 11] A diagram showing an undirected graph with some nodes removed. [Figure 12] A diagram showing the relationship between an undirected graph and instances. [Figure 13] 10 is a flowchart showing the flow of the vector generation process in S19. [Figure 14] 10 is a flowchart showing the flow of the solution-finding process in S20. [Figure 15] 10 is a flowchart showing the flow of the acceptance determination process in S22. [Figure 16] FIG. 10 is a diagram showing an undirected graph in a solution example. [Figure 17] FIG. 10 is a diagram showing a set of edges in an undirected graph in the solution example. [Figure 18] FIG. 10 is a diagram showing an example of a main problem latest vector. [Figure 19] FIG. 10 is a diagram showing an example of a common candidate vector. [Figure 20] FIG. 10 is a diagram showing an example of a branch candidate vector corresponding to a first branch instance. [Figure 21] FIG. 10 is a diagram showing an example of an edge candidate vector corresponding to a second edge instance. [Figure 22] FIG. 10 is a diagram showing an example of a primal problem solution vector. [Figure 23] FIG. 10 is a configuration diagram of a problem-solving system according to a second embodiment. [Figure 24] 11 is a flowchart showing the flow of division processing in the third embodiment. [Figure 25] 10 is a flowchart showing the flow of division processing in the fourth embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0026] (First embodiment) First, a problem-solving device 1 according to the first embodiment will be described. The problem-solving device 1 calculates a solution to a problem that minimizes an objective function containing a huge number of decision variables under constraints imposed by constraint conditions in a realistic amount of time. Note that the problem to be solved by the problem-solving device 1 may be not only a linear programming problem but also a quadratic programming problem, a nonlinear programming problem, or the like.
[0027] FIG. 1 is a diagram showing the functional configuration of a problem-solving device 1 according to the first embodiment.
[0028] The problem-solving device 1 includes a bus 11, a processor 12, a memory 13, a storage device 14, a solver device 15, an input device 16, and an output device 17. The processor 12, the memory 13, the storage device 14, the solver device 15, the input device 16, and the output device 17 are connected to each other via the bus 11.
[0029] The memory 13 and the storage device 14 store information. The processor 12 is a CPU (Central Processing Unit) or the like, and is a processing unit that executes processing according to a program. The input device 16 acquires information from a user or another device. The output device 17 outputs information to a user or another device. The output device 17 is, for example, a display device.
[0030] The solver device 15 executes a solution process for finding a solution to a problem that minimizes an objective function under constraints. The solver device 15 may be realized by the processor 12, rather than by a circuit or device separate from the processor 12.
[0031] The solver device 15 may be realized by a CPU, a graphics processing unit (GPU), or a reconfigurable semiconductor device such as a field-programmable gate array (FPGA). The solver device 15 may also be realized by an accelerator, an application specific integrated circuit (ASIC), or an electronic circuit including these circuits. The solver device 15 may also be realized by an information processing device such as a computer, a computer system configured by multiple computers or servers communicating with each other via a network, or a PC cluster in which multiple computers cooperate to perform information processing.
[0032] The solver device 15 uses a heuristic solution algorithm to solve the problem of minimizing the objective function under the constraint conditions, thereby obtaining an approximate solution, and is thereby able to output multiple solutions that minimize the objective function under the constraint conditions.
[0033] The solver device 15 may be any device that can obtain a solution to a problem that minimizes an objective function under constraints. For example, the solver device 15 may be a device that uses quantum annealing technology or quasi-quantum annealing technology.
[0034] In this embodiment, the solver device 15 solves problems using a simulated bifurcation algorithm. The simulated bifurcation algorithm is described, for example, in Non-Patent Document 5, Non-Patent Document 6, Patent Document 2, and Patent Document 3. The simulated bifurcation algorithm is also called a quantum-inspired algorithm because it was discovered inspired by a quantum mechanical optimization method based on the quantum adiabatic theorem. The simulated bifurcation algorithm can solve combinatorial optimization problems in which the cost function is a quadratic function of multiple binary decision variables, i.e., QUBO problems. The simulated bifurcation algorithm can also solve combinatorial optimization problems in which the cost function is a cubic or higher function of multiple binary decision variables, i.e., HUBO (Higher Order Binary Optimization) problems. A simulated bifurcation algorithm for solving HUBO problems is described, for example, in Patent Document 2. The simulated bifurcation algorithm can also solve combinatorial optimization problems in which some or all of the multiple decision variables include continuous-valued variables. A simulated bifurcation algorithm for solving a combinatorial optimization problem in which some or all of a plurality of decision variables are continuous variables is shown in, for example, Patent Document 3.
[0035] In this embodiment, the solver device 15 includes multiple engines that each independently output a solution to a problem. The solver device 15 outputs a solution for each of multiple given problems by running the multiple engines in parallel. The solver device 15 may output each solution for multiple problems by having one engine repeatedly execute processing multiple times.
[0036] 2 is a diagram showing information stored in the storage device 14. The storage device 14 stores a main problem instance 141, a main problem solving program 142, hyperparameters 143, a main problem initial vector 144, and a main problem solution vector 145.
[0037] The primary problem instance 141 includes a set of primary problem decision variables 1411 , a primary problem objective function 1412 , and a set of primary problem constraints 1413 .
[0038] The main problem solving program 142 includes a main program 1420, a problem dividing subroutine 1421, a stem candidate generating subroutine 1422, M branch solution finding subroutines 1423-1, 1423-2, ..., 1423-M, and an acceptance determination subroutine 1424. Note that M is an integer equal to or greater than 2.
[0039] The main program 1420 is a program executed by the processor 12. A problem division subroutine 1421, a stem candidate generation subroutine 1422, M branch solution subroutines 1423-1, 1423-2, ..., 1423-M, and an acceptance determination subroutine 1424 are subroutine programs that are called and executed by the processor 12 during execution of the main program 1420.
[0040] The hyperparameters 143 are values or information referenced by the processor 12. The hyperparameters 143 include a size upper limit 1431, a processing time upper limit 1432, a neighborhood generation rule 1433, an iteration upper limit 1434, and an inverse temperature schedule 1435.
[0041] 3 is a diagram showing information stored in memory 13. Memory 13 stores a trunk instance 131, M branch instances 132-1, 132-2, ..., 132-M, a common decision variable set 133, a main problem latest vector 134, a main problem best vector 135, a main problem candidate vector 136, an iteration count 137, an inverse temperature parameter 138, and an acceptance decision result 139.
[0042] The trunk instance 131 includes a set of trunk decision variables 1311 , a trunk objective function 1312 , and a set of trunk constraints 1313 .
[0043] The m-th branch instance 132-m (m is an integer greater than or equal to 1 and less than or equal to M) among the M branch instances 132-1, 132-2, ..., 132-M includes a branch decision variable set 1321-m, a branch objective function 1322-m, and a branch constraint set 1323-m.
[0044] FIG. 4 is a diagram showing the relationship between the main problem instance 141, the trunk instance 131, M branch instances 132-1, 132-2, . . . , 132-M, and the common decision variable set 133.
[0045] The primary problem decision variable set 1411 is a set including multiple decision variables included in the primary problem objective function 1412. The primary problem objective function 1412 is a polynomial obtained by adding multiple terms. Each of the multiple terms included in the primary problem objective function 1412 is an expression obtained by multiplying one or more decision variables among the multiple decision variables included in the primary problem decision variable set 1411 by a coefficient.
[0046] The primary problem constraint set 1413 includes constraints. The primary problem constraint set 1413 may include two or more constraints, or may be an empty set. The constraints are equalities or inequalities using some of the decision variables included in the primary problem decision variable set 1411.
[0047] The m-th branch instance 132-m of the M branch instances 132-1, 132-2, . . . , 132-M includes a branch decision variable set 1321-m, a branch objective function 1322-m, and a branch constraint set 1323-m.
[0048] The branch decision variable set 1321-m is a subset of the main problem decision variable set 1411. In other words, the branch decision variable set 1321-m includes a portion of the multiple decision variables included in the main problem decision variable set 1411.
[0049] However, the two or more decision variables included in the branch decision variable set 1321-m of the m-th branch instance 132-m do not overlap with the two or more decision variables included in the branch decision variable sets 1321 of branch instances other than the m-th branch instance 132-m. That is, the branch decision variable set 1321-m of the m-th branch instance 132-m includes decision variables that are not included in the branch decision variable sets 1321 of branch instances 132 other than the m-th branch instance 132-m. That is, the branch decision variable sets 1321 in each of the M branch instances 132-1, 132-2, ..., 132-M exclusively include two or more decision variables.
[0050] The branch objective function 1322-m is an equation obtained by adding up some of the multiple terms included in the main problem objective function 1412. The terms included in the branch objective function 1322-m include at least one decision variable included in the branch decision variable set 1321-m.
[0051] However, the terms included in the branch objective function 1322-m of the m-th branch instance 132-m do not overlap with the terms included in the branch objective functions 1322 of branch instances other than the m-th branch instance 132-m. That is, the branch objective function 1322-m of the m-th branch instance 132-m includes terms that are not included in the branch objective functions 1322 of branch instances 132 other than the m-th branch instance 132-m. That is, the branch objective functions 1322-m in each of the M branch instances 132-1, 132-2, ..., 132-M include terms exclusively.
[0052] The branch constraint set 1323-m is a subset of the main problem constraint set 1413. That is, the branch constraint set 1323-m includes some of the constraints in the main problem constraint set 1413. Note that the branch constraint set 1323-m may be an empty set. The constraints included in the branch constraint set 1323-m include at least one decision variable included in the branch decision variable set 1321-m.
[0053] However, the constraints included in the branch constraint set 1323-m of the m-th branch instance 132-m do not overlap with the constraints included in the branch constraint sets 1323 of branch instances other than the m-th branch instance 132-m. That is, the branch constraint set 1323-m of the m-th branch instance 132-m includes constraints that are not included in the branch constraint sets 1323 of branch instances 132 other than the m-th branch instance 132-m. That is, the branch constraint sets 1323 in each of the M branch instances 132-1, 132-2, ..., 132-M exclusively include constraints.
[0054] The common decision variable set 133 includes decision variables that are commonly used by the trunk instance 131 and any two of the M branch instances 132-1, 132-2, . . . , 132-M.
[0055] For example, a first set includes multiple decision variables included in all of the branch objective functions 1322 and branch constraint sets 1323 of the M branch instances 132-1, 132-2, ..., 132-M. A second set includes multiple decision variables included in all of the branch decision variable sets 1321 of the M branch instances 132-1, 132-2, ..., 132-M. In this case, the common decision variable set 133 includes decision variables that are not included in the second set but are part of the first set. In other words, the common decision variable set 133 is the first set minus the second set.
[0056] The trunk instance 131 includes a set of trunk decision variables 1311 , a trunk objective function 1312 , and a set of trunk constraints 1313 .
[0057] The stem decision variable set 1311 is a subset of the main problem decision variable set 1411. In other words, the stem decision variable set 1311 includes a portion of the multiple decision variables included in the main problem decision variable set 1411. Note that the stem decision variable set 1311 may be an empty set.
[0058] However, the decision variables included in the trunk decision variable set 1311 do not overlap with any of the branch decision variable sets 1321 in the M branch instances 132-1, 132-2, ..., 132-M and the decision variables included in the common decision variable set 133. In other words, the trunk decision variable set 1311 includes the decision variables of the main problem decision variable set 1411 excluding the decision variables included in the common decision variable set 133 and the branch decision variable sets 1321 of the M branch instances 132-1, 132-2, ..., 132-M.
[0059] That is, the trunk decision variable set 1311, the branch decision variable set 1321 in each of the M branch instances 132-1, 132-2, ..., 132-M, and the common decision variable set 133 exclusively include decision variables. The main problem decision variable set 1411 is obtained by adding the trunk decision variable set 1311, the branch decision variable set 1321 in each of the M branch instances 132-1, 132-2, ..., 132-M, and the common decision variable set 133.
[0060] The trunk objective function 1312 is an equation obtained by adding up some of the multiple terms included in the main problem objective function 1412. The trunk objective function 1312 may be 0. The terms included in the trunk objective function 1312 include at least one decision variable included in the trunk decision variable set 1311.
[0061] However, the terms included in the trunk objective function 1312 do not overlap with the terms included in any of the branch objective functions 1322 in the M branch instances 132-1, 132-2, ..., 132-M. That is, the trunk objective function 1312 includes, from among the multiple terms included in the main problem objective function 1412, terms excluding the terms included in each branch objective function 1322 of the M branch instances 132. That is, the trunk objective function 1312 and the branch objective functions 1322 of the M branch instances 132-1, 132-2, ..., 132-M exclusively include terms.
[0062] The trunk constraint set 1313 is a subset of the main problem constraint set 1413. In other words, the trunk constraint set 1313 includes some of the constraints in the main problem constraint set 1413. Note that the trunk constraint set 1313 may be an empty set.
[0063] However, the constraints included in the trunk constraint set 1313 do not overlap with the constraints included in any of the branch constraint sets 1323 of the M branch instances 132-1, 132-2, ..., 132-M. That is, the trunk constraint set 1313 includes constraints from the main problem constraint set 1413 excluding the constraints included in each of the branch constraint sets 1323 of the M branch instances 132-1, 132-2, ..., 132-M. That is, the trunk constraint set 1313 and the branch constraint sets 1323 of the M branch instances 132-1, 132-2, ..., 132-M exclusively include constraints.
[0064] FIG. 5 shows a primary problem solution vector 145, a primary problem initial vector 144, a primary problem latest vector 134, a primary problem best vector 135, and a primary problem candidate vector 136.
[0065] The primal problem solution vector 145 represents a solution to the multiple decision variables that minimizes the primal problem objective function 1412 , subject to the constraints contained in the primal problem constraint set 1413 .
[0066] The main problem solution vector 145 includes a stem solution vector 1451, a common solution vector 1452, and M branch solution vectors 1453-1, 1453-2, ..., 1453-M. The stem solution vector 1451 represents the values of decision variables included in the stem decision variable set 1311 among the solutions for the multiple decision variables. The common solution vector 1452 represents the values of decision variables included in the common decision variable set 133 among the solutions for the multiple decision variables. The m-th branch solution vector 1453-m among the M branch solution vectors 1453-1, 1453-2, ..., 1453-M represents the values of decision variables included in the branch decision variable set 1321-m for the m-th branch instance 132-m among the solutions for the multiple decision variables.
[0067] The primary problem initial vector 144 represents the initial values of a plurality of decision variables included in the primary problem decision variable set 1411 that satisfy the constraints included in the primary problem constraint set 1413 .
[0068] The main problem initial vector 144 includes a trunk initial vector 1441, a common initial vector 1442, and M branch initial vectors 1443-1, 1443-2, ..., 1443-M. The trunk initial vector 1441 represents the value of a decision variable included in the trunk decision variable set 1311 among the initial values of multiple decision variables. The common initial vector 1442 represents the value of a decision variable included in the common decision variable set 133 among the initial values of multiple decision variables. The m-th branch initial vector 1443-m among the M branch initial vectors 1443-1, 1443-2, ..., 1443-M represents the value of a decision variable included in the branch decision variable set 1321-m for the m-th branch instance 132-m among the initial values of multiple decision variables.
[0069] The primary problem candidate vector 136 represents candidate solution values for a number of decision variables that minimize the primary problem objective function 1412 under the constraints contained in the primary problem constraint set 1413 .
[0070] The main problem candidate vector 136 includes a stem candidate vector 1361, a common candidate vector 1362, and M branch candidate vectors 1363-1, 1363-2, ..., 1363-M. The stem candidate vector 1361 represents the value of a decision variable included in the stem decision variable set 1311 among the candidate values of multiple decision variables. The common candidate vector 1362 represents the value of a decision variable included in the common decision variable set 133 among the candidate values of multiple decision variables. The m-th branch candidate vector 1363-m among the M branch candidate vectors 1363-1, 1363-2, ..., 1363-M represents the value of a decision variable included in the branch decision variable set 1321-m in the m-th branch instance 132-m among the candidate values of multiple decision variables.
[0071] The main problem latest vector 134 is the latest main problem candidate vector 136 among the main problem candidate vectors 136 generated by multiple iterations.
[0072] The main problem latest vector 134 includes a trunk latest vector 1341, a common latest vector 1342, and M branch latest vectors 1343-1, 1343-2, ..., 1343-M. The trunk latest vector 1341 represents the value of a decision variable included in the trunk decision variable set 1311 among the latest values of multiple decision variables. The common latest vector 1342 represents the value of a decision variable included in the common decision variable set 133 among the latest values of multiple decision variables. The m-th branch latest vector 1343-m among the M branch latest vectors 1343-1, 1343-2, ..., 1343-M represents the value of a decision variable included in the branch decision variable set 1321-m for the m-th branch instance 132-m among the latest values of multiple decision variables.
[0073] The best main problem vector 135 is the best main problem candidate vector 136 among the main problem candidate vectors 136 generated by multiple iterations.
[0074] The primal problem best vector 135 includes a stem best vector 1351, a common best vector 1352, and M branch best vectors 1353-1, 1353-2, ..., 1353-M. The stem best vector 1351 represents the value of a decision variable included in the stem decision variable set 1311 among the best values of the multiple decision variables. The common best vector 1352 represents the value of a decision variable included in the common decision variable set 133 among the best values of the multiple decision variables. The m-th branch best vector 1353-m among the M branch best vectors 1353-1, 1353-2, ..., 1353-M represents the value of a decision variable included in the branch decision variable set 1321-m for the m-th branch instance 132-m among the best values of the multiple decision variables.
[0075] FIG. 6 is a diagram showing the flow of processing by the problem-solving device 1.
[0076] The input device 16 acquires the main problem instance 141, the hyperparameters 143, and the main problem initial vector 144 from an external device and stores them in the storage device 14. The input device 16 may accept input of the main problem instance 141, the hyperparameters 143, and the main problem initial vector 144 from a user.
[0077] Next, the processor 12 reads and executes a main problem solving program 142 stored in advance in the storage device 14. By executing the main problem solving program 142, the processor 12 reads a main problem instance 141, hyperparameters 143, and a main problem initial vector 144 stored in the storage device 14, and performs data processing using the memory 13 and the solver device 15. As a result of performing the data processing, the processor 12 generates a main problem solution vector 145 and stores it in the storage device 14. The output device 17 then outputs the main problem solution vector 145 stored in the storage device 14 to an external device. For example, the output device 17 displays the main problem solution vector 145 stored in the storage device 14 on a display device.
[0078] FIG. 7 is a flowchart showing the flow of the main processing by the processor 12.
[0079] First, in S11, the processor 12 acquires the main problem solving program 142 from the storage device 14. The processor 12 starts executing the main program 1420 of the main problem solving program 142. The processor 12 executes the main program 1420 to continue the processing from S12 onwards.
[0080] Next, in S12, the processor 12 retrieves the main problem instance 141 from the storage device 14.
[0081] Next, in S13, the processor 12 acquires the hyperparameters 143 from the storage device 14.
[0082] Next, in S14, the processor 12 generates a trunk instance 131, M branch instances 132-1, 132-2, ..., 132-M, and a common decision variable set 133 by exclusively dividing each of the multiple terms included in the main problem objective function 1412 in the main problem instance 141 and the main problem constraint set 1413.
[0083] The processor 12 performs the processing of S14 by executing the problem division subroutine 1421 included in the main problem solving program 142. Details of the processing of the processor 12 in S14 will be described later with reference to FIG.
[0084] Subsequently, in S15, the processor 12 obtains the primal problem initial vector 144 from the storage device 14.
[0085] Next, in S16, the processor 12 generates a primary problem latest vector 134 and a primary problem best vector 135 based on the primary problem initial vector 144. For example, the processor 12 updates each of the primary problem latest vector 134 and the primary problem best vector 135 with the primary problem initial vector 144.
[0086] Next, in S17, the processor 12 initializes the iteration count 137 to zero.
[0087] Subsequently, the processor 12 repeats the processes from S19 to S27 until the number of iterations 137 becomes greater than the upper iteration limit 1434 (loop process between S18 and S28).
[0088] In S19, the processor 12 generates a stem candidate vector 1361 representing the values of the decision variables included in the stem instance 131 and a common candidate vector 1362 representing the values of the decision variables included in the common decision variable set 133, under the condition that the constraint conditions included in the stem constraint set 1313 are satisfied, based on the main problem latest vector 134 and the neighborhood generation rule 1433. Note that in S19, the processor 12 changes the stem candidate vector 1361 and the common candidate vector 1362 for each iteration (loop processing between S18 and S28) under the condition that the constraint conditions included in the stem constraint set 1313 are satisfied.
[0089] The processor 12 performs the processing of S19 by executing the stem candidate generation subroutine 1422 included in the main problem solving program 142. Details of the processing of the processor 12 in S19 will be described later with reference to FIG.
[0090] Next, in S20, the processor 12 generates, for each of the M branch instances 132-1, 132-2, ..., 132-M, a branch candidate vector 1363 representing a solution that minimizes the branch objective function 1322 under the constraints imposed by the constraints included in the branch constraint set 1323 and the constraint that fixes the values of the decision variables included in the common decision variable set 133 to the values included in the common candidate vector 1362.
[0091] For example, the processor 12 uses the solver device 15 to solve in parallel for each of the M branch instances 132-1, 132-2, ..., 132-M, a solution that minimizes the branch objective function 1322 under the constraints imposed by the constraints included in the trunk constraint set 1313.
[0092] In addition, the processor 12 may use the solver device 15 to sequentially solve for each of the M branch instances 132-1, 132-2, ..., 132-M, one by one or a predetermined number of times, a solution that minimizes the branch objective function 1322 under the constraints imposed by the constraint conditions included in the trunk constraint set 1313.
[0093] For example, if the solver device 15 is able to calculate a solution within the processing time upper limit 1432, which represents a predetermined time, the processor 12 designates the solution calculated by the solver device 15 as the branch candidate vector 1363. Also, if the solver device 15 is unable to calculate a solution within the processing time upper limit 1432, the processor 12 designates the corresponding element in the main problem latest vector 134 as the branch candidate vector 1363. For example, if the solver device 15 is able to calculate a solution for the m-th branch instance 132-m within the processing time upper limit 1432, the processor 12 designates the solution calculated by the solver device 15 as the branch candidate vector 1363-m. If the processor 12 is unable to calculate a solution within the processing time upper limit 1432, the processor 12 designates the branch latest vector 1343-m as the branch candidate vector 1363-m.
[0094] By executing S20, processor 12 can generate main problem candidate vector 136 for the current iteration. Main problem candidate vector 136 for the current iteration includes stem candidate vector 1361 generated in S19, common candidate vector 1362 generated in S19, and branch candidate vectors 1363 for each of M branch instances 132-1, 132-2, ..., 132-M generated in S20.
[0095] The processor 12 executes the processing of S20 by executing, in parallel or sequentially, M branch solution subroutines 1423-1, 1423-2, ..., 1423-M included in the main problem solving program 142. Details of the processing by the processor 12 in S20 will be described later with reference to FIG.
[0096] Next, in S21, the processor 12 calculates the inverse temperature parameter 138 based on the inverse temperature schedule 1435 and the number of iterations 137. The inverse temperature schedule 1435 is an arithmetic expression or a table for calculating the inverse temperature parameter 138 based on the number of iterations 137.
[0097] Next, in S22, the processor 12 executes an acceptance determination process to determine whether or not to accept the main problem candidate vector 136 calculated in the current iteration.
[0098] Processor 12 determines to accept the result of the current iteration if the evaluation value of main problem candidate vector 136 is the same as or better than the evaluation value of main problem latest vector 134. Processor 12 calculates the evaluation value by substituting main problem candidate vector 136 or main problem latest vector 134 into main problem objective function 1412. In this embodiment, the smaller the evaluation value, the better the solution to main problem instance 141. Therefore, if the evaluation value of main problem candidate vector 136 is equal to or less than the evaluation value of main problem latest vector 134, processor 12 determines to accept the result of the current iteration.
[0099] Furthermore, even if the evaluation value of the main problem candidate vector 136 of the current iteration is not better than that of the main problem latest vector 134, the processor 12 determines whether to accept the result of the current iteration with a probability determined by the difference between the evaluation value of the main problem candidate vector 136 and the evaluation value of the main problem latest vector 134 and the inverse temperature parameter 138. Then, the processor 12 generates an acceptance decision result 139 indicating acceptance or non-acceptance.
[0100] The processor 12 performs the process of S22 by executing the acceptance determination subroutine 1424. Details of the process of the processor 12 in S22 will be described later with reference to FIG.
[0101] Next, in S23, processor 12 determines whether acceptance determination result 139 indicates acceptance. If acceptance determination result 139 indicates acceptance (Yes in S23), processor 12 proceeds to S24. If acceptance determination result 139 indicates non-acceptance (No in S23), processor 12 proceeds to S27.
[0102] At S24, the processor 12 updates the primary problem latest vector 134 with the primary problem candidate vector 136.
[0103] Next, in S25, the processor 12 determines whether the evaluation value of the main problem candidate vector 136 is better than the evaluation value of the main problem best vector 135. In this embodiment, the processor 12 determines whether the evaluation value of the main problem candidate vector 136 is smaller than the evaluation value of the main problem best vector 135.
[0104] If the evaluation value of the main problem candidate vector 136 is better than the evaluation value of the main problem best vector 135 (Yes in S25), the processor 12 proceeds to S26. If the evaluation value of the main problem candidate vector 136 is the same as the evaluation value of the main problem best vector 135 or is not better than the evaluation value of the main problem best vector 135 (No in S25), the processor 12 proceeds to S27.
[0105] In S26, the processor 12 updates the main problem best vector 135 with the main problem candidate vector 136. After completing S26, the processor 12 advances the process to S27.
[0106] In S27, the processor 12 increments the iteration count 137 by one.
[0107] Then, when the number of iterations 137 becomes greater than the upper iteration limit 1434, the processor 12 ends the iteration (the loop process between S18 and S28) and advances the process to S29.
[0108] Processor 12 may terminate the iteration when another termination condition is met. For example, processor 12 may terminate the iteration when the evaluation value of main problem candidate vector 136 becomes equal to or less than a preset value, or when the processing time becomes equal to or greater than a preset time.
[0109] In S29, the processor 12 generates the main problem best vector 135 as the main problem solution vector 145 and stores it in the storage device 14. Then, when the processor 12 finishes the process of S29, it ends this flow.
[0110] By performing the above processing, the processor 12 can generate, as a primary problem solution vector 145, the values of multiple decision variables included in the primary problem decision variable set 1411 that minimize the primary problem objective function 1412 included in the primary problem instance 141 under the constraints imposed by the constraints included in the primary problem constraint set 1413.
[0111] Fig. 8 is a flowchart showing the flow of the splitting process of the main problem instance 141 in S14. In explaining the flowchart in Fig. 8, Figs. 9, 10, 11, and 12 will be referred to. Fig. 9 is a diagram showing an undirected graph G. Fig. 10 is a diagram showing an undirected graph G after clustering. Fig. 11 is a diagram showing an undirected graph G from which some nodes have been removed. Fig. 12 is a diagram showing the relationship between the undirected graph G and the trunk instance 131, M branch instances 132-1 and 132-2, and the common decision variable set 133.
[0112] In S14, the processor 22 executes the process shown in FIG.
[0113] First, in S31, the processor 12 generates an undirected graph G corresponding to the main problem instance 141. At this point, the undirected graph G does not include any nodes or edges.
[0114] Subsequently, in S32, the processor 12 adds to the undirected graph G a plurality of nodes that correspond one-to-one to a plurality of decision variables included in the primary problem decision variable set 1411.
[0115] Next, in S33, the processor 12 adds to the undirected graph G an edge that associates two corresponding decision variables for each combination of two decision variables included in the same term in the primary problem objective function 1412. Note that the edge may be a weighted edge that includes a weight according to the coefficient of the term, for example.
[0116] Next, in S34, the processor 12 adds to the undirected graph G an edge that associates two corresponding decision variables for each combination of two decision variables included in the same constraint in the primary problem constraint set 1413. Note that the edge may be a weighted edge that includes a weight according to the penalty given to the constraint, for example.
[0117] The processor 12 may execute the processes of S33 and S34 in reverse order or in parallel.
[0118] By executing the processes from S31 to S34, the processor 12 can generate an undirected graph G as shown in Fig. 9. The undirected graph G in Fig. 9 has nine nodes (X1 to X9) and eleven edges (E1 to E 11 ) is included. The edges described by a single line among the 11 edges (E1, E2, E4, E5, E7, E8, E 11 ) corresponds to a pair of two decision variables included in the same term in the primary problem objective function 1412. The edges (E3, E6, E9, E 10 ) corresponds to a pair of two decision variables included in the same constraint in the primal problem constraint set 1413.
[0119] Next, in S35, the processor 12 clusters the multiple nodes included in the undirected graph G using graph clustering analysis. Then, the processor 12 extracts multiple clusters from the undirected graph G. In this case, the processor 12 extracts the multiple clusters such that the number of nodes included in each of the multiple clusters is equal to or less than the upper size limit of 1431. For example, the processor 12 can cluster the multiple nodes using the clustering analysis shown in Non-Patent Document 3 and Non-Patent Document 4.
[0120] For example, the undirected graph G in Figure 10 includes two clusters (C1, C2). The first cluster (C1) includes nodes X1, X2, and X3. The second cluster (C2) includes nodes X5, X6, and X7. Note that nodes X4, X8, and X9 are not included in either cluster.
[0121] Next, in S36, the processor 12 removes nodes that are not included in any of the multiple clusters from the undirected graph G. For example, in the case of the undirected graph G in Fig. 10, the processor 12 removes nodes X4, X8, and X9.
[0122] Next, in S37, the processor 12 removes any node from the undirected graph G so that there is no node connected to multiple clusters. For example, in the case of the undirected graph G in FIG. 10, the processor 12 removes the node X2.
[0123] Note that the processor 12 does not remove a node that was originally connected to multiple clusters but is no longer connected to multiple clusters as a result of the removal of other nodes. For example, in the undirected graph G of FIG. 10, the node X6 was connected to multiple clusters before the node X2 was removed. However, when the node X2 is removed, the node X6 no longer connects to multiple clusters. Therefore, when the node X2 is removed from the undirected graph G of FIG. 10, the processor 12 does not remove the node X6.
[0124] For example, the processor 12 can execute the process of S36 by solving the problem of equation (1).
number
[0125] In formula (1), Nodes represents a set of nodes in the undirected graph G. Edges represents a set of edges in the undirected graph G. i and j are integers equal to or greater than 1 that identify the nodes. C i represents the cluster to which the i-th node belongs. C j represents the cluster to which the jth node belongs. X i represents the decision variable corresponding to the i-th node. X j represents the decision variable corresponding to the jth node.
[0126] Then, the processor 12 calculates the value of X in the solution of the problem of the equation (1). i Do not remove the node corresponding to =0, and i = 1. This allows the processor 12 to remove nodes from the undirected graph G so that there is no node connected to multiple clusters.
[0127] Next, in S38, processor 12 identifies all connected components included in undirected graph G. A connected component is a subset of undirected graph G, and is a maximal set of nodes that can be reached via edges. Undirected graph G includes multiple connected components as a result of the clustering in S35 and the node removal in S36 and S37. For example, in the case of FIG. 11, undirected graph G includes a first connected component including two nodes corresponding to X1 and X3, and a second connected component including three nodes corresponding to X5, X6, and X7.
[0128] Next, in S39, the processor 12 generates M branch decision variable sets 1321-1, 1321-2, ..., 1321-M corresponding one-to-one to the identified connected components, where M is the number of the identified connected components. Each of the M branch decision variable sets 1321-1, 1321-2, ..., 1321-M includes decision variables corresponding to the nodes belonging to the corresponding connected component. For example, in the case of Fig. 11, the processor 12 generates a first branch decision variable set 1321-1 including decision variables X1 and X3, and a second branch decision variable set 1321-2 including decision variables X5, X6, and X7.
[0129] Subsequently, the processor 12 executes the processes of S41 and S42 for each of the M branch decision variable sets 1321-1, 1321-2, . . . , 1321-M (loop process between S40 and S43).
[0130] In S41, for the m-th branch decision variable set 1321-m, the processor 12 extracts all terms including decision variables included in the m-th branch decision variable set 1321-m from among the multiple terms included in the main problem objective function 1412. Then, the processor 12 generates a polynomial by adding the extracted terms as the m-th branch objective function 1322-m.
[0131] 12, the processor 12 generates, as the first branch objective function 1322-1, a polynomial obtained by adding together a term corresponding to E1, a term corresponding to E2, and a term corresponding to E5. For example, in the case of Fig. 12, the processor 12 generates, as the second branch objective function 1322-2, a polynomial obtained by adding together a term corresponding to E4, a term corresponding to E7, and a term corresponding to E8.
[0132] In S42, for the m-th branch decision variable set 1321-m, the processor 12 extracts all constraint conditions that include decision variables included in the m-th branch decision variable set 1321-m from the constraint conditions included in the main problem constraint set 1413. Then, the processor 12 generates a set including the extracted constraint conditions as the m-th branch constraint set 1323-m.
[0133] 12, the processor 12 generates a set including constraints corresponding to E3 as a first branch constraint set 1323-1, and generates a set including constraints corresponding to E6 and constraints corresponding to E9 as a second branch constraint set 1323-2.
[0134] By executing the processes from S39 to S43, the processor 12 can generate M edge instances 132-1, 132-2, . . . , 132-M, each of which includes an edge decision variable set 1321, an edge objective function 1322, and an edge constraint set 1323.
[0135] When the processor 12 has completed the processes of S41 and S42 for all of the M branch decision variable sets 1321-1, 1321-2, . . . , 1321-M, the processor 12 advances the process to S44 (loop process between S40 and S43).
[0136] In S44, the processor 12 generates a common decision variable set 133. Specifically, the processor 12 generates a first set including all decision variables included in the M branch objective functions 1322-1, 1322-2, ..., 1322-M and the M branch constraint sets 1323-1, 1323-2, ..., 1323-M. Furthermore, the processor 12 generates a second set including decision variables included in the M branch decision variable sets 1321-1, 1321-2, ..., 1321-M. Then, the processor 12 generates a set obtained by excluding the decision variables included in the second set from the decision variables included in the first set as the common decision variable set 133. In the case of FIG. 12, the processor 12 generates a set including the decision variables X2 and X4 as the common decision variable set 133.
[0137] Next, in S45, the processor 12 generates a set as the trunk decision variable set 1311 by excluding the decision variables included in the second set (decision variables included in the M branch decision variable sets 1321-1, 1321-2, ..., 1321-M) and the decision variables included in the common decision variable set 133 from the decision variables included in the main problem decision variable set 1411. In the case of Fig. 12, the processor 12 generates a set including the decision variables X8 and X9 as the trunk decision variable set 1311.
[0138] Subsequently, in S46, the processor 12 generates, as the trunk objective function 1312, a polynomial obtained by adding terms excluding terms included in the M branch objective functions 1322-1, 1322-2, ..., 1322-M from the terms included in the main problem objective function 1412. In the case of FIG. 12, the processor 12 generates, as the trunk objective function 1312, 10 Generate an expression represented by terms corresponding to:
[0139] Next, in S47, the processor 12 generates a set including constraint conditions obtained by excluding the constraint conditions included in M branch constraint sets 1323-1, 1323-2, ..., 1323-M from the constraint conditions included in the main problem constraint set 1413, as the trunk constraint set 1313. In the case of FIG. 12, the processor 12 generates the trunk constraint set 1313 as follows: 11 Generate a set containing the constraints corresponding to
[0140] The processor 12 can generate a stem instance 131 including a stem decision variable set 1311, a stem objective function 1312, and a stem constraint set 1313 by executing the processes from S45 to S47.
[0141] When the processor 12 completes the process of S47, it ends this flow.
[0142] By performing the above processing, the processor 12 can generate a trunk instance 131, M branch instances 132-1, 132-2, ..., 132-M, and a common decision variable set 133 by exclusively dividing each of the multiple terms included in the main problem objective function 1412 in the main problem instance 141 and the main problem constraint set 1413.
[0143] In addition, since the processor 12 extracts multiple clusters so that the number of nodes contained in each is less than or equal to the size upper limit 1431, the number of decision variables contained in each of the M branch instances 132 can be made less than or equal to the size upper limit 1431.
[0144] FIG. 13 is a flowchart showing the flow of the process of generating the stem candidate vector 1361 and the common candidate vector 1362 in S19.
[0145] In S19, the processor 12 executes the process according to the flow shown in FIG.
[0146] First, in S61, the processor 12 obtains the main problem latest vector 134 and the neighborhood generation rule 1433.
[0147] The neighborhood generation rule 1433 is a rule for changing values included in the main problem latest vector 134 to generate a neighborhood vector representing a value in the neighborhood of the main problem latest vector 134. For example, the neighborhood generation rule 1433 is a rule for changing values of elements in at least the main problem latest vector 134 that correspond to decision variables included in the stem decision variable set 1311 and the common decision variable set 133.
[0148] Next, in S62, the processor 12 changes the values of elements included in the main problem latest vector 134 based on the neighborhood generation rule 1433 to generate a neighborhood vector.
[0149] Next, in S63, the processor 12 determines whether the neighborhood vector satisfies the constraints included in the trunk constraint set 1313. If the neighborhood vector does not satisfy the constraints (No in S63), the processor 12 returns the process to S62 and generates a new neighborhood vector. If the neighborhood vector satisfies the constraints (Yes in S63), the processor 12 proceeds to S64. That is, in S62 and S63, the processor 12 changes the values of some elements of the main problem latest vector 134 to generate a neighborhood vector that satisfies the constraints included in the trunk constraint set 1313.
[0150] In S64, the processor 12 generates a stem candidate vector 1361 based on the values of elements corresponding to decision variables included in the stem decision variable set 1311 in the neighborhood vector.
[0151] Next, in S65, the processor 12 generates a common candidate vector 1362 based on the values of elements corresponding to decision variables included in the common decision variable set 133 in the neighborhood vectors.
[0152] When the processor 12 finishes the process of S65, it ends this flow.
[0153] By performing the above processing, the processor 12 can change the stem candidate vector 1361 and the common candidate vector 1362 for each iteration under the condition that the constraint conditions included in the stem constraint set 1313 are satisfied.
[0154] FIG. 14 is a flowchart showing the flow of the solution-finding process for the m-th branch instance 132-m in S20.
[0155] In S20, the processor 12 executes the process for the m-th branch instance 132-m according to the flow shown in FIG.
[0156] First, in S71, the processor 12 obtains the m-th branch instance 132-m.
[0157] Next, in S72, the processor 12 generates a duplicate instance by duplicating the m-th branch instance 132-m.
[0158] Subsequently, in S73, the processor 12 generates an additional constraint condition. The additional constraint condition is a condition that the values of the decision variables included in the common decision variable set 133 must be equal to the common candidate vector 1362.
[0159] Subsequently, in S74, the processor 12 adds additional constraints to the replicated instance.
[0160] Next, in S75, the processor 12 obtains a solution for the duplicated instance by providing the duplicated instance and the processing time upper limit 1432 to the solver device 15. In this case, if the solver device 15 can obtain a solution within the processing time upper limit 1432, it outputs the solution, and if the solver device 15 cannot obtain a solution within the processing time upper limit 1432, it outputs information indicating that the solution could not be obtained.
[0161] Next, in S76, the processor 12 determines whether or not a solution for the duplicated instance was obtained within the processing time upper limit 1432. If the solution for the duplicated instance was obtained within the processing time upper limit 1432 (Yes in S76), the processor 12 proceeds to S77. If the solution for the duplicated instance was not obtained within the processing time upper limit 1432 (No in S76), the processor 12 proceeds to S78.
[0162] In S77, the processor 12 sets the solution of the acquired duplicated problem instance as the edge candidate vector 1363-m of the m-th edge instance 132-m.
[0163] In S78, the processor 12 sets the m-th branch latest vector 1343-m as the branch candidate vector 1363-m of the m-th branch instance 132-m.
[0164] When the processor 12 completes the process of S77 or S78, it ends this flow.
[0165] By performing the above processing, the processor 12 can obtain from the solver device 15 a solution that minimizes the branch objective function 1322 for each of the M branch instances 132-1, 132-2, ..., 132-M, under the constraints imposed by the constraint conditions included in the branch constraint set 1323 and the constraint that fixes the values of the decision variables included in the common decision variable set 133 to the values included in the common candidate vector 1362. If the solver device 15 obtains a solution within the processing time upper limit 1432, the processor 12 can designate the obtained solution as the branch candidate vector 1363-m. If the solver device 15 does not obtain a solution within the processing time upper limit 1432, the processor 12 can designate the branch latest vector 1343-m as the branch candidate vector 1363-m.
[0166] FIG. 15 is a flowchart showing the flow of the acceptance determination process in S22.
[0167] In S22, the processor 12 executes the process according to the flow shown in FIG.
[0168] First, in S81, the processor 12 acquires the main problem latest vector 134 and calculates the evaluation value (E latest ) is calculated.
[0169] Next, in S82, the processor 12 acquires the main problem candidate vector 136 and calculates the evaluation value (E candidate ) is calculated.
[0170] Next, in S83, the processor 12 calculates the evaluation value (E candidate ) is the evaluation value (E latest ) or less. The processor 12 determines whether the evaluation value (E candidate ) is the evaluation value (E latest) or less (Yes in S83), the process proceeds to S84. candidate ) is the evaluation value (E latest ) or less (No in S83), the process proceeds to S85.
[0171] In S84, the processor 12 outputs an acceptance determination result indicating acceptance. After completing the process of S84, the processor 12 ends this flow.
[0172] In S85, the processor 12 substitutes the inverse temperature parameter 138 for β.
[0173] Next, in S86, the processor 12 generates a value based on consecutive uniform random numbers between 0 and 1, and assigns the generated value to r.
[0174] Subsequently, in S87, the processor 12 determines whether or not the formula (2) is satisfied.
number
[0175] That is, the processor 12 multiplies the difference between the evaluation value of the main problem candidate vector 136 and the evaluation value of the main problem latest vector 134 by the inverse temperature parameter 138 (β) and −1 to obtain {−β·(E candidate -E latest )} into the exponential function (e x ) is determined to be greater than or equal to r, a value based on continuous uniform random numbers.
[0176] If the formula (2) is satisfied (Yes in S87), the processor 12 proceeds to S88. If the formula (2) is not satisfied (No in S87), the processor 12 proceeds to S89.
[0177] In S88, the processor 12 outputs an acceptance determination result indicating acceptance. In S89, the processor 12 outputs an acceptance determination result indicating non-acceptance.
[0178] When the processor 12 completes the process of S84, S88, or S89, it ends this flow.
[0179] By performing the above-described processing, the processor 12 can determine to accept the main problem candidate vector 136 of the current iteration if the evaluation value of the main problem candidate vector 136 is the same as or better than the evaluation value of the main problem latest vector 134. Also, even if the evaluation value of the main problem candidate vector 136 of the current iteration is not better than the evaluation value of the main problem latest vector 134, the processor 12 can determine whether to accept the main problem candidate vector 136 of the current iteration with a probability determined by the difference between the evaluation value of the main problem candidate vector 136 and the evaluation value of the main problem latest vector 134 and the inverse temperature parameter 138.
[0180] (Example of solution) Next, a specific example of solution using the problem solving device 1 according to the first embodiment will be described. In this example of solution, the problem solving device 1 solves a main problem instance 141 in which two max-cut problems are connected by a constraint.
[0181] The decision variables included in the main problem decision variable set 1411 for the main problem instance 141 are expressed by equation (3), where N represents the problem size. In this example, N is 5.
number
[0182] The problem of minimizing the primary problem objective function 1412 in the primary problem instance 141 is expressed by equation (4).
number
[0183] The constraints included in the primary problem constraint set 1413 for the primary problem instance 141 are expressed by equation (5).
number
[0184] Q i.j represents the value of the element in the i-th row and j-th column of the coefficient matrix Q, and is expressed by equation (6). X represents the set of edges that connect two Xs.
number
[0185] R i.j represents the value of the element in the i-th row and j-th column of the coefficient matrix R, and is expressed by equation (7). Y represents the set of edges that connect two Ys.
number
[0186] Fig. 16 is a diagram showing an undirected graph G in the solution example. Fig. 17 is a diagram showing a set of edges corresponding to a pair of two Xs and a set of edges corresponding to a pair of two Ys in the undirected graph G in the solution example.
[0187] The edges drawn with a single line in the undirected graph G in Fig. 16 correspond to pairs of two decision variables included in the same term in the primary problem objective function 1412. The edges drawn with a double line in the undirected graph G in Fig. 16 correspond to pairs of two decision variables included in the constraints included in the primary problem constraint set 1413.
[0188] The problem solving device 1 generates an undirected graph G as shown in FIGS. 16 and 17 based on the main problem instance 141 expressed by equations (3) to (7).
[0189] The problem solving device 1 clusters a plurality of nodes included in the undirected graph G shown in Fig. 16 by graph clustering analysis. In this example, the problem solving device 1 divides the undirected graph G into a cluster including nodes corresponding to the decision variables X1 to X5 and a cluster including nodes corresponding to the decision variables Y1 to Y5.
[0190] Then, the problem solving device 1 generates a stem instance 131 and a common decision variable set 133 based on the clustering result.
[0191] In this example, the decision variables included in the common decision variable set 133 are expressed by equation (8).
number
[0192] In this example, the decision variables included in the stem decision variable set 1311 in the stem instance 131 are expressed by equation (9), where φ represents an empty set.
number
[0193] In this example, the problem of minimizing the trunk objective function 1312 in the trunk instance 131 is expressed by equation (10).
number
[0194] In this example, the constraints included in the trunk constraint set 1313 in the trunk instance 131 are expressed by equation (11).
number
[0195] Furthermore, based on the clustering result, the problem solving device 1 generates M branch instances 132. In this example, the problem solving device 1 generates a first branch instance 132-1 and a second branch instance 132-2 as the M branch instances 132.
[0196] In this example, the decision variables included in the branch decision variable set 1321-1 in the first branch instance 132-1 are expressed by equation (12).
number
[0197] In this example, the problem of minimizing the branch objective function 1322-1 for the first branch instance 132-1 is expressed by equation (13).
number
[0198] In this example, the constraints included in the edge constraint set 1323-1 of the first edge instance 132-1 are expressed by equation (14).
number
[0199] In this example, the decision variables included in the branch decision variable set 1321-2 in the second branch instance 132-2 are expressed by equation (15).
number
[0200] In this example, the problem of minimizing the branch objective function 1322-2 for the second branch instance 132-2 is expressed by equation (16).
number
[0201] In this example, the constraints included in the edge constraint set 1323-2 of the second edge instance 132-2 are expressed by equation (17).
number
[0202] 18 is a diagram showing an example of the main problem latest vector 134. The problem solving device 1 generates the main problem latest vector 134. In this example, the main problem latest vector 134 includes an edge latest vector 1343-1 corresponding to the first edge instance 132-1 and an edge latest vector 1343-2 corresponding to the second edge instance 132-2.
[0203] In this example, the branch latest vector 1343-1 corresponding to the first branch instance 132-1 is expressed by equation (18).
number
[0204] In this example, the branch latest vector 1343-1 corresponding to the second branch instance 132-2 is expressed by equation (19).
number
[0205] 19 is a diagram showing an example of the common candidate vector 1362. The problem solving device 1 generates the common candidate vector 1362. The common candidate vector 1362 represents the values of the decision variables included in the main problem decision variable set 1411.
[0206] In this example, the common candidate vector 1362 is expressed by equation (20).
number
[0207] 20 is a diagram showing an example of a branch candidate vector 1363-1 corresponding to the first branch instance 132-1. The problem solving device 1 generates a branch candidate vector 1363-1 corresponding to the first branch instance 132-1. The branch candidate vector 1363-1 corresponding to the first branch instance 132-1 represents the values of the decision variables included in the branch decision variable set 1321-1.
[0208] In this example, the branch candidate vector 1363-1 corresponding to the first branch instance 132-1 is expressed by equation (21).
number
[0209] 21 is a diagram showing an example of an edge candidate vector 1363-2 corresponding to the second edge instance 132-2. The problem solving device 1 generates an edge candidate vector 1363-2 corresponding to the second edge instance 132-2. The edge candidate vector 1363-2 corresponding to the second edge instance 132-2 represents the values of the decision variables included in the edge decision variable set 1321-2.
[0210] In this example, the branch candidate vector 1363-2 corresponding to the second branch instance 132-2 is expressed by equation (22).
number
[0211] 22 is a diagram showing an example of the main problem solution vector 145. The problem solving device 1 generates the main problem solution vector 145. In this example, the main problem solution vector 145 includes a branch solution vector 1453-1 corresponding to the first branch instance 132-1 and a branch solution vector 1453-2 corresponding to the second branch instance 132-2.
[0212] In this example, the branch solution vector 1453-1 corresponding to the first branch instance 132-1 is expressed by equation (23).
number
[0213] In this example, the branch solution vector 1453-1 corresponding to the second branch instance 132-2 is expressed by equation (24).
number
[0214] (effect) For example, sensor networks and social graphs generally have a structure that includes multiple clusters based on some commonality, hubs that connect the multiple clusters, and outliers that do not belong to any cluster or are not hubs. Such structures can be extracted using graph clustering techniques. Conventionally, various optimization problems on sensor networks and social graphs have been optimized by treating each of the multiple clusters as a subproblem. However, sensor networks and social graphs are mesh-like networks in which subproblems are connected by hubs that connect the multiple clusters. For this reason, it is difficult to optimize for hubs using conventional techniques.
[0215] In contrast, the problem solving device 1 according to the first embodiment divides the main problem instance 141 by graph clustering to generate a trunk instance 131 including a decision variable corresponding to the outlier, M branch instances 132 corresponding to each of the multiple clusters, and a common decision variable set 133 including a decision variable corresponding to the hub. Next, the problem solving device 1 generates a trunk candidate vector 1361 representing the values of the decision variables included in the trunk instance 131, and a common candidate vector 1462 representing the values of the decision variables included in the common decision variable set 133. Next, the problem solving device 1 fixes the common candidate vector 1462 and solves each of the M branch instances 132, thereby generating M branch candidate vectors 1463 representing the values of the decision variables included in each of the M branch instances 132. Then, the problem-solving device 1 repeatedly generates the trunk candidate vector 1361 and the common candidate vector 1462 and M branch candidate vectors 1463 to search for the best main problem candidate vector 136 and generate the main problem solution vector 145, which is the solution to the main problem instance 141.
[0216] The problem-solving device 1 according to the first embodiment can calculate solutions to problems that include a huge number of decision variables, have no natural total or partial order, and have a subproblem structure in a realistic amount of time.
[0217] (Second embodiment) Next, a problem-solving system 3 according to the second embodiment will be described.
[0218] FIG. 23 is a diagram showing the configuration of a problem-solving system 3 according to the second embodiment.
[0219] The problem-solving system 3 includes a problem-solving device 1 and one or more sub-problem-solving devices 2.
[0220] The problem-solving device 1 has the same configuration as the first embodiment, and further includes a communication port 18. The communication port 18 is connected to a processor 12, a memory 13, a solver device 15, a storage device 14, an input device 16, and an output device 17 via a bus 11.
[0221] The communication port 18 is connected via a communication network to each of one or more sub-problem solving devices 2. The communication port 18 transmits and receives information to and from each of one or more sub-problem solving devices 2 via the communication network.
[0222] Each of the one or more sub-problem solving devices 2 includes a bus 21, a processor 22, a memory 23, a storage device 24, a solver device 25, and a communication port 28. The processor 22, the memory 23, the storage device 24, the solver device 25, and the communication port 28 are connected to each other via a bus 11.
[0223] The processor 22, memory 23, storage device 24 and solver device 25 of each of the one or more sub-problem solving devices 2 have functions similar to those of the processor 12, memory 13, solver device 15 and storage device 14 provided in the problem solving device 1 of the first embodiment.
[0224] Each of the one or more sub-problem solving devices 2 transmits and receives information via a communication network to execute a part of the processing executed by the problem solving device 1 according to the first embodiment. For example, each of the one or more sub-problem solving devices 2 executes a part of the subroutines of M branch solving subroutines 1423-1, 1423-2, ..., 1423-M. That is, each of the one or more sub-problem solving devices 2 acquires a part of the branch instances 132 of M branch instances 132-1, 132-2, ..., 132-M and a common decision variable set 133 from the problem solving device 1 via the communication network. Next, each of the one or more sub-problem solving devices 2 executes the processing shown in FIG. 14 to generate branch candidate vectors 1363, which are solutions to the acquired branch instances 132. Then, each of the one or more sub-problem solving devices 2 transmits the branch candidate vectors 1363 to the problem solving device 1 via the communication network.
[0225] The problem-solving system 3 according to the second embodiment can use multiple computer resources to calculate a solution that minimizes an objective function that includes a huge number of decision variables, at the expense of additional communication overhead. Therefore, the problem-solving system 3 according to the second embodiment can solve problems that are difficult to solve using a single computer resource.
[0226] (Third embodiment) Next, a problem-solving device 1 according to the third embodiment will be described. The problem-solving device 1 according to the third embodiment has substantially the same functions and configuration as the first embodiment. Therefore, detailed description of the problem-solving device 1 according to the third embodiment will be omitted, except for the differences from the first embodiment. Note that the problem-solving device 1 according to the third embodiment can also be applied to the problem-solving system 3 according to the second embodiment.
[0227] FIG. 24 is a flowchart showing the flow of the division process of the main problem instance 141 in S14 in the third embodiment.
[0228] In S14, the processor 12 according to the third embodiment executes the process shown in Fig. 24. Following S34, the processor 12 executes the process of S101.
[0229] In S101, the processor 12 acquires a combination of two decision variables manually input by a user and adds an edge relating the acquired two decision variables to the undirected graph G. In this case, the edge may be a weighted edge including a weight input by the user. The processor 12 may execute the process of S101 in parallel with S33 and S35. After completing the process of S101, the processor 12 advances the process to S35.
[0230] For example, the user adds edges to the undirected graph G according to his / her own knowledge so that an easy-to-solve edge instance 132 is generated. This enables the processor 12 to reduce the time required to solve the edge instance 132.
[0231] In particular, when the main problem instance 141 is included in a difficult problem class, the processor 12 can significantly reduce the solution time by decomposing the main problem instance 141 into a plurality of easy-to-solve branch instances 132. More specifically, for example, when the main problem instance 141 is a non-convex quadratic programming problem, if the number of quadratic terms in the objective function is sufficiently small, some of the branch instances 132 can be converted into linear programming problems by adding edges to parts of the main problem instance 141 that can be processed as linear programming problems. In this case, the problem solving device 1 is equipped with a solver dedicated to linear programming problems. Then, the processor 12 solves some of the branch instances 132, which are linear programming problems, using the solver dedicated to linear programming problems. This allows the processor 12 to significantly reduce the solution time.
[0232] (Fourth embodiment) Next, a problem-solving device 1 according to the fourth embodiment will be described. The problem-solving device 1 according to the fourth embodiment has substantially the same functions and configuration as the first embodiment. Therefore, detailed description of the problem-solving device 1 according to the fourth embodiment will be omitted, except for the differences from the first embodiment. Note that the problem-solving device 1 according to the fourth embodiment can also be applied to the problem-solving system 3 according to the second embodiment.
[0233] FIG. 25 is a flowchart showing the flow of the division process of the main problem instance 141 in S14 in the fourth embodiment.
[0234] In S14, the processor 12 according to the fourth embodiment executes the process shown in Fig. 25. Following S34, the processor 12 executes the process of S111.
[0235] In S111, the processor 12 selects a combination of two decision variables having similar variable domains from among a plurality of decision variables. Then, the processor 12 adds an edge associating the two decision variables included in the selected combination to the undirected graph G. In this case, the edge may be a weighted edge including a weight input by the user. The processor 12 may execute the process of S111 in parallel with S33 and S35. After completing the process of S111, the processor 12 advances the process to S35.
[0236] A variable domain represents the type or range of values of a decision variable. For example, the variable domain differs depending on whether the decision variable takes on the binary values 0 and 1 or a continuous value within a predetermined range. The variable domain may also differ depending on the content of the value represented by the decision variable. For example, if the decision variable represents a stock price, the variable domain may differ depending on the industry of the stock price represented by the decision variable, such as shipbuilding, manufacturing, or services.
[0237] As a result, the processor 12 utilizes the similarity of the variable domains as implicit knowledge and adds edges to the undirected graph G so as to generate an easy-to-solve edge instance 132 without receiving explicit input from the user. This allows the processor 12 to reduce the time required to solve the edge instance 132 even without user knowledge. For example, when the main problem instance 141 is a problem in which a continuous optimization problem and a combinatorial optimization problem are joined by constraints, the processor 12 according to the fourth embodiment can separate the main problem instance 141 by utilizing a variable domain, so that some of the branch instances 132 are continuous optimization problems and other branch instances 132 are combinatorial optimization problems. In this case, the problem solving device 1 includes a dedicated solver for continuous optimization problems and a dedicated solver for combinatorial optimization problems. The processor 12 then solves some of the branch instances 132 that are continuous optimization problems using the dedicated solver for continuous optimization problems, and solves other branch instances 132 that are combinatorial optimization problems using the dedicated solver for optimization problems. This allows the processor 12 to significantly reduce the solution time.
[0238] (Programs, etc.) The main problem-solving program 142 executed by the problem-solving device 1 is provided as a file in an installable or executable format recorded on a computer-readable recording medium such as a CD-ROM, a flexible disk (FD), a CD-R, or a DVD (Digital Versatile Disk).
[0239] The main problem-solving program 142 may also be configured to be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network.The main problem-solving program 142 may also be configured to be provided or distributed via a network such as the Internet.The main problem-solving program 142 may also be configured to be provided by being pre-installed in a ROM or the like.
[0240] The problem-solving device 1 may also be realized by a reconfigurable semiconductor device such as an FPGA. The problem-solving device 1 may also be realized by a CPU, a microprocessor, a GPU, an ASIC, or an electronic circuit including these circuits. The problem-solving device 1 may also be realized by an information processing device such as a computer, a computer system configured by multiple computers or servers communicating with each other via a network, or a PC cluster in which multiple computers work together to perform information processing.
[0241] Furthermore, when the problem-solving device 1 is realized by a reconfigurable semiconductor device such as an FPGA, the circuit information (configuration data) to be written into the reconfigurable semiconductor device to operate the reconfigurable semiconductor device as the problem-solving device 1 may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Furthermore, the circuit information (configuration data) to be written into the reconfigurable semiconductor device to operate the reconfigurable semiconductor device as the problem-solving device 1 may be provided by being recorded on a computer-readable recording medium.
[0242] Furthermore, when the problem-solving device 1 is realized by a semiconductor device such as an ASIC, the circuit information representing the circuit configuration described in a hardware description language may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network in order to operate the semiconductor device such as an ASIC as the problem-solving device 1. Furthermore, in order to operate the semiconductor device such as an ASIC as the problem-solving device 1, the circuit information representing the circuit configuration described in a hardware description language may be provided by being recorded on a computer-readable recording medium.
[0243] Although the embodiments of the present invention have been described above, the above-described embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These novel embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the inventions and their equivalents as defined in the claims. [Explanation of symbols]
[0244] 1 Problem solving device 2 Sub-problem solving device 3 Problem-solving system 11,21 Bus 12,22 processor 13,23 memory 14,24 Storage device 15,25 Solver device 16 Input Devices 17 Output Devices 18,28 communication ports 131 trunk instances 132 branch instances 133 Common decision variable set 134 Main Problem Latest Vector 135 Best Vector for the Primal Problem 136 Primary problem candidate vectors 141 Main Problem Instance 142 Main problem solving program 143 Hyperparameters 144 Primal problem initial vector 145 Primary problem solution vector 1311 Stem Decision Variable Set 1312 Stem Objective Function 1313 Stem constraint set 1321 Branch decision variable set 1322 Branch Objective Function 1323 Edge constraint set 1411 Primal problem decision variable set 1412 Primal problem objective function 1413 Principal Problem Constraint Set
Claims
1. A problem solving device that calculates a primary problem solution vector that represents a solution that minimizes a primary problem objective function, which is a polynomial obtained by adding up multiple terms, under constraints imposed by constraint conditions included in a primary problem constraint set, each of the plurality of terms is an equation obtained by multiplying one or more decision variables among a plurality of decision variables by a coefficient; obtaining a primal problem instance including the primal problem objective function and the primal problem constraint set; by exclusively dividing each of the plurality of terms included in the main problem objective function and the main problem constraint set, a trunk instance including a trunk objective function that is an expression obtained by adding up some of the plurality of terms and a trunk constraint set that is a subset of the main problem constraint set, and M branch instances (M is an integer of 2 or more) each including a branch objective function that is an expression obtained by adding up some of the plurality of terms and a branch constraint set that is a subset of the main problem constraint set; generating a common decision variable set including decision variables commonly used in the trunk instance and any two of the M branch instances; generating a stem candidate vector representing the values of decision variables included in the stem instance and a common candidate vector representing the values of decision variables included in the common decision variable set; generating, for each of the M branch instances, a branch candidate vector representing a solution that minimizes the branch objective function under constraints imposed by the constraints included in the branch constraint set and constraints that fix the values of the decision variables included in the common decision variable set to the values included in the common candidate vector; outputting the primal problem solution vector including the stem candidate vector and the branch candidate vector for each of the M branch decision variables; A problem solving device comprising a processing unit.
2. the primary problem instance further includes a primary problem decision variable set including the plurality of decision variables; each of the M branch instances further includes a branch decision variable set that is a subset of the main problem decision variable set; the branch decision variable set of an m-th branch instance among the M branch instances (m is an integer of 1 to M) includes a decision variable that is not included in the branch decision variable set of a branch instance different from the m-th branch instance among the M branch instances, the branch objective function of the m-th branch instance includes a term that is not included in the branch objective function of a branch instance different from the m-th branch instance; the branch constraint set of the m-th branch instance includes a constraint that is not included in the branch constraint set of a branch instance different from the m-th branch instance; the stem instance further includes a set of stem decision variables that is a subset of the set of main problem decision variables; the trunk decision variable set includes decision variables from the main problem decision variable set excluding decision variables included in the common decision variable set and the branch decision variable sets of the M branch instances, the trunk objective function includes, from among the plurality of terms, terms excluding terms included in the branch objective functions of the M branch instances; The trunk constraint set includes constraints of the main problem constraint set excluding constraints included in the branch constraint sets of the M branch instances.
2. The problem solving device according to claim 1.
3. The processing unit generates, for each of the M branch instances, an equation obtained by adding together terms including decision variables included in the branch decision variable set from among the plurality of terms included in the main problem objective function, as the branch objective function.
3. The problem solving device according to claim 2.
4. The processing unit generates, for each of the M branch instances, a set including constraint conditions that include decision variables included in the branch decision variable set, among constraint conditions included in the main problem constraint set, as the branch constraint set.
4. The problem solving device according to claim 3.
5. The processing unit generates, as the common decision variable set, a set obtained by excluding a second set including decision variables included in all branch decision variable sets of the M branch instances from a first set including decision variables included in all of the branch objective functions of the M branch instances and all of the branch constraint sets of the M branch instances.
5. The problem solving device according to claim 4.
6. The processing unit generates, as the trunk decision variable set, a set obtained by excluding all of the branch decision variable sets of the M branch instances and the common decision variable set from the main problem decision variable set.
6. The problem solving device according to claim 5.
7. The processing unit generates, as the trunk objective function, an equation obtained by adding together the multiple terms included in the main problem objective function, excluding terms included in all branch objective functions of the M branch instances.
7. The problem solving device according to claim 6.
8. The processing unit generates, as the trunk constraint set, a set obtained by removing all of the branch constraint sets of the M branch instances from the main problem constraint set.
8. The problem solving device according to claim 7.
9. The processing unit adding a plurality of nodes to the undirected graph that correspond one-to-one to the plurality of decision variables; adding an edge to the undirected graph that associates two corresponding decision variables for each combination of two decision variables included in the same term in the main problem objective function and each combination of two decision variables included in the same constraint in the main problem constraint set; clustering the undirected graph into a plurality of clusters using graph clustering analysis; removing, from the undirected graph, nodes from the plurality of nodes that do not belong to any of the plurality of clusters; removing any node from the undirected graph among the plurality of nodes so that the undirected graph does not include a node connected to two or more clusters among the plurality of clusters; identifying a plurality of connected components included in the undirected graph; The plurality of connected components are associated with the M number of edge instances, and the edge decision variable set of each of the M number of edge instances includes a decision variable corresponding to a node included in the associated connected component among the plurality of connected components.
3. The problem solving device according to claim 2.
10. The processing unit performs clustering so that the number of nodes included in each of the plurality of clusters is equal to or less than a preset upper size limit.
10. The problem solving apparatus according to claim 9.
11. The processing unit adds an edge to the undirected graph that associates a combination of two decision variables input by a user.
10. The problem solving apparatus according to claim 9.
12. The processing unit adds an edge to the undirected graph that associates a combination of two decision variables having similar variable domains among the plurality of decision variables.
10. The problem solving apparatus according to claim 9.
13. The processing unit a process of generating the stem candidate vector and the common candidate vector that satisfy the constraint conditions included in the stem constraint set; a generation process for generating, for each of the M branch instances, the branch candidate vector representing a solution that minimizes the branch objective function under constraints imposed by the constraint conditions included in the branch constraint set and constraints that fix the values of the decision variables included in the common decision variable set to the values included in the common candidate vector; and A process of determining an evaluation value of a main problem candidate vector including the trunk candidate vector and the branch candidate vector for each of the M branch decision variables, Repeating the process while changing the stem candidate vector and the common candidate vector; The processing unit outputs the main problem candidate vector with the best evaluation value as the main problem solution vector.
2. The problem solving device according to claim 1.
14. For each iteration, the processing unit: If the evaluation value of the main problem candidate vector is better than the evaluation value of the main problem latest vector, which is the latest main problem candidate vector, then the main problem candidate vector is accepted; If the main problem candidate vector is accepted, update the main problem latest vector with the main problem candidate vector; When the main problem candidate vector is accepted, if the evaluation value of the main problem candidate vector is better than the main problem best vector, update the main problem best vector with the main problem latest vector; When the iteration is performed until a predetermined termination condition is met, the processing unit outputs the best vector for the main problem as the solution vector for the main problem.
14. The problem solving apparatus according to claim 13.
15. When the evaluation value of the main problem candidate vector is not better than the evaluation value of the main problem latest vector, the processing unit accepts the main problem candidate vector with a probability determined by a difference between the evaluation value of the main problem candidate vector and the evaluation value of the main problem latest vector and a predetermined inverse temperature parameter.
15. The problem solving apparatus according to claim 14.
16. The processing unit If a solution can be calculated for each of the M branch instances within a processing time upper limit representing a predetermined time, the calculated solution is set as the branch candidate vector; If a solution cannot be calculated within the upper processing time limit, the corresponding element in the main problem latest vector, which is the latest main problem candidate vector, is set as the branch candidate vector.
14. The problem solving apparatus according to claim 13.
17. The processing unit solves a solution that minimizes the branch objective function in parallel for the M branch instances.
14. The problem solving apparatus according to claim 13.
18. A method for solving a problem, which calculates a primary problem solution vector representing a solution that minimizes a primary problem objective function, which is a polynomial obtained by adding up multiple terms, under constraints imposed by constraint conditions included in a primary problem constraint set, by an information processing device, comprising: each of the plurality of terms is an equation obtained by multiplying one or more decision variables among a plurality of decision variables by a coefficient; The information processing device, obtaining a primal problem instance including the primal problem objective function and the primal problem constraint set; by exclusively dividing each of the plurality of terms included in the main problem objective function and the main problem constraint set, a trunk instance including a trunk objective function that is an expression obtained by adding up some of the plurality of terms and a trunk constraint set that is a subset of the main problem constraint set, and M branch instances (M is an integer of 2 or more) each including a branch objective function that is an expression obtained by adding up some of the plurality of terms and a branch constraint set that is a subset of the main problem constraint set; generating a common decision variable set including decision variables commonly used in the trunk instance and any two of the M branch instances; generating a stem candidate vector representing the values of decision variables included in the stem instance and a common candidate vector representing the values of decision variables included in the common decision variable set; generating, for each of the M branch instances, a branch candidate vector representing a solution that minimizes the branch objective function under constraints imposed by the constraints included in the branch constraint set and constraints that fix the values of the decision variables included in the common decision variable set to the values included in the common candidate vector; outputting the primal problem solution vector including the stem candidate vector and the branch candidate vector for each of the M branch decision variables; Problem solving method.
19. A program for causing an information processing device to function as a problem solving device that calculates a primary problem solution vector that represents a solution that minimizes a primary problem objective function, which is a polynomial obtained by adding up multiple terms, under constraints imposed by constraint conditions included in a primary problem constraint set, each of the plurality of terms is an equation obtained by multiplying one or more decision variables among a plurality of decision variables by a coefficient; The information processing device includes: obtaining a primal problem instance comprising the primal problem objective function and the primal problem constraint set; By exclusively dividing each of the plurality of terms included in the main problem objective function and the main problem constraint set, a trunk instance including a trunk objective function that is an expression obtained by adding up some of the plurality of terms and a trunk constraint set that is a subset of the main problem constraint set, and M branch instances (M is an integer of 2 or more) each including a branch objective function that is an expression obtained by adding up some of the plurality of terms and a branch constraint set that is a subset of the main problem constraint set are generated; generating a common decision variable set including decision variables commonly used in the trunk instance and any two of the M branch instances; generating a stem candidate vector representing the values of decision variables included in the stem instance and a common candidate vector representing the values of decision variables included in the common decision variable set; generating, for each of the M branch instances, a branch candidate vector representing a solution that minimizes the branch objective function under constraints imposed by the constraints included in the branch constraint set and constraints that fix the values of the decision variables included in the common decision variable set to the values included in the common candidate vector; outputting the primal problem solution vector including the stem candidate vector and the branch candidate vector for each of the M branch decision variables; program.
Citation Information
Patent Citations
Target planning problem solving method and node selecting method and device
CN117371674A
Battery replacement cabinet site selection path optimization method for electric bicycles in take-out delivery scene
CN117408398A
Information processor, solution method, and solution program
JP2021179778A
Information processing apparatus, information processing method, and program
JP2024084000A
Calculation device, calculation method, and program
JP2021043589A