Support device, support method, and support program

The support device automates the determination of problem classes, optimization models, and algorithms for mathematical optimization, addressing the complexity barrier and enabling easier application of mathematical optimization techniques.

JP7670165B2Active Publication Date: 2025-04-30NEC CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023563407
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-11-25
Publication Date
2025-04-30
Estimated Expiration
2041-11-25

AI Technical Summary

Technical Problem

Mathematical optimization techniques are underutilized due to the complexity and expertise required to select appropriate methods, problem classes, and optimization algorithms, posing a high barrier for those with insufficient knowledge.

Method used

A support device and method that accepts input data indicating an optimization problem and automatically determines or generates a problem class, optimization model, and optimization calculation algorithm, facilitating easier mathematical optimization.

Benefits of technology

Enables easy and accessible mathematical optimization by automating the selection and generation of necessary components, reducing the expertise required and making the process more user-friendly.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007670165000002
    Figure 0007670165000002
  • Figure 0007670165000003
    Figure 0007670165000003
  • Figure 0007670165000004
    Figure 0007670165000004
Patent Text Reader

Abstract

In order to make it possible to easily perform numerical optimization, an assistance device (1) comprises: a reception unit (11) that receives input of input data indicating a problem to be solved as an optimization problem; and a modelling unit (12) that determines or generates, in accordance with the input data, at least one of a problem class when the problem is used as a numerical optimization problem, an optimization model which represents the problem as a numerical optimization problem, and an optimization calculation algorithm for solving the optimization problem.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a technique for supporting mathematical optimization. [Background technology]

[0002] In recent years, a technique called mathematical optimization has come to be used in various fields. Mathematical optimization is a technique for deriving a solution to a problem by expressing the problem to be solved as a mathematical model and solving the mathematical model by optimization calculation. Mathematical optimization is described in, for example, Non-Patent Document 1 below. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] H. Paul Williams, "Model Building in Mathematical Programming", John Wiley & Sons, 2013, P.3-10. Summary of the Invention [Problem to be solved by the invention]

[0004] Mathematical optimization is a powerful technique that can be applied in a wide range of fields, but it is not widely used at present. One of the reasons for this is the difficulty of applying mathematical optimization. For example, when performing mathematical optimization, it is necessary to determine a specific method of mathematical optimization, such as selecting a problem class according to the target problem, creating an optimization model that fits the problem class, and selecting an optimization algorithm to solve the optimization model. However, in order to properly select and create these methods, sufficient knowledge about mathematical optimization is required, as well as a sufficient understanding of the target problem. Therefore, for those who do not have sufficient knowledge or understanding, it is difficult to apply mathematical optimization.

[0005] An object of one aspect of the present invention is to provide a support device or the like that enables mathematical optimization to be easily performed. [Means for solving the problem]

[0006] A mathematical optimization support device according to one aspect of the present invention comprises a receiving means for receiving input of input data indicating a problem to be solved as an optimization problem, and a modeling means for determining or generating at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem in accordance with the input data.

[0007] An assistance method according to one aspect of the present invention includes at least one processor accepting input data indicating a problem to be solved as an optimization problem, and determining or generating, in accordance with the input data, at least one of a problem class for treating the problem as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem.

[0008] An assistance program according to one aspect of the present invention causes a computer to function as: a receiving means for receiving input data indicating a problem to be solved as an optimization problem; and a modeling means for determining or generating, in response to the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem. Effect of the Invention

[0009] According to one aspect of the present invention, it is possible to provide a support device or the like that enables mathematical optimization to be easily performed. [Brief description of the drawings]

[0010] [Figure 1]1 is a block diagram showing a configuration of an assistance device according to a first exemplary embodiment of the present invention. [Diagram 2] FIG. 1 is a flow chart showing a flow of a support method according to an exemplary embodiment 1 of the present invention. [Diagram 3] FIG. 11 is a block diagram showing a configuration of an assistance device according to an exemplary embodiment 2 of the present invention. [Figure 4] FIG. 11 is a diagram showing an example of setting constraint conditions in the second exemplary embodiment of the present invention. [Diagram 5] FIG. 11 is a diagram illustrating a method for approximating a quadratic function in the second exemplary embodiment of the present invention. [Figure 6] FIG. 11 is a flow chart showing an example of a process related to error detection in exemplary embodiment 2 of the present invention. [Figure 7] FIG. 11 is a flow chart showing an example of a process related to optimization calculation in exemplary embodiment 2 of the present invention. [Figure 8] FIG. 2 is a diagram illustrating an example of a hardware configuration of an assistance device according to each exemplary embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Example Embodiment 1 A first exemplary embodiment of the present invention will be described in detail with reference to the drawings. This exemplary embodiment is a basic form of the exemplary embodiments described later.

[0012] (Configuration of Support Device 1) The configuration of a support device 1 according to this exemplary embodiment will be described with reference to Fig. 1. Fig. 1 is a block diagram showing the configuration of the support device 1. As shown in Fig. 1, the support device 1 includes a receiving unit 11 and a modeling unit 12.

[0013] The receiving unit 11 receives input data indicating a problem to be solved as an optimization problem. The modeling unit 12 then performs modeling of the mathematical optimization problem using the input data.

[0014] Specifically, the modeling unit 12 determines or generates, in accordance with the input data, at least one of a problem class when the problem indicated by the input data is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem.

[0015] As described above, the support device 1 according to this exemplary embodiment is configured to include a receiving unit 11 that receives input data indicating a problem to be solved as an optimization problem, and a modeling unit 12 that determines or generates at least one of a problem class for treating the problem as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem, according to the input data.

[0016] According to the above configuration, when input data indicating a problem to be applied to mathematical optimization is input, at least one of a problem class, an optimization model, and an optimization calculation algorithm according to the input data is automatically determined. Therefore, according to the support device 1 according to the present exemplary embodiment, it is possible to obtain an effect that it is possible to easily perform mathematical optimization.

[0017] (Support Program) The above-mentioned functions of the support device 1 can also be realized by a program. The support program according to this exemplary embodiment is configured to cause a computer to function as a receiving means for receiving input data indicating a problem to be solved as an optimization problem, and a modeling means for determining or generating at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model expressing the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem, according to the input data. Therefore, the support program according to this exemplary embodiment has the effect of making it possible to easily perform mathematical optimization.

