A data processing method, device and storage medium

By utilizing information from dual problems and constructing triangular structure matrices, the iterative path for large-scale production scheduling is optimized, solving the problem of high computational complexity in existing technologies and achieving fast and efficient production scheduling solutions.

CN116011606BActive Publication Date: 2025-11-07HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111227561.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-21
Publication Date
2025-11-07
Estimated Expiration
2041-10-21

AI Technical Summary

Technical Problem

Existing linear programming methods cannot effectively solve large-scale production scheduling problems, especially in production planning for multiple factories and multiple products. They are difficult to handle rapidly changing variables and constraints in a short period of time, resulting in high computational complexity and long iteration time.

Method used

By obtaining the objectives and constraints of the production scheduling plan, a linear programming problem is established. The information of the dual problem is used to determine the initial basic feasible solution. The augmented Lagrange algorithm and the Gauss-Seidel iteration method are combined to optimize the iteration path and construct a coefficient matrix with a triangular structure to reduce the amount of computation and improve convergence and efficiency.

Benefits of technology

The iteration steps and time of large-scale production scheduling have been optimized, improving the solution efficiency and enabling the processing of ultra-large-scale linear programming problems within minutes to meet factory production needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116011606B_ABST
    Figure CN116011606B_ABST
Patent Text Reader

Abstract

The application relates to a data processing method, device and storage medium. The method comprises the following steps: obtaining target and constraint condition information of a production scheduling plan, establishing a linear programming problem for solving the production scheduling plan, the production scheduling plan being a plan for producing target products; determining information of a dual problem of the linear programming problem; and determining a group of initial basic feasible solutions according to the information of the dual problem, the group of initial basic feasible solutions being used to calculate an optimal solution satisfying the target of the production scheduling plan under the linear programming problem according to a simplex method. According to the embodiment of the application, the information of the dual problem is used to solve the linear programming problem of the production scheduling plan, a group of initial basic feasible solutions which are more optimal and more suitable for subsequent solving can be determined, the iteration path during solving the linear programming problem can be optimized, and the time complexity during solving a large-scale linear programming problem can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of data processing, and in particular, to a data processing method and device and a storage medium. BACKGROUND

[0002] Production planning is a work of making overall arrangement for production tasks, and specifically, planning the variety, quantity and schedule of products. For large manufacturing enterprises, there are tens of thousands of components as production processing objects, and hundreds of thousands of processing requirements need to be completed by hundreds of production lines scattered in tens of processing locations. Production planning needs to connect and coordinate the uncertainty of upstream plans, and needs to take into account the restrictions of downstream manufacturing and logistics, and thus plays a crucial role. Among them, production scheduling can be a short-term production plan, which indicates the start processing time and end processing time of each order in the required resources within the planning range.

[0003] The mathematical model of multi-factory production scheduling abstracted from the production scheduling plan specified according to the goals of maximizing factory demand satisfaction and minimizing total cost, and the hard and soft constraints of actual business scenarios can be simplified as a linear programming problem. Since the actual production scheduling problem has the characteristics of large scale, short time and rapid change, the current linear programming solution method cannot meet the demand of solving large-scale production scheduling problems. SUMMARY

[0004] Therefore, the present application provides a data processing method and device and a storage medium.

[0005] In a first aspect, an embodiment of the present application provides a data processing method. The method comprises: obtaining target and constraint condition information of a production scheduling plan, establishing a linear programming problem for solving the production scheduling plan, the production scheduling plan being a plan for producing target products; determining information of a dual problem of the linear programming problem; and determining a set of initial basic feasible solutions according to the information of the dual problem, the set of initial basic feasible solutions being used to calculate an optimal solution satisfying the target of the production scheduling plan according to a simplex method.

[0006] According to the embodiment of the present application, by using the information of the dual problem to solve the linear programming problem of the production scheduling plan, a set of more optimal and more suitable initial basic feasible solutions for subsequent solving can be determined, so that the iteration path during solving the linear programming problem can be optimized, and the time complexity during solving large-scale linear programming problems can be reduced.

[0007] In a first possible implementation manner of the data processing method according to the first aspect, the set of initial basic feasible solutions is a set of initial basic feasible solutions of the linear programming problem, and determining the set of initial basic feasible solutions according to the information of the dual problem comprises: determining a set of non-precise solutions of the linear programming problem by updating a Lagrange multiplier by using a augmented Lagrange algorithm, wherein the Lagrange multiplier comprises the information of the dual problem; and projecting the set of non-precise solutions into a basic feasible solution set of the linear programming problem to determine the corresponding set of initial basic feasible solutions.

[0008] Therefore, the convergence process can be accelerated when the linear programming problem is solved subsequently.

[0009] In a second possible implementation manner of the data processing method according to the first possible implementation manner of the first aspect, the step of determining the set of non-precise solutions of the linear programming problem by updating the Lagrange multiplier by using the augmented Lagrange algorithm comprises: determining the set of non-precise solutions of the linear programming problem by using a Gauss-Seidel iteration method, wherein in one iteration, the number of traversed solution variables is greater than the total number of the solution variables.

[0010] Therefore, the convergence process can be accelerated when the linear programming problem is solved subsequently by using the simplex method, and the convergence of the linear programming problem is ensured.

[0011] In a third possible implementation manner of the data processing method according to the first or second possible implementation manner of the first aspect, the step of determining the set of non-precise solutions of the linear programming problem by updating the Lagrange multiplier by using the augmented Lagrange algorithm comprises: dividing the solution variables into a plurality of blocks of solution variables, wherein each block of solution variables comprises at least one solution variable; and determining the set of non-precise solutions of the linear programming problem by using the Gauss-Seidel iteration method, wherein the values of the solution variables in each block are calculated at a time.

[0012] Therefore, the linear programming problem in which the solution variables comprise non-smooth terms can be solved, and the time complexity is reduced.

[0013] In a fourth possible implementation manner of the data processing method according to the first aspect, the set of initial basic feasible solutions is a set of initial basic feasible solutions of the dual problem, and determining the set of initial basic feasible solutions according to the information of the dual problem comprises: determining a set of basic feasible solutions; constructing a coefficient matrix corresponding to the set of basic feasible solutions into a matrix with a triangular structure; and determining the set of initial basic feasible solutions according to the matrix with the triangular structure, wherein the number of structural variables included in the set of initial basic feasible solutions is greater than the number of structural variables included in the set of basic feasible solutions.

[0014] Therefore, if the initial set of basic feasible solutions contains more structural variables and the matrix with triangular structure has the advantages of easy inversion, simple construction, high sparsity and fast calculation, the number of iterations in the subsequent iteration of the simplex method for solving the optimal solution can be reduced, and the operation amount of each step can be reduced, thereby reducing the calculation time.

[0015] According to the fourth possible implementation manner of the first aspect, in the fifth possible implementation manner of the data processing method, the coefficient matrix corresponding to the set of basic feasible solutions is constructed as a matrix with triangular structure, including: calculating the row priority corresponding to each row and the column priority corresponding to each column in the active part of the coefficient matrix, and determining the row with the maximum row priority and the column with the maximum column priority in the coefficient matrix; determining the element corresponding to the row with the maximum row priority and the column with the maximum column priority, and transforming the coefficient matrix according to the element; removing the row with the maximum row priority and the column corresponding to the non-zero element in the row with the maximum row priority from the active part, and repeatedly performing the steps of calculating the row priority corresponding to each row and the column priority corresponding to each column in the active part of the coefficient matrix, and determining the row with the maximum row priority and the column with the maximum column priority in the coefficient matrix, and then constructing the coefficient matrix as a matrix with triangular structure.

