Mixed integer programming (MILP) problem solving method and device

By performing feature extraction and decomposition parameters processing on the MILP problem, the problem of difficulty in choosing the appropriate decomposition strategy for large-scale MILP problems is solved, and the solution efficiency and possibility of feasible solutions are improved.

CN119940581APending Publication Date: 2025-05-06HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410137720.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-11-03
Filing Date
2024-01-31
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

When solving the problem of large-scale mixed integer programming (MILP), it is difficult to choose an appropriate decomposition strategy, resulting in the limitation of the solution efficiency and the possibility of feasible solutions.

Method used

By extracting the feature of the MILP problem, it obtains its decomposition parameters, including the problem decomposition number of blocks and the coupled variable proportion parameters, and then decomposes the MILP problem based on these parameters, obtains sub-problems and solves them separately.

Benefits of technology

This method can provide appropriate decomposition strategies, improve the efficiency and possibility of feasible solutions to MILP problems, reduce the scale of the problem and achieve problem decoupling.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119940581A_ABST
    Figure CN119940581A_ABST
Patent Text Reader

Abstract

The invention provides a mixed integer programming (MILP) problem solving method and device, and the method comprises the steps: carrying out the feature extraction of an MILP problem through employing the description information of the MILP problem, and obtaining the feature information of the MILP problem, and the feature information of the MILP problem is used for describing the problem structure and / or complexity of the MILP problem; processing is carried out on the basis of the feature information of the MILP problem, decomposition parameters of the MILP problem are obtained, and the decomposition parameters of the MILP problem comprise at least one of the problem decomposition block number and coupling variable proportion parameters; decomposing the MILP problem based on the decomposition parameters of the MILP problem to obtain at least one sub-problem; and solving the at least one sub-problem to obtain a solution of the MILP problem. By adopting the means, the MILP problem can be decomposed based on a proper problem decomposition strategy, and the efficiency and possibility of obtaining the feasible solution of the MILP problem are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data processing technology, and in particular to a method and device for solving a mixed integer programming (MILP) problem. Background Art

[0002] For Mixed Integer Linear Programming (MILP) problems that come from actual production life, we usually start from the business background of the actual problem, understand and abstract the mathematical model through business experts, use modeling software to convert the mathematical model into a general standard model file, and then use the solver to complete the solution and export the decision results. Among them, the solver's solution process for the standard model file plays a decisive role in the entire process. How to efficiently and accurately obtain feasible solutions that meet customer needs is the key to solving MILP problems.

[0003] The MILP problems faced in actual business scenarios are generally large in scale, and the cost of directly using MILP solvers to solve them is often unacceptable to customers. The industry generally adopts a general problem decomposition strategy. First, use general decomposition strategies such as the Dantzig-Wolf decomposition algorithm (DW) and Benders to decompose large-scale problems into multiple smaller sub-problems, solve the sub-problems in parallel, and finally synthesize and restore the solution to the original problem based on the decomposition method from the feasible solutions of the sub-problems.

[0004] Although this solution can solve the problem of high solution cost, the dilemma encountered by the decomposition strategy of large-scale problems is that it is difficult to completely decouple the actual problem, and there are more or less coupled variables or coupled constraints. At this time, the decomposition strategy for the same problem is usually not unique, and it is difficult to choose a suitable decomposition strategy. Summary of the invention

[0005] The present application discloses a mixed integer programming (MILP) problem solving method and device, which can obtain a suitable decomposition strategy, thereby improving the efficiency and possibility of obtaining a feasible solution to the MILP problem.

[0006] In a first aspect, an embodiment of the present application provides a method for solving a mixed integer programming (MILP) problem, comprising:

[0007] Acquire description information of the MILP problem, the description information including an objective function, variables, constraints and integrity conditions, the integrity conditions being used to specify that some or all of the variables are integers, and use the description information of the MILP problem to perform feature extraction on the MILP problem to obtain feature information of the MILP problem, the feature information of the MILP being used to describe the problem structure and / or complexity of the MILP problem;

[0008] Processing is performed based on the characteristic information of the MILP problem to obtain a decomposition parameter of the MILP problem, wherein the decomposition parameter of the MILP problem includes at least one of the number of problem decomposition blocks and a coupling variable ratio parameter;

[0009] Decomposing the MILP problem based on the decomposition parameters of the MILP problem to obtain at least one sub-problem;

[0010] The at least one sub-problem is solved separately to obtain a solution to the MILP problem.

[0011] In the embodiment of the present application, feature information of the MILP problem is obtained by extracting features from the MILP problem; decomposition parameters of the general MILP problem are obtained based on the feature information of the MILP problem, wherein the decomposition parameters of the MILP problem include at least one of the number of problem decomposition blocks and coupling variable ratio parameters; the MILP problem is then decomposed based on the decomposition parameters of the MILP problem to obtain at least one sub-problem; and the at least one sub-problem is solved separately to obtain a solution to the MILP problem. By adopting this method, the decomposition parameters of the MILP problem are first obtained, and then the MILP problem is decomposed based on the decomposition parameters to obtain at least one sub-problem. In this way, the MILP problem can be decomposed based on a suitable problem decomposition strategy, and the goal of problem decoupling or problem size reduction can be achieved, thereby improving the efficiency and possibility of obtaining a feasible solution to the MILP problem.

[0012] Among them, the decomposition parameter can be understood as the decomposition strategy of the MILP problem. For example, the decomposition parameter is the number of problem decomposition blocks, that is, how many sub-problems the general MILP problem is decomposed into. For another example, the decomposition parameter is the coupling variable ratio parameter, that is, what is the ratio of the coupling variables in the decomposition strategy of the general MILP problem. The coupling variables can be understood as variables that appear in different constraints at the same time. Of course, the decomposition parameter can also include the number of problem decomposition blocks and the coupling variable ratio parameter.

[0013] Obtaining the decomposition parameters of the MILP problem helps to decompose the original problem based on the decomposition parameters.

[0014] In a possible implementation, the characteristic information of the MILP problem includes at least one of sparsity of a coefficient matrix, a distribution of non-zero elements, and a variable graph of the MILP problem.

[0015] Exemplarily, at least one of the sparsity, non-zero element distribution, and variable graph is input into a first strategy generator to obtain decomposition parameters of the MILP problem.

[0016] The coefficient matrix sparsity of the general MILP problem is the ratio of the number of non-zero elements in the constraint matrix, where the constraint matrix is ​​the matrix corresponding to the constraints of the general MILP problem. The non-zero element distribution of the general MILP problem is the arrangement structure of the non-zero elements in the constraint matrix in rows and columns. The variable graph of the general MILP problem is the graph structure composed of constraints and variables.

[0017] In a possible implementation, respectively solving the at least one sub-problem to obtain a solution to the MILP problem includes:

[0018] Performing feature extraction on the at least one sub-problem respectively to obtain feature information of the at least one sub-problem; the feature information includes at least one of a constraint type, a variable type, and an objective function coefficient;

[0019] Processing based on the characteristic information of each sub-problem in the at least one sub-problem to obtain a solution strategy for the at least one sub-problem and a solution parameter corresponding to the solution strategy, wherein the solution strategy includes a recommended heuristic algorithm;

[0020] Solve the at least one sub-problem using the solution strategy for the at least one sub-problem and solution parameters corresponding to the solution strategy to obtain a solution to the at least one sub-problem;

[0021] A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

[0022] This example is based on extracting features from sub-problems and obtaining solution strategies corresponding to the sub-problems and solution parameters corresponding to the solution strategies, which can help in the subsequent solution of the sub-problems.

[0023] Exemplarily, feature extraction is performed on the at least one sub-problem to obtain feature information of the at least one sub-problem; the feature information includes at least one of a constraint type, a variable type, and an objective function coefficient;

[0024] Inputting feature information of each sub-problem in the at least one sub-problem into the second strategy generator respectively, obtaining a solution strategy for the at least one sub-problem and a solution parameter corresponding to the solution strategy, wherein the solution strategy includes a recommended heuristic algorithm;

[0025] Based on the solution strategy of the at least one sub-problem and the solution parameters corresponding to the solution strategy, the at least one sub-problem is processed to obtain a solution to the at least one sub-problem;

[0026] A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