[0018] (Flow of support methods) The flow of the support method according to this exemplary embodiment will be described with reference to Fig. 2. Fig. 2 is a flow diagram showing the flow of the support method. Note that the execution subject of each step in this support method may be a processor included in the support device 1, or may be a processor included in another device, or each step may be a processor provided in a different device.

[0019] In S11, at least one processor accepts input of input data indicating a problem to be solved as an optimization problem.

[0020] In S12, at least one processor models the mathematical optimization problem. Specifically, the processor determines or generates at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem, according to the input data input in S11.

[0021] As described above, the support method according to the present exemplary embodiment includes a configuration in which at least one processor receives input data indicating a problem to be solved as an optimization problem, and determines or generates, according to the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model expressing the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem. Therefore, the support method according to the present exemplary embodiment has an effect of making it possible to easily perform mathematical optimization.

[0022] Exemplary embodiment 2 (Configuration of Support Device 2) The configuration of the support device 2 according to this exemplary embodiment will be described with reference to Fig. 3. Fig. 3 is a block diagram showing the configuration of the support device 2. As shown in the figure, the support device 2 includes a control unit 20 that controls each unit of the support device 2, and a storage unit 21 that stores various data used by the support device 2. The support device 2 also includes a communication unit 22 that allows the support device 2 to communicate with other devices, an input unit 23 that accepts input of various data to the support device 2, and an output unit 24 that allows the support device 2 to output various data.

[0023] The control unit 20 includes a receiving unit 201, a modeling unit 202, an evaluation unit 203, an optimization calculation unit 204, and a detection unit 205. The storage unit 21 stores input data 211 and matching data 212. The matching data 212 will be described later in the section "Error detection using matching data."

[0024] The input data 211 is data indicating a problem to be solved as an optimization problem. For example, the input data 211 may include an objective function and constraint conditions formulated for the problem to be solved. For example, if the problem is a so-called shift scheduling problem, an objective function indicating the degree to which the contents of the scheduling conform (or do not conform) to the scheduling conditions (required number of people, compatibility between members, each member's wishes, etc.) may be input as the input data 211. In addition, constraint conditions indicating prohibited work patterns, etc. may also be included in the input data 211.

[0025] The receiving unit 201 receives the input of the above-mentioned input data 211 indicating a problem to be solved as an optimization problem. The input data 211 may be input via the input unit 23, or may be input from another device via the communication unit 22.

[0026] The modeling unit 202 performs modeling of a mathematical optimization problem using the input data 211. Specifically, the modeling unit 202 determines or generates at least one of (1) a problem class when the problem indicated by the input data 211 is treated as a mathematical optimization problem, (2) an optimization model that expresses the problem as a mathematical optimization problem, and (3) an optimization calculation algorithm for solving the optimization problem, according to the input data 211. Note that the above processes (1) to (3) may be executed by separate processing blocks.

[0027] Generally, when modeling an optimization problem, a problem class to be applied to the problem to be solved is first determined, and an optimization calculation algorithm for solving the mathematical optimization problem of that problem class is then determined. Then, the problem to be solved is formulated in a form that is suitable for the problem class and can be solved by the optimization calculation algorithm to generate an optimization model. These processes are called modeling or formulation, and have traditionally been performed manually, which has been a difficult task requiring specialized knowledge. The modeling unit 202 automates at least a part of such tasks, making it possible to easily perform mathematical optimization.

[0028] The evaluation unit 203 evaluates the suitability of each of the multiple optimization model candidates generated by the modeling unit 202 to the problem indicated by the input data 211. In addition, the evaluation unit 203 evaluates the suitability of each of the multiple optimization calculation algorithm candidates determined by the modeling unit 202 to the problem indicated by the input data 211. Note that the evaluation unit 203 may evaluate only either the optimization model candidates or the optimization calculation algorithm candidates. Furthermore, the optimization model candidates and the optimization calculation algorithm candidates may be evaluated by different processing blocks. Details of the evaluation method will be described later.

[0029] Here, an optimization model that is suitable for the problem class can be applied to the optimization calculation, but depending on the combination of the optimization model and the problem to which it is applied, the optimization calculation may take an enormous amount of time. Also, compatibility with memory, such as the memory usage during the optimization calculation, may become an issue.

[0030] The evaluation unit 203 is useful as a means for solving such problems. That is, the modeling unit 202 generates a plurality of different optimization models, and the evaluation unit 203 evaluates the suitability of the optimization models for the problem indicated by the input data 211. Then, the modeling unit 202 determines an optimization model to be applied based on the result of the evaluation by the evaluation unit 203 for each of the generated optimization models. In this way, it is possible to determine an optimization model with high validity.

[0031] Similarly, the evaluation unit 203 may evaluate the suitability of the candidate optimization calculation algorithms to the problem indicated by the input data 211, and the modeling unit 202 may determine the optimization calculation algorithm to be applied based on the results of the evaluation of each of the multiple optimization calculation algorithms. This makes it possible to determine an optimization calculation algorithm with high validity.

[0032] The optimization calculation unit 204 performs optimization calculation of the mathematical optimization problem modeled by the modeling unit 202, and calculates an optimal solution. For example, it is assumed that the modeling unit 202 generates an optimization model from the input data 211, and determines an optimization calculation algorithm for solving the optimization problem using the optimization model. In this case, the optimization calculation unit 204 solves the optimization model generated using the optimization calculation algorithm, and calculates an optimal solution.

[0033] (Error detection) The detection unit 205 detects errors in expressions included in the input data 211. One example of a method for detecting errors is to compare a plurality of expressions included in the input data 211 with each other.

[0034] In this case, the detection unit 205 compares a plurality of expressions included in the input data 211 with each other and determines whether or not there is a contradictory expression. For example, when the input data 211 includes an expression "x>a" and an expression "x≦a", the detection unit 205 determines that a contradictory expression exists.

[0035] When the detection unit 205 determines that a contradictory formula exists, it determines which formula is contradictory among the multiple formulas included in the input data 211, and outputs the determination result. For example, in the above example, the detection unit 205 outputs the determination result indicating "x>a" and "x≦a" (for example, indexes previously assigned to these formulas).

[0036] (Error detection using matching data) Furthermore, when matching data 212 is stored in storage unit 21, detection unit 205 may detect an error in a formula included in input data 211 by matching matching data 212 with a formula included in input data 211. Specifically, detection unit 205 acquires input data 211 and matching data 212, and determines whether the acquired input data 211 and matching data 212 are inconsistent. If detection unit 205 determines that there is a contradiction, it then determines which formula, out of a plurality of formulas included in input data 211, is inconsistent with matching data 212, and outputs the determination result.

[0037] The matching data 212 is data to be matched with the input data 211, and is data that is known to be correct or has a high possibility of being correct with respect to the problem indicated by the input data 211. For example, various data collected in past cases of the problem to be optimized (hereinafter referred to as past data) can be used as the matching data 212. This is because such past data can be interpreted as a feasible solution that satisfies the constraint conditions to be considered.

[0038] An example of error detection using past data as the matching data 212 will be described below. The optimization problem shown in (1) below is to find an optimal solution x for an optimization variable x that satisfies the condition x∈X for an objective function f(x). optIn this problem, the optimization variable x that has actually been applied in the past can be used as the matching data 212.

[0039]

number

[0040] For example, consider the case of solving a problem to find the optimal work schedule for 4 employees, A~D, for 7 days based on past work data. In this problem, the constraint is that either employee A or B must work on each working day. Also, let x be the binary variable that indicates whether A~D will work on the nth day. A,n ~x D,n The objective function may be set according to the requirements for the work schedule (for example, whether people who work on the same day have good compatibility).

[0041] The above constraint in the above problem is "x A,n +x B,n =1 for n=1,...,7". Also, the work schedule for 7 days in the past work data, that is, the past data, can be written as x = (x A,1 ,x B,1 ,x C,1 ,x D,1 ,…,x A,7 ,x B,7 ,x C,7 ,x D,7 ), and these values ​​are considered to satisfy the constraints. In other words, (x A,1 +x B,1 )~(x A,7 +x B,7 ) are both 1.

[0042] Here, the input data 211 contains "x A,n +x B,n =2 for n=1,...,7". In this case, the detection unit 205 substitutes the above past data x into this conditional expression. As described above, the past data x is A,n +x B,n = 1), so x A,n +x B,n Since the above conditional expression is not equal to 2, the above conditional expression is not satisfied. This enables the detection unit 205 to detect that there is an error in the above conditional expression.

