Programs, systems, and methods
By dividing large-scale optimization problems into sub-problems and using specialized solvers, the method accelerates and improves the accuracy of solving complex optimization tasks.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-06
- Publication Date
- 2026-03-18
AI Technical Summary
Conventional methods for solving large-scale or long-term mathematical optimization problems are time-consuming and lack accuracy due to exhaustive searches, which hinder efficient computation.
A program and system that divide mathematical optimization problems into smaller sub-problems using user-specified criteria, employing multiple solvers to optimize each sub-problem independently, and combine results to achieve a comprehensive solution.
This approach allows for faster and more precise resolution of large-scale optimization problems by reducing computational load and enhancing accuracy.
Smart Images

Figure 2026049358000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a program, a system, and a method. [Background technology]
[0002] Traditionally, solving mathematical optimization problems using computers has been widely practiced. The scope of mathematical optimization problems is broad, ranging from small-scale employee shift scheduling problems to large-scale or long-term power generation planning problems. Patent Document 1 describes solving mathematical optimization problems with the number of broadcasts per unit period, such as one week or one month, as a constraint. [Prior art documents] [Patent Documents]
[0003] [Patent Document 1] Patent No. 7334796 [Patent Document 2] Patent No. 7034528 [Overview of the project] [Problems that the invention aims to solve]
[0004] Generally, mathematical optimization problems are solved by computers (solvers) that perform at least partially exhaustive searches. However, when the problem is large-scale or spans a long period, computation can be time-consuming, and accuracy may suffer. "Large-scale" means, for example, a large number of variables when the mathematical optimization problem is formalized. Therefore, conventional techniques have sometimes been unable to solve mathematical optimization problems quickly and with high accuracy.
[0005] This invention was made in consideration of these circumstances, and one of its objectives is to provide a program, system, and method that can solve mathematical optimization problems more quickly and with higher accuracy. [Means for solving the problem]
[0006] One aspect of the present invention is a program that causes a processor to perform the following: a first process of acquiring first information necessary for formulating a mathematical optimization problem and second information that serves as a criterion for dividing the mathematical optimization problem, as specified by the user; a second process of acquiring equations for divided mathematical optimization problems, obtained by dividing the mathematical optimization problem formulated based on the first information based on the second information; and a third process of operating each of a plurality of solvers using each of the equations for divided mathematical optimization problems and performing optimization calculations for each of the equations for divided mathematical optimization problems.
[0007] Another aspect of the present invention is a first processing unit that acquires first information necessary for formulating a mathematical optimization problem and second information that serves as a criterion for dividing the mathematical optimization problem, as specified by the user, and a second processing unit that acquires the formula of the divided mathematical optimization problem obtained by dividing the mathematical optimization problem formulated based on the first information based on the second information. The system comprises a third processing unit that operates multiple solvers using each of the equations of the mathematical optimization problem after the division, and performs optimization calculations for each of the equations of the mathematical optimization problem after the division.
[0008] Another aspect of the present invention is a method executed by a processor, comprising: a first processing unit that acquires first information necessary for formulating a mathematical optimization problem and second information that serves as a criterion for dividing the mathematical optimization problem, as specified by a user; a second processing unit that acquires equations for divided mathematical optimization problems obtained by dividing the mathematical optimization problem formulated based on the first information based on the second information; and a third processing unit that operates each of a plurality of solvers using each of the equations for divided mathematical optimization problems and performs optimization calculations for each of the equations for divided mathematical optimization problems. [Effects of the Invention]
[0009] According to one aspect of the present invention, it is possible to provide a program, a system, and a method that can solve mathematical optimization problems more quickly and with higher precision.
Brief Description of the Drawings
[0010] [Figure 1] It is a diagram showing an example of the configuration of the system according to the present invention and the surrounding environment. [Figure 2] It is a diagram conceptually showing the roles of each part of the processing unit. [Figure 3] It is a diagram conceptually showing the division processing performed by the second processing unit. [Figure 4] It is a diagram showing an example of the division processing. [Figure 5] It is a flowchart showing an example of the arrangement procedure of the ingredients [Figure 6] It is a flowchart showing an example of the flow of processing executed by the system.
Embodiments for Carrying Out the Invention
[0011] Hereinafter, referring to the drawings, the program, system, and method of the present invention will be described. The present invention is preferably suitable for assisting a computer in solving particularly large-scale mathematical optimization problems. In the following description, the system of the present invention is assumed to provide cloud services via a network, but the system of the present invention may be an on-premises device installed in a client's facility.
[0012] [Configuration] FIG. 1 is a diagram showing an example of the configuration of system 100 according to the present invention and its surrounding environment. System 100 communicates with terminal device 10 and LLM (Large Language Model) server 200 via a network. Although there may be an embodiment that does not utilize the large language model (hereinafter simply referred to as LLM) provided by LLM server 200, the presence of LLM server 200 is shown here. Terminal device 10 is a terminal device of a user who intends to use the services provided by system 100, and is a computer device such as a personal computer, a tablet terminal, or a smartphone. In terminal device 10, a program such as a browser for receiving the services of system 100 or a dedicated application program operates. The network includes the Internet, a cellular network, a dedicated line, a WAN (Wide Area Network), a LAN (Local Area Network), and the like.
[0013] System 100 has, for example, an IF (interface) unit 110, a processing unit 120, a plurality of solvers 130, and a storage unit 150. Although a plurality of solvers 130 are included in system 100 in the figure, at least a part of the plurality of solvers 130 may be realized by an external device of system 100 that can communicate with system 100. The processing unit 120 includes, for example, a first processing unit 121, a second processing unit 122, a third processing unit 123, and a fourth processing unit 124. The processing unit 120 may include a plurality of third processing units 123. Components other than the storage unit 150 are realized, for example, by a processor such as a CPU (Central Processing Unit) executing a program (software, instruction). Some or all of these components are LSI (Large Scale Integration), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable The program may be implemented by hardware (including circuitry) such as a Gate Array, GPU (Graphics Processing Unit), or SOC (System On Chip), or by the collaboration of software and hardware. The program may be stored in advance on a storage device such as an HDD (Hard Disk Drive) or flash memory (a storage device equipped with a non-transient storage medium), or it may be stored on a removable storage medium such as a DVD or CD-ROM (a non-transient storage medium) and installed when the storage medium is inserted into a drive device.
[0014] The storage unit 150 can be RAM (Random Access Memory), HDD, flash memory, etc. The storage unit 150 stores data and information such as a formula database 151, first information 152, second information 153, pre-partition formula information 154, and post-partition formula information 155. The storage unit 150 does not necessarily have to be attached to the system 100, and may be attached to an external server. The external server is not limited to a cloud server, but may be operated by a business that uses the system 100.
[0015] The IF unit 110, for example, has the functionality of a web server and provides a web page to the terminal device 10 that provides the functionality of the system 100. The IF unit 110 receives a request from the user's terminal device 10 to solve a mathematical optimization problem. The system 100 may accept a request that includes the formulation of the mathematical optimization problem, or the formulated formula may be provided to the system 100 by the user. The request may include a request statement entered by the user as text or voice input, as well as operation information indicating that the user has performed an operation on an operation button associated with a partial request statement selection. When the user operates the terminal device 10 and enters a request such as a request statement into a designated input field on the web page, the result derived by the system 100 after the processing described below is displayed on the web page.
[0016] Figure 2 is a conceptual diagram illustrating the roles of each part of the processing unit 120. The functions of each part will be explained below with reference to Figures 1 and 2. The first processing unit 121, via the IF unit 110, acquires first information 152, which is necessary for formulating the mathematical optimization problem, and second information 153, which serves as a criterion for dividing the mathematical optimization problem, and stores them in the storage unit 150. As mentioned above, the first information 152 may be the formula of the formulated mathematical optimization problem itself, or it may be an expression of the event to be optimized in natural language or a programming language. The first processing unit 121 may also acquire information via the IF unit 110 that specifies the solver 130 for solving the divided mathematical optimization problem, which is specified by the user. In the example of [Partition Example 2] described later, for example, the first piece of information 152 is equations (1) and (2), or their representation in natural language, and the second piece of information 153 is "perform optimization calculations every 10 rows" or a sign indicating this, such as "(1≦j≦10,11≦j≦20,21≦j≦30)".
[0017] The second processing unit 122 obtains the formulas for the mathematical optimization problems after they have been divided based on the second information 153, which is the formula for the mathematical optimization problem formulated based on the first information 152. If the first information 152 is the formula for the mathematical optimization problem itself or a programming language that describes the formula, the second processing unit 122 obtains a formula object corresponding to the formula from the formula database and stores it in the storage unit 150 as pre-divided formula information 154, which is an abstracted formula. On the other hand, if the first information 152 is not the formula for the mathematical optimization problem itself or a programming language that describes the formula (i.e., it is expressed in a form close to natural language), the second processing unit 122 may abstract the first information 152 using a thesaurus or distributed representation vector, and obtain a formula corresponding to the abstracted information from the formula database 151. The formulation process may include processing to supplement constraints on the mathematical optimization problem that are not explicitly stated in the request.
[0018] The formula database 151 manages formulas using, for example, a tree structure. The formula database 151 includes information about the structure of formulas that represent optimization problems and the elements of that structure. More detailed information about the formula database 151 is described, for example, in Patent Document 2. By using this type of formula database 151, formula searches and subsequent processing can be performed quickly and accurately.
[0019] (1) The second processing unit 122, for example, when formulating the mathematical optimization problem before partitioning, uses the LLM provided by the LLM server 200 to obtain the constraints of the mathematical optimization problem before partitioning. The second processing unit 122 obtains the equation of the mathematical optimization problem, including the constraints, by inputting the first information 152 or a prompt edited from the first information 152 to the LLM. The LLM divides the input text data into tokens (morphemes), vectorizes them, and returns a response that corresponds to the contextual understanding obtained by inputting the vectors into a trained model. In the example in Figure 1, the LLM is provided by the LLM server 200, which is separate from the system 100, but the system 100 itself may hold programs and data for functioning as an LLM in the storage unit 150, and the LLM function may be incorporated as a function of the processing unit 120 or as a function of another functional unit.
[0020] (2) The second processing unit 122 may, for example, obtain constraints on the mathematical optimization problem before partitioning in accordance with the user's specifications via the terminal device 10 when formulating the mathematical optimization problem before partitioning.
[0021] (3) The second processing unit 122 may, for example, when formulating the mathematical optimization problem before partitioning, include in the first information 152 the constraints of the mathematical optimization problem before partitioning that inevitably arise from the mathematical optimization problem. For example, when solving a vehicle dispatch problem, c i car ij Two variables can exist: c. i This is defined as 1 if vehicle i exists, and zero if it does not exist, car ij This is defined as 1 if vehicle i is in garage j, and 0 otherwise. In this case, "if c i=1 then Σ j car ij The constraint condition (logical constraint) "=1" inevitably arises.
[0022] The second processing unit 122 then divides the mathematical optimization problem (pre-partition formula information 154), which has been formulated including the constraints, based on the second information 153, obtains the formulas for the mathematical optimization problems after division, and stores them in the storage unit 150 as post-partition formula information 155. The second information 153 is information that serves as the criterion for dividing the mathematical optimization problem, and specifies, for example, some or all of the period, variables, and types of variables. Figure 3 is a diagram that conceptually shows the division process performed by the second processing unit 122. Assuming that the entire diagram represents the search range, the search range can be limited to the hatched area in the diagram by dividing the mathematical optimization problem by variables, for example. In the diagram, the variable index is *** and the constraint formula index is ***. The variable index is a number assigned to identify the variables that appear in the mathematical optimization problem, and the constraint formula index is a number assigned to identify the constraint conditions that appear in the mathematical optimization problem. For example, in a mathematical optimization problem consisting of 10 variables and 20 constraints, there are 10 variable indices and 20 constraint indices.
[0023] If the second piece of information 153 specifies a period, for example, if the target period for the mathematical optimization problem is one year, the second piece of information 153 specifies that optimization should be performed "every two weeks". The type of variable indicates, for example, whether it is defined as binary or integer, and can be specified when the solver 130 includes both a quantum annealing machine and a classical computer. Each of the equations of the partitioned mathematical optimization problem obtained by the second processing unit 122 may contain elements that cross the partition boundary and elements that do not cross the partition boundary. Elements are, for example, some or all of variables and constraints. For example, if the mathematical optimization problem is partitioned by period, and the result of an operation for period t becomes a variable in the optimization operation for period t+1, then that variable is an element that crosses the partition boundary. On the other hand, if there is a variable that is not subject to the operation for only a certain period, then that variable is an element that does not cross the partition boundary. The same applies to variables and the type of variables. When there are elements that cross the partition boundary, there is a dependency between the partitioned search regions, and the order of processing when finding the optimal solution is regulated by this dependency. At least some of the multiple solvers 130 are quantum annealing machines, and the second processing unit 122 converts the equation of the mathematical optimization problem after partitioning that is given to the quantum annealing machine into either a QUBO (unconstrained quadratic binary optimization problem) or a PUBO (unconstrained polynomial binary optimization problem).
[0024] The third processing unit 123 uses each of the multiple solvers 130 to operate each of the equations of the mathematical optimization problem after partitioning (post-partition equation information 155), and performs optimization calculations for each of the equations of the mathematical optimization problem after partitioning. Note that the results of the optimization calculations (solution, approximate solution) are obtained as a result of optimization calculations designed to find the optimal solution, and do not necessarily perform completely exhaustive calculations, so they may not be the optimal solution in the strict sense. At this time, the third processing unit 123 changes each of the equations of the mathematical optimization problem after partitioning into a format suitable for each of the multiple solvers 130.
[0025] The fourth processing unit 124 combines the optimal solutions for each of the equations of the divided mathematical optimization problem to generate the optimal solution of the mathematical optimization problem before division, and outputs it to the terminal device 10. Note that the process of combining the optimal solutions to generate the optimal solution of the mathematical optimization problem before division may be performed by the second processing unit 122.
[0026] [Example 1 of Division] When performing division by period, the second processing unit 122 divides the part that adds from time 1 to T corresponding to the entire period in the Σ operation by the number of divisions, and replaces the superscript parameter of the Σ operation with those set at equal intervals such as 1~m, m~2m - 1, 2m - 1~3m - 2, etc., to perform division of the equation.
[0027] [Example 2 of Division] What is described below is an example where the division criterion is a physical event. The present invention is applicable to the problem of glass sheet cutting. FIG. 4 is a diagram showing an example of the division process. The optimization problem targeted by this process is to cut out rectangular blanks from a glass G that is sufficiently long in the vertical direction with good yield (that is, to cut out so that the blank part shown in white becomes as much as possible and the remaining part shown by hatching becomes as little as possible). In the figure, "i" is a parameter indicating which blank it is, W is the width of the glass G, w i is the width of the blank i, and h i is the height of the blank i. Also, the parameter j indicates which row the blank is arranged in.
[0028] The cost function in this problem is represented by Equation (1), and the constraint condition is represented by Equation (2). J is a value representing how many rows of blanks are finally cut out, and is set to, for example, 30. C ij is the total area of the remaining parts in row j, and x ij is a function that returns 1 when the blank i is arranged in row j and returns zero otherwise. [Equation] [[ID=The ingredients are arranged according to the following rules, for example. Figure 5 is a flowchart showing an example of the ingredient arrangement procedure. Here, the executing entity is not limited to the system 100 of the present invention, so the executing entity is simply referred to as the processor. In reality, the main entity performing the processing shown below is the solver. First, the processor determines all possible selection orders for the ingredients (S1). The selection order is information to which a unique provisional parameter q (q=1, 2, ...) is assigned to each ingredient.
[0030] Next, the processor selects a selection order and determines the arrangement of the ingredients according to the following rules. First, the processor places the ingredient with the dummy parameter q=1 on the far left of the first row (S2). Next, the processor increments the counter by one (S3) and determines the height h for the ingredient q whose dummy parameter matches the counter value. q However, in row j where the placement of ingredients is not yet complete, the height is less than or equal to the height of the last ingredient p placed, and W-Σ j W i x ij If the value is greater than or equal to zero (i.e., there is sufficient width), it is placed to the right of ingredient p; otherwise, it is placed at the left end of the row above (if there is already an ingredient placed at the left end of the row above, it is placed at the left end of the row above that) (S4). The processor performs the S2-S4 process for all planned ingredients and executes the process for all possible selection orders. Then, the cost function c from equation (1) is applied. ij x ij The optimal arrangement (selection order) of ingredients with the smallest size is output as the result.
[0031] In this problem, the process of determining all possible ingredient selection orders, arranging them according to rules for each, and then calculating the cost function can be quite computationally intensive. Furthermore, if methods such as approximation techniques are used to reduce the computational complexity rather than simply performing exhaustive calculations, the output optimal solution may be a local minimum rather than the true optimal solution. Therefore, the second processing unit 122 obtains information (second information) from the terminal device 10 that specifies the division boundaries, for example, "perform optimization calculations every 10 rows." At this time, the second processing unit 122 divides the cost function of equation (1) into equations (3), (5), and (7), and the constraints of equation (2) into equations (4), (6), and (8) based on the second information. The processing algorithm of the second processing unit 122 includes a process to search for variables corresponding to the second information within the mathematical formula and a process to determine how to divide the formula according to how those variables are handled. In this example, the second processing unit 122 divides the aggregation range of the Σ term based on the second information to generate multiple formulas.
[0032]
number
[0033] In this way, system 100 can reduce the optimization computation load in solver 130 and solve mathematical optimization problems more quickly and accurately.
[0034] [Example of division 3] The following is an example where the partitioning criterion is in the form of a variable. The cost function in this problem is given by equation (9), and the constraints are given by equations (10) to (12).
[0035]
number
[0036] Here, the variable x i is a discrete variable (a variable that takes integer values such as 0, 1, or 2), y iThere is a prerequisite that is a continuous variable (a variable that takes real values). And, given the criterion for decomposition, which is to decompose the problem into one problem with only discrete variables and one problem with only continuous variables, system 100 decomposes the problem into one problem with only discrete variables and one problem with only continuous variables, has solver 130, which is good at handling discrete variables, solve the former, and has solver 130, which is good at handling continuous variables, solve the latter.
[0037] In this case, the second processing unit 122 creates a first problem with only discrete variables by fixing the continuous variables in the cost function and constraints to constants, and similarly creates a second problem with only continuous variables by fixing the discrete variables to constants. i x* i , a variable y fixed as a constant i to y* i In this way, the cost function for the first problem is given by equation (13), and the constraints are given by equations (14) to (15). The cost function for the second problem is given by equation (16), and the constraints are given by equations (17) to (18).
[0038]
number
[0039]
number
[0040] [Processing flow] Figure 6 is a flowchart illustrating an example of the processing flow performed by System 100. First, the first processing unit 121 obtains first information necessary for formulating the mathematical optimization problem and second information that serves as a criterion for dividing the mathematical optimization problem, as specified by the user (S11). Next, the second processing unit 122 obtains the equations of the divided mathematical optimization problems, obtained by dividing the mathematical optimization problem formulated based on the first information based on the second information (S12). Next, the third processing unit 123 operates each of the multiple solvers 130 using each of the divided mathematical optimization problem equations to obtain the optimal solution for each of the divided mathematical optimization problem equations (S13). In this case, the third processing unit 123 may be generated as multiple instances corresponding to each of the multiple solvers 130, or a single instance of the third processing unit 123 may perform processing for each of the multiple solvers 130. Then, the fourth processing unit 124 combines the optimal solutions for each of the equations of the mathematical optimization problem after the division to generate the optimal solution of the mathematical optimization problem before the division and outputs it to the terminal device 10 (S14).
[0041] According to the embodiment described above, a mathematical optimization problem can be solved more quickly and accurately by performing the following steps: a first process to acquire first information necessary for formulating the mathematical optimization problem and second information that serves as a criterion for dividing the mathematical optimization problem, as specified by the user; a second process to acquire the equations of the divided mathematical optimization problems, obtained by dividing the mathematical optimization problem formulated based on the first information based on the second information; and a third process to operate multiple solvers using each of the divided mathematical optimization problem equations to obtain the optimal solution for each of the divided mathematical optimization problem equations.
[0042] Although embodiments for carrying out the present invention have been described above using examples, the present invention is not limited in any way to these embodiments, and various modifications and substitutions can be made without departing from the spirit of the present invention. [Explanation of Symbols]
[0043] 10 Terminal devices 100 Systems 110 IF section 120 Processing Unit 121 First Processing Unit 122 Second Processing Unit 123 Third Processing Unit 124 Fourth Processing Unit 130 solvers 150 Storage section
Claims
1. In the processor, A first process for acquiring first information necessary for formulating a mathematical optimization problem, as specified by the user, and second information that serves as a criterion for dividing the mathematical optimization problem; A second process to obtain the equation of the mathematical optimization problem after it has been divided based on the second information, by dividing the mathematical optimization problem formulated based on the first information, A third process involves running multiple solvers using each of the equations of the mathematical optimization problem after the division, and performing optimization calculations for each of the equations of the mathematical optimization problem after the division. A program to execute.
2. The aforementioned processor, A fourth process is then performed to combine the optimal solutions for each of the equations of the mathematical optimization problem after the division and generate and output the optimal solution of the mathematical optimization problem before the division. The program according to claim 1.
3. The aforementioned processor, In the third process, each of the equations of the partitioned mathematical optimization problem is changed to a form suitable for each of the multiple solvers. The program according to claim 1.
4. At least some of the aforementioned solvers are quantum annealing machines, The aforementioned processor, In the second process, the equation of the mathematical optimization problem after partitioning that is given to the quantum annealing machine is changed to either QUBO (unconstrained quadratic binary optimization problem) or PUBO (unconstrained polynomial binary optimization problem). The program according to claim 1.
5. Each of the equations for the mathematical optimization problem after partitioning, obtained by the second process, contains elements that cross the partition boundary and elements that do not cross the partition boundary. The program according to claim 1.
6. The second process includes a process of formulating the mathematical optimization problem before partitioning based on the first information, The aforementioned processor, When formulating the mathematical optimization problem before partitioning, a large-scale language model is used to obtain the constraints of the mathematical optimization problem before partitioning. The program according to claim 1.
7. The second process includes a process of formulating the mathematical optimization problem before partitioning based on the first information, The aforementioned processor, When formulating the mathematical optimization problem before partitioning, the constraints of the mathematical optimization problem before partitioning are obtained according to the user's specifications. The program according to claim 1.
8. The second process includes a process of formulating the mathematical optimization problem before partitioning based on the first information, The aforementioned processor, When formulating the mathematical optimization problem before partitioning, the constraints of the mathematical optimization problem before partitioning that inevitably arise based on the first information are obtained. The program according to claim 1.
9. The aforementioned processor, In the first process described above, the type of solver specified by the user is obtained. The program according to claim 1.
10. A first processing unit that acquires first information necessary for formulating a mathematical optimization problem as specified by the user, and second information that serves as a criterion for dividing the mathematical optimization problem, A second processing unit obtains the equation of the mathematical optimization problem after it has been divided based on the second information, by dividing the mathematical optimization problem formulated based on the first information, A third processing unit that operates each of the multiple solvers using each of the equations of the mathematical optimization problem after the division, and performs optimization calculations for each of the equations of the mathematical optimization problem after the division, A system equipped with these features.
11. A method executed by a processor, A first processing unit that acquires first information necessary for formulating a mathematical optimization problem as specified by the user, and second information that serves as a criterion for dividing the mathematical optimization problem, A second processing unit obtains the equation of the mathematical optimization problem after it has been divided based on the second information, by dividing the mathematical optimization problem formulated based on the first information, A third processing unit that operates each of the multiple solvers using each of the equations of the mathematical optimization problem after the division, and performs optimization calculations for each of the equations of the mathematical optimization problem after the division, A method for providing this.
Citation Information
Patent Citations
Methods, Data Structures and Programs
JP7034528B1
Optimization device, optimization method, and program
JP7334796B2