[0027] The constraint type is the combination of variables in the constraint. The variable type is the attribute of the variable (such as integer variable, binary variable or continuous variable, etc.). The objective function coefficient is the multiplier before the variable in the objective function.

[0028] In another possible implementation, respectively solving the at least one sub-problem to obtain a solution to the MILP problem includes:

[0029] Receive a first instruction input by a user, wherein the first instruction indicates a user-defined solution algorithm configured by the user, and the user-defined solution algorithm is used to solve the at least one sub-problem;

[0030] Solve the at least one sub-problem using the custom solving algorithm to obtain a solution to the at least one sub-problem;

[0031] A solution to the MILP problem is obtained based on a solution to the at least one sub-problem.

[0032] In this example, when a user-defined heuristic algorithm exists, the solution is performed based on the user-defined heuristic algorithm.

[0033] Exemplarily, the algorithm may be called based on a user-defined heuristic algorithm callback interface to solve the sub-problem.

[0034] In another possible implementation, a second instruction input by a user is received, wherein the second instruction indicates a solution algorithm, the solution algorithm is used to solve the at least one sub-problem, the solution algorithm includes at least one of a recommended heuristic algorithm, a general heuristic algorithm, and a general solution algorithm, the general heuristic algorithm is a preset heuristic algorithm, and the general solution algorithm is a non-heuristic algorithm;

[0035] The separately solving the at least one sub-problem to obtain a solution to the MILP problem includes:

[0036] The at least one sub-problem is solved respectively using the solution algorithm indicated by the second instruction to obtain a solution to the MILP problem.

[0037] This example solves the problem based on the solving algorithm specified by the user.

[0038] In a possible implementation, the second instruction includes a solution priority, the solution priority represents a speed of solution, and the using the solution algorithm indicated by the second instruction to respectively solve the at least one sub-problem to obtain a solution to the MILP problem includes:

[0039] For the i-th subproblem in the at least one subproblem, i is a positive integer;

[0040] If the solution priority is not lower than the first priority, the recommended heuristic algorithm is used to solve the i-th sub-problem to obtain a solution to the i-th sub-problem.

[0041] In this example, different solution algorithms can be selected based on the solution priority settings to achieve the solution purpose. For example, the priority can be set based on the solution speed, or the solution priority can be set based on the solution accuracy, quality, etc.

[0042] In one possible implementation, if the solution priority is not lower than the second priority, the recommended heuristic algorithm and the general heuristic algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the first priority is higher than the second priority.

[0043] In one possible implementation, if the solution priority is not lower than the third priority, the recommended heuristic algorithm, the general heuristic algorithm and the general solution algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the second priority is higher than the third priority.

[0044] In a possible implementation, the recommended heuristic algorithm is used to solve the i-th subproblem to obtain a first solution to the i-th subproblem;

[0045] Solving the i-th subproblem using the universal heuristic algorithm to obtain a second solution to the i-th subproblem;

[0046] Solving the i-th subproblem using the general solution algorithm to obtain a third solution to the i-th subproblem;

[0047] A solution to the i-th sub-problem is obtained based on the first solution to the i-th sub-problem, the second solution and the third solution.

[0048] In this example, the solution obtained by combining multiple solving algorithms is processed to obtain the solution of the sub-problem, which can help improve the quality of the solution to the sub-problem.

[0049] In a second aspect, an embodiment of the present application provides a mixed integer programming MILP problem solving device, comprising:

[0050] An acquisition module is used to acquire description information of the MILP problem, wherein the description information includes an objective function, variables, constraints, and integrity conditions, wherein the integrity conditions are used to specify that some or all of the variables are integers, and to perform feature extraction on the MILP problem using the description information of the MILP problem to obtain feature information of the MILP problem, wherein the feature information of the MILP is used to describe the problem structure and / or complexity of the MILP problem;

[0051] A processing module, configured to process the characteristic information of the MILP problem to obtain a decomposition parameter of the MILP problem, wherein the decomposition parameter of the MILP problem includes at least one of the number of problem decomposition blocks and a coupling variable ratio parameter;

[0052] A decomposition module, configured to decompose the MILP problem based on a decomposition parameter of the MILP problem to obtain at least one sub-problem;

[0053] The solving module is used to solve the at least one sub-problem respectively to obtain a solution to the MILP problem.

[0054] In a possible implementation, the characteristic information of the MILP problem includes at least one of sparsity of a coefficient matrix, a distribution of non-zero elements, and a variable graph of the MILP problem.

[0055] In a possible implementation, the solution module is used to:

[0056] Performing feature extraction on the at least one sub-problem respectively to obtain feature information of the at least one sub-problem; the feature information includes at least one of a constraint type, a variable type, and an objective function coefficient;

[0057] Processing based on the characteristic information of each sub-problem in the at least one sub-problem to obtain a solution strategy for the at least one sub-problem and a solution parameter corresponding to the solution strategy, wherein the solution strategy includes a recommended heuristic algorithm;

[0058] Solve the at least one sub-problem using the solution strategy for the at least one sub-problem and solution parameters corresponding to the solution strategy to obtain a solution to the at least one sub-problem;

[0059] A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

[0060] In another possible implementation, the solution module is used to:

[0061] Receive a first instruction input by a user, wherein the first instruction indicates a user-defined solution algorithm configured by the user, and the user-defined solution algorithm is used to solve the at least one sub-problem;

[0062] Solve the at least one sub-problem using the custom solving algorithm to obtain a solution to the at least one sub-problem;

[0063] A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

[0064] In another possible implementation, the system further includes a receiving module, configured to: receive a second instruction input by a user, wherein the second instruction indicates a solution algorithm, the solution algorithm is used to solve the at least one sub-problem, the solution algorithm includes at least one of a recommended heuristic algorithm, a general heuristic algorithm, and a general solution algorithm, the general heuristic algorithm is a preset heuristic algorithm, and the general solution algorithm is a non-heuristic algorithm;

[0065] The solving module is used to use the solving algorithm indicated by the second instruction to solve the at least one sub-problem respectively to obtain a solution to the MILP problem.

[0066] In a possible implementation, the second instruction includes a solution priority, the solution priority represents a speed of solution, and for the i-th subproblem in the at least one subproblem, i is a positive integer, and the solution module is further used to:

[0067] If the solution priority is not lower than the first priority, the recommended heuristic algorithm is used to solve the i-th sub-problem to obtain a solution to the i-th sub-problem.

[0068] In a possible implementation, the solution module is further used to:

[0069] If the solution priority is not lower than the second priority, the recommended heuristic algorithm and the general heuristic algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the first priority is higher than the second priority.

[0070] In a possible implementation, the solution module is further used to:

[0071] If the solution priority is not lower than the third priority, the recommended heuristic algorithm, the general heuristic algorithm and the general solution algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the second priority is higher than the third priority.

[0072] In a possible implementation, the solution module is further used to:

[0073] Solving the i-th subproblem using the recommended heuristic algorithm to obtain a first solution to the i-th subproblem;

[0074] Solving the i-th subproblem using the universal heuristic algorithm to obtain a second solution to the i-th subproblem;

[0075] Solving the i-th subproblem using the general solution algorithm to obtain a third solution to the i-th subproblem;

[0076] A solution to the i-th sub-problem is obtained based on the first solution to the i-th sub-problem, the second solution and the third solution.

[0077] In a third aspect, the present application provides a computing device cluster, comprising at least one computing device, each computing device comprising a processor and a memory;

[0078] The processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method provided in any possible implementation manner of the first aspect.

[0079] In a fourth aspect, the present application provides a computer program product comprising instructions, which, when executed by a computing device cluster, enables the computing device cluster to execute a method provided in any possible implementation of the first aspect.

[0080] In a fifth aspect, the present application provides a computer-readable storage medium, comprising computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes a method provided in any possible implementation manner of the first aspect.

[0081] It can be understood that the apparatus described in the second aspect, the computing device cluster described in the third aspect, the computer program product described in the fourth aspect, or the computer-readable storage medium described in the fifth aspect provided above are all used to execute any method provided in the first aspect. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects in the corresponding method, which will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0082] The following is an introduction to the drawings used in the embodiments of the present application.

[0083] Figure 1 is a schematic diagram of a mixed integer programming MILP problem solving system provided in an embodiment of the present application;