[0043] In addition, a method called inverse reinforcement learning is known, in which past data such as those described above from cases in which appropriate decision-making was performed is used as training data to learn decision criteria for finding a solution to a problem to be optimized. The training data used in this inverse reinforcement learning can also be used as the matching data 212.

[0044] Moreover, the objective function included in the input data 211 can also be generated by inverse reinforcement learning. In other words, by using the teacher data used to generate the objective function included in the input data 211 as the matching data 212, it is possible to detect an error in the input data. Of course, teacher data used in a learning method other than the inverse reinforcement learning can also be used as the matching data 212.

[0045] The detection unit 205 may perform either one of a process of mutually matching a plurality of expressions included in the input data 211 and a process of matching the matching data 212 with an expression included in the input data 211. Furthermore, the process of mutually matching a plurality of expressions included in the input data 211 and the process of matching the matching data 212 with an expression included in the input data 211 may be executed in separate processing blocks.

[0046] As described above, the support device 2 includes the detection unit 205 that detects errors in the formulas included in the input data 211 by at least one of checking the formulas included in the input data 211 against each other and checking the formulas included in the input data 211 against the predetermined checking data 212. With this configuration, when the formulas included in the input data 211 include an erroneous one, it can be automatically detected.

[0047] Moreover, by detecting an error in an equation as described above and determining which equation is erroneous, it becomes possible to correct (debug) the equation.

[0048] (Determining problem class and optimization algorithm) As described above, the modeling unit 202 can determine a problem class when a problem to be solved as an optimization problem is treated as a mathematical optimization problem. The modeling unit 202 can also determine an optimization calculation algorithm to be used when solving the optimization problem. The problem class and the optimization calculation algorithm correspond to the input data 211. There are no particular limitations on the method of determining the problem class and the optimization calculation algorithm, and the following three methods can be exemplified, for example.

[0049] (1) Rule-based use If a rule base indicating the correspondence between the input data 211 and the problem class to be applied is prepared in advance, the modeling unit 202 can use this rule base to determine the problem class and optimization calculation algorithm corresponding to the input data 211.

[0050] For example, a rule may be registered in the rule base indicating that the problem classes to be applied when the variables included in the input data 211 are all binary variables of 0 and 1 are linear programming problems and quadratic programming problems. It is possible to register rules that reflect know-how used in manual modeling in the rule base, thereby making it possible to automatically make decisions similar to those made in manual modeling.

[0051] The rules may also indicate that the optimization calculation algorithms suitable for the linear programming problem are an integer programming problem (IP) solver and a boolean SATisfiability testing (SAT) solver. The rules may also indicate that the optimization calculation algorithms suitable for the quadratic programming problem are simulated annealing and quantum annealing. The association between the problem class and the optimization calculation algorithm can also reflect the know-how used in manual modeling.

[0052] When using the above rules, the modeling unit 202 determines whether all variables included in the input data 211 are binary variables, and if all are binary variables, sets the candidates for the problem class as a linear planning problem and a quadratic planning problem. The modeling unit 202 sets the candidates for the optimization calculation algorithm corresponding to the linear planning problem as an integer programming problem solver and a satisfiability problem solver. The modeling unit 202 sets the candidates for the optimization calculation algorithm corresponding to the quadratic planning problem as simulated annealing and quantum annealing.

[0053] Although details will be described later, the evaluation unit 203 evaluates the problem class candidates and optimization calculation algorithm candidates determined by the modeling unit 202. Then, the modeling unit 202 determines one problem class and one optimization calculation algorithm based on the results. Of course, a rule base that can determine one problem class and one optimization calculation algorithm without going through evaluation may be used.

[0054] Moreover, the modeling unit 202 does not necessarily need to determine both the problem class and the optimization calculation algorithm. In other words, the modeling unit 202 only needs to determine the optimization calculation algorithm when the problem class is specified, and only needs to determine the problem class when the optimization calculation algorithm is specified.

