WO2023095240A1 - 支援装置、支援方法、および支援プログラム - Google Patents

支援装置、支援方法、および支援プログラム Download PDF

Info

Publication number
WO2023095240A1
WO2023095240A1 PCT/JP2021/043192 JP2021043192W WO2023095240A1 WO 2023095240 A1 WO2023095240 A1 WO 2023095240A1 JP 2021043192 W JP2021043192 W JP 2021043192W WO 2023095240 A1 WO2023095240 A1 WO 2023095240A1
Authority
WO
WIPO (PCT)
Prior art keywords
optimization
input data
class
unit
calculation algorithm
Prior art date
Application number
PCT/JP2021/043192
Other languages
English (en)
French (fr)
Inventor
大 窪田
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2021/043192 priority Critical patent/WO2023095240A1/ja
Publication of WO2023095240A1 publication Critical patent/WO2023095240A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Definitions

  • the present invention relates to technology that supports mathematical optimization.
  • Mathematical optimization is a method of deriving a solution to a problem by representing a problem to be solved by a mathematical model and solving the mathematical model by optimization calculation. Mathematical optimization is described, for example, in Non-Patent Document 1 below.
  • mathematical optimization is a powerful method that can be applied in a wide range of fields, it cannot be said to be widely used at present.
  • One reason for this is the difficulty of applying mathematical optimization. For example, when performing mathematical optimization, select a problem class according to the target problem, create an optimization model suitable for that problem class, and select an optimization algorithm to solve that optimization model. It is necessary to decide a concrete method of mathematical optimization, like However, in order to properly select and create these, in addition to sufficient knowledge of mathematical optimization, sufficient understanding of the target problem is also required. Therefore, for those who do not have sufficient knowledge and understanding, applying mathematical optimization is a high hurdle.
  • One aspect of the present invention aims to provide a support device or the like that makes it possible to easily perform mathematical optimization.
  • An apparatus for supporting mathematical optimization includes a reception unit that receives input of input data indicating a problem to be solved as an optimization problem, a problem class for setting the problem as a mathematical optimization problem, modeling means for determining or generating at least one of an optimization model representing the problem as a mathematical optimization problem and an optimization calculation algorithm for solving the optimization problem, according to the input data.
  • a support method comprises: at least one processor receiving input data indicating a problem to be solved as an optimization problem; , determining or generating an optimization model representing the problem as a mathematical optimization problem and/or an optimization computational algorithm for solving the optimization problem, depending on the input data.
  • a support program comprises a receiving means for receiving an input of input data indicating a problem to be solved as an optimization problem, a problem class when the problem is a mathematical optimization problem, At least one of an optimization model expressing the problem as a mathematical optimization problem and an optimization calculation algorithm for solving the optimization problem functions as modeling means for determining or generating according to the input data.
  • FIG. 1 is a block diagram showing the configuration of a support device according to exemplary Embodiment 1 of the present invention
  • FIG. It is a flow diagram showing the flow of a support method according to exemplary embodiment 1 of the present invention.
  • FIG. 7 is a block diagram showing the configuration of a support device according to exemplary Embodiment 2 of the present invention;
  • FIG. 10 is a diagram showing an example of setting constraints in exemplary embodiment 2 of the present invention;
  • FIG. 5 is a diagram illustrating a method of approximating a quadratic function in exemplary embodiment 2 of the present invention;
  • FIG. 9 is a flow diagram showing an example of processing for error detection in exemplary embodiment 2 of the present invention;
  • FIG. 10 is a flow diagram showing an example of processing related to optimization calculations in exemplary embodiment 2 of the present invention; It is a figure which shows an example of the hardware constitutions of the support apparatus based on each exemplary embodiment of this invention.
  • FIG. 1 is a block diagram showing the configuration of the support device 1. As shown in FIG. As shown in FIG. 1 , the support device 1 includes a reception section 11 and a modeling section 12 .
  • the reception unit 11 receives input data indicating a problem to be solved as an optimization problem.
  • the modeling unit 12 then models the mathematical optimization problem using the input data.
  • the modeling unit 12 includes a problem class when the problem indicated by the input data is a mathematical optimization problem, an optimization model expressing the above problem as a mathematical optimization problem, and an optimization model for solving the optimization problem. and/or are determined or generated according to the input data.
  • the reception unit 11 receives input of input data indicating a problem to be solved as an optimization problem, and the A modeling unit 12 that determines or generates at least one of a problem class, 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. And, the configuration is adopted.
  • the functions of the support device 1 described above can also be realized by a program.
  • the support program according to this exemplary embodiment comprises a receiving means for receiving an input of input data indicating a problem to be solved as an optimization problem, a problem class when the problem is a mathematical optimization problem, At least one of an optimization model expressing the problem as a mathematical optimization problem and an optimization calculation algorithm for solving the optimization problem, functioning as a modeling means for determining or generating according to the input data; configuration is adopted. Therefore, according to the support program according to the present exemplary embodiment, it is possible to obtain the effect that mathematical optimization can be easily performed.
  • FIG. 2 is a flow diagram showing the flow of the support method.
  • the execution entity of each step in this support method may be a processor provided in the support device 1 or a processor provided in another device. processor.
  • At S11 at least one processor receives input data indicating a problem to be solved as an optimization problem.
  • At S12 at least one processor models a mathematical optimization problem.
  • the processor includes a problem class when the problem is a mathematical optimization problem, an optimization model representing the problem as a mathematical optimization problem, and an optimization calculation algorithm for solving the optimization problem, is determined or generated according to the input data input in S11.
  • At least one processor receives input data indicating a problem to be solved as an optimization problem, and transforms the problem into a mathematical optimization problem. determining or generating at least one of a problem class when , 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 A configuration of including and Therefore, according to the support method according to this exemplary embodiment, it is possible to obtain the effect that mathematical optimization can be easily performed.
  • FIG. 3 is a block diagram showing the configuration of the support device 2.
  • 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 for communication between the support device 2 and other devices, an input unit 23 for receiving input of various data to the support device 2, and an output unit for the support device 2 to output various data. 24.
  • the control unit 20 also includes a reception unit 201 , a modeling unit 202 , an evaluation unit 203 , an optimization calculation unit 204 and a detection unit 205 .
  • Input data 211 and collation data 212 are stored in the storage unit 21 .
  • the verification data 212 will be described later in "Error Detection Using Verification Data".
  • the input data 211 is data indicating a problem to be solved as an optimization problem.
  • input data 211 may include objective functions and constraints formulated for the problem to be solved. For example, if the above problem is a so-called shift scheduling problem, the extent to which the scheduling conditions (required number of people, compatibility between members, each member's wishes, etc.) match (or do not match) may be input as the input data 211 .
  • the input data 211 may also include constraints indicating prohibited work patterns and the like.
  • the reception unit 201 receives input of the above-described 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 input from another device via the communication unit 22 .
  • the modeling unit 202 uses the input data 211 to model the mathematical optimization problem.
  • the modeling unit 202 includes (1) a problem class when the problem indicated by the input data 211 is a mathematical optimization problem, (2) an optimization model representing the above problem as a mathematical optimization problem, and ( 3) determining or generating 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 in separate processing blocks.
  • the evaluation unit 203 evaluates the suitability of each of the plurality of optimization model candidates generated by the modeling unit 202 for the problem indicated by the input data 211 .
  • the evaluation unit 203 also evaluates the suitability of each of the plurality of candidates for the optimization calculation algorithm determined by the modeling unit 202 to the problem indicated by the input data 211 .
  • the evaluation unit 203 may evaluate only one of the optimization model candidate and the optimization calculation algorithm candidate. Further, the evaluation of the optimization model candidates and the evaluation of the optimization calculation algorithm candidates may be performed in separate processing blocks. Details of the evaluation method will be described later.
  • optimization model that fits the problem class can be applied to optimization calculations, but optimization calculations can take a huge amount of time depending on the combination of the optimization model and the problem to which it is applied.
  • memory compatibility such as the amount of memory used during optimization calculations, may become a problem.
  • the evaluation unit 203 is useful as a means of 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 the optimization model to be applied based on the evaluation result of the evaluation unit 203 for each of the plurality of generated optimization models. Thereby, an optimization model with high validity can be determined.
  • the evaluation unit 203 evaluates the suitability of the optimization calculation algorithm candidates for the problem indicated by the input data 211, and the modeling unit 202 evaluates each of the plurality of optimization calculation algorithms based on the evaluation results.
  • An optimization computational algorithm to apply may be determined. Thereby, an optimization calculation algorithm with high validity can be determined.
  • the optimization calculation unit 204 performs optimization calculations for the mathematical optimization problem modeled by the modeling unit 202 and calculates the optimum solution. For example, assume that the modeling unit 202 generates an optimization model from the input data 211 and determines an optimization calculation algorithm for solving an 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 the optimum solution.
  • the detection unit 205 detects errors in formulas included in the input data 211 .
  • this error detection method there is a method of collating a plurality of expressions included in the input data 211 with each other.
  • the detection unit 205 mutually collates a plurality of expressions included in the input data 211 and determines whether 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 there is a conflicting expression.
  • the detection unit 205 determines which of the multiple formulas included in the input data 211 is conflicting, and outputs the determination result. For example, in the above example, the detection unit 205 outputs determination results indicating "x>a" and "x ⁇ a" (for example, indexes pre-assigned to these expressions).
  • the detection unit 205 detects an error in the expression included in the input data 211 by collating the expression included in the input data 211 with the collation data 212. You may Specifically, the detection unit 205 acquires the input data 211 and the matching data 212 and determines whether the acquired input data 211 and the matching data 212 are consistent. If the detection unit 205 determines that there is a contradiction, the detection unit 205 determines which of the multiple formulas included in the input data 211 contradicts the matching data 212, and outputs the determination result.
  • the verification data 212 is data for verification with the input data 211, and is data that is known to be correct or has a high possibility of being correct regarding the problem indicated by the input data 211.
  • various data collected from 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 constraints to be considered.
  • the optimization problem shown in (1) below is a problem of finding an optimal solution x opt for an optimization variable x that satisfies the condition x ⁇ X for an objective function f(x).
  • the optimization variable x actually applied in the past can be used as matching data 212 .
  • the detection unit 205 substitutes the past data x for this conditional expression.
  • the detection unit 205 can detect that the above conditional expression has an error.
  • inverse reinforcement learning in which the above-mentioned past data of cases in which appropriate decisions have been made is used as training data to learn the criteria for determining the solution of the problem to be optimized. It is The teacher data used for this inverse reinforcement learning can also be used as the matching data 212 .
  • the objective function included in the input data 211 can also be generated by inverse reinforcement learning. That is, by using the teacher data used to generate the objective function contained in the input data 211 as the collation data 212, error detection of the input data can be performed.
  • teacher data used in learning methods other than inverse reinforcement learning can also be used as the matching data 212 .
  • the detection unit 205 performs either a process of mutually matching a plurality of formulas included in the input data 211 or a process of matching the formulas included in the input data 211 with the matching data 212 . good too. Also, the process of matching a plurality of formulas included in the input data 211 and the process of matching the formulas included in the input data 211 with the matching data 212 may be executed in separate processing blocks.
  • the support device 2 performs at least mutual matching of the multiple formulas included in the input data 211 and matching of the multiple formulas included in the input data 211 with the predetermined matching data 212.
  • a detection unit 205 for detecting an error in the formula included in the input data 211 is provided. According to this configuration, when a plurality of formulas included in the input data 211 include an erroneous one, it can be automatically detected.
  • 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 the optimization calculation algorithm used when solving the optimization problem.
  • the problem class and optimization calculation algorithm shall correspond to the input data 211 .
  • the method of determining the problem class and the optimization calculation algorithm is not particularly limited, and the following three methods can be exemplified, for example.
  • the modeling unit 202 uses this rule base to generate a problem corresponding to the input data 211.
  • a class and an optimization computational algorithm can be determined.
  • IP Integer Programming
  • SAT Boolean SATisfiability testing
  • the modeling unit 202 determines whether or not all the variables included in the input data 211 are binary variables. and a quadratic programming problem. Then, the modeling unit 202 selects the integer programming problem solver and the satisfiability problem solver as candidates for the optimization calculation algorithm corresponding to the primary programming problem. The modeling unit 202 also selects simulated annealing and quantum annealing as candidates for the optimization calculation algorithm for the quadratic programming problem.
  • the evaluation unit 203 evaluates the problem class candidates and the optimization calculation algorithm candidates determined by the modeling unit 202 .
  • the modeling unit 202 determines one problem class and an optimization calculation algorithm based on the result.
  • a rule base that can determine one problem class and one optimization computational algorithm without going through evaluation may be used.
  • the modeling unit 202 does not necessarily need to determine both the problem class and the optimization calculation algorithm. That is, the modeling unit 202 may determine the optimization calculation algorithm when the problem class is specified, and may determine the problem class when the optimization calculation algorithm is specified.
  • the problem class is determined, and the corresponding optimization calculation algorithm is determined.
  • the modeling unit 202 may determine one or a plurality of optimization calculation algorithms according to the problem class, as in the case of using a rule base, or use a trained model. may determine the optimization calculation algorithm.
  • the objective variable of the trained model for determining the optimization calculation algorithm is data indicating the optimization calculation algorithm (for example, identification information of the optimization calculation algorithm), and the explanatory variable is the input data 211 or the feature amount extracted from the input data 211. And it is sufficient.
  • the explanatory variables may also include other factors related to modeling, such as the problem class to which it applies.
  • Trained Model It is also possible to determine a problem class and an optimization calculation algorithm 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 a problem class according to the input data 211 using this trained model.
  • the objective variable of the trained model for determining the problem class should be data indicating the problem class (for example, problem class identification information), and the explanatory variable should be the input data 211 or the feature amount extracted from the input data 211.
  • the features include, for example, the type of optimization problem, the types of variables involved, the number of variables, the order of formulas, and the like.
  • the explanatory variables may also include information indicating other factors related to modeling, such as the optimization calculation algorithm to be applied.
  • the modeling unit 202 uses data indicating that the problem class is a first-order programming problem and a second-order programming problem as objective variables, and the input data whose included variables are all binary variables, or the variables included in the input data are A learned model constructed by machine-learning the relationship between the feature values indicating that they are all binary variables as explanatory variables may be used.
  • the problem class to be applied is , a value indicating that it is a first-order and second-order programming problem. 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 amount extracted from the input data 211 to the trained model.
  • a problem class can also be determined using a reinforcement learning model for determining a problem class according to the input data 211 .
  • a reinforcement learning model for example, uses input data or features extracted from the input data as a "state”, a problem class to be applied in that state as an "action”, and an evaluation result of the suitability of the action as a "reward”. It can be constructed by learning.
  • data indicating the "state" in reinforcement learning for example, feature values extracted from input data (for example, data indicating whether or not all variables included in the input data are binary variables) can be used.
  • the "reward” should be calculated so that if the applied problem class (behavior) is valid, the compatibility is high, and if it is not valid, the compatibility is low.
  • compatibility indicators such as calculation time and memory usage (the shorter the calculation time and the lower the memory usage, the higher the compatibility). good. This makes it possible to determine problem classes that require less computation time and less memory usage.
  • Reinforcement learning can be performed using a pre-prepared benchmark problem, such as a shift scheduling problem in which only binary variables appear, for example. Such reinforcement learning makes it possible to determine the action that maximizes the reward obtained, that is, the optimal problem class.
  • the modeling unit 202 may determine a plurality of different problem classes and optimization computational algorithm candidates.
  • the evaluation unit 203 may evaluate the suitability of each candidate for the problem to be solved as the optimization problem.
  • the modeling unit 202 may determine the problem class and optimization calculation algorithm to be applied based on the evaluation result of the evaluation unit 203 for each candidate.
  • Evaluation indicators include, for example, calculation speed and memory usage required for calculation.
  • the evaluation unit 203 may calculate an index value indicating calculation speed or an index value indicating memory usage from the number of constraints and the number of variables included in the optimization problem.
  • the formulation may be performed by the modeling unit 202 or by the user.
  • a problem to be solved by the optimization calculation may be a problem indicated by the input data 211 or may be a problem for evaluating an optimization calculation algorithm such as a benchmark problem.
  • the evaluation unit 203 does not need to evaluate both the problem class candidate and the optimization calculation algorithm candidate. If the problem class is specified by the user, the evaluation unit 203 may evaluate candidates for the optimization calculation algorithm. If the optimization calculation algorithm is specified by the user, the evaluation unit 203 , the problem class candidates should be evaluated.
  • the modeling unit 202 can also generate an optimization model representing the problem indicated by the input data 211 as a mathematical optimization problem. Generating an optimization model can be rephrased as formulating a mathematical optimization problem, and an optimization model can be said to be a set of formulated formulas. The formulation is made to fit a problem class specified by the user or determined by the modeling unit 202 .
  • the modeling unit 202 may convert the formula included in the input data 211 according to a predetermined conversion rule to generate an optimization model formulated in a format suitable for the problem class to be applied. This makes it possible to generate an optimization model formulated in a form suitable for the applied problem class. Further, although the details will be described later, an optimization model based on the know-how can be generated by using the know-how for formulation as a conversion rule.
  • the above-described conversion rule converts each expression included in the input data 211 (for example, a conditional expression expressed as a logical expression or a mathematical expression expressed as an equality/inequality) into one or more It may be converted into a formula.
  • the modeling unit 202 outputs a mathematical expression that is a model expression in the designated problem class from the conditional expression expressed by the logical expression and the mathematical expression expressed by the equality and inequality in the input data 211 without excess or deficiency. is desirable. In other words, it is desirable that the modeling unit 202 generates an optimization model that does not omission the conditions indicated in the input data 211 . In addition, the modeling unit 202 preferably generates an optimization model in a format that can be input to the optimization calculation algorithm specified by the user or determined by the modeling unit 202 as it is or after simple conversion.
  • the method of generating the optimization model is not particularly limited, and it is also possible to generate it by the following methods (1) to (3), for example.
  • rule base indicating the correspondence relationship between the input data 211 and conversion rules to be applied is prepared in advance, the modeling unit 202 uses this rule base to perform conversion according to the input data 211. Rules can be determined. Then, the modeling unit 202 can convert the input data 211 according to the determined conversion rule to generate an optimization model.
  • FIG. 4 is a diagram showing a setting example of constraint conditions.
  • feasible x,y pairs are plotted on the xy plane. There are eight plots in all. Note that dashed circles indicate infeasible areas.
  • the user may include in the input data 211 indicating the variable definitions 0 ⁇ x ⁇ 3 and 0 ⁇ y ⁇ 3, and may also include in the input data 211 the following logical expressions representing the constraints.
  • the logical expression may include operators such as max and min, for example.
  • a rule indicating that an algorithm for obtaining a convex hull containing all feasible solutions is applied is registered in the rule base.
  • Any algorithm can be applied to obtain the convex hull. 0 ⁇ x ⁇ 3, 0 ⁇ y ⁇ 3, 1 ⁇ x+y, y ⁇ x ⁇ 2, 3x+2y ⁇ 9
  • the above range includes a dashed circle (2, 1) indicating an infeasible region.
  • the finally generated inequality is as follows. These are all linear inequalities and can be used as they are for optimization calculations.
  • a conversion rule can be determined using a learned model constructed by machine-learning the relationship between the input data 211 and the conversion rule to be applied.
  • the modeling unit 202 can use this trained model to determine a problem class corresponding to the input data 211, convert the input data 211 according to the determined conversion rule, and generate an optimization model.
  • Such a trained model can be constructed in the same way as the trained model used to determine the problem class and optimization calculation algorithm.
  • the modeling unit 202 uses a learned model constructed by using data indicating a conversion rule (for example, identification information of a conversion rule) as an objective variable and using the input data 211 or a feature amount extracted from the input data 211 as an explanatory variable.
  • the explanatory variables may also include information indicating other elements related to modeling, such as the optimization calculation algorithm to be applied and the problem class.
  • the modeling unit 202 also generates a plurality of conversion rule candidates applicable to conversion of the input data 211, and determines one conversion rule to be applied based on the evaluation result of the evaluation unit 203 for each of the generated candidates.
  • a plurality of candidates may be generated using a rule base as described above, or may be generated using a trained model as described above.
  • a learned 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 production rule, and the explanatory variable may be the input data 211 or a feature amount extracted from the input data 211 .
  • the explanatory variables may also include information indicating other factors related to modeling, such as the optimization calculation algorithm to be applied.
  • the evaluation unit 203 may evaluate each conversion rule candidate using a prediction model that predicts the number of variables and the number of constraints when the conversion rule is applied.
  • a prediction model can be constructed by machine learning using teacher data generated based on the result of converting the benchmark problem with each conversion rule.
  • the modeling unit 202 selects one conversion rule by, for example, applying a conversion rule candidate that has the smallest sum of the number of variables and the number of constraints. can decide.
  • evaluation index is not limited to the number of variables and the number of constraints, as long as it serves as an index for judging suitability of conversion rules. For example, calculation speed, amount of memory used for calculation, and the like may be used as evaluation indices.
  • a specific example of determining one conversion rule from conversion rule candidates will be described below.
  • the user wants to express a constraint that A and B cannot simultaneously reserve a conference room on the same day of the week when two persons, A and B, reserve a conference room. It is assumed that A and B each reserve a conference room once in a week (not more than twice in a week).
  • the evaluation unit 203 can The predictive model can be used to evaluate the optimization model.
  • the modeling unit 202 can then determine the optimization model to apply based on the evaluation result.
  • the index of suitability evaluation may be any index that can be used to determine the suitability of a conversion rule. may be used as an index for evaluation.
  • the modeling unit 202 may receive input of control parameters related to approximation accuracy, perform approximation according to the control parameters, and generate an optimization model.
  • a linear programming problem is designated as the problem class, or the modeling unit 202 sets the problem class to a linear programming problem. is determined.
  • the quadratic equation cannot be strictly expressed only by the linear equation, approximation is required.
  • FIG. 5 is a diagram illustrating a method of approximating a quadratic function.
  • x2 of the objective function is expressed using the new variable y.
  • x2 included in the objective function can be approximately expressed by giving y ⁇ a n x+b n as a constraint condition.
  • the maximum error ⁇ between x2 and the tangent is the distance between x2 and the tangent at the point furthest from the tangent, as shown in FIG.
  • the maximum error ⁇ becomes smaller as the number of tangents increases. Therefore, when the maximum error ⁇ is designated as a control parameter by, for example, user operation via the input unit 23, the modeling unit 202 sets the distance between x2 and the tangent so as not to exceed the designated maximum error ⁇ .
  • the number of tangent lines (range of n) may be adjusted.
  • the modeling unit 202 may generate an optimization model by converting the formula included in the input data 211 by approximation that satisfies the specified accuracy. Thereby, an optimization model can be generated with the accuracy desired by the user.
  • FIG. 6 is a flow diagram showing an example of processing related to error detection.
  • the reception unit 201 receives the input of the input data 211.
  • the detection unit 205 mutually collates the formulas included in the input data 211 (S202). Then, the detection unit 205 determines whether or not the collated formula contains an error (S203). If it is determined in S203 that an erroneous formula is included (YES in S203), the process proceeds to S204; if it is determined that an erroneous formula is not included (NO in S203), the process proceeds to S205. move on.
  • the detection unit 205 outputs the erroneous formula detected by the matching in S202.
  • the processing of FIG. 6 ends.
  • the input data 211 in which the erroneous formula is corrected may be subjected to S202 and subsequent processes.
  • the detection unit 205 matches the matching data 212 with the formula included in the input data 211 . Then, in S206, the detection unit 205 determines whether or not the input data 211 includes an erroneous formula.
  • S206 If it is determined in S206 that an erroneous formula is included (YES in S206), proceed to S207.
  • the detection unit 205 outputs the erroneous formula detected by the collation in S205, and ends the processing in FIG. After the error in the output formula is corrected (debugged), the input data 211 in which the erroneous formula is corrected may be subjected to S202 and subsequent processes.
  • the receiving unit 201 receives input of the input data 211 indicating a problem to be solved as an optimization problem, (1) mutually checking a plurality of expressions included in the input data 211, and (2) ) a detection unit 205 that detects errors in the formulas included in the input data 211 by at least one of matching a plurality of formulas included in the input data 211 with matching data 212 . Therefore, when a plurality of formulas included in the input data 211 contain an erroneous one, it can be detected automatically.
  • FIG. 7 is a flow chart showing an example of processing related to optimization calculation. Although error detection by the detection unit 205 is not described in the example of FIG. 7, it goes without saying that the error detection shown in FIG. 6 may be performed after S211 and before S212.
  • the reception unit 201 receives the input of the input data 211.
  • the receiving unit 201 may receive designation of either or both of the problem class and the optimization calculation algorithm.
  • the modeling unit 202 determines whether or not a problem class is specified. If the problem class is specified (YES in S212), the process proceeds to S213, and if not (NO in S212), the process proceeds to S214.
  • the modeling unit 202 determines whether an optimization calculation algorithm is specified. If the optimization calculation algorithm is designated (YES in S213), the process proceeds to S218, and if not (NO in S213), the process proceeds to S215.
  • the modeling unit 202 determines whether an optimization calculation algorithm is specified. If the optimization calculation algorithm is designated (YES in S214), the process proceeds to S216, and if not (NO in S214), the process proceeds to S217.
  • the modeling unit 202 selects the problem class and the optimization calculation algorithm according to the input data 211 input in S211. decide. At this time, the modeling unit 202 may determine a plurality of problem classes and optimization calculation algorithm candidates. In this case, the evaluation unit 203 may evaluate each candidate, and the modeling unit 202 may determine each one problem class and optimization calculation algorithm based on the evaluation results.
  • the modeling unit 202 conforms to the specified optimization calculation algorithm and A problem class corresponding to the input data 211 is determined. At this time, the modeling unit 202 may first determine a plurality of problem class candidates, and the evaluation unit 203 may evaluate each candidate. The modeling unit 202 may then determine one problem class based on the evaluation results.
  • the modeling unit 202 matches the specified problem class and the input data input in S211. It determines an optimization calculation algorithm according to H.211. 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. The modeling unit 202 may then determine one optimization calculation algorithm based on the evaluation results. For example, by evaluating whether the computational efficiency is good or bad, it is possible to determine an optimization computational algorithm with high computational efficiency for a specified problem class.
  • the modeling unit 202 generates an optimization model representing the problem indicated by the input data 211 input at S211 as a mathematical optimization problem.
  • the modeling unit 202 may first determine a plurality of candidates for the optimization model, and the evaluation unit 203 may evaluate each candidate. The modeling unit 202 may then determine one optimization model based on the evaluation results.
  • the optimization calculation unit 204 performs optimization calculation using the optimization model generated in S218 to calculate the optimum solution.
  • the optimization calculation algorithm used in this optimization calculation is specified or determined in S215 or S217.
  • the problem class of this optimization calculation is specified or determined in S216 or S217.
  • the optimization calculation unit 204 causes the output unit 24 to output the calculation result calculated in S219.
  • the processing in FIG. 7 ends.
  • the output destination of the calculation result in S220 is arbitrary, and may be output to a display device or the like external to the support device 2, for example.
  • 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.
  • the modeling unit 202 does not necessarily have to determine one optimization calculation algorithm and one problem class. good.
  • the modeling unit 202 generates an optimization model corresponding to each candidate in S218, and based on the evaluation result of the evaluation unit 203 for these optimization models, the final optimization calculation algorithm and problem class are determined for each. You have to decide one.
  • the modeling unit 202 may present the generated or determined candidates to the output unit 24 for at least one of the optimization calculation algorithm, problem class, and optimization model to the user. Then, the modeling unit 202 may decide to apply one of the presented candidates specified by user 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 so as to serve as a reference for the user's judgment.
  • FIG. 7 shows an example in which the modeling unit 202 can determine or generate any of the modeling elements of the optimization calculation algorithm, problem class, and optimization model. However, the modeling unit 202 may determine or generate at least one of the elements described above. Elements that cannot be determined or generated by the modeling unit 202 may be specified by the user.
  • the input data 211 is a logical expression, an equality, or an inequality.
  • the input data 211 may be text that expresses a problem to be solved as an optimization problem, instead of a formula.
  • the support device 2 may be provided with formulation means for formulating the optimization problem from the text.
  • formulation means for formulating the optimization problem from the text.
  • figures, tables (graphs), etc. can be used as the input data 211, and sentences indicating problems may be input by voice.
  • a support system having functions similar to those of the support devices 1 and 2 can be constructed using a plurality of devices that can communicate with each other. For example, by distributing the blocks shown in FIGS. 1 and 3 to a plurality of devices, a support system having functions similar to those of the support devices 1 and 2 can be constructed.
  • the support device 2 can also be configured to include at least the reception unit 201 and the detection unit 205 . That is, the configuration of the modeling unit 202 and the like can be omitted. According to this support device 2, when a plurality of formulas included in the input data 211 contain an error, it can be detected automatically, and modeling can be supported.
  • 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 by software.
  • the support devices 1 and 2 are implemented, for example, by computers that execute program instructions that are software that implements each function.
  • An example of such a computer (hereinafter referred to as computer C) is shown in FIG.
  • Computer C comprises at least one processor C1 and at least one memory C2.
  • a program P (support program) for operating the computer C as the support device 1 or 2 is recorded in the memory C2.
  • the processor C1 reads the program P from the memory C2 and executes it, thereby realizing each function of the support device 1 or 2.
  • processor C1 for example, CPU (Central Processing Unit), GPU (Graphic Processing Unit), DSP (Digital Signal Processor), MPU (Micro Processing Unit), FPU (Floating point number Processing Unit), PPU (Physics Processing Unit) , a microcontroller, or a combination thereof.
  • memory C2 for example, a flash memory, HDD (Hard Disk Drive), SSD (Solid State Drive), or a combination thereof can be used.
  • the computer C may further include a RAM (Random Access Memory) for expanding the program P during execution and temporarily storing various data.
  • Computer C may further include a communication interface for sending and receiving data to and from other devices.
  • Computer C may further include an input/output interface for connecting input/output devices such as a keyboard, mouse, display, and printer.
  • the program P can be recorded on a non-temporary tangible recording medium M that is readable by the computer C.
  • a recording medium M for example, a tape, disk, card, semiconductor memory, programmable logic circuit, or the like can be used.
  • the computer C can acquire the program P via such a recording medium M.
  • the program P can be transmitted via a transmission medium.
  • a transmission medium for example, a communication network or broadcast waves can be used.
  • Computer C can also acquire program P via such a transmission medium.
  • Appendix 2 The support device according to appendix 1, wherein the modeling means converts the input data according to a predetermined conversion rule to generate the optimization model formulated in a format suitable for a problem class to be applied. According to this configuration, it is possible to generate an optimization model formulated in a format suitable for the applied problem class.
  • the assisting device according to appendix 1 or 2, wherein the optimization model to apply is determined based on. According to this configuration, it is possible to determine an optimization model with high validity.
  • Appendix 5 a formula included in the input data by at least one of matching a plurality of formulas included in the input data with each other and matching a plurality of formulas included in the input data with predetermined matching data; 4.
  • a support device according to any one of appendices 1 to 3, comprising detection means for detecting an error in . According to this configuration, when an erroneous expression is included in a plurality of expressions included in the input data, it can be automatically detected. It is also possible to correct (debug) an expression by detecting an error in an expression as described above and determining which expression has an error.
  • Appendix 6 Any one of Appendices 1 to 5, wherein, when receiving a specification of approximation accuracy, the modeling means converts the formula included in the input data by approximation that satisfies the specified accuracy to generate the optimization model. 1.
  • At least one processor receives input data indicating a problem to be solved as an optimization problem, a problem class when the problem is a mathematical optimization problem, and the problem is expressed as a mathematical optimization problem. determining or generating an optimization model and/or an optimization computational algorithm for solving an optimization problem in response to said input data. According to this support method, the same effect as that of Supplementary Note 1 can be obtained.
  • Appendix 8 a receiving means for receiving input data indicating a problem to be solved as an optimization problem, a problem class when the problem is a mathematical optimization problem, and an optimization problem expressing the problem as a mathematical optimization problem;
  • a support program that functions as modeling means for determining or generating at least one of an optimization model and an optimization calculation algorithm for solving an optimization problem according to the input data. According to this support program, the same effects as those of Supplementary Note 1 can be obtained.
  • At least one processor is provided, and the processor receives an input of input data indicating a problem to be solved as an optimization problem, a problem class when the problem is a mathematical optimization problem, and a mathematical optimization problem. and a modeling process for determining or generating at least one of an optimization model expressed as an optimization problem and an optimization calculation algorithm for solving the optimization problem according to the input data.
  • the information processing apparatus may further include a memory, and the memory may store a support program for causing the processor to execute the reception process and the modeling process. Also, this support program may be recorded in a computer-readable non-temporary tangible recording medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