[0016] Therefore, the matrix with triangular structure can be constructed, and the calculation amount in subsequent calculation can be reduced, and the time complexity can be reduced.

[0017] According to the fifth possible implementation manner of the first aspect, in the sixth possible implementation manner of the data processing method, the types of rows include: a row corresponding to an equality constraint condition, a row corresponding to a range constraint condition, a row corresponding to an inequality constraint condition, and a row corresponding to no constraint condition; and the row priorities of rows of different types are arranged in descending order.

[0018] According to the embodiments of the present application, by making the priority of the row corresponding to the more stringent constraint condition higher, if the initial set of basic feasible solutions contains more structural variables, the number of iterations in the subsequent iteration of the simplex method for solving the optimal solution can be reduced, and the time complexity can be reduced.

[0019] According to the fifth or sixth possible implementation manner of the first aspect, in the seventh possible implementation manner of the data processing method, the types of columns include: a column corresponding to a variable with an arbitrary value, a column corresponding to a variable with a non-negative value, a column corresponding to a variable with a bounded value, and a column corresponding to a variable with a fixed value; and the column priorities of columns of different types are arranged in descending order.

[0020] According to the embodiment of the present application, by making the priority of the column corresponding to the variable with higher uncertainty higher, if more structural variables are contained in the group of initial basic feasible solutions, the number of iterations when the optimal solution is iteratively solved by using the simplex method is less, and the time complexity is reduced.

[0021] In an eighth possible implementation of the data processing method according to the fifth or sixth or seventh possible implementation of the first aspect, the element corresponding to the row with the maximum row priority and the column with the maximum column priority is determined, and the coefficient matrix is transformed according to the element, including: determining at least one element corresponding to the row with the maximum row priority and the column with the maximum column priority; determining one element in which the column corresponding variable is a non-artificial variable; and transforming the coefficient matrix according to the one element in which the column corresponding variable is a non-artificial variable.

[0022] In this way, the group of initial basic feasible solutions finally obtained can include less artificial variables, so that the number of iterations when the linear programming problem is solved subsequently is reduced, and the time complexity is reduced.

[0023] In a second aspect, an embodiment of the present application provides a data processing device, including: an establishing module configured to acquire target and constraint condition information of a production scheduling plan, and establish a linear programming problem for solving the production scheduling plan, the production scheduling plan being a plan for producing target products; a first determining module configured to determine information of a dual problem of the linear programming problem; and a second determining module configured to determine a group of initial basic feasible solutions according to the information of the dual problem, the group of initial basic feasible solutions being used to calculate an optimal solution satisfying the target of the production scheduling plan according to a simplex method.

[0024] According to the second aspect, in a first possible implementation of the data processing device, the group of initial basic feasible solutions is a group of initial basic feasible solutions of the linear programming problem, and the second determining module includes: updating a Lagrange multiplier by using an augmented Lagrange algorithm to determine a group of non-accurate solutions of the linear programming problem, wherein the Lagrange multiplier includes the information of the dual problem; and projecting the group of non-accurate solutions into a basic feasible solution set of the linear programming problem to determine the corresponding group of initial basic feasible solutions.

[0025] According to the first possible implementation of the second aspect, in a second possible implementation of the data processing device, the updating of the Lagrange multiplier by using the augmented Lagrange algorithm to determine the group of non-accurate solutions of the linear programming problem includes: determining the group of non-accurate solutions of the linear programming problem by using a Gauss-Seidel iteration method, wherein in one iteration, the number of traversed solution variables is greater than the total number of the solution variables.

[0026] In a third possible implementation form of the data processing apparatus according to the first or second possible implementation form of the second aspect, the augmented Lagrangian algorithm is used to update the Lagrangian multipliers, and the set of inexact solutions of the linear programming problem is determined, including: dividing each solution variable into a plurality of blocks of solution variables, wherein at least one solution variable is included in each block of solution variables; and using a Gauss-Seidel iteration method to determine the set of inexact solutions of the linear programming problem, wherein the values of the solution variables in each block are calculated at a time.

[0027] In a fourth possible implementation form of the data processing apparatus according to the second aspect, the set of initial basic feasible solutions is a set of initial basic feasible solutions of the dual problem, and the second determining module includes: determining a set of basic feasible solutions; constructing a coefficient matrix corresponding to the set of basic feasible solutions as a matrix having a triangular structure; and determining the set of initial basic feasible solutions according to the matrix having a triangular structure, wherein the number of structural variables included in the set of initial basic feasible solutions is greater than the number of structural variables included in the set of basic feasible solutions.

[0028] In a fifth possible implementation form of the data processing apparatus according to the fourth possible implementation form of the second aspect, the step of constructing the coefficient matrix corresponding to the set of basic feasible solutions as a matrix having a triangular structure includes: calculating a row priority corresponding to each row and a column priority corresponding to each column in an active part of the coefficient matrix, and determining a row with the largest row priority and a column with the largest column priority in the coefficient matrix; determining an element corresponding to the row with the largest row priority and the column with the largest column priority, and transforming the coefficient matrix according to the element; removing the row with the largest row priority and a column corresponding to a non-zero element in the row with the largest row priority from the active part of the coefficient matrix; and repeating the steps of calculating a row priority corresponding to each row and a column priority corresponding to each column in an active part of the coefficient matrix, determining a row with the largest row priority and a column with the largest column priority in the coefficient matrix, and transforming the coefficient matrix according to the element.

[0029] In a sixth possible implementation form of the data processing apparatus according to the fifth possible implementation form of the second aspect, the types of rows include: a row corresponding to an equality constraint, a row corresponding to a range constraint, a row corresponding to an inequality constraint, and a row corresponding to no constraint, and the row priorities corresponding to the rows of each type are arranged in descending order.

[0030] In a seventh possible implementation manner of the data processing apparatus according to the fifth or sixth possible implementation manner of the second aspect, the types of the columns include: a column with an arbitrary variable, a column with a non-negative variable, a column with a bounded variable, and a column with a fixed variable; wherein the column priorities corresponding to the columns of each type are arranged in descending order.

[0031] In an eighth possible implementation manner of the data processing apparatus according to the fifth, sixth or seventh possible implementation manner of the second aspect, the determining the element corresponding to the row with the largest row priority and the column with the largest column priority, and transforming the coefficient matrix according to the element, comprises: determining at least one element corresponding to the row with the largest row priority and the column with the largest column priority; determining one element in the at least one element, in which the variable corresponding to the column is a non-artificial variable; and transforming the coefficient matrix according to the one element in which the variable corresponding to the column is the non-artificial variable.

[0032] In a third aspect, the embodiments of the present application provide a data processing apparatus, comprising: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to implement the data processing method of the first aspect or one or more of the possible implementation manners of the first aspect when executing the instructions.

[0033] In a fourth aspect, the embodiments of the present application provide a non-volatile computer-readable storage medium having computer program instructions stored thereon, wherein the computer program instructions are executed by a processor to implement the data processing method of the first aspect or one or more of the possible implementation manners of the first aspect.