[0055] In the above example, the problem class is determined and the corresponding optimization calculation algorithm is determined, but the modeling unit 202 may first determine the optimization calculation algorithm and then determine the corresponding problem class. In this case, the modeling unit 202 may determine one or more optimization calculation algorithms according to the problem class as in the case of using a rule base, or may determine the optimization calculation algorithm using a trained model.

[0056] The objective variable of the trained model for determining the optimization calculation algorithm may be data indicating the optimization calculation algorithm (e.g., identification information of the optimization calculation algorithm), and the explanatory variables may be the input data 211 or features extracted from the input data 211. The explanatory variables may also include other elements related to modeling, such as the problem class to which the model is applied.

[0057] (2) Using a trained model The problem class and the optimization calculation algorithm can also be determined using a trained model constructed by machine learning the relationship between the input data 211 and the problem class to be applied. In this case, the modeling unit 202 can determine the problem class according to the input data 211 using the trained model.

[0058] The objective variable of the trained model for determining the problem class may be data indicating the problem class (e.g., identification information of the problem class), and the explanatory variables may be the input data 211 or features extracted from the input data 211. Examples of the features include the type of optimization problem, the types of variables included, the number of variables, and the degree of the formula. The explanatory variables may also include information indicating other elements related to modeling, such as the optimization calculation algorithm to be applied.

[0059] For example, the modeling unit 202 may use data indicating that the problem class is a linear planning problem or a quadratic planning problem as the objective variable, input data containing all variables that are binary variables, or features indicating that all variables contained in the input data are binary variables as the explanatory variables, and use a learned model constructed by machine learning the relationship between these.

[0060] When input data in which all variables are binary variables or a feature indicating that all variables in the input data 211 are binary variables is input to such a trained model, a value indicating that the problem class to be applied is a linear planning problem or a quadratic planning problem is output. Therefore, the modeling unit 202 can determine the problem class to be applied based on the output value obtained by inputting the input data 211 or the feature extracted from the input data 211 to the trained model.

[0061] (3) Using a reinforcement learning model A problem class can also be determined using a reinforcement learning model for determining a problem class according to the input data 211. Such a reinforcement learning model can be constructed by learning using, for example, the input data or a feature amount extracted from the input data as a "state," the problem class to be applied in that state as an "action," and the evaluation result of the suitability of the action as a "reward."

[0062] As data indicating the "state" in reinforcement learning, for example, features extracted from input data (for example, data indicating whether all variables included in the input data are binary variables) can be used.

[0063] The "reward" can be calculated so that if the applied problem class (action) is appropriate, the compatibility is high, and if it is inappropriate, the compatibility is low. The "reward" can also be calculated using a compatibility index such as the calculation time or memory usage required for the calculation (the shorter the calculation time or memory usage, the higher the compatibility). This makes it possible to determine a problem class that requires less calculation time or memory usage.

[0064] Reinforcement learning can be performed using a pre-prepared benchmark problem, such as a shift scheduling problem that only involves binary variables, to determine the action that maximizes the reward, i.e., the optimal problem class.

[0065] (Problem classes and evaluation of optimization algorithms) As described above, the modeling unit 202 may determine a plurality of different problem classes and optimization calculation algorithm candidates. In this case, the evaluation unit 203 may evaluate the suitability of each candidate for the problem to be solved as the optimization problem. In this case, the modeling unit 202 may determine the problem class and optimization calculation algorithm to be applied based on the result of the evaluation by the evaluation unit 203 for each candidate.

[0066] Examples of the evaluation index include the calculation speed, the memory usage required for the calculation, etc. For example, the evaluation unit 203 may calculate an index value indicating the calculation speed or the memory usage from the number of constraints or the number of variables included in the optimization problem.

[0067] Also, an optimization calculation may be actually performed for a candidate problem class and optimization calculation algorithm, and the calculation speed and memory usage at that time may be measured. In this case, formulation (generation of an optimization model) may be performed by the modeling unit 202 or by a user. Also, the problem to be solved by the optimization calculation may be a problem shown in the input data 211, or may be a problem for evaluating the optimization calculation algorithm, such as a benchmark problem.

[0068] It is not necessary for the evaluation unit 203 to evaluate both the candidate problem classes and the candidate optimization calculation algorithms. When the problem class is specified by the user, the evaluation unit 203 only needs to evaluate the candidate optimization calculation algorithms, and when the optimization calculation algorithm is specified by the user, the evaluation unit 203 only needs to evaluate the candidate problem classes.

[0069] (Generating an optimization model) As described above, the modeling unit 202 can also generate an optimization model that represents the problem indicated by the input data 211 as a mathematical optimization problem. The generation of an optimization model can also be said to be a formulation of the mathematical optimization problem, and the optimization model can also be said to be a collection of formulated mathematical expressions. The formulation is performed so as to fit a problem class specified by a user or the like or determined by the modeling unit 202.

[0070] For example, the modeling unit 202 may generate an optimization model formulated in a format suitable for the problem class to be applied by converting an expression included in the input data 211 using a predetermined conversion rule. This makes it possible to generate an optimization model formulated in a format suitable for the problem class to be applied. In addition, as will be described in detail later, by using formulation know-how as the conversion rule, it is also possible to generate an optimization model based on the know-how.

[0071] The above-mentioned conversion rule may convert each expression (e.g., a conditional expression expressed as a logical expression, or an expression expressed as an equality or inequality) included in the input data 211 into one or more expressions suitable for the problem class to which it is applied.

[0072] It is preferable that the modeling unit 202 outputs a mathematical expression that is a model expression in a specified problem class without excess or deficiency from a conditional expression expressed as a logical expression or a mathematical expression expressed as an equality or an inequality in the input data 211. In other words, it is preferable that the modeling unit 202 generates an optimization model that does not miss any of the conditions shown in the input data 211. It is also preferable that the modeling unit 202 generates an optimization model in a format that can be input directly or after only simple conversion to an optimization calculation algorithm specified by a user or the like or determined by the modeling unit 202.

[0073] The method for generating the optimization model is not particularly limited, and the optimization model can be generated, for example, by the following methods (1) to (3).