数理最適化を容易に行うことを可能にするために、支援装置(1)は、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付部(11)と、問題を数理最適化問題とする際の問題クラス、問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、入力データに応じて決定または生成するモデリング部(12)と、を備える。

Description

支援装置、支援方法、および支援プログラム
 本発明は、数理最適化を支援する技術に関する。
 近年、数理最適化という手法が様々な分野で利用されるようになりつつある。数理最適化は、解決策を求める対象となる問題を数理モデルで表し、その数理モデルを最適化計算によって解くことにより、その問題に対する解決策を導き出す手法である。数理最適化については、例えば下記の非特許文献1に記載されている。
H. Paul Williams, "Model Building in Mathematical Programming", John Wiley & Sons, 2013, P.3-10.
 数理最適化は幅広い分野で適用可能かつ有力な手法であるが、現状では広く活用されているとはいえない。その一因として、数理最適化の適用の難しさが挙げられる。例えば、数理最適化を行う場合、対象となる問題に応じた問題クラスを選択し、その問題クラスに適合した最適化モデルを作成し、その最適化モデルを解くための最適化アルゴリズムを選択する等のように、数理最適化の具体的方法を決める必要がある。しかし、これらの選択や作成を適切に行うためには、数理最適化についての十分な知識が必要であることに加え、対象となる問題についての十分な理解も必要になる。よって、そのような知識や理解が十分ではない者にとって、数理最適化を適用することはハードルが高かった。
 本発明の一態様は、数理最適化を容易に行うことを可能にする支援装置等を提供することを目的としている。
 本発明の一側面に係る数理最適化の支援装置は、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付手段と、前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成するモデリング手段と、を備える。
 本発明の一側面に係る支援方法は、少なくとも1つのプロセッサが、最適化問題として解く対象となる問題を示す入力データの入力を受け付けることと、前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成することと、を含む。
 本発明の一側面に係る支援プログラムは、コンピュータを、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付手段、および、前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成するモデリング手段、として機能させる。
 本発明の一態様によれば、数理最適化を容易に行うことを可能にする支援装置等を提供することができる。
