Method, device and storage medium for determining task execution sequence

By optimizing the task execution queue and resource allocation, the problems of resource waste and low efficiency in complex projects were solved, the optimal task execution scheme was achieved, and resource utilization and efficiency were improved.

CN115081769BActive Publication Date: 2026-02-06CHINA MOBILE GROUP JIANGSU +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202110267021.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-03-11
Publication Date
2026-02-06
Estimated Expiration
2041-03-11

AI Technical Summary

Technical Problem

In existing technologies, task execution plans for complex projects often rely on human intervention, resulting in high resource consumption and low efficiency.

Method used

By defining a set of task execution queues, optimizing the task execution order based on task resource requirements and execution order constraints, and using full-path algorithms and arrow diagram generation tools, tasks are orchestrated to optimize resource utilization.

Benefits of technology

It achieves the optimal selection of task execution plan, reduces resource consumption, and improves task execution efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115081769B_ABST
    Figure CN115081769B_ABST
Patent Text Reader

Abstract

The application provides a task execution sequence determination method, device and equipment and a storage medium. The method comprises the following steps: determining a task execution queue set of a to-be-executed task, wherein the task execution queue set comprises at least one task execution queue, and in the case that the task execution queue comprises at least two tasks, the execution sequence of the at least two tasks is determined based on execution sequence constraints between the at least two tasks; and determining a target execution sequence of the to-be-executed task based on task resource requirements of the to-be-executed task and the task execution queue set. The task execution queue set is composed of at least two tasks based on execution sequence constraints between the at least two tasks, and the set determines the target execution sequence of the to-be-executed task based on the task resource requirements of the to-be-executed task. The optimal selection of a task execution scheme is realized, the resources consumed by task execution are reduced, and the task execution efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of engineering projects, and in particular to a method and device for determining the execution order of tasks, electronic equipment and a storage medium. BACKGROUND

[0002] With the development of business, after the business support engineering project is analyzed and planned, it needs to be implemented in a bounded manner under resource constraints.

[0003] In the prior art, the execution schemes of multiple tasks to be executed are mostly determined manually, and related project management tools such as Gantt charts are introduced to assist in the determination. However, for complex projects, the manually determined scheme is often not the optimal scheme, which leads to a large amount of resources consumed in task execution and low task execution efficiency. SUMMARY

[0004] The present application provides a method and device for determining the execution order of tasks, equipment and a storage medium, to solve the problem that the optimal task execution scheme cannot be determined in the prior art, which leads to a large amount of resources consumed and low task execution efficiency. The present application realizes the optimal selection of the task execution scheme, reduces the resources consumed in task execution, and improves the task execution efficiency.

[0005] In a first aspect, the present application provides a method for determining the execution order of tasks, comprising:

[0006] determining a task execution queue set of tasks to be executed, wherein the task execution queue set comprises at least one task execution queue, and in the case where the task execution queue comprises at least two tasks, the execution order of the at least two tasks is determined based on the execution order constraint between the at least two tasks;

[0007] determining the target execution order of the tasks to be executed based on the task resource requirements of the tasks to be executed and the task execution queue set.

[0008] Optionally, according to the method for determining the execution order of tasks provided by the present application, the task resource requirements of the tasks to be executed comprise:

[0009] the manpower requirements of each task to be executed;

[0010] Correspondingly, the step of determining the target execution order of the tasks to be executed based on the task resource requirements of the tasks to be executed and the task execution queue set comprises:

[0011] determining at least one target task execution queue based on the priority order of the remaining task execution queues and the task resource requirements of the remaining task execution queues, the human resource requirement of the at least one target task execution queue being just less than the human resource;

[0012] determining that the at least one target task execution queue is processed in parallel in time, and the execution order of the at least one target task execution queue is after the execution order of the target task execution queue determined in the previous iteration process;

[0013] wherein the remaining task execution queue is a task execution queue in the set of task execution queues which has not yet determined the execution order.

[0014] Optionally, according to the method for determining the execution order of tasks provided in the application, the task resource requirement of the task to be executed further comprises:

[0015] the time requirement of each task to be executed;

[0016] Correspondingly, the method further comprises: determining the priority order of the remaining task execution queues from high to low in turn based on the time requirements of the remaining task execution queues being sorted from small to large.

[0017] Optionally, according to the method for determining the execution order of tasks provided in the application, the determining that the at least one target task execution queue is processed in parallel in time, and the execution order of the at least one target task execution queue is after the execution order of the target task execution queue determined in the previous iteration process comprises:

[0018] For each iteration process, if at least two target task execution queues are determined, the execution order between the at least two target task execution queues is determined based on the human resource requirement and the time requirement of the target task execution queue determined in the previous iteration process.

[0019] Optionally, according to the method for determining the execution order of tasks provided in the application, the determining the execution order between the at least two target task execution queues based on the human resource requirement and the time requirement of the target task execution queue determined in the previous iteration process comprises:

[0020] For each iteration process, a first completion time node of a first target task execution queue in the previous iteration process is determined as a start time node of a second target task execution queue in the current iteration process; wherein the sum of the human resource requirement of the first target task execution queue and the remaining human resource corresponding to the first completion time node is greater than or equal to the human resource requirement of the second target task execution queue.

