WO2023051505A1 - 一种任务求解方法及其装置 - Google Patents
一种任务求解方法及其装置 Download PDFInfo
- Publication number
- WO2023051505A1 WO2023051505A1 PCT/CN2022/121620 CN2022121620W WO2023051505A1 WO 2023051505 A1 WO2023051505 A1 WO 2023051505A1 CN 2022121620 W CN2022121620 W CN 2022121620W WO 2023051505 A1 WO2023051505 A1 WO 2023051505A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- linear programming
- solution
- task
- constraints
- importance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/04—Manufacturing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Definitions
- the scheduling problem is one of the most common problems in large-scale manufacturing, logistics, production and other links.
- scheduling always has different meanings.
- logistics scheduling mainly refers to the logistics company's reasonable arrangement and scheduling of vehicles and personnel according to the weight, whereabouts, specifications, and urgency of the goods to be delivered during the logistics process; while scheduling in the production environment is
- the sequencing of tasks and the matching between tasks and machines are completed in several tasks (jobs);
- scheduling of workers/flight attendants in large manufacturing plants/airports (timetabling) is also a kind of scheduling problem, because the goal of this type of problem is also to complete the optimal match in different time periods according to the work characteristics of workers/flight attendants and scenarios. Therefore, the core is sorting and optimal allocation, not limited to whether the tasks are people or goods.
- the goal of scheduling problems is to obtain the order corresponding to the minimum total man-hour (makespan) under the premise of a given number of
- linear programming linear programming, LP
- the linear programming model may include an objective function and constraint conditions, wherein the objective function refers to a function designed according to the objective to be optimized and the variables affecting the objective.
- the goal of the entire production scheduling is usually to find a best processing plan under the condition of satisfying all resource constraints, so that the satisfaction rate of the demand is the highest, and the overall cost is the smallest (for example, the cost can include But not limited to processing cost, inventory cost, transshipment cost), at this time, the objective function may be a function representing the maximization of satisfaction rate and the minimization of cost.
- the constraints refer to other constraints to be satisfied in the process of solving the objective function.
- the present application provides a task solving method, the method comprising:
- the terminal device may transmit the first linear programming task as a model to be solved to the server, and then the server may acquire the first linear programming task.
- the terminal device may use the first linear programming task as prior information used to solve the model to be solved, that is, transmit at least one historical model including the first linear programming task to the server, and then the server may obtain at least one history model including a first linear programming task;
- the solution time required to solve the linear programming task is very long, so some constraints in the linear programming task can be selected first, and the solution is based on the selected partial constraints, and the solution
- the result (the state of the solution variable in the selected partial constraint) is assigned to the linear programming task, which is equivalent to using the solution result as the initial value of the linear programming task and solving the linear programming task.
- the solution result of the selected partial constraint is the same as the linear programming task
- the solution results after the task are basically the same (or described as relatively close, the solution results here are basically the same can be understood as the parameter values of the solution variables in the same constraints are basically the same)
- the number of iterations required to solve the linear programming task is less , that is, it can improve the solution speed of the linear programming task.
- the importance is used as a basis for selecting partial constraints from multiple first programming constraints, where the importance may indicate a degree of contribution to reducing the solution time of the first linear programming task.
- the so-called indicating the degree of contribution to reducing the solution time of the first linear programming task can be understood as, when constructing the submodel of the model to be solved (that is, selecting a part of the constraints in the model to be solved to construct the submodel ), when the result of solving the submodel is used as the initial value of the model to be solved, the submodel includes the degree of contribution of the first linear programming task to reducing the solution time for solving the model to be solved.
- the importance can be used as a sampling probability to sample a plurality of first planning constraints to obtain a subtask (second planning task), and the planning constraint in this subtask is to reduce the solution of the first linear programming task Therefore, the solution result obtained after solving the second planning task is basically the same as the solution result obtained after solving the second planning task (or described as relatively close, the solution result here is basically the same can be It is understood that the parameter values of the solution variables in the same constraint are basically the same).
- the importance can be obtained based on prior information, where the prior information can be one or more models of the same type as the model to be solved (the first linear programming task), the so-called same type, can be understood
- the types and quantities of constraints included in the linear programming task are consistent or basically the same, that is to say, the type and quantity of constraints included in the first linear programming task and one or more models in the prior information are consistent or basically the same.
- each linear programming task in the prior information can be directly solved to obtain the solution time of each linear programming task (if the linear programming task has been solved, the solution time can also be obtained directly) , and then extract and solve sub-models for one or more linear programming models in the prior information, and initialize the linear programming model based on the solution results, and then solve the linear programming model to obtain another solution time, by Comparing the solution time of directly solving each linear programming task with the solution time of the linear programming task initialized based on the submodel solution results, we can know the contribution of the constraints in the submodel to reduce the solution time of the linear programming task.
- each constraint of the model to be solved can be given a probability (the probability can be the quantification of the above-mentioned importance), and based on the probability, the model to be solved is sampled to construct a sub-model, and based on the comparison directly
- the solution time for solving each linear programming task, and the solution time for the linear programming task after initialization based on the sub-model solution results are used to update the probability and iterate a certain number of times to obtain the exact description constraints for reducing the linear programming task. Importance information of time is resolved (how the importance is updated will be described in an alternate embodiment).
- the first solution result may include a parameter value (or parameter state) of at least one solution variable in a subset of multiple first planning constraints;
- An embodiment of the present application provides a method for solving a task, the method comprising: acquiring a first linear programming task, the first linear programming task including multiple first programming constraints; The importance of a first planning constraint, the importance represents the contribution of the first planning constraint to reducing the solution time of the first linear programming task; Sampling to obtain the subsets of the plurality of first planning constraints obtained, wherein the importance is used to determine the sampling probability of the first planning constraints; constructing the second subset according to the plurality of first planning constraints Two linear programming tasks: using the first solution result as an initial value of the first linear programming task, and solving the initialized first linear programming task to obtain a second solution result.
- the key constraints in the first linear programming task are selected to construct a sub-model (second linear programming task), and then the solution of the sub-model is used for the first linear programming task to speed up the solution process.
- the first linear programming task is sampled based on the importance, since the importance indicates the degree of contribution of the first planning constraint to reducing the solution time of the first linear programming task, so that the sampled The solution of the submodel is close to the optimal solution, thus speeding up the solution process of the first linear programming task.
- the first solution time for solving the second linear programming task and the second solution time for solving the initialized first linear programming task may be obtained, the first solution time and the The sum of the third solution time can be used as the solution time of the linear programming task initialized based on the sub-model solution results, and the first linear programming task is solved to obtain the third linear programming task for solving the first linear programming task.
- Solution time wherein, the third solution time can be considered as the solution time for directly solving the first linear programming task, according to the sum of the first solution time and the third solution time, relative to the first solution time
- the importance of each first planning constraint may be updated, wherein the updated importance is positively correlated with the reduction degree.
- the time required for the process of obtaining the second linear programming task by sampling can also be used as part of the solution time of the linear programming task after initialization based on the solution result of the sub-model, that is, the multiple first linear programming tasks can be obtained.
- Planning a sampling time for sampling with constraints, and updating each of the first solving time according to the sum of the first solving time, the third solving time and the sampling time, relative to the reduction degree of the first solving time The importance of planning constraints.
- the using the first solution result as the initial value of the first linear programming task includes:
- a new constraint (such as a second planning constraint) may be added, and the second planning constraint may be obtained, and the second planning constraint includes slack variables and the An upper bound of a slack variable, adding the second programming constraint to the first linear programming task to obtain an updated first linear programming task, and solving the updated first linear programming task.
- it can be to set a reasonable bound (value range) for the new variable (slack variable) involved in the newly added constraint according to its actual meaning, and modify the initial state value of these variables, and change the state to its set bound , so that the initial solution is feasible for the newly added constraints, thereby speeding up the solution of linear programming.
- the application can pre-set the variable upper bound and initial state for the newly added slack variable, thereby accelerating the continuous solution.
- the embodiment of the present application also provides a system, wherein the system may include a terminal device and a server, wherein the terminal device may send the model to be solved (the first linear programming task) and prior information including multiple historical models to the server,
- the server can calculate the importance of convergence based on prior information including multiple historical models, and sample the first linear programming task according to the importance, and execute the steps from step 301 to step 303 in the above embodiment to obtain the second
- the solution result is obtained, and the second solution result is sent back to the terminal device.
- the terminal device can send the model to be solved and the prior information including multiple historical models (including the first linear programming task) to the server, and the server can calculate the important parameters of convergence based on the prior information including multiple historical models.
- the server can calculate the important parameters of convergence based on the prior information including multiple historical models.
- the present application provides a task solving device, the device comprising:
- a sampling module configured to sample the plurality of first planning constraints according to the importance, so as to obtain a subset of the obtained plurality of first planning constraints, wherein the importance is used to determine the first The sampling probability of a planning constraint;
- a solving module configured to solve the second linear programming task to obtain a first solution result
- the first solution result is used as an initial value of the first linear programming task, and the initialized first linear programming task is solved to obtain a second solution result.
- both the first linear programming task and the second linear programming task include planning objectives.
- the acquisition module is also used to:
- the solving module is further configured to solve the first linear programming task, and obtain a third solving time for solving the first linear programming task;
- the device also includes:
- the acquisition module is also used to:
- the importance updating module is specifically used for:
- the importance of each first planning constraint is updated according to the sum of the first solution time, the third solution time, and the sampling time relative to the degree of reduction of the first solution time.
- the acquisition module is also used to:
- the sampling module is also used for:
- the second linear programming task includes M solution variables, and the first solution result includes parameter values of each solution variable;
- the solving module is specifically used for:
- the acquisition module is also used to:
- a second programming constraint is obtained, and the second programming constraint includes a slack variable and an upper bound of the slack variable;
- the embodiment of the present application provides a device, including a memory, a processor, and a bus system, wherein the memory is used to store programs, and the processor is used to execute the programs in the memory, so as to perform the above-mentioned first aspect and first Aspect any optional method.
- the embodiment of the present invention also provides a system, the system includes at least one processor, at least one memory, and at least one communication interface; the processor, memory, and communication interface are connected through a communication bus and complete mutual communication;
- the memory is used to store the application program codes for executing the above solution, and the execution is controlled by the processor.
- the processor is configured to execute the application program code stored in the memory to obtain a task scheduling result; wherein the code stored in the memory can execute a task solving method provided above.
- the communication interface is used for communicating with other devices or communication networks, so as to send the task solution results to the devices or communication networks.
- the embodiment of the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and when it is run on a computer, the computer executes the above-mentioned first aspect and any one thereof. optional method.
- the embodiment of the present application provides a computer-readable storage medium, the computer storage medium stores one or more instructions, and when the instructions are executed by one or more computers, the one or more A computer implementing the second aspect above and any optional system therefor.
- the embodiment of the present application provides a computer program, which, when running on a computer, causes the computer to execute the above-mentioned first aspect and any optional method thereof.
- the present application provides a chip system, which includes a processor, configured to support a terminal device or a server to implement the functions involved in the above aspect, for example, send or process the data involved in the above method; or ,information.
- the chip system further includes a memory, and the memory is used for saving necessary program instructions and data of the terminal device or the server.
- the system-on-a-chip may consist of chips, or may include chips and other discrete devices.
- the key constraints in the first linear programming task are selected to construct a sub-model (second linear programming task), and then the solution of the sub-model is used for the first linear programming task to speed up the solution process.
- the first linear programming task is sampled based on the importance, since the importance indicates the degree of contribution of the first planning constraint to reducing the solution time of the first linear programming task, so that the sampled The solution of the submodel is close to the optimal solution, thus speeding up the solution process of the first linear programming task.
- FIG. 1 provides a schematic diagram of an application architecture according to an embodiment of the present application
- FIG. 2 is a schematic structural diagram of a server provided by an embodiment of the present application.
- FIG. 3 is a schematic flow chart of a task solving method provided in an embodiment of the present application.
- FIG. 6 is a schematic structural diagram of a task solving device provided in this embodiment.
- FIG. 7 is a schematic structural diagram of a terminal device provided in an embodiment of the present application.
- FIG. 8 is a schematic structural diagram of a server provided by an embodiment of the present application.
- the embodiments of the present application can be applied to solving linear programming optimization problems in various scenarios (such as supply chain, cloud computing, scheduling, storage optimization, etc.), to accelerate the efficiency of linear programming solvers in solving these problems.
- users can build models to be solved according to their own business scenarios. When solving, they can pass some models of similar problems in history to the server, and the server can call the solver to quickly output the optimal solution of the user input model. According to this solution, users can use the functions provided by the platform to generate data reports or process it by themselves to get the desired results.
- Server 200 can also include one or more power supplies 222, one or more wired or wireless network interfaces 250, one or more input and output interfaces 258; or, one or more operating systems 241, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
- operating systems 241 such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
- the central processing unit 22 is configured to execute the task solving method described in the embodiment of the present application.
- task solving method provided in the embodiment of the present application may also be deployed as a solver on an end-side terminal device, which is not limited here.
- the model to be solved in the embodiment of the present application can be used to solve the scheduling problem.
- Scheduling is one of the most common problems in large-scale manufacturing/logistics/production, and scheduling always has different meanings in different scenarios.
- logistics scheduling mainly refers to the reasonable arrangement and scheduling of vehicles and personnel by logistics companies according to the weight, whereabouts, specifications, and urgency of the goods to be shipped during the logistics process.
- the scheduling in the production environment is to complete the sequencing of tasks and the matching between tasks and production equipment in several tasks (jobs) according to the capacity and production requirements of different machines in different production lines. That is, multiple tasks are assigned to the production equipment in each production line.
- n workpieces are processed on m machines, each workpiece has a specific processing technology, and the processing order of each workpiece and the time spent in each process are given , to arrange the processing order of the workpieces on each machine so that a certain index is optimal.
- every artifact executes on every machine.
- this type of scheduling problem requires that each task must be executed to each stage in turn, and does not involve the matching of tasks and stages, but mainly determines the execution order of tasks. Prevent the overall completion time from being too long due to the long waiting time in the middle.
- Resources can refer to virtual computing resources, such as threads, processes, or data streams; they can also refer to hardware resources, such as processors, network connections, or expansion cards.
- the program that does the scheduling work is called a scheduler. Schedulers are usually implemented so that all computing resources are kept busy (in load balancing), allowing multiple users to efficiently share system resources simultaneously, or to achieve a specified quality of service.
- linear programming linear programming, LP
- simplex method is currently the most widely used algorithm, and it is also a type of algorithm that is optimized by various linear programming solvers.
- the algorithm For the simplex algorithm, usually, the algorithm first selects an initial feasible base solution, then checks whether the solution has reached the optimal solution, and then performs LU decomposition on the base matrix to calculate the inverse of the base matrix; It will be done once, and the rest of the iterations will use the incremental method to update the update of the L matrix and the U matrix. Then, the algorithm will select the basic variable and the basic variable according to the heuristic rules to update the basic variable. This loop is executed continuously until the optimal solution is found, or the problem state is found to be abnormal, and the entire algorithm exits.
- Standard solution means that the solver performs a complete solution without any a priori, and will go through the steps of pre-solve, solve, and post-processing respectively.
- the standard process is to add a pre-solve module and post-processing before and after the Simplex algorithm. module.
- the pre-solver module will simplify the model.
- the degree of simplification is also different.
- the model size number of variables, number of constraints
- the post-processing module maps the solution of the simple model generated by the pre-solver back to the original problem, and finally obtains the solution of the original model.
- Continuous solution means that the model has been solved once to obtain the optimal solution, and then the model is partially modified, such as adding some variable constraints or modifying the upper and lower bounds of existing variables, and solving again. This process of re-solving based on the last optimal solution is called continuous solving.
- the existing standard solution process described above does not use any prior knowledge to construct an initial feasible basis, so the constructed initial feasible basis is relatively simple, and the number of iterations required for the simplex algorithm iteration starting from the simple feasible basis is too much, and the time too long.
- the adjustment of the initial variable state is too straightforward during the continuous solution, so that it takes a long time to find the initial feasible basic solution during the continuous solution.
- the task solving method provided in the embodiment of the present application can construct an initial feasible basis based on prior knowledge, which can reduce the solution time.
- Linear Programming It is an important branch of operations research with earlier research, faster development, wider application and more mature methods. It is a mathematical method to assist people in scientific management. Mathematical theories and methods for studying the extremum problems of linear objective functions under linear constraints.
- Constraints are constraints in mathematical programming problems, that is, numerical requirements for decision variables.
- Basic Solution Basic Solution, find a basis in the coefficient matrix of the constraint equation system, set the non-basic variables of this basis to zero, and then solve the m-element linear equation system to obtain a unique solution. This solution is called linear programming. Basic solution.
- Basic feasible solution Basic Feasible Solution, the abbreviation of basic feasible solution, is the basic concept of linear programming.
- the basic solution that satisfies the non-negative condition is called the basic feasible solution.
- Simplex the simplex method is one of the most commonly used and effective algorithms for solving linear programming problems.
- the basic idea of the simplex method is: first find a vertex in the feasible region, and judge whether it is optimal according to certain rules; if not, switch to another vertex adjacent to it, and make the objective function value better; continue until an optimal solution is found.
- Fig. 3 is a task solving method provided by the embodiment of the present application, the method includes:
- the execution subject of step 301 may be a server, for example, the terminal device may transmit the first linear programming task as a model to be solved to the server, and then the server may obtain the first linear programming task.
- the terminal device may use the first linear programming task as prior information used to solve the model to be solved, that is, transmit at least one historical model including the first linear programming task to the server, and then the server may obtain At least one history model including the first linear programming task.
- a linear programming model may include an objective function and constraint conditions, wherein the objective function refers to a function designed according to an objective to be optimized and variables affecting the objective.
- the objective function refers to a function designed according to an objective to be optimized and variables affecting the objective.
- the goal of the entire production scheduling is usually to find a best processing plan under the condition of satisfying all resource constraints, so that the satisfaction rate of the demand is the highest, and the overall cost is the smallest (for example, the cost can include But not limited to processing cost, inventory cost, transshipment cost), at this time, the objective function may be a function representing the maximization of satisfaction rate and the minimization of cost.
- the constraints refer to other constraints to be satisfied in the process of solving the objective function.
- the first linear programming task is used to allocate scheduling resources for at least one task to be scheduled
- the first planning constraint is a constraint satisfied by scheduling resources
- the scheduling resources are production lines, production equipment or Manufacturer.
- the task to be scheduled may be the product to be produced; in the scenario of personnel scheduling, the task to be scheduled may be the person to be produced, etc., which is not limited in this embodiment.
- each of the multiple schedulable resource groups can be a production line.
- each of the multiple schedulable resource groups can be a A production line of mobile phone components, such as battery production line, shell production line, chip production line, etc.
- each schedulable resource group can include multiple schedulable resources, and each of the multiple schedulable resources can be The scheduling resource is the production equipment in the production line.
- the battery production line may include multiple battery production equipment
- the casing production line may include multiple casing production equipment, which are not limited here.
- each schedulable resource group in multiple schedulable resource groups can be a time period, for example, in the scenario of personnel scheduling, each schedulable resource group in multiple schedulable resource groups can be One day, for example, can be Monday, Tuesday, Wednesday, or a certain day in some months, etc.
- each schedulable resource group can include multiple schedulable resources, and each schedulable resource in the multiple schedulable resources is A sub-time period in a time period, for example, a certain day may include multiple hours, multiple minutes or other multiple sub-time periods, which are not limited here.
- the first planning constraints may include solution variables and constraints that each solution variable needs to satisfy.
- the first linear programming task can be used as a model to be solved.
- the importance of each first programming constraint may be acquired first, and the importance indicates the degree of contribution of the first planning constraint to reducing the solution time of the first linear programming task.
- the solution time required to solve the linear programming task is very long, so some constraints in the linear programming task can be selected first, and the solution is based on the selected partial constraints, and the solution
- the result (the state of the solution variable in the selected partial constraint) is assigned to the linear programming task, which is equivalent to using the solution result as the initial value of the linear programming task and solving the linear programming task.
- the solution result of the selected partial constraint is the same as the linear programming task
- the solution results after the task are basically the same (or described as relatively close, the solution results here are basically the same can be understood as the parameter values of the solution variables in the same constraints are basically the same)
- the number of iterations required to solve the linear programming task is less , that is, it can improve the solution speed of the linear programming task.
- the importance is used as a basis for selecting partial constraints from multiple first programming constraints, where the importance may indicate the degree of contribution to reducing the solution time of the first linear programming task.
- the so-called indicating the degree of contribution to reducing the solution time of the first linear programming task can be understood as, when constructing the submodel of the model to be solved (that is, selecting a part of the constraints in the model to be solved to construct the submodel ), when the result of solving the submodel is used as the initial value of the model to be solved, the submodel includes the degree of contribution of the first linear programming task to reducing the solution time for solving the model to be solved.
- the importance can be used as a sampling probability to sample a plurality of first planning constraints to obtain a subtask (second planning task), and the planning constraint in this subtask is to reduce the solution of the first linear programming task Therefore, the solution result obtained after solving the second planning task is basically the same as the solution result obtained after solving the second planning task (or described as relatively close, the solution result here is basically the same can be It is understood that the parameter values of the solution variables in the same constraint are basically the same).
- the importance can be obtained based on prior information, where the prior information can be one or more models of the same type as the model to be solved (the first linear programming task), the so-called same type, can be understood
- the types and quantities of constraints included in the linear programming task are consistent or basically the same, that is to say, the type and quantity of constraints included in the first linear programming task and one or more models in the prior information are consistent or basically the same.
- each linear programming task in the prior information can be directly solved to obtain the solution time of each linear programming task (if the linear programming task has been solved, the solution time can also be obtained directly) , and then extract and solve sub-models for one or more linear programming models in the prior information, and initialize the linear programming model based on the solution results, and then solve the linear programming model to obtain another solution time, by Comparing the solution time of directly solving each linear programming task with the solution time of the linear programming task initialized based on the submodel solution results, we can know the contribution of the constraints in the submodel to reduce the solution time of the linear programming task.
- each constraint of the model to be solved can be given a probability (the probability can be the quantification of the above-mentioned importance), and based on the probability, the model to be solved is sampled to construct a sub-model, and Based on the comparison of the solution time of directly solving each linear programming task, and the solution time of the linear programming task after initializing the solution results based on the sub-model, to update the probability, and iterate a certain number of times, it can be used to accurately describe the constraints.
- the importance information of the solution time of the linear programming task (the way of updating the importance will be described in an alternative embodiment).
- Each planning constraint in the sub-model (such as the second linear programming task in the embodiment of the present application) obtained based on the above-mentioned importance sampling contributes a lot to reducing the solution time of the linear programming task. Therefore, based on the second linear programming task The time of the solution process of the first linear programming model after initialization of the solution result can be greatly shortened.
- the first linear programming model in the embodiment of the present application may be the prior information used when calculating the importance of each first programming constraint.
- the multiple first programming obtained in step 302 The importance of each first planning constraint in the constraints may be the importance of initialization, or the importance of the iterative process (not yet converged to meet the requirements).
- the prior information used when calculating the importance of each first programming constraint may include multiple models, the first linear programming task may be one of the multiple models, and the first linear programming task may be obtained from multiple models randomly selected from.
- N historically homogeneous models P can be obtained, such as the same type of optimization problems at different time points in the past.
- ⁇ is the step size
- g( ) is the probability update function
- the corresponding importance of each first linear programming task in the first linear programming task can be obtained.
- the second linear programming task may include Part of the first planning constraint.
- the first linear programming model is the model to be solved or the prior information used to update the importance
- the importance of convergence can be used as the sampling probability of each constraint
- multiple first programming The constraints are sampled to obtain the second linear programming task, and the contribution of each planning constraint in the submodel (such as the second linear programming task in the embodiment of the present application) obtained based on the above importance sampling to reduce the solution time of the linear programming task Therefore, the time of the solution process of the first linear programming model initialized based on the solution result of the second linear programming task can be greatly shortened.
- the second linear programming task includes M solution variables
- the first solution result may include parameter values of each solution variable, where the parameter value here may be the value of the optimal solution or Solve for the state of the variable.
- the parameter values of each solution variable in the first solution result may be used as the M solution values in the first linear programming task
- the parameter value of the variable that is, the parameter values of the solution variables in the first solution result are assigned to the first linear programming task, and the initial values of the first programming constraints in the first linear programming task except the planning constraints included in the second linear programming task can be given by Solver specified, not limited here.
- the solver can read the first solution result into the first linear programming task, and then assign the initial state of the solution variable v i in the first linear programming task to s i , and set all initialized Solve the above-mentioned first linear programming task to obtain the second solution result.
- the first linear programming model may be the model to be solved
- the second solution result may be the solution result of the model to be solved. After the server obtains the second solution result, it may return the second solution result to the to the terminal device.
- a new constraint (such as a second programming constraint) may be added, and the second programming constraint may be obtained, and the second programming constraint includes the target solution variable and the slack variable, adding the second programming constraint to the first linear programming task to obtain an updated first linear programming task, and solving the updated first linear programming task. That is, you can set a reasonable bound (value range) for the new variables involved in the newly added constraints according to their actual meaning, and modify the initial state values of these variables, and change the state to the bound set in step 1, so that the initial The solution is feasible for the newly added constraints, thereby speeding up the solution of the linear program.
- a reasonable bound value range
- the application can pre-set the variable upper bound and initial state for the newly added slack variable, thereby accelerating the continuous solution.
- the first linear programming model can be the prior information used to update the importance.
- the solution time of each linear programming task can be directly solved based on the comparison, and based on The solution time of the linear programming task after the submodel solution result is initialized is used to update the probability, and a certain number of iterations can be used to accurately describe the importance of constraints for reducing the solution time of the linear programming task.
- the first solution time for solving the second linear programming task and the second solution time for solving the initialized first linear programming task may be obtained, the first solution time and the The sum of the third solution time can be used as the solution time of the linear programming task initialized based on the sub-model solution results, and the first linear programming task is solved to obtain the third linear programming task for solving the first linear programming task.
- Solution time wherein, the third solution time can be considered as the solution time for directly solving the first linear programming task, according to the sum of the first solution time and the third solution time, relative to the first solution time
- the importance of each first planning constraint may be updated, wherein the updated importance is positively correlated with the reduction degree.
- the time required for the process of obtaining the second linear programming task by sampling can also be used as part of the solution time of the linear programming task after initialization based on the solution result of the sub-model, that is, the multiple first linear programming tasks can be obtained.
- Planning a sampling time for sampling with constraints, and updating each of the first solving time according to the sum of the first solving time, the third solving time and the sampling time, relative to the reduction degree of the first solving time The importance of planning constraints.
- the time spent constructing a submodel is denoted as T a .
- the linear programming solver to solve this sub-model (including c j1 ,...,c jK , a total of K types of constraints).
- the optimal solution S of the sub-model obtained by solving the solution is recorded as T b .
- the solution of the sub-model is brought into the original model P i as the initial solution, and P i is solved again.
- the time spent in this step is T c .
- ⁇ can be a preset hyperparameter.
- updating the importance of each first planning constraint can be the importance of
- the importance can be updated based on other prior information or the above iterative process is performed on the first linear programming model multiple times, so as to obtain the converged importance.
- the server can solve the model to be solved based on the importance after convergence.
- the programming constraints in the target linear programming task can be sampled based on the importance after convergence to obtain a sub-model, and the sub-model is solved, and then the solution result is used as the target
- the initial value of the linear programming task, and then solve the target linear programming task to obtain the final solution result, and the server can feed back the final solution result obtained above to the terminal device.
- the third linear programming task may be obtained, and the third linear programming task includes the multiple second programming constraints, the multiple second programming constraints and the multiple The constraint type of the first planning constraint is the same;
- the third solution result is used as an initial value of the third linear programming task, and the initialized third linear programming task is solved to obtain a fourth solution result.
- Figure 5 shows a production scheduling example, assuming that the customer places an order for 2,000 PCs, 1,000 hosts, and 800 notebooks. Then there are two factories that can process these three types of products (up to 1000 products per day). To process a PC, you must first have a host, and assembling it into a PC can only be done in the first factory.
- the figure has shown an optimal production scheduling plan, that is, on the first day, each of the two factories will process 1,000 hosts, and the hosts from the second factory will be shipped to the first factory; on the second day, the hosts will be shipped to the first factory
- the hosts processed on the first day were assembled into PCs, and then 1,000 hosts were processed in the second factory; on the third day, the hosts shipped from the second factory on the first day were used in the first factory to assemble 1,000 PCs.
- 800 notebooks were processed in the second factory. In this way, all requirements can be met, and the total cost is the lowest.
- the essence of multi-factory scheduling is an integer programming problem. However, due to the high complexity of solving integer programming, it is difficult to find the optimal solution within a specified time for such a large-scale model. Therefore, the usual practice is to relax the problem into a linear program, and then use some approximate methods to adjust the real number solution obtained by solving the linear program into an integer solution.
- constraints including inventory constraints, capacity constraints, pairing constraints, special control constraints, SR constraints, order demand delay constraints, forecast demand delay constraints, and maximum substitution constraints.
- T c T a +T b +T c .
- T j T a +T b +T c .
- the daily processing volume is either equal to 0, or greater than or equal to a certain constant C. Since this constraint cannot be considered when building a linear programming model, the continuous solution method can be used here to add a constraint in the following style to the model that has been solved: x i +s j ⁇ C; where x i is obtained by the previous standard solution A variable greater than 0, s j is the newly added slack variable. At the same time, s j is added to the objective function. At this time, solve the constrained model again, and the effect achieved is that xi can be greater than or equal to C as much as possible.
- Table 1 shows the improvement effect of the solution of the embodiment of the present application. Compared with the direct solution, the efficiency of the solution method of the embodiment of the present application is improved by about 20% on average.
- An embodiment of the present application provides a method for solving a task, the method comprising: acquiring a first linear programming task, the first linear programming task including multiple first programming constraints; The importance of a first planning constraint, the importance represents the contribution of the first planning constraint to reducing the solution time of the first linear programming task; Sampling to obtain the subsets of the plurality of first planning constraints obtained, wherein the importance is used to determine the sampling probability of the first planning constraints; constructing the second subset according to the plurality of first planning constraints Two linear programming tasks: using the first solution result as an initial value of the first linear programming task, and solving the initialized first linear programming task to obtain a second solution result.
- the key constraints in the first linear programming task are selected to construct a sub-model (second linear programming task), and then the solution of the sub-model is used for the first linear programming task to speed up the solution process.
- the first linear programming task is sampled based on the importance, since the importance indicates the degree of contribution of the first planning constraint to reducing the solution time of the first linear programming task, so that the sampled The solution of the submodel is close to the optimal solution, thus speeding up the solution process of the first linear programming task.
- the embodiment of the present application also provides a system, wherein the system may include a terminal device and a server, wherein the terminal device may send the model to be solved (the first linear programming task) and prior information including multiple historical models to the server,
- the server can calculate the importance of convergence based on prior information including multiple historical models, and sample the first linear programming task according to the importance, and execute the steps from step 301 to step 303 in the above embodiment to obtain the second
- the solution result is obtained, and the second solution result is sent back to the terminal device.
- the terminal device can send the model to be solved and the prior information including multiple historical models (including the first linear programming task) to the server, and the server can calculate the important parameters of convergence based on the prior information including multiple historical models.
- the server can calculate the important parameters of convergence based on the prior information including multiple historical models.
- FIG. 6 is a schematic structural diagram of a task solving device provided in an embodiment of the present application.
- the device 600 may include:
- An obtaining module 601 configured to obtain a first linear programming task, where the first linear programming task includes a plurality of first planning constraints;
- a sampling module 602 configured to sample the plurality of first planning constraints according to the importance, so as to obtain a subset of the obtained plurality of first planning constraints, wherein the importance is used to determine The sampling probability of the first planning constraint;
- sampling module 602 for the specific description of the sampling module 602, reference may be made to the description of step 303 and step 304 in the above-mentioned embodiment, and details are not repeated here.
- a solving module 603, configured to solve the second linear programming task to obtain a first solution result
- both the first linear programming task and the second linear programming task include planning objectives.
- the acquisition module is also used to:
- the solving module is further configured to solve the first linear programming task, and obtain a third solving time for solving the first linear programming task;
- the device also includes:
- an importance updating module configured to update the importance of each of the first planning constraints according to the sum of the first solution time and the third solution time, relative to the degree of reduction of the first solution time, Wherein, the updated importance is positively correlated with the reduction degree.
- the acquisition module is also used to:
- the importance updating module is specifically used for:
- the importance of each first planning constraint is updated according to the sum of the first solution time, the third solution time, and the sampling time relative to the degree of reduction of the first solution time.
- the acquisition module is also used to:
- the third linear programming task includes the plurality of second programming constraints, and the plurality of second programming constraints are of the same constraint type as the plurality of first programming constraints;
- the sampling module is also used for:
- the solving module is also used for:
- the second linear programming task includes M solution variables, and the first solution result includes parameter values of each solution variable;
- the solving module is specifically used for:
- the first linear programming task is used to allocate scheduling resources for at least one task to be scheduled
- the first planning constraint is a constraint satisfied by scheduling resources
- the scheduling resources are production lines, production equipment or Manufacturer.
- the acquisition module is also used to:
- a second programming constraint is obtained, and the second programming constraint includes a target solution variable and a slack variable;
- the solving module is further configured to add the second programming constraint to the first linear programming task to obtain an updated first linear programming task, and solve the updated first linear programming task .
- the task solving apparatus described in the embodiment corresponding to FIG. 6 may be deployed on the terminal device 700 to realize the function of solving the task in the embodiment corresponding to FIG. 6 .
- the terminal device 700 includes: a receiver 701, a transmitter 702, a processor 703, and a memory 704 (the number of processors 703 in the terminal device 700 may be one or more, and one processor is taken as an example in FIG. 7 ) , where the processor 703 may include an application processor 7031 and a communication processor 7032 .
- the receiver 701 , the transmitter 702 , the processor 703 and the memory 704 may be connected through a bus or in other ways.
- the memory 704 may include read-only memory and random-access memory, and provides instructions and data to the processor 703 .
- a part of the memory 704 may also include a non-volatile random access memory (non-volatile random access memory, NVRAM).
- NVRAM non-volatile random access memory
- the memory 704 stores processors and operating instructions, executable modules or data structures, or their subsets, or their extended sets, wherein the operating instructions may include various operating instructions for implementing various operations.
- the processor 703 controls the operation of the terminal device.
- various components of the terminal device are coupled together through a bus system, where the bus system may include a power bus, a control bus, and a status signal bus in addition to a data bus.
- the various buses are referred to as bus systems in the figures.
- the methods disclosed in the foregoing embodiments of the present application may be applied to the processor 703 or implemented by the processor 703 .
- the processor 703 may be an integrated circuit chip, which has a signal processing capability. In the implementation process, each step of the above method may be completed by an integrated logic circuit of hardware in the processor 703 or instructions in the form of software.
- the above-mentioned processor 703 can be a general-purpose processor, a digital signal processor (digital signal processing, DSP), a microprocessor or a microcontroller, and can further include an application-specific integrated circuit (application specific integrated circuit, ASIC), field programmable Field-programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
- DSP digital signal processing
- ASIC application specific integrated circuit
- FPGA field programmable Field-programmable gate array
- the processor 703 may implement or execute various methods, steps, and logic block diagrams disclosed in the embodiments of the present application.
- a general-purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like.
- the steps of the method disclosed in connection with the embodiments of the present application may be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, register.
- the storage medium is located in the memory 704, and the processor 703 reads the information in the memory 704, and completes the steps related to the terminal device in the above method in combination with its hardware.
- the receiver 701 can be used to receive input digital or character information, and generate signal input related to related settings and function control of the terminal device.
- the transmitter 702 can be used to output digital or character information through the first interface; the transmitter 702 can also be used to send instructions to the disk group through the first interface to modify the data in the disk group; the transmitter 702 can also include display devices such as display screens .
- the processor 703 is configured to execute the steps performed by the terminal device in the foregoing embodiments.
- FIG. 8 There are relatively large differences due to different performances, and may include one or more central processing units (central processing units, CPU) 88 (for example, one or more processors) and memory 832, one or more storage application programs 842 or data 844 storage medium 830 (for example, one or more mass storage devices).
- the memory 832 and the storage medium 830 may be temporary storage or persistent storage.
- the program stored in the storage medium 830 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the server.
- the central processing unit 88 may be configured to communicate with the storage medium 830 , and execute a series of instruction operations in the storage medium 830 on the server 800 .
- the server 800 can also include one or more power supplies 826, one or more wired or wireless network interfaces 850, one or more input and output interfaces 858; or, one or more operating systems 841, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
- the central processing unit 88 is configured to execute steps related to the task solving method of the above embodiment.
- the embodiment of the present application also provides a computer program product, which, when running on a computer, causes the computer to perform the steps performed by the aforementioned terminal device, or causes the computer to perform the steps performed by the aforementioned server.
- An embodiment of the present application also provides a computer-readable storage medium, the computer-readable storage medium stores a program for signal processing, and when it is run on a computer, the computer executes the steps performed by the aforementioned terminal device , or make the computer perform the steps performed by the aforementioned server.
- the terminal device, server, or terminal device provided in the embodiment of the present application may specifically be a chip.
- the chip includes: a processing unit and a communication unit.
- the processing unit may be, for example, a processor, and the communication unit may be, for example, an input/output interface, a pipe pins or circuits etc.
- the processing unit may execute the computer-executed instructions stored in the storage unit, so that the chip in the terminal device executes the data processing method described in the above embodiment, or the chip in the server executes the data processing method described in the above embodiment.
- the storage unit is a storage unit in the chip, such as a register, a cache, etc.
- the storage unit may also be a storage unit located outside the chip in the wireless access device, such as only Read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (random access memory, RAM), etc.
- ROM Read-only memory
- RAM random access memory
- FIG. 9 is a schematic structural diagram of a chip provided by the embodiment of the present application.
- the chip can be represented as a neural network processor NPU 900, and the NPU 900 is mounted to the main CPU (Host CPU) as a coprocessor. CPU), the tasks are assigned by the Host CPU.
- the core part of the NPU is the operation circuit 903, and the operation circuit 903 is controlled by the controller 904 to extract matrix data in the memory and perform multiplication operations.
- the operation circuit 903 includes multiple processing units (Process Engine, PE).
- arithmetic circuit 903 is a two-dimensional systolic array.
- the arithmetic circuit 903 may also be a one-dimensional systolic array or other electronic circuits capable of performing mathematical operations such as multiplication and addition.
- arithmetic circuit 903 is a general-purpose matrix processor.
- the operation circuit fetches the data corresponding to the matrix B from the weight memory 902, and caches it in each PE in the operation circuit.
- the operation circuit takes the data of matrix A from the input memory 901 and performs matrix operation with matrix B, and the obtained partial results or final results of the matrix are stored in the accumulator (accumulator) 908 .
- the unified memory 906 is used to store input data and output data.
- the weight data directly accesses the controller (Direct Memory Access Controller, DMAC) 905 through the storage unit, and the DMAC is transferred to the weight storage 902.
- the input data is also transferred to the unified memory 906 through the DMAC.
- DMAC Direct Memory Access Controller
- the BIU is the Bus Interface Unit, that is, the bus interface unit 910, which is used for the interaction between the AXI bus and the DMAC and the instruction fetch buffer (Instruction Fetch Buffer, IFB) 909.
- IFB Instruction Fetch Buffer
- the bus interface unit 910 (Bus Interface Unit, BIU for short) is used for the instruction fetch memory 909 to obtain instructions from the external memory, and for the storage unit access controller 905 to obtain the original data of the input matrix A or the weight matrix B from the external memory.
- the DMAC is mainly used to move the input data in the external memory DDR to the unified memory 906 , to move the weight data to the weight memory 902 , or to move the input data to the input memory 901 .
- the vector calculation unit 907 includes a plurality of calculation processing units, and further processes the output of the calculation circuit 903, such as vector multiplication, vector addition, exponential operation, logarithmic operation, size comparison, etc., if necessary. It is mainly used for non-convolutional/fully connected layer network calculations in neural networks, such as Batch Normalization (batch normalization), pixel-level summation, and upsampling of feature planes.
- vector computation unit 907 can store the vector of the processed output to unified memory 906 .
- the vector calculation unit 907 can apply a linear function; or, a nonlinear function to the output of the operation circuit 903, such as performing linear interpolation on the feature plane extracted by the convolution layer, and then for example, a vector of accumulated values to generate an activation value.
- the vector computation unit 907 generates normalized values, pixel-level summed values, or both.
- the vector of processed outputs can be used as an activation input to arithmetic circuitry 903, eg, for use in subsequent layers in a neural network.
- An instruction fetch buffer (instruction fetch buffer) 909 connected to the controller 904 is used to store instructions used by the controller 904;
- the unified memory 906, the input memory 901, the weight memory 902 and the fetch memory 909 are all On-Chip memories. External memory is private to the NPU hardware architecture.
- the processor mentioned above can be a general-purpose central processing unit, microprocessor, ASIC, or one or more integrated circuits for controlling the execution of the above-mentioned programs.
- the device embodiments described above are only illustrative, and the units described as separate components may or may not be physically separated, and the components shown as units may or may not be A physical unit can be located in one place, or it can be distributed to multiple network units. Part or all of the modules can be selected according to actual needs to realize the purpose of the solution of this embodiment.
- the connection relationship between the modules indicates that they have communication connections, which can be specifically implemented as one or more communication buses or signal lines.
- the essence of the technical solution of this application or the part that contributes to the prior art can be embodied in the form of a software product, and the computer software product is stored in a readable storage medium, such as a floppy disk of a computer , U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk, etc., including several instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute the method described in each embodiment of the present application .
- a computer device which can be a personal computer, a server, or a network device, etc.
- all or part of them may be implemented by software, hardware, firmware or any combination thereof.
- software When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
- the computer program product includes one or more computer instructions.
- the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable devices.
- the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server, or data center Transmission to another website site, computer, server, or data center by wired (eg, coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.).
- wired eg, coaxial cable, optical fiber, digital subscriber line (DSL)
- wireless eg, infrared, wireless, microwave, etc.
- the computer-readable storage medium may be any available medium that can be stored by a computer, or a data storage device such as a server or a data center integrated with one or more available media.
- the available medium may be a magnetic medium (such as a floppy disk, a hard disk, or a magnetic tape), an optical medium (such as a DVD), or a semiconductor medium (such as a solid state disk (Solid State Disk, SSD)), etc.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Educational Administration (AREA)
- Primary Health Care (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Manufacturing & Machinery (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
Claims (19)
- 一种任务求解方法,其特征在于,所述方法包括:获取第一线性规划任务,所述第一线性规划任务包括多个第一规划约束;获取所述多个第一规划约束中每个第一规划约束的重要性,所述重要性表示第一规划约束对于降低所述第一线性规划任务的求解时间的贡献程度;根据所述重要性,对所述多个第一规划约束进行采样,以得到所述获取所述多个第一规划约束的子集,其中,所述重要性用于确定第一规划约束的采样概率;根据所述多个第一规划约束的子集构建第二线性规划任务;对所述第二线性规划任务进行求解,得到第一求解结果;将所述第一求解结果作为所述第一线性规划任务的初始值,并对初始化后的所述第一线性规划任务进行求解,得到第二求解结果。
- 根据权利要求1所述的方法,其特征在于,所述第一线性规划任务和所述第二线性规划任务均包括规划目标。
- 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:获取对所述第二线性规划任务进行求解的第一求解时间、以及对初始化后的所述第一线性规划任务进行求解的第二求解时间;对所述第一线性规划任务进行求解,得到求解所述第一线性规划任务的第三求解时间;根据所述第一求解时间和所述第三求解时间的加和,相对于所述第一求解时间的减少程度,更新所述每个第一规划约束的重要性,其中,更新后的所述重要性与所述减少程度正相关。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:获取对所述多个第一规划约束进行采样的采样时间;所述根据所述第一求解时间和所述第三求解时间的加和,相对于所述第一求解时间的减少程度,更新所述每个第一规划约束的重要性,包括:根据所述第一求解时间、所述第三求解时间以及所述采样时间的加和,相对于所述第一求解时间的减少程度,更新所述每个第一规划约束的重要性,以得到更新后的每个第一规划约束的重要性。
- 根据权利要求3或4所述的方法,其特征在于,所述方法还包括:获取第三线性规划任务,所述第三线性规划任务包括所述多个第二规划约束,所述多个第二规划约束和所述多个第一规划约束的约束类型相同;获取所述多个第二规划约束中每个第二规划约束的重要性,其中更新后的每个第一规划约束的重要性用于作为约束类型相同的第二规划约束的重要性;根据所述每个第二规划约束的重要性,对所述多个第二规划约束进行采样,以获取第 四线性规划任务,其中,所述每个第二规划约束的重要性用于确定第二规划约束的采样概率,所述第四线性规划任务包括所述多个第二规划约束中的部分第二规划约束;对所述第四线性规划任务进行求解,得到第三求解结果;将所述第三求解结果作为所述第三线性规划任务的初始值,并对初始化后的所述第三线性规划任务进行求解,得到第四求解结果。
- 根据权利要求1至5任一所述的方法,其特征在于,所述第二线性规划任务包括M个求解变量,所述第一求解结果包括各个求解变量的参数值;所述将所述第一求解结果作为所述第一线性规划任务的初始值,包括:将所述第一求解结果中各个求解变量的参数值作为所述第一线性规划任务中的M个求解变量的参数值。
- 根据权利要求1至6任一所述的方法,其特征在于,所述第一线性规划任务用于为至少一个待调度任务分配调度资源,所述第一规划约束为调度资源满足的约束,所述调度资源为生产线、生产设备或生产厂家。
- 根据权利要求1至7任一所述的方法,其特征在于,所述得到第二求解结果之后,所述方法还包括:获取第二规划约束,所述第二规划约束包括松弛变量以及所述松弛变量的上界;将所述第二规划约束增加至所述第一线性规划任务,以得到更新后的所述第一线性规划任务,并求解所述更新后的第一线性规划任务。
- 一种任务求解装置,其特征在于,所述装置包括:获取模块,用于获取第一线性规划任务,所述第一线性规划任务包括多个第一规划约束;获取所述多个第一规划约束中每个第一规划约束的重要性,所述重要性表示第一规划约束对于降低所述第一线性规划任务的求解时间的贡献程度;采样模块,用于根据所述重要性,对所述多个第一规划约束进行采样,以得到所述获取所述多个第一规划约束的子集,其中,所述重要性用于确定第一规划约束的采样概率;根据所述多个第一规划约束的子集构建第二线性规划任务;求解模块,用于对所述第二线性规划任务进行求解,得到第一求解结果;将所述第一求解结果作为所述第一线性规划任务的初始值,并对初始化后的所述第一线性规划任务进行求解,得到第二求解结果。
- 根据权利要求9所述的装置,其特征在于,所述第一线性规划任务和所述第二线性规划任务均包括规划目标。
- 根据权利要求9或10所述的装置,其特征在于,所述获取模块,还用于:获取对所述第二线性规划任务进行求解的第一求解时间、以及对初始化后的所述第一线性规划任务进行求解的第二求解时间;所述求解模块,还用于对所述第一线性规划任务进行求解,得到求解所述第一线性规划任务的第三求解时间;所述装置还包括:重要性更新模块,用于根据所述第一求解时间和所述第三求解时间的加和,相对于所述第一求解时间的减少程度,更新所述每个第一规划约束的重要性,其中,更新后的所述重要性与所述减少程度正相关。
- 根据权利要求11所述的装置,其特征在于,所述获取模块,还用于:获取对所述多个第一规划约束进行采样的采样时间;所述重要性更新模块,具体用于:根据所述第一求解时间、所述第三求解时间以及所述采样时间的加和,相对于所述第一求解时间的减少程度,更新所述每个第一规划约束的重要性。
- 根据权利要求11或12所述的装置,其特征在于,所述获取模块,还用于:获取第三线性规划任务,所述第三线性规划任务包括所述多个第二规划约束,所述多个第二规划约束和所述多个第一规划约束的约束类型相同;获取所述多个第二规划约束中每个第二规划约束的重要性,其中更新后的每个第一规划约束的重要性用于作为约束类型相同的第二规划约束的重要性;所述采样模块,还用于:根据所述每个第二规划约束的重要性,对所述多个第二规划约束进行采样,以获取第四线性规划任务,其中,所述每个第二规划约束的重要性用于确定第二规划约束的采样概率,所述第四线性规划任务包括所述多个第二规划约束中的部分第二规划约束;所述求解模块,还用于:对所述第四线性规划任务进行求解,得到第三求解结果;将所述第三求解结果作为所述第三线性规划任务的初始值,并对初始化后的所述第三线性规划任务进行求解,得到第四求解结果。
- 根据权利要求9至13任一所述的装置,其特征在于,所述第二线性规划任务包括M个求解变量,所述第一求解结果包括各个求解变量的参数值;所述求解模块,具体用于:将所述第一求解结果中各个求解变量的参数值作为所述第一线性规划任务中的M个求解变量的参数值。
- 根据权利要求9至14任一所述的装置,其特征在于,所述第一线性规划任务用于为 至少一个待调度任务分配调度资源,所述第一规划约束为调度资源满足的约束,所述调度资源为生产线、生产设备或生产厂家。
- 根据权利要求9至15任一所述的装置,其特征在于,所述获取模块,还用于:在所述得到第二求解结果之后,获取第二规划约束,所述第二规划约束包括松弛变量以及所述松弛变量的上界;所述求解模块,还用于将所述第二规划约束增加至所述第一线性规划任务,以得到更新后的所述第一线性规划任务,并求解所述更新后的第一线性规划任务。
- 一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机执行权利要求1-8中任一项所述方法的操作。
- 一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1至8任一所述的方法。
- 一种系统,包括至少一个处理器,至少一个存储器以及至少一个通信接口;所述处理器、所述存储器和所述通信接口通过通信总线连接并完成相互间的通信;所述至少一个存储器用于存储代码;所述至少一个处理器用于执行所述代码,以执行如权利要求1-8任一所述的任务求解方法,以得到求解结果;所述至少一个通信接口,用于与设备或通信网络通信,以将所述求解结果发送至所述设备或通信网络。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22874890.1A EP4394595A4 (en) | 2021-09-30 | 2022-09-27 | Job solving method and apparatus |
| US18/619,068 US20240242137A1 (en) | 2021-09-30 | 2024-03-27 | Task solving method and apparatus thereof |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111166727.3A CN114237835B (zh) | 2021-09-30 | 2021-09-30 | 一种任务求解方法及其装置 |
| CN202111166727.3 | 2021-09-30 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/619,068 Continuation US20240242137A1 (en) | 2021-09-30 | 2024-03-27 | Task solving method and apparatus thereof |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023051505A1 true WO2023051505A1 (zh) | 2023-04-06 |
Family
ID=80743060
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/121620 Ceased WO2023051505A1 (zh) | 2021-09-30 | 2022-09-27 | 一种任务求解方法及其装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240242137A1 (zh) |
| EP (1) | EP4394595A4 (zh) |
| CN (1) | CN114237835B (zh) |
| WO (1) | WO2023051505A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118038702A (zh) * | 2024-03-11 | 2024-05-14 | 北京工业大学 | 混行场景下车道通行能力上下限计算与分析方法和系统 |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114237835B (zh) * | 2021-09-30 | 2025-12-02 | 华为技术有限公司 | 一种任务求解方法及其装置 |
| CN116993063A (zh) * | 2022-04-24 | 2023-11-03 | 华为技术有限公司 | 一种任务求解方法及其装置 |
| CN114596012A (zh) * | 2022-05-10 | 2022-06-07 | 支付宝(杭州)信息技术有限公司 | 用于资源调度的方法、系统、装置和介质 |
| CN115796405B (zh) * | 2023-02-03 | 2023-05-02 | 阿里巴巴达摩院(杭州)科技有限公司 | 针对优化模型的求解报告生成方法及计算设备 |
| CN115829169B (zh) * | 2023-02-10 | 2023-05-16 | 阿里巴巴达摩院(杭州)科技有限公司 | 基于混合整数线性规划的业务处理方法及装置 |
| CN116341838A (zh) * | 2023-02-23 | 2023-06-27 | 华为技术有限公司 | 一种计算机任务处理方法及其相关设备 |
| US20250111308A1 (en) * | 2023-09-29 | 2025-04-03 | Ukg Inc. | Workforce scheduling based on problem decomposition |
| CN118396291B (zh) * | 2024-04-19 | 2025-02-28 | 深圳市金地物业管理有限公司 | 一种基于线性规划的保洁作业排程方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6336110B1 (en) * | 1997-03-31 | 2002-01-01 | Kabushiki Kaisha Toshiba | System for solving of a constraint-satisfaction problem and constructing of a system |
| US20070198446A1 (en) * | 2006-02-21 | 2007-08-23 | Indraneel Das | System and method for exploiting a good starting guess for binding constraints in quadratic programming with an infeasible and inconsistent starting guess for the solution |
| US20120127893A1 (en) * | 2010-11-22 | 2012-05-24 | May Patents Ltd. | Apparatus and method for using and solving linear programming problem and applications thereof |
| CN114237835A (zh) * | 2021-09-30 | 2022-03-25 | 华为技术有限公司 | 一种任务求解方法及其装置 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8412551B2 (en) * | 2004-10-21 | 2013-04-02 | Abb Research Ltd. | Formal structure-based algorithms for large scale resource scheduling optimization |
| US9135581B1 (en) * | 2011-08-31 | 2015-09-15 | Amazon Technologies, Inc. | Resource constrained task scheduling |
| CN104156508A (zh) * | 2014-07-23 | 2014-11-19 | 国家电网公司 | 混合整数线性规划模型的求解方法 |
| US10970682B1 (en) * | 2015-06-04 | 2021-04-06 | Incontact, Inc. | System and method for agent scheduling using mixed integer linear programming |
| US10509654B2 (en) * | 2017-08-09 | 2019-12-17 | Red Hat, Inc. | Multi-threaded constraint satisfaction solver |
| US11537995B2 (en) * | 2019-02-01 | 2022-12-27 | King Fahd University Of Petroleum And Minerals | Method and system for cyclic scheduling |
| CN110334391B (zh) * | 2019-05-23 | 2023-03-28 | 明阳智慧能源集团股份公司 | 一种多维度约束风电场集电线路自动规划方法 |
-
2021
- 2021-09-30 CN CN202111166727.3A patent/CN114237835B/zh active Active
-
2022
- 2022-09-27 WO PCT/CN2022/121620 patent/WO2023051505A1/zh not_active Ceased
- 2022-09-27 EP EP22874890.1A patent/EP4394595A4/en active Pending
-
2024
- 2024-03-27 US US18/619,068 patent/US20240242137A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6336110B1 (en) * | 1997-03-31 | 2002-01-01 | Kabushiki Kaisha Toshiba | System for solving of a constraint-satisfaction problem and constructing of a system |
| US20070198446A1 (en) * | 2006-02-21 | 2007-08-23 | Indraneel Das | System and method for exploiting a good starting guess for binding constraints in quadratic programming with an infeasible and inconsistent starting guess for the solution |
| US20120127893A1 (en) * | 2010-11-22 | 2012-05-24 | May Patents Ltd. | Apparatus and method for using and solving linear programming problem and applications thereof |
| CN114237835A (zh) * | 2021-09-30 | 2022-03-25 | 华为技术有限公司 | 一种任务求解方法及其装置 |
Non-Patent Citations (3)
| Title |
|---|
| See also references of EP4394595A4 |
| 刘经德 (LIU, JINGDE): "面向复杂运算程序的符号执行搜索策略研究 (A Search Strategy for the Symbolic Execution of the Programs with Complex Computations)", 中国优秀硕士学位论文全文数据库信息科技辑 (INFORMATION & TECHNOLOGY, CHINA MASTER'S THESES FULL-TEXT DATABASE), 15 March 2017 (2017-03-15), ISSN: 1674-0246 * |
| 隋建威 (SUI, JIANWEI): "面向软件完整路径的测试用例生成技术研究 (Research on Full-Path Test Case Generation Technology)", 中国优秀硕士学位论文全文数据库信息科技辑 (INFORMATION & TECHNOLOGY, CHINA MASTER'S THESES FULL-TEXT DATABASE), 15 May 2021 (2021-05-15), ISSN: 1674-0246 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118038702A (zh) * | 2024-03-11 | 2024-05-14 | 北京工业大学 | 混行场景下车道通行能力上下限计算与分析方法和系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4394595A4 (en) | 2024-12-18 |
| CN114237835A (zh) | 2022-03-25 |
| CN114237835B (zh) | 2025-12-02 |
| EP4394595A1 (en) | 2024-07-03 |
| US20240242137A1 (en) | 2024-07-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2023051505A1 (zh) | 一种任务求解方法及其装置 | |
| CN111738488B (zh) | 一种任务调度方法及其装置 | |
| Mishra et al. | An adaptive task allocation technique for green cloud computing | |
| US20220391260A1 (en) | Method and Apparatus for Creating Container, Device, Medium, and Program Product | |
| CN110389816B (zh) | 用于资源调度的方法、装置以及计算机可读介质 | |
| CN113886080B (zh) | 高性能集群任务调度方法、装置、电子设备及存储介质 | |
| CN112764893B (zh) | 数据处理方法和数据处理系统 | |
| CN110609742A (zh) | 一种Kubernetes调度器的队列的配置方法和装置 | |
| CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
| US12204934B2 (en) | Method, device, and program product for managing multiple computing tasks based on batch | |
| CN115880132A (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
| Zhang et al. | A resource optimization scheduling model and algorithm for heterogeneous computing clusters based on GNN and RL: Z. Zhang et al. | |
| CN118626275B (zh) | 异构计算资源虚拟化处理方法、电子设备和存储介质 | |
| CN118819903A (zh) | 基于可视化建模与作业编排调度的数据分析方法及系统 | |
| CN106293947B (zh) | 虚拟化云环境下gpu-cpu混合资源分配系统和方法 | |
| WO2025044621A1 (zh) | 构建调度模型的方法和系统、调度目标任务的方法和系统 | |
| CN116880994B (zh) | 基于动态dag的多处理器任务调度方法、装置及设备 | |
| CN115361285B (zh) | 实现离在线业务混合部署的方法、装置、设备及介质 | |
| US20250053828A1 (en) | Task solving method and apparatus thereof | |
| CN118740844B (zh) | 执行节点的确定方法和装置、存储介质及电子设备 | |
| CN114091807B (zh) | 多无人机任务分配及调度方法、装置、系统及存储介质 | |
| CN117762583A (zh) | 任务调度方法、装置、电子设备、存储介质 | |
| CN116643866A (zh) | 作业调度处理方法、装置、芯片、存储介质和程序产品 | |
| CN116957311A (zh) | 一种应急策略的智能分配方法及系统 | |
| CN110764886B (zh) | 一种支持多分区处理的批量作业协同调度方法及系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22874890 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2022874890 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2022874890 Country of ref document: EP Effective date: 20240328 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 11202402133T Country of ref document: SG |