[0034] In a fifth aspect, the embodiments of the present application provide a terminal device, which can execute the data processing method of the first aspect or one or more of the possible implementation manners of the first aspect.

[0035] In a sixth aspect, the embodiments of the present application provide a computer program product, comprising computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, when the computer-readable code is executed in an electronic device, a processor in the electronic device executes the data processing method of the first aspect or one or more of the possible implementation manners of the first aspect.

[0036] These and other aspects of the present application will become more apparent in the following description of (one or more) embodiments. BRIEF DESCRIPTION OF DRAWINGS

[0037] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate examples of the present application, and together with the description, serve to explain the principles of the present application.

[0038] Figure 1 A schematic diagram showing an application scenario according to an embodiment of the present application.

[0039] Figure 2 A flow chart showing a data processing method according to an embodiment of the present application.

[0040] Figure 3 A schematic diagram showing determination of a set of inexact solutions using Gauss-Seidel iteration according to an embodiment of the present application.

[0041] Figure 4 A flow chart showing a data processing method according to an embodiment of the present application.

[0042] Figure 5 A structural diagram showing a data processing apparatus according to an embodiment of the present application.

[0043] Figure 6 A structural diagram showing a data processing apparatus according to an embodiment of the present application. DETAILED DESCRIPTION

[0044] Various example embodiments, features and aspects of the present application will be described in detail with reference to the accompanying drawings. The same reference numbers in different drawings denote the same or similar elements. Although various aspects of embodiments are illustrated in the drawings, the drawings are not necessarily drawn to scale unless specifically noted.

[0045] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other implementations.

[0046] In addition, for the purpose of convenience and brevity, detailed descriptions of well-known devices, methods, procedures, components and circuits will not be described in detail since they would be apparent to one skilled in the art. The skilled person will understand that the present application can be practiced without certain specific details, which are provided in the following detailed description for purposes of illustration.

[0047] Figure 1A schematic diagram showing an application scenario according to an embodiment of the present application. The data processing method of an embodiment of the present application can be used in a scenario where a factory formulates a production scheduling plan. The production scheduling plan is a plan for producing target products, and can indicate the start processing time and the end processing time of each product order in the plan range on a corresponding resource, i.e., the processing procedure of the order on the corresponding resource. The production scheduling plan can be abstracted as a linear programming problem. In this linear programming problem, the objective function can be determined according to the production scheduling plan formulated as needed, and the constraint conditions can be determined according to soft constraints and / or hard constraints in the actual business scenario of the factory, for example, the production rules of each factory and product line, the upper limit of production capacity, whether the raw materials can be matched, the article substitution rules, etc. By solving the linear programming problem, the production scheduling plan can maximize the factory demand, minimize the total cost, etc.

[0048] In actual scenarios, the production scheduling plans of multiple factories and multiple products usually need to be formulated jointly, and therefore the corresponding linear programming problem to be solved is usually of a super large scale, i.e., the scale of variables and constraints exceeds the order of millions, and even reaches the order of ten millions. In this case, the solution needs to be obtained within minutes, and the input variables and constraint conditions change rapidly, and the iteration frequency during calculation is high. In an embodiment of the present application, the simplex method is used to solve such a linear programming problem. In the process of solving the linear programming problem by using the simplex method, a group of basic feasible solutions corresponding to the solution variables can be determined as the initial basic feasible solution. If there is no basic feasible solution, the problem has no solution. After the initial basic feasible solution is determined, the initial basic feasible solution can be taken as the starting point, and the basic feasible solution can be updated through iteration until a predetermined condition is met, and the optimal solution of the problem can be finally obtained, so as to determine the corresponding production scheduling plan.

[0049] As shown in Figure 1 , any point in the space in the figure can correspond to different solutions (including feasible solutions and infeasible solutions) in the linear programming problem, and each vertex on the polyhedron in the figure can correspond to a different basic feasible solution of the linear programming problem. Figure 1 The polyhedrons in (a) and Figure 1 (b) can correspond to the same linear programming problem. Figure 1 As shown in (a) and Figure 1 (b), different vertices on the polyhedron can be selected as the initial basic feasible solution before starting iteration, Figure 1 As shown in (a) and Figure 1 (b), the arrows in (a) and (b) can respectively represent the iteration paths in the process of solving the linear programming problem by using the simplex method. The iteration paths corresponding to different initial basic feasible solutions are usually different. The point pointed to by the last arrow in the path is the optimal solution to which the linear programming problem converges finally. As shown in the figure, the iteration path corresponding to the initial basic feasible solution in (a) is different from the iteration path corresponding to the initial basic feasible solution in (b). Figure 1The initial basic feasible solution in (a) needs 5 iterations (corresponding to the 5 arrows in (a)) to get the optimal solution. Figure 1 The initial basic feasible solution in (b) needs only 3 iterations (corresponding to the 3 arrows in (b)) to get the optimal solution. It can be seen that a good initial basic feasible solution can optimize the iteration path, thereby reducing the iteration steps and iteration time, so as to efficiently search for the optimal solution. Figure 1 The initial basic feasible solution in (b) needs only 3 iterations (corresponding to the 3 arrows in (b)) to get the optimal solution. It can be seen that a good initial basic feasible solution can optimize the iteration path, thereby reducing the iteration steps and iteration time, so as to efficiently search for the optimal solution. Figure 1 The initial basic feasible solution in (b) needs only 3 iterations (corresponding to the 3 arrows in (b)) to get the optimal solution. It can be seen that a good initial basic feasible solution can optimize the iteration path, thereby reducing the iteration steps and iteration time, so as to efficiently search for the optimal solution.

[0050] The data processing method of the embodiment can optimize the method for determining the initial basic feasible solution in the linear programming problem, thereby reducing the iteration steps and iteration time in subsequent iterations, and realizing more efficient determination of the large-scale production scheduling plan and optimization of the product production process.

[0051] It should be noted that the present application can also be used in other application scenarios other than determining the production scheduling plan, such as product transportation and delivery plans.

[0052] The data processing method of the present application will be described below with reference to the determination of the production scheduling plan. See Figure 2 , Figure 2 A flowchart of the data processing method according to an embodiment of the present application is shown. As shown in Figure 2 The steps of the data processing method according to an embodiment of the present application include:

[0053] In step S201, the target and constraint condition information of the production scheduling plan are obtained, and a linear programming problem for solving the production scheduling plan is established, the production scheduling plan being a plan for producing target products.

[0054] The target of the production scheduling plan can be to minimize the total cost of producing the target products, and the constraint condition information can include the production rules, the upper limit of the production capacity, whether the raw materials can be matched, and the article substitution rules of the above-mentioned factories and product lines. The objective function of the linear programming problem can be determined according to the target of the production scheduling plan, and the objective function can indicate the total cost. The variables in the objective function can represent, for example, the start processing time / end processing time on different production lines. The constraint conditions of the linear programming problem can be determined according to the constraint condition information of the production scheduling plan. The linear programming problem is solved, i.e., the values of the variables in the objective function are determined when the value of the objective function is minimum (the total cost is minimum), thereby determining the production scheduling plan. The target of the production scheduling plan can also be other targets according to needs. The present application does not limit this.