[0074] (1) Rule-based use If a rule base indicating the correspondence between the input data 211 and the conversion rules to be applied is prepared in advance, the modeling unit 202 can use this rule base to determine the conversion rules according to the input data 211. Then, the modeling unit 202 can convert the input data 211 according to the determined conversion rules to generate an optimized model.

[0075] For example, suppose that a user wants to set constraint conditions with a feasible region as shown in Fig. 4 for integer variables x and y. Fig. 4 is a diagram showing an example of setting constraint conditions. In Fig. 4, feasible pairs of x and y are plotted on the xy plane. There are eight plots in total. The dashed circles indicate infeasible regions.

[0076] In this case, the user may include variable definitions such as 0≦x≦3 and 0≦y≦3 in the input data 211, and may also include the following logical expression representing a constraint condition in the input data 211. Note that the logical expression may include operators such as max and min.

[0077] (¬(x=0∧y=0))∧¬(x=0∧y=3))∧(y=0if x≧2) Such a logical formula can be created relatively easily even by users who are not familiar with modeling of optimization calculations. However, since the above logical formula does not consist only of linear equalities and inequalities, there are cases where this logical formula cannot be used as is in optimization calculations.

[0078] A rule indicating that an algorithm for finding a convex hull that includes all feasible solutions should be applied to the input data 211 including a logical expression indicating such a feasible / impossible region may be registered in the rule base. In the example of Fig. 4, the modeling unit 202 finds straight lines (x-axis and y-axis, y=x+2, y=-x+1, and y=-3x / 2+9 / 2) that surround the eight plots indicating the feasible region, and obtains the following inequality. Any algorithm for finding the convex hull may be applied. 0≦x≦3,0≦y≦3,1≦x+y,yx≦2,3x+2y≦9 Here, the above range includes the dashed circle (2,1) indicating an infeasible region, as shown in Figure 4. If this point is overlooked, a serious error may occur in the optimization calculation. Therefore, the above rule may further include a rule indicating that a dummy variable is introduced to exclude a region that cannot be expressed by a convex region, in other words, a region that is an infeasible region within the convex region, in order to eliminate the infeasible region.

[0079] In this case, the modeling unit 202 introduces a dummy variable z according to the above rule. Specifically, in the above-mentioned input data 211, only y=0 satisfies the constraint condition in the range of x≧2, so the modeling unit 202 introduces a logical value z∈{0,1} that determines whether or not x≧2. Then, in order to make x≦1 when z=0 and x≧2 when z=1, the modeling unit 202 generates an inequality of x-1≦az,bz≦x (where a≧2,b≧1), and selects a pair of a,b (a=2,b=1) to obtain an inequality of x-1≦2z≦x.

[0080] Furthermore, the modeling unit 202 may set c(1-z)≧y in conjunction with the variable definition 0≦y≦3 so that y=0 always occurs when z=1. At this time, c≧3 is set so as not to give an erroneous constraint to y when z=0. For example, the modeling unit 202 may set c=3. In this case, the inequalities that are finally generated are as follows. These are all linear inequalities, and can be used as they are in the optimization calculation. 0≦x≦3,0≦y≦3,1≦x+y,yx≦2,3x+2y≦9,x-1≦2z≦x,3(1-z)≧y (2) Using a trained model The conversion rule can also be determined using a trained model constructed by machine learning the relationship between the input data 211 and the conversion rule to be applied. In this case, the modeling unit 202 can determine a problem class according to the input data 211 using this trained model, and convert the input data 211 according to the determined conversion rule to generate an optimized model.

[0081] Such a trained model can be constructed in the same manner as the trained model used to determine the problem class and optimization calculation algorithm. For example, the modeling unit 202 may use a trained model constructed with the objective variable being data indicating a conversion rule (e.g., identification information of the conversion rule) and the explanatory variable being the input data 211 or a feature extracted from the input data 211. The explanatory variable may also include information indicating other elements related to modeling, such as the optimization calculation algorithm to be applied or the problem class.

[0082] Furthermore, the modeling unit 202 may generate a plurality of candidates for conversion rules applicable to conversion of the input data 211, and determine one conversion rule to be applied based on the evaluation results of the evaluation unit 203 for each of the generated candidates. The plurality of candidates may be generated using a rule base as described above, or may be generated using a trained model as described above.

[0083] A trained model constructed by machine learning can also be applied to the above evaluation. The objective variable of this trained model may be data that serves as an index for evaluating the generation rules, and the explanatory variables may be the input data 211 or features extracted from the input data 211. The explanatory variables may also include information indicating other elements related to modeling, such as the optimization calculation algorithm to be applied.

[0084] For example, the evaluation unit 203 may perform evaluation for each candidate conversion rule using a prediction model that predicts the number of variables and the number of constraints when the conversion rule is applied. Such a prediction model can be constructed by machine learning using teacher data generated based on the results of converting a benchmark problem with each conversion rule. When such evaluation is performed, the modeling unit 202 can determine one conversion rule by, for example, applying the conversion rule candidate with the smallest sum of the number of variables and the number of constraints.

[0085] The evaluation index is not limited to the number of variables and the number of constraints, as long as it is an index for determining the suitability of the conversion rule. For example, the calculation speed, the memory usage required for calculation, etc. may be used as the evaluation index.

[0086] A specific example of determining one conversion rule from the candidates for conversion rules will be described below. Here, it is assumed that a user wishes to express a constraint condition that when reserving a conference room for two people, A and B, A and B cannot simultaneously reserve the conference room on the same day of the week. It is assumed that A and B each reserve the conference room once a week (not more than twice a week). In this case, the user may, for example, use a binary variable x A,n ,x B,n (n=1,…,7) A,n =x B,n =0 if x A,n =x B,n It is possible to generate input data 211 such as:

[0087] In this case, it is assumed that the modeling unit 202 generates the following (A) and (B) as candidates for the optimization model.

