Optimization processing device, optimization processing method, and storage medium
The optimization processing device uses a machine learning model to select the best solver for optimization problems, addressing inefficiencies in existing methods by reducing computational time while maintaining accuracy.
Patent Information
- Application Number
- PCT/JP2023/034927
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-26
- Publication Date
- 2025-04-03
AI Technical Summary
Existing optimization methods require excessive computational time due to the use of multiple optimization solvers, despite achieving high accuracy, making them inefficient for large-scale optimization problems.
An optimization processing device that utilizes a machine learning model to determine a suitable optimization solver based on the characteristics of the optimization problem, allowing for efficient solver selection and reduced calculation time.
The method enables rapid and accurate solution finding for optimization problems by selecting the most appropriate solver through machine learning, thereby reducing overall computational time.
Smart Images

Figure JP2023034927_03042025_PF_FP_ABST
Abstract
Description
Optimization processing device, optimization processing method, and storage medium
[0001] The present disclosure relates to the technical field of an optimization processing device, an optimization processing method, and a storage medium that perform processing related to an optimization problem (mathematical optimization problem).
[0002] Since the computational complexity of an exact solution method for a constrained optimization problem increases exponentially with the problem scale, it is difficult to obtain a highly accurate feasible solution when there are many constraints. Patent Document 1 discloses a technology in which multiple optimization solvers, which are solution-finding algorithms prepared in advance, are applied to the same optimization problem to obtain each solution, the merit of each solution is determined using a predetermined performance measure, and the best solution is output as the best solution.
[0003] Japanese Patent Application Laid-Open No. 2021-002331
[0004] While the method of Patent Document 1 can obtain a highly accurate solution, it has the problem that the total calculation time required to solve the optimization problem is long because the solution to the optimization problem is actually calculated using multiple optimization solvers.
[0005] In view of the above-mentioned problems, one of the objects of the present disclosure is to provide an optimization processing device, an optimization processing method, and a storage medium that suitably execute calculations for optimization problems.
[0006] One aspect of the optimization processing device is an optimization processing device having: an acquisition means for acquiring information about an optimization problem for which a solution is to be found; a target solver determination means for determining a target solver, which is a solver to be applied to the optimization problem, based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a solver, which is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem; and a solution determination means for determining a solution to the optimization problem based on the target solver.
[0007] One aspect of the optimization processing method is an optimization processing method in which a computer acquires information about an optimization problem to be solved, determines a target solver, which is a solver to be applied to the optimization problem, based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a solver, which is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem, and determines a solution to the optimization problem based on the target solver.
[0008] One aspect of the storage medium is a storage medium that stores a program that causes a computer to execute the following process: acquire information about an optimization problem for which a solution is to be found; determine a target solver, which is a solver to be applied to the optimization problem, based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a solver, which is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem; and determine a solution to the optimization problem based on the target solver.
[0009] One example of the effect of the present disclosure is that calculations of optimization problems can be suitably performed using a solver determined by a machine learning model.
[0010] 1 shows the configuration of an optimization system. 2 shows the hardware configuration of an optimization processing device. 3 shows an example of a functional block diagram of a processor related to an optimization problem. 4 shows an example of a functional block diagram showing detailed processing of an optimization processing unit in machine learning processing. (A) shows an example of a functional block of a first model execution unit. (B) shows an overview of processing of a graph conversion unit. 5 shows an example of a functional block diagram showing detailed processing of an optimization processing unit in solution determination and output processing. 6 shows an example of a display screen that an output control unit causes an output device to display. 7 shows an example of a flowchart executed by an optimization processing device. 8 shows a schematic diagram of processing for dividing a problem to be solved into multiple subproblems and determining a target solver to be applied to each subproblem. 9 shows an example of a functional block diagram showing detailed processing of an optimization processing unit in machine learning processing. 10 shows an example of a functional block diagram showing detailed processing of an optimization processing unit in solution determination and output processing. 11 shows an example of a functional block diagram showing detailed processing of an optimization processing unit in solution determination and output processing. 12 shows an outline of execution results when a problem to be solved is solved by one target solver and when a problem to be solved is solved sequentially by multiple target solvers. 13 shows an example of a flowchart executed by an optimization processing device. 14 shows the configuration of an optimization system. 15 shows a diagram showing the relationship between a user, an optimization processing device, and a terminal device. It is an example of a table showing the work shifts of medical workers belonging to a certain organization.It is a functional block diagram of an optimization processing device.It is an example of a flowchart executed by the optimization processing device.
[0011] Hereinafter, embodiments of an optimization processing device, an optimization processing method, and a storage medium will be described with reference to the drawings.
[0012] <First Embodiment> (1) System Configuration Fig. 1 shows the configuration of an optimization system 100. The optimization system 100 mainly comprises an optimization processing device 1, an input device 2, an output device 3, and a storage device 4. The optimization processing device 1 performs data communication with the input device 2, the output device 3, and the storage device 4 via a communication network or by direct wireless or wired communication.
[0013] The optimization processing device 1 determines a solution to an optimization problem (also referred to as a "target problem") designated as a target for which a solution is to be obtained, and outputs the determined solution. Hereinafter, the solution to the target problem that is finally output by the optimization processing device 1 will be referred to as a "final output solution." The optimization processing device 1 determines an optimization solver to be applied to the target problem from among multiple available optimization solvers, and calculates a final output solution to the target problem based on the determined optimization solver. Hereinafter, the optimization solver refers to an algorithm that solves an optimization problem through mathematical optimization, or a program or software that implements the algorithm. When an optimization problem is given, the optimization processing device 1 performs machine learning on a machine learning model that determines an optimization solver suitable for the optimization problem, and determines the optimization solver to be applied to the target problem based on the machine learning model after machine learning is completed. Hereinafter, the machine learning model that is the target of machine learning by the optimization processing device 1 will also be referred to as a "target model." As will be described later, the target model includes a first model that functions as an encoder and a second model that outputs information regarding the optimization solver to be applied.
[0014] Examples of optimization problems handled by the optimization processing device 1 include at least any constrained optimization problem (such as a linear programming problem, a mixed-integer linear programming problem, or a quadratic programming problem). Examples of optimization problems handled by the optimization processing device 1 also include unconstrained optimization problems converted from constrained optimization problems by changing the objective function, etc. Such unconstrained optimization problems include quadratic unconstrained binary optimization (QUBO) problems. By introducing a penalty term corresponding to a constraint into the objective function (including the introduction of a slack variable), it is possible to formulate a constrained optimization problem as a QUBO problem. Examples of applications that can be reduced to the optimization problem handled by the optimization processing device 1 include a problem of determining a combination of sellers and buyers of traded goods (and the transportation schedule for the goods), a problem of determining employee work shifts, etc.
[0015] The input device 2 is an interface that accepts user input, which is external input, and includes, for example, a touch panel, buttons, a keyboard, a voice input device, etc. The input device 2 supplies input information generated based on the user input to the optimization processing device 1.
[0016] The output device 3 outputs information based on the control of the optimization processing device 1. Examples of the output device 3 include display devices such as a display and a projector, and sound output devices such as a speaker. The output device 3 displays information and / or outputs sound based on the output information supplied from the optimization processing device 1.
[0017] The storage device 4 is a memory that stores various information necessary for optimization calculations. For example, the storage device 4 stores model information 41 and training data 42.
[0018] The model information 41 includes parameters of a target model used to determine an optimization solver to be applied to an optimization problem. The target model is a model that has been machine-learned to learn the relationship between information about the optimization problem and the optimization solver to be applied to the optimization problem. The target model is then machine-learned using training data, which will be described later, and the parameters of the target model obtained by machine learning are stored in the model information 41. The target model is, for example, a machine-learning model (including a statistical model; the same applies hereinafter) having any architecture, such as a neural network or a support vector machine. When the target model is configured using a neural network, the model information 41 includes various parameters (including hyperparameters), such as the layer structure, the neuron structure of each layer, the number and filter size of filters in each layer, and the weights of each element of each filter. Note that the model information 41 before learning the target model may also store initial values of the target model (including parameters related to the architecture).
[0019] The training data 42 is data used for machine learning of the target model. The training data 42 has, for example, multiple records, and each record includes input data used to input to the target model and correct answer data regarding the correct answer that the target model should output when the input data is input to the target model. The input data includes problem information representing an optimization problem, specification information indicating conditions specified by a user for solving the optimization problem, and a candidate solver list indicating multiple available optimization solvers (also referred to as "candidate solvers"). The candidate solver list includes, for example, identification information for each candidate solver. Each candidate solver included in the candidate solver list is any optimization solver executable by the optimization processing device 1 and is a candidate optimization solver to be applied to the optimization problem. For example, in the case of a mixed integer linear programming problem, examples of the candidate solvers include CBC, SCIP, Gurobii, MaxSAT (Maximum Satisfaction Ability), pseudo-quantum annealing, and other metaheuristic solvers.
[0020] The storage device 4 also stores, as information to be used after the completion of machine learning of the target model, problem information representing the problem to be solved, specification information indicating conditions specified by the user for solving the problem to be solved, and a candidate solver list that is a list of candidate solvers for the problem to be solved. Note that at least a portion of the problem information, specification information, and candidate solver list may be generated based on input information generated by the input device 2 operated by the user. The storage device 4 also stores a program for operating each candidate solver that can be used to calculate a solution to the optimization problem.
[0021] Here, the problem information and the specification information used for learning the target model and for calculating the final output solution using the learned target model will be specifically described.
[0022] The problem information includes information describing the optimization problem (including parameters related to the problem setting). The problem information includes, for example, decision variable information related to the decision variables of the formulated (modeled) optimization problem, constraint information related to the constraints, and objective function information related to the objective function. Examples of decision variable information include information on binary variables (including the number and variable index), integer variables (including the number, upper and lower limits of the variable domain, and variable index), continuous variables (including the number, upper and lower limits of the variable domain, and variable index), and spin variables (including the number and variable index), which are discrete variables that take on values of ±1. For example, when the constraint of the optimization problem is expressed as "Ax≦b" using a coefficient matrix A, a coefficient vector b, and a decision variable vector x, the constraint information is information indicating the coefficient matrix A and the coefficient vector b. Note that the above-mentioned constraint equation can be converted to Ax=b using a slack variable or the like, and therefore the constraint information may also be information indicating Ax=b and the converted coefficient matrix A and coefficient vector b. The objective function information is, for example, information indicating a coefficient vector c when the objective function is expressed as "f(x) = cx" using the coefficient vector c.
[0023] The specification information is a condition specified by the user when solving an optimization problem. Examples of the specification information include information regarding the upper limit of the solution time (time limit for solution), information regarding the upper limit of the memory used during solution solution, and information regarding the accuracy of the required final output solution. The above-mentioned accuracy information is numerical information for specifying the accuracy of the required solution, such as information indicating a specified value of the primal-dual gap in mathematical programming (e.g., 0.1%). Depending on the optimization problem to be solved, a solution with a certain degree of accuracy may be desired quickly, even if it is not a strict global optimal solution. In such cases, the above-mentioned accuracy information may be specified. The accuracy information may also be information regarding the objective function value to be satisfied (e.g., the value range that the objective function value corresponding to the final output solution must satisfy).
[0024] The storage device 4 may be a storage device such as a hard disk connected to or built into the optimization processing device 1, or may be a storage medium such as a flash memory. The storage device 4 may also be a server device that performs data communication with the optimization processing device 1. In this case, the storage device 4 may be composed of multiple server devices.
[0025] The configuration of the optimization system 100 shown in Figure 1 is an example, and various modifications may be made to this configuration. For example, the input device 2 and the output device 3 may be configured as an integrated device. In this case, the input device 2 and the output device 3 may be configured as a tablet terminal integrated with the optimization processing device 1. The optimization processing device 1 may also be configured as a plurality of devices. In this case, the plurality of devices that make up the optimization processing device 1 exchange information necessary to execute pre-assigned processing between these plurality of devices.
[0026] (2) Hardware Configuration of the Optimization Processing Device Fig. 2 shows the hardware configuration of the optimization processing device 1. The optimization processing device 1 includes, as hardware, a processor 11, a memory 12, and an interface 13. The processor 11, the memory 12, and the interface 13 are connected via a data bus 19.
[0027] The processor 11 executes predetermined processes by executing programs stored in the memory 12. The processor 11 is a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a TPU (Tensor Processing Unit). The processor 11 may be composed of multiple processors. The processor 11 is an example of a computer.
[0028] The memory 12 is composed of various types of volatile and non-volatile memories, such as RAM (Random Access Memory) and ROM (Read Only Memory). The memory 12 also stores programs for the optimization processing device 1 to execute various processes. The memory 12 is also used as a working memory, and temporarily stores information obtained from the storage device 4. The memory 12 may also function as the storage device 4. Similarly, the storage device 4 may also function as the memory 12 of the optimization processing device 1. The programs executed by the optimization processing device 1 may be stored in a storage medium other than the memory 12.
[0029] The interface 13 is an interface for electrically connecting the optimization processing device 1 to other devices. These interfaces may be wireless interfaces such as network adapters for wirelessly transmitting and receiving data to and from other devices, or may be hardware interfaces for connecting to other devices via cables or the like.
[0030] The hardware configuration of the optimization processing device 1 is not limited to the configuration shown in Fig. 2. For example, the optimization processing device 1 may include at least one of an input device 2 or an output device 3. The optimization processing device 1 may also be connected to or built into a sound output device such as a speaker.
[0031] (3) Functional Blocks Figure 3 is an example of a functional block diagram of the processor 11 of the optimization processing device 1. Functionally, the processor 11 has an optimization processing unit 15 and an output control unit 16. Note that in Figure 3, blocks where data is exchanged are connected by solid lines, but the combination of blocks where data is exchanged is not limited to that shown in Figure 3. The same applies to other functional block diagrams described later.
[0032] The optimization processing unit 15 executes a process of machine learning a target model based on the information stored in the storage device 4 (also referred to as "machine learning processing"), and a process of determining and outputting a final output solution to a problem to be solved using the target model learned by the machine learning processing (also referred to as "solution determination and output processing"). In the solution determination and output processing, the optimization processing unit 15 supplies information related to the final output solution to the problem to be solved to the output control unit 16. The detailed processing content of the optimization processing unit 15 will be described later. The optimization processing unit 15 functions as a "model learning means" that machine learns a target model in the machine learning processing.
[0033] After the machine learning process, the output control unit 16 controls the output of information regarding the final output solution determined by the optimization processing unit 15 as the solution to the specified problem to be solved. In this case, the output control unit 16 supplies the output information to the output device 3 via the interface 13, thereby causing the output device 3 to display and / or output the information regarding the final output solution as audio. As another mode of outputting the information regarding the final output solution, the output control unit 16 may store the information regarding the final output solution in the storage device 4 or transmit it to a device other than the device included in the optimization system 100. Furthermore, the output control unit 16 may generate problem information, specified information, and / or a candidate solver list regarding the problem to be solved, based on input information supplied from the input device 2 via the interface 13. In this case, the output control unit 16 stores the problem information, specified information, and candidate solver list generated based on the received input information in the storage device 4.
[0034] 4 is an example of a functional block diagram showing detailed processing of the optimization processing unit 15 in the machine learning processing. Functionally, the optimization processing unit 15 in the machine learning processing has a first model executing unit 51, a second model executing unit 52, and a parameter determining unit 53.
[0035] The first model executing unit 51 inputs the question information "Ix" extracted from the training data 42 into the first model functioning as an encoder, thereby obtaining feature data "Df" from the first model. Here, the feature data Df corresponds to a low-dimensional latent representation of the question information Ix and is represented by a vector or other tensor format. The first model executing unit 51 supplies the feature data Df output by the first model to the second model executing unit 52.
[0036] 5A shows an example of functional blocks of the first model executing unit 51. Functionally, the first model executing unit 51 includes a graph transforming unit 511 and a graph convolution network 512. The graph transforming unit 511 represents an optimization problem identified by problem information Ix using a graph, and inputs data in which the graph is embedded into the graph convolution network 512. The graph convolution network 512 is a machine-learned model that outputs feature data Df when data in which a graph representing the optimization problem identified by problem information Ix is embedded is input. Parameters of the graph convolution network 512 are updated by a parameter determining unit 53, which will be described later, using a backpropagation algorithm or the like.
[0037] FIG. 5B shows an outline of the process performed by the graph conversion unit 511. Here, the coefficient c 1 ~c n , a 11 ~a mn , b 1 ~b m Decision variable x using 1 ~x n The correspondence between the optimization problem to be solved and the graph representation of the optimization problem is shown. 1 ~x n Coefficient c 1 ~c n is the associated decision variable node, and the coefficient b 1 ~b m The corresponding inequality constraint "δ 1 " ~ "δ m " as coefficient b 1 ~b m is the associated constraint node, and the value of the edge connecting the decision variable node and the constraint node is the coefficient a11 ~a mn Details of the embedding method for optimization problems based on graph representation are disclosed in the following document, for example: "Nair, Vinod, et al. "Solving mixed integer programs using neural networks." arXiv preprint arXiv:2012.13349(550)."
[0038] Referring again to FIG. 4, other functional blocks of the optimization processing unit 15 will be described.
[0039] The second model executing unit 52 acquires the evaluation results of the candidate solvers output by the second model by inputting the feature data Df supplied from the first model executing unit 51, the designation information “Iy” extracted from the training data 42, and the candidate solver list “L” into the second model. The second model executing unit 52 formats, for example, the feature data Df, the candidate solver list L, the designation information Iy, and the candidate solver list L into input data that conforms to the input format (predetermined tensor format) of the second model, and inputs the formatted input data into the second model.
[0040] Here, as an example, the second model outputs a score "P" (also referred to as an "aptitude score") indicating the suitability of each candidate solver as an evaluation result of the candidate solvers. The above-mentioned suitability is, for example, an evaluation measure based on the calculation time required to solve an optimization problem when the candidate solver in question is used, and in addition to the calculation time, memory usage during solution and / or solution accuracy may also be added as evaluation measures.
[0041] The second model may be an ensemble learning model (e.g., XGBoost) configured by combining boosting and a decision tree, or may be any other machine learning model such as a deep learning model. The second model executing unit 52 supplies the aptitude score P to the parameter determining unit 53.
[0042] The parameter determination unit 53 updates the parameters of the first model and the second model based on the aptitude score P and the correct answer data "Dc" supplied from the second model execution unit 52, and reflects the updated parameters in the model information 41. In this case, the parameter determination unit 53 determines the parameters of the first model and the second model so as to minimize the error (loss) between the aptitude score P and the correct answer data Dc. The algorithm for determining the above-mentioned parameters so as to minimize the loss may be any learning algorithm used in machine learning, such as gradient descent or backpropagation. The parameter determination unit 53 repeats the above-mentioned parameter update for each record of the training data 42.
[0043] The correct answer data indicates the correct answer of the aptitude score P to be output by the second model. For example, the correct answer of the aptitude score P is a value set based on actual measured values of the calculation time (and memory usage and / or solution accuracy) when the optimization problem indicated by the corresponding problem information is solved by each candidate solver. In this case, the correct answer of the aptitude score P may be determined using a predetermined formula or lookup table from the actual measured values of the calculation time, memory usage, and solution accuracy. The correct answer data may further include information related to the best solution.
[0044] The parameter determination unit 53 thus performs learning of the first model and the second model so that the aptitude score P output by the second model approaches the correct answer data Dc. This enables the optimization processing device 1 to select an appropriate candidate solver based on evaluation criteria such as calculation time, memory usage, and solution accuracy, even when solving a problem to be solved in the solution determination and output process.
[0045] 6 is an example of a functional block diagram showing detailed processing of the optimization processing unit 15 in the solution determination and output processing. Functionally, the optimization processing unit 15 in the solution determination and output processing has a first model execution unit 51, a second model execution unit 52, a target solver selection unit 54, a modeling unit 55, and a solution determination unit 56.
[0046] After the machine learning process, the first model executing unit 51 acquires problem information Ix representing the problem to be solved, which is stored in the storage device 4 or generated based on input information generated by the input device 2. Then, the first model executing unit 51 converts the problem information Ix into feature data Df using a first model based on the model information 41 finally determined by the machine learning process. The process executed by the first model executing unit 51 in the solution determination and output process is the same as the process executed by the first model executing unit 51 in the machine learning process.
[0047] The second model executing unit 52 acquires the designation information Iy and the candidate solver list L for the problem to be solved, which are stored in the storage device 4 or generated based on input information generated by the input device 2. The second model executing unit 52 then outputs an aptitude score P indicating the evaluation result of each candidate solver based on the feature data Df supplied from the first model executing unit 51, the designation information Iy and the candidate solver list L, and a second model based on the model information 41 finally determined by the machine learning process. In this case, the second model executing unit 52 inputs input data based on the feature data Df, the candidate solver list L, and the designation information Iy into the second model, and acquires an aptitude score P for each candidate solver output by the second model. The second model executing unit 52 then supplies the acquired aptitude score P to the target solver selecting unit 54.
[0048] The target solver selection unit 54 selects an optimization solver (also referred to as a "target solver") to be applied to the problem to be solved from the candidate solvers based on the suitability score P output by the second model execution unit 52. For example, the target solver selection unit 54 may select the candidate solver with the highest suitability score P as the target solver, or may probabilistically select the target solver from the candidate solvers based on a probability according to the suitability score P. In this case, the target solver selection unit 54 may normalize each suitability score P using a SOFTMAX function or the like so that the sum of the suitability scores P becomes 1. The target solver selection unit 54 notifies the modeling unit 55 of the candidate solver selected as the target solver.
[0049] Based on the problem information Ix and the target solver notified by the target solver selection unit 54, the modeling unit 55 models the problem to be solved indicated by the problem information Ix so that the data format is applicable to the target solver. In this case, the modeling unit 55 generates a model (also referred to as a "formulated model") in which the problem to be solved is formulated into a format that can be solved by the target solver. The modeling unit 55 may generate the formulated model by converting expressions included in the problem information Ix using predetermined conversion rules. In this case, the formulation know-how may be used as the conversion rules to generate the formulated model based on the know-how. The conversion rules may convert each expression included in the problem information Ix (e.g., a conditional expression expressed as a logical expression or a mathematical expression expressed as an equality or inequality) into one or more expressions suitable for the problem class to which the problem to be solved belongs. In this case, the problem class may be determined according to the target solver or may be specified by user input.
[0050] Here, examples of application of the above-mentioned conversion rules will be described. In a first example, rule information indicating the correspondence between the problem information Ix and the conversion rule to be applied is pre-stored in the storage device 4 or the like, and the modeling unit 55 uses the rule information to determine a conversion rule corresponding to the problem information Ix. Then, the modeling unit 55 converts the problem information Ix using the determined conversion rule to generate a formulated model. In a second example, the modeling unit 55 determines the conversion rule using a trained model constructed by machine learning the relationship between the problem information Ix and the conversion rule to be applied. In this case, trained parameters of the trained model are pre-stored in the storage device 4 or the like. Then, the modeling unit 55 uses this trained model to determine a conversion rule corresponding to the problem information Ix, and converts the problem information Ix using the determined conversion rule to generate a formulated model. In a third example, the modeling unit 55 determines the conversion rule using a reinforcement learning model for determining a conversion rule corresponding to the problem information Ix. Such a reinforcement learning model is constructed by learning, for example, using problem information Ix or feature data extracted from problem information Ix as the "state," the conversion rule to be applied in that state as the "action," and the evaluation result of the suitability of that action as the "reward."
[0051] The method is not limited to the above, and the modeling unit 55 may generate a formulation model by converting the problem information Ix according to the target solver based on any method. The modeling unit 55 supplies the generated formulation model to the solution determination unit 56.
[0052] The solution determination unit 56 calculates a final output solution based on the target solver, the formulated model supplied from the modeling unit 55, and the designation information Iy. In this case, the solution determination unit 56 determines, as the final output solution, the solution output by the target solver by applying the target solver to the formulated model. In this case, the solution determination unit 56 inputs the conditions indicated by the designation information Iy to the target solver, and causes the target solver to obtain a solution so that the conditions indicated by the designation information Iy are satisfied. The solution determination unit 56 supplies the calculated final output solution to the output control unit 16.
[0053] Next, a specific example of an output mode by the output control unit 16 will be described.
[0054] FIG. 7 shows an example of a display screen that the output control unit 16 causes the output device 3 to display. The output control unit 16 generates display information for displaying the above-mentioned display screen based on the processing results generated by the optimization processing unit 15, and transmits the generated display information to the output device 3 via the interface 13, thereby causing the output device 3 to display the display screen. Here, as an example, matching between buyers (Ba, Bb, Bc, ...) and sellers (Sa, Sb, Sc, ...) is specified as the optimization problem (here, a combinatorial optimization problem) to be solved. Here, as an example, problem information indicating parameters of the optimization problem corresponding to "setting condition α," "setting condition β," and "setting condition γ" is stored in the storage device 4. Note that the "setting condition α," "setting condition β," and "setting condition γ" share a common objective function but have different constraints. The optimization processing device 1 then references this problem information, finds final output solutions corresponding to "setting condition α," "setting condition β," and "setting condition γ," and displays the final output solutions.
[0055] The output control unit 16 displays on the display screen a final output solution table 58 that shows the combinations of sellers and buyers specified by the final output solution determined by the optimization processing unit 15. The final output solution table 58 has a record for each final output solution, and each record has a details button 59 for checking detailed information about the corresponding solution and detailed information about the setting conditions. By displaying such a display screen, the output control unit 16 can allow the user to easily recognize information about the determined final output solution and effectively support the user's decision-making.
[0056] Note that the components described in Figures 3, 4, and 6 (the optimization processing unit 15 including the first model execution unit 51, the second model execution unit 52, the parameter determination unit 53, the target solver selection unit 54, the modeling unit 55, and the solution determination unit 56, and the output control unit 16) can be realized, for example, by the processor 11 executing a program. Alternatively, the necessary programs may be recorded on any non-volatile storage medium and installed as needed to realize the components. Note that at least some of these components are not limited to being realized by software programs, but may also be realized by any combination of hardware, firmware, and software. Furthermore, at least some of these components may be realized using a user-programmable integrated circuit, such as an FPGA (Field-Programmable Gate Array) or a microcontroller. In this case, the integrated circuit may be used to realize a program consisting of the above components. Furthermore, at least a portion of each component may be configured by an ASSP (Application Specific Standard Product), an ASIC (Application Specific Integrated Circuit), or a quantum processor (quantum computer control chip). In this way, each component may be realized by various hardware. The same applies to other embodiments described below. Furthermore, each of these components may be realized by the cooperation of multiple computers, for example, using cloud computing technology.
[0057] (4) Processing Flow Figure 8 is an example of a flowchart executed by the optimization processing device 1. For example, when a predetermined start condition is satisfied, the optimization processing device 1 executes the processing of the flowchart in Figure 8. For example, when the optimization processing device 1 receives an input to start the machine learning processing, it determines that the start condition is satisfied and executes the processing of the flowchart.
[0058] First, the optimization processing device 1 performs machine learning of a target model including a first model and a second model using the training data 42 (step S11). In this case, as shown in FIG. 4 , which describes the machine learning process, the optimization processing device 1 repeatedly executes a process of determining parameters of the first model and the second model using each record of the training data 42 including the problem information Ix, the specified information Iy, the candidate solver list L, and the correct answer data Dc, and updating the model information 41. Then, when a predetermined termination condition is satisfied, the optimization processing device 1 determines that the machine learning of the target model is complete and terminates the process of step S11. For example, the optimization processing device 1 determines that the machine learning of the target model is complete when the machine learning of the target model is completed using all records of the training data 42, when the error output by the target model falls within a predetermined range, or when a predetermined processing time has elapsed.
[0059] The process of step S11 may be executed in advance by the optimization processing device 1 or another device. In this case, model information 41 reflecting the process of step S11 is stored in advance in the storage device 4, and the optimization processing device 1 starts the process from step S12.
[0060] Next, the optimization processing device 1 acquires problem information, specification information, and a candidate solver list related to the problem to be solved (step S12). In this case, the optimization processing device 1 acquires problem information, specification information, and a candidate solver list that are stored in advance in the storage device 4 or generated based on input information S1 supplied by the input device 2.
[0061] Next, the optimization processing device 1 acquires feature data from the problem information using the trained first model (step S13).The optimization processing device 1 then determines a target solver based on the feature data, the specification information, the candidate solver list, and the second model (step S14).In this case, the optimization processing device 1 selects a target solver from the candidate solvers based on the aptitude score P output by the second model when input data based on the feature data, the specification information, and the candidate solver list is input to the second model (step S14).
[0062] The optimization processing device 1 then generates a formulation model that models the problem information in a format applicable to the target solver (step S15).The optimization processing device 1 then determines a final output solution for the problem to be solved based on the target solver, the formulation model generated in step S15, and the specified information (step S16).In this case, the optimization processing device 1 determines, for example, the solution that has the best objective function value among the solutions calculated by the target solver within a predetermined time as the final output solution.The optimization processing device 1 then outputs information about the determined final output solution via the output device 3 (step S17).
[0063] (5) Modifications Next, suitable modifications of the above-described embodiment will be described. The following modifications may be applied to the above-described embodiment in any combination.
[0064] (Variation 1) In the machine learning process, the first and second target models are learned by supervised learning, but the manner of machine learning in the machine learning process is not limited to this.
[0065] In a first example, the optimization processing device 1 may perform unsupervised learning as machine learning for the target model. In this case, data related to the optimization problem stored in the training data 42 is input to the target model. The data input to the target model includes problem information (including decision variable information, constraint information, and objective function information), a list of candidate solvers, and specification information (such as an upper limit on the solution time, an upper limit on the memory used during the solution, and information on the required accuracy of the final output solution). The data input to the target model may also include, for example, information on candidate solvers that will produce the best calculation result (e.g., the best aptitude score P) when a solution to the optimization problem indicated by the problem information is calculated using each candidate solver so as to satisfy the conditions indicated by the specification information. The optimization processing device 1 then performs clustering based on the above data to generate clusters for each candidate solver. When the optimization processing device 1 acquires the problem information, specification information, and list of candidate solvers related to the problem to be solved, it determines the cluster to which the acquired data belongs based on the learned target model, and solves the problem to be solved using the candidate solver corresponding to the determined cluster to calculate the final output solution.
[0066] In a second example, the optimization processing device 1 may perform reinforcement learning as machine learning for the target model. In this case, state information in reinforcement learning includes problem information (including decision variable information, constraint information, and objective function information) and specification information (such as an upper limit on the solution time, an upper limit on the memory usage during the solution, and information on the required accuracy of the final output solution). Furthermore, action information is a list of candidate solvers. Furthermore, the reward function is a predetermined function that uses, for example, the solution accuracy, the solution time, and the memory usage as arguments. Note that, since the value of the reward function is a scalar value, a formula (coefficient) or a lookup table for integrating the above-mentioned arguments is stored in advance in the storage device 4 or the like.
[0067] An example of the reinforcement learning algorithm is PPO (Proximal Policy Optimization). The optimization processing device 1 may perform reinforcement learning using, for example, the training data 42 as a benchmark problem before solving the target problem. The supervised learning, unsupervised learning, and reinforcement learning may be freely combined. For example, after supervised learning, the learned target model may be further trained by reinforcement learning. In this case, supervised learning corresponds to a "warm start" of reinforcement learning.
[0068] Furthermore, even when supervised learning is used, the target model may be a machine learning model other than a neural network. Furthermore, while the second model of the target model is a regression model that calculates an aptitude score, the second model may instead be a logistics regression (classification) model that classifies which of the candidate solvers is to be the target solver. In this case, for example, a second model that recursively determines the target solver using gradient boosting or the like may be used.
[0069] (Modification 2) The optimization processing device 1 may divide the problem to be solved into a plurality of subproblems, and determine a target solver to be applied to each subproblem.
[0070] FIG. 9 shows an overview of a process for dividing a problem to be solved into multiple subproblems and determining a target solver to be applied to each subproblem. In the example of FIG. 9 , the optimization processing device 1 divides the problem to be solved into multiple subproblems and iteratively calculates a solution to the original problem to be solved (corresponding to the "master problem" in FIG. 9 ) from the solutions of each subproblem, thereby calculating a final output solution that is an exact solution. In this case, even if a predetermined optimization solver is optimal for solving the problem to be solved without dividing it, when the problem to be solved is divided, the optimal optimization solver to be applied to each subproblem differs for each problem. In FIG. 9 , "Solver A" is selected when the problem to be solved is solved without dividing it, and "Solver A," "Solver B," and "Solver C" are applied when the problem to be solved is divided.
[0071] Taking the above into consideration, the optimization processing device 1 may divide the problem to be solved into a plurality of subproblems, and select a target solver from the candidate solver list using a trained target model (first model and second model) for each subproblem. Note that, as a method for determining a division pattern of an optimization problem, for example, GCG (Generic Column Generation) exists.
[0072] Second Embodiment The optimization processing device 1 in the second embodiment differs from the optimization processing device 1 in the first embodiment in that it sequentially uses multiple optimization solvers for one optimization problem. Hereinafter, the same components as in the first embodiment will be appropriately designated by the same reference numerals, and their description will be omitted. Furthermore, the optimization system 100 and optimization processing device 1 in the second embodiment will be described as having the block configuration in the first embodiment shown in Figures 1 to 3.
[0073] 10 is an example of a functional block diagram showing detailed processing of the optimization processing unit 15 in the machine learning processing. Functionally, the optimization processing unit 15 in the machine learning processing has a first model executing unit 51, a second model executing unit 52, and a parameter determining unit 53.
[0074] The training data 42 includes, for example, multiple records, each of which includes input data used to input to the target model and correct answer data related to the correct answer that the target model should output when the input data is input to the target model. The input data includes problem information Ix representing an optimization problem, specification information Iy indicating conditions specified by the user for solving the optimization problem, and solver result information "Iz" indicating the application results of the target solvers that have already been applied. Examples of the specification information Iy include information on the upper limit of the solution time for the total solution time for the target problems to be solved (also referred to as the "total solution time upper limit"), information on the specified value of the solution time for each target solver (also referred to as the "specified solution time"), information on the upper limit of memory usage during solution, and information on the required accuracy of the final output solution.
[0075] The solver result information Iz is information indicating the calculation results of a target solver that has already been applied to a target optimization problem, and includes, for example, solution improvement history information and solver internal state information.
[0076] The solution improvement history information is information about a solution obtained by a target solver that has been applied to a target optimization problem, and includes, for example, information about the calculation time of the applied target solver (e.g., the solution time of the applied target solver), the best solution obtained by applying the applied target solver, accuracy information such as the objective function value or GAP value corresponding to the best solution, etc. In addition, the solution improvement history information may include information about the applied target solver, information about the formulation model input to the applied target solver, the amount of memory used when the applied target solver is executed, the number of processors (e.g., CPUs) used, etc.
[0077] The solver internal state information is information about the internal state of the target solver applied to the target optimization problem at the end of calculation (i.e., at the time of switching the target solver). For example, if the applied target solver is a branch and bound solver, the solver internal state information is explored node information (e.g., a flag that identifies whether each node in the branching tree has been explored or not). In another example, if the applied target solver is simulated annealing such as pseudo-quantum annealing, the solver internal state information is information indicating the search status of each parallel process.
[0078] The first model executing unit 51 acquires feature data Df from the first model by inputting question information Ix extracted from the training data 42 into the first model functioning as an encoder. The processing executed by the first model executing unit 51 in the second embodiment is the same as the processing executed by the first model executing unit 51 in the first embodiment.
[0079] The second model executing unit 52 inputs the feature data Df supplied from the first model executing unit 51, the candidate solver list L extracted from the training data 42, the specification information Iy, and the solver result information Iz into the second model, thereby obtaining an aptitude score P, which is the evaluation result of the candidate solver output by the second model. The second model executing unit 52 formats, for example, the feature data Df, the candidate solver list L, the candidate solver list L, the specification information Iy, and the solver result information Iz into input data that is consistent with the input format (predetermined tensor format) of the second model, and inputs the formatted input data into the second model.
[0080] The parameter determination unit 53 updates the parameters of the first model and the second model based on the aptitude score P and the correct answer data Dc supplied from the second model execution unit 52, and reflects the updated parameters in the model information 41. The processing executed by the target solver selection unit 54 in the second embodiment is the same as the processing executed by the target solver selection unit 54 in the first embodiment.
[0081] 11 is an example of a functional block diagram showing detailed processing of the optimization processing unit 15 in the solution determination and output processing. Functionally, the optimization processing unit 15 in the solution determination and output processing has a first model execution unit 51, a second model execution unit 52, a target solver selection unit 54, a modeling unit 55, a solution determination unit 56, and a termination determination unit 57.
[0082] After the machine learning process, the first model executing unit 51 acquires problem information Ix representing the problem to be solved, which is stored in the storage device 4 or generated based on input information generated by the input device 2. Then, the first model executing unit 51 converts the problem information Ix into feature data Df using a first model based on the model information 41 finally determined by the machine learning process.
[0083] The second model executing unit 52 calculates an aptitude score P for determining a target solver to be next applied to the problem to be solved. In this case, the second model executing unit 52 acquires designation information Iy and a candidate solver list L for the problem to be solved, which are stored in the storage device 4 or generated based on input information generated by the input device 2. Furthermore, if a target solver has already been applied to the problem to be solved, the second model executing unit 52 acquires solver result information Iz for the applied target solver from the termination determination unit 57. Then, the second model executing unit 52 outputs an aptitude score P indicating the evaluation result of each candidate solver based on the feature data Df supplied from the first model executing unit 51, the designation information Iy and the candidate solver list L, the solver result information Iz, and the second model based on the model information 41 finally determined by the machine learning process. In this case, the second model executing unit 52 inputs input data based on the feature data Df, the candidate solver list L, the specification information Iy, and the solver result information Iz into the second model, and obtains an aptitude score P for each candidate solver output by the second model.The second model executing unit 52 then supplies the obtained aptitude score P to the target solver selecting unit 54.
[0084] Note that when there is no target solver that has already been applied to the problem to be solved, the second model execution unit 52 may acquire predetermined initial data of the solver result information Iz from the storage device 4 or the like and incorporate the initial data into the data to be input to the second model, instead of acquiring the solver result information Iz from the termination determination unit 57. In this way, the second model execution unit 52 uses data in a common format (tensor format) as input data to the second model, regardless of whether there is a target solver that has already been applied to the problem to be solved.
[0085] The target solver selection unit 54 selects a target solver to be applied next to the problem to be solved from the candidate solvers based on the suitability score P output by the second model execution unit 52. For example, the target solver selection unit 54 may select the candidate solver with the highest suitability score P as the target solver, or may probabilistically select a target solver from the candidate solvers based on a probability according to the suitability score P. The target solver selection unit 54 notifies the modeling unit 55 of the candidate solver selected as the target solver to be applied next.
[0086] The modeling unit 55 models the problem to be solved indicated by the problem information Ix based on the problem information Ix and the target solver notified by the target solver selection unit 54, and generates a formulated model in which the problem to be solved is formulated in a format that can be solved by the next target solver. The processing of the modeling unit 55 in the second embodiment is the same as the processing of the modeling unit 55 in the first embodiment.
[0087] The solution determination unit 56 calculates a solution to the target problem to be solved based on the latest target solver (referred to as the "current target solver") determined by the target solver selection unit 54, the formulated model supplied from the modeling unit 55, and the specified information Iy. In this case, if an applied target solver (also referred to as the "old target solver") exists, the solution determination unit 56 calculates a solution to the target problem to be solved using, as an initial value, the best solution (i.e., the solution corresponding to the best objective function value) among the solutions calculated by the old target solver. Note that LNS (Large Neighborhood Search) and the like are examples of techniques for improving a solution using a feasible solution obtained by another means as an initial solution.
[0088] The specification information Iy specifies a specified solution time, which is a specified value for the solution time by the current target solver, an upper limit of memory usage, etc. Therefore, the solution determination unit 56 calculates a solution to the problem to be solved by the current target solver within the specified solution time so as not to exceed the upper limit of memory usage.
[0089] The solution determination unit 56 acquires the best solution obtained at that time when a specified solution-finding time has elapsed since the current target solver started to run. The solution determination unit 56 also generates solver result information Iz based on the execution result of the current target solver, the solver result information Iz including solution improvement history information including information on the best solution and solver internal state information.
[0090] The termination determination unit 57 determines whether a termination condition for solving the problem to be solved has been satisfied based on the solver result information Iz most recently generated by the solution determination unit 56 and the designation information Iy. For example, the termination determination unit 57 determines that the solution to the problem to be solved should be terminated if the total time since the start of the solution to the problem to be solved (i.e., the time from the start of the solution to the problem to be solved to the end of the solution) exceeds the upper limit of the total solution time indicated by the designation information Iy, or if a solution satisfying the required accuracy of the final output solution indicated by the designation information Iy has been obtained. If the termination determination unit 57 determines that the termination condition for solving the problem to be solved has been satisfied, it regards the best solution indicated by the solver result information Iz most recently generated by the solution determination unit 56 as the final output solution and supplies information about the final output solution to the output control unit 16. On the other hand, if the termination determination unit 57 determines that the termination condition for solving the problem to be solved has not been satisfied, it supplies the solver result information Iz generated immediately before by the solution determination unit 56 to the second model execution unit 52. After that, a new current target solver is selected, and an additional solution is executed using the current target solver.
[0091] 12 is a diagram showing a schematic diagram of the execution results when the target problem is solved using one target solver and when the target problem is solved sequentially using multiple target solvers. Fig. 12 shows a dotted line graph showing the transition of the objective function value when the target problem is solved using solver A as the target solver, and a solid line graph showing the transition of the objective function value when the target problem is solved by sequentially switching the target solver from solver A to solver B and solver C. Here, it is assumed that the objective function value is optimal at 0, and that the calculation ends when it reaches a predetermined threshold value close to 0.
[0092] 12, in the example in which the target solver is fixed, there is a phase during which the improvement of the objective function value stagnates, and the calculation time until the objective function value reaches the threshold value is long. On the other hand, in the example in which the target solver is switched sequentially, the optimal target solver is selected in each phase of solution-finding, so that the objective function value decreases in accordance with the calculation time without stagnation, and the calculation time until the objective function value reaches the threshold value is shorter than in the example in which the target solver is fixed.
[0093] In this way, by sequentially switching the target solver, it is possible to suitably reduce the calculation time. Furthermore, in the second embodiment, machine learning of the target model is performed using the specification information, solver result information, etc., and the target solver to be used sequentially is determined using the target model, so that the optimal target solver can be selected depending on the solution-finding phase.
[0094] Fig. 13 is an example of a flowchart executed by the optimization processing device 1. For example, when a predetermined start condition is satisfied, the optimization processing device 1 executes the processing of the flowchart in Fig. 13. For example, when the optimization processing device 1 receives an input to start the machine learning processing, the optimization processing device 1 determines that the start condition is satisfied and executes the processing of the flowchart.
[0095] First, the optimization processing device 1 performs machine learning of a target model including a first model and a second model using the training data 42 (step S21). In this case, the optimization processing device 1 repeatedly executes a process of determining parameters of the first model and the second model and updating the model information 41 using each record of the training data 42 including the problem information Ix, the specified information Iy, the candidate solver list L, the solver result information Iz, and the correct answer data Dc. Then, when a predetermined termination condition is satisfied, the optimization processing device 1 determines that the machine learning of the target model is complete and terminates the process of step S21. Note that the process of step S21 may be executed in advance by the optimization processing device 1 or another device.
[0096] Next, the optimization processing device 1 acquires problem information, specification information, and a list of candidate solvers related to the problem to be solved (step S22). Next, the optimization processing device 1 acquires feature data from the problem information using the trained first model (step S23).
[0097] When determining the target solver to be used first, the optimization processing device 1 determines the current target solver to be executed first based on the feature data, the designation information, the candidate solver list, and the second model (step S24).On the other hand, when determining the target solver to be used second or subsequent times, the optimization processing device 1 determines the current target solver to be executed next based on the feature data, the designation information, the candidate solver list, solver result information based on application of the previous target solver to the problem to be solved, and the second model (step S24).
[0098] The optimization processing device 1 then generates a formulation model that models the problem information in a format applicable to the current target solver (step S25). The optimization processing device 1 then solves the target problem for a specified solution time specified by the specification information, based on the target solver, the formulation model generated in step S15, and the specification information (step S26). The optimization processing device 1 then determines whether a termination condition for terminating the solution of the target problem has been satisfied (step S27). If the optimization processing device 1 determines that the termination condition for terminating the solution of the target problem has been satisfied (step S27; Yes), the optimization processing device 1 outputs information about the determined final output solution via the output device 3 (step S28). On the other hand, if the optimization processing device 1 determines that the termination condition for terminating the solution of the target problem has not been satisfied (step S27; No), the optimization processing device 1 returns to step S24 and performs a process of determining a current target solver.
[0099] Note that (Modification 1) of "(5) Modification" in the first embodiment can also be suitably applied to the second embodiment.
[0100] 14 shows the configuration of an optimization system 100A. The optimization system 100A mainly includes an optimization processing device 1A and a terminal device 5. The optimization processing device 1A and the terminal device 5 communicate with each other via a network 6.
[0101] The optimization processing device 1A is one or more devices that function as a server (including a cloud server) and performs processing related to optimization executed by the optimization processing device 1 in the first or second embodiment. In this case, the optimization processing device 1A receives input information from the terminal device 5 via the network 6, which the optimization processing device 1 receives from the input device 2 in the first or second embodiment. In addition, the optimization processing device 1A transmits output information that the optimization processing device 1 transmitted to the output device 3 in the first or second embodiment to the terminal device 5 via the network 6. In addition, the optimization processing device 1A stores the information that the storage device 4 stores in the first or second embodiment.
[0102] The terminal device 5 is a terminal having input, display, and communication functions, and functions as the input device 2 and output device 3 in the first or second embodiment. The terminal device 5 may be, for example, a personal computer, a tablet terminal, or a PDA (Personal Digital Assistant). The terminal device 5 transmits input information generated based on the received user input to the optimization processing device 1A via the network 6. Furthermore, when the terminal device 5 receives output information from the optimization processing device 1A, it outputs information related to the final output solution based on the output information.
[0103] The optimization processing device 1A of the third embodiment can accept input from a user of a terminal device 5, cause the terminal device 5 to execute output according to the input, and present the information the user needs to the user in an appropriate manner.
[0104] Fig. 15 is a diagram showing the relationship between the user, the optimization processing device 1A, and the terminal device 5. As shown in Fig. 15, the optimization processing device 1A functions as a server that executes the algorithm, and the terminal device 5 functions as a user terminal that accepts input of parameters and the like required for the algorithm. The terminal device 5 exchanges information with the optimization processing device 1A to present the user with a display screen showing the final output solution of the optimization problem set by the user. This facilitates the user's decision-making.
[0105] Here, as an application example in the medical / healthcare field, the optimization of the allocation of medical personnel such as nurses and doctors will be described. Specifically, an application example in which work shifts are determined when the optimization system 100 has the configuration shown in Fig. 15 will be described. Note that this application example may be applied to the configuration of the first embodiment.
[0106] FIG. 16 is an example of a table showing work shifts for medical personnel belonging to a certain organization. Specifically, FIG. 16 shows an example of work shifts for all medical personnel belonging to a certain organization, including medical personnel A to C, during a target period (June in this case). The generation of such work shifts can be formulated as an optimization problem. For example, it may be regarded as a mixed integer programming problem or a large-scale discrete optimization problem.
[0107] Below, we will explain the process of determining work shifts, including input from medical professionals.
[0108] First, each medical worker who is the subject of a work shift uses a terminal device 5 to log in to the AI system (work shift management system) realized by the optimization processing device 1A and input their desired work schedule. The AI system then takes into consideration the desired work schedule and other factors input by each medical worker (nurse or doctor) as constraints and generates an optimal work shift (see FIG. 16 ).
[0109] In this case, the AI system defines each medical worker's work style for each date (e.g., whether or not they need to work) as a decision variable, sets up an optimization problem in which the desired work schedules and other factors, as well as the compatibility and interpersonal relationships between the medical workers, are defined as constraints, and generates work shifts based on a final output solution of the optimization problem. The work shifts generated by the AI system are then notified to each medical worker by being displayed on a terminal device 5 or the like. Each medical worker then checks the generated work shifts, and if there are no problems with the generated work shifts, logs in to the AI system and inputs approval of the work shifts via the terminal device 5. On the other hand, if each medical worker determines that there are problems with the generated work shifts, they log in to the AI system and input a correction request via the terminal device 5. When the AI system detects a correction request from a medical worker, it adds new constraints based on the correction request and corrects the optimization problem. The addition of the constraints may be performed based on user input from the AI system administrator who confirmed the correction request. The AI system then obtains a final output solution to the corrected optimization problem and generates work shifts indicated by the final output solution. Then, when a work shift is generated that is approved by all eligible medical personnel, the AI system determines that work shift as the final work shift.
[0110] 17 is a functional block diagram of an optimization processing device 1X. The optimization processing device 1X mainly includes an acquisition unit 50X, a target solver determination unit 54X, and a solution determination unit 56X. The optimization processing device 1X may be composed of multiple units.
[0111] The acquisition means 50X acquires information related to the optimization problem for which a solution is to be found. Here, examples of "information related to the optimization problem" include problem information, specification information, and candidate solver lists in the first to third embodiments. The acquisition means 50X can be the optimization processing unit 15 in the first to third embodiments.
[0112] The target solver determination means 54X determines a target solver, which is a solver to be applied to the optimization problem, based on a machine learning model that has learned the relationship between information about the optimization problem and a solver, which is a solution algorithm to be applied to the optimization problem, and the acquired information about the optimization problem. The target solver determination means 54X can be the first model execution unit 51, the second model execution unit 52, and the target solver selection unit 54 in the first to third embodiments. Furthermore, the machine learning model can be a target model that has been machine-learned by machine learning processing in the first to third embodiments. Note that the machine learning may be any of supervised learning, unsupervised learning, and reinforcement learning.
[0113] The solution determination means 56X determines a solution to the optimization problem based on the determined solver. The solution determination means 56X can be the solution determination unit 56 in the first to third embodiments.
[0114] 13 is an example of a flowchart executed by the optimization processing device 1X. The acquisition means 50X acquires information about the optimization problem for which a solution is to be found (step S31). The target solver determination means 54X determines a target solver, which is a solver to be applied to the optimization problem, based on a machine learning model that has learned the relationship between the information about the optimization problem and a solver, which is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem (step S32). The solution determination means 56X determines a solution to the optimization problem based on the determined solver (step S33).
[0115] The optimization processing device 1X according to the fourth embodiment can select a solver that is a solution-finding algorithm suited to an optimization problem, and can suitably find a solution to the optimization problem.
[0116] In addition, part or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.
[0117] [Supplementary Note 1] An optimization processing device comprising: acquisition means for acquiring information about an optimization problem to be solved; target solver determination means for determining a target solver to be applied to the optimization problem based on a machine learning model that has learned through machine learning the relationship between the information about the optimization problem and a solver that is a solution algorithm to be applied to the optimization problem and the acquired information about the optimization problem; and solution determination means for determining a solution to the optimization problem based on the target solver. [Supplementary Note 2] The optimization processing device according to Supplementary Note 1, wherein the solution determination means sequentially applies the determined target solvers to the optimization problem, the target solver determination means determines the target solver to be applied next to the optimization problem based on information indicating a result of application of the target solver that has already been applied to the optimization problem, the information about the optimization problem, and the machine learning model, and the machine learning model is a model that has learned through machine learning the relationship between the information about the optimization problem and information indicating a result of application of the target solver applied to the optimization problem, and the target solver to be applied next to the optimization problem. [Supplementary Note 3] The optimization processing device according to Supplementary Note 2, further comprising a determination means for determining whether or not a termination condition for solving the optimization problem is satisfied, wherein the solution determination means applies the next determined target solver to the optimization problem when it is determined that the termination condition is not satisfied after applying the target solver to the optimization problem for a predetermined time. [Supplementary Note 4] The optimization processing device according to Supplementary Note 1, further comprising a modeling means for converting the target solver into a formulated model formulated to be compatible with the target solver, wherein the solution determination means determines the solution based on the target solver and the formulated model. [Supplementary Note 5] The optimization processing device according to Supplementary Note 1, wherein the acquisition means acquires, as information about the optimization problem, problem information representing the optimization problem and a candidate solver list that is a list of solvers that are candidates for the target solver; the machine learning model is a model trained by machine learning to output information about the target solver based on the problem information and the candidate solver list; and the target solver determination means determines the target solver from the candidate solver list based on information output by the machine learning model based on the problem information and the candidate solver list.[Supplementary Note 6] The optimization processing device according to Supplementary Note 5, wherein the machine learning model includes: a first model that converts the problem information into feature data; and a second model that outputs an evaluation result of the candidate based on the feature data and the candidate solver list, and the target solver determination means selects the target solver from the candidate solver list based on the evaluation result. [Supplementary Note 7] The optimization processing device according to Supplementary Note 6, wherein the first model includes a network that converts data into which a graph representing the problem information is embedded into the feature data. [Supplementary Note 8] The optimization processing device according to Supplementary Note 6, wherein the second model outputs, as the evaluation result, a score that represents suitability of each of the candidates as the target solver based on at least calculation time, and the target solver determination means selects the target solver from the candidate solver list based on the score. [Supplementary Note 9] The optimization processing device according to Supplementary Note 1, wherein the information related to the optimization problem includes problem information that represents the optimization problem and specification information that indicates specified conditions related to solving the optimization problem, the machine learning model is a model that has been machine-learned to output information related to the target solver based on the problem information and the specification information, and the target solver determination means determines the target solver based on information output by the machine learning model based on the problem information and the specification information. [Supplementary Note 10] The optimization processing device according to Supplementary Note 1, further comprising model learning means that performs machine learning on the machine learning model, and the target solver determination means determines the target solver based on the machine learning model that has been machine-learned. [Supplementary Note 11] The optimization processing device according to Supplementary Note 10, wherein the model learning means performs the machine learning based on training data that has a plurality of pairs of information related to the optimization problem and correct answer data that should be output by the machine learning model based on the information related to the optimization problem. [Supplementary Note 12] The optimization processing device according to Supplementary Note 10, wherein the model learning means performs reinforcement learning or unsupervised learning as the machine learning. [Supplementary Note 13] The optimization processing device according to Supplementary Note 1, further comprising an output control means for outputting information relating to a solution to the optimization problem.[Supplementary Note 14] An optimization processing method in which a computer acquires information about an optimization problem for which a solution is sought, determines a target solver that is a solver to be applied to the optimization problem based on a machine learning model that has learned through machine learning the relationship between the information about the optimization problem and a solver that is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem, and determines a solution to the optimization problem based on the target solver. [Supplementary Note 15] A storage medium storing a program that causes a computer to execute the processes of acquiring information about the optimization problem for which a solution is sought, determining a target solver that is a solver to be applied to the optimization problem based on a machine learning model that has learned through machine learning the relationship between the information about the optimization problem and a solver that is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem, and determining a target solver that is a solver to be applied to the optimization problem based on the target solver.
[0118] In each of the above-described embodiments, the program can be stored using various types of non-transitory computer-readable media and supplied to a computer processor, etc. Non-transitory computer-readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic storage media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical storage media (e.g., magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / Ws, semiconductor memories (e.g., mask ROMs, programmable ROMs (PROMs), erasable PROMs (EPROMs), flash ROMs, and random access memories (RAMs). The program may also be supplied to a computer by various types of transient computer-readable media. Examples of transient computer-readable media include electric signals, optical signals, and electromagnetic waves. The transient computer-readable medium can supply the program to a computer via a wired communication path such as an electric wire or optical fiber, or via a wireless communication path.
[0119] Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the above embodiments. Various modifications within the scope of the present invention that would be understood by those skilled in the art can be made to the configuration and details of the present invention. In other words, the present invention naturally includes various modifications and alterations that would be possible for those skilled in the art based on the entire disclosure, including the claims, and the technical ideas. Furthermore, the disclosures of the above-cited patent and non-patent documents are incorporated herein by reference.
[0120] It can be used on computers or clouds that perform optimization calculations, and because it does not depend on a specific algorithm, it can be effectively combined with multiple optimization algorithms.
[0121] 1, 1A, 1X Optimization processing device 2 Input device 3 Output device 4 Storage device 5 Terminal device 100, 100A Optimization system
Claims
1. An optimization processing device having: an acquisition means for acquiring information about an optimization problem for which a solution is to be sought; a target solver determination means for determining a target solver, which is a solver to be applied to the optimization problem, based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a solver, which is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem; and a solution determination means for determining a solution to the optimization problem based on the target solver.
2. The optimization processing device described in claim 1, wherein the solution determination means sequentially applies the determined target solvers to the optimization problem, the target solver determination means determines the target solver to be next applied to the optimization problem based on information indicating a result of application of the target solver already applied to the optimization problem, information about the optimization problem, and the machine learning model, and the machine learning model is a model that has been machine-learned to determine the relationship between the information about the optimization problem and information indicating a result of application of the target solver applied to the optimization problem, and the target solver to be next applied to the optimization problem.
3. An optimization processing device as described in claim 2, further comprising a determination means for determining whether or not a termination condition for solving the optimization problem is satisfied, wherein the solution determination means applies the next determined target solver to the optimization problem if it is determined that the termination condition is not satisfied after applying the target solver to the optimization problem for a predetermined period of time.
4. The optimization processing device according to claim 1, further comprising a modeling means for converting the target solver into a formulated model that is formulated to be compatible with the target solver, and the solution determination means determines the solution based on the target solver and the formulated model.
5. The optimization processing device described in claim 1, wherein the acquisition means acquires, as information regarding the optimization problem, problem information representing the optimization problem and a candidate solver list that is a list of solvers that are candidates for the target solver, the machine learning model is a model trained by machine learning to output information regarding the target solver based on the problem information and the candidate solver list, and the target solver determination means selects the target solver from the candidate solver list based on information output by the machine learning model based on the problem information and the candidate solver list.
6. The optimization processing device described in claim 5, wherein the machine learning model includes: a first model that converts the problem information into feature data; and a second model that outputs an evaluation result of the candidate based on the feature data and the candidate solver list; and the target solver determination means selects the target solver from the candidate solver list based on the evaluation result.
7. The optimization processing device according to claim 6, wherein said first model includes a network that converts data in which a graph representing said problem information is embedded into said feature data.
8. The optimization processing device according to claim 6, wherein the second model outputs, as the evaluation result, a score representing suitability for each of the candidates as the target solver based at least on calculation time, and the target solver determination means selects the target solver from the candidate solver list based on the score.
9. The optimization processing device described in claim 1, wherein the information related to the optimization problem includes problem information representing the optimization problem and specification information indicating specified conditions for solving the optimization problem, the machine learning model is a model trained by machine learning to output information related to the target solver based on the problem information and the specification information, and the target solver determination means determines the target solver based on information output by the machine learning model based on the problem information and the specification information.
10. The optimization processing device according to claim 1, further comprising a model learning means for performing machine learning on the machine learning model, wherein the target solver determination means determines the target solver based on the machine learning model on which the machine learning has been performed.
11. The optimization processing device according to claim 10, wherein the model learning means performs the machine learning based on training data having a plurality of pairs of information relating to the optimization problem and correct answer data that the machine learning model should output based on the information relating to the optimization problem.
12. The optimization processing device according to claim 10, wherein the model learning means executes reinforcement learning or unsupervised learning as the machine learning.
13. The optimization processing device according to claim 1, further comprising output control means for outputting information relating to a solution to said optimization problem.
14. An optimization processing method in which a computer acquires information about an optimization problem for which a solution is to be sought, determines a target solver, which is a solver to be applied to the optimization problem, based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a solver, which is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem, and determines a solution to the optimization problem based on the target solver.
15. A storage medium storing a program that causes a computer to execute a process of acquiring information about an optimization problem for which a solution is to be sought, determining a target solver, which is a solver to be applied to the optimization problem, based on a machine learning model that has machine-learned the relationship between the information about the optimization problem and a solver, which is a solution-finding algorithm to be applied to the optimization problem, and the acquired information about the optimization problem, and determining a solution to the optimization problem based on the target solver.
Citation Information
Patent Citations
Assistance device, assistance method, and assistance program
WO2023095240A1
Training device, presentation device, training method, and storage medium
WO2023175948A1