[0084] Figure 2It is a flow chart of a mixed integer programming MILP problem solving method provided in an embodiment of the present application;

[0085] Figure 3 It is a schematic diagram of a mixed integer programming MILP problem solving method provided in an embodiment of the present application;

[0086] Figure 4 It is a general strategy generator provided by an embodiment of the present application;

[0087] Figure 5 It is a problem decomposition strategy generator provided by an embodiment of the present application;

[0088] Figure 6 It is a sub-problem solving strategy generator provided in an embodiment of the present application;

[0089] Figure 7 is a schematic diagram of a multi-priority heuristic solution method provided in an embodiment of the present application;

[0090] Figure 8 It is a structural schematic diagram of a mixed integer programming MILP problem solving device provided in an embodiment of the present application;

[0091] Fig. 9 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0092] Fig.10 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0093] Fig.11 It is a structural diagram of another computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0094] The following describes the embodiments of the present application in conjunction with the drawings in the embodiments of the present application. The terms used in the implementation method part of the embodiments of the present application are only used to explain the specific embodiments of the present application, and are not intended to limit the present application.

[0095] For ease of understanding, the following examples provide some explanations of concepts related to the embodiments of the present application for reference. As described below:

[0096] 1.MILP Problem

[0097] MILP problem is a type of optimization problem with the following characteristics: 1) the objective function and constraints are linear; 2) some or all of the variables involved must be integer variables. MILP problem is a non-deterministic polynomial (NP)-hard problem. MILP problem has applications in many practical scenarios including cutting, packing, path planning, batch scheduling, etc. Among them, the software system used to solve MILP problem is generally called MILP solver.

[0098] 2. Problem decomposition

[0099] Problem decomposition is a technique for solving large-scale complex optimization problems. For optimization problems with multiple variables and constraints, try to decompose them into two or more sub-problems with independent variables and constraints, solve them separately, and then recompose the results. For situations where independent decomposition is not possible, the decomposition sometimes also considers coupling variables or coupling constraints.

[0100] In the solver, the initial problem is decomposed into sub-problems, and the sub-problems are solved to obtain the solution of each sub-problem. Then, how to use the solution of each sub-problem to obtain the solution of the initial problem depends on the specific decomposition method and solution algorithm. Generally speaking, there are the following common situations:

[0101] If you are using the divide-and-conquer algorithm, you usually need to merge the solutions to the sub-problems to get the solution to the original problem. For example, in quick sort, you need to merge the sorted left and right sub-arrays into an ordered array as solution 1 of the original array.

[0102] If dynamic programming is used, it is usually necessary to construct the solution to the original problem based on the solutions to the subproblems. For example, in the knapsack problem, it is necessary to backtrack to the optimal solution to the original problem based on the optimal values ​​and selections of the subproblems.

[0103] If a greedy approach is used, then it is usually necessary to accumulate the optimal choices of the sub-problems to obtain the solution to the original problem. For example, in the activity selection problem, the activities selected at each step need to be added to the final solution set3.

[0104] If Benders decomposition is used, it is usually necessary to generate cutting planes or branch and bound based on the dual solution of the subproblem and update the constraints of the main problem until the optimal solution of the original problem is found4.

[0105] 3. Heuristics

[0106] Heuristics is a way of thinking about solving optimization problems, a method of solving any problem or self-exploration. The method it uses is not guaranteed to be optimal, complete or rational, but it can often approach or even reach the optimal target value at a relatively low cost.

[0107] 4. General heuristic algorithms generally refer to heuristic methods for general MILP problem types. For example, general heuristic algorithms are preset heuristic algorithms.

[0108] 5. General solver (general solution algorithm) generally refers to a solver for general MILP problem types. General solution algorithm is a non-heuristic algorithm. A non-heuristic algorithm is a method that does not rely on experience and rules, but follows fixed steps and logic to completely or partially traverse the solution space of the problem. It can guarantee to find the optimal solution or an approximate solution with quality assurance. Non-heuristic algorithms can usually handle a wider range of problems, but may require more time and resources.

[0109] The difference between heuristic algorithms and non-heuristic algorithms lies mainly in whether optimality is guaranteed, whether it depends on the characteristics of the problem, whether a heuristic function is used, and the complexity and efficiency of the search process. Heuristic algorithms are more flexible, faster, and more suitable for dealing with complex practical problems, but may fall into local optimality or obtain poor solutions. Non-heuristic algorithms are more rigorous, more reliable, and more suitable for dealing with theoretical abstract problems, but may require more computational overhead or fail to find feasible solutions.

[0110] The above exemplary description of the concepts can be applied in the following embodiments.

[0111] The following will describe the system architecture of the embodiment of the present application in detail with reference to the accompanying drawings. Figure 1 , Figure 1 1 is a schematic diagram of a mixed integer programming MILP problem solving system applicable to an embodiment of the present application, the system comprising a server 101 and a terminal 102 .

[0112] The server 101 is a device with centralized computing capabilities. Exemplarily, the server 101 can be implemented by a server, a virtual machine, a cloud, or a robot.

[0113] When the server 101 includes a server, the type of the server includes but is not limited to a general-purpose computer, a dedicated server computer, a blade server, etc. This application does not strictly limit the number of servers included in the server 101, and the number can be one or more (such as a server cluster, etc.).

[0114] A virtual machine refers to a computing module that has complete hardware system functions and runs in a completely isolated environment through software simulation. Of course, in addition to virtual machines, the server 101 can also be implemented through other computing instances, such as containers.

[0115] The cloud is a software platform that uses application virtualization technology, which enables one or more software and applications to be developed and run in an independent virtualized environment. Optionally, when the server 101 is implemented through the cloud, the cloud can be deployed on a public cloud, a private cloud, or a hybrid cloud.

[0116] The terminal 102 may also be referred to as a terminal device, user equipment (UE), a mobile station, a mobile terminal, etc. The terminal can be widely used in various scenarios, for example, device-to-device (D2D), vehicle to everything (V2X) communication, machine-type communication (MTC), Internet of Things (IOT), virtual reality, augmented reality, industrial control, automatic driving, telemedicine, smart grid, smart furniture, smart office, smart wear, smart transportation, smart city, etc. The terminal may be a mobile phone, a tablet computer, a computer with wireless transceiver function, a wearable device, a vehicle, a drone, a helicopter, an airplane, a ship, a robot, a mechanical arm, a smart home device, etc. The embodiments of the present application do not limit the specific technology and specific device form adopted by the terminal.

[0117] The architecture of the embodiment of the present application is described above, and the method of the embodiment of the present application is described in detail below.

[0118] Reference Figure 2 FIG. 1 is a flow chart of a mixed integer programming MILP problem solving method provided in an embodiment of the present application. Optionally, the method can be applied to the aforementioned mixed integer programming MILP problem solving system, for example Figure 1 The mixed integer programming MILP problem solving system shown in Figure . Figure 2 The mixed integer programming MILP problem solving method shown may include steps 201-204. It should be understood that for the convenience of description, this application is described in the order of 201-204, and is not intended to limit the execution to the above order. The embodiment of the present application does not limit the execution order, execution time, execution number, etc. of the above one or more steps. The following description takes the execution subject of steps 201-204 of the mixed integer programming MILP problem solving method as a server as an example, and this application is also applicable to other execution subjects. Steps 201-204 are as follows:

[0119] 201. Obtain description information of a MILP problem, wherein the description information includes an objective function, variables, constraints, and integrity conditions, wherein the integrity conditions are used to specify that some or all of the variables are integers, and use the description information of the MILP problem to perform feature extraction on the MILP problem to obtain feature information of the MILP problem, wherein the feature information of the MILP is used to describe the problem structure and / or complexity of the MILP problem.

[0120] The above MILP problem may be, for example, at least one of supply chain, logistics, energy, production scheduling, and other problems, and may also be other problems, which are not limited in this solution.

[0121] The above constraints can be, for example, knapsack constraints, clique constraints, set covering constraints, set splitting constraints, set configuration constraints, etc. Exemplarily, the above objective functions and constraints are all linear, and some or all of the variables involved are integer variables. Of course, other forms are also possible, and this solution does not limit this.

[0122] In a possible implementation, the MILP problem is a general MILP problem.

[0123] In a possible implementation, the characteristic information of the MILP problem includes at least one of coefficient matrix sparsity, non-zero element distribution, and variable graph of a general MILP problem.