[0021] Optionally, the method for determining the execution sequence of tasks provided in the present application further comprises:

[0022] In a case where the sum of the remaining human resources corresponding to the second completion time node of the first to-be-executed task and the human resource demand of the first to-be-executed task is less than the human resource demand of the second to-be-executed task, it is determined to apply for increasing human resources, wherein the execution sequence of the second to-be-executed task is after the execution sequence of the first to-be-executed task.

[0023] Optionally, the method for determining the execution sequence of tasks provided in the present application further comprises:

[0024] deleting the repeated to-be-executed tasks in the remaining task execution queue;

[0025] The repeated to-be-executed tasks are contained in the target task execution queue determined in the historical iteration process.

[0026] In a second aspect, the present application further provides a device for determining the execution sequence of tasks, comprising:

[0027] a first determining module configured to determine a task execution queue set of to-be-executed tasks, wherein the task execution queue set comprises at least one task execution queue, and in a case where the task execution queue comprises at least two tasks, the execution sequence of the at least two tasks is determined based on the execution sequence constraint between the at least two tasks;

[0028] a second determining module configured to determine the target execution sequence of the to-be-executed tasks based on the task resource demand of the to-be-executed tasks and the task execution queue set.

[0029] In a third aspect, the present application further provides an electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the steps of the method for determining the execution sequence of tasks according to the first aspect.

[0030] In a fourth aspect, the present application further provides a non-transitory computer readable storage medium having a computer program stored thereon, wherein the computer program is executable by a processor to implement the steps of the method for determining the execution sequence of tasks according to the first aspect.

[0031] This invention provides a method, apparatus, device, and storage medium for determining the execution order of tasks. The invention comprises a set of task execution queues determined by execution order constraints between at least two tasks. Based on the resource requirements of the tasks to be executed, this set determines the target execution order of the tasks. This achieves optimal selection of task execution schemes, reduces resource consumption during task execution, and improves task execution efficiency. Attached Figure Description

[0032] To more clearly illustrate the technical solutions in this invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0033] Figure 1 This is a flowchart illustrating the method for determining the task execution order provided by the present invention;

[0034] Figure 2 This is one of the arrow diagrams of the task execution order provided by the present invention;

[0035] Figure 3 This is the second arrow diagram of the task execution order provided by the present invention;

[0036] Figure 4 This is the third arrow diagram of the task execution order provided by the present invention;

[0037] Figure 5 This is the fourth arrow diagram of the task execution order provided by the present invention;

[0038] Figure 6 This is a schematic diagram illustrating the critical path sorting process implemented by the CL5-1 algorithm;

[0039] Figure 7 This is a schematic diagram of the logic for each iteration of the CL5-1 algorithm;

[0040] Figure 8 This is a schematic diagram of the structure of the device for determining the task execution order provided by the present invention;

[0041] Figure 9 This is a schematic diagram of the physical structure of the electronic device provided by the present invention. Detailed Implementation

[0042] In order to make the objects, technical solutions and advantages of the present application clearer, the technical solutions in the present application will be described clearly and completely below in combination with the drawings in the present application. Obviously, the described embodiments are only some of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the protection scope of the present application.

[0043] Figure 1 is a flowchart of the method for determining the task execution sequence provided by the present application, as shown in Figure 1 The method comprises the following steps:

[0044] In step 110, a task execution queue set of tasks to be executed is determined, wherein the task execution queue set comprises at least one task execution queue, and in the case that the task execution queue comprises at least two tasks, the execution sequence of the at least two tasks is determined based on the execution sequence constraint between the at least two tasks.

[0045] Optionally, a task execution queue set of all tasks to be executed is determined. The task queue set comprises at least one task execution queue, and the execution sequence of the tasks in the task execution queue is determined based on the precedence dependency of the tasks in the task execution queue.

[0046] For example, a notebook keyboard assembly task comprises a notebook keyboard key installation task and a notebook keyboard key detection task. The notebook keyboard key detection task can be performed only after the notebook keyboard key installation task is completed, and the notebook keyboard key detection task is the precedence task of the notebook keyboard key installation task. That is, the B execution task can be started only after the A execution task is completed, and the task execution queue is AB.

[0047] Optionally, a feature descriptor is used to represent the task execution queue set. As shown in Table 1.

[0048] Table 1

[0049]

[0050] In Table 1, the binary feature descriptor + represents an "or" relationship between the two elements, and there is no dependency relationship between the two. The () in Table 1 represents the combination relationship of different feature descriptor expression paths.

[0051] Optionally, a path traversal graph is drawn in the form of an arrow graph, Figure 2 is one of the arrow graphs of the task execution sequence provided by the present application, as shown in Figure 2As shown, circles labeled with numbers represent task nodes, and connecting lines labeled with letters are defined as paths. A directional line segment in a path indicates that the task is reached through a prerequisite dependency of another task.

[0052] Optionally, the arrow diagram is converted into an expression, and constraints are calculated and set through the expression to determine the set of task execution queues represented by strings with conditional constraints.