本発明の例示的実施形態1に係る支援装置の構成を示すブロック図である。 本発明の例示的実施形態1に係る支援方法の流れを示すフロー図である 本発明の例示的実施形態2に係る支援装置の構成を示すブロック図である。 本発明の例示的実施形態2における制約条件の設定例を示す図である。 本発明の例示的実施形態2において2次関数を近似する方法を説明する図である。 本発明の例示的実施形態2における誤り検出に関する処理の例を示すフロー図である。 本発明の例示的実施形態2における最適化計算に関する処理の例を示すフロー図である。 本発明の各例示的実施形態に係る支援装置のハードウェア構成の一例を示す図である。
 〔例示的実施形態1〕
 本発明の第1の例示的実施形態について、図面を参照して詳細に説明する。本例示的実施形態は、後述する例示的実施形態の基本となる形態である。
 (支援装置1の構成)
 本例示的実施形態に係る支援装置1の構成について、図1を参照して説明する。図1は、支援装置1の構成を示すブロック図である。図1に示すように、支援装置1は、受付部11とモデリング部12とを備えている。
 受付部11は、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける。そして、モデリング部12は、上記入力データを用いて数理最適化問題のモデリングを行う。
 具体的には、モデリング部12は、入力データが示す問題を数理最適化問題とする際の問題クラス、上記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、上記入力データに応じて決定または生成する。
 以上のように、本例示的実施形態に係る支援装置1においては、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付部11と、上記問題を数理最適化問題とする際の問題クラス、上記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、上記入力データに応じて決定または生成するモデリング部12と、を備えるという構成が採用されている。
 上記の構成によれば、数理最適化の適用対象となる問題を示す入力データを入力すれば、その入力データに応じた、問題クラス、最適化モデル、および最適化計算アルゴリズムの少なくとも何れかが自動で決定される。したがって、本例示的実施形態に係る支援装置1によれば、数理最適化を容易に行うことが可能になるという効果が得られる。
 (支援プログラム)
 上述の支援装置1の機能は、プログラムによって実現することもできる。本例示的実施形態に係る支援プログラムは、コンピュータを、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付手段、および、上記問題を数理最適化問題とする際の問題クラス、上記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、上記入力データに応じて決定または生成するモデリング手段、として機能させる、という構成が採用されている。このため、本例示的実施形態に係る支援プログラムによれば、数理最適化を容易に行うことが可能になるという効果が得られる。
 (支援方法の流れ)
 本例示的実施形態に係る支援方法の流れについて、図2を参照して説明する。図2は、支援方法の流れを示すフロー図である。なお、この支援方法における各ステップの実行主体は、支援装置1が備えるプロセッサであってもよいし、他の装置が備えるプロセッサであってもよく、各ステップの実行主体がそれぞれ異なる装置に設けられたプロセッサであってもよい。
 S11では、少なくとも1つのプロセッサが、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける。
 S12では、少なくとも1つのプロセッサが数理最適化問題のモデリングを行う。具体的には、上記プロセッサは、上記問題を数理最適化問題とする際の問題クラス、上記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、S11で入力された入力データに応じて決定または生成する。
 以上のように、本例示的実施形態に係る支援方法においては、少なくとも1つのプロセッサが、最適化問題として解く対象となる問題を示す入力データの入力を受け付けることと、前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成することと、を含む、という構成が採用されている。このため、本例示的実施形態に係る支援方法によれば、数理最適化を容易に行うことが可能になるという効果が得られる。
 〔例示的実施形態2〕
 (支援装置2の構成)
 図3に基づいて本例示的実施形態に係る支援装置2の構成を説明する。図3は、支援装置2の構成を示すブロック図である。図示のように、支援装置2は、支援装置2の各部を統括して制御する制御部20と、支援装置2が使用する各種データを記憶する記憶部21を備えている。また、支援装置2は、支援装置2が他の装置と通信するための通信部22、支援装置2に対する各種データの入力を受け付ける入力部23、支援装置2が各種データを出力するための出力部24を備えている。
 また、制御部20には、受付部201、モデリング部202、評価部203、最適化計算部204、および検出部205が含まれている。そして、記憶部21には、入力データ211と照合データ212が記憶されている。なお、照合データ212については後記「照合データを用いた誤り検出」で説明する。
 入力データ211は、最適化問題として解く対象となる問題を示すデータである。例えば、入力データ211には、解くべき問題に対して定式化された目的関数と制約条件が含まれていてもよい。例えば、上記問題がいわゆるシフトスケジューリング問題である場合、スケジューリングの内容が、スケジューリングの条件(必要な人数、メンバー間の相性、各メンバーの希望等)に適合している(あるいは適合していない)程度を示す目的関数が入力データ211として入力されてもよい。また、禁止される勤務パターン等を示す制約条件についても入力データ211に含まれていてもよい。
 受付部201は、最適化問題として解く対象となる問題を示す上述した入力データ211の入力を受け付ける。入力データ211は、入力部23を介して入力されてもよいし、通信部22を介して他の装置から入力されてもよい。
 モデリング部202は、入力データ211を用いて数理最適化問題のモデリングを行う。具体的には、モデリング部202は、(1)入力データ211が示す問題を数理最適化問題とする際の問題クラス、(2)上記問題を数理最適化問題として表した最適化モデル、および(3)最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、入力データ211に応じて決定または生成する。なお、上記(1)~(3)の処理は、それぞれ別の処理ブロックで実行するようにしてもよい。
 一般的に、最適化問題のモデリングを行う際には、まず、解きたい問題に適用する問題クラスを決め、その問題クラスの数理最適化問題を解くための最適化計算アルゴリズムを決める。そして、解きたい問題を、上記問題クラスに適合し、上記最適化計算アルゴリズムで解くことのできる形式に定式化して最適化モデルを生成する。これらの処理はモデリングまたは定式化と呼ばれ、従来人手により行われており、専門知識などを要するハードルの高い作業であった。モデリング部202は、このような作業の少なくとも一部を自動化して、数理最適化を容易に行うことを可能にするものである。
 評価部203は、モデリング部202が生成する複数の最適化モデルの候補のそれぞれについて、入力データ211が示す問題に対する適合性を評価する。また、評価部203は、モデリング部202が決定する最適化計算アルゴリズムの複数の候補のそれぞれについて、入力データ211が示す問題に対する適合性を評価する。なお、評価部203は、最適化モデルの候補と最適化計算アルゴリズムの候補の何れかのみの評価を行うものであってもよい。また、最適化モデルの候補の評価と最適化計算アルゴリズムの候補の評価をそれぞれ別の処理ブロックで評価するようにしてもよい。評価方法の詳細は後述する。
 ここで、問題クラスに適合する最適化モデルであれば最適化計算に適用できるが、最適化モデルとそれを適用する問題との組み合わせによっては最適化計算に膨大な時間を要することもある。また、最適化計算時のメモリ使用量等のメモリに関する適合性が問題となることもある。
 このような問題の解決手段として評価部203は有用である。すなわち、モデリング部202はそれぞれ異なる複数の最適化モデルを生成し、評価部203は入力データ211が示す問題に対する最適化モデルの適合性を評価する。そして、モデリング部202は、生成した複数の最適化モデルのそれぞれに対する評価部203の評価の結果に基づいて、適用する最適化モデルを決定する。これにより、妥当性の高い最適化モデルを決定することができる。
 同様に、評価部203は、最適化計算アルゴリズムの候補について、入力データ211が示す問題に対する適合性を評価し、モデリング部202は、複数の最適化計算アルゴリズムのそれぞれに対する評価の結果に基づいて、適用する最適化計算アルゴリズムを決定してもよい。これにより、妥当性の高い最適化計算アルゴリズムを決定することができる。
 最適化計算部204は、モデリング部202によりモデリングされた数理最適化問題の最適化計算を行い、最適解を算出する。例えば、モデリング部202が、入力データ211から最適化モデルを生成すると共に、その最適化モデルを用いた最適化問題を解くための最適化計算アルゴリズムを決定したとする。この場合、最適化計算部204は、当該最適化計算アルゴリズムを用いて生成された最適化モデルを解き、最適解を算出する。
 (誤り検出)
 検出部205は、入力データ211に含まれる式の誤りを検出する。この誤り検出の方法の一例として、入力データ211に含まれる複数の式を相互に照合するという方法が挙げられる。
 この場合、検出部205は、入力データ211に含まれる複数の式を相互に照合し、矛盾した式が存在しないかを判定する。例えば、入力データ211に「x>a」という式と、「x≦a」という式が含まれている場合、検出部205は、矛盾する式が存在すると判定する。
 検出部205は、矛盾する式が存在すると判定した場合、入力データ211に含まれる複数の式のうち、何れの式が矛盾するかを判定し、判定結果を出力する。例えば上記の例であれば、検出部205は、「x>a」と「x≦a」を示す判定結果(例えばこれらの式に予め割り当てられたインデックス)を出力する。
 (照合データを用いた誤り検出)
 また、記憶部21に照合データ212が記憶されている場合、検出部205は、照合データ212と入力データ211に含まれる式とを照合することにより、入力データ211に含まれる式の誤りを検出してもよい。具体的には、検出部205は、入力データ211と照合データ212を取得し、取得した入力データ211と照合データ212が矛盾しないかを判定する。そして、検出部205は、矛盾すると判定した場合、入力データ211に含まれる複数の式のうち、何れの式が照合データ212と矛盾するかを判定し、判定結果を出力する。
 照合データ212は、入力データ211と照合するためのデータであり、入力データ211が示す問題に関して、正しいことが分かっている、あるいは正しい可能性が高いデータである。例えば、最適化の対象となる問題の過去の事例で収集された各種データ(以下、過去データと呼ぶ)を照合データ212として用いることができる。このような過去データは、考慮すべき制約条件を満たす実行可能解であると解釈できるからである。
 以下、過去データを照合データ212として用いて誤り検出する例を説明する。下記(1)に示す最適化問題は、目的関数f(x)について、x∈Xの条件を満たす最適化変数xの最適解xoptを求める問題である。この問題において、過去に実際に適用した最適化変数xを照合データ212として用いることができる。