[0088] (A) The constraint is 1 ≥ x A,n +x B,n (That is, x A,n =x B,n = 1 (an inequality that excludes 1).

[0089] (B) Two integer variables x A ∈{0,1,…,7} and x B ∈{1,…,7,8} is used to represent the reservation status. Note that 1≦x ※ If ≦7, it indicates the situation where the reservation corresponding to the number is made, otherwise (i.e. x A =0 and x B = 8) represents the situation where no reservation is made. Also, z is x A >x B If so, it is a binary variable that is 1, otherwise it is 0. In this case, the constraint condition can be expressed as (B-1) below, and equation (B-2) can be obtained from equation (B-1). Note that M is a large constant and can be anything as long as M≧9. |x A -x B |≧1 …(B-1) x A -x B ≧1-M(1-z),x A -x B ≦-1+Mz …(B-2) In this case, if a prediction model for the number of variables and constraints for the above two optimization models (A) and (B) is learned in advance from benchmark problems or the like, the evaluation unit 203 can use the prediction model to evaluate the optimization models. Then, the modeling unit 202 can determine the optimization model to be applied based on the evaluation results.

[0090] (3) Using a reinforcement learning model Also, the conversion rule can be determined using a reinforcement learning model for determining a conversion rule according to the input data 211. Such a reinforcement learning model can be constructed by learning using, for example, the input data or a feature amount extracted from the input data as a "state," the conversion rule to be applied in that state as an "action," and the evaluation result of the suitability of the action as a "reward."

[0091] The index for evaluating the suitability may be any index that can be used to judge the suitability of the conversion rules. For example, in addition to the number of variables and the number of constraints mentioned above, the calculation speed and the amount of memory required for the calculation may be used as the evaluation index.

[0092] (approximate) When generating an optimization model that fits a certain problem class from the formula shown in the input data 211, an approximate expression may be necessary because conversion from an arbitrary problem class to another problem class is not necessarily equivalent. In such a case, the modeling unit 202 may receive an input of a control parameter related to the approximation accuracy, perform approximation according to the control parameter, and generate the optimization model.

[0093] For example, the objective function included in the input data 211 is x 2 If the term is included, a linear programming problem is specified as the problem class, or the modeling unit 202 decides to set the problem class as a linear programming problem. In this case, since a quadratic expression cannot be precisely expressed by a linear expression alone, approximation becomes necessary.

[0094] The approximation will be described with reference to FIG. 5. FIG. 5 is a diagram for explaining a method for approximating a quadratic function. As shown in the figure, x 2 A quadratic function such as n x+b n ) (n=1,…). In addition, in a linear programming problem, only first-order terms can be used, so the objective function x 2 is expressed using a new variable y. In this case, the constraint y≧a n x+b nBy adding 2 can be approximately expressed as:

[0095] In this case, x 2 The maximum error ε between the tangent line and the point x at the farthest point from the tangent point is shown in Figure 5. 2 5, the maximum error ε becomes smaller as the number of tangents increases. Therefore, when the maximum error ε is designated as a control parameter by a user operation via the input unit 23, for example, the modeling unit 202 calculates x 2 The number of tangents (range of n) can be adjusted so that the distance between the tangent and the point does not exceed the specified maximum error ε.

[0096] As described above, when the modeling unit 202 receives a designation of the approximation accuracy, the modeling unit 202 may generate an optimization model by converting the formula included in the input data 211 using an approximation that satisfies the designated accuracy. This makes it possible to generate an optimization model with the accuracy desired by the user.

[0097] (Processing flow: Error detection) The flow of processing relating to error detection will be described with reference to Fig. 6. Fig. 6 is a flow diagram showing an example of processing relating to error detection.

[0098] In S201, the reception unit 201 receives input of the input data 211. In the following S202, the detection unit 205 compares the expressions included in the input data 211 with each other (S202). Then, the detection unit 205 judges whether or not the compared expressions contain an error (S203). If it is judged in S203 that an erroneous expression is included (YES in S203), the process proceeds to S204, and if it is judged that an erroneous expression is not included (NO in S203), the process proceeds to S205.

[0099] In S204, the detection unit 205 outputs the erroneous formula detected by the collation in S202. This ends the process in Fig. 6. Note that after the error in the output formula is corrected (debugged), the process in S202 and the subsequent processes may be performed on the input data 211 in which the erroneous formula has been corrected.

[0100] In S205, the detection unit 205 compares the comparison data 212 with the formula included in the input data 211. Then, in S206, the detection unit 205 determines whether the input data 211 contains an erroneous formula.

[0101] If it is determined in S206 that an erroneous formula is included (YES in S206), the process proceeds to S207. In S207, the detection unit 205 outputs the erroneous formula detected by the collation in S205, and ends the process in Fig. 6. Note that after the error in the output formula is corrected (debugged), the process in S202 and the subsequent processes may be performed on the input data 211 in which the erroneous formula has been corrected.

[0102] On the other hand, if it is determined in S206 that the formula does not include an erroneous expression (NO in S206), the process in Fig. 6 ends. Note that, in the example in Fig. 6, two types of matching are performed in S202 and S205, but it is also possible to perform only one of the matching.

[0103] As described above, the system includes the receiving unit 201 that receives input of the input data 211 indicating a problem to be solved as an optimization problem, and the detection unit 205 that detects errors in the formulas included in the input data 211 by at least one of (1) mutually comparing the multiple formulas included in the input data 211 and (2) comparing the multiple formulas included in the input data 211 with the comparison data 212. Thus, when an error is included in the multiple formulas included in the input data 211, it can be automatically detected.

[0104] (Processing flow: Optimization calculation) The flow of processing related to optimization calculation will be described with reference to Fig. 7. Fig. 7 is a flow diagram showing an example of processing related to optimization calculation. Although the example of Fig. 7 does not describe error detection by the detection unit 205, it goes without saying that error detection as shown in Fig. 6 may be performed after S211 and before S212.

[0105] In S211, the receiving unit 201 receives input of the input data 211. In S211, in addition to the input data 211, the receiving unit 201 may also receive designation of either or both of a problem class and an optimization calculation algorithm.

[0106] In S212, the modeling unit 202 determines whether or not a problem class is specified. If a problem class is specified (YES in S212), the process proceeds to S213. If not specified (NO in S212), the process proceeds to S214.

[0107] In S213, the modeling unit 202 determines whether or not an optimization calculation algorithm is specified. If an optimization calculation algorithm is specified (YES in S213), the process proceeds to S218, and if not (NO in S213), the process proceeds to S215.