[0124] The coefficient matrix sparsity of the MILP problem is the ratio of the number of non-zero elements in the constraint matrix, where the constraint matrix is ​​the matrix corresponding to the constraints of the general MILP problem. The non-zero element distribution of the MILP problem is the arrangement structure of the non-zero elements in the constraint matrix in rows and columns. The variable graph of the MILP problem is the graph structure composed of constraints and variables.

[0125] In a possible implementation, the feature information can be obtained by inputting the MILP problem into a first preset neural network model for feature extraction. Optionally, the first preset neural network model can be a convolutional neural network model.

[0126] 202. Process the characteristic information of the MILP problem to obtain a decomposition parameter of the MILP problem, wherein the decomposition parameter of the MILP problem includes at least one of the number of problem decomposition blocks and a coupling variable ratio parameter.

[0127] The decomposition parameter can be understood as the decomposition strategy of the MILP problem.

[0128] For example, the decomposition parameter is the number of problem decomposition blocks, that is, how many sub-problems the MILP problem is decomposed into. For another example, the decomposition parameter is the coupling variable ratio parameter, that is, what is the ratio of the coupling variables in the MILP problem decomposition strategy. The coupling variables can be understood as variables that appear in different constraints at the same time. Of course, the decomposition parameter can also include the number of problem decomposition blocks and the coupling variable ratio parameter.

[0129] In a possible implementation, at least one of the characteristic information, such as sparsity, non-zero element distribution, and variable graph, is input into a first strategy generator to obtain decomposition parameters of the MILP problem.

[0130] The first strategy generator may be, for example, a second preset neural network model.

[0131] In this example, by obtaining the decomposition parameters of the MILP problem, it is helpful to subsequently decompose the original problem based on the decomposition parameters.

[0132] 203. Decompose the MILP problem based on the decomposition parameters of the MILP problem to obtain at least one sub-problem.

[0133] According to the problem decomposition block number and / or coupling variable ratio parameter obtained above, the MILP problem is decomposed to obtain one or more sub-problems.

[0134] Among them, one or more sub-problems obtained by the decomposition may be coupled.

[0135] 204. Solve the at least one sub-problem respectively to obtain a solution to the MILP problem.

[0136] Exemplarily, the at least one sub-problem is solved in parallel, and then the solution to the MILP problem is obtained by performing processing based on the solutions corresponding to the at least one sub-problem. The processing may be, for example, concatenation, fine-tuning, and verification of the solutions to the sub-problems.

[0137] In a first possible implementation manner, step 204 may include the following steps 2041-2044, which are specifically as follows:

[0138] 2041. Perform feature extraction on the at least one sub-problem to obtain feature information of the at least one sub-problem.

[0139] In a possible implementation, the characteristic information of the sub-problem includes at least one of a constraint type, a variable type, and an objective function coefficient.

[0140] The constraint type is the combination of variables in the constraint. The variable type is the attribute of the variable (such as integer variable, binary variable or continuous variable, etc.). The objective function coefficient is the multiplier before the variable in the objective function.

[0141] In a possible implementation, the feature information of the at least one sub-problem can be obtained by inputting the at least one sub-problem into a third preset neural network model for feature extraction.

[0142] Optionally, the third preset neural network model may be a convolutional neural network model. It is understandable that the third preset neural network model may be the same model as the first preset neural network model, and this solution does not limit this.

[0143] 2042. Perform processing based on feature information of each subproblem in the at least one subproblem to obtain a solution strategy for the at least one subproblem and a solution parameter corresponding to the solution strategy, wherein the solution strategy includes a recommended heuristic algorithm.

[0144] Exemplarily, the characteristic information of each sub-problem in the at least one sub-problem is respectively input into the second strategy generator to obtain a solution strategy for the at least one sub-problem and a solution parameter corresponding to the solution strategy, wherein the solution strategy includes a recommended heuristic algorithm. The second strategy generator may be the same generator as the first strategy generator, or may be a different generator, and this solution is not limited thereto.

[0145] By inputting different sub-problems into the second strategy generator respectively, the solution strategy for each sub-problem and the solution parameters corresponding to the solution strategy are obtained.

[0146] The solution strategy includes a recommended heuristic algorithm, that is, a heuristic algorithm recommended by the server. The recommended heuristic algorithm may be one heuristic algorithm or multiple heuristic algorithms, such as a combination of multiple heuristic algorithms, and this solution does not limit this.

[0147] In this example, by obtaining a solution strategy for at least one sub-problem and a solution parameter corresponding to the solution strategy, it can be helpful to solve the sub-problem later.

[0148] 2043. Solve the at least one sub-problem using the solution strategy of the at least one sub-problem and solution parameters corresponding to the solution strategy to obtain a solution to the at least one sub-problem.

[0149] In this example, a solution to the at least one sub-problem can be obtained by solving the corresponding sub-problem based on the heuristic algorithm corresponding to the at least one sub-problem recommended by the server.

[0150] In a second possible implementation, step 204 may include the following steps A1-A3, which are specifically as follows:

[0151] A1. Receive a first instruction input by a user, wherein the first instruction indicates a user-defined solution algorithm configured by the user, and the user-defined solution algorithm is used to solve the at least one sub-problem.

[0152] A2. Use the custom solving algorithm to solve the at least one sub-problem to obtain a solution to the at least one sub-problem.

[0153] A3. Obtain a solution to the MILP problem based on a solution to the at least one subproblem.

[0154] The first instruction of this example indicates that there is a user-defined heuristic algorithm. Then, the at least one sub-problem is processed based on the user-defined heuristic algorithm to obtain a solution to the at least one sub-problem.

[0155] That is to say, when there is a user-defined heuristic algorithm, the sub-problem is solved based on the user-defined heuristic algorithm.

[0156] When there is a user-defined heuristic algorithm corresponding to a part of the sub-problems (such as a certain sub-problem or several sub-problems), the user-defined heuristic algorithm is used to solve the part of the sub-problems. For other sub-problems, for example, the above-mentioned recommended heuristic algorithm can be used to solve them.

[0157] In a third possible implementation manner, step 205 is further included, which is specifically as follows:

[0158] 205. Receive a second instruction input by a user, wherein the second instruction indicates a solution algorithm, the solution algorithm is used to solve the at least one sub-problem, the solution algorithm includes at least one of a recommended heuristic algorithm, a general heuristic algorithm, and a general solution algorithm, the general heuristic algorithm is a preset heuristic algorithm, and the general solution algorithm is a non-heuristic algorithm.

[0159] Accordingly, step 204 may include:

[0160] The at least one sub-problem is solved respectively using the solution algorithm indicated by the second instruction to obtain a solution to the MILP problem.

[0161] That is, the user indicates which algorithm or algorithms to use to solve the sub-problem. Then, the solution is performed based on the user's instructions.

[0162] For example, if the user instructs to use the recommended heuristic algorithm for solving the problem, the recommended heuristic algorithm is used to solve the subproblem. For another example, if the user instructs to use the general heuristic algorithm for solving the problem, the general heuristic algorithm is used to solve the subproblem. For another example, if the user instructs to use the general solver (i.e., the general solving algorithm) for solving the problem, the general solver is used to solve the subproblem. For another example, if the user instructs to use the recommended heuristic algorithm and the general solver for solving the problem, the recommended heuristic algorithm and the general solver are used to solve the subproblem respectively. For another example, if the user instructs to use the recommended heuristic algorithm, the general heuristic algorithm, and the general solver for solving the problem, the recommended heuristic algorithm, the general heuristic algorithm, and the general solver are used to solve the subproblem respectively.

[0163] In a possible implementation, the second instruction includes a solution priority, where the solution priority represents a solution speed.

[0164] That is, the user indicates the priority of the solution, for example, a high priority means a fast solution speed, and a low priority means a slow solution speed. Optionally, the faster the solution speed, the lower the solution accuracy and quality, etc.; the slower the solution speed, the higher the solution accuracy and quality, etc.

[0165] Wherein, for the i-th subproblem in the at least one subproblem, i is a positive integer;

[0166] If the solution priority is not lower than the first priority, the recommended heuristic algorithm is used to solve the i-th sub-problem to obtain a solution to the i-th sub-problem.