[0055] The establishing of the linear programming problem for solving the production scheduling plan can include determining a primal model or a presolved model of the linear programming problem. The presolved model can be a model with a smaller scale than the primal model obtained through a series of equivalent substitutions.

[0056] The primal model or the presolved model of the linear programming problem, for example, is min {c T x | Ax = b, x ≥ 0}, can correspond to the production scheduling plan to be determined. Wherein, c T x can represent an objective function indicating the total cost size, which can be determined according to the goal of the production scheduling plan, wherein c represents a coefficient matrix, x can represent the variable to be solved, x can include multiple components, each component can represent the start time / end time of processing on different production lines, and the value of x when c T x is minimized (i.e., the optimal solution) to achieve the goal of minimizing the total cost (i.e., the goal of the production scheduling plan). Ax = b and x ≥ 0 can represent the constraint conditions of the linear programming problem, wherein the values of A and b can indicate the production rules of each product line, which can be determined according to the constraint condition information described above.

[0057] Step S202, determining information of a dual problem of the linear programming problem;

[0058] The information of the dual problem can include, for example, the Lagrange multipliers of the dual problem, etc.

[0059] Since each linear programming problem (which can be referred to as a primal problem) has a corresponding dual linear programming problem (i.e., a dual problem), and when the dual problem has a feasible solution, the optimal objective function value of the dual problem is equal to the optimal objective function value of the primal problem, when solving the linear programming problem using the simplex method, the corresponding dual problem of the linear programming problem can be established, thereby determining the information of the dual problem of the linear programming problem, and solving the linear programming problem using the determined information of the dual problem.

[0060] Step S203, determining a set of initial basic feasible solutions according to the information of the dual problem.

[0061] The set of initial basic feasible solutions is used to calculate the optimal solution of the linear programming problem satisfying the goal of the production scheduling plan according to the simplex method.

[0062] The simplex method can include a primal simplex method and a dual simplex method. After determining the set of initial basic feasible solutions, the primal simplex method or the dual simplex method can be selected to solve the linear programming problem corresponding to the model according to the structure and properties of the linear programming problem, i.e., to solve the variable x (which can include components x1-x n, n can represent the number of components in the variable.

[0063] According to the embodiments of the present application, by solving the linear programming problem of the production scheduling plan by using the information of the dual problem, a set of more optimal and more suitable initial basic feasible solutions for subsequent solving can be determined, so that the iteration path when solving the linear programming problem can be optimized, and the time complexity when solving the linear programming problem can be reduced.

[0064] Optionally, when solving the linear programming problem by using the original simplex method, step S203 can include the following steps S204-S205, and when solving the linear programming problem by using the dual simplex method, step S203 can also include the following steps S206-S208.

[0065] The set of initial basic feasible solutions determined according to steps S204-S205 can be used for iterative calculation by using the original simplex method, and finally the optimal solution of the linear programming problem can be determined; the set of initial basic feasible solutions determined according to steps S206-S208 can be used for iterative calculation by using the dual simplex method, and finally the optimal solution of the linear programming problem can be determined.

[0066] Step S204: updating the Lagrange multiplier by using the augmented Lagrange algorithm to determine a set of inexact solutions of the linear programming problem.

[0067] The Lagrange multiplier includes the information of the dual problem, for example, the Lagrange multiplier can be determined according to the Lagrange multiplier of the dual problem, and the Lagrange multiplier is, for example, λ in the following formula (2), formula (5), formula (9), and z in formula (10). Thus, the process of accelerating the convergence when subsequently solving the linear programming problem can be accelerated.

[0068] The set of inexact solutions of the linear programming problem can refer to a set of inexact solutions of the variable x. One way to determine a set of inexact solutions of the linear programming problem can be seen from formula (1)-formula (2):

[0069]

[0070] λ k+1 = λ k + γμ k (Ax k+1 -b) formula (2)

[0071] Formula (1)-formula (2) can represent the way of k+1th iteration calculation in the process of determining a set of inexact solutions by using the augmented Lagrange algorithm, and k can represent the iteration number corresponding to the variable x. Wherein, the x solved by formula (1) is a set of inexact solutions (corresponding to components x1-xn). n), through multiple iterations until a predetermined condition, a final set of inexact solutions can be determined, in the process, the Lagrange multiplier can be iteratively updated by formula (2). The corresponding augmented Lagrangian function can be represented. Lambda can represent the Lagrange multiplier in the solving process, lambda can be determined according to the Lagrange multiplier of the dual problem, so as to contain the information of the dual problem, Ax k+1 -b can correspond to the constraint equation Ax = b of the original problem. Mu k The penalty term parameter of formula (4) can be represented Gamma can represent a predetermined parameter. By introducing the information of the dual problem in the solving process, a set of initial basic feasible solutions more suitable for the simplex method to iteratively solve the linear programming problem can be finally determined.

[0072] In one possible implementation, step S204 can include: determining a set of inexact solutions of the linear programming problem by using the Gauss-Seidel iteration method. In one iteration, the number of traversed solution variables is greater than the total number of solution variables.

[0073] Wherein, the solution variable can refer to each component of the variable x, and one way of determining a set of inexact solutions of the linear programming problem by using the Gauss-Seidel iteration method can refer to the second method in Figure 3 Figure 3 A schematic diagram of determining a set of inexact solutions by using the Gauss-Seidel iteration method according to an embodiment of the present application is shown. As Figure 3 shown, in the first method, one cycle can be solved from x1 to x n , iteratively solved until a predetermined threshold is met, to determine a set of inexact solutions of the variable x. In the second method, one cycle can also be solved from x1 to x n , and then solved back to x1, iteratively solved until a predetermined threshold is met (i.e. in one iteration, the number of traversed solution variables is greater than the total number of solution variables), to determine a set of inexact solutions of the variable x. By determining a set of inexact solutions by using the second method, the convergence can be guaranteed when subsequently solving the linear programming problem by using the simplex method, i.e. an optimal solution can be finally determined. In the second method, the process of cyclic iteration solving presents a symmetrical effect in structure. The way of determining a set of inexact solutions by using the second method can refer to formula (3)-formula (5):

[0074]

[0075]

[0076] Lambda k+1 = lambda k + tau (b-Ax k+1 ) formula (5) ​

[0077] where i can represent the serial number of the component of x, and the value range is 1-n. may represent the first calculated x in the k+1th iteration i corresponding non-precise solution, may represent the second calculated x in the k+1th iteration i corresponding non-precise solution. In one iteration, the values of corresponding may be calculated in sequence using formula (3). Wherein, may represent the augmented Lagrangian function corresponding to the original problem, may represent the non-precise solution corresponding to the component with serial number <i in the kth iteration, may represent the non-precise solution corresponding to the component with serial number >i in the kth iteration calculated for the second time. Then, the values of corresponding may be calculated in sequence using formula (4). Finally, the value of λ can be updated using formula (5), wherein λ can be determined according to the Lagrange multiplier of the dual problem, τ can be a preset parameter representing the step size, and σ can be a preset penalty term parameter.

[0078] Since the constraint condition is usually complex in large-scale scheduling problems, on the basis of the second method described above, a variable s can be introduced, a constraint condition x=s can be added, and a linear equation group c T x and cone constraint (for example, non-negative cone constraint) δ(s) can be separated, so that the variable x and the variable s can be separated and iterated to process scheduling problems with complex constraint conditions, and the subsequent calculation of the optimal solution has convergence. See formula (6)-(10):

