Problem solving device, problem solving method, and program

The problem-solving device efficiently calculates high-accuracy solutions for optimization problems with many variables by dividing decision variables and using sampling and statistical processing to extract a subproblem structure, addressing the inefficiencies of existing methods.

WO2025182538A1PCT designated stage Publication Date: 2025-09-04KK TOSHIBA +1
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/004264
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-09-25
Filing Date
2025-02-10
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

Existing optimization problems with a large number of variables, especially those without a clear subproblem structure or natural total/partial order, are difficult to solve efficiently with high accuracy.

Method used

A problem-solving device and method that divides decision variables into high and low influence groups, uses sampling and statistical processing on high-influence variables, and generates approximation problems to extract a subproblem structure, enabling efficient solution calculation.

Benefits of technology

Enables high-accuracy solution calculation for optimization problems with a large number of variables in a short time, even when they lack a natural order or cluster structure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025004264_04092025_PF_FP_ABST
    Figure JP2025004264_04092025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention calculates an accurate solution in a short time by extracting a partial problem structure from a network optimization problem. A problem solving device according to one embodiment solves a network optimization problem. The problem solving device comprises a processing unit that repeatedly executes first processing, second processing, and third processing. In the first processing, the processing unit classifies each of a plurality of determination variables included in the network optimization problem as a high-impact determination variable or a low-impact determination variable. In the second processing, the processing unit replaces each low-impact determination variable with an estimated value and performs sampling and statistical processing on each high-impact determination variable. In the third processing, the processing unit replaces a determination variable having a strong statistical bias with a value based on the statistical bias on the basis of the results from the sampling and statistical processing.
Need to check novelty before this filing date? Find Prior Art

Description

Problem solving device, problem solving method and program

[0001] An embodiment of the present invention relates to a problem-solving device, a problem-solving method, and a program.

[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] A main problem that includes the structure of subproblems is, for example, 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 point and the second point, an enormous amount of calculation time would be required.

[0004] As a method for solving such a problem, a first algorithm that 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 time required to travel by car from a first point to several highway entrances around the first point. Second, the first algorithm searches for a route that minimizes the time required to travel by car from several highway entrances around the first point to several highway exits around a second point. Third, the first algorithm searches for a route that minimizes the time required to travel by car from several highway exits around the second point to the second point. Fourth, the first algorithm searches for a combination that minimizes the time required to travel by car for several highway entrances around the first point and several highway exits around the second point. Such a first algorithm can solve the main problem of searching for a route that minimizes the time required to travel by car between two specific points in a realistic calculation time.

[0006] Also, a method is known for reducing the time required to solve a large-sized linear programming problem 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). The NSP is a problem of creating a schedule that allocates the required number of nurses with the required skill levels to work shifts, assuming a two- or three-shift system, and satisfies 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 to assign the required number of nurses with the required skill level to each shift. The second type is to calculate the workload for each nurse over a range of a specified number of consecutive shifts or a specified number of days and keep the calculated workload within the specified range. The third type is to assign vacation time to each nurse on specific dates and times.

[0011] For example, a one-month NSP includes subproblems for the first, second, third, and fourth weeks. 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 the first and second weeks, the second and third weeks, and the third and fourth weeks, and the connections become weaker as the time gap increases. Furthermore, in the one-month NSP, there is a shift that is not targeted for optimization before the first week. In the one-month NSP, the shifts that are not targeted for optimization also function as constraints.

[0012] The second algorithm utilizes 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] Also, a method for reducing the time required to solve a large-sized linear programming problem using the following third algorithm is known.

[0014] The third algorithm solves the workflow scheduling problem (WSP) as follows: First, the third algorithm extracts m jobs from upstream in the dependency chain among jobs for which execution time slots have not been determined. Second, the third algorithm extracts n time slots from earlier in 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 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 can be executed simultaneously, so that the amount of resources required for the jobs that can be executed simultaneously does not exceed the upper resource limit. 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 job dependencies that form a directed acyclic graph. The third algorithm solves subproblems of such WSPs, each consisting of m jobs and n time slots, starting from the upstream of the dependency relationships. Although the algorithm is more complex than solving a JSP, which is a simple sequence, it can reduce the calculation time while maintaining the accuracy of the solution.

[0017] As described above, the second algorithm is targeted at 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 of the total order based on date and time.

[0018] On the other hand, the third algorithm is intended for the problem class of WSP, where a natural partial order, called dependency, exists. Therefore, the third algorithm obtains a total order by performing a topological sort on the partial order based on the dependency. The third algorithm then extracts subproblems from the front to back from 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 it is difficult to obtain a highly accurate solution for problem classes that do not have a natural total or partial order but include a subproblem structure.Also, the second algorithm has the problem that it targets only linear programming problems and cannot solve quadratic programming problems 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 drugs, can be expressed as an optimization problem as follows: (1) Among the combinations of whether or not to prescribe each of the candidate drugs, (2) under the constraint that no contraindications or precautions for combined use occur, (3) the problem of finding the combination with the highest therapeutic effect, taking into account even second-order 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 may involve millions of binary variables. Conventional QUBO (Quadratic Unconstrained Binary Optimization) solvers have difficulty directly solving optimization problems involving such a large number of binary variables. Furthermore, since the drug combination problem does not have a clear subproblem structure and no natural total or partial order, it is also difficult to solve using the first to third algorithms described above.

[0026] JP 2023-035664 A JP 2021-043667 A JP 2021-043589 A