[0053] Optionally, Figure 3 This is the second arrow diagram of the task execution order provided by the present invention, as shown below. Figure 3 As shown, for a path formed by edges that are connected at both ends (each intermediate node has only one in-degree and one out-degree), it is represented as a path string formed by the characters of each edge in the traversal order.

[0054] Optionally, Figure 4 This is the third arrow diagram of the task execution order provided by the present invention, as shown below. Figure 4 As shown, for parallel edges (a set of paths with the same starting and ending points), the edges are connected with "+" to indicate that they can be parallelized.

[0055] Alternatively, the process of generating a string set from an arrow diagram is as follows:

[0056] Step 01, merge all serial edges, using Figure 3 The conversion methods are merged to generate a new task execution queue expression;

[0057] Step 02, for all parallel edges, use Figure 4 The conversion method generates a task selection expression (+);

[0058] Step 03, according to Figure 3 and Figure 4 The transformation method is then explored further to generate a set of task execution queues from the starting point to the end point, until each node has been traversed.

[0059] Optionally, an example can be given using resource constraints such as manpower and time constraints, and the existence of dependent tasks. A project task with 10 people includes 8 tasks (AH). The prerequisites and time constraints for each task, and the required manpower, are shown in Table 2.

[0060] Table 2

[0061] Task A B C D E F G H Dependency task - - - - B C D, F E, G Days required 3 days 3 days 2 days 3 days 3 days 2 days 3 days 4 days Number of people required 7 people 2 people 2 people 8 people 2 people 7 people 6 people 1 person

[0062] Figure 5 This is the fourth arrow diagram of the task execution order provided by the present invention. Figure 5Is according to the arrow line chart of table 2.Drawn.According to the method of generating string set according to arrow line chart, determine task execution queue set: A+BEH+CFGH+DGH, wherein A, B, C, D are independent tasks, are tasks that can be executed in parallel at any time, E, F, G, H all have pre-depending dependencies and must maintain execution order.

[0063] Optionally, the resources can include: human resources, time resources, financial resources, consumable resources, etc.

[0064] The application can directly understand the required resources of all tasks and the pre-depending tasks of the tasks by the task execution path coverage mode of the arrow line chart, i.e., the full path algorithm, and can assist in task arrangement, which is beneficial to improve the confirmation efficiency of the task execution order.

[0065] Step 120, based on the task resource demand of the to-be-executed task and the task execution queue set, determine the target execution order of the to-be-executed task.

[0066] Optionally, according to the task resource demand of the to-be-executed task, the task execution queue set is allocated with task resources, and according to the execution order of the to-be-executed task, the target execution order of the to-be-executed task is determined.

[0067] For example, the task execution queue set is A+BE, the required resources of A are 7 people for 3 days, the required number of people of B is 2 people for 3 days, the required resources of E are 2 people for 3 days, the number of human resources is 10, the human resources are allocated to the task execution queue set, 7 people are allocated to A, 2 people are allocated to B, and the remaining number of human resources is 1. When the tasks A and B are executed for three days, the number of human resources is released to 9, at this time the number of human resources is 10, 2 people are allocated to task E, three days later, task E is executed, at this time the target execution order of the to-be-executed task is determined as A-B-E.

[0068] The application determines the task execution queue set by the execution order constraint between at least two tasks, and determines the target execution order of the to-be-executed task based on the task resource demand of the to-be-executed task. The optimal selection of the task execution scheme is realized, the resources consumed by the task execution are reduced, and the task execution efficiency is improved.

[0069] Optionally, the task resource demand of the to-be-executed task includes:

[0070] The human demand of each to-be-executed task;

[0071] Optionally, the human demand of the to-be-executed task is the number of people required by the to-be-executed task.

[0072] Optionally, the task resource requirement of the to-be-executed task can include manpower requirement, time requirement, fund requirement, consumable requirement, etc.

[0073] Correspondingly, the determining of the target execution order of the to-be-executed task based on the task resource requirement of the to-be-executed task and the set of task execution queues can include:

[0074] In each iteration process, at least one target task execution queue is determined based on the priority order of the remaining task execution queue and the task resource requirement of the remaining task execution queue, and the manpower requirement of the at least one target task execution queue is just less than the manpower resource;

[0075] The at least one target task execution queue is determined to be processed in parallel in time, and the execution order of the at least one target task execution queue is after the execution order of the target task execution queue determined in the previous iteration process;

[0076] The remaining task execution queue is a task execution queue in the set of task execution queues which has not yet determined the execution order.

[0077] Optionally, through the each iteration process, the target task execution queue whose manpower requirement is just less than the manpower resource is determined, so that the most tasks can be completed in each iteration under the condition of fixed manpower resource, the resource consumed by task execution is reduced, and the task execution efficiency is improved.

[0078] Optionally, the priority order of the task execution queue in the set of task execution queues is determined, for example, the priority order of the set of task execution queues in Table 2: A+BEH+CFGH+DGH.

[0079] The first round of iteration is shown in Table 3,

[0080] Table 3