[0108] In S214, the modeling unit 202 determines whether or not an optimization calculation algorithm is specified. If an optimization calculation algorithm is specified (YES in S214), the process proceeds to S216. If an optimization calculation algorithm is not specified (NO in S214), the process proceeds to S217.

[0109] When the process proceeds to S217, that is, when neither the problem class nor the optimization calculation algorithm is specified, the modeling unit 202 determines a problem class and an optimization calculation algorithm according to the input data 211 input in S211. At this time, the modeling unit 202 may determine a plurality of candidates for the problem class and the optimization calculation algorithm. In this case, the evaluation unit 203 may evaluate each candidate, and the modeling unit 202 may determine one problem class and one optimization calculation algorithm based on the result of the evaluation.

[0110] When the process proceeds to S216, that is, when a problem class is not specified but an optimization calculation algorithm is specified, the modeling unit 202 determines a problem class that is compatible with the specified optimization calculation algorithm and corresponds to the input data 211 input in S211. At this time, the modeling unit 202 may first determine multiple problem class candidates, and the evaluation unit 203 may evaluate each candidate. Then, the modeling unit 202 may determine one problem class based on the result of the evaluation.

[0111] When the process proceeds to S215, that is, when a problem class is specified but an optimization calculation algorithm is not specified, the modeling unit 202 determines an optimization calculation algorithm that is suitable for the specified problem class and corresponds to the input data 211 input in S211. At this time, the modeling unit 202 may first determine a plurality of candidates for the optimization calculation algorithm, and the evaluation unit 203 may evaluate each candidate. Then, the modeling unit 202 may determine one optimization calculation algorithm based on the result of the evaluation. For example, by evaluating the calculation efficiency, an optimization calculation algorithm with good calculation efficiency for the specified problem class can be determined.

[0112] In S218, the modeling unit 202 generates an optimization model that represents the problem indicated by the input data 211 input in S211 as a mathematical optimization problem. At this time, the modeling unit 202 may first determine a plurality of optimization model candidates, and the evaluation unit 203 may evaluate each candidate. Then, the modeling unit 202 may determine one optimization model based on the result of the evaluation.

[0113] In S219, the optimization calculation unit 204 performs optimization calculation using the optimization model generated in S218 to calculate an optimal solution. The optimization calculation algorithm used in this optimization calculation is either specified or determined in S215 or S217. The problem class of this optimization calculation is either specified or determined in S216 or S217.

[0114] In S220, the optimization calculation unit 204 outputs the calculation result calculated in S219 to the output unit 24. This ends the processing in FIG. 7. The calculation result in S220 may be output to any destination, for example, to a display device or the like external to the support device 2. S220 may be omitted, and the calculation result may be stored in the storage unit 21 or the like. The optimization calculation in S219 may be performed by a device other than the support device 2, such as another information processing device suitable for calculation using the generated optimization model.

[0115] In S215 to S217, the modeling unit 202 does not necessarily need to determine one each of the optimization calculation algorithm and problem class, and may proceed to S218 at the stage where multiple optimization calculation algorithm and problem class candidates have been determined. In this case, the modeling unit 202 may generate an optimization model corresponding to each candidate in S218, and finally determine one each of the optimization calculation algorithm and problem class based on the evaluation results of the evaluation unit 203 for those optimization models.

[0116] Furthermore, when narrowing down a plurality of candidates to one to be finally applied, the user's intention may be reflected. For example, the modeling unit 202 may present to the user the generated or determined candidates for at least one of the optimization calculation algorithm, the problem class, and the optimization model by causing the output unit 24 to output them. Then, the modeling unit 202 may determine to apply, among the presented candidates, the one designated by the user's operation via the input unit 23, for example. At this time, the modeling unit 202 may also present the evaluation result of the evaluation unit 203 for each candidate to serve as a reference for the user's decision.

[0117] 7 shows an example in which the modeling unit 202 can determine or generate any of the modeling elements, namely, the optimization calculation algorithm, the problem class, and the optimization model. However, the modeling unit 202 only needs to determine or generate at least one of the above-mentioned elements. Elements that the modeling unit 202 cannot determine or generate can be specified by the user.

[0118] [Modifications] In the above exemplary embodiment, the input data 211 is a logical expression, an equality, or an inequality. However, the input data 211 may be any data that indicates a problem to be solved as an optimization problem, and is not limited to this example. For example, the input data 211 may be data that indicates a problem to be solved as an optimization problem, not a mathematical expression, but a sentence (text). In this case, the support device 2 may be provided with a formulation means for formulating an optimization problem from a sentence. This makes it possible to model the optimization calculation by the same process as in the above exemplary embodiment, using the objective function and constraint conditions generated by the formulation means. Similarly, a figure, a table (graph), etc. may be used as the input data 211, or a sentence indicating the problem may be input by voice.

[0119] The execution subject of each process described in each of the above exemplary embodiments is arbitrary and is not limited to the above examples. In other words, a support system having the same functions as the support devices 1 and 2 can be constructed by a plurality of devices that can communicate with each other. For example, a support system having the same functions as the support devices 1 and 2 can be constructed by distributing each block shown in FIG. 1 and FIG. 3 among a plurality of devices.

[0120] [Reference example] The support device 2 can also be configured to include at least the receiving unit 201 and the detecting unit 205. In other words, the configuration of the modeling unit 202 and the like can be omitted. According to this support device 2, when an erroneous expression is included in the input data 211, it can automatically detect the erroneous expression and can support modeling.

[0121] [Software implementation example] Some or all of the functions of the support devices 1 and 2 may be realized by hardware such as an integrated circuit (IC chip), or may be realized by software.

[0122] In the latter case, the support devices 1 and 2 are realized, for example, by a computer that executes instructions of a program, which is software that realizes each function. An example of such a computer (hereinafter, referred to as computer C) is shown in FIG. 8. The computer C has at least one processor C1 and at least one memory C2. The memory C2 stores a program P (support program) for operating the computer C as the support device 1 or 2. In the computer C, the processor C1 reads and executes the program P from the memory C2, thereby realizing each function of the support device 1 or 2.

[0123] The processor C1 may be, for example, a central processing unit (CPU), a graphic processing unit (GPU), a digital signal processor (DSP), a micro processing unit (MPU), a floating point number processing unit (FPU), a physics processing unit (PPU), a microcontroller, or a combination of these. The memory C2 may be, for example, a flash memory, a hard disk drive (HDD), a solid state drive (SSD), or a combination of these.