Figure JPOXMLDOC01-appb-M000001
 例えば、過去の意思決定とその結果からみて最適な意思決定を導出する、という問題も上記(1)のように表すことが可能である。この場合、過去の意思決定結果は、x(i=1,…,N)と表される。このx(i=1,…,N)は、上記問題の妥当な解であるといえるから、照合データ212として利用することができる。
 例えば、A~Dの4人について7日分の最適な勤務スケジュールを、過去の勤務データから求める問題を解く場合について考える。この問題では、各勤務日には社員であるAまたはBの一方が必ず勤務することが制約条件として与えられている。また、A~Dがn日目に勤務するかどうかを表すバイナリ変数をそれぞれxA,n~xD,nとする。目的関数は、勤務スケジュールに対する要望(例えば同日勤務となる人の相性がよい等)に応じて設定すればよい。
 上記の問題における上記の制約条件は、「xA,n+xB,n=1 for n=1,…,7」と記述することができる。また、過去の勤務データにおける7日間の勤務スケジュールすなわち過去データは、x=(xA,1,xB,1,xC,1,xD,1,…,xA,7,xB,7,xC,7,xD,7)と表され、これらの値は制約条件を満たしていると考えられる。つまり、(xA,1+xB,1)~(xA,7+xB,7)は何れも1である。
 ここで、入力データ211に「xA,n+xB,n=2 for n=1,…,7」という条件式が含まれていたとする。この場合、検出部205は、この条件式に上記の過去データxを代入する。上述のように、過去データxは制約条件(xA,n+xB,n=1)を満たすから、xA,n+xB,n≠2となり上記条件式は不成立となる。これにより、検出部205は、上記条件式に誤りがあることを検出することができる。
 また、適切な意思決定が行われた事例における上述のような過去データを教師データとして、最適化の対象となる問題の解を求める際の判断基準を学習する、逆強化学習と呼ばれる手法が知られている。この逆強化学習に用いた教師データも照合データ212として用いることができる。
 また、入力データ211に含まれる目的関数は、逆強化学習により生成することもできる。つまり、入力データ211に含まれる目的関数を生成するために用いた教師データを照合データ212として利用することにより、その入力データの誤り検出を行うことができる。無論、逆強化学習以外の学習手法に用いられた教師データも照合データ212として利用することが可能である。
 なお、検出部205は、入力データ211に含まれる複数の式を相互に照合する処理と、照合データ212と入力データ211に含まれる式とを照合する処理の何れか一方を行うものであってもよい。また、入力データ211に含まれる複数の式を相互に照合する処理と、照合データ212と入力データ211に含まれる式とを照合する処理をそれぞれ別の処理ブロックで実行するようにしてもよい。
 以上のように、支援装置2は、入力データ211に含まれる複数の式を相互に照合すること、および入力データ211に含まれる複数の式と所定の照合データ212とを照合すること、の少なくとも何れかにより、入力データ211に含まれる式の誤りを検出する検出部205を備える。この構成によれば、入力データ211に含まれる複数の式に誤りのあるものが含まれていた場合に、それを自動で検出することができる。
 また、上記のように式に誤りがあることを検出し、そして何れの式に誤りがあるかを判定することにより、その式を修正すること(デバッグ)も可能になる。
 (問題クラス・最適化計算アルゴリズムの決定)
 上述のように、モデリング部202は、最適化問題として解く対象となる問題を数理最適化問題とする際の問題クラスを決定することができる。また、モデリング部202は、最適化問題を解く際に用いる最適化計算アルゴリズムを決定することもできる。問題クラスおよび最適化計算アルゴリズムは、入力データ211に応じたものとする。問題クラスおよび最適化計算アルゴリズムの決定方法は特に限定されず、例えば以下の3通りの方法が例示できる。
 (1)ルールベース使用
 入力データ211と、適用すべき問題クラスとの対応関係を示すルールベースを予め用意しておけば、モデリング部202は、このルールベースを用いて入力データ211に応じた問題クラスおよび最適化計算アルゴリズムを決定することができる。
 例えば、入力データ211に含まれる変数が全て0、1のバイナリ変数である場合に適用すべき問題クラスが、1次計画問題および2次計画問題であることを示すルールが上記ルールベースに登録されていてもよい。上記ルールベースには、人手によるモデリングの際に用いられているノウハウを反映させたルールを登録することが可能であり、これにより人手によるモデリングと同様の決定を自動で行うことが可能になる。
 また、上記ルールには、1次計画問題に適合した最適化計算アルゴリズムが、整数計画問題(IP:Integer Programming)ソルバーおよび充足可能性問題(SAT:boolean SATisfiability testing)ソルバーであることが示されていてもよい。さらに、上記ルールには、2次計画問題に適合した最適化計算アルゴリズムが、シミュレーテッドアニーリングおよび量子アニーリングであることが示されていてもよい。問題クラスと最適化計算アルゴリズムの対応付けにも、人手によるモデリングの際に用いられているノウハウを反映させることができる。
 以上のようなルールを用いる場合、モデリング部202は、入力データ211に含まれる変数が全てバイナリ変数であるか否かを判定し、全てバイナリ変数であれば、問題クラスの候補を1次計画問題および2次計画問題とすればよい。そして、モデリング部202は、1次計画問題に対応する最適化計算アルゴリズムの候補を、整数計画問題ソルバーおよび充足可能性問題ソルバーとする。また、モデリング部202は、2次計画問題に対応する最適化計算アルゴリズムの候補を、シミュレーテッドアニーリングおよび量子アニーリングとする。
 詳細は後述するが、モデリング部202が決定した問題クラスの候補と最適化計算アルゴリズムの候補について、評価部203が評価を行う。そして、モデリング部202は、その結果に基づいて、1つの問題クラスと最適化計算アルゴリズムを決定する。無論、評価を経ることなく1つの問題クラス、1つの最適化計算アルゴリズムを決定することができるようなルールベースを用いてもよい。
 また、モデリング部202は、必ずしも問題クラスと最適化計算アルゴリズムの両方を決定する必要はない。つまり、モデリング部202は、問題クラスが指定されている場合には最適化計算アルゴリズムを決定すればよく、最適化計算アルゴリズムが指定されている場合には問題クラスを決定すればよい。
 また、上述の例では、問題クラスが決まることにより、それに応じた最適化計算アルゴリズムが決まるが、モデリング部202は、最適化計算アルゴリズムを先に決定し、その後でそれに応じた問題クラスを決定してもよい。この場合、モデリング部202は、最適化計算アルゴリズムについては、ルールベースを用いる場合と同様に、問題クラスに応じた1または複数の最適化計算アルゴリズムを決定してもよいし、学習済みモデルを用いて最適化計算アルゴリズムを決定してもよい。
 最適化計算アルゴリズムを決定するための学習済みモデルの目的変数は最適化計算アルゴリズムを示すデータ(例えば最適化計算アルゴリズムの識別情報)とし、説明変数は入力データ211または入力データ211から抽出した特徴量とすればよい。また、この説明変数には、適用する問題クラス等、モデリングに関する他の要素が含まれていてもよい。
 (2)学習済みモデル使用
 入力データ211と適用すべき問題クラスとの関係を機械学習することにより構築した学習済みモデルを用いて問題クラスおよび最適化計算アルゴリズムを決定することもできる。この場合、モデリング部202は、この学習済みモデルを用いて入力データ211に応じた問題クラスを決定することができる。
 問題クラスを決定するための学習済みモデルの目的変数は問題クラスを示すデータ(例えば問題クラスの識別情報)とし、説明変数は入力データ211または入力データ211から抽出した特徴量とすればよい。特徴量としては、例えば最適化問題の種類、含まれる変数の種類、変数の数、および数式の次数等が挙げられる。また、この説明変数には、適用する最適化計算アルゴリズム等、モデリングに関する他の要素を示す情報が含まれていてもよい。
 例えば、モデリング部202は、問題クラスが1次計画問題および2次計画問題であることを示すデータを目的変数とし、含まれる変数が全てバイナリ変数である入力データ、または入力データに含まれる変数が全てバイナリ変数であることを示す特徴量を説明変数とし、これらの関係を機械学習することにより構築された学習済みモデルを用いてもよい。
 このような学習済みモデルに、含まれる変数が全てバイナリ変数の入力データ、または、入力データ211に含まれる変数が全てバイナリ変数であることを示す特徴量を入力すれば、適用すべき問題クラスが、1次計画問題および2次計画問題であることを示す値が出力される。よって、モデリング部202は、上記の学習済みモデルに入力データ211または入力データ211から抽出した特徴量を入力することにより得られる出力値に基づいて適用すべき問題クラスを決定することができる。
 (3)強化学習モデル使用
 入力データ211に応じた問題クラスを決定するための強化学習モデルを用いて問題クラスを決定することもできる。このような強化学習モデルは、例えば、入力データまたは入力データから抽出した特徴量を「状態」、その状態で適用する問題クラスを「行動」、その行動の適合性の評価結果を「報酬」として学習を行うことにより構築することができる。
 強化学習における「状態」を示すデータとしては、例えば入力データから抽出した特徴量(例えば、その入力データに含まれる変数が全てバイナリ変数であるか否かを示すデータ)を用いることができる。
 また、「報酬」は、適用した問題クラス(行動)が妥当であれば適合性が高く、妥当でなければ適合性が低くなるように算出すればよい。また、「報酬」の算出には、計算時間や計算に要するメモリ使用量等の適合性指標(計算時間が少ないほど、また、メモリ使用量が少ないほど適合性が高くなるもの)を用いてもよい。これにより、計算時間やメモリ使用量がより少なくて済む問題クラスを決定することが可能になる。
 強化学習は、例えば、バイナリ変数のみが登場するシフトスケジューリング問題のような予め用意したベンチマーク問題を用いて行うことができる。このような強化学習により、獲得する報酬が最大となる行動、すなわち最適な問題クラスを決定することが可能になる。
 (問題クラス・最適化計算アルゴリズムの評価)
 上述のように、モデリング部202は、それぞれ異なる複数の問題クラスおよび最適化計算アルゴリズムの候補を決定してもよい。この場合、評価部203は、各候補について、最適化問題として解く対象となる問題に対する適合性を評価してもよい。この場合、モデリング部202は、各候補に対する評価部203の評価の結果に基づいて、適用する問題クラスおよび最適化計算アルゴリズムを決定すればよい。
 評価の指標としては、例えば計算速度や計算に要するメモリ使用量等が挙げられる。例えば、評価部203は、最適化問題に含まれる制約条件の数や変数の数から、計算速度を示す指標値、あるいはメモリ使用量を示す指標値を算出してもよい。
 また、候補となる問題クラスおよび最適化計算アルゴリズムについて実際に最適化計算を行い、その際の計算速度やメモリ使用量を測定してもよい。この場合、定式化(最適化モデルの生成)はモデリング部202が行ってもよいし、ユーザが行ってもよい。また、最適化計算によって解く問題は、入力データ211に示される問題であってもよいし、ベンチマーク問題等の最適化計算アルゴリズムの評価用の問題であってもよい。
 なお、評価部203は、問題クラスの候補および最適化計算アルゴリズムの候補の両方を評価する必要はない。問題クラスがユーザから指定されている場合には、評価部203は、最適化計算アルゴリズムの候補について評価を行えばよく、最適化計算アルゴリズムがユーザから指定されている場合には、評価部203は、問題クラスの候補について評価を行えばよい。
 (最適化モデルの生成)
 上述のように、モデリング部202は、入力データ211が示す問題を数理最適化問題として表した最適化モデルを生成することもできる。最適化モデルの生成は、数理最適化問題の定式化と言い換えることもでき、最適化モデルは定式化された数式の集まりであるともいえる。定式化は、ユーザ等によって指定されたかまたはモデリング部202が決定した問題クラスに適合するように行われる。
 例えば、モデリング部202は、入力データ211に含まれる式を所定の変換規則により変換することにより、適用する問題クラスに適合する形式で定式化した最適化モデルを生成してもよい。これにより、適用される問題クラスに適合する形式で定式化した最適化モデルを生成することができる。また、詳細は後述するが、定式化のノウハウを変換規則とすることにより、ノウハウに基づく最適化モデルを生成することもできる。
 上述の変換規則は、入力データ211に含まれる各式(例えば、論理式で表現された条件式や、等式・不等式で表現された数式)を、適用する問題クラスに適合した1または複数の式に変換するものであってもよい。
 モデリング部202は、入力データ211において論理式で表現された条件式や、等式や不等式で表現された数式から、指定された問題クラスにおけるモデル表現となっている数式を過不足なく出力することが望ましい。言い換えれば、モデリング部202は、入力データ211に示される条件の漏れなどが無い最適化モデルを生成することが望ましい。また、モデリング部202は、ユーザ等によって指定されたかまたはモデリング部202が決定した最適化計算アルゴリズムにそのまま、あるいは簡単な変換を行うだけで入力できる形式の最適化モデルを生成することが好ましい。
 最適化モデルの生成方法は特に限定されず、例えば以下(1)~(3)の方法で生成することも可能である。
 (1)ルールベース使用
 入力データ211と、適用すべき変換規則との対応関係を示すルールベースを予め用意しておけば、モデリング部202は、このルールベースを用いて入力データ211に応じた変換規則を決定することができる。そして、モデリング部202は、決定した変換規則により入力データ211を変換して最適化モデルを生成することができる。
 例えば、ユーザが、何れも整数の変数であるx,yについて、図4に示す実行可能(feasible)領域を持つ制約条件を設定したいとする。図4は、制約条件の設定例を示す図である。図4では、実行可能なx,yの組をxy平面上にプロットしている。プロットは全部で8つ存在する。なお、破線の丸印は実行不可能(infeasible)領域を示している。
 この場合、ユーザは、0≦x≦3、0≦y≦3という変数定義を示す入力データ211に含めると共に、制約条件を表す下記のような論理式を入力データ211に含めてもよい。なお、論理式には例えば、max、min等の演算子が含まれていてもよい。
 (¬(x=0∧y=0))∧¬(x=0∧y=3))∧(y=0if x≧2)
 このような論理式であれば、最適化計算のモデリングに不慣れなユーザでも比較的容易に作成することができる。ただし、上記の論理式は、線形の等式・不等式のみからなるものではないため、この論理式をそのまま最適化計算に用いることはできない場合がある。
 このような実行可能/不可能領域を示す論理式を含む入力データ211については、実行可能解を全て包含する凸包を求めるアルゴリズムを適用する、ということを示すルールが上記ルールベースに登録されていてもよい。図4の例であれば、モデリング部202は、実行可能領域を示す8つのプロットを囲む直線(x軸およびy軸と、y=x+2、y=-x+1、およびy=-3x/2+9/2)を求めて、下記の不等式を得る。なお、凸包を求めるアルゴリズムとしては任意のものが適用できる。