[0081] Path set 1 2 3 4 5 6 7 8 9 0 11 12 Reachable Days Number of people Queue A 7 7 7E 1 3 7 No 1 BEH 2 2 2E 1 10 5 No 2 DGH - - - 1 10 15 No 4 CFGH - - - 1 11 16 No 3 Remaining resources 1 1 1 10

[0082] The A task execution queue is started, at this time the remaining manpower resource is 10-7=3, the B in the next priority execution queue BEH is executed, at this time the remaining manpower resource is 3-2=1, when the C in the next priority execution queue CFGH is continuously executed, the remaining manpower resource number 1 does not meet the manpower resource required by C, at this time a target task execution queue A-B is determined, at this time the manpower requirement 7+2=9 of the target task execution queue is just less than the manpower resource 10. When the task ends, it is the fourth working day at this time.

[0083] The second round of iteration is shown in Table 4,

[0084] Table 4

[0085] Path set 1 2 3 4 5 6 7 8 9 10 11 12 Reachable Days Number of people Queue A 7 7 7E 1 3 7 No 1 BEH 2 2 2E 2 2 2E 1 10 5 No 2 DGH - - - 8 8 8E 1 10 15 No 4 CFGH - - - - - 1 11 16 No 3 Remaining resources 1 1 1 0 0 0 10

[0086] Again iteration operation, at this time the total human resources is 10, the human resources is allocated according to the task queue priority and the corresponding task queue E and D is executed, and the remaining human resources is 0, when the E and D tasks end, at this time it is the 7th working day.

[0087] The third round of iteration, as shown in Table 5,

[0088] Table 5

[0089] Path set 1 2 3 4 5 6 7 8 9 10 11 12 Reachable Days Number of people Queue A 7 7 7E 1 3 7 No 1 BEH 2 2 2E 2 2 2E 1 10 5 No 2 DGH - - - 8 8 8E 1 10 15 No 4 CFGH - - - - - - 2 2E 1 11 16 No 3 Remaining resources 1 1 1 0 0 0 1 1 3

[0090] Similarly, iteration operation, on the 9th working day, the C task ends and releases 2 human resources, and the current resources are 3, at this time the F task cannot be started, and the F task is waiting to start.

[0091] Optionally, at this time, it can be prompted that 'on the 9th working day, it is suggested to add 4 resources to start the key plug task F'.

[0092] The fourth round of iteration, as shown in Table 6,

[0093] Table 6

[0094] Path set 1 2 3 4 5 6 7 8 9 10 11 12 Reachable Days Number of people Queue A 7 7 7E 1 3 7 No 1 BEH 2 2 2E 2 2E 1 1 1 1 10 5 No 2 DGH - - - 8 8E 6 6 6E 1 10 15 No 4 CFGH - - - - - - 2 2E - 1 11 16 No 3 Remaining resources 1 1 1 0 0 0 1 1 3 9

[0095] Similarly, iteration operation, on the 10th working day, the G task ends and releases 6 human resources, and the current total resources are 9, and the F task can be started.

[0096] The fifth round of iteration, as shown in Table 7,

[0097] Table 7

[0098] Path set 1 2 3 4 5 6 7 8 9 10 11 12 Reachable Days Number of people Queue A 7 7 7E 1 3 7 No 1 BEH 2 2 2E 2 2 2E 1 1 1 1E 1 10 5 No 2 DGH - - - 8 8 8E 6 6 6E 1 10 15 No 4 CFGH - - - - - - 2 2E - 7 7E 1 11 16 No 3 Remaining resources 1 1 1 0 0 0 1 1 3 2 3 10

[0099] Similarly, iteration operation is performed until the queue is completely executed.

[0100] Optionally, the optimal task arrangement diagram is obtained. At the same time, the output arrangement conclusion information is obtained, as shown in Table 8,

[0101] Table 8

[0102]

[0103] The application allocates the required resources of the task to the to-be-executed task according to the priority order by using the iteration algorithm, fully utilizes the resources, effectively improves the resource utilization rate, reduces the resource consumption, and improves the task execution efficiency.

[0104] Optionally, the task resource requirement of the to-be-executed task further comprises:

[0105] time requirement of each to-be-executed task;

[0106] Correspondingly, the method further comprises:

[0107] determining a priority order of the remaining task execution queues from high to low according to the time requirement of the remaining task execution queues from small to large.

[0108] Optionally, according to the total time requirement of the remaining task execution queues, the task execution queues are sorted in the order from small to large, and the priority of the task execution queue with smaller time requirement is higher.

[0109] For example, the task execution queue set A+BEH+CFGH+DGH, the time requirement of the task execution queue A is 3 days, the total time requirement of the task execution queue BEH is 10 days, and the total time requirement of the task execution queue CFGH is 11 days, and the priority order determined at this time is A>BEH>CFGH>DGH.

[0110] Optionally, when the total time requirement of the task execution queue is the same, according to the total manpower requirement of the remaining task execution queues, the task execution queues are sorted in the order from small to large, and the priority of the task execution queue with smaller manpower requirement is higher.