[0027] Atsuko Ikegami, "Nurse Scheduling - Research, Modeling, and Algorithms," Mathematical Planning Institute, Mathematical Planning (2005), Vol. 53, No. 2, pp. 231-259, May 13, 2005. Pakhomchik, A. I., Yudin, S., Perelshtein, M. R., Alekseyenko, A., & Yarkoni, S., "Solving workflow scheduling problems with QUBO modeling," May 10, 2022, Internet <URL, https: / / arXiv preprint arXiv:2205.04844>. Hayato Goto, Kosuke Tatsumura, and Alexander R. Dixon, "Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems," Science Advances 5, eaav2372, 2019. 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

[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.

[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 execution of a new registration process for newly registering the value of any of the multiple decision variables in a 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 performing 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 registering 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 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.

[0030] FIG. 1A is a diagram showing the functional configuration of a problem solving device according to a first embodiment. FIG. 1B is a diagram showing the functional configuration when a central processing unit executes processing according to a program. FIG. 2 is a diagram showing information stored in a long-term storage device. FIG. 3 is a diagram showing information stored in a temporary storage device. FIG. 4 is a functional block diagram showing an outline of the processing flow of a problem solving device. FIG. 5 is a flowchart showing the processing flow of a sampling schema method program. FIG. 6 is a flowchart showing the processing from S111 to S115 of a dependent problem instance derivation subprogram. FIG. 7 is a flowchart showing the processing from S116 to S129 of a dependent problem instance derivation subprogram. FIG. 8 is a flowchart showing the processing flow of a relaxed problem instance derivation / solution subprogram. FIG. 9 is a flowchart showing the processing flow of an approximation problem instance derivation subprogram. FIG. 10 is a flowchart showing the processing flow from S411 to S418 of a decision variable replacement table item addition subprogram. FIG. 11 is a flowchart showing the processing flow from S419 to S425 of a decision variable replacement table item addition subprogram. Fig. 12 is a flowchart showing the processing flow from S426 to S442 of the decision variable replacement table item addition subprogram. Fig. 13 is a flowchart showing the processing flow of the main problem solution instance derivation subprogram. Fig. 14 is a diagram showing the functional configuration of a problem solving device according to the second embodiment. Fig. 15 is a diagram showing the functional configuration of a problem solving system according to the third embodiment.

[0031] First Embodiment First, a problem-solving device 1 according to a 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 multiple decision variables included in the network optimization problem into decision variables with a high influence and decision variables with a low influence, replaces the decision variables with a low influence with estimated values, performs sampling and statistical processing on the decision variables with a high influence, and replaces decision variables with a strong statistical bias with a value 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 for finding 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 in which multiple computers or servers communicate with each other via a network, or a PC cluster in which multiple computers work together 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 technique based on the quantum adiabatic theorem. The simulated bifurcation algorithm can solve combinatorial optimization problems in which the cost function is a quadratic function of multiple binary decision variables, i.e., QUBO problems. The simulated bifurcation algorithm can also solve combinatorial optimization problems in which the cost function is a cubic or higher function of multiple binary decision variables, i.e., HUBO (Higher Order Binary Optimization) problems. A simulated bifurcation algorithm for solving HUBO problems is described, for example, in Patent Document 2. The simulated bifurcation algorithm can also solve combinatorial optimization problems in which some or all of the multiple decision variables include continuous-valued variables. A simulated bifurcation algorithm for solving a combinatorial optimization problem in which some or all of a plurality of decision variables include continuous variables is disclosed in, for example, 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. The simulated bifurcation algorithm sets a set of initial values ​​for the multiple position variables or multiple momentum variables at the start of execution. 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-inverting code that does not invert the sign, or a previously determined decision variable multiplied by an inverting 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 of 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 of the main problem that are registered as determined in the decision variable replacement table are replaced with determined values.

[0056] In addition, if the values ​​of any of the multiple decision variables are 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 relaxation problem generating and solving unit 28 generates a relaxation 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 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 remaining decision variables, which are some or all of the two or more dependent decision variables with the greatest influence among the multiple dependent decision variables included in the dependent problem. An approximation problem is a problem in which the dependent decision variables, excluding some or all of the two or more dependent decision variables with 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 among 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 variable, 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 update 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 update 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 leading element with the largest 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 leading 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 leading element from the priority queue.The table update unit 34 then repeats the process of newly registering an item corresponding to the leading 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 leading 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 leading element is smaller than a predetermined replacement threshold.

[0072] For example, when the top element includes any one of the two or more remaining decision variables as the target remaining decision variable, the table updating 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 a target remaining decision variable as a replacement source decision variable, and a replacement value obtained by binarizing the mean value of the target remaining decision variable into a first value or a second 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 update 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 priority queue.

[0078] The second item includes the first remaining decision variable as the decision variable to be replaced, and the second item includes, as the 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.

[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 priority queue.

[0080] The third item includes the first remaining decision variable as the decision variable to be replaced, and the third item also includes a first calculated value as a 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 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 if 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 deletes the top element from the prioritized queue without newly registering an item in the decision variable replacement table.

[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 items in the decision variable replacement table in reverse order of the serial numbers from the end to the beginning, determines the source decision variables among the multiple decision variables based on the values ​​of the replacement variables, and outputs the determined values ​​of each of the multiple decision variables as a 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 a first value. Furthermore, if the replacement value is a second value, the solution output unit 36 ​​sets the value of the corresponding decision variable to a second value. Furthermore, 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. Furthermore, 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 a value obtained by inverting 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 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 described in more detail below.

[0087] FIG. 2 is a diagram showing the information stored in the long-term storage device 15. As shown in FIG.

[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 items 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 Ising quadratic minimization problem class with linear constraints 1521 is expressed as IsingProblem. The Ising quadratic minimization problem class with linear constraints 1521 is a class that represents a normalized Ising quadratic minimization problem with linear constraints. The Ising quadratic minimization problem class with linear constraints 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.

[0092] Equation (2) represents the decision variables.

[0093] Equation (3) represents the standard form of the objective function.

[0094] Equation (4) represents the quadratic coefficient of the objective function.

[0095] Equation (5) represents the linear coefficient of the objective function.

[0096] Equation (6) represents the standard form of the linear constraints.

[0097] Equation (7) represents the number of linear constraints.

[0098] Equation (8) represents the coefficients of the linear constraints.

[0099] Equation (9) represents the upper limit of the linear constraint.

[0100] Note that the quadratic coefficients of the objective function in equation (4) are normalized so that the diagonal terms are 0 and the matrix is ​​expressed as a lower triangular matrix. For example, assume that the general coefficients shown in equation (10) are given.

[0101] In such a case, the quadratic coefficients of the objective function are normalized as shown in equation (11).

[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.

[0103] In such cases, the linear constraints are normalized as shown in equation (13).

[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.

[0106] Equation (15) represents the value of the solution vector.

[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 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 that is greater than or equal to −1 and less than or equal to +1, as shown in equation (16).

[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 corresponding to the solution and that is represented by the following equations (17) and (18).

[0110] Equation (17) represents the index set.

[0111] Equation (18) represents the value of the solution vector.

[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 represented 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 manages pairs of a decision variable to be replaced and a value to be replaced by assigning a serial number to each pair.

[0114] Equation (19) represents the number of entries in the table.

[0115] However, the number of items in the table is limited as shown in equation (20).

[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.

[0118] However, the serial numbers are integers from 1 to Size in order.

[0119] Equation (22) represents one of the columns of the table and represents the decision variables to be replaced.

[0120] However, the decision variables before replacement do not overlap, i.e., the decision variables before replacement satisfy the condition of equation (23).

[0121] Expression (24) represents one of the columns of the table and represents the replacement value.

[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).

[0123] FIG. 3 is a diagram showing information stored in the temporary storage device 12. As shown in FIG.

[0124] The temporary memory 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 of 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 relaxed problem instance 1231(t) is denoted as ContinuousProblemrelaxed,(t). The relaxed problem instance 1231(t) is an instance of the linearly constrained continuous quadratic minimization problem class 1523.

[0130] The relaxed problem solution instance 1232(t) is denoted as ContinuousSolutionrelaxed,(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 of the relaxed problem instance 1231(t).

[0131] The approximation problem instance 1241(t) is denoted as IsingProblemrelaxed,(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 represented as IsingSolutionapproximate(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 of the approximate problem instance 1241(t).

[0133] The approximate problem sample data 1243(t) is represented as SampleDataapproximate(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).

[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 serial numbers, source decision variables, and destination values ​​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 storage device 12 can be reduced.

[0138] In such a decision variable replacement table 125(t), the values ​​of the decision variables that have already been determined among a plurality of decision variables are registered. The decision variable replacement table 125(t) is composed of 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 previously mentioned decision variable (x) multiplied by the first value (+1), the second value (-1), and the non-inverted sign (+1). j ), or the previously mentioned decision variable (-x j ) represents the decision variable (x j ) represents a replacement source decision variable 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 ) has a correlation with the value of the decision variable (x j ) multiplied by the non-inverted sign (+x j ), or the value of the decision variable multiplied by the inverted sign (-x j )

[0141] Before the process of solving the main problem, the decision variable replacement table 125(0) is empty and contains no entries. The decision variable replacement table 125(t) has entries added sequentially, starting with the entry with the earliest serial number (Id). After the process of solving the main problem is complete, the decision variable replacement table 125(T) contains entries equal to the number of decision variables.

[0142] In such a decision variable replacement table 125(t), a decision variable having 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 having 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).

[0145] The sampling time variable upper limit value 1262 is expressed as in equation (27).

[0146] The variable replacement lower limit 1263 is expressed as in equation (28).

[0147] The replacement threshold 1264 is expressed as in equation (29).

[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 obtains the main problem instance 1211 (IsingProblem main ), a 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 obtain the

[0157] By performing 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] Next, in S14, the central processing unit 13 creates a decision variable replacement table 125(0) (ReplaceTable (0)) is created empty.

[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 executes the Size (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 | or more (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 the threshold (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 create 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 the value of any one of the plurality of decision variables is not 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 / solving subprogram 1512 to derive and solve the relaxed problem instance 1231(t). sub,(t) ) to derive a relaxed problem instance 1231(t) (ContinuousProblemRelaxed,(t)) and obtain a relaxed problem solution instance 1232(t) (ContinuousSolutionRelaxed,(t)). The relaxed problem solution instance 1232(t) (ContinuousSolutionRelaxed,(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. 8.

[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 relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)), an approximated problem instance 1241(t) (IsingProblemmapprox,(t)) is derived. The approximated problem instance 1241(t) (IsingProblemmapprox,(t)) has fewer decision variables than the immediately preceding approximated problem instance 1241(t-1) (IsingProblemmapprox,(t-1)), and the number of decision variables is equal to or less than the sampling time variable upper limit value 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 approximate problem instance 1241(t). The central processing unit 13 performs sampling using the approximate problem instance 1241(t) (IsingProblemmapprox,(t)) and the inverse temperature constant 1261, and obtains approximate problem sample data 1243(t) (SampleDataapproximate,(t)).

[0172] The central processing unit 13 performs sampling using a sampler 14. The sampler 14 outputs multiple solutions. The sampler 14 may output multiple solutions for a given problem by executing multiple engines in parallel, or one engine may repeat the solution-finding process multiple times to output multiple solutions. By executing multiple engines in parallel, the sampler 14 can reduce the calculation time required to output multiple solutions. The sampler 14 then outputs the results of statistical processing of the calculated multiple solutions.

[0173] By executing the process of S21, the problem solving device 1 can generate a plurality of solutions to an approximate problem every time an approximate 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 a decision variable replacement table 125(t) with the added item. The central processing unit 13 uses the approximate problem sample data 1243(t) (SampleDataapproximate, (t)) to generate the previous decision variable replacement table 125(t-1) (ReplaceTable (t-1) ) to create a new decision variable replacement table 125(t) (ReplaceTable (t) 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, each time it obtains multiple solutions to the approximation problem.The problem solving device 1 can then execute a new registration process for newly registering, in the decision variable replacement table, 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.

[0176] When the central processing unit 13 finishes the process of S22, it returns the process 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 then derives the decision variable replacement table 125 (T) (ReplaceTable) at the end of the repetition. (T) ) to generate a 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 ), a 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 Figures 6 and 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 create 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 obtain 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).

[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 (ValueId ) satisfies the formula (31).

[0189] The replacement value (Value 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 taken as Sign.

[0192] Next, in S119, the central processing unit 13 calculates the index set (Index sub,(t) ) by deleting the corresponding subscript i.

[0193] Next, in S120, the central processing unit 13 i The 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 substitution.

[0194] Specifically, the central processing unit 13 updates as shown in equation (33).

[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).

[0196] Next, in S121, the central processing unit 13 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 substitution.

[0197] Specifically, the central processing unit 13 updates as shown in equation (36).

[0198] When the central processing unit 13 finishes the process of S121, the process proceeds to S129.

[0199] In S122, the central processing unit 13 determines the replacement value (Value Id ) satisfies the formula (37).

[0200] The replacement value (Value 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 ) to Sign x j Let's say.

[0203] Next, in S125, the central processing unit 13 calculates the index set (Index sub,(t) ) by deleting the corresponding subscript i.

[0204] Next, in S126, the central processing unit 13 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 substitution.

[0205] Specifically, the central processing unit 13 updates as shown in equation (39).

[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).

[0207] Next, in S127, the central processing unit 13 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 substitution.

[0208] Specifically, the central processing unit 13 updates as shown in equation (42).

[0209] Next, in S128, the central processing unit 13 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 substitution.

[0210] Specifically, the central processing unit 13 updates as shown in equation (44).

[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. (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 creates a new dependent problem instance 1221(t) (IsingProblem sub,(t) After outputting 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 create 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 of the plurality of decision variables in the main problem that are not registered as having been determined in the decision variable replacement table. Furthermore, the dependent problem generated by the processes of S111 to S129 is a problem in which, of the plurality of decision variables in the main problem, decision variables that are registered as having been determined in the decision variable replacement table 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 derive a relaxed problem instance 1231(t) (ContinuousProblemrelaxed,(t)) and obtain a relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)).

[0219] First, in S211, the central processing unit 13 calculates the dependent problem instance 1221(t) (IsingProblem sub,(t) ) to obtain the

[0220] Next, in S212, the central processing unit 13 calculates the index set (Index sub,(t) ) into the index set (Index sub,(t) )

[0221] Next, 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).

[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.

[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).

[0225] In equation (47), λ is a real number greater than 0 and is an L2 regularization constant.

[0226] In this case, the relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)) becomes 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] Next, 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 constructs a relaxed problem instance 1231(t) (ContinuousProblemRelaxed,(t)), solves it using the sampler 14, and obtains a relaxed problem solution instance 1232(t) (ContinuousSolutionRelaxed,(t)). Because the relaxed problem instance 1231(t) (ContinuousProblemRelaxed,(t)) is a continuous convex quadratic optimization problem, the sampler 14 can easily obtain the relaxed problem solution instance 1232(t) (ContinuousSolutionRelaxed,(t)).

[0229] Subsequently, in S218, the central processing unit 13 outputs the relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed, (t)). After outputting the relaxed problem solution instance 1232(t) (ContinuousProblemrelaxed, (t)), the central processing unit 13 may delete the relaxed problem instance 1231(t) (ContinuousProblemrelaxed, (t)).

[0230] By executing the above process, the problem solving device 1 generates a new dependent problem instance 1221(t) (IsingProblem sub,(t) ) can be used to derive a relaxed problem instance 1231(t) (ContinuousProblemrelaxed,(t)) and find a relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)).

[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 the 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 calculations.

[0233] FIG. 9 is a flowchart showing the flow of processing by the central processing unit 13 that executes the subprogram 1513 for deriving an approximate problem instance.

[0234] The central processing unit 13 executes the approximate 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 generates a new dependent problem instance 1221(t) (IsingProblem sub,(t) ) and the relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)) are used to derive an approximation problem instance 1241(t) (IsingProblemmapprox,(t)).

[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.

[0236] Subsequently, in S312, the central processing unit 13 calculates the dependent problem instance 1221(t) (IsingProblem sub,(t) ) and a relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)).

[0237] Subsequently, in S313, the central processing unit 13 calculates the dependent problem instance 1221(t) (IsingProblem sub,(t) ) is the upper limit value of the sampling variable 1262 (UpperLimit sampling ) or not. sub,(t) ) is the upper limit value of the sampling variable 1262 (UpperLimit sampling ) (Yes in S313), the central processing unit 13 advances the process to S314. sub,(t) ) is the upper limit value of the sampling variable 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) ) as it is as the approximate problem instance 1241(t) (IsingProblemmapprox,(t)). After outputting, the central processing unit 13 may delete the relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)).

[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.

[0240] The weighting coefficient (Weight) in Equation (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).

[0241] Subsequently, in S316, the central processing unit 13 calculates the weighting coefficient (Weight sub,(t) ) are the upper limit values ​​of the sampling variables 1262 (UpperLimit sampling ) is acquired as the index set (Indexapproximate, (t)) of the approximation problem instance 1241(t).

[0242] Next, in S317, the central processing unit 13 sets the number of linear constraints of the approximate 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 approximate problem instance 1241(t) to only the decision variables included in the subscript set of the approximate problem instance 1241(t), as shown in equation (51).

[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).

[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).

[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).

[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).

[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).

[0249] The linear coefficients of the objective function of the approximation problem instance 1241(t) of 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).

[0251] Specifically, the central processing unit 13 determines the coefficients based on the linear constraints of the dependent problem instance 1221(t) by leaving only the part included in the index set of the approximate problem instance 1241(t), as shown in equation (58).

[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).

[0253] Specifically, the central processing unit 13 sets an upper limit value that expands the allowable range by the amount of decision variables that are not included in the index set of the approximate problem instance 1241(t), based on the linear constraints of the dependent problem instance 1221(t), as shown in equation (60).

[0254] Both the dependent problem instance 1221(t) and the approximate problem instance 1241(t) are normalized, and increasing the tolerance range corresponds to increasing the upper limit.

[0255] Subsequently, in S323, the central processing unit 13 constructs and outputs an approximate problem instance 1241(t) (IsingProblemmapprox,(t)). After outputting, the central processing unit 13 may delete the relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)).

[0256] By executing the above process, the problem solving device 1 generates a new dependent problem instance 1221(t) (IsingProblem sub,(t) ) and the relaxed problem solution instance 1232(t) (ContinuousSolutionrelaxed,(t)) can be used to derive the approximation problem instance 1241(t) (IsingProblemmapprox,(t)).

[0257] That is, by executing the processes of S311 to S323, the problem solving device 1 can generate an approximate problem. The approximate 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 influence among the multiple dependent decision variables included in the dependent problem. Furthermore, the approximate 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 influence 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, as two or more remaining decision variables, the number of dependent decision variables selected from the plurality of dependent decision variables, the number of which is equal to the selected upper limit value of the sampling-time variables. 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. The estimated values ​​used in the processes of S317 to S322 are the values ​​of the 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 approximate 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 variable.

[0261] 10, 11, and 12 are flowcharts showing the flow of processing by the central processing unit 13 when it executes 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 Figures 10, 11, and 12. By executing the processes of S411 to S442, the central processing unit 13 uses the approximate problem sample data 1243(t) (SampleDataapproximate, (t)) to create the previous decision variable replacement table 125(t-1) (ReplaceTable (t-1) ) to create a 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.

[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).

[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).

[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).

[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).

[0268] Subsequently, in S412, the central processing unit 13 performs the following operations: (t-1) ) to obtain the