[0124] The computer C may further include a RAM (Random Access Memory) for expanding the program P during execution and for temporarily storing various data. The computer C may further include a communication interface for transmitting and receiving data to and from other devices. The computer C may further include an input / output interface for connecting input / output devices such as a keyboard, a mouse, a display, and a printer.

[0125] Furthermore, the program P can be recorded on a non-transitory tangible recording medium M that can be read by the computer C. Such a recording medium M can be, for example, a tape, a disk, a card, a semiconductor memory, or a programmable logic circuit. The computer C can obtain the program P via such a recording medium M. Furthermore, the program P can be transmitted via a transmission medium. Such a transmission medium can be, for example, a communication network or broadcast waves. The computer C can also obtain the program P via such a transmission medium.

[0126] [Additional Note 1] The present invention is not limited to the above-described embodiment, and various modifications are possible within the scope of the claims. For example, embodiments obtained by appropriately combining the technical means disclosed in the above-described embodiment are also included in the technical scope of the present invention.

[0127] [Additional Note 2] Some or all of the above-described embodiments can be described as follows. However, the present invention is not limited to the following described aspects.

[0128] (Appendix 1) A mathematical optimization support device comprising: a receiving means for receiving input of input data indicating a problem to be solved as an optimization problem, and a modeling means for determining or generating, in response to the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model expressing the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem. With this configuration, it is possible to obtain the effect of easily performing mathematical optimization.

[0129] (Appendix 2) The support device according to appendix 1, wherein the modeling means generates the optimization model formulated in a format suitable for an applied problem class by converting the input data in accordance with a predetermined conversion rule. With this configuration, it is possible to generate an optimization model formulated in a format suitable for an applied problem class.

[0130] (Appendix 3) The support device according to claim 1 or 2, further comprising an evaluation means for evaluating suitability of the optimization model for the problem, wherein the modeling means generates a plurality of different optimization models and determines an optimization model to be applied based on a result of the evaluation of each of the generated optimization models. With this configuration, an optimization model with high validity can be determined.

[0131] (Appendix 4) The support device according to any one of appendices 1 to 3, further comprising an evaluation means for evaluating suitability of the optimization calculation algorithm for the problem, and the modeling means determines an optimization calculation algorithm to be applied based on a result of the evaluation for each of a plurality of optimization calculation algorithms. With this configuration, an optimization calculation algorithm with high validity can be determined.

[0132] (Appendix 5) The support device according to any one of appendices 1 to 3, further comprising a detection means for detecting an error in a formula included in the input data by at least one of: comparing the formulas included in the input data with each other and comparing the formulas included in the input data with a predetermined comparison data. With this configuration, if an error is included in the formulas included in the input data, it can be automatically detected. In addition, by detecting an error in a formula as described above and determining which formula has an error, it is also possible to correct (debug) the formula.

[0133] (Appendix 6) The support device according to any one of appendices 1 to 5, wherein, when the modeling means receives a specification of an approximation accuracy, the modeling means converts a mathematical expression included in the input data by an approximation that satisfies the specified accuracy to generate the optimization model. With this configuration, it is possible to generate an optimization model with an accuracy desired by a user.

[0134] (Appendix 7) A support method including: receiving input data by at least one processor indicating a problem to be solved as an optimization problem; and determining or generating, in response to the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model expressing the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem. This support method has the same effect as that of Supplementary Note 1.

[0135] (Appendix 8) A support program that causes a computer to function as: a receiving means for receiving input data indicating a problem to be solved as an optimization problem; and a modeling means for determining or generating, in response to the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem. This support program has the same effect as that of Supplementary Note 1.

[0136] [Additional Note 3] A part or all of the above-described embodiments can be further expressed as follows.

[0137] An information processing device comprising at least one processor that executes a reception process for receiving input data indicating a problem to be solved as an optimization problem, and a modeling process for determining or generating, in accordance with the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem.

[0138] The information processing device may further include a memory that stores an assistance program for causing the processor to execute the reception process and the modeling process. The assistance program may be recorded in a computer-readable, non-transitory, tangible recording medium. [Explanation of symbols]

[0139] 1 Support equipment 11 Reception 12 Modeling Section 2 Support equipment 201 Reception 202 Modeling Department 203 Evaluation Department 205 Detection unit 211 Input Data 212 Matching Data

Claims

1. A receiving means for receiving input data indicating a problem to be solved as an optimization problem; and a modeling means for determining or generating, in response to the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem.

2. 2. The support device according to claim 1, wherein said modeling means generates said optimization model formulated in a format suitable for an applied problem class by converting said input data in accordance with a predetermined conversion rule.

3. evaluation means for evaluating the suitability of the optimization model for the problem; 3. The support device according to claim 1, wherein the modeling means generates a plurality of optimization models that are different from each other, and determines an optimization model to be applied based on a result of the evaluation of each of the generated optimization models.

4. an evaluation means for evaluating the suitability of the optimization computation algorithm for the problem; 4. The support device according to claim 1, wherein the modeling means determines an optimization calculation algorithm to be applied based on a result of the evaluation for each of a plurality of optimization calculation algorithms.

5. 4. The support device according to claim 1, further comprising a detection means for detecting errors in expressions contained in the input data by at least one of comparing the expressions contained in the input data with each other and comparing the expressions contained in the input data with predetermined comparison data.

6. 6. The support device according to claim 1, wherein when the modeling means receives a specification of an approximation accuracy, the modeling means converts a mathematical expression included in the input data using an approximation that satisfies the specified accuracy to generate the optimization model.

7. At least one processor accepting input data indicative of a problem to be solved as an optimization problem; and determining or generating, in accordance with the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem.

8. Computer, A receiving means for receiving input data indicating a problem to be solved as an optimization problem; and A support program that functions as a modeling means that determines or generates, in response to the input data, at least one of a problem class when the problem is treated as a mathematical optimization problem, an optimization model that expresses the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem.

Citation Information

Patent Citations

  • Information processing device and information processing system

    JP2020166802A

  • Systems and methods for problem solving, useful for example in quantum computing

    US20170255872A1

  • Quantum formulation independent solver

    US20200027029A1