[0111] The application can complete the task execution queue in advance, release manpower resources in advance, reduce resource consumption, and improve task execution efficiency by executing the task execution queue with short time requirement in priority.

[0112] Optionally, the determination of the at least one target task execution queue in time parallel processing, and the execution order of the at least one target task execution queue is after the execution order of the target task execution queue determined in the previous iteration process, comprises:

[0113] For each iteration process, if at least two target task execution queues are determined, the execution order between the at least two target task execution queues is determined based on the manpower requirement and the time requirement of the target task execution queue determined in the previous iteration process.

[0114] Optionally, if at least two target task execution queues are determined, the target task execution queue is a to-be-executed task executed in an iteration. For example, tasks A and B executed in the first round of iteration in Table 3, and tasks E and D executed in the second round of iteration in Table 3. The execution order between the at least two target task execution queues is determined based on the manpower requirement and the time requirement of the target task execution queue determined in the previous iteration process. For example, the execution order of the first round of iteration and the second round of iteration is A+B>E+D.

[0115] Optionally, the human resource demand and the time demand of the target task execution queue determined based on the previous iteration process are used to determine the execution order between the at least two target task execution queues, including:

[0116] For each iteration process, the first completion time node of the first target task execution queue in the previous iteration process is determined as the start time node of the second target task execution queue in the current iteration process; wherein the sum of the human resource demand of the completed tasks in the first target task execution queue and the remaining human resources corresponding to the first completion time node is greater than or equal to the human resource demand of the second target task execution queue.

[0117] Optionally, in each iteration process, the completion time node of the completed tasks in the first target task execution queue in the previous iteration process can be the start time node of the to-be-executed tasks in the second target task execution queue in the current iteration process.

[0118] The second target task execution queue is the target task execution queue determined in the current iteration process. For example, the tasks E and D in the second iteration.

[0119] The first target task execution queue is the target task execution queue determined in the previous iteration process. For example, the target task execution queues A and B determined in the previous iteration process of the tasks E and D in the second iteration.

[0120] The first completion time node is the end time node of the completed tasks in the first target task execution queue in the previous iteration process. For example, the end time node of the target task execution queues A and B determined in the previous iteration process of the tasks E and D in the second iteration is the fourth working day.

[0121] The sum of the human resource demand of the completed tasks in the first target task execution queue and the remaining human resources corresponding to the first completion time node is greater than or equal to the human resource demand of the second target task execution queue, so as to ensure that the second target task execution queue can obtain sufficient human resources.

[0122] Optionally, the method further comprises:

[0123] In the case where the sum of the remaining human resources corresponding to the second completion time node of the first to-be-executed task and the human resource demand of the first to-be-executed task is less than the human resource demand of the second to-be-executed task, it is determined to apply for increasing human resources; wherein the execution order of the second to-be-executed task is after the order of the first to-be-executed task.

[0124] The first to-be-executed task is a to-be-executed task completed in the current iteration process. For example, the task C in the third iteration.

[0125] The second completion time node is the time node at which the first to-be-executed task is completed. For example, at the third iteration, task C ends on the 9th workday.

[0126] The second to-be-executed task is a to-be-executed task in the next iteration, for example, task F, which is to be started.

[0127] Specifically, at the third iteration, task C ends and releases human resources 2, and the sum of the remaining human resources is 3, which is the currently available human resources. At this time, the currently available human resources are less than the human resource requirement 7 of the second to-be-executed task F, and the human resource requirement of task F cannot be met. The available application increases human resources 4 to start the key blocked task F.

[0128] Optionally, the time at which the first to-be-executed task is completed is the start time of the to-be-executed task in the next iteration, for example, task C ends on the 9th workday, and the 9th workday is the start time of task F. When the application increases human resources, the start time of the blocked task F is increased.

[0129] The application increases human resources when the human resource requirement of the task is met and blocked, to start the key blocked task, avoiding the waste of resources caused by waiting for the start of the blocked task, improving the utilization of resources, and improving the efficiency of task execution.

[0130] Optionally, the priority order based on the remaining task execution queue and the task resource requirement of the remaining task execution queue determines at least one target task execution queue, comprising:

[0131] Removing the duplicate to-be-executed tasks in the remaining task execution queue;

[0132] The duplicate to-be-executed tasks are contained in the target task execution queue determined in the historical iteration process.

[0133] Optionally, before the current to-be-executed task is started, if other remaining task execution queues contain the to-be-executed task, the to-be-executed task is deleted from the remaining task execution queue.

[0134] For example, at the third iteration, the to-be-executed tasks are H of the BEH execution queue, G of the DGH execution queue, and C of the CFGH execution queue. Among them, tasks H and G exist in task execution queues DGH and CFGH, and G and H in task execution queues DGH and CFGH are deleted.

[0135] By deleting the duplicate to-be-executed tasks in the remaining task execution queue, it is prevented that the to-be-executed tasks are executed repeatedly in other remaining task execution queues after the to-be-executed tasks are executed.

[0136] Optionally, the CL5-1 algorithm can be obtained based on the above iterative process. Figure 6 is a schematic diagram of the CL5-1 algorithm implementation critical path sorting process. Figure 7 is a schematic diagram of the CL5-1 algorithm implementation per iteration logic.