[0269] Next, in S413, the central processing unit 13 performs statistical processing on the approximate problem sample data 1243(t) (SampleDataapproximate, (t)) weighted using the inverse temperature constant 1261, and calculates the average for one decision variable shown in equation (68).

[0270] Next, in S414, the central processing unit 13 performs weighted statistical processing using the inverse temperature constant 1261 on the approximate problem sample data 1243(t) (SampleDataapproximate, (t)), and calculates the correlation for the pair of two decision variables shown in equation (69).

[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 approximate (t)).

[0272] For example, the central processing unit 13 calculates the evaluation value (Score) as shown in equation (72). j approximate (t)).

[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 approximate (t)).

[0274] For example, the central processing unit 13 calculates the evaluation value (Score) as shown in equation (75). i,j approximate (t)).

[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] Next, 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 first sorting all elements in order of priority, the central processing unit 13 can use the heap queue to partially sort in order of priority 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 updates the previous decision variable replacement table 125(t-1) (ReplaceTable (t-1) ), a table with an area reserved for adding new items is called a new decision variable replacement table 125(t) (ReplaceTable (t) ) is generated.

[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).

[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).

[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).

[0287] If the evaluation value of the leading element in 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 leading element in 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 ) does not overlap with the decision variable (AddressIdExisting) from which the existing item is to be replaced.

