Method, apparatus, device and storage medium for industrial scheduling
Patent Information
- Application Number
- CN202110988363.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-26
- Publication Date
- 2026-10-23
- Estimated Expiration
- 2041-08-26
AI Technical Summary
然而,已有的工业规划方案不仅计算复杂,而且效率普遍较低
[0035]可以理解地,上述提供的第二方面的装置、第三方面的电子设备、第四方面的计算机存储介质、第五方面的计算机程序产品或第六方面的芯片均用于执行第一方面所提供的方法。因此,关于第一方面的解释或者说明同样适用于第二方面、第三方面、第四方面、第五方面和第六方面。此外,第二方面、第三方面、第四方面、第五方面和第六方面所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
Smart Images

Figure CN115935774B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this application primarily relate to the field of artificial intelligence (AI) technology. More specifically, the embodiments of this application relate to methods, apparatus, devices, computer-readable storage media, and computer program products for industrial scheduling. Background Technology
[0002] Many planning problems in industrial production can be represented using mixed integer programming (MIP) models, such as factory scheduling, production planning, 3D packing, and plant site selection. These problems share a common characteristic: they involve at least one objective and require variables to satisfy a series of constraints, often derived from business requirements or practical needs. Such industrial planning problems typically involve complex calculations and require significant time and / or computational costs to arrive at a satisfactory or optimal planning solution.
[0003] In real-world industrial production scenarios, industrial planning problems are often enormous, involving numerous constraints and parameters. The speed of production planning becomes a significant factor limiting the improvement of production output. However, existing industrial planning solutions are not only computationally complex but also generally inefficient. Summary of the Invention
[0004] The embodiments of this application provide a scheme for industrial production scheduling.
[0005] According to a first aspect of this application, a method for industrial production scheduling is provided. The method includes: determining a first production quantity of at least one product among a plurality of products associated with an industrial production scheduling task, based on a plurality of constraint subsets of a first constraint set of the industrial production scheduling task; determining a second constraint set of the industrial production scheduling task based on the first production quantity of the at least one product; and determining a third production quantity of each of the plurality of products based on the first constraint set, the second constraint set, and the second production quantities of each of the plurality of products, wherein the second production quantities are determined based on the first constraint set.
[0006] For example, such an industrial scheduling task could be determining production arrangements for multiple producers to fulfill a predetermined production plan. Accordingly, the scheduling plan could, for example, indicate specific production plans for multiple producers. In some embodiments, the scheduling plan can be generated by the same or different equipment used to determine the production quantities of multiple products based on the determined production quantities.
[0007] It should be understood that "constraints" can refer to limitations on the range of values for parameters related to industrial scheduling (e.g., production quantity, date, producer, transportation conditions, etc.) and / or the constraint relationships that should be satisfied between different parameters. Furthermore, constraints can also include restrictions on the type of parameters related to industrial scheduling, such as integer or real number types. In this paper, industrial scheduling tasks that do not restrict parameters to integer types are referred to as linear programming (LP) tasks, while industrial scheduling tasks that restrict some or all parameters to integer types are referred to as mixed integer programming (MIP) tasks.
[0008] The embodiments of this application improve the speed of the original industrial scheduling task by transforming it into a problem of solving a set of constraints, and by dividing the set of constraints into multiple subsets of constraints to form smaller subproblems. It should be understood that the computational scale of the constraint subsets is smaller than that of the original constraint set, and the solution speed is faster. According to the embodiments of this application, the second constraint set generated based on the constraint subsets can significantly reduce the search space of the industrial scheduling task, thereby enabling the determination of the third production quantity from the second production quantity of the products in the original problem more quickly. Here, the second production quantity is a linear programming solution obtained based on the constraint set of the original problem; that is, the second production quantity is a real-valued production quantity. The third production quantity is used to generate a production plan for the scheduling task, typically including integer production quantities of a portion of the products. In other words, the third production quantity is a mixed-type solution. Obtaining a mixed-type solution from a linear programming solution requires significant computational resources, and a considerable amount of time and computational resources are spent on this stage of industrial scheduling. According to the embodiments of this application, the search space of the industrial scheduling task is reduced, thereby reducing the time or computational cost of industrial scheduling and improving the efficiency of industrial planning.
[0009] In some embodiments, the method further includes: using a pre-set model to determine the target categories of multiple constraints in a first constraint set; and generating the multiple constraint subsets of the first constraint set based on the target categories of the multiple constraints. In this way, a large constraint set can be effectively divided into multiple smaller constraint subsets, allowing for faster solution of smaller problems and parallel execution, thereby improving the efficiency of industrial planning.
[0010] In some embodiments, determining the target category of multiple constraints in a first constraint set includes: determining the initial category of each of the multiple constraints using a pre-set model; and determining the target category of the multiple constraints based on the initial categories and multiple historical categories of constraints from historical industrial production scheduling tasks. In this way, using the categories of constraints from historical industrial production scheduling tasks as prior knowledge to classify the current constraints improves the accuracy of the classification of the current constraints.
[0011] In some embodiments, determining the categories of multiple constraints includes: determining the attribute of a first constraint among the multiple constraints; determining the category of the corresponding constraint with the attribute in historical industrial scheduling tasks; if the initial category of the first constraint matches the category of the corresponding constraint, determining the initial category of the first constraint as the target category of the first constraint; if the initial category of the first constraint does not match the category of the corresponding constraint, generating the target category of the first constraint using a hypergraph segmentation algorithm. In this way, by using the categories of constraints with the same attribute in historical industrial scheduling tasks as prior knowledge to classify the current constraints, the accuracy of the current constraint classification is improved, and the computational cost of determining the constraint classification using a hypergraph segmentation algorithm is reduced.
[0012] In some embodiments, generating the target category of the first constraint using a hypergraph segmentation algorithm includes: generating the target category of the first constraint by using the category of the second constraint among multiple constraints as input to the hypergraph segmentation algorithm, and matching the initial category of the second constraint with the category of the corresponding constraint in the historical industrial scheduling task. In this way, it is possible to predetermine which constraints belong to which subset, thereby improving the accuracy of using the hypergraph segmentation algorithm, reducing computational load, and increasing the efficiency of generating constraint subsets.
[0013] In some embodiments, the pre-set model is a neural network model, which is trained using constraints from one or more historical industrial production scheduling tasks and the categories of those constraints. This approach, utilizing historical data, results in a model with better accuracy. In some embodiments, the pre-set model can also be any model suitable for classification, such as a decision tree, support vector machine (SVM), random forest, Bayesian model, nearest neighbor algorithm, logistic regression, etc.
[0014] In some embodiments, the industrial scheduling task is a mixed-integer programming (MIP) task, where at least a portion of a plurality of products have integer production quantities. The method further includes: determining one or more cut constraints associated with the integer production quantities of the at least a portion of the products based on a first set of constraints; and determining second production quantities for each of the plurality of products based on the one or more cut constraints and the first set of constraints. In this way, cut constraints are used to reduce the search space for non-integer quantities, thereby increasing the speed at which the linear programming solution is adjusted to obtain production quantities that satisfy the mixed-integer programming requirements.
[0015] In some embodiments, determining one or more cut constraints associated with the integer production quantities of at least a portion of the products includes: generating a candidate set of cut constraints associated with the integer production quantities of at least a portion of the products based on a first set of constraints; scoring the cut constraints in the candidate set of cut constraints; and selecting one or more cut constraints from the candidate set of cut constraints based on the scores. In this manner, cut constraints that can effectively reduce the search space and thus improve the speed of generating mixed integer solutions can be selected from the candidate set of cut constraints.
[0016] In some embodiments, scoring cut constraints in a candidate set of cut constraints includes scoring the cut constraints using a pre-set scoring model trained using labeled packages of cut constraints, the labels determined based on feedback from the application of multiple packages, each package containing multiple cut constraints. In this way, a scoring model is used to select cut constraints, and the training data for this model is generated based on feedback from the packages of cut constraints. This allows for a holistic consideration of the actual effectiveness of a set of cut constraints, which is beneficial for training a better scoring model.
[0017] In some embodiments, determining a first production quantity of at least one product among a plurality of products includes: determining one or more production quantities for each of the at least one product based on a plurality of constraint subsets; and merging the one or more production quantities of the product to obtain the first production quantity of the product. A production quantity for one product can be obtained from each constraint subset, thereby merging multiple production quantities of the same product obtained from multiple constraint subsets into the first production quantity of the product. Merging can be, for example, an average, weighted average, maximum, or minimum value of these multiple production quantities.
[0018] In some embodiments, the second set of constraints includes the constraint that the third production quantity of at least one product is not greater than the first production quantity associated with at least one product. In this way, the second set of constraints is generated using the first production quantity obtained from multiple subsets of constraints, and the upper bound of the first production quantity is formed as a new constraint, thereby effectively reducing the search space and accelerating subsequent solutions.
[0019] In some embodiments, determining the third production quantity of each of the multiple products includes: adjusting the second production quantity of at least a portion of the multiple products to an integer type based on the production hierarchy of the multiple products. This improves the efficiency of shaping linear programming solutions into mixed-integer solutions. Here, the production hierarchy can refer to a hierarchy formed by dependencies between products. For example, if producing product A requires products B and C, then product A is located one level above products B and C in the production hierarchy, and so on. The production hierarchy can be user-defined or automatically generated.
[0020] In some embodiments, the method further includes: determining the pre-solved production quantity for each of the plurality of products by removing constraints related to raw material limitations from a first set of constraints; determining the production quantity that satisfies the batch requirement based on the batch requirement constraints and the pre-solved production quantity; and determining the second production quantity for the plurality of products based on the cutting constraint and the production quantity that satisfies the batch requirement. In this manner, linear programming solutions to industrial scheduling problems with smaller search spaces can be generated more quickly.
[0021] According to a second aspect of this application, an apparatus for industrial production scheduling is provided. The apparatus includes: a first production quantity determination unit configured to determine a first production quantity of at least one of a plurality of products associated with an industrial production scheduling task, based on a plurality of constraint subsets of a first constraint set of the industrial production scheduling task; a second constraint set generation unit, which determines a second constraint set of the industrial production scheduling task based on the production quantity of the at least one product; and a third production quantity determination unit, which determines a third production quantity of each of the plurality of products based on the first constraint set, the second constraint set, and the second production quantities of each of the plurality of products, wherein the second production quantities are determined based on the first constraint set.
[0022] In some embodiments, the apparatus may further include a constraint subset generation unit. The constraint subset generation unit may be configured to: determine the target categories of multiple constraints in a first constraint set using a pre-set model; and generate multiple constraint subsets of the first constraint set based on the target categories of the multiple constraints.
[0023] In some embodiments, the constraint subset determination unit may also be configured to: determine the initial category of each of the plurality of constraints using a pre-set model; and determine the target category of the plurality of constraints based on the initial category and the plurality of historical categories of constraints of historical industrial production scheduling tasks.
[0024] In some embodiments, the pre-set model is a neural network model, which is trained using constraints from one or more historical industrial production scheduling tasks and the categories of those constraints. In some embodiments, the pre-set model can also be any model that can be used for classification, such as a decision tree, support vector machine (SVM), random forest, Bayesian model, nearest neighbor algorithm, logistic regression, etc.
[0025] In some embodiments, the industrial scheduling task is a mixed integer programming (MIP) task, where at least a portion of a plurality of products have integer production quantities. The apparatus may further include: a cut constraint selection unit configured to determine one or more cut constraints associated with the integer production quantities of at least a portion of the products based on a first set of constraints; and a second production quantity determination unit configured to determine a second production quantity for each of the plurality of products based on one or more cut constraints and the first set of constraints.
[0026] In some embodiments, the cut constraint selection unit may also be configured to: generate a set of candidate cut constraints associated with the integer production quantities of at least a portion of the products based on a first set of constraints; score the cut constraints in the set of candidate cut constraints; and select one or more cut constraints from the set of candidate cut constraints based on the scores.
[0027] In some embodiments, the apparatus may further include a scoring model training unit configured to: determine feedback after a plurality of cut constraint packages are applied, each cut constraint package including a plurality of cut constraints for training; determine labels of the cut constraints in the plurality of cut constraint packages based on the feedback; and train a cut constraint scoring model using the plurality of cut constraint packages with labels.
[0028] In some embodiments, the second set of constraints includes the constraint that the third production quantity of the at least one product is not greater than the first production quantity associated with the at least one product.
[0029] In some embodiments, the third production quantity determination unit may be configured to adjust the second production quantity of at least a portion of the products to an integer type based on the production level of the multiple products.
[0030] In some embodiments, a second production quantity determination unit is further included. This second production quantity determination unit is configured to: determine a pre-solved production quantity for each of the plurality of products by removing constraints related to raw material limitations from a first set of constraints; determine a production quantity that meets the batch requirements based on the pre-solved production quantity and batch requirement constraints; and determine a second production quantity for the plurality of products based on the production quantity that meets the batch requirements and cutting constraints.
[0031] According to a third aspect of this application, an electronic device is also provided, comprising: at least one computing unit; and at least one memory coupled to the at least one computing unit and storing instructions for execution by the at least one computing unit, the instructions, when executed by the at least one computing unit, causing the device to perform the method according to the first aspect of this application.
[0032] According to a fourth aspect of this application, a computer-readable storage medium is also provided, on which a computer program is stored, which, when executed by a processor, implements the method described according to a first aspect of this application.
[0033] According to a fifth aspect of this application, a computer program product is also provided, including computer-executable instructions, wherein the computer-executable instructions, when executed by a processor, implement the method described according to a first aspect of this application.
[0034] According to a sixth aspect of this application, a chip is also provided, including a processing unit and a communication interface. The processing unit obtains program instructions through the communication interface, and the program instructions are executed by the processing unit. The processing unit is used to perform processing-related functions as described in any of the optional embodiments of the first aspect above.
[0035] Understandably, the apparatus of the second aspect, the electronic device of the third aspect, the computer storage medium of the fourth aspect, the computer program product of the fifth aspect, or the chip of the sixth aspect provided above are all used to perform the method provided in the first aspect. Therefore, the explanations or descriptions regarding the first aspect also apply to the second, third, fourth, fifth, and sixth aspects. Furthermore, the beneficial effects achievable by the second, third, fourth, fifth, and sixth aspects can be referred to the beneficial effects in the corresponding methods, and will not be repeated here. Attached Figure Description
[0036] The above and other features, advantages, and aspects of the embodiments of this application will become more apparent from the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals denote the same or similar elements, wherein: Figure 1 A schematic diagram illustrates an example environment in which several embodiments of this application can be implemented; Figure 2 A schematic diagram of an industrial planning system according to some embodiments of this application is shown; Figure 3 A schematic flowchart of a process for industrial planning according to some embodiments of this application is shown; Figure 4 A schematic flowchart illustrating a process for generating a subset of constraints according to some embodiments of this application is shown; Figure 5 A schematic flowchart illustrating the process of applying cut constraints according to some embodiments of this application is shown; Figure 6 A schematic flowchart illustrating the process of selecting cut constraints according to some embodiments of this application is shown; Figure 7 A schematic flowchart illustrating the process for training a cut constraint scoring model according to some embodiments of this application is shown; Figure 8 A schematic diagram of labels for generating cut constraints according to some embodiments of this application is shown; Figure 9 A schematic flowchart illustrating a process for determining a linear programming scheme for scheduling tasks according to some embodiments of this application is shown; Figures 10A to 10C A performance comparison chart is shown between the production scheduling process using an embodiment of this application and the traditional production scheduling process; Figure 11 Block diagrams of apparatuses according to some embodiments of this application are shown; and Figure 12 A block diagram of a computing device capable of implementing several embodiments of the present application is shown. Detailed Implementation
[0037] Embodiments of this application will now be described in more detail with reference to the accompanying drawings. While some embodiments of this application are shown in the drawings, it should be understood that this application can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this application. It should be understood that the drawings and embodiments of this application are for illustrative purposes only and are not intended to limit the scope of protection of this application.
[0038] In the description of embodiments of this application, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0039] As discussed above, industrial planning problems are frequently encountered in people's production and daily lives. For example, people need to schedule the production of different factories to achieve a predetermined production plan; or they need to arrange the logistics and distribution of different goods, etc., in order to maximize demand satisfaction and minimize costs. Most such industrial planning problems can be represented as mixed integer programming (MIP) problems and can be represented using MIP models. For example, such a MIP model can be expressed as: In this context, formula (1) represents the objective associated with the industrial planning task, also known as the decision objective; formulas (2) to (4) represent the parameter constraints associated with the production quantities of multiple products, also known as decision constraints. i and y j The production quantities of multiple products to be determined are also called decision variables, where some x... i and y j It is an integer parameter, meaning its value should be an integer. i and d j These are the coefficients of the decision variables in the objective. and The coefficients of the decision variables in the constraints, For the constant term of the constraint, and This represents the upper limit of the decision variable. x i These are complex variables; integer variables must come from this set of variables, but it's not required that all x... i All are integers. y j These are non-complex variables, meaning that the results of these variables can be represented by floating-point numbers.
[0040] Traditionally, solution methods typically ignore the integer constraints on variables, resulting in a linear programming (LP) problem. For LP problems, multinomial-time algorithms exist (such as the Simplex method). After solving the LP problem, variables are gradually rounded to integer values. To accelerate the process of obtaining integer solutions from LP solutions, the Branch-and-Cut algorithm is commonly used. This involves generating several cut constraints and removing non-integer LP constraints that do not meet the requirements, thereby reducing the solution space and improving algorithm efficiency.
[0041] However, large-scale factory scheduling problems involve millions of variables and constraints, requiring a significant amount of time to calculate the production volume of products for industrial scheduling tasks, making it difficult to meet actual needs.
[0042] In embodiments of this application, the planning device obtains an initial set of constraints for determining the production quantities of multiple products in an industrial planning task. The planning device divides the initial set of constraints into multiple constraint subsets and determines the production quantities of the products involved in each constraint subset for each sub-problem. The planning device determines an additional set of constraints based on the production quantities of the products obtained from the multiple constraint subsets. The planning device also determines the production quantities of the multiple products in the industrial planning task based on the initial set of constraints. These production quantities may not conform to the type constraints of the industrial scheduling task. Then, the planning device further adjusts the production quantities of the multiple products in the industrial planning task by applying the additional set of constraints, so that the adjusted production quantities conform to the type constraints of the industrial scheduling task and can be used to guide the industrial scheduling plan.
[0043] Based on this approach, embodiments of this application can generate additional constraints using a subset of the constraint set of the industrial scheduling task, thereby reducing the search space or solution space of the industrial scheduling task. This can further reduce computational and time costs, thereby improving the efficiency of industrial planning.
[0044] Example Environment Figure 1 A schematic diagram of an example environment 100 in which various embodiments of this application can be implemented is shown. For example... Figure 1As shown, environment 100 includes planning device 140, which is configured to acquire a first constraint set 130. In this document, the first constraint set 130 may also be referred to as the original constraint set. As discussed above, the first constraint set 130 may, for example, be represented as a MIP model as discussed with reference to equations (1) to (4). The constraint set may have a matrix form. The first constraint set 130 may also be referred to as the first constraint matrix.
[0045] In some embodiments, the first constraint set 130 may be determined based on user input 120. For example, a user may input task information associated with an industrial planning task via terminal device 110. For instance, taking industrial production scheduling as an example, a user may input the production quantities of multiple products to be determined via terminal device 110, such as the daily production quantity of each product in each factory. Furthermore, the user may input constraints associated with the production quantity values of these multiple products, such as the daily production quantity of each factory should be less than or equal to a daily production capacity limit. Further, the user may input objectives associated with the industrial planning task (e.g., industrial production scheduling task), such as maximizing profit, minimizing processing costs, minimizing processing time, etc.
[0046] In some embodiments, the terminal device 110 may generate a first constraint set 130 based on user input 120 and transmit the first constraint set 130 to the planning device 140, for example, via wired or wireless communication. Alternatively, the terminal device 110 may also transmit relevant information input by the user to the planning device 140, and the planning device 140 may construct the first constraint set 130 based on the user input.
[0047] In some embodiments, the first constraint set 130 may also be automatically generated by the planning device 140. For example, the planning device 140 may automatically generate the first constraint set 130 associated with the industrial production scheduling task based on a pre-executed production schedule. Alternatively, the planning device 140 may automatically generate the first constraint set 130 associated with the route planning task based on the logistics information to be delivered obtained from a logistics website.
[0048] like Figure 1 As shown, the planning equipment 140 can determine the production quantities of multiple products included in the first constraint set 130 based on the first constraint set 130, thereby generating a planning scheme 150 for the industrial planning task. A detailed process of industrial planning will be referenced below. Figure 2 Detailed information will not be provided here.
[0049] It should be understood that the type of planning scheme 150 generated may differ depending on the specific industrial planning task. For example, taking an industrial production scheduling task as an example, planning scheme 150 may be a production scheduling scheme used to guide industrial production scheduling. Such a production scheduling scheme may be sent to multiple producers to guide them in performing production tasks based on the production scheduling scheme. As another example, taking a route planning task as an example, planning scheme 150 may be a delivery scheme used to guide logistics distribution. Such a delivery scheme may be sent to multiple delivery parties to guide them in performing logistics distribution tasks according to the delivery scheme.
[0050] In some embodiments, the planning scheme 150 may also be sent to the terminal device 110, enabling the terminal device 110 to provide the user with information related to the generated planning scheme 150. For example, the terminal device 110 may present the production quantities of multiple products indicated by the planning scheme 150 to the user through a graphical user interface displayed on the screen. Alternatively, as another example, the planning scheme 150 may be sent to the terminal device 110 as a separate document, allowing the user to open the document to view the planning scheme. It should be understood that the planning scheme 150 may also be organized in other suitable file formats and then provided to the user. Taking industrial production scheduling as an example, the terminal device 110 may obtain a production scheduling scheme from the planning device 140 and present the production scheduling arrangements of each producer to the user intuitively through a graphical user interface, so that the user can more intuitively understand the generated planning scheme.
[0051] In some embodiments, the terminal device 110 may also provide an editing interface to the user, enabling the user to adjust the provided planning scheme 150 via the editing interface.
[0052] In some embodiments, information relating to planning scheme 150 may also be provided to the user through other suitable means. For example, planning scheme 150 may be sent to the user's email address as the content of an email or as an email attachment. Alternatively, planning scheme 150 may also be sent to the user via other suitable tools (e.g., instant messaging tools, SMS applications, etc.).
[0053] In some embodiments, the planning scheme 150 may also be available to a user via a storage device coupled to the planning device 140. For example, the planning device 140 may store the generated planning scheme 150 in a network storage device and make it accessible via the Internet. The user may access the network storage device to obtain the generated planning scheme, for example, using other terminal devices. For example, the planning device 140 may send the storage location information (e.g., a link address) of the planning scheme 150 to the terminal device 110 so that the user can download the planning scheme via the storage location information.
[0054] It should be understood that, although in Figure 1 In this diagram, terminal device 110 and planning device 140 are shown as different entities, but they can also be implemented by a single electronic device. For example, a user can input task information related to an industrial planning task into an electronic device, which then constructs a first set of constraints based on the task information and generates a planning scheme 150 accordingly.
[0055] It should be understood that although the industrial production planning described below refers to industrial production planning used to guide the production of manufacturers, the industrial planning schemes provided by the embodiments of this application can also be applied to any other type of industrial planning.
[0056] In some embodiments, industrial planning tasks may include resource scheduling tasks. Such resource scheduling tasks may include, but are not limited to: power scheduling tasks for guiding the scheduling of power resources, production scheduling tasks for guiding the scheduling of different production resources, logistics scheduling tasks for guiding logistics companies to schedule logistics vehicles and delivery personnel resources, etc.
[0057] In some embodiments, industrial planning tasks may include route planning tasks. Such route planning tasks may include, for example, vehicle route planning tasks for guiding different delivery vehicles to deliver goods.
[0058] In some embodiments, industrial planning tasks may include target location tasks. Such target location tasks may include, for example, facility location tasks to guide the location of a particular enterprise or facility.
[0059] It should be understood that the industrial planning tasks discussed in this application may also include other industrial planning tasks that can be represented by one or more MIP models.
[0060] Example systems and processes for industrial planning Figure 2 A schematic diagram of an industrial planning system 200 according to some embodiments of this application is shown. System 200 can be implemented in, for example... Figure 1In the planning device 140 shown, as illustrated, a first constraint set 204 is first obtained from the industrial planning problem 202. In some embodiments, the first constraint set 204 may be determined based on user input and sent to the planning device, or it may be automatically generated by the planning device. The first constraint set 204 is the original constraint set of the industrial planning problem.
[0061] In some embodiments, some variables in the first constraint set 204 have integer type constraints. Therefore, the industrial planning problem is a mixed-integer programming problem. For example, the industrial planning problem can be a large-scale industrial scheduling problem, which can be mathematically modeled as a corresponding mixed-integer programming problem, involving millions or even more variables and constraints. The decision variables involved can be the quantity of goods manufactured, the quantity of demand delivered / forecasted, the quantity of goods transferred, the quantity of goods replaced, etc. The types of constraints include inventory constraints, capacity constraints, order delivery constraints, etc. The optimization objective can be to maximize the demand satisfaction rate and minimize the cost. In some embodiments, the industrial scheduling problem is solved for each day, that is, to determine the daily production quantity of products related to the industrial scheduling task. In this paper, the production quantity is not limited to the number of products manufactured by the factory, but includes the various decision variables mentioned above.
[0062] like Figure 2 As shown, for the input industrial scheduling problem 202 and the corresponding first constraint set 204, the planning scheme is divided into two branches. The upper branch is used to generate new constraints, namely the second constraint set 215. The lower branch is the solution process for the original problem. In some embodiments, the second branch is used to generate a linear programming solution for the original problem. The linear programming solution and the second constraint set are provided to the trimming module 216. The trimming module 216 thereby generates a planning scheme 218. In some embodiments, the planning scheme 218 can be a mixed-integer programming solution to the industrial planning problem 202.
[0063] The first conditional branch includes a constraint subset generation module 206. The constraint subset generation module 206 is used to generate multiple constraint subsets 208-1 to 208-n (collectively referred to as constraint subsets 208) from the first constraint set 206. Embodiments of this application do not limit the number of constraint subsets n. As mentioned above, the constraint set can be in matrix form, and therefore each constraint subset 208 can also be called a block constraint matrix, and the constraint subset generation module 206 can be called a block module. In some embodiments, the constraints in the first constraint set 204 are classified, and constraints of the same category form a constraint subset. That is, the industrial planning problem 202 is divided into multiple sub-problems, achieving a dimensionality reduction effect on the original industrial production scheduling problem.
[0064] Constraint subsets 208-1 to 208-n can be input to corresponding solver modules 210-1 to 210-n (collectively referred to as solver modules 210). Solver modules 210 may be or include solvers that can receive the constraint set and optimization objective as input and output the solution results. It should be understood that solver modules 210 can solve smaller-scale subproblems, and these subproblems can be solved in parallel, thus improving the speed of directly solving the original industrial planning problem 202. In some embodiments, solver modules 210 for constraint subsets can find linear programming solutions to the subproblems and trim the linear programming solutions to obtain mixed-integer programming solutions to the subproblems. Alternatively, solver modules 210 for constraint subset 208 may not perform the trimming operation and instead output the linear programming solution.
[0065] For the industrial production scheduling problem, solver module 210 outputs the production quantity of products related to the industrial production scheduling problem. This production quantity is referred to as the first production quantity in this paper, which refers to the production quantity of products obtained from the constraint subset. Each solver module 210 determines the production quantity of products involved in the corresponding constraint subset from the corresponding constraint subset, and does not necessarily include the production quantity of every product in industrial planning problem 202.
[0066] As described above, the industrial scheduling problem can be a mixed-integer programming problem. For mixed-integer programming problems, a linear programming solution can be solved first. Then, by adding a set of cut constraints, linear programming solutions that do not meet the integer type constraints can be removed from the solution space of the linear programming solution to reduce the search space and obtain more integer solutions. In some embodiments, the solver module 210 can obtain a set of cut constraints from the cut constraint selection module 217 and further solve the linear programming solution of the problem based on the cut constraints. In some embodiments, the cut constraints provided to the solver module 211 are selected based on an AI model, which can more significantly reduce the solution space. The solver module 210 can also further refine the linear programming solution so that it outputs a mixed-integer programming solution.
[0067] Next, the outputs of multiple solution modules 210 are provided to post-processing module 212. Post-processing module 212 aggregates these outputs to obtain the production quantities of at least a portion of the products in industrial planning problem 202. In this paper, the production quantities of the products obtained by post-processing module 212 are also referred to as approximate solutions to the industrial planning problem because they are optimization results obtained from the local problems of the original problem.
[0068] An approximate solution is input into the second constraint set generation module 214 to generate a second constraint set 215. In some embodiments, the second constraint set generation module 214 can be used to add a new upper bound to the corresponding production quantity to generate new constraints. In the production scheduling problem, the second constraint set generation module 214 can add their approximate solutions to the item manufacturing quantity, supply-demand quantity, order delay quantity, predicted delay quantity, and supply substitution quantity to generate new constraints. For example, if the approximate solution for the manufacturing quantity of an item is 5, then a new constraint can be generated that the manufacturing quantity of the item does not exceed 5, or does not exceed a constant multiple of 5. The second constraint set 215 generated by the second constraint set generation module 214 can reduce the search space of the industrial planning problem, thereby accelerating optimization.
[0069] In the second branch, the solver module 211 can determine the linear programming solution to the industrial planning problem 202 based on the first constraint set 204. In the production scheduling problem, this linear programming solution may include the production quantity of the product related to the production scheduling problem. The production quantity of the product determined by the solver module 211 is referred to herein as the second production quantity, which refers to the linear programming production quantity of the product obtained from the original constraint set, i.e., the first constraint set 204.
[0070] Similar to the solver module 210, the solver module 211 can also obtain a set of cut constraints from the cut constraint selection module 217 and further solve the linear programming solution of the problem based on the cut constraints. In some embodiments, the cut constraints provided to the solver module 211 are selected based on an AI model, which can significantly reduce the solution space.
[0071] The trimming module 216 can solve the industrial planning problem again based on the linear programming solution and the second constraint set 215 of the product output by the solving module 211, thereby obtaining the planning scheme 218. In the production scheduling problem, the production quantities of related products can be trimmed to integers according to the production level of the products through a predefined hierarchical trimming framework, thereby adjusting the linear programming solution to a mixed integer solution. Here, the production level can refer to the hierarchy formed by the dependencies between products. For example, if the production of product A requires product B and product C, then product A is located at the level above product B and product C in the production hierarchy, and so on. The production level can be user-defined or automatically generated. In this paper, the production quantity of the product obtained by the trimming module 216 is also referred to as the third production quantity, which refers to the decision variable in the planning scheme 150 obtained by the planning equipment 140, and is used to guide the industrial production scheduling scheme.
[0072] Figure 3 A flowchart of an example process 300 for industrial planning according to an embodiment of this application is shown. Process 300 may, for example, be... Figure 1The planning device 140 in the document can be used for implementation, but it can also be implemented by other suitable devices applicable to embodiments of this application. For ease of description, reference is made below. Figure 1 and Figure 2 To describe process 300.
[0073] like Figure 3 As shown in 310, the planning equipment 140 determines the first production quantity of at least one of a plurality of products associated with the industrial production task based on a plurality of constraint subsets of the first constraint set of the industrial production task.
[0074] Obtain the first set of constraints 130 for the production quantities of multiple products in the industrial planning task. The first set of constraints 130 can represent, for example, a MIP model.
[0075] In some embodiments, as referenced above Figure 1 The first constraint set 130 discussed here can be constructed based on user input 120. Specifically, the planning device 140 can determine task information associated with the industrial planning task from the user input 120. Such task information can at least indicate: the production quantities of multiple products to be determined (also called decision variables), parameter constraints (also called decision constraints) related to the values of the production quantities of multiple products, and objectives (also called decision objectives) related to the industrial planning task. Further, the planning device 140 can construct the first constraint set 130 based on the task information.
[0076] In some embodiments, as referenced Figure 1 The first constraint set 230 discussed may also be automatically generated by the planning device 140, for example. For instance, the planning device 140 may automatically generate the first constraint set 130 associated with an industrial production scheduling task based on a pre-executed production schedule. In some embodiments, the production quantities of the multiple products to be determined may include, for example, the daily production quantity of each producer.
[0077] In some embodiments, multiple constraint subsets are generated by classifying the constraints in the first constraint set 130. (See the references above.) Figure 2 The constraint subset generation module 206 divides the first constraint set 130 into multiple constraint subsets 208.
[0078] In some embodiments, for a daily industrial production scheduling problem, a first constraint set 130 is obtained, and a trained machine learning-based model is used to predict the category of the constraints for that day. Specifically, the trained model can predict multiple constraints in the first constraint set 130 to generate their initial categories. In some embodiments, the initial categories can be combined with the classification of constraints from historical industrial production scheduling tasks to generate target categories for the constraints. Constraints with the same target category form a subset of constraints. The following will refer to... Figure 4 The specific implementation of the constraint subset generation module 206 is described, but will not be detailed here.
[0079] For a subset of constraints, corresponding optimization subproblems can be constructed by combining the products involved in the constraint subset with the objective function. For example, the construction of a production scheduling subproblem involves 14 types of variables such as production quantity, predicted delay, order delay, and demand; 17 types of constraints related to substitution quantity, driving processing quantity, and predicted delay; and 10 types of objectives related to predicted driving quantity and substitution delivery cost. In some embodiments, the solution module 210 solves each constructed subproblem to determine the solution to the subproblem. For industrial production scheduling problems, the solution to the subproblem includes the production quantity of the products involved. In some embodiments, the production quantity can be a mixed integer programming solution or a linear programming solution, depending on the specific implementation of the solution module 210. The specific implementation of the solution module 210 will be referred to below. Figure 9 The description will not be detailed here.
[0080] When determining the first production quantity, the solver module 210 can convert the constraint subset 208 into a corresponding set of relaxed constraints by removing the integer value constraint of at least one integer parameter. For example, the type of the integer parameter can be converted to a floating-point parameter.
[0081] In some embodiments, the solver module 210 may use cut constraints to reduce the search space of subproblems, thereby enabling faster generation of mixed-integer programming solutions. Cut constraints are used to remove linear programming solutions that do not currently satisfy integer type restrictions. In the production scheduling problem, cut constraints may have upper or lower bounds on the production quantity of a product. For example, if a linear programming solution for an integer production quantity is 3.1, then a constraint with an upper bound of 3 on that production quantity can be generated. It should be understood that some cut constraints have better performance than others, as they can more effectively cut away solution spaces that do not satisfy integer type restrictions to speed up the search within the solution space. This paper provides a mechanism for effectively selecting cut constraints, which scores candidate cut constraints using a trained scoring model and selects the cut constraints with higher scores to apply to the solver module 210 for a subset of constraints and the solver module 211 for a first set of constraints 204. In some embodiments, the solver module 210 may include one or more of the following operations: a pre-solver module, a batch processing module, and a cut constraint processing module. Reference will be made below. Figures 5 to 8 The specific implementation of the cut constraint selection mechanism will not be detailed here.
[0082] To determine the initial production quantity of at least one of a plurality of products associated with an industrial production scheduling task, solutions to subproblems determined by multiple solution modules 210 can be provided to post-processing module 212. (See reference...) Figure 2 As discussed, post-processing module 212 summarizes the solutions to these subproblems to determine the production quantities of at least a portion of the products. The solutions to the subproblems may include the production quantities of the products involved in that subproblem. In some embodiments, multiple production quantities of the same product may be combined into a first production quantity for that product. Combining may be, for example, the average, weighted average, maximum, or minimum of these multiple production quantities. As mentioned above, the output of solution module 210 may be a mixed-integer programming solution; therefore, for production quantities of integer type, the output of solution module 210 satisfies the integer type constraint, and correspondingly, the first production quantity of the corresponding product is also an integer.
[0083] Continue to refer to Figure 3 At 320, planning equipment 140 determines a second set 215 of constraints for the industrial scheduling task based on a first production quantity of at least one product. The first production quantity of the at least one product obtained for the constraint subset is input to constraint generation module 214. In some embodiments, constraint generation module 214 can be used to add a new upper bound to the corresponding production quantity to generate new constraints. (See reference...) Figure 2In the discussion of production scheduling problems, constraint generation module 214 can generate new constraints for the production quantities of some products (such as the quantity of goods manufactured, the quantity of supply to meet sales demand, the quantity of order delays, the quantity of forecast delays, the quantity of supply substitutions, etc.). In some embodiments, the new constraints can be upper bounds based on a first production quantity of at least one product, which can be equal to the first production quantity or equal to a constant multiple of the first production quantity. The generated new constraints form a second constraint set 215.
[0084] In setting 330, planning equipment 140 determines the third production quantity of each of the multiple products based on the first constraint set 204, the second constraint set 215, and the second production quantity of each product. The second production quantity is determined based on the first constraint set. (See above for reference.) Figure 2 The discussion is in Figure 2 The lower branch obtains the second production quantities of multiple products for the industrial production scheduling task by solving the first constraint set 204. The second production quantities can be linear programming solutions, meaning that the second production quantities of the products are all real numbers. To satisfy some integer type restrictions on production quantities, a third production quantity is also determined through trimming module 216. The third production quantity can be used to guide the industrial production scheduling scheme.
[0085] Specifically, determining the third production quantity first involves using solver 211 to obtain the second production quantity of the product from the first constraint set 204. Similar to solver 210, solver 211 may include one or more of a pre-solver module, a batch processing module, and a cut constraint processing module. In the cut constraint processing, solver 211 may also use cut constraints to reduce the search space of the original industrial planning problem, so as to generate mixed-integer programming solutions more quickly. When solving for the second production quantity, solver 211 can transform the first constraint set 204 into a corresponding set of relaxed constraints by removing at least one integer parameter's integer value constraint. For example, the type of the integer parameter can be converted to a floating-point parameter.
[0086] Next, a batch processing module (not shown) can be added between the solver module 211 and the modifier module. Similar to the batch processing module applied to subproblems, it can be used to handle the batch requirements of production quantities for scheduling problems. In some embodiments, the batch constraint module can be used after the pre-solver module and after the solver module 211.
[0087] After the solution module 211 or after the batch processing module, the trimming module 216 can, according to the predefined hierarchical trimming framework, take the production quantity of the relevant products to the integer level according to the production level of the workpiece, and finally trim the linear programming solution to meet the integer limit, and determine the third production quantity of the product.
[0088] In some embodiments, as referenced Figure 2 As discussed, after determining the third production volume of multiple products, the planning equipment 140 can generate a planning scheme 218 for the industrial planning task to guide the execution of the industrial planning task.
[0089] Based on the industrial planning schemes discussed above, the embodiments of this application can simplify large-scale industrial planning problems into multiple sub-problems and generate additional constraints based on the solutions to the sub-problems. This can significantly reduce the search space of industrial planning tasks, reduce computational and time costs, and thus improve the efficiency of industrial planning.
[0090] AI-based constraint subset generation Traditionally, hypergraph partitioning methods are used to generate subsets of constraints from the constraint set. The goal of hypergraph partitioning is to divide the hypergraph into several subgraphs of roughly equal size, minimizing the dependencies between subgraphs (e.g., minimizing the number of edges across boundaries). Hypergraph partitioning is typically based on random walk algorithms. In industrial planning tasks, constraints correspond to vertices in the hypergraph, and edges in the hypergraph can include multiple vertices, each representing a different constraint. The constraint set of the industrial planning task is input into the hypergraph partitioning algorithm in the form of a constraint matrix, which can then partition the hypergraph into several subproblems, achieving a dimensionality reduction effect on the original industrial planning problem.
[0091] However, unsupervised hypergraph segmentation algorithms are slow, especially when the problem size is large (the constraint matrix is large), and the output block scheme often consumes a lot of time. Embodiments of this application provide an improved constraint subset generation mechanism that, by using artificial intelligence (AI) models and prior knowledge from historical industrial planning tasks, more effectively generates multiple constraint subsets from the original constraint set of an industrial planning problem. Figure 4 A schematic flowchart of a process 400 for generating a subset of constraints according to some embodiments of this application is shown. Process 400 may, for example, be generated by... Figure 1 The planning device 140 in the document can be used for implementation, or it can be implemented by other suitable devices applicable to embodiments of this application.
[0092] like Figure 4As shown, at 402, the constraint subset generation module 206 uses a pre-set model to determine the initial categories of multiple constraints in the first constraint set 204. In some embodiments, the pre-set model can be a neural network model, such as a multilayer perceptron (MLP) network. The neural network model is trained using the constraints of historical industrial production scheduling tasks and the categories of the constraints of those historical industrial production scheduling tasks. Historical industrial production scheduling tasks are scheduling tasks from one or several days prior to the current date, and the constraints in the original constraint set of historical production scheduling tasks have been assigned to the constraint subset, i.e., have corresponding categories. In some embodiments, the pre-set model can also be any model that can be used for classification, such as a decision tree, support vector machine (SVM), random forest, Bayesian model, nearest neighbor algorithm, logistic regression, etc.
[0093] In some embodiments, the constraint set is in matrix form. Constraint matrices from historical production scheduling tasks spanning multiple days can be integrated and combined with constraint attributes to form a feature matrix. The feature matrix can be a 0-1 matrix, where 1 and 0 represent the existence of a corresponding variable; that is, 1 indicates a non-zero coefficient for the relevant variable, and 0 represents a coefficient of 0. Additionally, block matrices from historical production scheduling tasks spanning multiple days can be integrated to determine the labels used for training. Examining the block matrices of historical production scheduling tasks, constraints within the same block matrix are determined to have the same label. In some embodiments, constraints have corresponding attributes. In scheduling problems, attributes can be related to transportation and production, such as date, factory, item number, etc. It should be understood that constraints with the same attribute in multiple historical production scheduling tasks are assigned to corresponding constraint block matrices. If the labels of constraints with the same attribute are consistent, this label can be determined as the label for training the neural network model. If the labels of constraints with the same attribute are inconsistent in the historical data spanning multiple days, i.e., there is a conflict, the inconsistent labels can be permuted to form the labels for training the neural network model, thereby reducing the difficulty of training and improving the generalization ability of the neural network model.
[0094] The trained neural network model is used for inference. In some embodiments, a feature matrix can be generated from the constraint matrix of the industrial production task for the day. The generated feature matrix is input into the trained neural network model, which predicts the initial categories of a subset of constraints in the first constraint set 204. For example, the neural network model can generate classification vectors for constraints, where each component indicates the probability (a normalized value between 0 and 1) that the constraint belongs to that category. The neural network model can determine the initial category for constraints whose components satisfy a certain threshold (e.g., greater than 0.6). For constraints that do not satisfy the threshold, no initial category can be determined for them.
[0095] The initial predicted categories can be compared with the category information of constraints in historical industrial production scheduling tasks. For daily scheduling problems, comparing data from two adjacent days and matching variables and constraints according to attributes yields a matching rate of up to 60% for variables and up to 80% for constraints, indicating that there is a lot of reusable information. Therefore, this method of constructing training data is reasonable.
[0096] Specifically, for the constraints of the initial categories predicted by the model, at 404, the constraint subset generation module 206 determines the attributes of the current constraints. In the scheduling problem, attributes can be related to transportation and production, such as date, factory, item number, etc.
[0097] In step 406, the constraint subset generation module 206 determines the category of the corresponding constraint with the attribute in the historical production scheduling tasks. The historical production scheduling tasks can be, for example, the scheduling tasks from the previous day, or the scheduling tasks from the same day last week; this application does not impose any restrictions on this. The constraint subset generation module 206 searches for constraints with the attribute in the constraints of the current day's production scheduling tasks and determines the category of the constraint based on the constraint block information of the current day's production scheduling tasks. For example, for an attribute of a constraint determined in step 404, such as item number 213360, a constraint with number 213360 can be found in the previous day's production scheduling tasks. If found, the category of the constraint is obtained from the constraint matrix block information of the previous day, i.e., which constraint subset or constraint block matrix the constraint is assigned to.
[0098] At 408, the constraint subset generation module 206 determines whether the predicted initial category matches the category of the found corresponding constraint. If they match, at 410, the initial category of the constraint is determined as the target category. The target category is used to determine which constraint subset the constraint is assigned to as a constraint in the corresponding subproblem.
[0099] If there is no match, at 412, the constraint subset generation module 206 determines whether the current constraint is the last constraint with an initial category. If it is not the last, it returns to 404, selects the next constraint, determines the attributes of that constraint, and repeats the above steps 404 to 412. After processing the constraints with predicted initial categories, at 414, the constraint subset generation module 206 uses a hypergraph segmentation algorithm to generate target categories for mismatched constraints. The hypergraph segmentation algorithm can be, for example, a random walk-based algorithm. As described above, the block information from historical investigation tasks can be transferred as prior information to the current constraint blocks: for constraints with matching categories, the category predicted by the neural network model is used as the category of the constraint; for constraints with predicted categories that match historical data, the hypergraph segmentation algorithm is used to determine their target categories so that they can be assigned to their respective constraint subsets.
[0100] In some embodiments, constraints with matching categories and their categories can be used as part of the input to the hypergraph segmentation algorithm. This reduces the number of constraints the hypergraph segmentation algorithm will segment or classify, and the input of these constraints as prior knowledge helps the algorithm determine the target category of the remaining constraints more quickly and accurately. The remaining constraints include constraints whose predicted initial categories do not match the categories of the corresponding constraints in the historical scheduling tasks, as well as constraints in the first constraint set 204 whose initial categories were not predicted.
[0101] Then, the constraint subset generation module 206 can generate multiple constraint subsets based on the target categories of the constraints in the constraint set, wherein constraints with the same target category are assigned to the same constraint subset. This allows for the formation of sub-problems for the industrial planning problem.
[0102] Based on the constraint subset generation scheme discussed above, the embodiments of this application can avoid using an unsupervised hypergraph segmentation algorithm from scratch to output constraint subsets when the industrial planning problem is large in scale. Instead, it uses AI models and prior knowledge from historical industrial planning tasks to help predict the categories of some constraints, thereby accelerating the hypergraph segmentation algorithm. This facilitates the more accurate and faster generation of multiple constraint subsets from the original constraint set of the industrial planning problem. AI-based selection cut constraint For mixed-integer programming problems, we can first solve the linear programming solution, which involves removing integer value constraints from the constraint set and transforming the constraint set into a set of corresponding relaxation constraints. For example, the type of integer parameters can be converted to floating-point parameters. Then, we remove linear programming solutions that do not meet the integer type constraints from the solution space of the linear programming solution by adding a set of cut constraints.
[0103] For example, if a mixed-integer programming problem has 100 constraints, a cut constraint generation rule can generate 50 additional constraints. These constraints are used to remove linear programming solutions that do not currently satisfy the integer constraints. In scheduling problems, some of the generated cut constraints take the form of upper or lower bounds for variables. For example, if the linear programming solution for a variable with an integer constraint is 3.1, the generated cut constraint might assign an upper bound of 3 to that variable.
[0104] Cut constraints can be added to the constraint set of the production scheduling problem. This reduces the solution space due to the addition of the cut constraints, thus accelerating the search within the solution space. It should be understood that different cut constraints or combinations of cut constraints have different efficiencies in cutting the solution space: some cut constraints or combinations of cut constraints can significantly reduce the solution space, while others have lower performance.
[0105] The embodiments of this application provide an AI-based cut constraint selection method, which uses a trained machine learning-based scoring function to score each candidate cut constraint, and selects a certain proportion of the higher-ranked cut constraints according to the score ranking, and adds these selected constraints to the scheduling problem constraint matrix.
[0106] Figure 5 A schematic flowchart of a process 500 for applying cut constraints according to some embodiments of this application is shown. Process 500 may, for example, be performed by... Figure 1 The planning device 140 in the document can be used for implementation, or it can be implemented by other suitable devices applicable to embodiments of this application.
[0107] At step 510, the planning device 140, based on the first constraint set 204, determines one or more cut constraints associated with the integer production quantities of at least a subset of products. Step 510 can be implemented by the cut constraint selection module 217 in the planning device 140. In industrial scheduling tasks, the production quantities of a subset of products may have integer type restrictions. The planning device 140 can generate cut constraints for them and add these cut constraints to the first constraint set to reduce the solution space.
[0108] In step 520, the planning device 140 determines the second production quantity for each of the multiple products based on one or more cutting constraints and a first constraint set. Step 520 can be implemented by the solution module 211 in the planning device 140. In some embodiments, before solving for the second production quantity, the solution module 211 may also perform some pre-operations, such as deleting raw material constraints in the industrial scheduling task for pre-solving, and / or adding batch constraints for batch processing, etc. It should be noted that the second production quantity for the multiple products is a linear programming solution obtained based on the first constraint set 204 of the original problem; that is, the second production quantity is a real production quantity.
[0109] In some embodiments, the process 500 applied to the cutting constraint can also be applied to the solution module 210 for the constraint subset 208 to reduce the solution space of the subproblem. Similarly, the solution module 210 may have pre-operations similar to those of the solution module 211. Further details are omitted here.
[0110] Figure 6 A schematic flowchart of a process 600 for selecting cut constraints according to some embodiments of this application is shown. Process 600 can be performed by... Figure 1 The planning device 140 can be used to implement this, or it can be implemented by other suitable devices applicable to embodiments of this application. Figure 6 More details of step 510 are shown.
[0111] In step 610, the cut constraint selection module 217 generates a set of candidate cut constraints associated with the integer production quantities of at least a portion of the products based on the first constraint set 204. In some embodiments, the scheme for generating cut constraints aims to utilize the problem structure of the constraints themselves to construct new cut constraints. Examples of such schemes may include, but are not limited to: Intersection Cuts schemes, T-space Cuts schemes, lower bounds conflict-driven cuts schemes, etc. This application does not limit this.
[0112] At 620, the cut constraint selection module 217 scores the cut constraints in the candidate cut constraint set. The cut constraint selection module 217 can use a scoring function for scoring. In some embodiments, the scoring function can be obtained by training a neural network model (e.g., a multilayer perceptron (MLP) model). The training objective is to learn a generalizable scoring function that can score cut constraints based on problem attributes. Cut constraints with higher scores have a better effect on reducing the solution space, ultimately resulting in an increase in integer variables and faster overall solution processing.
[0113] Regarding the scoring function, the cut constraint selection module 217 needs to collect training data for training the neural network model of the scoring function, and also needs to use this training data to train the neural network model. The following will refer to... Figure 7 and Figure 8 To obtain training data and the model training process.
[0114] At 630, the cut constraint selection module 217 selects one or more cut constraints from the candidate cut constraint set based on the score. The cut constraint selection module 217 selects a certain proportion of the cut constraints with higher scores and higher rankings, and adds them to the first constraint set 204 of the original industrial scheduling problem or the constraint subset 208 corresponding to the subproblem.
[0115] Figure 7A schematic flowchart of a process 700 for training a cut constraint scoring model according to some embodiments of this application is shown. Since the impact of a single cut constraint on the solution is generally weak, the impact of a group of cut constraints on the solution can be considered. Embodiments of this application provide a Multiple Instance Learning (MIL) method. This method does not assign labels to individual instances, but rather to a group of instances, also known as a bag. Therefore, the training data consists of bags and bag labels. In the prediction phase, labels can be predicted for individual instances or for bags. In industrial scheduling tasks, multiple cut constraints form a cut constraint bag. Labels are assigned to the cut constraints within a cut constraint bag. In this document, a cut constraint bag can be referred to as a cut constraint group. Process 700 can be implemented by planning equipment 140 or by other suitable equipment applicable to embodiments of this application.
[0116] like Figure 7 As shown, at step 710, a candidate cut constraint set is generated. As described above, the specific method for generating cut constraints aims to utilize the problem structure of the constraints themselves to construct new cut constraints; this application does not impose limitations. In some embodiments, a linear programming solution is solved for a problem instance (not necessarily the current industrial scheduling problem), and then a candidate cut constraint set is generated based on the constraint set of the original problem and the linear programming solution. The candidate cut constraint set may include, for example, cut constraints on upper or lower bounds of integer-type production quantities in the constraint set.
[0117] For the input problem instance, the sampling process can be iterative. First, at 720, the cut constraint selection module 217 scores the cut constraints using a scoring function. Initially, the scoring function can be determined by the initial parameters of an untrained neural network model. The initial parameters of the neural network model can be randomly generated or obtained through pre-training; this application does not impose any restrictions on this. The scores of the cut constraints generated by the scoring function are used for sampling to generate a cut constraint package.
[0118] At 730, a cut constraint bag is generated through sampling. To improve the quality of the sampled samples, a dynamic sampling process is adopted, that is, sampling is based on a pre-trained policy, while incorporating a certain amount of exploration. This differs from random sampling, which samples training samples according to a random policy; dynamic sampling is based on the policy during the training process and introduces a certain amount of exploration. In some embodiments, the policy is based on the score of the cut constraints, for example, selecting the cut constraints with the highest scores.
[0119] In some embodiments, candidate cut constraints are ranked based on scores, and according to Multiple cut constraint packages are sampled in a manner that allows for the identification of multiple cut constraints (each package contains multiple cut constraints). For example, the cut constraints in a cut constraint package include those specified in the original text. The probability is sampled according to a specific strategy to obtain cut constraints, which also include... Cut constraints obtained from probabilistic random sampling. For example, if the strategy is to select cut constraints from the top-scoring candidates, then the cut constraint set contains... Probabilistic cut constraints are among the top-ranked cut constraints, while It is randomly selected. In a single dynamic sampling, cut constraints in different cut constraint packages can overlap.
[0120] At step 740, obtain the feedback from the cut constraint packages. After selecting multiple cut constraint packages, add them to the original problem to continue solving, and obtain the feedback corresponding to each cut constraint package. .feedback This can be a speedup in terms of time. In other words, it refers to the speedup effect of including the cut constraint in the problem instance. The speedup effect can be expressed as the solution time before and after applying the cut constraint package.
[0121] In some embodiments, the labels of cut constraints in a plurality of cut constraint packages are determined based on feedback. For example, the plurality of cut constraints are ranked and labeled according to the feedback. Assume the sampled cut constraint package is... The algorithmic feedback obtained after they were added to the problem instances was: We can then assign training labels based on the feedback ranking. .
[0122] Figure 8 A schematic diagram is shown for generating labels for cut constraints according to some embodiments of this application. According to embodiments of this application, multiple cut constraints are dynamically sampled from a candidate cut constraint set 810. b 1 , b 2 ... b h Each cut constraint package is added to the original problem instance, and their speedup effect on the problem instance is calculated. r 1 , r 2 ... r h As mentioned earlier, different cut constraint packages have varying degrees of reduction in the solution space and different impacts on problem solving. Generally, cut constraint packages with high feedback are considered more beneficial for problem solving; that is, the cut constraint selection strategy should be more inclined to select them. Therefore, a certain proportion of cut constraint packages that obtain the highest feedback can be assigned positive labels, and the remaining cut constraint packages can be assigned negative labels.
[0123] In some embodiments, the labels of cut constraints in the cut constraint package are determined according to the following formula (5). y j.
[0124] (5) For example, sorting the cut constraint packages by feedback from highest to lowest, the top λ% are assigned the label 1, where λ is a controllable hyperparameter. It should be understood that higher feedback indicates a better speedup effect when the corresponding cut constraint is added to the original problem instance. Therefore, cut constraints within a cut constraint package are assigned a label of 0 or 1 according to the label of the package they belong to.
[0125] This 0 / 1 binary labeling scheme simplifies the training process, and since the purpose of the cut constraint selection module 217 is to select the optimal combination of cut constraints, rather than requiring the output of an exact ranking of all cut constraints, the multi-instance learning-based scheme is reasonable and meets the requirements. It should be understood that the label values are not limited to 0 and 1.
[0126] Continue to refer to Figure 7 At 750, training data is generated based on feedback. The training data includes features of the cut constraint pack and labels for the cut constraint pack. The labels included in the cut constraints are obtained by referencing... Figure 8 The method described herein is as follows. Embodiments of this application also provide a series of features associated with the properties of the problem itself, enabling generalization in the feature space, thereby giving the scoring function good generalization ability.
[0127] These features may include: 1) Coefficient statistics in cut constraints (4 dimensions): including mean, maximum, minimum, and standard deviation. 2) Objective function coefficient statistics (4 dimensions): including mean, maximum, minimum, and standard deviation. 3) Support (1-dimensional): The proportion of non-zero coefficients of variables in the cut. 4) Integral Support (1D): Integer constraint on the proportion of non-zero coefficients in the cut variable. 5) Normalized Violation (1D): The normalized result of the current linear programming solution's violation of the cut constraints. 6) Distance (1-dimensional): The distance from the current linear programming solution to the cut constraint. 7) Parallelism (1D): The cosine of the angle between the cut constraint and the objective function, used to measure parallelism. 8) Expected Objective Improvement (1D): The estimated improvement amount after adding cut constraints.
[0128] The first eight dimensions are related to the coefficient statistics of the cut constraints and the optimization problem itself, while the last six dimensions measure the structural relationship between the cut constraints and the problem, and can be used as a standard to measure the quality of the cut constraints. Then, the features of the cut constraints within the cut constraint bag are aggregated to construct the bag features.
[0129] For a cut constraint package, it can be obtained by aggregating the cut constraint features within the package. For example, a cut constraint package is a subset of cut constraints. C’ Assuming that it contains cut constraints with the following characteristics: The resulting cut constraint bag features It can be expressed as a function as shown in formula (6). : (6) in, It can be set as a weighted sum function or a simple average function, and this application does not limit it to this.
[0130] At 760, the scoring function is trained. In some embodiments, for the input features... x (During training, the input feature is the cut constraint bag feature), which is processed by a multilayer perceptron (MLP) network as shown in Equation (7) and a softmax layer to output the binary classification selection probability. , probability As a rating: (7) in x e This is the output vector of the MLP network, which, after being processed by a softmax layer, yields the binary selection probability. .
[0131] In some embodiments, a loss function can also be defined. As shown in the following formula (8). (8) in, For cross-entropy loss, for L2 Regularization loss, where γ is a hyperparameter. θ Here, is the parameter to be learned, and N is the number of problem instances. h It is the first j The number of training samples for each question x These are features of the training samples. y These are data labels (e.g., 0 or 1). i It is the sample number. p It represents probability.
[0132] Continue to refer to Figure 7In step 770, it is determined whether training is complete. This can be determined by checking if a certain number of iterations has been reached, if a preset training time has been reached, or if the parameters of the current neural network model meet certain convergence criteria. This application does not impose any restrictions on these criteria.
[0133] If training is determined to be complete, then at 780, output the scoring function. For example, determine the current neural network model as the scoring function to be used for inference. If training is determined not to be complete, return to 720 and repeat the above steps 720 through 770.
[0134] Then, for a given new problem instance, such as the industrial production scheduling problem, when solving the reduction phase of modules 210 and 211, we generate a set of candidate reduction constraints according to the reduction constraint generation rules, score each candidate reduction constraint using the trained score, rank them according to the score, and select a certain proportion of the top-ranked reduction constraints, thus completing the reduction constraint selection.
[0135] According to embodiments of this application, the AI-based cut constraint selection module provides a more efficient selection strategy compared to traditional heuristic strategies, and introduces a certain degree of generalization, avoiding the need for manpower to readjust heuristic strategies when the problem structure or scale changes.
[0136] solver To improve the efficiency of industrial production scheduling, embodiments of this application also provide a solver for linear programming solutions capable of quickly determining product production quantities. The solver can be implemented in, for example... Figure 2 The solver is located at solver module 210 or 211 as shown. According to embodiments of this application, the solver can be configured to implement as follows: Figure 9 One or more steps in the process shown. The solver according to embodiments of this application can be implemented using hardware, software, or a combination of hardware and software. Figure 9 A schematic flowchart of a process 900 for determining a linear programming scheme for scheduling tasks according to some embodiments of this application is shown.
[0137] In step 910, the pre-solution production quantity is determined by removing constraints related to raw material limitations. Here, the raw material constraints in the production scheduling problem are ignored. For example, constraints related to raw material limitations in the production scheduling problem include inventory levels and capacity consumption. Removing these constraints is equivalent to having unlimited raw materials. As an example, if the original inventory of a certain raw material A is 10, and producing 1 item B requires 5 A, then at most 2 B can be produced. Now, assuming that the raw material is sufficient, the production quantity of B is not limited. This process reduces the dimensionality of the problem, and because the problem size is reduced, a solution can be obtained quickly. This solution can serve as an upper bound to limit the value of the production quantity in the original problem, thereby reducing the search space.
[0138] In step 920, based on the constraints of the pre-solved production quantity and batch requirements, the production quantity that meets the batch requirements is determined. In the production scheduling problem, there are batch requirements for producing certain workpieces, such as the production quantity of workpiece B can only be a multiple of 5. By adding batch requirement constraints, the parts of the solution obtained after the previous solution process that do not meet the batch requirements can be handled, so that the solution meets the batch requirements as much as possible. In some embodiments, batch constraints can be added by adding a penalty factor to the objective function for solutions that do not meet the batch requirements.
[0139] At 930, the linear programming production quantity of the product is determined based on the production quantity that meets the batch requirements and the cut constraints. Here, the cut constraints to be added can be determined by the cut constraint selection module 217, which can better reduce the search space so that the linear programming solution can be trimmed into a mixed-integer programming solution more quickly. In some embodiments, the solver can call the cut constraint selection module 217 through an application programming interface (API).
[0140] When the solver is implemented at the solver module 210 for constraint subset 208, it can remove constraints related to raw material limitations from the constraint subset, determine the pre-solved production quantity of the corresponding subproblem, determine the production quantity that meets the batch requirements for the subproblem, and the linear programming production quantity of the products in the subproblem. This linear programming production quantity can be a reference... Figure 3 The described first production quantity, or the quantity that can be used to obtain it, is used. When the solver is implemented at the solver module 211 for the first constraint set 204, constraints related to raw material limitations can be removed from the first constraint set to determine the pre-solved production quantity of the scheduling problem, the production quantity that meets the batch requirements of the scheduling problem, and the linear programming production quantities of each of the multiple products associated with the scheduling problem. These linear programming production quantities can be referenced... Figure 3 The second production volume of each of the described products, or the quantity that can be used to obtain that second production volume.
[0141] In some embodiments, the solver may also include a trimming module. For example, when the solver is implemented in the solver module 210 for a subset of constraints, after determining the linear programming production quantity of the product, the linear programming production quantity may be trimmed to a mixed integer production quantity. That is, the first production quantity of a portion of the product determined for the subproblem is adjusted to conform to the integer type constraint.
[0142] In some embodiments, batch requirement constraints can be applied not only before determining the pre-solved production quantity but also after determining the linear programming production quantity of the product. For example, when the solver is implemented in the solution module 210 for a subset of constraints, after the linear programming production quantity of the product is determined, batch requirement constraints can be added and the solution solved again to handle the portion of the solution processed by the cut constraint that does not meet the batch requirement. Additionally, if the solver includes a trimming module, the production quantity obtained after batch processing can be input into the trimming module to trim the linear programming solution to meet integer constraints.
[0143] Example scenarios and performance The industrial planning scheme provided in the embodiments of this application was used for testing. The multi-factory scheduling problem in January was selected as offline test data, and the AI module was trained. Online testing was then conducted on March data. The performance of the segmented module (i.e., ...) in January is as follows: Figure 10A As shown.
[0144] On the test data, the block-based module achieves a significant speedup with a relatively small loss of accuracy. However, some days also showed no feasible solutions. This indicates that solving the problem in blocks can be completed in a relatively short time.
[0145] Figure 10B The results of offline testing of the cut constraint selection module on January data are shown. Figure 10C The results of offline testing of the cut constraint selection module on March data are shown.
[0146] As can be seen, the AI-based Cut Ranking module achieved a stable speed improvement on multi-day data, with an average speed improvement of 14.98% on offline data and an average speed improvement of 12.42% on online data.
[0147] Furthermore, the scheduling solver sometimes exhibits abnormal behavior, such as having no feasible solutions or taking significantly longer than average. The implementation of the cut constraint selection module can reduce these issues to some extent, thus improving the solver's robustness.
[0148] Example devices and equipment Figure 11 A block diagram of an apparatus 1100 for industrial scheduling according to an embodiment of this application is further shown. The apparatus 1100 may include multiple modules for performing tasks such as... Figure 3 The corresponding steps in process 300 discussed herein. For example... Figure 11As shown, the apparatus 1100 includes: a first production quantity determination unit 1110 configured to determine a first production quantity of at least one of a plurality of products associated with an industrial production scheduling task based on a plurality of constraint subsets of a first constraint set of an industrial production scheduling task; a second constraint set generation unit 1120, which determines a second constraint set of an industrial production scheduling task based on the production quantity of the at least one product; and a third production quantity determination unit 1130, which determines a third production quantity of each of the plurality of products based on the first constraint set, the second constraint set, and the second production quantities of each of the plurality of products, wherein the second production quantities are determined based on the first constraint set.
[0149] In some embodiments, the apparatus 1100 may further include a constraint subset generation unit. The constraint subset generation unit may be configured to: determine the target categories of multiple constraints in a first constraint set using a pre-set model; and generate multiple constraint subsets of the first constraint set based on the target categories of the multiple constraints.
[0150] In some embodiments, the constraint subset determination unit may also be configured to: determine the initial category of each of the plurality of constraints using a pre-set model; and determine the target category of the plurality of constraints based on the initial category and the plurality of historical categories of constraints of historical industrial production scheduling tasks.
[0151] In some embodiments, the pre-configured model is a neural network model, which is trained using constraints of one or more historical industrial production scheduling tasks and categories of those constraints.
[0152] In some embodiments, the industrial scheduling task is a mixed integer programming (MIP) task, where at least a portion of a plurality of products have integer production quantities. The apparatus may further include: a cut constraint selection unit configured to determine one or more cut constraints associated with the integer production quantities of at least a portion of the products based on a first set of constraints; and a second production quantity determination unit configured to determine a second production quantity for each of the plurality of products based on one or more cut constraints and the first set of constraints.
[0153] In some embodiments, the cut constraint selection unit may also be configured to: generate a set of candidate cut constraints associated with the integer production quantities of at least a portion of the products based on a first set of constraints; score the cut constraints in the set of candidate cut constraints; and select one or more cut constraints from the set of candidate cut constraints based on the scores.
[0154] In some embodiments, the apparatus 1100 may further include a scoring model training unit configured to: determine feedback after a plurality of cut constraint packages are applied, each cut constraint package including a plurality of cut constraints for training; determine labels of the cut constraints in the plurality of cut constraint packages based on the feedback; and train a cut constraint scoring model using the plurality of cut constraint packages with labels.
[0155] In some embodiments, the second set of constraints includes the constraint that the third production quantity of the at least one product is not greater than the first production quantity associated with the at least one product.
[0156] In some embodiments, the third production quantity determination unit may be configured to adjust the second production quantity of at least a portion of the products to an integer type based on the production level of the multiple products.
[0157] In some embodiments, the apparatus 1100 further includes a second production quantity determination unit. This second production quantity determination unit is configured to: determine a pre-solved production quantity for each of a plurality of products by removing constraints related to raw material limitations from a first set of constraints; determine a production quantity that meets the batch requirements based on the pre-solved production quantity and batch requirement constraints; and determine a second production quantity for the plurality of products based on the production quantity that meets the batch requirements and cutting constraints.
[0158] Figure 12 A schematic block diagram of an example device 1200 that can be used to implement embodiments of the present application is shown. For example, the planning device 140 according to an embodiment of the present application can be implemented by device 1200. As shown, device 1200 includes a central processing unit (CPU) 1201, which can perform various appropriate actions and processes according to computer program instructions stored in read-only memory (ROM) 1202 or loaded from storage unit 1208 into random access memory (RAM) 903. Various programs and data required for the operation of device 900 may also be stored in RAM 1203. CPU 1201, ROM 1202, and RAM 1203 are interconnected to each other via bus 904. Input / output (I / O) interface 1205 is also connected to bus 1204.
[0159] Multiple components in device 1200 are connected to I / O interface 1205, including: input unit 1206, such as keyboard, mouse, etc.; output unit 1207, such as various types of monitors, speakers, etc.; storage unit 1208, such as disk, optical disk, etc.; and communication unit 1209, such as network card, modem, wireless transceiver, etc. Communication unit 1209 allows device 1200 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0160] The various processes and handling described above, such as process 300, can be executed by processing unit 1201. For example, in some embodiments, processes 300, 400, 500, 600, 700, and 900 can be implemented as computer software programs tangibly contained in a machine-readable medium, such as storage unit 1208. In some embodiments, part or all of the computer program can be loaded and / or installed on device 1200 via ROM 1202 and / or communication unit 1209. When the computer program is loaded into RAM 1203 and executed by CPU 1201, one or more actions of processes 300, 400, 500, 600, 700, and 900 described above can be performed.
[0161] This application may be a method, apparatus, system, chip, and / or computer program product. A chip may include a processing unit and a communication interface, the processing unit being capable of processing program instructions received from the communication interface. A computer program product may include a computer-readable storage medium on which computer-readable program instructions for performing various aspects of this application are stored.
[0162] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination of the foregoing. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.
[0163] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.
[0164] The computer program instructions used to perform the operations of this application may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuits, such as programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), are personalized by utilizing the status information of the computer-readable program instructions. These electronic circuits can execute the computer-readable program instructions to implement various aspects of this application.
[0165] Various aspects of this application are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0166] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0167] Computer-readable program instructions may 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, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0168] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0169] The various embodiments of this application have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method for industrial production scheduling, comprising: Use a pre-defined model to determine the target categories of multiple constraints in the first set of constraints for industrial production scheduling tasks; Based on the target category of the multiple constraints, generate multiple constraint subsets of the first constraint set; Based on the multiple constraint subsets, determine the first production quantity of at least one of the multiple products associated with the industrial production scheduling task; Based on the production volume of the at least one product, determine the second set of constraints for the industrial production scheduling task; as well as Based on the first set of constraints, the second set of constraints, and the second production quantity of each of the plurality of products, a third production quantity of each of the plurality of products is determined, wherein the second production quantity is determined based on the first set of constraints.
2. The method of claim 1, wherein determining the target category of the plurality of constraints in the first constraint set comprises: The initial category of each of the multiple constraints is determined using the pre-set model; Based on the initial category and multiple historical categories constrained by historical industrial production scheduling tasks, the target category of the multiple constraints is determined.
3. The method of claim 2, wherein determining the categories of the plurality of constraints comprises: Determine the properties of the first constraint among the plurality of constraints; Determine the category of the corresponding constraint with the aforementioned attribute in the historical industrial production scheduling task; If the initial category of the first constraint matches the category of the corresponding constraint, the initial category of the first constraint is determined as the target category of the first constraint; If the initial category of the first constraint does not match the category of the corresponding constraint, a hypergraph segmentation algorithm is used to generate the target category of the first constraint.
4. The method according to claim 3, wherein generating the target category of the first constraint using a hypergraph segmentation algorithm comprises: By using the category of the second constraint among the multiple constraints as input to the hypergraph segmentation algorithm, the target category of the first constraint is generated, and the initial category of the second constraint is matched with the category of the constraint corresponding to the historical industrial production scheduling task.
5. The method according to any one of claims 1-4, wherein the pre-set model is a neural network model, the neural network model being trained using constraints of one or more historical industrial production scheduling tasks and the categories of the constraints of the one or more historical industrial production scheduling tasks.
6. The method according to any one of claims 1-4, wherein the industrial scheduling task is a mixed-integer programming (MIP) task, at least a portion of the plurality of products have integer production quantities, and the method further comprises: Based on the first set of constraints, determine one or more cut constraints associated with the integer production quantities of the at least a portion of the products; as well as Based on the one or more cutting constraints and the first set of constraints, the second production quantity of each of the plurality of products is determined.
7. The method of claim 6, wherein determining one or more cut constraints associated with the integer production quantity of the at least portion of the products comprises: Based on the first set of constraints, a set of candidate cut constraints associated with the integer production quantities of the at least a portion of the products is generated; The cut constraints in the candidate cut constraint set are scored; as well as One or more cut constraints are selected from the set of candidate cut constraints based on the score.
8. The method of claim 7, wherein scoring the cut constraints in the candidate cut constraint set comprises scoring the cut constraints using a pre-set scoring model, the pre-set scoring model being trained using multiple cut constraint packages with labels, the labels being determined based on feedback after the multiple cut constraint packages are applied, each cut constraint package comprising multiple cut constraints used for training.
9. The method according to any one of claims 1-4, wherein the second set of constraints includes the following constraints: The third production volume of the at least one product is not greater than the first production volume associated with the at least one product.
10. The method according to any one of claims 1-4, wherein determining the third production quantity of each of the plurality of products comprises: Based on the production level of the plurality of products, the second production quantity of at least a portion of the plurality of products is adjusted to an integer type.
11. The method according to any one of claims 1-4, further comprising: By removing constraints related to raw material limitations from the first set of constraints, the pre-solved production quantity of each of the plurality of products is determined; Based on the constraints of the pre-solved production quantity and batch requirements, the production quantity that meets the batch requirements is determined; as well as Based on the production quantity that meets the batch requirements and the cutting constraints, the second production quantity of the plurality of products is determined.
12. An apparatus for industrial production scheduling, comprising: The constraint subset generation unit is configured to: use a pre-set model to determine the target categories of multiple constraints in the first constraint set of the industrial scheduling task; And based on the target category of the multiple constraints, generate multiple constraint subsets of the first constraint set; The first production quantity determination unit is configured to determine the first production quantity of at least one of a plurality of products associated with the industrial production scheduling task based on the plurality of constraint subsets. The second constraint set generation unit determines the second constraint set of the industrial production scheduling task based on the production volume of the at least one product. as well as The third production quantity determination unit determines the third production quantity of each of the plurality of products based on the first constraint set, the second constraint set, and the second production quantity of each of the plurality of products. The second production quantity is determined based on the first constraint set.
13. The apparatus of claim 12, wherein the constraint subset generation unit is further configured to: The initial category of each of the plurality of constraints is determined using the pre-set model; and Based on the initial category and multiple historical categories constrained by historical industrial production scheduling tasks, the target category of the multiple constraints is determined.
14. The apparatus of claim 12, wherein the industrial scheduling task is a mixed-integer planning (MIP) task, at least a portion of the plurality of products have integer production quantities, and the apparatus further comprises: The cut constraint selection unit is configured to determine one or more cut constraints associated with the integer production quantity of the at least a portion of the products based on the first set of constraints. as well as The second production quantity determination unit is configured to determine the second production quantity of each of the plurality of products based on the one or more cutting constraints and the first set of constraints.
15. The apparatus of claim 14, wherein the cut constraint selection unit is configured to: Based on the first set of constraints, a set of candidate cut constraints associated with the integer production quantities of the at least a portion of the products is generated; Scoring the cut constraints in the candidate cut constraint set; and One or more cut constraints are selected from the set of candidate cut constraints based on the score.
16. The apparatus of claim 15, further comprising a scoring model training unit configured to: Determine the feedback after multiple cut constraint packs are applied, each cut constraint pack including multiple cut constraints used for training; The labels of the plurality of cut constraint packages are determined based on the feedback; and The cut constraint scoring model is trained using the plurality of cut constraint packages with the aforementioned labels.
17. The apparatus according to any one of claims 12-16, wherein the second set of constraints includes the following constraints: The third production volume of the at least one product is not greater than the first production volume associated with the at least one product.
18. An electronic device comprising: At least one computing unit; At least one memory coupled to the at least one computing unit and storing instructions for execution by the at least one computing unit, the instructions, when executed by the at least one computing unit, causing the device to perform the method according to any one of claims 1-11.
19. A computer-readable storage medium having a computer program stored thereon, the program, when executed by a processor, implementing the method according to any one of claims 1-11.
20. A computer program product comprising computer-executable instructions, wherein the computer-executable instructions, when executed by a processor, implement the method according to any one of claims 1-11.