Problem solution device, problem solution method, and program
The problem-solving device efficiently calculates accurate solutions for optimization problems with many variables by dividing decision variables into high and low influence groups, performing sampling and statistical processing, and updating a decision variable table, addressing inefficiencies in existing algorithms.
Patent Information
- Application Number
- JP2024165798
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-01
- Filing Date
- 2024-09-25
- Publication Date
- 2025-09-11
AI Technical Summary
Existing optimization algorithms struggle to solve problems with a large number of variables efficiently and accurately, particularly those without a clear subproblem structure or natural total or partial order, such as drug combination problems, leading to inefficiencies and inaccuracies in computational time.
A problem-solving device and method that divides decision variables into those with high and low influence, uses sampling and statistical processing on high-influence variables, and iteratively updates a decision variable replacement table to calculate approximate solutions, leveraging a simulated bifurcation algorithm for combinatorial optimization.
Enables the calculation of solutions with high accuracy in a short time for optimization problems with numerous variables, even when they lack a natural order or cluster structure, by extracting a subproblem structure and utilizing heuristic methods.
Smart Images

Figure 2025133681000001_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.
[0021] One real-world optimization problem is the problem of drug combinations. The effectiveness of drugs is not simply the sum of their therapeutic effects, but is generally determined by taking into consideration the synergistic effects of drugs. Furthermore, there are harmful combinations of drugs when used in combination with other drugs, which are called contraindications for combination and cautions for combination. In Japan, when prescribing drugs, doctors and pharmacists double-check to ensure that contraindications and cautions for combination do not occur.
[0022] The drug combination problem, which takes into account the synergistic effects of two types of drugs, can be expressed as an optimization problem as follows: (1) Combinations of whether or not to prescribe each candidate drug (2) Under the constraints that there are no contraindications or precautions for use in combination, (3) Problems to find the most effective combination of drugs, taking into account secondary synergistic effects
[0023] In mathematical optimization terms, such a drug combination problem is called a quadratic weighted maximum independent set problem.
[0024] Such drug combination problems can be treated as a network optimization problem by defining each of multiple drugs as a node, setting the therapeutic effect of the corresponding drug as the node weight, and assigning synergistic effect coefficients, contraindications for combined use, and cautions for combined use as edge weights.
[0025] However, the number of types of drugs available today is enormous. For example, a drug combination problem can involve millions of binary variables. A typical QUBO (Quadratic Unconstrained Binary Optimization) solver has difficulty directly solving an optimization problem involving such a huge number of binary variables. Furthermore, the drug combination problem does not have a clear subproblem structure, and no natural total or partial order exists, making it difficult to solve using the first to third algorithms described above. [Prior art documents] [Patent documents]
[0026] [Patent Document 1] Japanese Patent Publication No. 2023-035664 [Patent Document 2] Japanese Patent Publication No. 2021-043667 [Patent Document 3] Japanese Patent Publication No. 2021-043589 [Non-patent literature]
[0027] [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., & Yarkoni, S., “Solving workflow scheduling problems with QUBO modeling,” May 10, 2022, Internet<URL,https: / / arXiv preprint arXiv:2205.04844> [Non-patent document 3] 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 4] 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]
[0028] The problem to be solved by the present invention is to provide a problem-solving device, a problem-solving method, and a program that can calculate a solution to an optimization problem that includes a huge number of variables with high accuracy in a short time. [Means for solving the problem]
[0029] A problem solving device according to an embodiment includes a problem acquisition unit, a dependent problem generation unit, an approximation problem generation unit, and a table update unit. The problem acquisition unit acquires a master problem for minimizing an objective function including multiple decision variables under or without constraints. The dependent problem generation unit generates a dependent problem including, as multiple dependent decision variables, two or more decision variables among the multiple decision variables that have not been registered as determined in the decision variable replacement table in response to a new registration process being executed to newly register the value of any of the multiple decision variables in the decision variable replacement table in which values of the determined decision variables among the multiple decision variables are registered. Each time the dependent problem is generated, the approximation problem generation unit generates an approximation problem including, as two or more remaining decision variables, some or all of the multiple dependent decision variables with the greatest influence. The table update unit performs the new registration process of determining a value for each of the two or more remaining decision variables based on a plurality of solutions to the approximation problem, and newly registering the values determined by performing the statistical processing for each of one or more decision variables corresponding to some or all of the two or more remaining decision variables in the decision variable replacement table. When all values of the plurality of decision variables included in the main problem have been registered in the decision variable replacement table, the solution output unit outputs a solution to the main problem based on all values of the plurality of decision variables registered in the decision variable replacement table. [Brief explanation of the drawings]
[0030] [Figure 1A] FIG. 1A is a diagram showing the functional configuration of a problem-solving device according to the first embodiment. [Figure 1B] FIG. 1B is a diagram showing the functional configuration when the central processing unit executes processing according to a program. [Figure 2] FIG. 2 is a diagram illustrating information stored in long-term storage. [Figure 3] FIG. 3 is a diagram showing information stored in the temporary storage device. [Figure 4] FIG. 4 is a functional block diagram showing an outline of the processing flow of the problem-solving device. [Figure 5] FIG. 5 is a flowchart showing the processing flow of the sampling schema method program. [Figure 6] FIG. 6 is a flowchart showing the processing from S111 to S115 of the dependent problem instance derivation subprogram. [Figure 7] FIG. 7 is a flowchart showing the processing from S116 to S129 of the dependent problem instance derivation subprogram. [Figure 8] FIG. 8 is a flowchart showing the process flow of the subprogram for deriving a solution to a relaxed problem instance. [Figure 9] FIG. 9 is a flowchart showing the processing flow of the subprogram for deriving an approximate problem instance. [Figure 10] FIG. 10 is a flowchart showing the process flow from S411 to S418 of the decision variable replacement table item addition subprogram. [Figure 11] FIG. 11 is a flowchart showing the process flow from S419 to S425 of the decision variable replacement table item addition subprogram. [Figure 12] FIG. 12 is a flowchart showing the process flow from S426 to S442 of the decision variable replacement table item addition subprogram. [Figure 13] FIG. 13 is a flowchart showing the process flow of the subprogram for deriving a solution instance for a main problem. [Figure 14] FIG. 14 is a diagram showing the functional configuration of a problem-solving device according to the second embodiment. [Figure 15] FIG. 15 is a diagram showing the functional configuration of a problem-solving system according to the third embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0031] (First embodiment) First, a problem-solving device 1 according to the first embodiment will be described.
[0032] The problem solving device 1 calculates a solution to a network optimization problem. The problem solving device 1 divides each of the multiple decision variables included in the network optimization problem into those with a large influence and those with a small influence, replaces the decision variables with a small influence with estimated values, performs sampling and statistical processing on the decision variables with a large influence, and replaces decision variables with strong statistical biases with values based on the statistical bias, repeating this process. In this way, the problem solving device 1 calculates an approximate solution to the network optimization problem. Even if the network represented by the network optimization problem does not have a natural total order or partial order and does not have a cluster structure, the problem solving device 1 can extract a subproblem structure from the network optimization problem and calculate a solution with high accuracy in a short time.
[0033] FIG. 1A is a diagram showing the functional configuration of a problem-solving device 1 according to the first embodiment.
[0034] The problem-solving device 1 includes a bus 11, a temporary memory device 12, a central processing unit 13, a sampler 14, a long-term memory device 15, an input device 16, and an output device 17. The temporary memory device 12, the central processing unit 13, the sampler 14, the long-term memory device 15, the input device 16, and the output device 17 are connected to each other via the bus 11.
[0035] The temporary storage device 12 and the long-term storage device 15 are storage devices that store information. The central processing unit 13 is an information processing device that executes processing according to a program using a processor such as a CPU (Central Processing Unit). The input device 16 acquires information from a user or another device. The output device 17 outputs information to a user or another device.
[0036] The sampler 14 executes a solution process to find a solution to a given problem. In this embodiment, sampling refers to using the sampler 14 to find and obtain a solution to a problem.
[0037] The sampler 14 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 sampler 14 may also be realized by an accelerator, an application-specific integrated circuit (ASIC), or an electronic circuit including these circuits. The sampler 14 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.
[0038] The sampler 14 uses a heuristic solution algorithm to solve a problem that minimizes an objective function, thereby obtaining an approximate solution. As a result, the sampler 14 can output multiple solutions that minimize a given objective function. Note that, from among the large number of solutions obtained by solving a problem using a heuristic solution algorithm, the sampler 14 outputs, for example, multiple solutions whose values obtained by substituting the solutions into the objective function are smaller than a predetermined value, or a predetermined number of multiple solutions whose values obtained by substituting the solutions into the objective function are smallest.
[0039] The sampler 14 may be any device that can obtain multiple solutions that minimize a function. For example, the sampler 14 may be a device that uses quantum annealing technology or quasi-quantum annealing technology.
[0040] In this embodiment, the sampler 14 solves the problem using a simulated bifurcation algorithm. The simulated bifurcation algorithm is described, for example, in Non-Patent Document 3, Non-Patent Document 4, 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 are continuous-valued variables. A simulated bifurcation algorithm for solving combinatorial optimization problems in which some or all of the multiple decision variables are continuous-valued variables is described, for example, in Patent Document 3.
[0041] In this embodiment, the sampler 14 includes multiple engines that each independently execute a simulated bifurcation algorithm. The sampler 14 outputs multiple solutions for a given objective function by executing the multiple engines in parallel. The sampler 14 may output multiple solutions by having one engine repeatedly execute the simulated bifurcation algorithm multiple times.
[0042] The simulated bifurcation algorithm uses multiple position variables and multiple momentum variables that correspond one-to-one to multiple decision variables included in a given objective function. At the start of execution, the simulated bifurcation algorithm sets a set of initial values for the multiple position variables or multiple momentum variables. The simulated bifurcation algorithm is likely to output different approximate solutions if different sets of initial values are set for the multiple position variables and multiple momentum variables. In this embodiment, the sampler 14 outputs multiple solutions by setting different sets of initial values for the multiple position variables or multiple momentum variables used by each of the multiple engines.
[0043] FIG. 1B is a diagram showing the functional configuration when the central processing unit 13 executes processing according to a program.
[0044] The central processing unit 13 includes a problem acquisition unit 22, a table memory unit 24, a dependent problem generation unit 26, a relaxed problem generation and solution finding unit 28, an approximate problem generation unit 30, a solution acquisition unit 32, a table update unit 34, and a solution output unit 36.
[0045] The problem acquisition unit 22 acquires a primal problem for minimizing an objective function including a plurality of decision variables under or without constraints. Each of the plurality of decision variables is a binary variable representing a first value or a second value. The objective function is a quadratic function. The constraints are expressed by one or more linear constraint equations including any of the plurality of decision variables.
[0046] The table storage unit 24 is realized by the temporary storage unit 12 when the central processing unit 13 executes a program. The table storage unit 24 stores a decision variable replacement table.
[0047] The decision variable replacement table stores the values of the decision variables that have already been determined among a plurality of decision variables. In this embodiment, the decision variable replacement table stores items. Each item includes a serial number, a replacement source decision variable, and a replacement value.
[0048] The serial number indicates the order of the items. The serial number does not overlap with other items.
[0049] The replacement source decision variable identifies one of multiple decision variables. The replacement source decision variable does not overlap with other items.
[0050] The replacement value is the value of a previously determined decision variable for the source decision variable. In this embodiment, the replacement value represents a first value, a second value, a previously determined decision variable multiplied by a non-inverted code that does not invert the sign, or a previously determined decision variable multiplied by an inverted code that inverts the sign. The previously determined decision variable represents the source decision variable whose serial number is included in the subsequent item.
[0051] That is, in this embodiment, if the replacement value has a correlation with the value of a previously output decision variable, the replacement value is represented by a value obtained by multiplying the value of the previously output decision variable by a non-inverting sign, or a value obtained by multiplying the value of the previously output decision variable by an inverting sign.
[0052] The decision variable replacement table is empty before the process of solving the main problem. Items are added to the decision variable replacement table sequentially, starting with the item with the lowest serial number. When the process of solving the main problem is complete, the decision variable replacement table contains as many items as there are decision variables.
[0053] In the decision variable replacement table, decision variables with a large influence on the main problem are included as replacement source decision variables in an item with an earlier serial number than decision variables with a small influence on the main problem. Therefore, in the decision variable replacement table, values of decision variables with a large influence are registered earlier than values of decision variables with a small influence.
[0054] The dependent problem generator 26 generates a dependent problem in response to the execution of a new registration process for newly registering the value of any one of a plurality of decision variables in the decision variable replacement table.
[0055] The dependent problem includes, as a plurality of dependent decision variables, two or more decision variables in the main problem that are not registered as determined in the decision variable replacement table. Furthermore, the dependent problem is a problem in which the decision variables in the main problem that are registered as determined in the decision variable replacement table are replaced with determined values.
[0056] In addition, when the value of any of the multiple decision variables is not registered in the decision variable replacement table, the dependent problem generation unit 26 generates a dependent problem in response to the problem acquisition unit 22 acquiring the main problem.
[0057] The relaxed problem generating and solving unit 28 generates a relaxed problem every time the dependent problem generating unit 26 generates a dependent problem.
[0058] When generating a relaxation problem, the relaxation problem generating and solving unit 28 generates a plurality of continuous decision variables that correspond one-to-one to a plurality of dependent decision variables included in the dependent problem. Each of the plurality of continuous decision variables is a continuous variable. The relaxation problem generating and solving unit 28 then generates the relaxation problem by replacing each of the plurality of dependent decision variables included in the dependent problem with a corresponding continuous decision variable from the plurality of continuous decision variables and converting the objective function of the dependent problem into a continuous convex quadratic function based on a predetermined rule.
[0059] Furthermore, the relaxation problem generating and solving unit 28 solves the solution of the generated relaxation problem. Note that since the objective function of the relaxation problem is a continuous convex quadratic function, the relaxation problem generating and solving unit 28 can calculate the solution of the relaxation problem by simple calculation.
[0060] The approximate problem generator 30 generates an approximate problem every time the dependent problem generator 26 generates a dependent problem.
[0061] An approximation problem includes two or more dependent decision variables, some or all of which have the greatest influence among the multiple dependent decision variables included in the dependent problem, as two or more remaining decision variables. An approximation problem is a problem in which the dependent decision variables, excluding some or all of which have the greatest influence among the multiple dependent decision variables in the dependent problem, are replaced with estimated values.
[0062] For example, the approximate problem generator 30 calculates a weighting coefficient for each of the multiple dependent decision variables. The weighting coefficient is the absolute value of the cumulative weights assigned to terms including the corresponding decision variables among the multiple decision variables in the main problem.
[0063] Next, the approximation problem generator 30 selects, from the plurality of dependent decision variables, dependent decision variables with the highest weighting coefficients, the number of which corresponds to the predetermined upper limit value of the sampling-time variables.The approximation problem generator 30 then generates an approximation problem including, as two or more remaining decision variables, the dependent decision variables selected from the plurality of dependent decision variables, the number of which corresponds to the selected upper limit value of the sampling-time variables.The approximation problem is a problem in which unselected dependent decision variables from the plurality of dependent decision variables in the dependent problem are replaced with estimated values.Furthermore, the estimated values are the values of continuous decision variables corresponding to the unselected dependent decision variables, among the values of the plurality of continuous decision variables included in the solution to the relaxed problem.
[0064] In addition, if the number of multiple dependent decision variables included in the dependent problem is smaller than the upper limit value of the sampling time variables, the approximate problem generation unit 30 generates an approximate problem that includes all of the multiple dependent decision variables included in the dependent problem as two or more remaining decision variables.
[0065] Each time an approximation problem is generated by the approximation problem generation unit 30, the solution acquisition unit 32 provides the approximation problem to the sampler 14 and acquires multiple solutions to the approximation problem from the sampler 14. The sampler 14 can solve a quadratic minimization problem with linear constraints and generate an approximate solution to the quadratic minimization problem with linear constraints. The sampler 14 generates multiple solutions to the approximation problem by performing a solution-finding process on the approximation problem multiple times in parallel or sequentially.
[0066] The table update unit 34 acquires multiple solutions to the approximation problem from the solution acquisition unit 32. Each time the table update unit 34 acquires multiple solutions to the approximation problem from the solution acquisition unit 32, the table update unit 34 performs statistical processing on each of the two or more remaining decision variables based on the multiple solutions to the approximation problem to determine a value. The table update unit 34 then performs new registration processing on each of one or more decision variables corresponding to some or all of the two or more remaining decision variables, in order to newly register the values determined by the statistical processing in the decision variable replacement table.
[0067] For example, the table updating unit 34 calculates an average value for each of two or more remaining decision variables based on multiple solutions to the approximation problem, and calculates an evaluation value corresponding to the calculated average value. At the same time, the table updating unit 34 calculates a correlation value representing the correlation for each of multiple variable pairs included in the two or more remaining decision variables based on multiple solutions to the approximation problem, and calculates an evaluation value corresponding to the calculated correlation value.
[0068] Each of the plurality of variable sets is a set of two different remaining decision variables. The evaluation value is a value for determining the accuracy of the average value and the accuracy of the correlation value based on the same standard.
[0069] Next, the table update unit 34 stores the multiple elements in a priority queue. Each of the multiple elements includes one of two or more remaining decision variables or one of multiple variable sets, along with an evaluation value. The priority queue is a buffer that temporarily stores the multiple elements. The priority queue can retrieve elements one by one from the multiple stored elements in descending order of evaluation value.
[0070] Next, the table update unit 34 newly registers in the decision variable replacement table an item corresponding to the first element with the highest evaluation value among the multiple elements stored in the priority queue, on the condition that the newly registered item does not overlap with any already registered items. The newly registered item corresponding to the first element includes a serial number indicating that it comes after the items already registered in the decision variable replacement table.
[0071] Next, the table update unit 34 deletes the top element from the priority queue.The table update unit 34 then repeats the process of newly registering an item corresponding to the top element in the priority queue in the decision variable replacement table, provided that the item does not overlap with any already registered items, and the process of deleting the top element from the priority queue, until a predetermined termination condition is met.The termination condition may be, for example, that the priority queue is empty, that the number of newly registered items is greater than a predetermined variable replacement lower limit, or that the evaluation value of the top element is smaller than a predetermined replacement threshold.
[0072] For example, when the top element includes any of the target remaining decision variables among two or more remaining decision variables, the table update unit 34 executes the following process.
[0073] If the target remaining decision variable does not overlap with any of the decision variables to be replaced that are included in the decision variable replacement table, the table update unit 34 newly registers the first item, which is an example of an item, in the decision variable replacement table and deletes the top element from the priority queue.
[0074] The first item includes the target remaining decision variable as the replacement source decision variable, and the first item also includes the mean value of the target remaining decision variable binarized into a first value or a second value as the replacement value.
[0075] If the target remaining decision variable overlaps with any of the decision variables to be replaced that are included in the decision variable replacement table, the table update unit 34 deletes the top element from the priority queue without registering a new item in the decision variable replacement table.
[0076] Furthermore, for example, when the leading element includes any one of the target variable pairs among the multiple variable pairs, the table updating unit 34 executes the following process: The target variable pair represents a pair of a first remaining decision variable and a second remaining decision variable among two or more remaining decision variables.
[0077] If the first remaining decision variable does not overlap with any of the decision variables to be replaced contained in the decision variable replacement table, and the second remaining decision variable does not overlap with any of the decision variables to be replaced contained in the decision variable replacement table, the table update unit 34 newly registers a second item, which is an example of an item, in the decision variable replacement table and deletes the top element from the prioritized queue.
[0078] The second item includes the first remaining decision variable as the decision variable to be replaced, and the second item includes the second remaining decision variable multiplied by a code obtained by encoding the correlation value for the target variable set into a non-inverted code or an inverted code as the replacement value.
[0079] Furthermore, if the first remaining decision variable does not overlap with any of the decision variables to be replaced that are included in the decision variable replacement table, and the second remaining decision variable overlaps with any of the decision variables to be replaced that are included in the decision variable replacement table, the table update unit 34 newly registers a third item, which is an example of an item, in the decision variable replacement table and deletes the top element from the prioritized queue.
[0080] The third item includes the first surviving decision variable as the decision variable to be replaced. The third item also includes the first calculated value as the replacement value. The first calculated value is a value obtained by multiplying the replacement value included in the item in the decision variable replacement table that includes the second surviving decision variable as the replacement variable by a code obtained by encoding the correlation value for the target variable set into a non-inverted code or an inverted code.
[0081] If the first remaining decision variable overlaps with any of the decision variables to be replaced that are included in the decision variable replacement table, and the second remaining decision variable overlaps with any of the decision variables to be replaced that are included in the decision variable replacement table, the table update unit 34 does not register a new item in the decision variable replacement table, but deletes the top element from the prioritized queue.
[0082] When the table update unit 34 registers all the values of the multiple decision variables included in the main problem in the decision variable replacement table, the solution output unit 36 outputs the solution to the main problem based on all the values of the multiple decision variables registered in the decision variable replacement table.
[0083] In this case, the solution output unit 36 traces the entries in the decision variable replacement table in reverse order of the serial numbers from the end to the beginning, and determines the source decision variables from among the multiple decision variables based on the values of the replacement variables.The solution output unit 36 then outputs the determined values of the multiple decision variables as the solution to the main problem.
[0084] More specifically, for each of the multiple decision variables, if the replacement value is a first value, the solution output unit 36 sets the value of the corresponding decision variable to the first value. Also, if the replacement value is a second value, the solution output unit 36 sets the value of the corresponding decision variable to the second value. Also, if the replacement value is a previously output decision variable multiplied by a non-inverting sign, the solution output unit 36 sets the value of the corresponding decision variable to the value determined for the previously output decision variable. Also, if the replacement value is a previously output decision variable multiplied by an inverting sign, the solution output unit 36 sets the value of the corresponding decision variable to the inverting value of the value determined for the previously output decision variable.
[0085] With the above-described functional configuration, the central processing unit 13, for example, divides each of the multiple decision variables included in the main problem into those with a large influence and those with a small influence, replaces the decision variables with a small influence with estimated values, performs sampling and statistical processing on the decision variables with a large influence, and replaces the decision variables with a strong statistical bias with values based on the statistical bias, repeating this process. This allows the central processing unit 13 to calculate and output an approximate solution to the main problem. Even if the network represented by the main problem does not have a natural total or partial order and does not have a cluster structure, the central processing unit 13 can extract a subproblem structure from the network and calculate a solution with high accuracy in a short time.
[0086] The programs executed by the problem-solving device 1 will be explained in more detail below.
[0087] FIG. 2 is a diagram showing the information stored in long-term storage device 15.
[0088] The long-term storage device 15 stores a program, a sampling schema method program 151. The sampling schema method program 151 includes a subprogram 1511 for deriving dependent problem instances, a subprogram 1512 for deriving and solving relaxed problem instances, a subprogram 1513 for deriving approximate problem instances, a subprogram 1514 for adding entries to a decision variable replacement table, and a subprogram 1515 for deriving a solution instance for a main problem.
[0089] The long-term storage device 15 stores, as classes and schemas, a linearly constrained Ising quadratic minimization problem class 1521, an Ising solution class 1522, a linearly constrained continuous quadratic minimization problem class 1523, a continuous solution class 1524, and a decision variable substitution table schema 153.
[0090] The linearly constrained Ising quadratic minimization problem class 1521 is expressed as IsingProblem. The linearly constrained Ising quadratic minimization problem class 1521 is a class that represents a normalized linearly constrained Ising quadratic minimization problem. The linearly constrained Ising quadratic minimization problem class 1521 can generate problem instances that include data represented by the following equations (1) to (9). Note that individual problem instances are distinguished by adding subscripts.
[0091] Equation (1) represents the index set.
number
[0092] Equation (2) represents the decision variables.
number
[0093] Equation (3) represents the standard form of the objective function.
number
[0094] Equation (4) represents the quadratic coefficient of the objective function.
number
[0095] Equation (5) represents the linear coefficient of the objective function.
number
[0096] Equation (6) represents the standard form of the linear constraints.
number
[0097] Equation (7) represents the number of linear constraints.
number
[0098] Equation (8) represents the coefficients of the linear constraints.
number
[0099] Equation (9) represents the upper limit of the linear constraint.
number
[0100] Note that the quadratic coefficients of the objective function in equation (4) are normalized so that the diagonal terms are 0 and expressed as a lower triangular matrix. For example, suppose that the general coefficients shown in equation (10) are given.
number
[0101] In such a case, the quadratic coefficients of the objective function are normalized as shown in equation (11).
number
[0102] Furthermore, the standard form of the linear constraint in equation (6) is expressed by a coefficient matrix and an upper limit value through normalization. For example, suppose that a general linear constraint shown in equation (12) is given.
number
[0103] In such cases, the linear constraints are normalized as shown in equation (13).
number
[0104] The Ising solution class 1522 is represented as IsingSolution. When the Ising solution class 1522 solves a problem instance, it can generate an instance including data represented by the following equations (14) and (15) corresponding to the solution.
[0105] Equation (14) represents the index set.
number
[0106] Equation (15) represents the value of the solution vector.
number
[0107] The linearly constrained continuous quadratic minimization problem class 1523 is expressed as ContinuousProblem. The linearly constrained continuous quadratic minimization problem class 1523 is a class in which the decision variables are continuously relaxed based on the linearly constrained Ising quadratic minimization problem class 1521.
[0108] Continuous relaxation refers to converting a binary decision variable into a continuous variable. In this embodiment, continuous relaxation refers to converting a decision variable into a continuous variable between −1 and +1, as shown in Equation (16).
number
[0109] The continuous solution class 1524 is represented as IsingSolution. When the continuous solution class 1524 solves a problem instance, it can generate an instance that includes data represented by the following equations (17) and (18) corresponding to the solution.
[0110] Equation (17) represents the index set.
number
[0111] Equation (18) represents the value of the solution vector.
number
[0112] Note that, since the decision variables are continuously relaxed in the linearly constrained continuous quadratic minimization problem class 1523, the range of the solution is from −1 to +1.
[0113] The decision variable replacement table schema 153 is expressed as ReplaceTable. The decision variable replacement table schema 153 is used when replacing a decision variable with a value. The decision variable replacement table schema 153 is the schema of the decision variable replacement table 125. The decision variable replacement table 125 is a table that assigns a serial number to each pair of a decision variable to be replaced and a value to be replaced, and manages them.
[0114] Equation (19) represents the number of entries in the table.
number
[0115] However, the number of items in the table is limited as shown in equation (20).
number
[0116] |Index main | is a preset value that is the upper limit of the number of items in the table.
[0117] Expression (21) represents one of the columns of the table and represents the serial number of the item.
number
[0118] However, the serial numbers are integers starting from 1 up to Size.
[0119] Equation (22) represents one of the columns of the table and represents the decision variables to be replaced.
number
[0120] However, the decision variables before replacement do not overlap, that is, the decision variables before replacement satisfy the condition of equation (23).
number
[0121] Equation (24) represents one of the columns of the table and represents the replacement value.
number
[0122] However, the replacement value does not include a decision variable that has already been registered as the replacement source decision variable, that is, the replacement value satisfies the condition of equation (25).
number
[0123] FIG. 3 is a diagram showing information stored in the temporary storage device 12. As shown in FIG.
[0124] The temporary storage device 12 stores a main problem instance 1211, a main problem solution instance 1212, a dependent problem instance 1221(t), a relaxed problem instance 1231(t), a relaxed problem solution instance 1232(t), an approximate problem instance 1241(t), an approximate problem solution instance 1242(t), approximate problem sample data 1243(t), a decision variable replacement table 125(t), and hyperparameters 126.
[0125] Here, t represents the number of times the process is repeated, and is an integer equal to or greater than 0.
[0126] The primary problem instance 1211 is IsingProblem main The primal problem instance 1211 is an instance of a linearly constrained Ising quadratic minimization problem class 1521.
[0127] The primal problem solution instance 1212 is IsingSolution main The primal problem solution instance 1212 is an instance of the Ising solution class 1522. That is, the primal problem solution instance 1212 is a solution to the primal problem instance 1211.
[0128] The dependent problem instance 1221(t) is IsingProblem sub,(t) The dependent problem instance 1221(t) is an instance of the linearly constrained Ising quadratic minimization problem class 1521.
[0129] The relaxation problem instance 1231(t) is a ContinuousProblem relaxed,(t) The relaxed problem instance 1231(t) is an instance of the linearly constrained continuous quadratic minimization problem class 1523.
[0130] The relaxation problem solution instance 1232(t) is ContinuousSolution relaxed,(t) The relaxed problem solution instance 1232(t) is an instance of the continuous solution class 1524. That is, the relaxed problem solution instance 1232(t) is a solution to the relaxed problem instance 1231(t).
[0131] The approximate problem instance 1241(t) is the IsingProblem relaxed,(t) The approximation problem instance 1241(t) is an instance of the linearly constrained Ising quadratic minimization problem class 1521.
[0132] The approximate problem solution instance 1242(t) is IsingSolution approx,(t)The approximate problem solution instance 1242(t) is an instance of the Ising solution class 1522. That is, the approximate problem solution instance 1242(t) is a solution to the approximate problem instance 1241(t).
[0133] The sample data for the approximation problem 1243(t) is SampleData approx,(t) The approximate problem sample data 1243(t) is a set of approximate problem solution instances 1242(t).
[0134] The decision variable replacement table 125(t) is ReplaceTable (t) The decision variable substitution table 125(t) is a table having a decision variable substitution table schema 153 as its schema.
[0135] Table 1 is an example of a decision variable substitution table 125(t). [Table 1]
[0136] The decision variable replacement table 125(t) is operated to refer to items and add items, and the decision variable replacement table 125(t) is also operated to repeatedly add items.
[0137] The previous decision variable replacement table 125(t-1)(ReplaceTable (t-1) ) and a new decision variable replacement table 125(t)(ReplaceTable (t) When creating a new decision variable replacement table 125(t), the differences between the previous decision variable replacement table 125(t-1) and the new decision variable replacement table 125(t) are expressed by storing the serial number, the original decision variable, and the replacement value in a common memory area, and then increasing the number of entries in the table. By storing data that expresses such differences, the amount of data used by the temporary memory device 12 can be reduced.
[0138] In such a decision variable replacement table 125(t), the values of the already determined decision variables among a plurality of decision variables are registered. The decision variable replacement table 125(t) stores a serial number (Id) and a replacement source decision variable (Address Id ) and the replacement value (Value Id ) and items containing are registered.
[0139] Also, the replacement value (Value Id ) is the previous decision variable (x) multiplied by the first value (+1), the second value (-1), and the non-inverted sign (+1). j ), or the previous decision variable (-x j ) represents the decision variable (x j ) represents the decision variable to be replaced whose serial number (Id) is included in the following item.
[0140] Such a replacement value (Value Id ) is the replacement source decision variable (Value Id ) is the value of the decision variable (x j ) and the value of the decision variable (x j ) multiplied by a non-inverted sign (+x j ), or the value of the previous decision variable multiplied by the inverse sign (-x j )
[0141] Before the main problem is solved, the decision variable replacement table 125(0) is empty and contains no items. The decision variable replacement table 125(t) has items added sequentially, starting with the item with the earliest serial number (Id). After the main problem is solved, the decision variable replacement table 125(T) contains as many items as there are decision variables.
[0142] In such a decision variable replacement table 125(t), a decision variable with a large influence on the main problem is assigned a replacement source decision variable (Address) in an item in the order of the serial number (Id) before a decision variable with a small influence on the main problem. Id) Therefore, in the decision variable replacement table 125(t), values of decision variables with a large influence are registered earlier than values of decision variables with a small influence.
[0143] The hyperparameters 126 include an inverse temperature constant 1261 , a sampling time variable upper limit 1262 , a variable replacement lower limit 1263 , and a replacement threshold 1264 .
[0144] The inverse temperature constant 1261 is expressed as in equation (26).
number
[0145] The sampling time variable upper limit value 1262 is expressed as in equation (27).
number
[0146] The variable replacement lower limit 1263 is expressed as in equation (28).
number
[0147] The replacement threshold 1264 is expressed as in equation (29).
number
[0148] FIG. 4 is a functional block diagram showing an outline of the processing flow of the problem-solving device 1.
[0149] The input device 16 receives a main problem instance 1211 and hyperparameters 126. The temporary storage device 12 stores the main problem instance 1211 received by the input device 16. The temporary storage device 12 also stores the hyperparameters 126 received by the input device 16.
[0150] The central processing unit 13 executes processing based on the sampling schema method program 151 stored in the long-term storage unit 15. The central processing unit 13 also refers to the hyperparameters 126 and uses the sampler 14 to solve the main problem instance 1211 to obtain a main problem solution instance 1212. The central processing unit 13 then stores the main problem solution instance 1212 in the temporary storage unit 12. The output unit 17 outputs the main problem solution instance 1212 stored in the temporary storage unit 12.
[0151] FIG. 5 is a flowchart showing the flow of processing by the central processing unit 13 when the sampling schema method program 151 is executed.
[0152] The central processing unit 13 executes the sampling schema method program 151 to perform the processes of S11 to S25 in FIG. 5. By executing the processes of S11 to S25, the central processing unit 13 generates a main problem instance 1211 (IsingProblem main ) is a good approximate solution to the primal problem solution instance 1212 (IsingSolution main ) is output.
[0153] The sampling schema method program 151 causes the central processing unit 13 to execute a process of repeatedly obtaining a schema by sampling and applying the schema to reduce the number of decision variables in order to efficiently obtain an approximate solution to a linearly constrained Ising quadratic minimization problem.
[0154] Among linearly constrained Ising quadratic minimization problems, those with a small number of decision variables can be solved directly using a conventional QUBO solver. Among linearly constrained Ising quadratic minimization problems, those with locality among the decision variables can be divided into subproblems utilizing locality, even if the number of decision variables is large, and each subproblem can be solved using a conventional QUBO solver. However, linearly constrained Ising quadratic minimization problems with a large number of decision variables and no locality among the decision variables are extremely difficult to solve using a conventional QUBO solver. The problem-solving device 1 according to this embodiment can solve such linearly constrained Ising quadratic minimization problems with a large number of decision variables and no locality among the decision variables.
[0155] First, in S11, the central processing unit 13 acquires the inverse temperature constant 1261 included in the hyperparameters 126.
[0156] Next, in S12, the central processing unit 13 calculates the main problem instance 1211 (IsingProblem main ) to get the
[0157] By executing the process of S12, the problem solving device 1 can obtain a main problem for minimizing an objective function including multiple decision variables under or without constraints. Each of the multiple decision variables in the main problem obtained in S12 is a binary variable representing a first value (+1) or a second value (-1). The objective function of the main problem obtained in S12 is a quadratic function. The constraints of the main problem obtained in S12 are expressed by one or more linear constraint equations including any of the multiple decision variables.
[0158] Next, in S13, the central processing unit 13 calculates the main problem instance 1211 (IsingProblem main ) to the dependent problem instance 1221(0)(IsingProblem sub,(0) )
[0159] Subsequently, in S14, the central processing unit 13 calculates the decision variable replacement table 125(0) (ReplaceTable (0) ) is created as an empty object.
[0160] Next, in S15, the central processing unit 13 initializes t, which is the number of repetitions, to t=0.
[0161] Next, in S16, the central processing unit 13 (t) Index main That is, the central processing unit 13 determines whether the number of items in the table is smaller than a preset upper limit value for the number of items in the table. In other words, the central processing unit 13 determines whether the main problem instance 1211 (IsingProblem main The processes from S17 to S22 are repeated until all of the decision variables included in the decision variable substitution table 125(t) are registered in the decision variable substitution table 125(t).
[0162] Size (t) Index main If it is greater than or equal to | (No in S16), that is, the main problem instance 1211 (IsingProblem main ) have been registered in the decision variable replacement table 125(t), the central processing unit 13 advances the process to S23.
[0163] Size (t) Index main If it is smaller than | (Yes in S16), the central processing unit 13 advances the process to S17.
[0164] In S17, the central processing unit 13 executes t+1 and adds 1 to t.
[0165] Next, in S18, the central processing unit 13 calls and executes the dependent problem instance derivation subprogram 1511 to derive a dependent problem instance 1221(t). sub,(t-1)) and the previous decision variable replacement table 125(t-1)(ReplaceTable (t-1) ) to generate a new dependent problem instance 1221(t)(IsingProblem sub,(t) ) is derived. sub,(t) ) is the previous dependent problem instance 1221(t-1)(IsingProblem sub,(t-1) ), the number of decision variables is reduced, making it easier to solve. The processing of the dependent problem instance derivation subprogram 1511 will be described in further detail with reference to FIGS.
[0166] By executing the process of S18, the problem solving device 1 can generate a dependent problem in response to the execution of a new registration process for newly registering the value of any one of the plurality of decision variables in the decision variable replacement table. Furthermore, when no value of any one of the plurality of decision variables is registered in the decision variable replacement table, the problem solving device 1 can generate a dependent problem in response to the acquisition of the main problem.
[0167] Next, in S19, the central processing unit 13 calls and executes the relaxed problem instance deriving and solving subprogram 1512 to derive and solve the relaxed problem instance 1231(t). sub,(t) ) to the relaxation problem instance 1231(t)(ContinuousProblem relaxed,(t) ) and derive the relaxation problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) is obtained. Note that the relaxed problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) satisfies the linear constraints of the new dependent problem instance 1221(t). The processing of the relaxed problem instance derivation solution subprogram 1512 will be described in further detail with reference to FIG.
[0168] By executing the process of S19, the problem solving device 1 can generate a relaxation problem every time a dependent problem is generated, and can find a solution to the generated relaxation problem.
[0169] Next, in S20, the central processing unit 13 calls and executes the approximate problem instance derivation subprogram 1513 to derive an approximate problem instance 1241(t). The central processing unit 13 derives a new dependent problem instance 1221(t) (IsingProblem sub,(t) ) and the relaxation problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) to approximate the problem instance 1241(t)(IsingProblem approx,(t) ) is derived. approx,(t) ) is the previous approximate problem instance 1241(t-1)(IsingProblem approx,(t-1) ) and the number of decision variables is less than the upper limit of 1262 (UpperLimit sampling ) or less, which facilitates sampling. The processing of the approximate problem instance derivation subprogram 1513 will be described in further detail with reference to FIG.
[0170] By executing the process of S20, the problem solving device 1 can generate an approximation problem every time a dependent problem is generated.
[0171] Next, in S21, the central processing unit 13 samples the approximation problem instance 1241(t). approx,(t) ) and the inverse temperature constant 1261 are used to perform sampling, and the approximate problem sample data 1243(t)(SampleData approx,(t) ) is obtained.
[0172] The central processing unit 13 performs sampling using a sampler 14. The sampler 14 outputs a plurality of solutions. The sampler 14 may output a plurality of solutions for a given problem by executing a plurality of engines in parallel, or a single engine may output a plurality of solutions by repeating the solution-finding process multiple times. By executing a plurality of engines in parallel, the sampler 14 can reduce the calculation time required to output a plurality of solutions. The sampler 14 then outputs the results of statistical processing of the calculated plurality of solutions.
[0173] By executing the process of S21, the problem solving device 1 can generate a plurality of solutions to an approximation problem every time an approximation problem is generated.
[0174] Next, in S22, the central processing unit 13 calls and executes the decision variable replacement table item addition subprogram 1514 to generate the decision variable replacement table 125(t) with the added item. approx,(t) ) to replace the previous decision variable table 125(t-1) (ReplaceTable (t-1) ) and create a new decision variable replacement table 125(t)(ReplaceTable (t) ) is generated. The central processing unit 13 generates the decision variable replacement table 125(t) (ReplaceTable (t) ), you can add more than one item per iteration, up to a maximum of |Index main The termination condition is met after | iterations.
[0175] By executing the process of S22, the problem solving device 1 can determine a value by performing statistical processing for each of two or more remaining decision variables based on the multiple solutions to the approximation problem, every time it obtains multiple solutions to the approximation problem.The problem solving device 1 can then execute new registration processing for newly registering the values determined by performing statistical processing for each of one or more decision variables corresponding to some or all of the two or more remaining decision variables in the decision variable replacement table.
[0176] When the central processing unit 13 finishes the process of S22, the process returns to S16.
[0177] In S23, the central processing unit 13 sets t at the end of the repetition to T.
[0178] Next, in S24, the central processing unit 13 calls and executes the main problem solution instance derivation subprogram 1515 to derive the main problem solution instance 1212. The central processing unit 13 derives the decision variable replacement table 125(T) (ReplaceTable (T) ) to generate the primal problem solution instance 1212 (IsingSolution main ) is derived.
[0179] Next, in S25, the central processing unit 13 calculates the primal problem solution instance 1212 (IsingSolution main After outputting, the central processing unit 13 outputs the main problem instance 1221 (IsinProblem main ) may be deleted.
[0180] By executing the processes of S23 to S25, the problem-solving device 1 can output a solution to the main problem based on all values of the multiple decision variables registered in the decision variable replacement table when all values of the multiple decision variables included in the main problem are registered in the decision variable replacement table by the table update unit 34.
[0181] By executing the above process, the problem solving device 1 generates a main problem instance 1211 (IsingProblem main ) is a good approximate solution to the primal problem solution instance 1212 (IsingSolution main ) can be output.
[0182] 6 and 7 are flowcharts showing the flow of processing by the central processing unit 13 that has executed the dependent problem instance derivation subprogram 1511. Fig. 6 shows the processing from S111 to S115, and Fig. 7 shows the processing from S116 to S129.
[0183] The central processing unit 13 executes the dependent problem instance derivation subprogram 1511 to perform the processes of S111 to S129 in Fig. 6 and Fig. 7. By executing the processes of S111 to S129, the central processing unit 13 derives the previous dependent problem instance 1221(t-1) (IsingProblem sub,(t-1) ) and the previous decision variable replacement table 125(t-1)(ReplaceTable (t-1) ) to generate a new dependent problem instance 1221(t)(IsingProblem sub,(t) ) is derived.
[0184] First, in S111, the central processing unit 13 calculates the previous dependent problem instance 1221(t-1) (IsingProblem sub,(t-1) ) and the previous decision variable replacement table 125(t-1)(ReplaceTable (t-1) ) to get the
[0185] Next, in S112, the central processing unit 13 calculates the previous dependent problem instance 1221(t-1) (IsingProblem sub,(t-1) ) into a new dependent problem instance 1221(t)(IsingProblem sub,(t) )
[0186] Next, in S113, the central processing unit 13 updates the previous decision variable replacement table 125(t-1) (ReplaceTable (t-1) ) in order to process the items added to the list in order, the serial number Id is initialized as shown in equation (30).
number
[0187] Next, in S114, the central processing unit 13 checks whether Id is Size (t-1) The central processing unit 13 determines whether Id is equal to or smaller than Size (t-1) If it is not less than or equal to (No in S114), the process proceeds to S115. (t-1) If it is equal to or less than this (Yes in S114), the process proceeds to S116.
[0188] In S116, the central processing unit 13 determines the replacement value (Value Id ) satisfies the formula (31).
number
[0189] Value to replace Id If the replacement value (Value Id ) does not satisfy the formula (31) (No in S116), the central processing unit 13 advances the process to S122.
[0190] In S117, the central processing unit 13 determines the replacement source decision variable (Address Id ) to x i Let's say.
[0191] Next, in S118, the central processing unit 13 calculates the replacement value (Value Id ) is the Sign.
[0192] Next, in S119, the central processing unit 13 calculates the index set (Index) of the new dependent problem instance 1221(t). sub,(t) ) by removing the corresponding subscript i.
[0193] Next, in S120, the central processing unit 13 iThe linear coefficients of the objective function of the new dependent problem instance 1221(t) shown in equation (32) are updated with the result of the replacement.
number
[0194] Specifically, the central processing unit 13 updates as shown in equation (33).
number
[0195] In the calculation of S120, the central processing unit 13 uses the constraint shown in equation (34) defined in the linearly constrained Ising quadratic minimization problem class 1521 (IsingProblem).
number
[0196] Next, in S121, the central processing unit 13 executes x i The upper limit of the linear constraint of the new dependent problem instance 1221(t) shown in equation (35) is updated with the result of the replacement.
number
[0197] Specifically, the central processing unit 13 updates as shown in equation (36).
number
[0198] After completing the process of S121, the central processing unit 13 advances the process to S129.
[0199] In S122, the central processing unit 13 determines the replacement value (Value Id ) satisfies equation (37).
number
[0200] Value to replace Id If the replacement value (Value Id ) does not satisfy the formula (37) (No in S122), the central processing unit 13 advances the process to S129.
[0201] In S123, the central processing unit 13 determines the replacement source decision variable (Address Id ) to x i Let's say.
[0202] Next, in S124, the central processing unit 13 calculates the replacement value (Value Id ) Sign·x j Let's say.
[0203] Next, in S125, the central processing unit 13 calculates the index set (Index) of the new dependent problem instance 1221(t). sub,(t) ) by removing the corresponding subscript i.
[0204] Next, in S126, the central processing unit 13 executes x i The quadratic coefficients of the objective function of the new dependent problem instance 1221(t) shown in equation (38) are updated with the result of the replacement.
number
[0205] Specifically, the central processing unit 13 updates as shown in equation (39).
number
[0206] In the calculation of S126, the central processing unit 13 uses the constraint shown in equation (40) defined in the linearly constrained Ising quadratic minimization problem class 1521 (IsingProblem).
number
[0207] Next, in S127, the central processing unit 13 executes x i The linear coefficients of the objective function of the new dependent problem instance 1221(t) shown in equation (41) are updated with the result of the replacement.
number
[0208] Specifically, the central processing unit 13 updates as shown in equation (42).
number
[0209] Next, in S128, the central processing unit 13 executes x i The coefficients of the linear constraints of the objective function of the new dependent problem instance 1221(t) shown in equation (43) are updated with the result of the replacement.
number
[0210] Specifically, the central processing unit 13 updates as shown in equation (44).
number
[0211] After completing the process of S128, the central processing unit 13 advances the process to S129.
[0212] In S129, the central processing unit 13 adds 1 to the serial number Id and returns the process to S114. Then, the central processing unit 13 checks whether Id is Size (t-1) The processes from S116 to S129 are repeated until
[0213] Id is Size (t-1) If it is not the case, the central processing unit 13 advances the process to S115.
[0214] In S115, the central processing unit 13 generates a new dependent problem instance 1221(t) (IsingProblem sub,(t) After outputting the output, the central processing unit 13 outputs the previous dependent problem instance 1221(t-1) (IsingProblem sub,(t-1) ) may be deleted.
[0215] By executing the above process, the problem solving device 1 finds the previous dependent problem instance 1221(t-1) (IsingProblem sub,(t-1) ) and the previous decision variable replacement table 125(t-1)(ReplaceTable (t-1) ) to generate a new dependent problem instance 1221(t)(IsingProblem sub,(t) ) can be derived.
[0216] That is, by executing the processes of S111 to S129, the problem solving device 1 can generate a dependent problem. The dependent problem generated by the processes of S111 to S129 includes, as a plurality of dependent decision variables, two or more decision variables that are not registered as having been determined in the decision variable replacement table, among the plurality of decision variables in the main problem. Furthermore, the dependent problem generated by the processes of S111 to S129 is a problem in which the decision variables that are registered as having been determined in the decision variable replacement table, among the plurality of decision variables in the main problem, are replaced with determined values.
[0217] FIG. 8 is a flowchart showing the flow of processing by the central processing unit 13 that executes the subprogram 1512 for deriving and solving a relaxed problem instance.
[0218] The central processing unit 13 executes the relaxed problem instance derivation solution subprogram 1512 to perform the processes of S211 to S218 in FIG. 8. By executing the processes of S211 to S218, the central processing unit 13 generates a new dependent problem instance 1221(t) (IsingProblem sub,(t) ) to the relaxation problem instance 1231(t)(ContinuousProblem relaxed,(t) ) derivation, relaxation problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) is found.
[0219] First, in S211, the central processing unit 13 calculates the dependent problem instance 1221(t) (IsingProblem sub,(t) ) to get the
[0220] Next, in S212, the central processing unit 13 calculates the index set (Index) of the relaxed problem instance 1231(t). sub,(t) ) as the index set (Index sub,(t) )
[0221] Subsequently, in S213, the central processing unit 13 sets the number (M) of linear constraints of the relaxed problem instance 1231(t) to the number (M) of linear constraints of the dependent problem instance 1221(t).
[0222] Next, in S214, the central processing unit 13 sets the decision variables of the relaxed problem instance 1231(t) to decision variables obtained by relaxing the decision variables of the dependent problem instance 1221(t) to continuous values. More specifically, the central processing unit 13 sets the decision variables of the relaxed problem instance 1231(t) to variables obtained by relaxing the decision variables of the dependent problem instance 1221(t) to continuous values between -1 and +1, as shown in equation (45).
number
[0223] Subsequently, in S215, the central processing unit 13 sets the objective function of the relaxed problem instance 1231(t) to the function shown in Equation (46), which is an arbitrary continuous convex function.
number
[0224] In this embodiment, the central processing unit 13 employs the function shown in equation (47) as the objective function of the relaxed problem instance 1231(t) shown in equation (46).
number
[0225] In equation (47), λ is a real number greater than 0 and is an L2 regularization constant.
[0226] In this case, the relaxation problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) is a sparse vector, with elements that are not affected by linear coefficients and linear constraints being 0. This allows the central processing unit 13 to reduce the amount of calculation in the dependent problem instance derivation subprogram 1511.
[0227] Subsequently, in S216, the central processing unit 13 sets the linear constraints of the relaxed problem instance 1231(t) as the linear constraints of the dependent problem instance 1221(t).
[0228] Next, in S217, the central processing unit 13 calculates the relaxed problem instance 1231(t) (ContinuousProblem relaxed,(t) ) and solve it using the sampler 14, and the relaxed problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) to obtain the relaxation problem instance 1231(t)(ContinuousProblem relaxed,(t)) is a continuous convex quadratic optimization problem, the sampler 14 can easily find the relaxed problem solution instance 1232(t) (ContinuousSolution relaxed,(t) ) can be obtained.
[0229] Next, in S218, the central processing unit 13 calculates the relaxed problem solution instance 1232(t) (ContinuousSolution relaxed,(t) After outputting, the central processing unit 13 outputs the relaxed problem instance 1231(t) (ContinuousProblem relaxed,(t) ) may be deleted.
[0230] By executing the above process, the problem solving device 1 generates a new dependent problem instance 1221(t) (IsingProblem sub,(t) ) to the relaxation problem instance 1231(t)(ContinuousProblem relaxed,(t) ) and derive the relaxation problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) can be obtained.
[0231] That is, by executing the processes of S211 to S218, the problem solving device 1 can generate a relaxed problem. For example, by executing the processes of S212 to S214, the problem solving device 1 can generate a plurality of continuous decision variables that correspond one-to-one to a plurality of dependent decision variables included in the dependent problem. Each of the plurality of continuous decision variables generated by the processes of S212 to S214 is a continuous variable. Furthermore, for example, by executing the processes of S215 to S216, the problem solving device 1 can generate a relaxed problem by replacing each of the plurality of dependent decision variables included in the dependent problem with a corresponding continuous decision variable from among the plurality of continuous decision variables and converting the objective function of the dependent problem into a continuous convex quadratic function based on a predetermined rule.
[0232] Furthermore, by executing the processes of S217 to S218, the problem solving device 1 can solve and output a solution to the generated relaxed problem. Note that, since the objective function of the relaxed problem is a continuous convex quadratic function, the problem solving device 1 can calculate the solution to the relaxed problem by simple calculation.
[0233] FIG. 9 is a flowchart showing the flow of processing by the central processing unit 13 that has executed the approximate problem instance derivation subprogram 1513.
[0234] The central processing unit 13 executes the approximation problem instance derivation subprogram 1513 to perform the processes of S311 to S323 in FIG. 9. By executing the processes of S311 to S323, the central processing unit 13 derives a new dependent problem instance 1221(t) (IsingProblem sub,(t) ) and the relaxation problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) to approximate the problem instance 1241(t)(IsingProblem approx,(t) ) is derived.
[0235] First, in S311, the central processing unit 13 acquires the sampling time variable upper limit value 1262 shown in equation (48) included in the hyperparameter 126.
number
[0236] Subsequently, in S312, the central processing unit 13 calculates the dependent problem instance 1221(t) (IsingProblem sub,(t) ) and the relaxation problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) to get the
[0237] Next, in S313, the central processing unit 13 calculates the dependent problem instance 1221(t) (IsingProblem sub,(t) ) the number of decision variables is the upper limit of the sampling variables, 1262 (UpperLimitsampling ) is determined. sub,(t) ) the number of decision variables is the upper limit of 1262 (UpperLimit sampling If the answer to S313 is Yes, the central processing unit 13 advances the process to S314. sub,(t) ) the number of decision variables is the upper limit of 1262 (UpperLimit sampling ) (No in S313), the central processing unit 13 advances the process to S315.
[0238] In S314, the central processing unit 13 calculates the dependent problem instance 1221(t) (IsingProblem sub,(t) ) is used as the approximation problem instance 1241(t)(IsingProblem approx,(t) After outputting, the central processing unit 13 outputs the relaxed problem solution instance 1232(t) (ContinuousSolution relaxed,(t) ) may be deleted.
[0239] In S315, the central processing unit 13 calculates the dependent problem instance 1221(t) (IsingProblem sub,(t) ), the weighting coefficient (Weight sub,(t) For example, the central processing unit 13 calculates the weighting coefficient (Weight sub,(t) ) is calculated.
number
[0240] The weighting coefficient (Weight) in Eq. (49) sub,(t) ) is calculated using the constraint shown in equation (50) defined in the Ising quadratic minimization problem class 1521 with linear constraints (IsingProblem).
number
[0241] Subsequently, in S316, the central processing unit 13 calculates the weighting coefficient (Weight sub,(t) ) the upper limit value of the variable at the time of sampling, 1262 (UpperLimit sampling ) of the approximation problem instance 1241(t) as the index set (Index approx,(t) ) is obtained.
[0242] Subsequently, in S317, the central processing unit 13 sets the number of linear constraints of the approximation problem instance 1241(t) to the number of linear constraints of the dependent problem instance 1221(t).
[0243] Subsequently, in S318, the central processing unit 13 sets the decision variables of the approximation problem instance 1241(t) to only the decision variables included in the subscript set of the approximation problem instance 1241(t), as shown in equation (51).
number
[0244] Subsequently, in S319, the central processing unit 13 sets the quadratic coefficient of the objective function of the approximation problem instance 1241(t) shown in equation (52).
number
[0245] Specifically, the central processing unit 13 determines the quadratic coefficients based on the quadratic coefficients of the objective function of the dependent problem instance 1221(t), leaving only the part included in the subscript set of the approximate problem instance 1241(t), as shown in equation (53).
number
[0246] The quadratic coefficients of the objective function of the approximation problem instance 1241(t) of equation (53) are calculated using the constraints shown in equation (54) defined in the linearly constrained Ising quadratic minimization problem class 1521 (IsingProblem).
number
[0247] Subsequently, in S320, the central processing unit 13 sets the linear coefficients of the objective function of the approximation problem instance 1241(t) shown in equation (55).
number
[0248] Specifically, the central processing unit 13 substitutes the values of the relaxed problem instance 1231(t) for the decision variables not included in the subscript set of the approximated problem instance 1241(t) based on the objective function of the dependent problem instance 1221(t), as shown in equation (56).
number
[0249] The linear coefficients of the objective function of the approximation problem instance 1241(t) in equation (56) are calculated using the constraints shown in equation (54) defined in the linearly constrained Ising quadratic minimization problem class 1521 (IsingProblem).
[0250] Subsequently, in S321, the central processing unit 13 sets the coefficients of the linear constraints of the approximation problem instance 1241(t) shown in equation (57).
number
[0251] Specifically, the central processing unit 13 determines the coefficients based on the coefficients of the linear constraints of the dependent problem instance 1221(t), leaving only the part included in the index set of the approximate problem instance 1241(t), as shown in equation (58).
number
[0252] Subsequently, in S322, the central processing unit 13 sets the upper limit of the linear constraint of the approximation problem instance 1241(t) shown in equation (59).
number
[0253] Specifically, the central processing unit 13 sets the upper limit value based on the linear constraints of the dependent problem instance 1221(t), as shown in equation (60), by expanding the allowable range by the amount of decision variables that are not included in the index set of the approximate problem instance 1241(t).
number
[0254] Both the dependent problem instance 1221(t) and the approximation problem instance 1241(t) have been normalized, and increasing the tolerance range corresponds to increasing the upper limit.
[0255] Next, in S323, the central processing unit 13 calculates the approximate problem instance 1241(t) (IsingProblem approx,(t) After outputting, the central processing unit 13 constructs and outputs the relaxed problem solution instance 1232(t) (ContinuousSolution relaxed,(t) ) may be deleted.
[0256] By executing the above process, the problem solving device 1 generates a new dependent problem instance 1221(t) (IsingProblem sub,(t)) and the relaxation problem solution instance 1232(t)(ContinuousSolution relaxed,(t) ) to approximate the problem instance 1241(t)(IsingProblem approx,(t) ) can be derived.
[0257] That is, by executing the processes of S311 to S323, the problem solving device 1 can generate an approximation problem. The approximation problem generated by the processes of S311 to S323 can include, as two or more remaining decision variables, some or all of two or more dependent decision variables with greater influences among the multiple dependent decision variables included in the dependent problem. Also, the approximation problem generated by the processes of S311 to S323 is a problem in which the dependent decision variables, excluding some or all of the two or more dependent decision variables with greater influences among the multiple dependent decision variables in the dependent problem, are replaced with estimated values.
[0258] For example, by executing the process of S315, the problem solving device 1 can calculate a weighting coefficient for each of a plurality of dependent decision variables. The weighting coefficient calculated by the process of S315 is the absolute value of the accumulated value of weight values set for terms including the corresponding decision variables among a plurality of decision variables in the main problem.
[0259] Subsequently, by executing the process of S316, the problem solving device 1 can select, from the plurality of dependent decision variables, dependent decision variables with the highest weighting coefficients, the number of which is equal to the preset upper limit value of the sampling-time variables. Then, by executing the processes of S317 to S322, the problem solving device 1 can generate an approximation problem including, from the plurality of dependent decision variables, the dependent decision variables equal to the selected upper limit value of the sampling-time variables as two or more remaining decision variables. Note that the approximation problem generated by the processes of S317 to S322 is a problem in which, of the plurality of dependent decision variables in the dependent problem, unselected dependent decision variables are replaced with estimated values. Furthermore, the estimated values used in the processes of S317 to S322 are the values of continuous decision variables corresponding to the unselected dependent decision variables, among the values of the plurality of continuous decision variables included in the solution to the relaxed problem.
[0260] Furthermore, by executing the processes of S313 and S314, the problem-solving device 1 can generate an approximation problem that includes all of the multiple dependent decision variables included in the dependent problem as two or more remaining decision variables when the number of multiple dependent decision variables included in the dependent problem is smaller than the upper limit value of the sampling-time variables.
[0261] 10, 11, and 12 are flowcharts showing the processing flow of the central processing unit 13 that has executed the decision variable replacement table item addition subprogram 1514. Fig. 10 shows the processing from S411 to S418, Fig. 11 shows the processing from S419 to S425, and Fig. 12 shows the processing from S426 to S442.
[0262] The central processing unit 13 executes the decision variable replacement table item addition subprogram 1514 to perform the processes of S411 to S442 in FIGS. 10, 11, and 12. By executing the processes of S411 to S442, the central processing unit 13 performs the process of adding the approximation problem sample data 1243(t) (SampleData approx,(t) ) to replace the previous decision variable 125(t-1) (ReplaceTable (t-1)) with new decision variable replacement table 125(t)(ReplaceTable (t) ) is obtained.
[0263] First, in S411, the central processing unit 13 acquires the inverse temperature constant 1261 shown in equation (61), the variable replacement lower limit value 1263 shown in equation (62), and the replacement threshold value 1264 shown in equation (63), which are included in the hyperparameters 126.
number
number
number
[0264] When the sampler 14 performs random sampling, the occurrence probability P(x) for a sample (x) is uniform. P(x) is expressed as in equation (64).
number
[0265] Therefore, when calculating the average for one decision variable and the correlation for a set of two decision variables, the central processing unit 13 sets the weighting coefficient (W(x)) for the sample (x) using the inverse temperature constant 1261 as shown in equation (65).
number
[0266] Furthermore, when the sampler 14 performs Boltzmann sampling, the occurrence probability P(x) of the objective function value (E(x)) for the sample (x) is weighted using the inverse temperature constant 1261 as shown in equation (66).
number
[0267] Therefore, when calculating the average for one decision variable and the correlation for a set of two decision variables, the sampler 14 uniformly sets the weighting coefficient (W(x)) for the sample (x) as shown in equation (67).
number
[0268] Next, in S412, the central processing unit 13 calculates the approximate problem sample data 1243(t) (SampleData approx,(t) ) and the previous decision variable replacement table 125(t)(ReplaceTable (t-1) ) to get the
[0269] Next, in S413, the central processing unit 13 calculates the approximate problem sample data 1243(t) (SampleData approx,(t) ) is subjected to weighted statistical processing using the inverse temperature constant 1261, and the average for one decision variable shown in equation (68) is calculated.
number
[0270] Next, in S414, the central processing unit 13 calculates the approximate problem sample data 1243(t) (SampleData approx,(t) ) is subjected to weighted statistical processing using the inverse temperature constant 1261, and the correlation for the pair of two decision variables shown in equation (69) is calculated.
number
[0271] Subsequently, in S415, the central processing unit 13 calculates the evaluation value (Score) shown in equation (71) for the average of one decision variable shown in equation (70). i approx,(t) ) is calculated.
number
number
[0272] For example, the central processing unit 13 calculates the score (Score) as shown in equation (72). j approx,(t) ) is calculated.
number
[0273] Subsequently, in S416, the central processing unit 13 calculates an evaluation value (Score ) shown in equation (74) for the correlation between the pair of two decision variables shown in equation (73). i,j approx,(t) ) is calculated.
number
number
[0274] For example, the central processing unit 13 calculates the score (Score) as shown in equation (75). i,j approx,(t) ) is calculated.
number
[0275] Furthermore, the central processing unit 13 may adjust the relative values between the correlation estimate for a pair of two decision variables and the average estimate for one decision variable.
[0276] Subsequently, in S417, the central processing unit 13 stores the average for one decision variable and the correlation for a set of two decision variables in a priority queue in which the evaluation value is used as the priority.
[0277] Here, the central processing unit 13 can store elements in the priority queue (storing all elements together at once at first), refer to the top element, and delete the top element. Therefore, instead of sorting all elements in priority order at first, the central processing unit 13 can use the heap queue to partially sort in priority order while referencing and deleting the top element. This allows the central processing unit 13 to reduce the amount of calculations.
[0278] Subsequently, in S418, the central processing unit 13 executes the previous decision variable replacement table 125(t-1) (ReplaceTable (t-1) ), the table with the space for adding new items is called the new decision variable replacement table 125(t)(ReplaceTable (t) )
[0279] Next, in S419, the central processing unit 13 determines whether the priority queue is empty. If the priority queue is empty (Yes in S419), the central processing unit 13 proceeds to S420. If the priority queue is not empty (No in S419), the central processing unit 13 proceeds to S421. By making the determination in S419, the central processing unit 13 can repeat the processes from S421 to S442 until the priority queue becomes empty.
[0280] In S421, the central processing unit 13 determines whether the number of items newly registered in the new decision variable replacement table 125(t) is greater than the variable replacement lower limit 1263, as shown in equation (76).
number
[0281] If the number of items newly registered in the new decision variable replacement table 125(t) is greater than the variable replacement lower limit 1263 (Yes in S421), the central processing unit 13 proceeds to S422. If the number of items newly registered in the new decision variable replacement table 125(t) is not greater than the variable replacement lower limit 1263 (No in S421), the central processing unit 13 proceeds to S426.
[0282] In S422, the central processing unit 13 determines whether the top element of the priority queue is an average for one decision variable. If the top element of the priority queue is an average for one decision variable (Yes in S422), the central processing unit 13 proceeds to S423. If the top element of the priority queue is not an average for one decision variable (No in S422), the central processing unit 13 proceeds to S424.
[0283] In S423, the central processing unit 13 determines whether the evaluation value of the top element of the priority queue is smaller than the replacement threshold 1264 as shown in equation (77).
number
[0284] If the evaluation value of the top element of the priority queue is smaller than the replacement threshold 1264 (Yes in S423), the central processing unit 13 exits the repeated processing from S421 to S442 and proceeds to S420. If the evaluation value of the top element of the priority queue is not smaller than the replacement threshold 1264 (No in S423), the central processing unit 13 proceeds to S426.
[0285] In S424, the central processing unit 13 determines whether the top element of the priority queue is a correlation for a set of two decision variables. If the top element of the priority queue is a correlation for a set of two decision variables (Yes in S424), the central processing unit 13 proceeds to S425. If the top element of the priority queue is not a correlation for a set of two decision variables (No in S424), the central processing unit 13 proceeds to S426.
[0286] In S425, the central processing unit 13 determines whether the evaluation value of the top element of the priority queue is smaller than the replacement threshold 1264 as shown in equation (78).
number
[0287] If the evaluation value of the top element of the priority queue is smaller than the replacement threshold 1264 (Yes in S425), the central processing unit 13 exits the repeated processing from S421 to S442 and proceeds to S420. If the evaluation value of the top element of the priority queue is not smaller than the replacement threshold 1264 (No in S425), the central processing unit 13 proceeds to S426.
[0288] In S426, the central processing unit 13 determines whether the top element of the priority queue is an average for one decision variable. If the top element of the priority queue is an average for one decision variable (Yes in S426), the central processing unit 13 proceeds to S427. If the top element of the priority queue is not an average for one decision variable (No in S426), the central processing unit 13 proceeds to S430.
[0289] In S427, the central processing unit 13 calculates the decision variable (x i ) is the decision variable (Address IdExisting ) and determine whether it overlaps with the
number
[0290] The decision variable for the top element of the priority queue (x i ) is the decision variable (Address IdExisting If the decision variable (x i ) is the decision variable (Address IdExisting ) (No in S427), the central processing unit 13 advances the process to S442.
[0291] In S428, the central processing unit 13 generates a new decision variable replacement table 125(t) (ReplaceTable (t) ), serial number (Id ToAppend ), the original decision variable (Address IdToAppend ) and the replacement value (Value IdToAppend ) to add an item containing
[0292] Serial number (Id ToAppend ) is expressed as in equation (80).
number
[0293] The original decision variable (Address IdToAppend ) is expressed as in equation (81).
number
[0294] Value to replace IdToAppend ) is expressed as in equation (82).
number
[0295] Subsequently, in S429, the central processing unit 13 calculates the number of entries (Size) of the new decision variable replacement table 125(t). (t) ) is updated by incrementing it by 1 as shown in equation (83).
number
[0296] After completing S429, the central processing unit 13 advances the process to S442.
[0297] In S430, the central processing unit 13 determines whether the top element of the priority queue is a correlation for a set of two decision variables. If the top element of the priority queue is a correlation for a set of two decision variables (Yes in S430), the central processing unit 13 proceeds to S431. If the top element of the priority queue is not a correlation for a set of two decision variables (No in S430), the central processing unit 13 proceeds to S442.
[0298] In S431, the central processing unit 13 calculates the decision variable (x i ) is the decision variable (Address IdExisting ) and determine whether it overlaps with the
number
[0299] The decision variable for the top element of the priority queue (x i ) is the decision variable (Address IdExisting If the decision variable (x i ) is the decision variable (Address IdExisting ) (No in S431), the central processing unit 13 advances the process to S438.
[0300] In S432, the central processing unit 13 calculates the decision variable (x j ) is the decision variable (Address IdExisting ) and determine whether it overlaps with the
number
[0301] The decision variable for the top element of the priority queue (x j ) is the decision variable (Address IdExisting If the decision variable (x j ) is the decision variable (Address IdExisting ) (No in S432), the central processing unit 13 advances the process to S435.
[0302] In S433, the central processing unit 13 generates a new decision variable replacement table 125(t) (ReplaceTable (t) ), serial number (Id ToAppend ), the original decision variable (Address IdToAppend ) and the replacement value (Value IdToAppend ) to add an item containing
[0303] Serial number (Id ToAppend ) is expressed as in equation (86).
number
[0304] The original decision variable (Address IdToAppend ) is expressed as in equation (87).
number
[0305] Value to replace IdToAppend ) is expressed as in equation (88).
number
[0306] Next, in S434, the central processing unit 13 calculates the number of entries (Size) of the new decision variable replacement table 125(t). (t) ) is updated by incrementing it by 1 as shown in equation (89).
number
[0307] After completing S434, the central processing unit 13 advances the process to S442.
[0308] In S435, the central processing unit 13 calculates the decision variable (x j ) into the decision variables (x j ) and the decision variable (Address IdForJ )
number
[0309] The central processing unit 13 uses the constraint shown in equation (91) defined in the decision variable replacement table schema 153 (ReplaceTable), and overlapping occurs at most once.
number
[0310] Subsequently, in S436, the central processing unit 13 creates a new decision variable replacement table 125(t) (ReplaceTable (t) ), serial number (Id ToAppend ), the original decision variable (Address IdToAppend ) and the replacement value (Value IdToAppend ) to add an item containing
[0311] Serial number (Id ToAppend ) is expressed as in equation (92).
number
[0312] The original decision variable (Address IdToAppend ) is expressed as in equation (93).
number
[0313] Value to replace IdToAppend ) is expressed as in equation (94).
number
[0314] Next, in S437, the central processing unit 13 calculates the number of entries (Size) of the new decision variable replacement table 125(t). (t) ) is updated by incrementing it by 1 as shown in equation (95).
number
[0315] After completing S437, the central processing unit 13 advances the process to S442.
[0316] In S438, the central processing unit 13 calculates the decision variable (x j ) is the decision variable (Address Id´ ) and determine whether it overlaps with the
number
[0317] The central processing unit 13 determines the decision variable (x j ) is the decision variable (Address Id´ If the decision variable (x j ) is the decision variable (Address Id´ ) (No in S438), the central processing unit 13 advances the process to S442.
[0318] In S439, the central processing unit 13 calculates the decision variable (x i ) into the decision variables (x i ) and the decision variable (Address IdForJ )
number
[0319] The central processing unit 13 uses the constraint shown in equation (98) defined in the decision variable replacement table schema 153 (ReplaceTable), and overlapping occurs at most once.
number
[0320] Subsequently, in S440, the central processing unit 13 creates a new decision variable replacement table 125(t) (ReplaceTable (t) ), serial number (Id ToAppend ), the original decision variable (Address IdToAppend ) and the replacement value (Value IdToAppend ) to add an item containing
[0321] Serial number (Id ToAppend ) is expressed as in equation (99).
number
[0322] The original decision variable (Address IdToAppend ) is expressed as in equation (100).
number
[0323] Value to replace IdToAppend ) is expressed as in equation (101).
number
[0324] Next, in S441, the central processing unit 13 calculates the number of entries (Size) of the new decision variable replacement table 125(t). (t) ) is updated by incrementing it by 1 as shown in equation (102).
number
[0325] When the central processing unit 13 finishes S441, the process proceeds to S442.
[0326] In S442, the central processing unit 13 deletes the top element of the priority queue. After completing the process of S442, the central processing unit 13 returns the process to S419.
[0327] Then, the central processing unit 13 repeats the processes from S421 to S442 until the priority queue becomes empty, and when the priority queue becomes empty (Yes in S419), the process proceeds to S420.
[0328] Finally, in S420, the central processing unit 13 creates a new decision variable replacement table 125(t) (ReplaceTable (t) After outputting, the central processing unit 13 outputs the approximate problem sample data 1243(t) (SampleData approx,(t) ) may be deleted.
[0329] By executing the above process, the problem solving device 1 generates approximate problem sample data 1243(t) (SampleData approx,(t) ) to replace the previous decision variable 125(t-1) (ReplaceTable (t-1) ) with new decision variable replacement table 125(t)(ReplaceTable (t) ) can be obtained.
[0330] That is, by executing the processes of S411 to S442, the problem solving device 1 can perform statistical processing for each of two or more remaining decision variables based on a plurality of solutions to the approximation problem, and determine a value for each of them. Then, the problem solving device 1 can execute new registration processing for newly registering the values determined by performing statistical processing for each of one or more decision variables corresponding to some or all of the two or more remaining decision variables in the decision variable replacement table.
[0331] For example, by executing the processes of S413 and S415, the problem solving device 1 can calculate an average value for each of two or more remaining decision variables based on multiple solutions to the approximation problem, and calculate an evaluation value corresponding to the calculated average value. Also, by executing the processes of S414 and S416, the problem solving device 1 can calculate a correlation value representing the correlation for each of multiple variable pairs included in the two or more remaining decision variables based on multiple solutions to the approximation problem, and calculate an evaluation value corresponding to the calculated correlation value. By executing the processes of S413 to S416, the problem solving device 1 can generate an evaluation value that allows the average value and the correlation value to be judged using the same criteria.
[0332] Subsequently, by executing the process of S417, the problem solving device 1 can store a plurality of elements in the priority queue. Each of the plurality of elements stored in the priority queue includes any one of two or more remaining decision variables or any one of a plurality of variable sets, together with an evaluation value.
[0333] Subsequently, by executing the processes of S419 to S441, the problem solving device 1 can newly register in the decision variable replacement table an item corresponding to the single leading element with the largest evaluation value among the multiple elements stored in the prioritized queue, on the condition that it does not overlap with any already registered items. Note that the item corresponding to the leading element newly registered by the processes of S419 to S441 includes a serial number indicating that it comes after the items already registered in the decision variable replacement table.
[0334] Subsequently, by executing the process of S442, the problem solving device 1 can delete the leading element from the priority queue. Then, the problem solving device 1 can repeat the process of newly registering an item corresponding to the leading element in the priority queue in the decision variable replacement table on the condition that the item does not overlap with any already registered items (S428, S433, S436, and S440) and the process of deleting the leading element from the priority queue (S442) until a predetermined termination condition is met. Note that the termination condition is, for example, that the priority queue becomes empty (S419), that the number of newly registered items becomes greater than a predetermined variable replacement lower limit (S421), or that the evaluation value of the leading element becomes smaller than a predetermined replacement threshold (S423, S425).
[0335] More specifically, when the leading element includes any of the target remaining decision variables among two or more remaining decision variables, the problem solving device 1 executes S427 to S429 and S442.
[0336] By executing S427 to S429 and S442, the problem solving device 1 can newly register a first item, which is an example of an item, in the decision variable replacement table when the target remaining decision variable does not overlap with any of the decision variables to be replaced that are included in the decision variable replacement table (S428), and delete the top element from the priority queue (S442). Note that the first item includes the target remaining decision variable as the decision variable to be replaced. Furthermore, the first item includes, as the replacement value, a value obtained by binarizing the average value for the target remaining decision variable into a first value or a second value.
[0337] Furthermore, by executing the processes of S427 and S442, if the target remaining decision variable overlaps with any of the decision variables to be replaced that are included in the decision variable replacement table, the problem solving device 1 can delete the top element from the prioritized queue (S442) without newly registering an item in the decision variable replacement table (No in S427).
[0338] Furthermore, when the leading element includes any one of the plurality of variable sets as a target variable set, the problem solving device 1 executes S431 to S441 and S442. Note that the target variable set represents a set of a first remaining decision variable and a second remaining decision variable among two or more remaining decision variables.
[0339] By executing S431 to S441 and S442, the problem solving device 1 can newly register a second item, which is an example of an item, in the decision variable replacement table (S433 and S440) and delete the top element from the priority queue (S442) if the first remaining decision variable does not overlap with any of the decision variables to be replaced contained in the decision variable replacement table and the second remaining decision variable does not overlap with any of the decision variables to be replaced contained in the decision variable replacement table. Note that the second item includes the first remaining decision variable as the decision variable to be replaced. Furthermore, the second item includes, as a replacement value, the second remaining decision variable multiplied by a code obtained by encoding the correlation value for the target variable set into a non-inverted code or an inverted code.
[0340] Furthermore, by executing S431 to S441 and S442, the problem solving device 1 newly registers a third item, which is an example of an item, in the decision variable replacement table (S436) and can delete the top element from the priority queue (S442) when the first remaining decision variable does not overlap with any of the source decision variables included in the decision variable replacement table and the second remaining decision variable overlaps with any source decision variable included in the decision variable replacement table. The third item includes the first remaining decision variable as the source decision variable. The third item also includes a first calculated value as the replacement value. The first calculated value is a value obtained by multiplying the replacement value included in the item in the decision variable replacement table that includes the second remaining decision variable as the source decision variable by a code obtained by encoding the correlation value for the target variable set into a non-inverted code or an inverted code.
[0341] Furthermore, by executing the processes of S431, S438 and S442, if the first remaining decision variable overlaps with any of the decision variables to be replaced contained in the decision variable replacement table and the second remaining decision variable overlaps with any of the decision variables to be replaced contained in the decision variable replacement table, the problem-solving device 1 can delete the top element from the prioritized queue (S442) without newly registering an item in the decision variable replacement table (No in S438).
[0342] FIG. 13 is a flowchart showing the flow of processing by the central processing unit 13 that executes the subprogram 1515 for deriving a main problem solution instance.
[0343] The central processing unit 13 executes the main problem solution instance derivation subprogram 1515 to perform the processes of S511 to S523 in Fig. 13. By executing the processes of S511 to S523, the central processing unit 13 generates the decision variable replacement table 125(T) (Replace Table(T) ) to generate the primal problem solution instance 1212 (IsingSolution main ) is derived.
[0344] First, in S511, the central processing unit 13 calculates the decision variable replacement table 125(T) (ReplaceTable (T) ) to get the
[0345] Subsequently, in S512, the central processing unit 13 generates the primal problem solution instance 1212 (IsingSolution main ) storage space.
[0346] Subsequently, in S513, the central processing unit 13 substitutes the number of items in the decision variable replacement table 125(T) at the end of the repetition into Id as shown in equation (103).
number
[0347] As a result, the central processing unit 13 generates the decision variable replacement table 125(T) (ReplaceTable (T) ) items can be processed in reverse order.
[0348] Next, in S514, the central processing unit 13 determines whether Id is 1 or greater. If Id is not 1 or greater (No in S514), the central processing unit 13 advances the process to S523. If Id is 1 or greater (Yes in S514), the central processing unit 13 advances the process to S515. As a result, the central processing unit 13 determines whether Id is 1 or greater in the decision variable replacement table 125(T) (ReplaceTable (T) ) items in the reverse order to create the decision variable replacement table 125(T)(ReplaceTable (T) When the processes from S515 to S522 are completed for all items in the table, the process can proceed to S523.
[0349] In S515, the central processing unit 13 determines the replacement value (Value Id ) satisfies equation (104).
number
[0350] Value to replace Id If the replacement value (Value Id ) does not satisfy the formula (104) (No in S515), the central processing unit 13 advances the process to S519.
[0351] In S516, the central processing unit 13 determines the replacement source decision variable (Address Id ) to x i Let's say.
[0352] Next, in S517, the central processing unit 13 calculates the replacement value (Value Id ) is the Sign.
[0353] Subsequently, in S518, the central processing unit 13 registers the elements of the solution vector of the primary problem solution instance 1212 as shown in equation (105).
number
[0354] After completing S518, the central processing unit 13 advances the process to S522.
[0355] In S519, the central processing unit 13 determines the replacement source decision variable (Address Id ) to x i Let's say.
[0356] Next, in S520, the central processing unit 13 calculates the replacement value (Value Id ) Sign·x i Let's say.
[0357] Subsequently, in S521, the central processing unit 13 registers the elements of the solution vector of the primary problem solution instance 1212 as shown in equation (106).
number
[0358] It is to be noted that the elements of the solution vector shown in equation (107) are guaranteed to have already been registered for the following reasons (1) and (2).
number
[0359] (1) The termination condition of the first stage is the condition shown in equation (108).
number
[0360] (2) The constraint shown in equation (109) is defined in the decision variable substitution table schema 153.
number
[0361] However, as shown in equation (110), the replacement value does not include decision variables that have already been registered as the replacement source decision variables.
number
[0362] After completing S521, the central processing unit 13 advances the process to S522.
[0363] In S522, the central processing unit 13 updates Id by subtracting 1 as shown in equation (111).
number
[0364] When the central processing unit 13 finishes S522, it returns the process to S514.
[0365] Then, the central processing unit 13 repeats the processes from S515 to S522 until Id becomes smaller than 1, that is, until the process is completed for all items in the decision variable replacement table 125(T).
[0366] In S523, the central processing unit 13 calculates the primal problem solution instance 1212 (IsingSolution main After outputting, the central processing unit 13 outputs the dependent problem instance 1221(T) (IsingProblem sub,(T) ) and decision variable replacement table 125(0), (1), ..., (T) may all be deleted.
[0367] By executing the above process, the problem solving device 1 generates a decision variable replacement table 125(T)(Replace Table(T) ) to generate the primal problem solution instance 1212 (IsingSolution main ) can be derived.
[0368] That is, by executing the processes of S511 to S523, when all values of the multiple decision variables included in the main problem are registered in the decision variable replacement table, the problem solving device 1 can output a solution to the main problem based on all values of the multiple decision variables registered in the decision variable replacement table.
[0369] In this case, by executing the processes of S513 to S522, the problem solving device 1 can trace the items included in the decision variable replacement table in reverse order of the serial numbers from the end to the beginning, and determine the replacement source decision variables among the multiple decision variables based on the replacement destination values. Then, by executing the process of S523, the problem solving device 1 can output the determined values of the multiple decision variables as the solution to the main problem.
[0370] For example, by executing the processes of S515, S516, and S517, for each of a plurality of decision variables, if the replacement value is a first value, the problem solving device 1 can set the value of the corresponding decision variable to a first value. Also, by executing the processes of S515, S516, and S517, for each of a plurality of decision variables, if the replacement value is a second value, the problem solving device 1 can set the value of the corresponding decision variable to a second value.
[0371] Furthermore, by executing the processes of S515, S519, and S520, the problem solving device 1 can set the value of the corresponding decision variable to the value determined for the previously-extracted decision variable when the replacement value is a previously-extracted decision variable multiplied by a non-inverting sign. Furthermore, by executing the processes of S515, S519, and S520, the problem solving device 1 can set the value of the corresponding decision variable to the inverting value of the value determined for the previously-extracted decision variable when the replacement value is a previously-extracted decision variable multiplied by an inverting sign.
[0372] The problem solving device 1 according to the first embodiment as described above separates each of the multiple decision variables included in a network optimization problem into those with a large influence and those with a small influence, replaces the decision variables with a small influence with estimated values, performs sampling and statistical processing on the decision variables with a large influence, and replaces decision variables with strong statistical biases with values based on the statistical bias, repeating this process. As a result, even if the network represented by the network optimization problem does not have a natural total order or partial order and does not have a cluster structure, the problem solving device 1 can extract a subproblem structure from the network optimization problem and calculate a solution with high accuracy in a short time.
[0373] Therefore, according to the problem solving device 1 according to the first embodiment described above, it is possible to calculate a solution to an optimization problem that includes a huge number of variables in a short time with high accuracy.
[0374] The program executed by the problem-solving device 1 of this embodiment may be 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).
[0375] The program executed by the problem-solving device 1 of this embodiment may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. The program executed by the problem-solving device 1 of this embodiment may be provided or distributed via a network such as the Internet. The program executed by the problem-solving device 1 of this embodiment may be provided by being pre-installed in a ROM or the like.
[0376] (Second embodiment) Next, a problem-solving device 2 according to the second embodiment will be described.
[0377] FIG. 14 is a diagram showing the functional configuration of a problem-solving device 2 according to the second embodiment.
[0378] The problem-solving device 2 according to the second embodiment differs from the problem-solving device 1 according to the first embodiment in that it includes sampler 14A and sampler 14B instead of sampler 14. The configuration of the problem-solving device 2 according to the second embodiment is the same as that of the problem-solving device 1 according to the first embodiment except for sampler 14A and sampler 14B, so a description thereof will be omitted.
[0379] The sampler 14A and the sampler 14B have the same functions and configuration as the sampler 14 according to the first embodiment. The sampler 14A and the sampler 14B each solve a given problem independently of each other. The central processing unit 13 assigns a problem to each of the sampler 14A and the sampler 14B, thereby allowing the solution-finding processes to be performed in parallel, thereby reducing the processing time. Note that the problem-solving device 2 according to the second embodiment may further include one or more samplers 14 in addition to the sampler 14A and the sampler 14B.
[0380] The problem-solving device 2 according to the second embodiment has the effect of the problem-solving device 1 according to the first embodiment, and furthermore, can calculate a solution to an optimization problem in a short time.
[0381] (Third embodiment) Next, a problem-solving system 3 according to the third embodiment will be described.
[0382] FIG. 15 is a diagram showing the functional configuration of a problem-solving system 3 according to the third embodiment.
[0383] A problem-solving system 3 according to the third embodiment includes a problem-solving device 1X and a problem-solving device 1Y.
[0384] The problem solving device 1X includes a bus 11X, a temporary memory device 12X, a central processing unit 13X, a sampler 14XA, a sampler 14XB, a long-term memory device 15, an input device 16, and an output device 17.
[0385] The temporary memory device 12X, the central processing unit 13X, the sampler 14XA, the sampler 14XB, the long-term memory device 15, the input device 16, and the output device 17 have the same configurations and functions as the temporary memory device 12, the central processing unit 13, the sampler 14A, the sampler 14B, the long-term memory device 15, the input device 16, and the output device 17 according to the second embodiment. Therefore, the problem-solving device 1X has the same functions, configurations, and effects as the problem-solving device 2 according to the second embodiment.
[0386] Furthermore, problem-solving device 1X includes output device 18X. Output device 18X is connected to other devices via a communication network. Therefore, problem-solving device 1X can output the calculated solution to the optimization problem to other devices via the communication network.
[0387] The problem-solving device 1Y also includes a bus 11Y, a temporary storage device 12Y, a central processing unit 13Y, a sampler 14YA, a sampler 14YB, an input device 16, an output device 17, and an output device 18Y. The temporary storage device 12Y, the central processing unit 13Y, the sampler 14YA, and the sampler 14YB have the same configurations and functions as the temporary storage device 12, the central processing unit 13, the sampler 14A, and the sampler 14B according to the second embodiment. The output device 18Y is connected to other devices via a communication network.
[0388] Such a problem-solving device 1Y obtains information from other devices on the communication network and uses a storage device on the communication network instead of the long-term storage device 15, thereby achieving the same functions, configurations, and effects as the problem-solving device 2 according to the second embodiment. Furthermore, such a problem-solving device 1Y can output the calculated solution to the optimization problem to other devices via the communication network. Furthermore, the problem-solving devices 1X and 1Y may execute the solution-solving process by utilizing each other's resources via the communication network.
[0389] (Example of an instance) Next, an example of an instance or the like generated in each embodiment will be described.
[0390] For example, the main problem instance 1211 is assumed to be, for example, equation (112).
number
[0391] In this case, the dependent problem instance 1221(1) for t=1 is given by equation (113).
number
[0392] Furthermore, the decision variable replacement table 125(0) for t=0 is an empty table, as shown in Table 2. [Table 2]
[0393] In this case, the relaxed problem instance 1231(1) for t=1 is given by equation (114).
number
[0394] In this case, the relaxed problem solution instance 1232(1) for t=1 is as shown in Table 3. [Table 3]
[0395] In this case, the approximate problem instance 1241(1) for t=1 is, for example, equation (115).
number
[0396] In this case, the approximate problem sample data 1243(1) for t=1 is as shown in Table 4. [Table 4]
[0397] Moreover, the decision variable substitution table 125(1) for t=1 is as shown in Table 5. [Table 5]
[0398] Furthermore, the decision variable substitution table 125(2) for t=2 is as shown in Table 6. [Table 6]
[0399] For example, the primary problem solution instance 1212 would then be as shown in Table 7. [Table 7]
[0400] (Programs, etc.) The sampling schema method program 151 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).
[0401] The sampling schema method program 151 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 sampling schema method program 151 may also be configured to be provided or distributed via a network such as the Internet.The sampling schema method program 151 may also be configured to be provided by being pre-installed in a ROM or the like.
[0402] 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.
[0403] 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.
[0404] 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.
[0405] Although several embodiments of the present invention have been described, these 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 embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]
[0406] 1,2,1X,1Y problem solving device 3. Problem-solving system 11 Bus 12 Temporary storage 13 Central Processing Unit 14, 14A, 14B Sampler 15 Long-term storage 16 Input Devices 17 Output Devices 151 Sampling Schema Method Program 1511 Derive Dependent Problem Instance Subprogram 1512 Subprogram for solving relaxation problem instances 1513 Subprogram for deriving approximate problem instances 1514 Subprogram for adding items to the decision variable replacement table 1515 Subprogram for deriving the solution instance of the primal problem
Claims
1. a problem acquisition unit that acquires a primal problem for minimizing an objective function including a plurality of decision variables under or without constraints; a dependent problem generation unit that generates, in response to execution of a new registration process for newly registering a value of any of the plurality of decision variables in a decision variable replacement table in which values of already-determined decision variables among the plurality of decision variables are registered, a dependent problem including, as a plurality of dependent decision variables, two or more decision variables among the plurality of decision variables that have not been registered as already-determined in the decision variable replacement table; an approximation problem generator that generates an approximation problem each time the dependent problem is generated, the approximation problem including two or more dependent decision variables, selected from a part or all of the dependent decision variables with the greatest influence, as two or more remaining decision variables; a table updating unit that performs a new registration process to determine values for each of the two or more remaining decision variables based on a plurality of solutions to the approximation problem, and newly registers the values determined by performing the statistical process for each of one or more decision variables corresponding to some or all of the two or more remaining decision variables in the decision variable replacement table; a solution output unit that outputs a solution to the main problem based on all the values of the plurality of decision variables registered in the decision variable replacement table when all the values of the plurality of decision variables included in the main problem are registered in the decision variable replacement table; A problem solving device comprising:
2. the objective function is a quadratic function, the constraint condition is expressed by one or more first-order constraint equations including any of the plurality of decision variables; Each of the plurality of decision variables is a binary variable representing a first value or a second value.
2. The problem solving device according to claim 1.
3. the dependent problem is a problem in which decision variables registered as having been determined in the decision variable replacement table among the plurality of decision variables in the main problem are replaced with the determined values, The approximation problem is a problem in which dependent decision variables, excluding the two or more dependent decision variables, among the plurality of dependent decision variables in the dependent problem are replaced with estimated values.
3. The problem solving device according to claim 2.
4. A relaxation problem generating and solving unit is further provided, the relaxed problem generating and solving unit generates a plurality of continuous decision variables that correspond one-to-one to the plurality of dependent decision variables; each of the plurality of continuous decision variables is a continuous variable; The relaxed problem generating and solving unit generating a relaxation problem by replacing each of the plurality of dependent decision variables included in the dependent problem with a corresponding continuous decision variable from among a plurality of continuous decision variables and converting an objective function of the dependent problem into a continuous convex quadratic function based on a predetermined rule; Solve the relaxation problem 4. The problem solving device according to claim 3.
5. The approximation problem generator calculating a weighting coefficient for each of the plurality of dependent decision variables, the weighting coefficient being the absolute value of a cumulative value of weights assigned to terms including the corresponding decision variable among the plurality of decision variables in the main problem; selecting, from the plurality of dependent decision variables, dependent decision variables with the highest weighting coefficients, the number of which corresponds to a preset upper limit value of sampling-time variables; generating the approximation problem including, as the two or more remaining decision variables, dependent decision variables equal to the number of the selected upper limit values of the sampling-time variables from among the plurality of dependent decision variables; the approximation problem is a problem in which unselected dependent decision variables among the plurality of dependent decision variables are replaced with the estimated values, The estimated value is a value of a continuous decision variable corresponding to an unselected dependent decision variable among the values of the plurality of continuous decision variables included in the solution of the relaxation problem.
5. The problem solving device according to claim 4.
6. The approximation problem generator If the number of the plurality of dependent decision variables is smaller than the upper limit value of the sampling-time variable, the approximation problem is generated, which includes all of the plurality of dependent decision variables included in the dependent problem as two or more remaining decision variables.
6. The problem solving device according to claim 5.
7. the decision variable replacement table has registered therein items including a serial number, a replacement source decision variable, and a replacement destination value; The serial number indicates the order of the item and does not overlap with other items; the replacement source decision variable identifies any of the plurality of decision variables and does not overlap with other items; the replacement value represents the first value, the second value, a previously output decision variable multiplied by a non-inverting code that does not invert the sign, or a previously output decision variable multiplied by an inverting code that inverts the sign; The previously mentioned decision variable represents the replacement source decision variable whose serial number is included in the subsequent item.
7. The problem solving device according to claim 3.
8. The table update unit calculating an average value for each of the two or more remaining decision variables based on a plurality of solutions to the approximation problem, and calculating an evaluation value corresponding to the calculated average value; calculating a correlation value representing a correlation for each of a plurality of sets of variables included in the two or more remaining decision variables based on a plurality of solutions to the approximation problem, and calculating the evaluation value according to the calculated correlation value; each of the plurality of variable sets is a set of two different remaining decision variables; Store multiple elements in a priority queue, each of the plurality of elements includes one of the two or more remaining decision variables or one of the plurality of variable sets together with the evaluation value; newly registering the item corresponding to the leading element having the largest evaluation value among the plurality of elements stored in the priority queue in the decision variable replacement table, on the condition that the item does not overlap with any already registered item; the item corresponding to the first element to be newly registered includes the serial number indicating a position after the items already registered in the decision variable replacement table, removing the head element from the priority queue; repeating a process of newly registering the item corresponding to the top element in the priority queue in the decision variable replacement table on the condition that the item does not overlap with an already registered item and a process of deleting the top element from the priority queue until a termination condition is reached; The termination condition is that the priority queue becomes empty, that the number of newly registered items becomes greater than a predetermined variable replacement lower limit, or that the evaluation value of the leading element becomes smaller than a predetermined replacement threshold.
8. The problem solving device according to claim 7.
9. When the leading element includes a target remaining decision variable among the two or more remaining decision variables, The table update unit If the target remaining decision variable does not overlap with any of the replacement source decision variables included in the decision variable replacement table, a first item that is the item is newly registered in the decision variable replacement table, and the top element is deleted from the priority queue; The first item is The replacement source decision variables include the target remaining decision variables, The replacement value includes a value obtained by binarizing the average value for the target remaining decision variable into the first value or the second value.
9. The problem solving apparatus according to claim 8.
10. When the target remaining decision variable overlaps with any of the replacement source decision variables included in the decision variable replacement table, the table update unit: The top element is deleted from the priority queue without newly registering the item in the decision variable replacement table.
10. The problem solving apparatus according to claim 9.
11. When the first element includes any one of the target variable sets among the plurality of variable sets, the target variable set represents a set of a first remaining decision variable and a second remaining decision variable among the two or more remaining decision variables; The table update unit if the first remaining decision variable does not overlap with any of the decision variables to be replaced that are included in the decision variable replacement table, and the second remaining decision variable does not overlap with any of the decision variables to be replaced that are included in the decision variable replacement table, register the second item that is the item as a new item in the decision variable replacement table, and delete the top element from the priority queue; The second item is: The replacement source decision variables include the first remaining decision variable, The replacement value includes the second remaining decision variable obtained by multiplying the correlation value for the target variable set by the non-inverted code or the inverted code.
9. The problem solving apparatus according to claim 8.
12. The table update unit if the first remaining decision variable does not overlap with any of the replacement source decision variables included in the decision variable replacement table and the second remaining decision variable overlaps with any of the replacement source decision variables included in the decision variable replacement table, register a third item as the item in the decision variable replacement table as a new entry, and delete the top element from the priority queue; The third item is: The replacement source decision variables include the first remaining decision variable, The replacement value includes a first calculation value, The first calculation value is a value obtained by multiplying the replacement value included in the item that includes the second remaining decision variable as the replacement source decision variable in the decision variable replacement table by a code obtained by encoding the correlation value for the target variable set into the non-inverted code or the inverted code. The problem solving apparatus according to claim 11.
13. The table update unit When the first remaining decision variable overlaps with any of the decision variables to be replaced included in the decision variable replacement table, and the second remaining decision variable overlaps with any of the decision variables to be replaced included in the decision variable replacement table, The top element is deleted from the priority queue without newly registering the item in the decision variable replacement table.
13. The problem solving apparatus according to claim 12.
14. The solution output unit tracing the items included in the decision variable replacement table in reverse order of the serial numbers from the end to the beginning of the serial numbers, and determining the replacement source decision variable among the plurality of decision variables based on the replacement destination value; The determined values of each of the plurality of decision variables are output as a solution to the primal problem.
8. The problem solving device according to claim 7.
15. For each of the plurality of decision variables, the solution output unit If the replacement value is the first value, the value of the corresponding decision variable is set to the first value; If the replacement value is the second value, the value of the corresponding decision variable is set to the second value; If the replacement value is the previously output decision variable multiplied by the non-inverted sign, the value of the corresponding decision variable is set to the value determined for the previously output decision variable; If the replacement value is the previously output decision variable multiplied by the inverted sign, the value of the corresponding decision variable is set to the inverted value of the previously output decision variable.
15. The problem solving apparatus according to claim 14.
16. The method further includes a solution acquisition unit that provides the approximation problem to a sampler that solves a quadratic minimization problem with linear constraints and acquires a plurality of solutions to the approximation problem from the sampler.
2. The problem solving device according to claim 1.
17. The dependent problem generation unit generates the dependent problem in response to acquiring the main problem when the value of any of the plurality of decision variables is not registered in the decision variable substitution table.
2. The problem solving device according to claim 1.
18. By using an information processing device, a primal problem is obtained that minimizes an objective function including a plurality of decision variables under or without constraints; a process for newly registering a value of one of the plurality of decision variables in a decision variable replacement table in which values of already-determined decision variables are registered, the process being carried out by the information processing device; and a process for generating a dependent problem including, as a plurality of dependent decision variables, two or more decision variables from the plurality of decision variables that have not been registered as already-determined in the decision variable replacement table. generating an approximation problem including two or more dependent decision variables, selected from a part or all of the plurality of dependent decision variables in descending order of influence, as two or more remaining decision variables, each time the dependent problem is generated by the information processing device; executes the new registration process by using the information processing device to perform statistical processing on each of the two or more remaining decision variables based on a plurality of solutions to the approximation problem to determine a value, and newly registers the values determined by performing the statistical processing on each of one or more decision variables corresponding to some or all of the two or more remaining decision variables in the decision variable replacement table; When all values of the plurality of decision variables included in the main problem are registered in the decision variable replacement table by the information processing device, a solution to the main problem is output based on all values of the plurality of decision variables registered in the decision variable replacement table. Problem solving method.
19. A program for causing an information processing device to function as a problem solving device, The information processing device a problem acquisition unit that acquires a primal problem for minimizing an objective function including a plurality of decision variables under or without constraints; a dependent problem generation unit that generates, in response to execution of a new registration process for newly registering a value of any of the plurality of decision variables in a decision variable replacement table in which values of already-determined decision variables among the plurality of decision variables are registered, a dependent problem including, as a plurality of dependent decision variables, two or more decision variables among the plurality of decision variables that have not been registered as already-determined in the decision variable replacement table; an approximation problem generator that generates an approximation problem each time the dependent problem is generated, the approximation problem including two or more dependent decision variables, selected from a part or all of the dependent decision variables with the greatest influence, as two or more remaining decision variables; a table updating unit that performs a new registration process to determine values for each of the two or more remaining decision variables based on a plurality of solutions to the approximation problem, and newly registers the values determined by performing the statistical process for each of one or more decision variables corresponding to some or all of the two or more remaining decision variables in the decision variable replacement table; a solution output unit that outputs a solution to the main problem based on all the values of the plurality of decision variables registered in the decision variable replacement table when all the values of the plurality of decision variables included in the main problem are registered in the decision variable replacement table; A program to make it function as such.
Citation Information
Patent Citations
Calculation device, calculation method, and program
JP2021043589A
Information processing device, program, information processing method, and electronic circuit
JP2021043667A
Information processor, solution-finding method, and solution-finding program
JP2023035664A