[0290] The decision variable of the top element of the priority queue (x i If the decision variable (x) of the top element of the priority queue does not overlap with the decision variable (AddressIdExisting) of the item to be replaced (Yes in S427), the central processing unit 13 advances the process to S428. i If the new item (AddressIdExisting) overlaps with the decision variable (AddressIdExisting) of the replacement source of the existing item (No in S427), the central processing unit 13 advances the process to S442.

[0291] In S428, the central processing unit 13 creates a new decision variable replacement table 125(t) (ReplaceTable (t) ), serial number (IdToAppend ), an item containing the source decision variable (AddressIdToAppend) and the destination value (ValueIdToAppend).

[0292] Serial number (ID ToAppend ) is expressed as in equation (80).

[0293] The decision variable (AddressIdToAppend) to be replaced is expressed as in equation (81).

[0294] The replacement value (ValueIdToAppend) is expressed as in equation (82).

[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).

[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 ) does not overlap with the decision variable (AddressIdExisting) from which the existing item is to be replaced.

[0299] The decision variable of the top element of the priority queue (x iIf the decision variable (x) of the top element of the priority queue does not overlap with the decision variable (AddressIdExisting) of the item to be replaced (Yes in S431), the central processing unit 13 advances the process to S432. i If the new item (AddressIdExisting) overlaps with the decision variable (AddressIdExisting) of the replacement source of the existing item (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 ) does not overlap with the decision variable (AddressIdExisting) from which the existing item is to be replaced.

[0301] The decision variable of the top element of the priority queue (x j If the decision variable (x) of the top element of the priority queue does not overlap with the decision variable (AddressIdExisting) of the item to be replaced (Yes in S432), the central processing unit 13 advances the process to S433. j If the new item (AddressIdExisting) overlaps with the decision variable (AddressIdExisting) of the replacement source of the existing item (No in S432), the central processing unit 13 advances the process to S435.

[0302] In S433, the central processing unit 13 creates a new decision variable replacement table 125(t) (ReplaceTable (t) ), serial number (Id ToAppend ), an item containing the source decision variable (AddressIdToAppend) and the destination value (ValueIdToAppend).

[0303] Serial number (ID ToAppend ) is expressed as in equation (86).

[0304] The decision variable (AddressIdToAppend) to be replaced is expressed as in equation (87).

[0305] The replacement value (ValueIdToAppend) is expressed as in equation (88).

[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).

[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 from which the duplicated items are replaced (Address IdForJ )

[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.

[0310] Subsequently, in S436, the central processing unit 13 creates a new decision variable replacement table 125(t) (ReplaceTable (t) ), serial number (Id ToAppend ), an item containing the source decision variable (AddressIdToAppend) and the destination value (ValueIdToAppend).

[0311] Serial number (ID ToAppend ) is expressed as in equation (92).

[0312] The decision variable (AddressIdToAppend) to be replaced is expressed as in equation (93).

[0313] The replacement value (ValueIdToAppend) is expressed as in equation (94).

[0314] Subsequently, 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).

[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 whether it overlaps with it.

[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 from which the duplicated items are replaced (Address IdForJ )

[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.

[0320] Next, in S440, the central processing unit 13 creates a new decision variable replacement table 125(t) (ReplaceTable (t) ), serial number (Id ToAppend), an item containing the source decision variable (AddressIdToAppend) and the destination value (ValueIdToAppend).

[0321] Serial number (ID ToAppend ) is expressed as in equation (99).

[0322] The replacement source decision variable (AddressIdToAppend) is expressed as in equation (100).

[0323] The replacement value (ValueIdToAppend) is expressed as in equation (101).

[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).

[0325] After completing S441, the central processing unit 13 advances the process 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 sample data 1243(t), the central processing unit 13 may delete the approximate problem sample data 1243(t) (SampleDataapproximate,(t)).

[0329] By executing the above process, the problem solving device 1 uses the approximate problem sample data 1243(t) (SampleDataapproximate, (t)) to generate the previous decision variable replacement table 125(t-1) (ReplaceTable (t-1) ) to create a 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.The problem solving device 1 can then perform 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 sets of variables 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 the item 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.The problem solving device 1 can then 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.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 (S428) and delete the top element from the priority queue (S442) if the target remaining decision variable does not overlap with any of the replacement source decision variables included in the decision variable replacement table. Note that the first item includes the target remaining decision variable as the replacement source decision variable. 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 leading element from the prioritized queue (S442) without newly registering the item in the decision variable replacement table (No in S427).

[0338] Furthermore, when the leading element includes any one of the target variable sets among the plurality of variable sets, 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 prioritized queue (S442) 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. Note that the second item includes the first remaining decision variable as the replacement source decision variable. The second item also 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 can newly register a third item, which is an example of an item, in the decision variable replacement table (S436) and delete the leading element from the prioritized 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 of the source decision variables 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 a 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) at the end of the repetition. (T)) to obtain the

[0345] Next, in S512, the central processing unit 13 calculates the primal problem solution instance 1212 (IsingSolution main ) memory space is allocated.

[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).

[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 or not 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 updates the decision variable replacement table 125(T) (ReplaceTable (T) ) in 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 10, the process can proceed to S523.

[0349] In S515, the central processing unit 13 determines the replacement value (Value Id ) satisfies the formula (104).

[0350] The replacement value (Value 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] Subsequently, in S517, the central processing unit 13 calculates the replacement value (Value Id ) is taken as 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).

[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 ) to Sign x i Let's say.

[0357] Next, 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).

[0358] It should 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).

[0359] (1) The termination condition of the first stage is the condition shown in equation (108).

[0360] (2) The constraint shown in equation (109) is defined in the decision variable substitution table schema 153.

[0361] However, as shown in equation (110), the replacement value does not include a decision variable that has already been registered as a replacement source decision variable.

[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).

[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 the 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 a primal problem solution instance 1212 (IsingSolution main ) can be derived.

[0368] In other words, 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 variable among the multiple decision variables based on the replacement destination value. 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, the problem-solving device 1 can set, for each of a plurality of decision variables, the value of the corresponding decision variable to a first value when the replacement value is a first value. Also, by executing the processes of S515, S516, and S517, the problem-solving device 1 can set, for each of a plurality of decision variables, the value of the corresponding decision variable to a second value when the replacement value is 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-examined decision variable when the replacement value is a previously-examined 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-examined decision variable when the replacement value is a previously-examined 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 a strong statistical bias 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 a 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 a sampler 14A and a sampler 14B instead of the 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 the sampler 14A and the sampler 14B, so a description thereof will be omitted.

[0379] The sampler 14A and the sampler 14B have the same functions and configurations 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 samplers 14A and 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 a 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] The 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 storage device 12X, central processing unit 13X, sampler 14XA, sampler 14XB, long-term storage device 15, input device 16, and output device 17 have the same configurations and functions as the temporary storage device 12, central processing unit 13, sampler 14A, sampler 14B, long-term storage device 15, input device 16, and 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, the problem-solving device 1X includes an output device 18X. The output device 18X is connected to other devices via a communication network. Therefore, the 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 has the same functions, configuration, and effects as the problem-solving device 2 according to the second embodiment by acquiring information from other devices on the communication network and using a storage device on the communication network instead of the long-term storage device 15. 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 Instance, etc.) Next, an example of an instance, etc. generated in each embodiment will be described.

[0390] For example, suppose that the main problem instance 1211 is, for example, equation (112).

[0391] In this case, the dependent problem instance 1221(1) for t=1 is given by equation (113).

[0392] Furthermore, the decision variable replacement table 125(0) at t=0 is an empty table, as shown in Table 2.

[0393] In this case, the relaxed problem instance 1231(1) for t=1 is given by equation (114).

[0394] In this case, the relaxed problem solution instance 1232(1) for t=1 is as shown in Table 3.

[0395] In this case, the approximate problem instance 1241(1) for t=1 is, for example, equation (115).

[0396] In this case, the approximate problem sample data 1243(1) for t=1 is as shown in Table 4.

[0397] The decision variable replacement table 125(1) for t=1 is as shown in Table 5.

[0398] Furthermore, the decision variable substitution table 125(2) for t=2 is as shown in Table 6.

[0399] For example, the primary problem solution instance 1212 would then be as shown in 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.

Claims

1. A problem acquisition unit acquires a main problem for minimizing an objective function including a plurality of decision variables under or without constraints; a dependent problem generation unit, in response to execution of a new registration process for newly registering the 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, generates 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 generation unit, each time the dependent problem is generated, generates an approximation problem including, as two or more remaining decision variables, some or all of the plurality of dependent decision variables in descending order of influence; a table update unit, based on a plurality of solutions to the approximation problem, performing statistical processing to determine values ​​for each of the two or more remaining decision variables, and performing the new registration process to newly register, in the decision variable replacement table, 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; a solution output unit that, when all values ​​of the plurality of decision variables included in the main problem are registered in the decision variable replacement table, outputs a solution to the main problem based on all values ​​of the plurality of decision variables registered in the decision variable replacement table.

2. The problem solving device according to claim 1, wherein the objective function is a quadratic function, the constraint conditions are expressed by one or more linear constraint equations including any of the plurality of decision variables, and each of the plurality of decision variables is a binary variable representing a first value or a second value.

3. The problem solving device according to claim 2, wherein the dependent problem is a problem in which decision variables registered as already determined in the decision variable replacement table among the plurality of decision variables in the main problem are replaced with the already determined values, and 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.

4. A problem solving device as described in claim 3, further comprising a relaxation problem generating and solving unit which generates a plurality of continuous decision variables in one-to-one correspondence with the plurality of dependent decision variables, each of which is a continuous variable, and which generates 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 the 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, and which solves the relaxation problem.

5. The problem solving device according to claim 4, wherein said approximate problem generation unit calculates, for each of said plurality of dependent decision variables, a weighting coefficient which is the absolute value of an accumulated value of weights set for terms including a corresponding decision variable among said plurality of decision variables in said main problem, selects from said plurality of dependent decision variables a number of dependent decision variables which correspond to a predetermined number of upper limit values ​​of sampling-time variables from the top of said weighting coefficients, and generates said approximate problem including, from said plurality of dependent decision variables, a number of dependent decision variables which correspond to the selected number of upper limit values ​​of sampling-time variables as said two or more remaining decision variables, wherein said approximate problem is a problem in which unselected dependent decision variables among said plurality of dependent decision variables are replaced with said estimated values, and said estimated values ​​are values ​​of continuous decision variables which correspond to unselected dependent decision variables among the values ​​of said plurality of continuous decision variables included in the solution of said relaxed problem.

6. The problem solving device according to claim 5, wherein the approximate problem generation unit generates the approximate problem including all of the dependent decision variables included in the dependent problem as two or more remaining decision variables when the number of the dependent decision variables is smaller than the upper limit value of the sampling-time variables.

7. The problem-solving device according to any one of claims 3 to 6, wherein the decision variable replacement table has registered therein items each including a serial number, a decision variable to be replaced, and a value to be replaced, the serial number representing the order of the items and not overlapping with any of the other items, the decision variable to be replaced identifying any of the plurality of decision variables and not overlapping with any of the other items, the value to be replaced representing the first value, the second value, a previously-mentioned decision variable multiplied by a non-inverting code that does not invert the sign, or a previously-mentioned decision variable multiplied by an inverting code that inverts the sign, and the previously-mentioned decision variable representing the decision variable to be replaced that is included in the item following the serial number.

8. The table update unit: calculates an average value for each of the two or more remaining decision variables based on a plurality of solutions to the approximation problem, and calculates an evaluation value corresponding to the calculated average value; calculates 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 calculates the evaluation value corresponding to the calculated correlation value; each of the plurality of sets of variables is a set of two different remaining decision variables; stores a plurality of elements in a priority queue, and each of the plurality of elements includes any of the two or more remaining decision variables or any of the plurality of sets of variables, together with the evaluation value; newly registers the item corresponding to a single 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 an item already registered; the item corresponding to the newly registered leading element includes the serial number indicating that it is after the items already registered in the decision variable replacement table; and deletes the leading element from the priority queue.

8. The problem solving device according to claim 7, wherein 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 any already registered items and a process of deleting the top element from the priority queue are repeated until a termination condition is reached, wherein the termination condition is that the priority queue becomes empty, the number of newly registered items becomes greater than a predetermined variable replacement lower limit, or the evaluation value of the top element becomes smaller than a predetermined replacement threshold.

9. The problem-solving device according to claim 8, wherein, when the first element includes a target remaining decision variable of any of the two or more remaining decision variables, if the target remaining decision variable does not overlap with any of the decision variables to be replaced included in the decision variable replacement table, the table update unit newly registers a first item, which is the item, in the decision variable replacement table and deletes the first element from the priority queue, wherein the first item includes the target remaining decision variable as the decision variable to be replaced, and includes, as the replacement value, a value obtained by binarizing the average value for the target remaining decision variable into the first value or the second value.

10. The problem solving device according to claim 9, wherein, 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 deletes the top element from the priority queue without newly registering the item in the decision variable replacement table.

11. The problem solving device according to claim 8, wherein, in a case where the top 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, and the table updating unit, if 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 does not overlap with any of the source decision variables included in the decision variable replacement table, newly registers a second item that is the item in the decision variable replacement table and deletes the top element from the priority queue, and the second item includes the first remaining decision variable as the source decision variable, and includes, as the replacement value, 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.

12. The problem solving device according to claim 11, wherein said table updating unit, 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 of the source decision variables included in the decision variable replacement table, newly registers a third item that is the item in the decision variable replacement table and deletes the top element from the priority queue, wherein the third item includes the first remaining decision variable as the source decision variable and includes a first calculated value as the destination value, and the first calculated value is a value obtained by multiplying the destination 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 the non-inverted code or the inverted code.

13. The problem solving device according to claim 12, wherein, when 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 deletes the top element from the priority queue without newly registering the item in the decision variable replacement table.

14. The problem solving device according to claim 7, wherein the solution output unit traces through 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, determines the replacement source decision variable among the plurality of decision variables based on the replacement destination value, and outputs the determined values ​​of each of the plurality of decision variables as a solution to the main problem.

15. The problem-solving device according to claim 14, wherein for each of the plurality of decision variables, the solution output unit: if the replacement value is the first value, sets the value of the corresponding decision variable to the first value; if the replacement value is the second value, sets the value of the corresponding decision variable to the second value; if the replacement value is the previously output decision variable multiplied by the non-inverted sign, sets the value of the corresponding decision variable to the value determined for the previously output decision variable; and if the replacement value is the previously output decision variable multiplied by the inverted sign, sets the value of the corresponding decision variable to the inverted value of the value determined for the previously output decision variable.

16. The problem solving device according to claim 1, further comprising 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.

17. The problem solving device according to claim 1, wherein the dependent problem generation unit generates the dependent problem in response to obtaining the main problem when the value of any of the plurality of decision variables is not registered in the decision variable replacement table.

18. An information processing device obtains a primal problem for minimizing an objective function including a plurality of decision variables under or without constraints; in response to the information processing device executing a new registration process for newly registering the 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 is generated 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; each time the dependent problem is generated, the information processing device generates an approximation problem including, as two or more remaining decision variables, some or all of the plurality of dependent decision variables with the greatest influence; based on a plurality of solutions to the approximation problem, the information processing device performs statistical processing for each of the two or more remaining decision variables to determine a value, and executes the new registration process for newly registering, in the decision variable replacement table, the values ​​determined by the statistical processing for each of one or more decision variables corresponding to some or all of the two or more remaining decision variables; when all values ​​of the plurality of decision variables included in the main problem are registered in the decision variable replacement table, the information processing device outputs a solution to the main problem based on all values ​​of the plurality of decision variables registered in the decision variable replacement table.

19. A program for causing an information processing device to function as a problem solving device, comprising the information processing device: a problem acquisition unit for acquiring a main problem for minimizing an objective function including a plurality of decision variables under or without constraint conditions; a dependent problem generation unit for generating, in response to execution of a new registration process for newly registering the 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 generation unit for generating, each time the dependent problem is generated, an approximation problem including, as two or more remaining decision variables, some or all of the plurality of dependent decision variables with greater influence; and a table update unit for performing the new registration process for performing 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 for one or more decision variables corresponding to some or all of the two or more remaining decision variables, newly registering the values ​​determined by performing the statistical processing in the decision variable replacement table. a program for causing the program to function as a solution output unit that, when all values ​​of the plurality of decision variables included in the main problem are registered in the decision variable replacement table, outputs a solution to the main problem based on all values ​​of the plurality of decision variables registered in the decision variable replacement table.

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

  • Optimization device, optimization method, and program

    JP2023176094A