[0137] The detailed steps of the CL5-1 algorithm are as follows:

[0138] Assumption: Set Task{T i|i=1,2…,n} is a set of tasks to be executed;

[0139] Set Relation{R i|i=1,2…,n} represents the required resource set of n tasks; where R[i] represents the required resource set of task Task[i];

[0140] Set Depand{D i|i=1,2…,n} represents the pre-dependent tasks of n tasks; where D[i] represents the required dependent task set of task Task[i];

[0141] Set Plan{P i|i=1,2…,n} represents the plan of n tasks, where P[i] represents the task execution plan of task Task[i]; P is a composite data set, including:

[0142] P[i].Begin[B i|i=1,2…,n} represents the start time of n tasks.

[0143] P[i].End[E i|i=1,2…,n} represents the end time of n tasks.

[0144] P[i].Status[S i|i=1,2…,n} represents the current state of n tasks. 0: to be executed 1: in execution 2: completed;

[0145] Resoure[R k|k=0,1…,max(Plan[i].End)] represents the resource set number of each day before the completion of the entire plan, and Relation[n] is of the same type;

[0146] Arrange[Ak|k=0,1…,max(Plan[i].End)][j|j=1…,m] represents the execution of the task set{Task[i]} on each working day before the completion of the entire plan, and m is the number of tasks that can be executed in parallel.

[0147] Arrange k(t)=

[0148] The algorithm is described in pseudo code as follows:

[0149] WHILE(k=0;k++)

[0150] FOR (current task T[i] has a state of execution)

[0151] IF current task end time has arrived Plan[i].End-1=0

[0152] Resource recycling Resoure[k]+=Relation[t[i]]

[0153] Task state mark as complete Plan[i].Status=Completed

[0154] IF (current task is complete)

[0155] BREAK;

[0156] FOR (P[i] still has unfinished tasks)

[0157] If current Resoure[k]>=min (not executed and pre-depending task has been completed T[i])

[0158] Arrange[k][j]=current T[i]

[0159] Resoure[k]=Arrange[k][j]-current task required resources Relation[i]

[0160] Current task plan state mark Plan[i].Status=execution

[0161] After completion, Arrange[k][j] saved in the entire plan is all tasks each working day scheduling and execution state two-dimensional table. Resoure[k] is the remaining resources each day, which can be a global variable. If the resource is artificially changed in a loop, that is, it is considered to change the resource (such as new investment or reduced resources) in execution, it will participate in scheduling in real time.

[0162] The application determines the task execution queue set through the execution sequence constraint between at least two tasks, determines the target execution sequence of the to-be-executed task based on the task resource demand of the to-be-executed task, and realizes the optimal selection of the task execution scheme, reduces the resources consumed by the task execution, and improves the task execution efficiency.

[0163] The task execution sequence determination device provided by the application is described below. The task execution sequence determination device described below can be correspondingly referred to the task execution sequence determination method described above.

[0164] Figure 8 is a structural schematic diagram of the task execution sequence determination device provided by the application, likeFigure 8 As shown in the figure, the task execution order determination apparatus comprises a first determination module 810 and a second determination module 820, wherein:

[0165] The first determination module 810 is configured to determine a task execution queue set of the to-be-executed tasks, wherein the task execution queue set comprises at least one task execution queue, and in the case that the task execution queue comprises at least two tasks, the execution order of the at least two tasks is determined based on the execution order constraint between the at least two tasks.

[0166] The second determination module 820 is configured to determine a target execution order of the to-be-executed tasks based on the task resource requirement of the to-be-executed tasks and the task execution queue set.

[0167] Optionally, the task execution order determination apparatus determines, by the first determination module 810, a task execution queue set of the to-be-executed tasks, wherein the task execution queue set comprises at least one task execution queue, and in the case that the task execution queue comprises at least two tasks, the execution order of the at least two tasks is determined based on the execution order constraint between the at least two tasks, and determines, by the second determination module 820, a target execution order of the to-be-executed tasks based on the task resource requirement of the to-be-executed tasks and the task execution queue set.

[0168] The task execution queue set determined based on the execution order constraint between the at least two tasks determines the target execution order of the to-be-executed tasks based on the task resource requirement of the to-be-executed tasks, which realizes the optimal selection of the task execution scheme, reduces the resources consumed by the task execution, and improves the task execution efficiency.

[0169] Optionally, according to the task execution order determination apparatus provided by the present application, the task resource requirement of the to-be-executed tasks comprises:

[0170] the manpower requirement of each to-be-executed task;

[0171] Correspondingly, the determination of the target execution order of the to-be-executed tasks based on the task resource requirement of the to-be-executed tasks and the task execution queue set comprises:

[0172] In each iteration process, at least one target task execution queue is determined based on the priority order of the remaining task execution queue and the task resource requirement of the remaining task execution queue, and the manpower requirement of the at least one target task execution queue is just less than the manpower resource.