[0079]

[0080]

[0081]

[0082] λ k+1 = λ k + τσ(b-Ax k+1 ) formula (9)

[0083] z k+1 = z k + τσ(s k+1 -x k+1 ) formula (10)

[0084] In one iteration, the values of corresponding may be calculated in sequence using formula (6). Wherein, The augmented Lagrangian function can represent the equivalent problem after introducing the variable s. Then, the value of s can be calculated by using formula (7), s k+1 The value of s in the k+1 iteration can be represented. Then, the values of can be calculated in turn by using formula (8). Finally, the values of λ and z can be updated by using formula (9) and formula (10) respectively, λ can be determined according to the Lagrange multiplier of the dual problem, and z can represent the Lagrange multiplier corresponding to the constraint equation x=s in the solving process, which can be determined according to the Lagrange multiplier of the dual problem.

[0085] In a possible implementation, step S204 can include: dividing each solution variable into multiple blocks of solution variables; and determining a set of inexact solutions of the linear programming problem by using the Gauss-Seidel iteration method.

[0086] Each block of solution variables includes at least one solution variable, and the values of the solution variables in each block are calculated at a time.

[0087] That is, in the process of calculating a set of inexact solutions based on the Gauss-Seidel algorithm, x i (or ) can represent a single component or a block of components, that is, n can represent the number of components of x or the number of blocks after the components of x are divided into blocks, and the values of the solution variables in each block are calculated at a time, for example, the values of the components in each block are calculated at a time during the calculation.

[0088] For example, for 10 components of x, they can be divided into 5 blocks, for example, components x1 and x2 form one block, components x3 and x4 form one block, and so on, and the 5 blocks are equally divided, or the number of components in each block is different, which is not limited in the present application. By dividing the components into blocks, the linear programming problem in which the solution variables include non-smooth terms can be solved.

[0089] Step S205 projects the set of inexact solutions into the set of basic feasible solutions of the linear programming problem to determine a corresponding set of initial basic feasible solutions.

[0090] The set of inexact solutions can be projected onto the set of basic feasible solutions in the model by using the crossover technique to determine a set of initial basic feasible solutions.

[0091] For example, the set of inexact solutions determined in step S204 can not fully satisfy the constraint conditions, for example, the set of inexact solutions can not satisfy the constraint conditions Figure 1Any point in the figure can be regarded as being projected onto a vertex of the polyhedron in the figure by using the crossover technique, for example, a vertex of the polyhedron closest to the point corresponding to the set of inexact solutions, so that a variable not satisfying the constraint condition becomes a variable satisfying the constraint condition. Thus, a set of basic feasible solutions corresponding to the vertex can be determined as a set of initial basic feasible solutions.

[0092] Another implementation of step S203 will be described below in combination with steps S206-S208.

[0093] Step S206: determining a set of basic feasible solutions.

[0094] The dual problem of the linear programming problem can be fine-tuned to determine a set of basic feasible solutions corresponding to the fine-tuned problem. When determining a set of basic feasible solutions, the coefficient matrix corresponding to the set of basic feasible solutions can be set as an identity matrix. For example, an identity matrix can be included in the coefficient matrix A by adding artificial variables to determine a set of basic feasible solutions corresponding to the identity matrix. The set of basic feasible solutions can include some components of the variable x (which can be referred to as structural variables) or logical variables such as slack variables / artificial variables.

[0095] Step S207: constructing the coefficient matrix corresponding to the set of basic feasible solutions as a matrix with a triangular structure.

[0096] Since more structural variables or logical variables that are unit vectors in the initial basic feasible solutions can enable faster convergence to an optimal solution when subsequently solving the linear programming problem, and a matrix with a triangular structure has advantages such as easy inversion, simple construction, high sparsity, and fast calculation, a coefficient matrix A (the coefficients can refer to the coefficients of variables) with a triangular structure that includes more structural variables or logical variables that are unit vectors can be constructed in the present application, so that the number of iterations when subsequently solving an optimal solution by the simplex method is smaller, and the amount of calculation at each step can also be reduced, thereby reducing the calculation time. For example, the coefficient matrix A can be transformed into a lower triangular matrix, so that as many logical variables as possible included in the basic feasible solution are removed and replaced by more structural variables. In each transformation, an element (which can be referred to as a pivot element) can be determined, and the pivot element is moved to the upper left corner of the active part in the matrix A by matrix transposition each time. The active part can indicate the rows and columns of the matrix that participate in the transformation, and the active part can be updated after moving the pivot element each time.

[0097] Step S208: determining a set of initial basic feasible solutions according to the matrix with a triangular structure.

[0098] The large M method in the two-stage method, the simplex table and other methods can be utilized to determine an initial basic feasible solution according to the matrix with the triangular structure constructed above, and the number of the structural variables included in the initial basic feasible solution determined in this way is greater than the number of the structural variables included in the basic feasible solution, so that the optimal solution can be obtained more quickly in the subsequent solving of the linear programming problem.

[0099] The implementation process of step S207 is described below in detail with reference to Figure 4 , Figure 4 A flow chart of the data processing method according to an embodiment of the present application is shown. As shown in Figure 4 , step S207 can include:

[0100] In step S2071, the row priority corresponding to each row and the column priority corresponding to each column in the active part of the coefficient matrix are calculated, and the row with the maximum row priority and the column with the maximum column priority in the coefficient matrix are determined.

[0101] The row with the maximum row priority can refer to the row with the maximum value of the row priority function, and the column with the maximum column priority can refer to the column with the maximum value of the column priority function.

[0102] In a possible implementation, in the process of selecting the pivot element each time, each row and each column in the active part of the matrix A can be traversed, where the active part can include all rows and columns in the matrix in the first traversal. The value of the row priority function corresponding to each row and the value of the column priority function corresponding to each column are calculated to determine the row with the maximum row priority and the column with the maximum column priority in the coefficient matrix.

[0103] In the calculation of the value of the row priority function and the value of the column priority function, a row priority correspondence table and a column priority correspondence table can be determined first. Since each row in the coefficient matrix can correspond to a constraint condition (for example, one row can correspond to Ax = b, and another row can correspond to x > 0), and each column can correspond to a variable (for example, one column can correspond to variable x1, and another column can correspond to variable s), according to the type of different constraint conditions and the type of different variables, the corresponding rows and columns can be classified into different types. For example, the constraint condition 3x1+4x2+s+2k=0 corresponds to the row [3, 4, 1, 2] in the coefficient matrix A, where the first element '3' represents the coefficient of variable x1, the second element '4' represents the coefficient of variable x2, the third element '1' represents the coefficient of variable s, and the fourth element '2' represents the coefficient of variable k. And the constraint condition 5x1+6s>0 corresponds to the row [5, 0, 6, 0] in the coefficient matrix A, where the first element '5' represents the coefficient of variable x1, the second element '0' represents the coefficient of variable x2, the third element '6' represents the coefficient of variable s, and the fourth element '0' represents the coefficient of variable k. Correspondingly, the first column corresponds to variable x1, the second column corresponds to variable x2, the third column corresponds to variable s, and the fourth column corresponds to variable k.

[0104] In a possible implementation, the types of rows include: a row corresponding to an equality constraint condition, a row corresponding to a range constraint condition, a row corresponding to an inequality constraint condition, and a row corresponding to no constraint condition; and the row priorities of rows of different types are arranged in descending order.