0≦x≦3,0≦y≦3,1≦x+y,y-x≦2,3x+2y≦9
 ここで、上記の範囲には、図4に示すように、実行不可能領域を示す破線丸印(2,1)が含まれている。この点を見落としてしまうと、最適化計算において重大なエラーが生じることもあり得る。そこで、上記のルールには、凸領域で表すことができない領域が含まれている場合、言い換えれば凸領域内に実行不可能領域が含まれている場合、その実行不可能領域を排除するためのダミー変数を導入することを示すルールがさらに含まれていてもよい。
 この場合、モデリング部202は、上記のルールに従ってダミー変数zを導入する。具体的には、上述の入力データ211においては、x≧2の範囲で制約条件を満たすのはy=0のみであるから、モデリング部202は、x≧2であるか否かを判定する論理値z∈{0,1}を導入する。そして、z=0のときx≦1となり、z=1のときx≧2となるようにするため、モデリング部202は、x-1≦az,bz≦x(ただしa≧2,b≧1)の不等式を生成し、一組のa,b(a=2,b=1)を選んでx-1≦2z≦xの不等式を得る。
 また、モデリング部202は、z=1のときに必ずy=0となるようにするため、変数定義0≦y≦3とあわせてc(1-z)≧yとすればよい。この際、z=0のときにyに誤った制約を与えないようにするため、c≧3とする。例えば、モデリング部202は、c=3としてもよい。この場合、最終的に生成される不等式は下記のようになる。これらは全て線形の不等式であり、そのまま最適化計算に用いることが可能である。
