Optimization processing device, optimization processing method, and storage medium
The optimization processing device uses machine learning to divide optimization problems into subproblems, addressing the challenge of high computational complexity by optimizing partitioning, thus enhancing efficiency and accuracy in solving constrained optimization problems.
Patent Information
- Application Number
- PCT/JP2023/034930
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-26
- Publication Date
- 2025-04-03
AI Technical Summary
The exponential increase in calculation complexity for constrained optimization problems makes it difficult to obtain feasible solutions with high accuracy, especially when there are many constraints, and existing methods lack a systematic approach to determine optimal partitioning patterns for subproblems.
An optimization processing device and method that utilize a machine learning model to determine an optimal division pattern for dividing optimization problems into subproblems, using a first model to encode problem information into feature data and a second model to evaluate and select suitable division patterns based on calculation time, memory usage, and solution accuracy.
Enables efficient calculation of optimization problems by determining optimal subproblem divisions, reducing computational time and resources while maintaining solution accuracy.
Smart Images

Figure JP2023034930_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. Regarding this problem, Patent Document 1 discloses a method for dividing a combinatorial optimization problem to be calculated into subproblems, searching for solutions to each subproblem, and generating an overall solution based on the solutions to each subproblem.
[0003] Japanese Patent Application Laid-Open No. 2021-005282
[0004] Since there are generally many possible division patterns for subproblems, it is generally unknown which specific division pattern will result in the optimum calculation time, etc. Therefore, a technique is needed to determine which of the possible division patterns is the optimum.
[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 division pattern determination means for determining a division pattern for dividing the optimization problem into a plurality of subproblems, based on a machine learning model that has learned by machine learning the relationship between information about the optimization problem and a division pattern 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 plurality of subproblems into which the optimization problem is divided using the division pattern.
[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 partitioning pattern for partitioning the optimization problem into a plurality of subproblems based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a partitioning pattern 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 plurality of subproblems into which the optimization problem is divided using the partitioning pattern.
[0008] One aspect of the storage medium is a storage medium that stores a program that causes a computer to execute the following processes: acquire information about an optimization problem for which a solution is to be found; determine a partitioning pattern for partitioning the optimization problem into a plurality of subproblems based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a partitioning pattern 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 plurality of subproblems into which the optimization problem is partitioned using the partitioning pattern.
[0009] One example of the effect of the present disclosure is that calculations of optimization problems can be performed efficiently.
[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) An example of a functional block of a first model execution unit. (B) 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 to be displayed on an output device. 7 shows an example of a flowchart executed by an optimization processing device. 8 shows the configuration of an optimization system. 9 shows the relationship between users, an optimization processing device, and a terminal device. 10 shows an example of a table showing work shifts of medical personnel belonging to an organization. 11 is a functional block diagram of an optimization processing device. 12 shows an example of a flowchart executed by an 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 to be solved") designated as a target for which a solution is to be obtained, and outputs the determined solution. Hereinafter, the solution to the target problem to be solved that is finally output by the optimization processing device 1 will be referred to as a "final output solution." The optimization processing device 1 calculates a final output solution, which is an exact solution, by dividing the target problem to be solved into subproblems and iteratively calculating a solution to the original target problem to be solved from the solutions of each subproblem. At this time, the optimization processing device 1 performs machine learning on a machine learning model that determines a division pattern for dividing the optimization problem into subproblems, and determines a division pattern to be applied to the target problem to be solved based on the machine learning model for which machine learning has been 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 about the division pattern 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 a partitioning pattern for 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 partitioning pattern to be applied to the optimization problem. The target model is then machine-learned using training data (described below), 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, a plurality of 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 that represents an optimization problem and specification information that indicates conditions specified by the user when solving the optimization problem.
[0020] The storage device 4 also stores problem information representing the problem to be solved and specification information indicating conditions specified by the user for solving the problem to be solved, as information to be used after the completion of machine learning of the target model. Note that at least a portion of the problem information and specification information may be generated based on input information generated by the input device 2 operated by the user. The storage device 4 also stores programs for operating each solver (optimization solver) that can be used to calculate a solution to the optimization problem. A solver refers to an algorithm that performs optimization calculations or software that implements the algorithm.
[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 applicable solver information, information on the upper limit of the solution time (the time limit for solving), information on the upper limit of the memory used during the solution, and information on the accuracy of the required final output solution. The solver information is a list of solvers applicable to the subproblem. For example, in the case of a mixed integer linear programming problem, examples of the solvers include CBC, SCIP, Gurobii, pseudo quantum annealing, and other metaheuristic solvers. The accuracy information is numerical information for specifying the accuracy of the required solution, such as 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 accuracy information may be specified. The accuracy information may also be information on the objective function value to be satisfied (e.g., the value range to be satisfied by the objective function value corresponding to the final output solution).
[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 about 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, causing the output device 3 to display and / or output audio of the information about the final output solution. As another mode of outputting the information about the final output solution, the output control unit 16 may store the information about the final output solution in the storage device 4 or transmit it to a device other than the devices included in the optimization system 100. Furthermore, the output control unit 16 may accept user input of problem information and specified information about 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 and specified information based on the accepted user input 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 problem division pattern calculating unit 52, a second model executing unit 53, and a parameter determining unit 54.
[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 acquiring feature data "Df" from the first model. Here, the feature data Df corresponds to a low-dimensional latent expression of the question information Ix and is expressed in a vector or other tensor format. The first model executing unit 51 supplies the feature data Df output by the first model to the question division pattern calculating unit 52 and the second model executing unit 53.
[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 54, 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 a 11 ~a mnFurthermore, when embedding the above graph representation, parameters related to the division pattern to be applied to the optimization problem may be further included in the embedded data. Details of the embedding method for optimization problems based on graph representation are disclosed, for example, in the following document: "Nair, Vinod, et al. "Solving mixed integer programs using neural networks." arXiv preprint arXiv:2012.13349(2020)."
[0038] Referring again to FIG. 4 , other functional blocks of the optimization processing unit 15 will be described. The problem division pattern calculation unit 52 determines N (N is an integer greater than or equal to 2) candidates (also referred to as "division pattern candidates") for the division pattern of the optimization problem indicated by the problem information Ix extracted from the training data 42. Note that methods for determining candidate division patterns for an optimization problem include, for example, GCG (Generic Column Generation). GCG allows for output of multiple blocked division pattern candidates for a mixed integer linear programming problem by rearranging the matrices related to the coefficient matrix A of the constraints. In this case, each generated block is treated as a subproblem. The problem division pattern calculation unit 52 then supplies problem division information "Id" indicating the generation of the N division pattern candidates to the second model execution unit 53. N, representing the number of division pattern candidates, may be a variable that varies depending on the optimization problem being addressed.
[0039] Here, the problem division information Id is information indicating each of the generated division pattern candidates, and includes, for each division pattern candidate, identification information for the division pattern candidate and detailed information on the division using the division pattern candidate (for example, information on the correspondence between the subproblems after problem division and each constraint). In the case where the constraints of the optimization problem are C1 to C6 and the division pattern candidate divides the problem into two subproblems (PP1, PP2), the detailed division information is written, for example, as follows: {'C1': PP1, 'C2': PP1, 'C3': PP2, 'C4': PP2, 'C5': PP2, 'C6': PP1} In this way, the detailed division information indicates the division results using the division pattern candidates.
[0040] The second model executing unit 53 acquires evaluation results of the division pattern candidates output by the second model by inputting to the second model the feature data Df supplied from the first model executing unit 51, the problem division information Id supplied from the problem division pattern calculation unit 52, and the designation information "Iy" extracted from the training data 42. The second model executing unit 53 formats, for example, the feature data Df, the problem division information Id, and the designation information Iy so that they become input data that conforms to the input format (predetermined tensor format) of the second model, and inputs the formatted input data to the second model.
[0041] Here, as an example, the second model outputs a score "P" (also referred to as a "splitting suitability score") indicating the suitability of each of the N splitting pattern candidates as an evaluation result of the splitting pattern candidates. The above-mentioned suitability is, for example, suitability whose evaluation measure is the calculation time required to solve an optimization problem when the target splitting pattern candidate is applied to the optimization problem, and in addition to the calculation time, the amount of memory used during solution solving and / or the solution accuracy may also be added as evaluation measures.
[0042] 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 53 supplies the splitting suitability score P to the parameter determining unit 54.
[0043] The parameter determination unit 54 updates the parameters of the first model and the second model based on the division aptitude score P and the correct answer data "Dc" supplied from the second model execution unit 53, and reflects the updated parameters in the model information 41. In this case, the parameter determination unit 54 determines the parameters of the first model and the second model so as to minimize the error (loss) between the division 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 54 repeats the above-mentioned parameter update for each record of the training data 42.
[0044] The correct answer data indicates the correct answer of the division aptitude score P to be output by the second model. For example, the correct answer of the division aptitude score P is a value set based on the actual measured values of the calculation time (and memory usage and / or solution accuracy) required to solve the problem when each of the N division pattern candidates generated from the optimization problem indicated by the corresponding problem information is used. In this case, the correct score of the division 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.
[0045] The parameter determination unit 54 performs learning of the first model and the second model so that the division suitability score P output by the second model approaches the correct answer data Dc in this way. This enables the optimization processing device 1 to determine an appropriate division pattern based on 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.
[0046] 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 problem division pattern calculation unit 52, a second model execution unit 53, an application division pattern determination unit 55, and a solution determination unit 56.
[0047] After the machine learning process, the first model executing unit 51 acquires problem information Ix representing the problem to be solved that is stored in the storage device 4 or generated based on input information generated by the input device 2, and converts the problem information Ix into feature data Df using a first model based on 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.
[0048] The problem division pattern calculation unit 52 acquires problem information Ix representing a problem to be solved, and generates multiple division pattern candidates for the problem to be solved indicated by the acquired problem information Ix. The processing performed by the problem division pattern calculation unit 52 in the solution determination and output processing is the same as the processing performed by the problem division pattern calculation unit 52 in the machine learning processing.
[0049] The second model executing unit 53 acquires specification information Iy related to 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. The second model executing unit 53 then outputs a division suitability score P indicating the evaluation result of each division pattern candidate based on the feature data Df supplied from the first model executing unit 51, the problem division information Id supplied from the problem division pattern calculation unit 52, the above-mentioned specification information Iy, 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 53 inputs input data based on the feature data Df, the problem division information Id, and the specification information Iy to the second model, and acquires a division suitability score P for each division pattern candidate output by the second model. The second model executing unit 53 then supplies the acquired division suitability score P to the applied division pattern determination unit 55.
[0050] The applied split pattern determination unit 55 selects a split pattern to be applied to the problem to be solved (also referred to as an "applied split pattern") from the split pattern candidates, based on the split suitability score P output by the second model executing unit 53. For example, the applied split pattern determination unit 55 may select the split pattern candidate with the highest split suitability score P as the applied split pattern, or may probabilistically select an applied split pattern from the split pattern candidates based on a probability according to the split suitability score P. In this case, the applied split pattern determination unit 55 may normalize each split suitability score P using a SOFTMAX function or the like so that the sum of the split suitability scores P becomes 1. The applied split pattern determination unit 55 supplies problem split information of the split pattern candidate selected as the applied split pattern to the solution determination unit 56.
[0051] The solution determination unit 56 calculates a final output solution based on the problem division information of the applied division pattern received from the applied division pattern determination unit 55, the problem information Ix, and the designation information Iy. In this case, the solution determination unit 56 divides the problem to be solved indicated by the problem information Ix into multiple subproblems using the applied division pattern and obtains solutions for each subproblem. In this case, the solution determination unit 56 identifies information such as available solvers by referring to the designation information Iy and obtains solutions for each subproblem that satisfy the conditions indicated by the designation information Iy. The solution determination unit 56 then calculates a final output solution for the problem to be solved based on the obtained solutions for each subproblem. Examples of solution methods for dividing an optimization problem into subproblems and solving them include Dantzig-Wolfe reformulation and Benders decomposition. Patent Document 1 also discloses a method for generating a global solution by updating local solutions based on partial solutions of subproblems. The solution determination unit 56 supplies the calculated final output solution to the output control unit 16.
[0052] Next, a specific example of an output mode by the output control unit 16 will be described.
[0053] 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.
[0054] 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.
[0055] 3, 4, and 6 (the optimization processing unit 15 including the first model execution unit 51, the problem division pattern calculation unit 52, the second model execution unit 53, the parameter determination unit 54, the applied division pattern determination 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 each component. At least some of these components may be realized not only by software programs but also by a combination of hardware, firmware, and software. 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, a program consisting of the above components may be realized using this integrated circuit. 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.
[0056] (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.
[0057] 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 question information Ix, the specified information Iy, and the correct answer data Dc, and updates 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.
[0058] 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.
[0059] Next, the optimization processing device 1 acquires problem information and specification information related to the problem to be solved (step S12). In this case, the optimization processing device 1 acquires problem information and specification information that are stored in advance in the storage device 4 or that are generated based on input information S1 supplied by the input device 2.
[0060] Next, the optimization processing device 1 acquires feature data from the problem information using the trained first model, and generates problem division information related to division pattern candidates from the problem information (step S13).The optimization processing device 1 then determines an applicable division pattern based on the feature data, specification information, problem division information, and the second model (step S14).In this case, the optimization processing device 1 selects an applicable division pattern from the division pattern candidates based on a division suitability score P output by the second model when input data based on the feature data, specification information, and problem division information is input to the second model (step S14).
[0061] The optimization processing device 1 then generates a plurality of subproblems from the problem to be solved indicated by the problem information based on the application division pattern determined in step S14, and performs optimization calculations to determine a final output solution for the problem to be solved (step S15).The optimization processing device 1 then outputs information about the determined final output solution via the output device 3 (step S16).
[0062] (5) Modification In the machine learning process, the first and second target models are learned by supervised learning. However, the machine learning process is not limited to this.
[0063] 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), problem division information generated from the problem information by the problem division pattern calculation unit 52, and specification information (such as applicable solver information, upper limit of solution time, upper limit of memory usage during solution, and required accuracy information for the final output solution). The target model is then machine-learned to cluster the decision variables and constraints in the input optimization problem based on the above data. In this case, the decision variables and constraints belonging to one cluster are considered to be one subproblem. When the optimization processing device 1 acquires problem information and specification information related to the problem to be solved, the optimization processing device 1 acquires multiple subproblems into which the problem to be solved is divided based on the acquired problem information, problem division information based on the problem information, and data including the specification information, and the target model, and solves each subproblem using an optimization solution method to calculate a final output solution.
[0064] In a second example, the optimization processing device 1 may perform reinforcement learning as machine learning for the target model. In this case, the state information in reinforcement learning includes problem information (including decision variable information, constraint information, and objective function information), problem division information generated by the problem division pattern calculation unit 52 from the problem information, and specification information (such as applicable solver information, upper limit of solution time, upper limit of memory usage during solution, and required accuracy information for the final output solution). Furthermore, the action information is detailed information on the division pattern to be applied to the problem to be solved (e.g., information on the correspondence between subproblems and each constraint after problem division). For example, if the constraints of an optimization problem are C1 to C6 and the candidate division pattern is to divide the problem into two subproblems (PP1, PP2), the action information is expressed as follows: {'C1': PP1, 'C2': PP1, 'C3': PP2, 'C4': PP2, 'C5': PP2, 'C6': PP1}
[0065] The reward function is a predetermined function that takes, for example, solution accuracy, solution time, and memory usage as arguments. The optimization processing device 1 then learns an application division pattern based on the above-mentioned state information, behavior information, and reward function, and calculates a final output solution by solving each subproblem generated by applying the application division pattern to the problem to be solved using an optimization solution method.
[0066] 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.
[0067] 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 a division suitability score, the second model may instead be a logistics regression (classification) model that classifies which of possible division pattern candidates is to be used as the applicable division pattern. In this case, for example, a second model that recursively determines the applicable division pattern using gradient boosting or the like may be used.
[0068] 9 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 perform data communication via a network 6.
[0069] 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 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 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 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 embodiment.
[0070] 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 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.
[0071] The optimization processing device 1A of the second 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.
[0072] Figure 10 shows the relationship between the user, the optimization processing device 1A, and the terminal device 5. As shown in Figure 10, 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 other information 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 to the optimization problem set by the user. This facilitates the user's decision-making.
[0073] 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. 10 will be described. Note that this application example may be applied to the configuration of the first embodiment.
[0074] FIG. 11 is an example of a table showing work shifts for medical personnel belonging to a certain organization. Specifically, FIG. 11 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 example). 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.
[0075] Below, we will explain the process of determining work shifts, including input from medical professionals.
[0076] 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 considers 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. 11 ).
[0077] 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.
[0078] 12 is a functional block diagram of an optimization processing device 1X. The optimization processing device 1X mainly includes an acquisition unit 50X, a division pattern determination unit 55X, and a solution determination unit 56X. The optimization processing device 1X may be composed of multiple units.
[0079] 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 the problem information, specification information, and problem division information in the first or second embodiment. The acquisition means 50X can be the first model execution unit 51, the problem division pattern calculation unit 52, and the second model execution unit 53 in the first or second embodiment.
[0080] The division pattern determination means 55X determines a division pattern for dividing the optimization problem into a plurality of subproblems based on a machine learning model that has learned the relationship between information about the optimization problem and the division pattern to be applied to the optimization problem through machine learning, and the acquired information about the optimization problem. The division pattern determination means 55X may be the first model execution unit 51, the second model execution unit 53, and the applied division pattern determination unit 55 in the first or second embodiment. The machine learning model may be a target model that has been machine learned by the machine learning process in the first or second embodiment. Note that the machine learning may be any of supervised learning, unsupervised learning, and reinforcement learning.
[0081] The solution determination means 56X determines a solution to the optimization problem based on a plurality of subproblems into which the optimization problem is divided according to the division pattern. The solution determination means 56X can be the solution determination unit 56 in the first or second embodiment.
[0082] 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 S21). The division pattern determination means 55X determines a division pattern for dividing the optimization problem into multiple subproblems based on the acquired information about the optimization problem and a machine learning model that has learned the relationship between the information about the optimization problem and the division pattern to be applied to the optimization problem through machine learning (step S22). The solution determination means 56X determines a solution to the optimization problem based on the multiple subproblems into which the optimization problem is divided using the division pattern (step S23).
[0083] The optimization processing device 1X according to the third embodiment can suitably obtain a solution to an optimization problem by dividing the optimization problem using a machine learning model and solving the divided subproblems.
[0084] In addition, part or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.
[0085] [Supplementary Note 1] An optimization processing device comprising: acquisition means for acquiring information about an optimization problem for which a solution is to be sought; division pattern determination means for determining a division pattern for dividing the optimization problem into a plurality of subproblems, based on a machine learning model that has learned by machine learning the relationship between information about the optimization problem and a division pattern 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 plurality of subproblems into which the optimization problem is divided by the division pattern. [Supplementary Note 2] 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 problem division information indicating a plurality of candidates for the division pattern, the machine learning model is a model that has been trained by machine learning to output information about the division pattern based on the problem information and the problem division information, and the division pattern determination means selects the division pattern from the candidates, based on information output by the machine learning model based on the problem information and the problem division information. [Supplementary Note 3] The optimization processing device according to Supplementary Note 2, wherein the machine learning model includes: a first model that converts problem information into feature data; and a second model that outputs an evaluation result of the candidates based on the feature data and the problem division information, and the division pattern determination means selects the division pattern from the candidates based on the evaluation result. [Supplementary Note 4] The optimization processing device according to Supplementary Note 3, 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 5] The optimization processing device according to Supplementary Note 3, wherein the second model outputs, as the evaluation result, a score that represents suitability of each of the candidates as the division pattern based on at least calculation time, and the division pattern determination means selects the division pattern from the candidates based on the score. [Supplementary Note 6] The optimization processing device according to Supplementary Note 2, wherein the acquisition means generates the problem division information based on the problem information.[Supplementary Note 7] 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 trained by machine learning to output information related to the division pattern based on the problem information and the specification information, and the division pattern determination means determines the division pattern based on information output by the machine learning model based on the problem information and the specification information. [Supplementary Note 8] 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 division pattern determination means determines the division pattern based on the machine learning model that has been trained by the machine learning. [Supplementary Note 9] The optimization processing device according to Supplementary Note 8, 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 10] The optimization processing device according to Supplementary Note 8, wherein the model learning means performs reinforcement learning or unsupervised learning as the machine learning. [Supplementary Note 11] The optimization processing device according to Supplementary Note 1, further comprising output control means for outputting information relating to a solution of the optimization problem. [Supplementary Note 12] An optimization processing method, in which a computer acquires information relating to the optimization problem to be solved, determines a partitioning pattern for partitioning the optimization problem into a plurality of subproblems based on a machine learning model that has learned by machine learning the relationship between information relating to the optimization problem and a partitioning pattern to be applied to the optimization problem, and the acquired information relating to the optimization problem, and determines a solution to the optimization problem based on the plurality of subproblems into which the optimization problem is divided using the partitioning pattern.[Supplementary Note 13] A storage medium storing a program that causes a computer to execute the following processes: acquire information about an optimization problem for which a solution is to be sought; determine a partitioning pattern for partitioning the optimization problem into a plurality of subproblems based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a partitioning pattern 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 plurality of subproblems into which the optimization problem is partitioned using the partitioning pattern.
[0086] 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.
[0087] 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.
[0088] 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.
[0089] 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 partitioning pattern determination means for determining a partitioning pattern for partitioning the optimization problem into a plurality of subproblems based on a machine learning model that has learned by machine learning the relationship between information about the optimization problem and a partitioning pattern 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 plurality of subproblems into which the optimization problem is divided according to the partitioning pattern.
2. 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 problem division information indicating multiple candidates for the division pattern, the machine learning model is a model trained by machine learning to output information regarding the division pattern based on the problem information and the problem division information, and the division pattern determination means selects the division pattern from the candidates based on information output by the machine learning model based on the problem information and the problem division information.
3. The optimization processing device described in claim 2, 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 candidates based on the feature data and the problem division information; and the division pattern determination means selects the division pattern from the candidates based on the evaluation result.
4. The optimization processing device according to claim 3, wherein said first model includes a network that converts data in which a graph representing said problem information is embedded into said feature data.
5. The optimization processing device according to claim 3, wherein the second model outputs, as the evaluation result, a score representing suitability based at least on calculation time for each of the candidates as the division pattern, and the division pattern determination means selects the division pattern from the candidates based on the score.
6. The optimization processing device according to claim 2, wherein said acquisition means generates said problem division information based on said problem information.
7. The optimization processing device described in claim 1, wherein the information relating 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 relating to the splitting pattern based on the problem information and the specification information, and the splitting pattern determination means determines the splitting pattern based on information output by the machine learning model based on the problem information and the specification information.
8. The optimization processing device according to claim 1, further comprising a model learning means for performing machine learning of the machine learning model, wherein the division pattern determination means determines the division pattern based on the machine learning model on which the machine learning has been performed.
9. The optimization processing device according to claim 8, 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.
10. The optimization processing device according to claim 8, wherein the model learning means executes reinforcement learning or unsupervised learning as the machine learning.
11. The optimization processing device according to claim 1, further comprising output control means for outputting information relating to a solution to said optimization problem.
12. An optimization processing method in which a computer acquires information about an optimization problem to be solved, determines a partitioning pattern for partitioning the optimization problem into a plurality of sub-problems based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a partitioning pattern 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 plurality of sub-problems into which the optimization problem is divided using the partitioning pattern.
13. 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 partitioning pattern for partitioning the optimization problem into multiple sub-problems based on a machine learning model that has learned by machine learning the relationship between the information about the optimization problem and a partitioning pattern 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 multiple sub-problems into which the optimization problem is divided using the partitioning pattern.
Citation Information
Patent Citations
Optimization device, optimization device control method, and optimization device control program
JP7219402B2
Machine learning-based branching and diving for solving combinatorial optimization computational problem
US20230252335A1
Optimization device, optimization method and optimization program
WO2023100595A1