[0105] In a possible implementation, the types of columns include: a column corresponding to a variable with an arbitrary value, a column corresponding to a variable with a non-negative value, a column corresponding to a variable with a bounded value, and a column corresponding to a variable with a fixed value; and the column priorities of columns of different types are arranged in descending order.

[0106] The row priority correspondence table thus determined can be seen in Table 1, and the column priority correspondence table can be seen in Table 2:

[0107] Table 1 Row priority correspondence table

[0108] Row Type Priority Remark 0 3 Row corresponding to equality constraint 1 2 Row corresponding to range constraint 2 1 Row corresponding to "<" or ">" constraint 3 0 Row corresponding to no constraint

[0109] Table 2 Column priority correspondence table

[0110] Column Type Priority Remark 0 0 Corresponding variable is fixed 1 1 Corresponding variable is bounded 2 2 Corresponding variable is non-negative 3 3 Corresponding variable is arbitrary

[0111] One way to calculate the value of the row priority function can be seen in formula (11):

[0112] RPF(m) = RP(RT(m)) - 10 x RC(m) (11)

[0113] where RPF(m) can represent a value of the row priority function corresponding to the mth row. RT(m) can represent a row type value corresponding to the mth row. RP(RT(m)) can represent a value of the priority corresponding to the mth row. RC(m) can represent a number of non-zero elements contained in the column of the active part in the mth row.

[0114] At each time of traversal, the row r corresponding to the maximum value of RPF in the row of the active part can be selected first, see equation (12):

[0115] r = max{RPF(m)}, m e AR (12)

[0116] where AR can represent a set of rows of the active part.

[0117] One way of calculating the value of the column priority function can be seen in equation (13):

[0118] CPF(n) = CP(CT(n)) - 10 x CC(n) (13)

[0119] where CPF(n) can represent a value of the row priority function corresponding to the nth column. CT(n) can represent a column type value corresponding to the nth column. CP(CT(n)) can represent a value of the priority corresponding to the nth column. CC(n) can represent a number of non-zero elements contained in the row of the active part in the nth column.

[0120] After the corresponding row r is selected, the column k corresponding to the maximum value of CPF in the active part of the column intersecting r can be selected, see equation (14):

[0121] k = max{CPF(n)}, n e RI(r) (14)

[0122] where RI(r) can represent a set of columns of the active part intersecting r.

[0123] Step S2072, determining an element corresponding to the row with the maximum row priority and the column with the maximum column priority, and transforming the coefficient matrix according to the element;

[0124] The element, for example, is an element corresponding to the row r with the maximum row priority and the column k with the maximum column priority, which can be called a pivot element. When constructing the coefficient matrix of the lower triangular structure, the coefficient matrix is transformed, for example, the pivot element is moved to the upper left corner of the active part in the matrix A.

[0125] Step S2073: Remove the row with the highest row priority and the column corresponding to the non-zero element in the row with the highest row priority from the active part, and repeat step S2071 and subsequent steps to construct the coefficient matrix into a matrix with a triangular structure.

[0126] Specifically, after moving the pivot element to the top left corner of the active part of matrix A, the row corresponding to the pivot element and the column corresponding to the non-zero element in the corresponding row are moved out of the active part. Steps S2071 to S2073 can be repeated until all rows or all columns are moved out of the active part, thereby constructing a matrix with a triangular structure.

[0127] In one possible implementation, step S2072 may include: determining at least one element corresponding to the row with the highest row priority and the column with the highest column priority; determining that among the at least one element, the variable corresponding to the column is a non-manual variable; and transforming the coefficient matrix based on the non-manual variable element.

[0128] For example, in a certain iteration, if there are multiple pivot elements with the same priority function for corresponding columns, and each column corresponds to variables x1, s, and k respectively, where x1 is a structural variable and s and k are artificial variables, then a pivot element corresponding to a non-artificial variable (i.e., the element corresponding to x1) can be selected as the last pivot element.

[0129] Optionally, if there are multiple pivot elements with the same priority function, and the columns of these multiple pivot elements all correspond to artificial variables, one column can be randomly selected as the pivot column, that is, one pivot element can be randomly selected as the final pivot element.

[0130] This allows the final set of initial basic feasible solutions to include fewer artificial variables, thereby reducing the number of iterations required to solve the linear programming problem and lowering the time complexity.

[0131] Figure 5 A structural diagram of a data processing apparatus according to an embodiment of this application is shown. Figure 5 As shown, the device includes:

[0132] Module 501 is established to obtain the target and constraint information of the production scheduling plan and to establish a linear programming problem for solving the production scheduling plan, wherein the production scheduling plan is a plan for producing the target product;

[0133] The first determining module 502 is used to determine information about the dual problem of the linear programming problem;

[0134] The second determining module 503 is configured to determine a set of initial basic feasible solutions according to the information of the dual problem, and the set of initial basic feasible solutions are used to calculate an optimal solution of the linear programming problem under the production scheduling plan according to the simplex method.

[0135] According to the embodiment of the present application, the linear programming problem of the production scheduling plan is solved by using the information of the dual problem, and a set of more optimal and more suitable initial basic feasible solutions for subsequent solving can be determined, so that the iteration path for solving the linear programming problem can be optimized, and the time complexity for solving the linear programming problem can be reduced.

[0136] In a possible implementation, the set of initial basic feasible solutions is a set of initial basic feasible solutions of the linear programming problem, and the second determining module includes: updating a Lagrange multiplier by using a augmented Lagrange algorithm to determine a set of non-precise solutions of the linear programming problem, wherein the Lagrange multiplier includes the information of the dual problem; and projecting the set of non-precise solutions into a basic feasible solution set of the linear programming problem to determine the corresponding set of initial basic feasible solutions.

[0137] Therefore, the subsequent solving of the linear programming problem can be accelerated.

[0138] In a possible implementation, the updating of the Lagrange multiplier by using the augmented Lagrange algorithm to determine the set of non-precise solutions of the linear programming problem includes: determining the set of non-precise solutions of the linear programming problem by using a Gauss-Seidel iteration method, wherein in one iteration, the number of traversed solution variables is greater than the total number of the solution variables.

[0139] Therefore, when the linear programming problem is subsequently solved by using the simplex method, the convergence process can be accelerated, and the convergence of the linear programming problem is ensured.

[0140] In a possible implementation, the updating of the Lagrange multiplier by using the augmented Lagrange algorithm to determine the set of non-precise solutions of the linear programming problem includes: dividing each solution variable into a plurality of blocks of solution variables, wherein each block of solution variables includes at least one solution variable; and determining the set of non-precise solutions of the linear programming problem by using the Gauss-Seidel iteration method, wherein the values of the solution variables in each block are calculated at a time.

[0141] Therefore, the linear programming problem in which the solution variables include non-smooth terms can be solved, and the time complexity is reduced.

[0142] In a possible implementation, the set of initial basic feasible solutions is a set of initial basic feasible solutions of the dual problem, and the second determining module comprises: determining a set of basic feasible solutions; constructing a coefficient matrix corresponding to the set of basic feasible solutions as a matrix with a triangular structure; and determining the set of initial basic feasible solutions according to the matrix with the triangular structure, the number of structural variables included in the set of initial basic feasible solutions being greater than the number of structural variables included in the set of basic feasible solutions.