0≦x≦3,0≦y≦3,1≦x+y,y-x≦2,3x+2y≦9,x-1≦2z≦x,3(1-z)≧y
 (2)学習済みモデル使用
 入力データ211と適用すべき変換規則との関係を機械学習することにより構築した学習済みモデルを用いて変換規則を決定することもできる。この場合、モデリング部202は、この学習済みモデルを用いて入力データ211に応じた問題クラスを決定し、決定した変換規則により入力データ211を変換して最適化モデルを生成することができる。
 このような学習済みモデルは、問題クラス・最適化計算アルゴリズムの決定に用いる学習済みモデルと同様にして構築することができる。例えば、モデリング部202は、目的変数を、変換規則を示すデータ(例えば変換規則の識別情報)とし、説明変数を、入力データ211または入力データ211から抽出した特徴量として構築した学習済みモデルを用いてもよい。また、この説明変数には、適用する最適化計算アルゴリズムや問題クラス等、モデリングに関する他の要素を示す情報が含まれていてもよい。
 また、モデリング部202は、入力データ211の変換に適用可能な複数の変換規則の候補を生成し、生成した候補のそれぞれに対する評価部203の評価結果に基づいて適用する1つの変換規則を決定してもよい。複数の候補は、上述したようなルールベースを用いて生成されてもよいし、上述したような学習済みモデルを用いて生成されてもよい。
 上記の評価には、機械学習により構築した学習済みモデルを適用することもできる。この学習済みモデルの目的変数は生成規則の評価の指標となるデータとし、説明変数は入力データ211または入力データ211から抽出した特徴量とすればよい。また、この説明変数には、適用する最適化計算アルゴリズム等、モデリングに関する他の要素を示す情報が含まれていてもよい。
 例えば、評価部203は、候補となる各変換規則について、その変換規則を適用したときの変数の数と制約条件の数を予測する予測モデルを用いて評価を行ってもよい。このような予測モデルは、ベンチマーク問題を各変換規則で変換した結果に基づいて生成された教師データによる機械学習で構築することが可能である。このような評価が行われた場合、モデリング部202は、例えば、変換規則の候補のうち、変数の数と制約条件の数の和が最も小さいものを適用する等の方法で1つの変換規則を決定することができる。
 なお、評価の指標は、変換規則の適合性を判断する指標となるものであればよく、変数の数と制約条件の数に限られない。例えば、計算速度や計算に要するメモリ使用量等を評価の指標としてもよい。
 以下、変換規則の候補から1つの変換規則を決定する具体例を説明する。ここでは、ユーザが、AとBの2人による会議室の予約において、同じ曜日にAとBが同時に会議室を予約できないという制約条件を表したいとする。なお、AとBは、1週間のうちに各々1回まで会議室を予約する(1週間の内に2回以上は予約しない)とする。この場合、ユーザは、例えば、n曜日の予約を表すバイナリ変数xA,n,xB,n(n=1,…,7)を用いて「xA,n=xB,n=0 if xA,n=xB,n」のような入力データ211を生成することが考えられる。
 この場合に、モデリング部202が、下記の(A)および(B)を最適化モデルの候補として生成したとする。
 (A)制約条件を、1≧xA,n+xB,n(つまりxA,n=xB,n=1を排除する不等式)とする。
 (B)2つの整数変数x∈{0,1,…,7}と、x∈{1,…,7,8}を用いて予約状況を表す。なお、1≦x≦7のときは番号に対応する予約を行う状況を表し、それ以外(つまりx=0とx=8)は1度も予約しない状況を表すとする。また、zをx>xであれば1、そうでないならば0となるバイナリ変数とする。このとき、制約条件は、下記の(B-1)のように表現でき、(B-1)の式から(B-2)の式が得られる。なお、Mは大きな値の定数でM≧9であれば何でもよい。