[0167] For the solution of the recommended heuristic algorithm, please refer to the introduction of steps 2041-2042, which will not be repeated here.

[0168] Exemplarily, if the user's solution priority is not lower than the first priority, the i-th sub-problem is processed based on the solution strategy of the i-th sub-problem and the solution parameters corresponding to the solution strategy to obtain a solution to the i-th sub-problem.

[0169] In one possible implementation, if the user's solution priority is not lower than the second priority, the i-th subproblem is processed based on the solution strategy of the i-th subproblem, the solution parameters corresponding to the solution strategy, and the general heuristic algorithm to obtain a solution to the i-th subproblem, wherein the first priority is higher than the second priority.

[0170] In one possible implementation, if the user's solution priority is not lower than the third priority, the i-th sub-problem is processed based on the solution strategy of the i-th sub-problem and the solution parameters corresponding to the solution strategy, the general heuristic algorithm and the general solver to obtain a solution to the i-th sub-problem, wherein the second priority is higher than the third priority.

[0171] That is, when the solution priority is not lower than the first priority, the recommended heuristic algorithm is used to solve the subproblem. When the solution priority is not lower than the second priority, the recommended heuristic algorithm and the general heuristic algorithm are used to solve the subproblem. When the solution priority is not lower than the third priority, the recommended heuristic algorithm, the general heuristic algorithm and the general solver are used to solve the subproblem.

[0172] Exemplarily, for the ith subproblem in the at least one subproblem, if the user's solution priority is not lower than the third priority, the ith subproblem is processed based on the solution strategy of the ith subproblem and the solution parameters corresponding to the solution strategy to obtain a first solution to the ith subproblem; and based on the universal heuristic algorithm, the ith subproblem is processed to obtain a second solution to the ith subproblem; and based on the universal solver, the ith subproblem is processed to obtain a third solution to the ith subproblem; and then the solution to the ith subproblem is obtained based on the first solution, the second solution and the third solution of the ith subproblem. For example, based on the objective function, a solution with a better objective value is selected from the first solution, the second solution and the third solution.

[0173] Regarding the solution to the sub-problem when the user's solution priority is not lower than the second priority, please refer to the introduction to the solution to the sub-problem when the user's solution priority is not lower than the third priority, which will not be repeated here.

[0174] Alternatively, different solving algorithms may be set based on different priorities. For example, when the solving priority is the first priority, the recommended heuristic algorithm is used for solving. When the solving priority is the second priority, the general heuristic algorithm is used for solving. When the solving priority is the third priority, the general solving algorithm is used for solving, etc. This solution does not impose any restrictions on this.

[0175] In a fourth possible implementation, it is confirmed whether there is a user-defined heuristic algorithm. If so, the subproblem is solved based on the user-defined heuristic algorithm; if not, a second instruction input by the user is received, wherein the second instruction indicates a solution algorithm, and the solution algorithm includes at least one of the recommended heuristic algorithm, a general heuristic, and a general solver. For the introduction of this part, please refer to the record of the above step 2043, which will not be repeated here.

[0176] It can be understood that the first to fourth possible implementations provided above can be used in combination, etc., and this solution does not limit this.

[0177] 2044. Obtain a solution to the MILP problem based on a solution to the at least one subproblem.

[0178] For example, by synthesizing the feasible solutions of these sub-problems, the solution of the MILP problem can be obtained.

[0179] In the embodiment of the present application, feature information of the MILP problem is obtained by extracting features from the MILP problem; decomposition parameters of the MILP problem are obtained based on the feature information of the MILP problem, wherein the decomposition parameters of the MILP problem include at least one of the number of problem decomposition blocks and coupling variable ratio parameters; the MILP problem is then decomposed based on the decomposition parameters of the MILP problem to obtain at least one sub-problem; and the at least one sub-problem is solved separately to obtain a solution to the MILP problem. By adopting this method, the decomposition parameters of the MILP problem are first obtained, and then the MILP problem is decomposed based on the decomposition parameters to obtain at least one sub-problem. In this way, the MILP problem can be decomposed based on a suitable problem decomposition strategy, and the goal of problem decoupling or problem size reduction can be achieved, thereby improving the efficiency and possibility of obtaining a feasible solution to the MILP problem.

[0180] Reference Figure 3 As shown in FIG. 1 , it is a schematic diagram of a mixed integer programming MILP problem solving method provided by an embodiment of the present application. Figure 3 The mixed integer programming MILP problem solving method shown may include steps 301-309. Steps 301-309 are specifically as follows:

[0181] 301. Start.

[0182] 302. Questions are read in.

[0183] Read the MILP problem.

[0184] 303. Input problem decomposition strategy generator.

[0185] The above problem is input as input data to the problem decomposition strategy generator. The problem decomposition strategy generator can extract features from the problem and obtain, for example, Figure 2 The feature information recorded in step 201 in the illustrated embodiment. Then, hyperparameter reasoning is performed based on the feature information to obtain problem decomposition parameters, such as the number of problem decomposition blocks and coupling variable ratio parameters.

[0186] In one possible implementation, see Figure 4 As shown, a general strategy generator is provided in an embodiment of the present application, wherein the input data based on step 401 is input into the general strategy generator for processing through step 402, and the strategy selection and parameters output in step 403 can be obtained. Among them, for the input data, it can be decided to use 405 black box optimization engine or 406 reasoning engine for online training to obtain the corresponding strategy according to the user selection in step 404, thereby supporting the next step of solving the problem. At the same time, based on the existing historical selection and execution feedback, an offline training label database 407 is established, and the user selection in step 408 determines whether to use 409 black box optimization engine or 410 reasoning engine for offline training to enhance the ability of the instant reasoning engine 406.

[0187] Reference Figure 5 As shown in FIG. 1 , a problem decomposition strategy generator provided by an embodiment of the present application is provided. By reading the original problem data and extracting the features of the original problem, feature information is obtained. The feature information may be, for example, the coefficient matrix coefficient degree, non-zero element distribution, and variable graph. The above feature information is input into the Figure 4 The problem is processed in the general strategy generator shown in the figure to obtain problem decomposition parameters, such as the number of problem decomposition blocks and the coupling variable ratio parameters.

[0188] 304. Output problem decomposition parameters.

[0189] 305. Decompose the problem based on the problem decomposition parameter to obtain at least one sub-problem.

[0190] 306. Input at least one sub-problem into a sub-problem solving strategy generator for processing to obtain a solving strategy and solving parameters for the sub-problem.

[0191] The at least one sub-problem is input as input data to the sub-problem solving strategy generator. The sub-problem solving strategy generator can extract features of the sub-problem to obtain, for example, Figure 2 The characteristic information recorded in step 2041 in the illustrated embodiment. Then, hyperparameter reasoning is performed based on the characteristic information to obtain a solution strategy and solution parameters for at least one sub-problem. The solution strategy includes a recommended heuristic algorithm.

[0192] In one possible implementation, Figure 6 As shown in FIG. 1 , a sub-problem solving strategy generator provided in an embodiment of the present application is provided. By reading in the sub-problem data and performing feature extraction on the sub-problem, feature information of the sub-problem is obtained. The feature information may be, for example, constraint type, variable type, and objective function coefficient. The feature information is input into the Figure 4 The sub-problem solving strategy and solving parameters are processed in the general strategy generator shown in FIG. 1 , and the sub-problem solving strategy and solving parameters are obtained. For example, the solving strategy is a recommended heuristic algorithm combination, and the solving parameters are built-in parameters of the selected heuristic algorithm.

[0193] 307. Output sub-problem solving strategy and solving parameters.

[0194] 308. Solve the sub-problems based on the customized heuristic algorithm to obtain the solutions to each sub-problem.

[0195] In a possible implementation, different levels of heuristic solution strategies are called in order of priority from high to low to obtain feasible solutions to the sub-problems. Figure 7 FIG. 7 is a schematic diagram of a multi-priority heuristic solution method provided in an embodiment of the present application. The method may include steps 701-711, which are as follows:

[0196] 701. Input sub-problem data and the solution strategy and parameters corresponding to the sub-problem.

[0197] 702. Determine whether there is a user-defined heuristic algorithm.

[0198] For example, by receiving instructions input by the user, it is determined whether there is a user-defined heuristic algorithm.

[0199] 703. If yes, solve the subproblem based on the user-defined heuristic algorithm.