[0143] In this way, the set of initial basic feasible solutions can contain more structural variables, and the matrix with the triangular structure has the advantages of easy inversion, simple construction, high sparsity, and fast calculation speed, so that the number of iterations in subsequent iterative solution of the optimal solution by the simplex method is smaller, and the amount of calculation in each step is reduced, thereby reducing the calculation time.

[0144] In a possible implementation, the step of constructing the coefficient matrix corresponding to the set of basic feasible solutions as a matrix with a triangular structure comprises: calculating row priorities corresponding to each row and column priorities corresponding to each column in an active part of the coefficient matrix, and determining a row corresponding to the maximum row priority and a column corresponding to the maximum column priority in the coefficient matrix; determining an element corresponding to the row corresponding to the maximum row priority and the column corresponding to the maximum column priority, and transforming the coefficient matrix according to the element; removing the row corresponding to the maximum row priority and a column corresponding to a non-zero element in the row corresponding to the maximum row priority from the active part, and repeatedly performing the steps of calculating the row priorities corresponding to each row and the column priorities corresponding to each column in the active part of the coefficient matrix, determining the row corresponding to the maximum row priority and the column corresponding to the maximum column priority in the coefficient matrix, and constructing the coefficient matrix as a matrix with a triangular structure.

[0145] In this way, the matrix with the triangular structure can be constructed, thereby reducing the amount of calculation in subsequent calculation and reducing the time complexity.

[0146] In a possible implementation, the types of rows include: a row corresponding to an equality constraint condition, a row corresponding to a range constraint condition, a row corresponding to an inequality constraint condition, and a row corresponding to no constraint condition; and the row priorities corresponding to rows of each type are arranged in descending order.

[0147] According to the embodiments of the present application, by making the priority of a row corresponding to a more stringent constraint condition higher, the set of initial basic feasible solutions can contain more structural variables, and the number of iterations in subsequent iterative solution of the optimal solution by the simplex method is smaller, thereby reducing the time complexity.

[0148] In a possible implementation, the types of the columns include: a column corresponding to a variable with an arbitrary value, a column corresponding to a variable with a non-negative value, a column corresponding to a variable with a bounded value, and a column corresponding to a variable with a fixed value; and the column priorities corresponding to the columns of each type are arranged in descending order.

[0149] According to the embodiment of the present application, by making the priority of the column corresponding to the variable with higher uncertainty higher, if more structural variables are contained in the group of initial basic feasible solutions, the number of iterations when the optimal solution is solved by using the simplex method is smaller, and the time complexity is reduced.

[0150] In a possible implementation, the element corresponding to the row with the largest row priority and the column with the largest column priority is determined, and the coefficient matrix is transformed according to the element, including: determining at least one element corresponding to the row with the largest row priority and the column with the largest column priority; determining one element in which the variable corresponding to the column is a non-artificial variable; and transforming the coefficient matrix according to the one element in which the variable corresponding to the column is a non-artificial variable.

[0151] Therefore, the group of initial basic feasible solutions finally obtained can include fewer artificial variables, so that the number of iterations when the linear programming problem is solved is reduced, and the time complexity is reduced.

[0152] Figure 6 A structural diagram of a data processing apparatus according to an embodiment of the present application is shown. The data processing apparatus can be used to execute the data processing method shown in any one of the above Figure 2-4 For example, the data processing apparatus can be a server, or a chip (system) or other components or assemblies that can be arranged in the server. The embodiments of the present application are not limited in this regard.

[0153] As shown in Figure 6 The data processing apparatus 1800 can include a processor 1801 and a transceiver 1802. Optionally, the data processing apparatus 1800 can include a memory 1803. The processor 1801 is coupled with the transceiver 1802 and the memory 1803, for example, through a communication bus.

[0154] The various constituent components of the data processing apparatus 1800 will be described in detail below. Figure 6

[0155] ​The processor 1801 is the control center of the data processing apparatus 1800, and can be one processor or a collective term of multiple processing elements. For example, the processor 1801 is one or more central processing units (CPUs), and can also be an application specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present application, such as one or more microprocessors (digital signal processors, DSPs), or one or more field programmable gate arrays (FPGAs).

[0156] Optionally, the processor 1801 can perform various functions of the data processing apparatus 1800 by running or executing software programs stored in the memory 1803, and calling data stored in the memory 1803.

[0157] In a specific implementation, as an embodiment, the processor 1801 can include one or more CPUs, such as the CPU0 and CPU1 shown in FIG. 8. Figure 6

[0158] In a possible implementation, the data processing apparatus 1800 can also include multiple processors, such as the processor 1801 and the processor 1804 shown in FIG. 8. Each of the processors can be a single-CPU or a multi-CPU. The processor herein can refer to one or more communication devices, circuits, and / or processing cores for processing data (such as computer program instructions). Figure 6 The transceiver 1802 is configured to communicate with other servers.

[0159] Optionally, the transceiver 1802 can include a receiver and a transmitter (not shown separately in FIG. 8). The receiver is configured to implement the receiving function, and the transmitter is configured to implement the transmitting function.

[0160] Figure 6 Optionally, the transceiver 1802 can be integrated with the processor 1801, or can exist independently and be coupled with the processor 1801 through an input / output port (not shown in FIG. 8) of the data processing apparatus 1800, and the embodiments of the present application do not make any limitation in this regard.

[0161] Optionally, the transceiver 1802 can be integrated with the processor 1801, or can exist independently and be coupled with the processor 1801 through an input / output port (not shown in FIG. 8) of the data processing apparatus 1800, and the embodiments of the present application do not make any limitation in this regard. Figure 6

[0162] ​​​The memory 1803 can be used to store a software program for implementing the scheme of the present application, and is controlled by the processor 1801 to execute, and the specific implementation can refer to the method embodiments described above, which will not be repeated here.

[0163] The memory 1803 can be a read-only memory (ROM) or other type of static storage communication device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage communication device that can store information and instructions, and can also be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage medium or other magnetic storage communication device, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and capable of being accessed by a computer, but not limited to this. It should be noted that the memory 1803 can be integrated with the processor 1801, or can exist independently and be coupled to the processor 1801 through the input / output port (not shown) of the data processing apparatus 1800, and the embodiments of the present application are not limited in this regard. Figure 6 It should be noted that the structure of the data processing apparatus 1800 shown in the above is not a limitation on the implementation of the data processing apparatus, and the actual data processing apparatus can include more or fewer components than shown, or combine certain components, or different component arrangements.

[0164] It should be noted that the structure of the data processing apparatus 1800 shown in the above is not a limitation on the implementation of the data processing apparatus, and the actual data processing apparatus can include more or fewer components than shown, or combine certain components, or different component arrangements. Figure 6

[0165] The embodiments of the present application provide a data processing apparatus, comprising a processor and a memory for storing processor-executable instructions; wherein the processor is configured to execute the instructions to implement the above method.

[0166] The embodiments of the present application provide a terminal device, which can execute the above method.

[0167] The embodiments of the present application provide a non-volatile computer readable storage medium, which stores computer program instructions, and the computer program instructions are executed by a processor to implement the above method.

[0168] ​Embodiments of the present application provide a computer program product including computer readable code, or a nonvolatile computer readable storage medium carrying computer readable code, which, when run in a processor of an electronic device, causes the processor in the electronic device to perform the above method.