|x-x|≧1   …(B-1)
-x≧1-M(1-z),x-x≦-1+Mz   …(B-2)
 この場合、上記(A)(B)の2通りの最適化モデルについて、予め変数と制約条件の数がいくつになるかの予測モデルをベンチマーク問題などから学習しておけば、評価部203はその予測モデルを用いて最適化モデルを評価することができる。そして、モデリング部202は、その評価結果に基づいて適用する最適化モデルを決定することができる。
 (3)強化学習モデル使用
 また、入力データ211に応じた変換規則を決定するための強化学習モデルを用いて変換規則を決定することもできる。このような強化学習モデルは、例えば、入力データまたは入力データから抽出した特徴量を「状態」、その状態で適用する変換規則を「行動」、その行動の適合性の評価結果を「報酬」として学習を行うことにより構築することができる。
 適合性の評価の指標は、変換規則の適合性を判断する指標となるものであればよく、例えば、上述した変数の数、制約条件の数の他、計算速度や計算に要するメモリ使用量等を評価の指標としてもよい。
 (近似)
 入力データ211に示される式から、ある問題クラスに適合する最適化モデルを生成する場合、任意の問題クラスから他の問題クラスへの変換は必ずしも等価ではないため、近似した表現が必要となることがある。このような場合、モデリング部202は、近似精度に関する制御パラメータの入力を受け付けて、該制御パラメータに従って近似を行い、最適化モデルを生成してもよい。
 例えば、入力データ211に含まれる目的関数にxの項が含まれていた場合に、問題クラスとして線形計画問題が指定されるか、または、モデリング部202が問題クラスを線形計画問題とすることを決定したとする。この場合、2次式を1次式のみで厳密に表現することはできないため、近似を行う必要が生じる。
 近似について図5に基づいて説明する。図5は、2次関数を近似する方法を説明する図である。図示のように、xのような2次関数は、その接線(ax+b)により近似することができる(n=1,…)。また、線形計画問題では、1次の項のみ使用できるため、目的関数のxを、新規変数yを用いて表す。このとき、制約条件としてy≧ax+bを付与することにより、目的関数に含まれるxを近似的に表現することができる。
 この場合、xと接線との最大誤差εは、図5に示すように、接点から最も離れた位置におけるxと接線との距離である。図5から明らかなように、最大誤差εは接線の数を増やすほど小さくなる。したがって、モデリング部202は、例えば入力部23を介したユーザ操作等により最大誤差εが制御パラメータとして指定された場合、xと接線との距離が、指定された最大誤差εを超えないように接線の数(nの範囲)を調整すればよい。
 以上のように、モデリング部202は、近似精度の指定を受け付けた場合、入力データ211に含まれる数式を、指定された精度を満たす近似により変換して最適化モデルを生成してもよい。これにより、ユーザの所望する精度で最適化モデルを生成することができる。
 (処理の流れ:誤り検出)
 図6に基づいて、誤り検出に関する処理の流れを説明する。図6は、誤り検出に関する処理の例を示すフロー図である。
 S201では、受付部201が、入力データ211の入力を受け付ける。続くS202では、検出部205が、入力データ211に含まれる式を相互に照合する(S202)。そして、検出部205は、照合した式に誤りが含まれているか否かを判定する(S203)。S203で誤りのある式が含まれている(S203でYES)と判定された場合にはS204に進み、誤りのある式は含まれていない(203でNO)と判定された場合にはS205に進む。
 S204では、検出部205は、S202の照合により検出した誤りのある式を出力する。これにより、図6の処理は終了する。なお、出力した式の誤りが修正(デバッグ)された後、誤りのある式を修正した入力データ211について、S202およびそれ以降の処理を実施するようにしてもよい。
 S205では、検出部205は、照合データ212と、入力データ211に含まれる式とを照合する。そして、S206では、検出部205は、入力データ211に誤りにある式が含まれているか否かを判定する。
 S206で誤りのある式が含まれている(S206でYES)と判定された場合にはS207に進む。S207では、検出部205は、S205の照合により検出した誤りのある式を出力し、図6の処理を終了する。なお、出力した式の誤りが修正(デバッグ)された後、誤りのある式を修正した入力データ211について、S202およびそれ以降の処理を実施するようにしてもよい。
 一方、S206で誤りのある式は含まれていない(S206でNO)と判定された場合には図6の処理は終了する。なお、図6の例では、S202とS205の2種類の照合を行っているが、何れか一方の照合を行うようにしてもよい。
 以上のように、最適化問題として解く対象となる問題を示す入力データ211の入力を受け付ける受付部201と、(1)入力データ211に含まれる複数の式を相互に照合すること、および(2)入力データ211に含まれる複数の式と照合データ212とを照合すること、の少なくとも何れかにより、入力データ211に含まれる式の誤りを検出する検出部205と、を備える。よって、入力データ211に含まれる複数の式に誤りのあるものが含まれていた場合に、それを自動で検出することができる。
 (処理の流れ:最適化演算)
 図7に基づいて、最適化計算に関する処理の流れを説明する。図7は、最適化計算に関する処理の例を示すフロー図である。なお、図7の例では検出部205による誤り検出について記載していないが、S211の後、S212の前に図6に示したような誤り検出を行ってもよいことはいうまでもない。
 S211では、受付部201が、入力データ211の入力を受け付ける。S211では、受付部201は、入力データ211に加えて、問題クラスおよび最適化計算アルゴリズムの何れかまたは両方の指定を受け付けてもよい。
 S212では、モデリング部202が、問題クラスが指定されているか否かを判定する。問題クラスが指定されている場合(S212でYES)にはS213に進み、指定されていない場合(S212でNO)にはS214に進む。
 S213では、モデリング部202は、最適化計算アルゴリズムが指定されているか否かを判定する。最適化計算アルゴリズムが指定されている場合(S213でYES)にはS218に進み、指定されていない場合(S213でNO)にはS215に進む。
 S214では、モデリング部202は、最適化計算アルゴリズムが指定されているか否かを判定する。最適化計算アルゴリズムが指定されている場合(S214でYES)にはS216に進み、指定されていない場合(S214でNO)にはS217に進む。
 S217に進んだ場合、すなわち、問題クラスと最適化計算アルゴリズムの何れも指定されなかった場合には、モデリング部202は、S211で入力された入力データ211に応じた問題クラスと最適化計算アルゴリズムを決定する。この際、モデリング部202は、問題クラスと最適化計算アルゴリズムの候補を複数決定してもよい。この場合、評価部203は各候補の評価を行い、モデリング部202はその評価の結果に基づいて、各1つの問題クラスと最適化計算アルゴリズムを決定してもよい。
 S216に進んだ場合、すなわち、問題クラスは指定されず、最適化計算アルゴリズムが指定された場合には、モデリング部202は、指定された最適化計算アルゴリズムに適合し、かつ、S211で入力された入力データ211に応じた問題クラスを決定する。この際、モデリング部202は、まず問題クラスの候補を複数決定し、評価部203は各候補の評価を行うようにしてもよい。そして、モデリング部202は、その評価の結果に基づいて、1つの問題クラスを決定してもよい。
 S215に進んだ場合、すなわち、問題クラスが指定され、最適化計算アルゴリズムは指定されなかった場合には、モデリング部202は、指定された問題クラスに適合し、かつ、S211で入力された入力データ211に応じた最適化計算アルゴリズムを決定する。この際、モデリング部202は、まず最適化計算アルゴリズムの候補を複数決定し、評価部203は各候補の評価を行うようにしてもよい。そして、モデリング部202は、その評価の結果に基づいて、1つの最適化計算アルゴリズムを決定してもよい。例えば、計算効率の良し悪しで評価を行うことにより、指定された問題クラスにおいて計算効率の良い最適化計算アルゴリズムを決定することができる。
 S218では、モデリング部202は、S211で入力された入力データ211が示す問題を数理最適化問題として表した最適化モデルを生成する。この際、モデリング部202は、まず最適化モデルの候補を複数決定し、評価部203は各候補の評価を行うようにしてもよい。そして、モデリング部202は、その評価の結果に基づいて、1つの最適化モデルを決定してもよい。
 S219では、最適化計算部204が、S218で生成された最適化モデルを用いて最適化計算を行い、最適解を算出する。この最適化計算で用いられる最適化計算アルゴリズムは指定されたか、S215あるいはS217で決定されたものである。また、この最適化計算の問題クラスは指定されたか、S216あるいはS217で決定されたものである。
 S220では、最適化計算部204は、S219で算出した計算結果を出力部24に出力させる。これにより、図7の処理は終了する。なお、S220における計算結果の出力先は任意であり、例えば支援装置2の外部の表示装置等に出力させてもよい。また、S220は省略し、計算結果を記憶部21等に記憶させておいてもよい。また、S219の最適化計算は、例えば、生成した最適化モデルを用いた計算に適した他の情報処理装置等、支援装置2以外の装置に行わせてもよい。
 なお、S215~S217では、モデリング部202は、必ずしも最適化計算アルゴリズムおよび問題クラスを各1つ決定する必要はなく、複数の最適化計算アルゴリズムおよび問題クラスの候補を決定した段階でS218に進んでもよい。この場合、モデリング部202は、S218において、各候補に対応する最適化モデルを生成し、それら最適化モデルについての評価部203の評価結果に基づいて最終的な最適化計算アルゴリズムおよび問題クラスを各1つ決定すればよい。
 また、複数の候補から最終的に適用する1つを絞り込む際に、ユーザの意思を反映させてもよい。例えば、モデリング部202は、最適化計算アルゴリズム、問題クラス、および最適化モデルの少なくとも何れかについて、生成または決定した候補を出力部24に出力させる等してユーザに提示してもよい。そして、モデリング部202は、提示した候補のうち、例えば入力部23を介したユーザ操作により指定されたものを適用することを決定してもよい。この際、モデリング部202は、ユーザの判断の参考になるように、各候補についての評価部203の評価結果についても提示してもよい。
 なお、図7には、モデリング部202が、最適化計算アルゴリズム、問題クラス、および最適化モデルというモデリングの要素の何れについても決定または生成することができる例を示している。しかしながら、モデリング部202は、モデリング部202が、上述した要素のうち少なくとも1つを決定または生成するものであればよい。モデリング部202が決定または生成することができない要素については、ユーザが指定すればよい。
 〔変形例〕
 上述の例示的実施形態では、入力データ211が論理式や等式あるいは不等式である例を示したが、入力データ211は最適化問題として解く対象となる問題を示すものであればよく、この例に限られない。例えば、入力データ211は、最適化問題として解く対象となる問題を数式ではなく文章(テキスト)で表したものであってもよい。この場合、支援装置2に、文章から最適化問題の立式を行う立式手段を設けてもよい。これにより、立式手段が生成した目的関数や制約条件を用いて、上述の例示的実施形態と同様の処理により、最適化計算のモデリングを行うことが可能になる。同様に、図、表(グラフ)等を入力データ211とすることもできるし、問題を示す文章を音声入力してもよい。
 上述の各例示的実施形態で説明した各処理の実行主体は任意であり、上述の例に限られない。つまり、相互に通信可能な複数の装置により、支援装置1および2と同様の機能を有する支援システムを構築することができる。例えば、図1、図3に示す各ブロックを複数の装置に分散して設けることにより、支援装置1および2と同様の機能を有する支援システムを構築することができる。
 〔参考例〕
 支援装置2は、受付部201と検出部205を少なくとも備える構成とすることもできる。つまり、モデリング部202等の構成を省略することもできる。この支援装置2によれば、入力データ211に含まれる複数の式に誤りのあるものが含まれていた場合に、それを自動で検出することができ、モデリングを支援することができる。
 〔ソフトウェアによる実現例〕
 支援装置1および2の一部又は全部の機能は、集積回路(ICチップ)等のハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。
 後者の場合、支援装置1および2は、例えば、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータによって実現される。このようなコンピュータの一例(以下、コンピュータCと記載する)を図8に示す。コンピュータCは、少なくとも1つのプロセッサC1と、少なくとも1つのメモリC2と、を備えている。メモリC2には、コンピュータCを支援装置1または2として動作させるためのプログラムP(支援プログラム)が記録されている。コンピュータCにおいて、プロセッサC1は、プログラムPをメモリC2から読み取って実行することにより、支援装置1または2の各機能が実現される。
 プロセッサC1としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせなどを用いることができる。メモリC2としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又は、これらの組み合わせなどを用いることができる。
 なお、コンピュータCは、プログラムPを実行時に展開したり、各種データを一時的に記憶したりするためのRAM(Random Access Memory)を更に備えていてもよい。また、コンピュータCは、他の装置との間でデータを送受信するための通信インタフェースを更に備えていてもよい。また、コンピュータCは、キーボードやマウス、ディスプレイやプリンタなどの入出力機器を接続するための入出力インタフェースを更に備えていてもよい。
 また、プログラムPは、コンピュータCが読み取り可能な、一時的でない有形の記録媒体Mに記録することができる。このような記録媒体Mとしては、例えば、テープ、ディスク、カード、半導体メモリ、又はプログラマブルな論理回路などを用いることができる。コンピュータCは、このような記録媒体Mを介してプログラムPを取得することができる。また、プログラムPは、伝送媒体を介して伝送することができる。このような伝送媒体としては、例えば、通信ネットワーク、又は放送波などを用いることができる。コンピュータCは、このような伝送媒体を介してプログラムPを取得することもできる。
 〔付記事項1〕
 本発明は、上述した実施形態に限定されるものでなく、請求項に示した範囲で種々の変更が可能である。例えば、上述した実施形態に開示された技術的手段を適宜組み合わせて得られる実施形態についても、本発明の技術的範囲に含まれる。
 〔付記事項2〕
 上述した実施形態の一部又は全部は、以下のようにも記載され得る。ただし、本発明は、以下の記載する態様に限定されるものではない。
 (付記1)
 最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付手段と、前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成するモデリング手段と、を備える数理最適化の支援装置。この構成によれば、数理最適化を容易に行うことが可能になるという効果が得られる。
 (付記2)
 前記モデリング手段は、前記入力データを所定の変換規則に従って変換することにより、適用される問題クラスに適合する形式で定式化した前記最適化モデルを生成する、付記1に記載の支援装置。この構成によれば、適用される問題クラスに適合する形式で定式化した最適化モデルを生成することができる。
 (付記3)
 前記最適化モデルの前記問題に対する適合性を評価する評価手段を備え、前記モデリング手段は、それぞれ異なる複数の前記最適化モデルを生成し、生成した複数の最適化モデルのそれぞれに対する前記評価の結果に基づいて、適用する最適化モデルを決定する、付記1または2に記載の支援装置。この構成によれば、妥当性の高い最適化モデルを決定することができる。
 (付記4)
 前記最適化計算アルゴリズムの前記問題に対する適合性を評価する評価手段を備え、前記モデリング手段は、複数の最適化計算アルゴリズムのそれぞれに対する前記評価の結果に基づいて、適用する最適化計算アルゴリズムを決定する、付記1から3の何れか1つに記載の支援装置。この構成によれば、妥当性の高い最適化計算アルゴリズムを決定することができる。
 (付記5)
 前記入力データに含まれる複数の式を相互に照合すること、および前記入力データに含まれる複数の式と所定の照合データとを照合すること、の少なくとも何れかにより、前記入力データに含まれる式の誤りを検出する検出手段を備える、付記1から3の何れか1つに記載の支援装置。この構成によれば、入力データに含まれる複数の式に誤りのあるものが含まれていた場合に、それを自動で検出することができる。また、上記のように式に誤りがあることを検出し、そして何れの式に誤りがあるかを判定することにより、その式を修正すること(デバッグ)も可能になる。
 (付記6)
 前記モデリング手段は、近似精度の指定を受け付けた場合、前記入力データに含まれる数式を、指定された精度を満たす近似により変換して前記最適化モデルを生成する、付記1から5の何れか1つに記載の支援装置。この構成によれば、ユーザの所望する精度で最適化モデルを生成することができる。
 (付記7)
 少なくとも1つのプロセッサが、最適化問題として解く対象となる問題を示す入力データの入力を受け付けることと、前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成することと、を含む支援方法。この支援方法によれば、付記1と同様の効果を奏する。
 (付記8)
 コンピュータを、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付手段、および、前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成するモデリング手段、として機能させる支援プログラム。この支援プログラムによれば、付記1と同様の効果を奏する。
 〔付記事項3〕
 上述した実施形態の一部又は全部は、更に、以下のように表現することもできる。
 少なくとも1つのプロセッサを備え、前記プロセッサは、最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付処理と、前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成するモデリング処理と、を実行する情報処理装置。
 なお、この情報処理装置は、更にメモリを備えていてもよく、このメモリには、前記受付処理と、前記モデリング処理とを前記プロセッサに実行させるための支援プログラムが記憶されていてもよい。また、この支援プログラムは、コンピュータ読み取り可能な一時的でない有形の記録媒体に記録されていてもよい。