[0200] If there is a user-defined heuristic algorithm, illustratively, the algorithm can be called based on the user-defined heuristic algorithm callback interface to solve the sub-problem.

[0201] 704. If not, obtain the solution priority input by the user.

[0202] If there is no user-defined heuristic algorithm, the solution can be performed based on the user's instructions.

[0203] 705. If the solution priority is not lower than the first priority, execute step 706.

[0204] The first priority, for example, indicates that the solution speed is fast. Of course, it can also indicate other things, such as indicating the solution accuracy, quality, etc., which is not limited in this solution.

[0205] 706. Solve the sub-problems based on the recommended heuristic algorithm.

[0206] 707. If the solution priority is not lower than the second priority, execute step 708.

[0207] The second priority, for example, indicates that the solving speed is medium speed.

[0208] 708. Solve the sub-problems based on the recommended heuristic algorithm and the general heuristic.

[0209] That is, the solution is based on two heuristic algorithms. For an introduction to this part, please refer to Figure 2 The description of step 2043 in the illustrated embodiment will not be repeated here.

[0210] 709. If the solution priority is not lower than the third priority, execute step 709.

[0211] The third priority, for example, indicates that the solving speed is slow.

[0212] 710. Solve the subproblems based on the recommended heuristic algorithm, the general heuristic and the general solver.

[0213] That is, the solution is based on three heuristic algorithms. For an introduction to this part, please refer to Figure 2 The description of step 2043 in the illustrated embodiment will not be repeated here.

[0214] 711. Obtain a feasible solution to the subproblem.

[0215] based on Figure 7 By solving the illustrated method of steps 701-711, solutions to various sub-problems can be obtained.

[0216] 309. Perform synthesis processing on the solutions of the obtained sub-problems to obtain the solution of the read-in problem.

[0217] The feasible solutions of the sub-problems are synthesized, and then the feasible solution of the original problem is synthesized and then exited. The synthesis may be, for example, the concatenation, fine-tuning and verification of the solutions of all the sub-problems.

[0218] In this example, feature extraction and hyperparameter reasoning are performed on the original problem to obtain appropriate decomposition parameters of the original problem, and the original problem is decomposed based on the decomposition parameters to obtain at least one sub-problem; by performing feature extraction and hyperparameter reasoning on the sub-problem, appropriate sub-problem solving strategies and solving parameters are generated. This method can obtain a better decomposition method for solving large-scale problems; at the same time, it can improve the efficiency of solving sub-problems. On the other hand, by solving sub-problems through multi-priority heuristic strategies and supporting the import of user-defined heuristic algorithms, the system can maximize the use of the special structure of sub-problems, further improving the efficiency of solving.

[0219] Among them, although the embodiment of the present application is aimed at the heuristic algorithm of MILP problem, the feature of importing user-defined heuristic algorithm can be extended to other software architecture designs for solving MILP problems and features of customized algorithm import such as preprocessing, cutting plane, branching and node selection. This feature can help developers and users collaborate better in solving some MILP problems with special structures and protecting user privacy.

[0220] It should be noted that in the various embodiments of the present application, unless otherwise specified or there is a logical conflict, the terms and / or descriptions between the various embodiments are consistent and can be referenced mutually, and the technical features in different embodiments can be combined to form new embodiments according to their internal logical relationships.

[0221] The above detailed description of the method of the embodiment of the present application, the following provides a device of the embodiment of the present application. It can be understood that in the various device embodiments of the present application, the division of multiple units or modules is only a logical division according to function, and is not used as a limitation on the specific structure of the device. In a specific implementation, some functional modules may be subdivided into more small functional modules, and some functional modules may also be combined into one functional module, but no matter whether these functional modules are subdivided or combined, the general process performed by the device is the same. For example, some devices contain a receiving unit and a sending unit. In some designs, the sending unit and the receiving unit can also be integrated into a communication unit, which can implement the functions implemented by the receiving unit and the sending unit. Usually, each unit corresponds to its own program code (or program instruction), and when the program code corresponding to each of these units is run on the processor, the unit is controlled by the processing unit to execute the corresponding process to implement the corresponding function.

[0222] The embodiments of the present application also provide a device for implementing any of the above methods. For example, a mixed integer programming MILP problem solving device is provided, which includes a module (or means) for implementing each step performed by the server in any of the above methods.

[0223] For example, refer to Figure 8 FIG. 1 is a schematic diagram of a mixed integer programming MILP problem solving device provided in an embodiment of the present application. The mixed integer programming MILP problem solving device is used to implement the aforementioned mixed integer programming MILP problem solving method, for example Figure 2 The mixed integer programming MILP problem solving method shown.

[0224] like Figure 8 As shown, the device may include an acquisition module 801, a processing module 802, a decomposition module 803 and a solution module 804, which are specifically as follows:

[0225] An acquisition module 801 is used to acquire description information of a MILP problem, wherein the description information includes an objective function, variables, constraints, and integrity conditions, wherein the integrity conditions are used to specify that some or all of the variables are integers, and to perform feature extraction on the MILP problem using the description information of the MILP problem to obtain feature information of the MILP problem, wherein the feature information of the MILP is used to describe the problem structure and / or complexity of the MILP problem;

[0226] A processing module 802 is used to process the characteristic information of the MILP problem to obtain a decomposition parameter of the MILP problem, wherein the decomposition parameter of the MILP problem includes at least one of the number of problem decomposition blocks and a coupling variable ratio parameter;

[0227] A decomposition module 803, configured to decompose the MILP problem based on the decomposition parameters of the MILP problem to obtain at least one sub-problem;

[0228] The solving module 804 is used to solve the at least one sub-problem respectively to obtain a solution to the MILP problem.

[0229] Among them, the acquisition module 801, the processing module 802, the decomposition module 803 and the solution module 804 can all be implemented by software, or can be implemented by hardware. Exemplarily, the implementation of the acquisition module 801 is described below by taking the acquisition module 801 as an example. Similarly, the implementation of the processing module 802, the decomposition module 803 and the solution module 804 can refer to the implementation of the acquisition module 801.

[0230] As an example of a software functional unit, the acquisition module 801 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above-mentioned computing instance may be one or more. For example, the acquisition module 801 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including a data center or multiple data centers with close geographical locations. Among them, usually a region may include multiple AZs.

[0231] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.

[0232] As an example of a hardware functional unit, the acquisition module 801 may include at least one computing device, such as a server, etc. Alternatively, the acquisition module 801 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.

[0233] The multiple computing devices included in the acquisition module 801 can be distributed in the same region or in different regions. The multiple computing devices included in the acquisition module 801 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the acquisition module 801 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0234] It should be noted that, in other embodiments, the acquisition module 801 can be used to execute any step in the mixed integer programming MILP problem solving method, the processing module 802 can be used to execute any step in the mixed integer programming MILP problem solving method, the decomposition module 803 can be used to execute any step in the mixed integer programming MILP problem solving method, and the solution module 804 can be used to execute any step in the mixed integer programming MILP problem solving method. The steps that the acquisition module 801, the processing module 802, the decomposition module 803 and the solution module 804 are responsible for implementing can be specified as needed. The acquisition module 801, the processing module 802, the decomposition module 803 and the solution module 804 respectively implement different steps in the mixed integer programming MILP problem solving method to realize all the functions of the mixed integer programming MILP problem solving device.

[0235] In a possible implementation, the characteristic information of the MILP problem includes at least one of sparsity of a coefficient matrix, a distribution of non-zero elements, and a variable graph of the MILP problem.

[0236] Exemplarily, the processing module 802 is used to: input at least one of the sparsity, non-zero element distribution, and variable graph into a first strategy generator to obtain decomposition parameters of the MILP problem.

[0237] In a possible implementation, the solution module 804 is used to:

[0238] Performing feature extraction on the at least one sub-problem respectively to obtain feature information of the at least one sub-problem; the feature information includes at least one of a constraint type, a variable type, and an objective function coefficient;

[0239] Processing based on the characteristic information of each sub-problem in the at least one sub-problem to obtain a solution strategy for the at least one sub-problem and a solution parameter corresponding to the solution strategy, wherein the solution strategy includes a recommended heuristic algorithm;

[0240] Solve the at least one sub-problem using the solution strategy for the at least one sub-problem and solution parameters corresponding to the solution strategy to obtain a solution to the at least one sub-problem;