[0173] determining that the at least one target task execution queue is processed in time parallel, and that the execution order of the at least one target task execution queue is after the execution order of the target task execution queue determined in the previous iteration process;

[0174] wherein the remaining task execution queue is a task execution queue in the set of task execution queues for which the execution order has not been determined.

[0175] Optionally, the task resource requirement of the task to be executed further comprises:

[0176] a time requirement of each task to be executed;

[0177] Correspondingly, the method further comprises:

[0178] determining the priority order of the remaining task execution queues from high to low in turn based on the time requirement of the remaining task execution queues from small to large.

[0179] Optionally, the determining that the at least one target task execution queue is processed in time parallel, and that the execution order of the at least one target task execution queue is after the execution order of the target task execution queue determined in the previous iteration process comprises:

[0180] For each iteration process, if at least two target task execution queues are determined, determining the execution order between the at least two target task execution queues based on the human resource requirement and the time requirement of the target task execution queue determined in the previous iteration process.

[0181] Optionally, the determining the execution order between the at least two target task execution queues based on the human resource requirement and the time requirement of the target task execution queue determined in the previous iteration process comprises:

[0182] For each iteration process, determining a first completion time node of a first target task execution queue of the previous iteration process as a start time node of a second target task execution queue in the current iteration process; wherein the sum of the human resource requirement of the first target task execution queue and the remaining human resource corresponding to the first completion time node is greater than or equal to the human resource requirement of the second target task execution queue.

[0183] Optionally, the apparatus further comprises:

[0184] In a case where the sum of the remaining human resource corresponding to the second completion time node of the first task to be executed and the human resource requirement of the first task to be executed is less than the human resource requirement of the second task to be executed, determining to apply for an increase in human resource; wherein the execution order of the second task to be executed is after the order of the first task to be executed.

[0185] Optionally, the priority order based on the remaining task execution queue and the task resource requirement of the remaining task execution queue determine at least one target task execution queue, comprising:

[0186] Delete the duplicate to-be-executed tasks in the remaining task execution queue.

[0187] The duplicate to-be-executed tasks are contained in the target task execution queue determined in the historical iteration process.

[0188] Figure 9 is the entity structure schematic diagram of the electronic device provided by the application, as Figure 9 shown, the electronic device can include: processor 910, communications interface (Communications Interface) 920, memory 930 and communication bus 940, wherein, processor 910, communications interface 920, memory 930 through communication bus 940 complete mutual communication.Processor 910 can call the logic instruction in memory 930, the method comprises:

[0189] Determine the task execution queue set of to-be-executed tasks, wherein the task execution queue set includes at least one task execution queue, and in the case that the task execution queue includes at least two tasks, the execution order of the at least two tasks is determined based on the execution order constraint between the at least two tasks;

[0190] Determine the target execution order of the to-be-executed tasks based on the task resource requirement of the to-be-executed tasks and the task execution queue set.

[0191] In addition, the logic instruction in the memory 930 described above can be implemented in the form of a software functional unit and sold or used as an independent product, which can be stored in a computer readable storage medium. Based on such understanding, the technical solutions of the present application essentially or the part that contributes to the prior art or part of the technical solutions can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a plurality of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the method described in various embodiments of the present application. The foregoing storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and various program code storage media.

[0192] In yet another aspect, the present application also provides a non-transitory computer readable storage medium having stored thereon a computer program, which, when executed by a processor, implements the method for determining the execution sequence of tasks as described above, the method comprising:

[0193] determining a task execution queue set of the tasks to be executed, wherein the task execution queue set comprises at least one task execution queue, and in the case that the task execution queue comprises at least two tasks, the execution sequence of the at least two tasks is determined based on the execution sequence constraint between the at least two tasks;

[0194] determining the target execution sequence of the tasks to be executed based on the task resource requirement of the tasks to be executed and the task execution queue set.

[0195] The device embodiments described above are merely illustrative, wherein the units illustrated as separate components can or can not be physically separate, and the components illustrated as units can or can not be physical units, i.e., can be located in one place, or can be distributed on multiple network units. Part or all of the modules can be selected to achieve the purposes of the embodiments according to actual needs. Those skilled in the art can understand and implement without creative labor.

[0196] From the above description of the embodiments, those skilled in the art can clearly understand that the embodiments can be realized by means of software plus necessary universal hardware platforms, and of course can also be realized by hardware. Based on such understanding, the above technical solutions, essentially or in other words, the part that contributes to the prior art, can be embodied in the form of a software product, which can be stored in a computer readable storage medium, such as a ROM / RAM, a magnetic disk, an optical disk, etc., and includes a number of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute the methods described in each embodiment or some parts of the embodiments.