1   支援装置
11  受付部
12  モデリング部
2   支援装置
201 受付部
202 モデリング部
203 評価部
205 検出部
211 入力データ
212 照合データ

 

Claims (8)

  1.  最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付手段と、
     前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成するモデリング手段と、を備える数理最適化の支援装置。
  2.  前記モデリング手段は、前記入力データを所定の変換規則に従って変換することにより、適用される問題クラスに適合する形式で定式化した前記最適化モデルを生成する、請求項1に記載の支援装置。
  3.  前記最適化モデルの前記問題に対する適合性を評価する評価手段を備え、
     前記モデリング手段は、それぞれ異なる複数の前記最適化モデルを生成し、生成した複数の最適化モデルのそれぞれに対する前記評価の結果に基づいて、適用する最適化モデルを決定する、請求項1または2に記載の支援装置。
  4.  前記最適化計算アルゴリズムの前記問題に対する適合性を評価する評価手段を備え、
     前記モデリング手段は、複数の最適化計算アルゴリズムのそれぞれに対する前記評価の結果に基づいて、適用する最適化計算アルゴリズムを決定する、請求項1から3の何れか1項に記載の支援装置。
  5.  前記入力データに含まれる複数の式を相互に照合すること、および前記入力データに含まれる複数の式と所定の照合データとを照合すること、の少なくとも何れかにより、前記入力データに含まれる式の誤りを検出する検出手段を備える、請求項1から3の何れか1項に記載の支援装置。
  6.  前記モデリング手段は、近似精度の指定を受け付けた場合、前記入力データに含まれる数式を、指定された精度を満たす近似により変換して前記最適化モデルを生成する、請求項1から5の何れか1項に記載の支援装置。
  7.  少なくとも1つのプロセッサが、
     最適化問題として解く対象となる問題を示す入力データの入力を受け付けることと、
     前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成することと、を含む支援方法。
  8.  コンピュータを、
     最適化問題として解く対象となる問題を示す入力データの入力を受け付ける受付手段、および、
     前記問題を数理最適化問題とする際の問題クラス、前記問題を数理最適化問題として表した最適化モデル、および最適化問題を解くための最適化計算アルゴリズム、の少なくとも何れかを、前記入力データに応じて決定または生成するモデリング手段、として機能させる支援プログラム。

     
PCT/JP2021/043192 2021-11-25 2021-11-25 支援装置、支援方法、および支援プログラム WO2023095240A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/043192 WO2023095240A1 (ja) 2021-11-25 2021-11-25 支援装置、支援方法、および支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/043192 WO2023095240A1 (ja) 2021-11-25 2021-11-25 支援装置、支援方法、および支援プログラム

Publications (1)

Publication Number Publication Date
WO2023095240A1 true WO2023095240A1 (ja) 2023-06-01

Family

ID=86539225

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/043192 WO2023095240A1 (ja) 2021-11-25 2021-11-25 支援装置、支援方法、および支援プログラム

Country Status (1)

Country Link
WO (1) WO2023095240A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170255872A1 (en) * 2014-08-22 2017-09-07 D-Wave Systems Inc. Systems and methods for problem solving, useful for example in quantum computing
US20200027029A1 (en) * 2018-07-18 2020-01-23 Accenture Global Solutions Limited Quantum formulation independent solver
JP2020166802A (ja) * 2019-03-27 2020-10-08 株式会社東芝 情報処理装置および情報処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170255872A1 (en) * 2014-08-22 2017-09-07 D-Wave Systems Inc. Systems and methods for problem solving, useful for example in quantum computing
US20200027029A1 (en) * 2018-07-18 2020-01-23 Accenture Global Solutions Limited Quantum formulation independent solver
JP2020166802A (ja) * 2019-03-27 2020-10-08 株式会社東芝 情報処理装置および情報処理システム

Similar Documents

Publication Publication Date Title
Zhang et al. Reliability analysis with linguistic data: An evidential network approach
Sehra et al. Multi criteria decision making approach for selecting effort estimation model
Suri et al. Comparative analysis of software effort estimation techniques
US20170364825A1 (en) Adaptive augmented decision engine
CN113889262A (zh) 基于模型的数据预测方法、装置、计算机设备和存储介质
Affleck et al. Non-functional requirements framework: A mathematical programming approach
Morrison Values and uncertainty in simulation models
Bagheri et al. Modeling of epistemic uncertainty in reliability analysis of structures using a robust genetic algorithm
CN109615080B (zh) 无监督模型评估方法、装置、服务器及可读存储介质
Jumas et al. Improving accuracy of conceptual cost estimation using MRA and ANFIS in Indonesian building projects
WO2023095240A1 (ja) 支援装置、支援方法、および支援プログラム
BoloÅŸ et al. Development of a fuzzy logic system to identify the risk of projects financed from structural funds
Negi et al. Machine learning algorithm for assessing reusability in component based software development
Szczuka et al. Function Approximation and Quality Measures in Rough–Granular Systems
Chavoya et al. Applying genetic programming for estimating software development effort of short-scale projects
Soria et al. How efficient deep-learning object detectors are?
Assefa Tsehayae et al. Developing and optimizing context-specific fuzzy inference system-based construction labor productivity models
Hu et al. Bayesian inference via filtering equations for ultrahigh frequency data (II): Model selection
Haddad et al. Integrating statistical correlation with discrete multi-criteria decision-making
Shirazi et al. Deep multilayer perceptron neural network for the prediction of Iranian dam project delay risks
Sakhrawi et al. Software enhancement effort estimation using machine learning regression methods
El‐Sawalhi et al. Forecasting contractor performance using a neural network and genetic algorithm in a pre‐qualification model
Sarmento et al. Sizing an artificial neural network for modelling piping assembly labor productivity under different conditions
Liu et al. Generating adaptation rules of software systems: A method based on genetic algorithm
Rizzo et al. Test and Evaluation for Enhanced Security: A Quantitative Method to Incorporate Expert Knowledge into Test Planning Decisions.

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21965612

Country of ref document: EP

Kind code of ref document: A1