[0241] A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

[0242] In another possible implementation, the solution module 804 is used to:

[0243] Receive a first instruction input by a user, wherein the first instruction indicates a user-defined solution algorithm configured by the user, and the user-defined solution algorithm is used to solve the at least one sub-problem;

[0244] Solve the at least one sub-problem using the custom solving algorithm to obtain a solution to the at least one sub-problem;

[0245] A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

[0246] In yet another possible implementation, the device further includes a receiving module, configured to:

[0247] Receive a second instruction input by a user, wherein the second instruction indicates a solution algorithm, the solution algorithm is used to solve the at least one sub-problem, the solution algorithm includes at least one of a recommended heuristic algorithm, a general heuristic algorithm, and a general solution algorithm, the general heuristic algorithm is a preset heuristic algorithm, and the general solution algorithm is a non-heuristic algorithm;

[0248] The solving module 804 is used to solve the at least one sub-problem respectively using the solving algorithm indicated by the second instruction to obtain a solution to the MILP problem.

[0249] In a possible implementation, the second instruction includes a solution priority, where the solution priority represents a speed of solution. The solution module 804 is further configured to:

[0250] For the i-th subproblem in the at least one subproblem, i is a positive integer;

[0251] If the solution priority is not lower than the first priority, the recommended heuristic algorithm is used to solve the i-th sub-problem to obtain a solution to the i-th sub-problem.

[0252] In a possible implementation, the solving module 804 is further configured to:

[0253] If the solution priority is not lower than the second priority, the recommended heuristic algorithm and the general heuristic algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the first priority is higher than the second priority.

[0254] In a possible implementation, the solving module 804 is further configured to:

[0255] If the solution priority is not lower than the third priority, the recommended heuristic algorithm, the general heuristic algorithm and the general solution algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the second priority is higher than the third priority.

[0256] In a possible implementation, the solving module 804 is further configured to:

[0257] Solving the i-th subproblem using the recommended heuristic algorithm to obtain a first solution to the i-th subproblem;

[0258] Solving the i-th subproblem using the universal heuristic algorithm to obtain a second solution to the i-th subproblem;

[0259] Solving the i-th subproblem using the general solution algorithm to obtain a third solution to the i-th subproblem;

[0260] A solution to the i-th sub-problem is obtained based on the first solution to the i-th sub-problem, the second solution and the third solution.

[0261] For the introduction of the above modules, please refer to the description of the above embodiments, which will not be repeated here.

[0262] It should be understood that the division of each module in each of the above devices is only a division of logical functions, and in actual implementation, they can be fully or partially integrated into one physical entity, or they can be physically separated. In addition, the modules in the mixed integer programming MILP problem solving device can be implemented in the form of a processor calling software; for example, the mixed integer programming MILP problem solving device includes a processor, the processor is connected to a memory, the memory stores instructions, and the processor calls the instructions stored in the memory to implement any of the above methods or implement the functions of each module of the device, wherein the processor is, for example, a general-purpose processor, such as a central processing unit (CPU) or a microprocessor, and the memory is a memory inside the device or a memory outside the device. Alternatively, the modules in the device can be implemented in the form of hardware circuits, and the functions of some or all units can be realized by designing the hardware circuits, and the hardware circuits can be understood as one or more processors; for example, in one implementation, the hardware circuit is an application-specific integrated circuit (ASIC), and the functions of some or all of the above units are realized by designing the logical relationship of the components in the circuit; for another example, in another implementation, the hardware circuit can be realized by a programmable logic device (PLD), taking a field programmable gate array (FPGA) as an example, which can include a large number of logic gate circuits, and the connection relationship between the logic gate circuits is configured by a configuration file, so as to realize the functions of some or all of the above units. All modules of the above devices can be realized in the form of a processor calling software, or in the form of hardware circuits, or in part by a processor calling software, and the rest by hardware circuits.

[0263] The present application also provides a computing device 900. Fig. 9 As shown, the computing device 900 includes: a bus 902, a processor 904, a memory 906, and a communication interface 908. The processor 904, the memory 906, and the communication interface 908 communicate through the bus 902. The computing device 900 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in the computing device 900.

[0264] The bus 902 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig. 9 The bus 902 may include a path for transmitting information between various components of the computing device 900 (eg, the memory 906, the processor 904, and the communication interface 908).

[0265] The processor 904 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0266] The memory 906 may include a volatile memory, such as a random access memory (RAM). The processor 904 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).

[0267] The memory 906 stores executable program codes, and the processor 904 executes the executable program codes to respectively implement the functions of the aforementioned acquisition module, processing module, decomposition module, and solution module, thereby implementing the mixed integer programming MILP problem solving method. That is, the memory 906 stores instructions for executing the mixed integer programming MILP problem solving method.

[0268] The communication interface 908 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 900 and other devices or communication networks.

[0269] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.

[0270] like Fig.10 As shown, the computing device cluster includes at least one computing device 900. The memory 906 in one or more computing devices 900 in the computing device cluster may store the same instructions for executing the mixed integer programming MILP problem solving method.

[0271] In some possible implementations, the memory 906 of one or more computing devices 900 in the computing device cluster may also respectively store some instructions for executing the mixed integer programming MILP problem solving method. In other words, the combination of one or more computing devices 900 may jointly execute the instructions for executing the mixed integer programming MILP problem solving method.

[0272] It should be noted that the memory 906 in different computing devices 900 in the computing device cluster can store different instructions, which are respectively used to execute part of the functions of the mixed integer programming MILP problem solving device. That is, the instructions stored in the memory 906 in different computing devices 900 can realize the functions of one or more modules among the acquisition module, the processing module, the decomposition module and the solution module.

[0273] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network.

[0274] Fig.11 A possible implementation is shown. Fig.11 As shown, two computing devices 900A and 900B are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 906 in the computing device 900A stores instructions for executing the functions of the processing module 802. At the same time, the memory 906 in the computing device 900B stores instructions for executing the functions of the acquisition module 801, the decomposition module 803, and the solution module 804.

[0275] Fig.11The connection method between the computing device clusters shown can be based on the fact that the mixed integer programming MILP problem solving method provided in the present application needs to process a large amount of feature information of the MILP problem, so it is considered to entrust the functions implemented by the acquisition module 801, the decomposition module 803 and the solution module 804 to the computing device 900B for execution.

[0276] It should be understood that Fig.11 The functions of the computing device 900A shown in FIG. 9A may also be completed by multiple computing devices 900. Similarly, the functions of the computing device 900B may also be completed by multiple computing devices 900.

[0277] The embodiment of the present application also provides a computer program product comprising instructions. The computer program product may be a software or program product comprising instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device executes a mixed integer programming MILP problem solving method.

[0278] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the computing device to execute a mixed integer programming MILP problem solving method.

[0279] It should be understood that in the description of the present application, unless otherwise specified, " / " indicates that the objects associated before and after are in an "or" relationship, for example, A / B can represent A or B; wherein A and B can be singular or plural. Also, in the description of the present application, unless otherwise specified, "multiple" refers to two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, wherein a, b, c can be single or multiple. In addition, in order to facilitate the clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, the words "first", "second", etc. are used to distinguish the same items or similar items with substantially the same functions and effects. Those skilled in the art can understand that the words "first", "second", etc. do not limit the quantity and execution order, and the words "first", "second", etc. do not limit them to be necessarily different. Meanwhile, in the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete manner for ease of understanding.

[0280] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the division of the unit is only a logical function division, and there may be other division methods in actual implementation, for example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. The mutual coupling, direct coupling, or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0281] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0282] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that contains one or more available media integrations. The available medium may be a read-only memory (ROM), or a random access memory (RAM), or a magnetic medium, such as a floppy disk, a hard disk, a tape, a disk, or an optical medium, such as a digital versatile disc (DVD), or a semiconductor medium, such as a solid state disk (SSD), etc.

[0283] The above is only a specific implementation of the embodiment of the present application, but the protection scope of the embodiment of the present application is not limited thereto, and any changes or replacements within the technical scope disclosed in the embodiment of the present application should be included in the protection scope of the embodiment of the present application. Therefore, the protection scope of the embodiment of the present application should be based on the protection scope of the claims.

Claims