[0197] Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, and not to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that: it can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacement to some technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A method of determining an execution order of tasks, characterized by, The method comprises the following steps: determining a task execution queue set of tasks to be executed, wherein the task execution queue set comprises at least one task execution queue, and in the case that the task execution queue comprises at least two tasks, the execution order of the at least two tasks is determined based on the execution order constraint between the at least two tasks; determining a target execution order of the tasks to be executed based on the task resource requirement of the tasks to be executed and the task execution queue set; representing the task execution queue set by using a feature descriptor, the task execution queue set comprising a feature description combination and a path set, drawing a path traversal graph in the form of an arrow diagram, converting the arrow diagram into an expression, calculating and setting a constraint condition through the expression, and determining a task execution queue set represented by a string with conditional constraints; The process of generating a string set from the arrow diagram is as follows: merging all serial edges, for the path formed by the edges connected together at the beginning and the end, each intermediate node has only one in-degree and one out-degree, and the path string is represented by the characters of each edge in the traversal order, and a new task execution queue expression is generated; for parallel edges, a group of paths with the same start point and end point, connecting each edge with a plus sign to represent the parallel relationship, and generating a selection task expression for all parallel edges; generating each task execution queue set from the start point to the end point until each node is traversed.

2. The method of determining an execution order of tasks according to claim 1, wherein, The task resource requirement of the tasks to be executed comprises: the manpower requirement of each task to be executed; Correspondingly, the step of determining a target execution order of the tasks to be executed based on the task resource requirement of the tasks to be executed and the task execution queue set comprises: in each iteration process, determining at least one target task execution queue based on the priority order of the remaining task execution queues and the task resource requirement of the remaining task execution queues, the manpower requirement of the at least one target task execution queue being exactly less than the manpower resource; determining that the at least one target task execution queue is processed in parallel in time, and the execution order of the at least one target task execution queue is after the execution order of the target task execution queue determined in the previous iteration process; wherein the remaining task execution queues are the task execution queues in the task execution queue set that have not yet determined the execution order.

3. The method of determining a task execution order according to claim 2, wherein, The task resource requirement of the tasks to be executed further comprises: the time requirement of each task to be executed; Correspondingly, the method further comprises: determining the priority order of the remaining task execution queues from high to low based on the time requirement of the remaining task execution queues in ascending order.

4. The method of claim 2, wherein The step of determining that the at least one target task execution queue is processed in parallel in time, and the execution order of the at least one target task execution queue is after the execution order of the target task execution queue determined in the previous iteration process comprises: for each iteration process, if at least two target task execution queues are determined, determining the execution order between the at least two target task execution queues based on the manpower requirement and the time requirement of the target task execution queue determined in the previous iteration process.

5. The method of determining a task execution order according to claim 4, wherein, The human resource demand and time demand of the target task execution queue determined based on a previous iteration process are used to determine the execution order between the at least two target task execution queues, including: For each iteration process, a first completion time node of a first target task execution queue of a previous iteration process is determined as a start time node of a second target task execution queue in the iteration process; wherein the sum of the human resource demand of the first target task execution queue and the remaining human resources corresponding to the first completion time node is greater than or equal to the human resource demand of the second target task execution queue.

6. The method of determining a task execution order according to claim 5, wherein, The method further includes: In a case where the sum of the remaining human resources corresponding to the second completion time node of the first to-be-executed task and the human resource demand of the first to-be-executed task is less than the human resource demand of the second to-be-executed task, it is determined to apply for an increase in human resources; wherein the execution order of the second to-be-executed task is after the order of the first to-be-executed task.

7. The method of determining an execution order of tasks according to any one of claims 2 to 6, wherein, The at least one target task execution queue is determined based on the priority order of the remaining task execution queue and the task resource demand of the remaining task execution queue, including: Removing a duplicate to-be-executed task in the remaining task execution queue; Wherein the duplicate to-be-executed task is included in the target task execution queue determined in the historical iteration process.

8. A device for determining the execution order of tasks, characterized in that, It includes: A first determination module is configured to determine a task execution queue set of to-be-executed tasks, wherein the task execution queue set includes at least one task execution queue, and in a case where the task execution queue includes at least two tasks, the execution order of the at least two tasks is determined based on the execution order constraint between the at least two tasks; A second determination module is configured to determine a target execution order of the to-be-executed tasks based on the task resource demand of the to-be-executed tasks and the task execution queue set; The task execution queue set is represented by using a feature descriptor, the task execution queue set includes a feature description combination and a path set, a path traversal graph is drawn by using an arrow diagram, the arrow diagram is converted into an expression, a constraint condition is calculated and set through the expression, and a task execution queue set represented by a string with conditional constraints is determined; The process of generating a string set from the arrow diagram is as follows: All serial edges are merged, for a path formed by edges connected together at the beginning and the end, each intermediate node has only one in-degree and one out-degree, and the path string is represented by characters of each edge in the traversal order, and a new task execution queue expression is generated; For parallel edges, a group of paths with the same start point and end point, each edge is connected by a plus sign to represent a parallel relationship, and a selection task expression is generated for all parallel edges; Each task execution queue set from the start point to the end point is generated until each node is traversed.

9. An electronic device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, The processor executes the program to implement the steps of the task execution order determination method according to any one of claims 1 to 7.

10. A non-transitory computer-readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed by the processor to implement the steps of the task execution order determination method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Task scheduling method and device

    CN104915251A

  • Multi-constraint scheduling calculation method and device for aviation part machining automatic production line

    CN110738413A

  • Task scheduling execution method and device

    CN111367642A