[0169] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital video disc (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or punched tape, a magneto-optical or other optical device, a portable

[0170] The computer readable program instructions or code described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.

[0171] Computer readable program instructions for carrying out operations of the present application can be assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate array (FPGA), or programmable logic array (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present application.

[0172] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0173] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0174] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0175] The flow diagrams and the block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of apparatuses, systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flow diagrams and the block diagrams can represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical functions (s). In some alternative implementations, the functions noted in the blocks can occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks can sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts.

[0176] It is also important to note that each of the boxes in the block diagrams and / or flowchart illustrations, and combinations of boxes in the block diagrams and / or flowchart illustrations, can be implemented by hardware, for example, circuitry or an ASIC (Application Specific Integrated Circuit), or can be implemented by a combination of hardware and software, such as firmware or the like.

[0177] Although the present application has been described in connection with various embodiments thereof, it will be understood that other modifications can be made by those skilled in the art to the application described herein without departing from the scope of the application as defined by the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite articles "a" or "an" do not exclude a plurality. A single processor or other unit can fulfil the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. The reference signs in the claims should not be construed as limiting the scope of the application.

[0178] Having described various embodiments of the application, it is to be understood that the above description is meant not to limit and not to encompass all of the possible embodiments. Many modifications and variations of this application can be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. Use of the terms "preferably," "preferred," "desired," etc., are intended to present a choice between one embodiment and another, and are not intended to limit the context in which the terms are used. The choice of terms is intended to best explain the principle, practical application or improvement over the technology in the field that the various embodiments are directed to, or to enable others skilled in the art to understand the various embodiments disclosed herein.

Claims

1. A data processing method, characterized by, The method comprises: obtaining target and constraint condition information of a production scheduling plan, establishing a linear programming problem for solving the production scheduling plan, the production scheduling plan being a plan for producing target products, and the constraint condition information being determined according to constraints in an actual business scenario of a factory; determining information of a dual problem of the linear programming problem; determining a set of initial basic feasible solutions according to the information of the dual problem, the set of initial basic feasible solutions being used to calculate an optimal solution satisfying the target of the production scheduling plan according to a simplex method, and the optimal solution being used to determine the production scheduling plan, which is used to indicate processing procedures of product orders on corresponding resources.

2. The method of claim 1, wherein, The set of initial basic feasible solutions is a set of initial basic feasible solutions of the linear programming problem, and determining a set of initial basic feasible solutions according to the information of the dual problem comprises: updating a Lagrange multiplier by using a augmented Lagrange algorithm to determine a set of inexact solutions of the linear programming problem, wherein the Lagrange multiplier comprises the information of the dual problem; projecting the set of inexact solutions into a basic feasible solution set of the linear programming problem to determine the corresponding set of initial basic feasible solutions.

3. The method of claim 2, wherein, The updating of the Lagrange multiplier by using the augmented Lagrange algorithm to determine the set of inexact solutions of the linear programming problem comprises: determining the set of inexact solutions of the linear programming problem by using a Gauss-Seidel iteration method, wherein the number of traversed solution variables in one iteration is greater than the total number of the solution variables.

4. The method according to claim 2 or 3, characterized in that, The updating of the Lagrange multiplier by using the augmented Lagrange algorithm to determine the set of inexact solutions of the linear programming problem comprises: dividing the solution variables into multiple blocks of solution variables, wherein each block of solution variables comprises at least one solution variable; determining the set of inexact solutions of the linear programming problem by using the Gauss-Seidel iteration method, wherein the values of the solution variables in a block are calculated at a time.

5. The method of claim 1, wherein, The set of initial basic feasible solutions is a set of initial basic feasible solutions of the dual problem, and determining a set of initial basic feasible solutions according to the information of the dual problem comprises: determining a set of basic feasible solutions; constructing a coefficient matrix corresponding to the set of basic feasible solutions into a matrix with a triangular structure; determining the set of initial basic feasible solutions according to the matrix with the triangular structure, wherein the number of structural variables included in the set of initial basic feasible solutions is greater than the number of structural variables included in the set of basic feasible solutions.

6. The method of claim 5, wherein, The construction of the coefficient matrix corresponding to the set of basic feasible solutions into the matrix with the triangular structure comprises: calculating row priorities corresponding to rows and column priorities corresponding to columns in an active part of the coefficient matrix to determine a row with the largest row priority and a column with the largest column priority in the coefficient matrix; determining an element corresponding to the row with the largest row priority and the column with the largest column priority, and transforming the coefficient matrix according to the element; and The row with the largest row priority and the column corresponding to the non-zero element in the row with the largest row priority are removed from the active part, and the steps of calculating the row priority corresponding to each row and the column priority corresponding to each column in the active part of the coefficient matrix, determining the row with the largest row priority and the column with the largest column priority in the coefficient matrix, and constructing the coefficient matrix into a matrix with a triangular structure are repeatedly performed.

7. The method of claim 6, wherein, The types of rows include: a row corresponding to an equality constraint, a row corresponding to a range constraint, a row corresponding to an inequality constraint, and a row corresponding to no constraint; wherein the row priorities corresponding to rows of each type are arranged in descending order.

8. The method according to claim 6 or 7, characterized in that, The types of columns include: a column corresponding to a variable with an arbitrary value, a column corresponding to a variable with a non-negative value, a column corresponding to a variable with a bounded value, and a column corresponding to a variable with a fixed value; wherein the column priorities corresponding to columns of each type are arranged in descending order.

9. The method of claim 6, wherein, Determining an element corresponding to the row with the largest row priority and the column with the largest column priority, and transforming the coefficient matrix according to the element includes: determining at least one element corresponding to the row with the largest row priority and the column with the largest column priority; determining an element in which the variable corresponding to the column is a non-artificial variable from the at least one element; transforming the coefficient matrix according to the element in which the variable corresponding to the column is a non-artificial variable.

10. A data processing apparatus, characterized by, The device includes: a building module configured to obtain target and constraint information of a production scheduling plan, and build a linear programming problem for solving the production scheduling plan, the production scheduling plan being a plan for producing target products, and the constraint information being determined according to constraints in an actual business scenario of a factory; a first determining module configured to determine information of a dual problem of the linear programming problem; a second determining module configured to determine a set of initial basic feasible solutions according to the information of the dual problem, the set of initial basic feasible solutions being used to calculate an optimal solution satisfying the target of the production scheduling plan according to a simplex method, and the optimal solution being used to determine the production scheduling plan, the production scheduling plan being used to indicate processing procedures of product orders on corresponding resources.

11. A data processing apparatus, characterized by include: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to implement the method of any one of claims 1-9 when executing the instructions.

12. A non-transitory computer readable storage medium having stored thereon computer program instructions, wherein, The computer program instructions, when executed by a processor, implement the method of any one of claims 1-9.

13. A computer program product comprising computer readable code, or a non-volatile computer readable storage medium carrying computer readable code, which when run in an electronic device, a processor in the electronic device performs the method of any one of claims 1-9.

Citation Information

Patent Citations

  • Quick gradient algorithm for solving model prediction control law in real time

    CN108681521A

  • Roll paper slitting and scheduling optimization method and system based on non-linear integer programming

    CN109272145A