1. A method for solving a mixed integer programming (MILP) problem, characterized in that: include: Acquire description information of the MILP problem, the description information including an objective function, variables, constraints and integrity conditions, the integrity conditions being used to specify that some or all of the variables are integers, and use the description information of the MILP problem to perform feature extraction on the MILP problem to obtain feature information of the MILP problem, the feature information of the MILP being used to describe the problem structure and / or complexity of the MILP problem; Processing is performed based on the characteristic information of the MILP problem to obtain a decomposition parameter of the MILP problem, wherein the decomposition parameter of the MILP problem includes at least one of the number of problem decomposition blocks and a coupling variable ratio parameter; Decomposing the MILP problem based on the decomposition parameters of the MILP problem to obtain at least one sub-problem; The at least one sub-problem is solved separately to obtain a solution to the MILP problem.

2. The method according to claim 1, characterized in that The characteristic information of the MILP problem includes at least one of the coefficient matrix sparsity, non-zero element distribution, and variable graph of the MILP problem.

3. The method according to claim 1 or 2, characterized in that: The separately solving the at least one sub-problem to obtain a solution to the MILP problem includes: Performing feature extraction on the at least one sub-problem respectively to obtain feature information of the at least one sub-problem; the feature information includes at least one of a constraint type, a variable type, and an objective function coefficient; Processing based on the characteristic information of each sub-problem in the at least one sub-problem to obtain a solution strategy for the at least one sub-problem and a solution parameter corresponding to the solution strategy, wherein the solution strategy includes a recommended heuristic algorithm; Solve the at least one sub-problem using the solution strategy for the at least one sub-problem and solution parameters corresponding to the solution strategy to obtain a solution to the at least one sub-problem; A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

4. The method according to claim 1 or 2, characterized in that: The separately solving the at least one sub-problem to obtain a solution to the MILP problem includes: Receive a first instruction input by a user, wherein the first instruction indicates a user-defined solution algorithm configured by the user, and the user-defined solution algorithm is used to solve the at least one sub-problem; Solve the at least one sub-problem using the custom solving algorithm to obtain a solution to the at least one sub-problem; A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

5. The method according to claim 1 or 2, characterized in that: The method further comprises: Receive a second instruction input by a user, wherein the second instruction indicates a solution algorithm, the solution algorithm is used to solve the at least one sub-problem, the solution algorithm includes at least one of a recommended heuristic algorithm, a general heuristic algorithm, and a general solution algorithm, the general heuristic algorithm is a preset heuristic algorithm, and the general solution algorithm is a non-heuristic algorithm; The separately solving the at least one sub-problem to obtain a solution to the MILP problem includes: The at least one sub-problem is solved respectively using the solution algorithm indicated by the second instruction to obtain a solution to the MILP problem.

6. The method according to claim 5, characterized in that The second instruction includes a solution priority, the solution priority represents the speed of the solution, and the use of the solution algorithm indicated by the second instruction to solve the at least one sub-problem respectively to obtain a solution to the MILP problem includes: For the i-th subproblem in the at least one subproblem, i is a positive integer; If the solution priority is not lower than the first priority, the recommended heuristic algorithm is used to solve the i-th sub-problem to obtain a solution to the i-th sub-problem.

7. The method according to claim 6, characterized in that The method further comprises: If the solution priority is not lower than the second priority, the recommended heuristic algorithm and the general heuristic algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the first priority is higher than the second priority.

8. The method according to claim 6 or 7, characterized in that: The method further comprises: If the solution priority is not lower than the third priority, the recommended heuristic algorithm, the general heuristic algorithm and the general solution algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the second priority is higher than the third priority.

9. The method according to claim 8, characterized in that The respectively using the recommended heuristic algorithm, the general heuristic algorithm and the general solution algorithm to solve the i-th sub-problem to obtain a solution to the i-th sub-problem includes: Solving the i-th subproblem using the recommended heuristic algorithm to obtain a first solution to the i-th subproblem; Solving the i-th subproblem using the universal heuristic algorithm to obtain a second solution to the i-th subproblem; Solving the i-th subproblem using the general solution algorithm to obtain a third solution to the i-th subproblem; A solution to the i-th sub-problem is obtained based on the first solution to the i-th sub-problem, the second solution and the third solution.

10. A mixed integer programming MILP problem solving device, characterized in that: include: An acquisition module is used to acquire description information of the MILP problem, wherein the description information includes an objective function, variables, constraints, and integrity conditions, wherein the integrity conditions are used to specify that some or all of the variables are integers, and to perform feature extraction on the MILP problem using the description information of the MILP problem to obtain feature information of the MILP problem, wherein the feature information of the MILP is used to describe the problem structure and / or complexity of the MILP problem; A processing module, configured to process the characteristic information of the MILP problem to obtain a decomposition parameter of the MILP problem, wherein the decomposition parameter of the MILP problem includes at least one of the number of problem decomposition blocks and a coupling variable ratio parameter; A decomposition module, configured to decompose the MILP problem based on a decomposition parameter of the MILP problem to obtain at least one sub-problem; The solving module is used to solve the at least one sub-problem respectively to obtain a solution to the MILP problem.

11. The device according to claim 10, characterized in that The characteristic information of the MILP problem includes at least one of the coefficient matrix sparsity, non-zero element distribution, and variable graph of the MILP problem.

12. The device according to claim 10 or 11, characterized in that The solution module is used for: Performing feature extraction on the at least one sub-problem respectively to obtain feature information of the at least one sub-problem; the feature information includes at least one of a constraint type, a variable type, and an objective function coefficient; Processing based on the characteristic information of each sub-problem in the at least one sub-problem to obtain a solution strategy for the at least one sub-problem and a solution parameter corresponding to the solution strategy, wherein the solution strategy includes a recommended heuristic algorithm; Solve the at least one sub-problem using the solution strategy for the at least one sub-problem and solution parameters corresponding to the solution strategy to obtain a solution to the at least one sub-problem; A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

13. The device according to claim 10 or 11, characterized in that The solution module is used for: Receive a first instruction input by a user, wherein the first instruction indicates a user-defined solution algorithm configured by the user, and the user-defined solution algorithm is used to solve the at least one sub-problem; Solve the at least one sub-problem using the custom solving algorithm to obtain a solution to the at least one sub-problem; A solution to the MILP problem is obtained based on a solution to the at least one subproblem.

14. The device according to claim 10 or 11, characterized in that Also included is a receiving module for: Receive a second instruction input by a user, wherein the second instruction indicates a solution algorithm, the solution algorithm is used to solve the at least one sub-problem, the solution algorithm includes at least one of a recommended heuristic algorithm, a general heuristic algorithm, and a general solution algorithm, the general heuristic algorithm is a preset heuristic algorithm, and the general solution algorithm is a non-heuristic algorithm; The solution module is used for: The at least one sub-problem is solved respectively using the solution algorithm indicated by the second instruction to obtain a solution to the MILP problem.

15. The device according to claim 14, characterized in that The second instruction includes a solution priority, where the solution priority represents a speed of solution. For the i-th subproblem in the at least one subproblem, i is a positive integer, and the solution module is further used to: If the solution priority is not lower than the first priority, the recommended heuristic algorithm is used to solve the i-th sub-problem to obtain a solution to the i-th sub-problem.

16. The device according to claim 15, characterized in that The solution module is also used for: If the solution priority is not lower than the second priority, the recommended heuristic algorithm and the general heuristic algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the first priority is higher than the second priority.

17. The device according to claim 15 or 16, characterized in that The solution module is also used for: If the solution priority is not lower than the third priority, the recommended heuristic algorithm, the general heuristic algorithm and the general solution algorithm are used respectively to solve the i-th subproblem to obtain a solution to the i-th subproblem, wherein the second priority is higher than the third priority.

18. The device according to claim 17, characterized in that The solution module is also used for: Solving the i-th subproblem using the recommended heuristic algorithm to obtain a first solution to the i-th subproblem; Solving the i-th subproblem using the universal heuristic algorithm to obtain a second solution to the i-th subproblem; Solving the i-th subproblem using the general solution algorithm to obtain a third solution to the i-th subproblem; A solution to the i-th sub-problem is obtained based on the first solution to the i-th sub-problem, the second solution and the third solution.

19. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 9.

20. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 9.

21. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 9.