Project scheduling method and device, electronic equipment and storage medium

Through task classification and priority allocation, task scheduling is dynamically updated, which solves the problem of low task allocation efficiency, and achieves the goal of efficient resource utilization and lowest project cost.

CN120258464AActive Publication Date: 2025-07-04NANJING HUADUN ELECTRIC POWER INFORMATION SAFETY EVALUATION CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202510645354.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-20
Publication Date
2025-07-04
Estimated Expiration
2045-05-20

AI Technical Summary

Technical Problem

In the prior art, task allocation methods cannot scientifically consider the value of the task, the ability and efficiency of resource objects, resulting in inefficient task allocation, waste of resources, and affect project progress and quality.

Method used

By determining the task information collection, classifying tasks, dynamically update task scheduling based on task priorities and resource objects, avoiding task blockage and resource preemption, and achieving efficient resource utilization.

Benefits of technology

It realizes efficient execution of task scheduling, reduces resource consumption, controls project progress risks, ensures the lowest project cost and optimal resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120258464A_ABST
    Figure CN120258464A_ABST
Patent Text Reader

Abstract

The invention discloses a project scheduling method and device, electronic equipment and a storage medium. The method comprises the steps of determining a first task information set; classifying the tasks according to the first task information set to obtain a task classification set; determining a task priority according to the task classification set, and allocating a first resource object according to the task priority and the first task information set to obtain a second task information set; scheduling the project according to the second task information set; and dynamically updating the second task information set according to the processing state of each task in the scheduling process. According to the method, the tasks are classified according to the first task information set, the second task information set is determined according to the classified tasks, and the project is scheduled through the second task information set, so that the task scheduling method which can be executed and meets the project progress is quickly searched, the project progress risk is controlled, and the project scheduling efficiency is improved. The lowest total cost of a project can be ensured, and resources are saved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of project management, and particularly to a project scheduling method, device, electronic device and storage medium. Background Art

[0002] In software development project management, especially in teams adopting the agile development method, task scheduling is a key issue. With the expansion of project scale and the increase in task complexity, how to efficiently allocate tasks to the first resource object to ensure the achievement of project goals and the optimal utilization of resources has become an important challenge for project managers and development teams. Especially in each sprint period, the task allocation needs to comprehensively consider multiple factors such as the value of the task, workload, the ability and efficiency of the first resource object, and the availability of resources.

[0003] In the prior art, traditional task allocation methods often adopt simple rotation allocation or experience-based allocation methods, which cannot scientifically consider the value of tasks, the ability and efficiency of the first resource object, and the matching degree between tasks and the first resource object. This method not only leads to low task allocation efficiency, but also may cause waste of task value, unable to fully exert the ability of the first resource object, and affect the overall progress and quality of the project. Summary of the Invention

[0004] The present invention provides a project scheduling method, device, electronic device and storage medium to solve the problem of low project allocation efficiency.

[0005] According to one aspect of the present invention, there is provided a project scheduling method, including:

[0006] Determine a first task information set; the first task information set is used to characterize the dependency relationship between tasks of the project; the project is used to characterize the task requirements for completing each task, the progress requirements of each task, and the indicators that the development pool where each task is located needs to achieve; the development pool is composed of resource objects for completing tasks;

[0007] Classify tasks according to the first task information set to obtain a task classification set; the task classification set includes: a first task set and a second task set; the execution of tasks in the first task set depends on the completion degree of their associated pre-task and the task chain composed of tasks in the first task set is greater than or equal to a preset length; the execution of tasks in the second task set depends on the completion degree of their associated pre-task and the task chain composed of tasks in the second task set is less than the preset length;

[0008] Determine the task priorities according to the task classification set, and allocate the first resource object according to the task priorities and the first task information set to obtain a second task information set; the task priorities include: a first task priority and a second task priority; the first task priority is determined according to the task start times of the tasks in the first task set; the second task priority is determined according to the task float times and a priority function of the tasks in the second task set; the second task information set is a set used to represent the correspondence between each task and the first resource object;

[0009] Schedule the project according to the second task information set;

[0010] Dynamically update the second task information set according to the processing status of each task during the scheduling process.

[0011] According to another aspect of the present invention, there is provided a project scheduling device, including:

[0012] A first task information set determination module, configured to determine a first task information set; the first task information set is used to represent the dependency relationships between the tasks of the project; the project is used to represent the task requirements for completing each task, the progress requirements of each task, and the indicators that the development pool where each task is located needs to achieve; the development pool is composed of resource objects for completing tasks;

[0013] A task classification set determination module, configured to classify tasks according to the first task information set to obtain a task classification set; the task classification set includes: a first task set and a second task set; the execution of the tasks in the first task set depends on the completion degree of their associated pre - tasks and the task chain composed of the tasks in the first task set is greater than or equal to a preset length; the execution of the tasks in the second task set depends on the completion degree of their associated pre - tasks and the task chain composed of the tasks in the second task set is less than the preset length;

[0014] A second task information set determination module, configured to determine task priorities according to the task classification set, and allocate a first resource object according to the task priorities and the first task information set to obtain a second task information set; the task priorities include: a first task priority and a second task priority; the first task priority is determined according to the task start times of the tasks in the first task set; the second task priority is determined according to the task float times and a priority function of the tasks in the second task set; the second task information set is a set used to represent the correspondence between each task and the first resource object;

[0015] A scheduling module, configured to schedule the project according to the second task information set;

[0016] An update module, configured to dynamically update the second task information set according to the processing status of each task during the scheduling process.

[0017] According to another aspect of the present invention, there is provided an electronic device, which includes:

[0018] At least one processor; and

[0019] A memory communicatively connected to the at least one processor; wherein,

[0020] The memory stores a computer program executable by the at least one processor, and the computer program is executed by the at least one processor so that the at least one processor can execute the project scheduling method according to any embodiment of the present invention.

[0021] According to another aspect of the present invention, there is provided a computer-readable storage medium storing computer instructions for causing a processor to implement the project scheduling method according to any embodiment of the present invention when executed.

[0022] The technical solution of the embodiment of the present invention determines the first task information set; classifies tasks according to the first task information set to obtain a task classification set, which can avoid the problem of task blocking when tasks are executed; determines task priorities according to the task classification set, and allocates the first resource object according to the task priorities and the first task information set to obtain the second task information set. The determination of priorities can avoid resource preemption between tasks and trigger the problem of task conflict rollback mechanism. At the same time, the allocation of the first resource object can make the processing of tasks achieve the highest efficiency and the lowest resource consumption; schedules the project according to the second task information set, and dynamically updates the second task information set according to the processing status of each task during the scheduling process, which can ensure that the first resource object corresponding to each task is the least resource-consuming and the most efficient when scheduling tasks. This method classifies tasks according to the first task information set, determines the second task information set according to the classified tasks, and schedules the project through the second task information set, realizing a task scheduling method that can quickly find executable tasks and meet the project progress. While controlling the project progress risk, it can ensure the lowest total project cost and achieve resource savings.

[0023] It should be understood that the content described in this part is not intended to identify the key or important features of the embodiments of the present invention, nor is it used to limit the scope of the present invention. Other features of the present invention will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] To more clearly illustrate the technical solutions in the embodiments of the present invention, the following will briefly introduce the accompanying drawings required for the description of the embodiments. Obviously, the accompanying drawings in the following description are only some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other accompanying drawings can be obtained based on these drawings.

[0025] Figure 1 It is a flowchart of a project scheduling method provided by an embodiment of the present invention;

[0026] Figure 2 It is a task relationship diagram without dependency relationships provided by an embodiment of the present invention;

[0027] Figure 3 It is a task relationship diagram of linear dependency relationships provided by an embodiment of the present invention;

[0028] Figure 4 It is a task relationship diagram of merged dependency relationships provided by an embodiment of the present invention;

[0029] Figure 5 It is a task relationship diagram of branch - type dependency relationships provided by an embodiment of the present invention;

[0030] Figure 6 It is a directed acyclic graph of tasks provided by an embodiment of the present invention;

[0031] Figure 7 It is a flowchart of a Sprint cycle iteration provided by an embodiment of the present invention;

[0032] Figure 8 It is a schematic structural diagram of a project scheduling device provided by an embodiment of the present invention;

[0033] Figure 9 It is a schematic structural diagram of an electronic device for implementing the project scheduling method of the embodiments of the present invention. Detailed implementation manners

[0034] In order to enable those skilled in the art to better understand the solutions of the present invention, the following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only some of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the scope of protection of the present invention.

[0035] It should be noted that the terms "first", "second", etc. in the description, claims and the above-mentioned drawings of the present invention are used to distinguish similar objects, and do not necessarily describe a specific order or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances, so that the embodiments of the present invention described here can be implemented in an order other than those illustrated or described here. In addition, the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product or device comprising a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to these processes, methods, products or devices.

[0036] Figure 1 FIG. is a flowchart of a project scheduling method provided by an embodiment of the present invention. This embodiment is applicable to the situation of scheduling a project when resources are limited. This method can be executed by a project scheduling device, which can be implemented in the form of hardware and / or software, and the project scheduling device can be configured in any electronic device with network communication functions. As Figure 1 shown, the method includes:

[0037] S110. Determine a first task information set. The first task information set is used to characterize the dependency relationships among the tasks of the project. The project is used to characterize the task requirements for completing each task, the progress requirements of each task, and the indicators that the development pool where each task is located needs to achieve. The development pool consists of resource objects that complete tasks.

[0038] Among them, the project is the integrated information of the requirements and indicators that need to be achieved in the R & D or production plan generated when developing or producing a product.

[0039] Exemplarily, assume that the project is the development of an online education platform. Then the project includes: task requirements and the indicators that the tasks need to achieve. Among them, the task requirements are: Task A: Development of the user authentication module (depends on Task B); Task B: Database architecture design (no dependency, ES = 1); Task C: Front-end page optimization (high priority, no dependency). The indicators that the tasks need to achieve are to be completed within a preset time period.

[0040] Among them, the dependency relationships characterized by the first task information set include: no dependency relationship, linear dependency relationship, merge type dependency relationship, and branch type dependency relationship.

[0041] Among them, the no dependency relationship means that the completion of a task does not depend on other tasks. As Figure 2 shown, Task 1, Task 2, and Task 3 are independent of each other, and the completion of each does not depend on the others.

[0042] Among them, the linear dependency means that the execution of several tasks follows a preset order. For example, Figure 3 as shown, the execution of Task 3 depends on the completion of Task 2, and the execution of Task 2 requires the completion of Task 1 first.

[0043] Among them, the merge-type dependency means that the execution of a certain task depends on the data information provided by multiple completed tasks. For example, Figure 4 as shown, the execution of Task 3 requires the completion of Task 1 and Task 2.

[0044] Among them, the branch-type dependency means that after a certain task is completed, it provides data information for the completion of subsequent other tasks. For example, Figure 5 as shown, after Task 1 is completed, it provides data information for Task 2 and Task 3, and Task 2 and Task 3 are executed according to the data information provided by Task 1.

[0045] Exemplarily, as Figure 6 shown, there is a linear dependency among Task a, Task d, and Task g; there is a merge-type dependency among Task a, Task b, and Task e; there is a merge-type dependency among Task b, Task c, and Task f; there is a merge-type dependency among Task e, Task f, and Task h; there is a branch-type dependency among Task f, Task i, and Task h.

[0046] Specifically, according to the task requirements of each task in the project and the indicators that each task needs to achieve, the project is gradually split to obtain the precedence relationship between tasks, and the first task information set is constructed according to the precedence relationship.

[0047] Furthermore, the gradual splitting is carried out according to the dependency relationship between tasks to split the project.

[0048] Among them, the precedence relationship is used to represent whether the execution of the current task depends on the completion of other tasks. If there is a precedence relationship, there is a dependency relationship between the two tasks. As shown in Table 1, for Task A, its predecessor task is -, so Task A has no precedence relationship; for Task B, its predecessor task is A, so Task B has a precedence relationship.

[0049] Furthermore, the first task information set also includes the name of the task, the technical stack type of the task, and the requirement for the first resource object.

[0050] Exemplarily, as shown in Table 1, Task A is the predecessor task of Task B and Task D, and Task B is the predecessor task of Task C. It can be seen that Task A, Task B, and Task C have a linear dependency relationship, and the requirement for the first resource object also gradually increases with the progression of the tasks; there is a branch-type dependency relationship between Task A and Task D and Task B.

[0051] Table 1 Task Information

[0052]

[0053] S120. Classify the tasks according to the first task information set to obtain a task classification set. The task classification set includes: a first task set and a second task set. The execution of the tasks in the first task set depends on the completion degree of their associated prerequisite tasks, and the task chain composed of the tasks in the first task set is greater than or equal to a preset length. The execution of the tasks in the second task set depends on the completion degree of their associated prerequisite tasks, and the task chain composed of the tasks in the second task set is less than the preset length.

[0054] Among them, the prerequisite task is the task that needs to be completed before the task.

[0055] Among them, the preset length is calculated according to the dependency relationship of the tasks before classifying the tasks, that is, the preset length can be expressed as:

[0056] .

[0057] Among them, C 理论 is the maximum length of the task chain formed between tasks with a dependency relationship; ES i is the start time (ES) of the i-th task. The start time of the task is the earliest start time of task i. Among them, the earliest start time is the time corresponding to when the prerequisite task of task i is completed within the preset time requirement or within the preset time requirement and is passed to task i.

[0058] Specifically, calculate the preset length according to the first task information set, and classify the tasks according to the preset length. Add the tasks on the task chain with a task chain length greater than or equal to the preset length to the first task set; add the tasks on the task chain with a task chain length less than the preset length to the second task set.

[0059] Exemplarily, for tasks B and D in Table 1, the execution of both requires the completion of task A first, and the completion of task C depends on task B. Therefore, the preset length is the sum of the start times of tasks A, B, and C. The task chain that meets the preset length is tasks A, B, and C. Therefore, the first task set includes: tasks A, B, and C. The second task set includes: tasks A, D, and E. Task A is placed in both the first task set and the second task set because the completion of tasks D and B both require task A.

[0060] S130. Determine the task priorities according to the task classification set, and allocate the first resource object according to the task priorities and the first task information set to obtain the second task information set. The task priorities include: the first task priority and the second task priority; the first task priority is determined according to the task start times of the tasks in the first task set; the second task priority is determined according to the task float times and the priority function of the tasks in the second task set. The second task information set is a set used to represent the corresponding relationships between the tasks and the first resource object.

[0061] Among them, the determination of the task priorities is divided into two cases: If the task is a task in the first task set, then perform an ascending order sorting according to the task start times corresponding to each task, and determine the priorities according to the sorting results. If the task is a task in the second task set, then calculate the task float times of the tasks in the second task set, and determine the priorities of the tasks in the second task set according to the task float times and the priority function.

[0062] Among them, the priority function can be expressed by the following formula:

[0063] Priority(i)=1 / (TF i +1);

[0064] Among them, Priority(i) is the priority of the i-th task; TF i is the task float time of the i-th task.

[0065] Among them, the task start time is also called the earliest start time, and is used to represent the time corresponding to when the prerequisite task of the task is completed within the preset time requirement or within the preset time requirement and passed to the task.

[0066] Furthermore, the task start time (ES):

[0067] ;

[0068] Among them, h is the prerequisite task of task i; ES h is the task start time of task h; p i is the set of prerequisite tasks of task i; ES i is the task start time of task i.

[0069] Among them, the task completion time is also called the latest completion time, and is used to represent the time corresponding to when the subsequent task of the task is completed based on the deadline and passed to the task. The deadline is the duration corresponding to the total sprint period.

[0070] Furthermore, the task completion time (LF):

[0071] ;

[0072] where g is the successor task of task i; LF g is the task completion time of task g; is the set of successor tasks of task i, and the successor task is the task processed after task i; Z is the total number of sprint periods; LF i is the task completion time of task i.

[0073] Among them, the task float time represents the longest time required to complete the task.

[0074] Furthermore, the task float time (TF) can be expressed as: TF i =LF i -ES i .

[0075] Furthermore, the second task information set also includes the resource consumption corresponding to the first resource object.

[0076] Furthermore, the second task information set can be expressed as: Task A - First resource object 1 - X yuan per person-day. It is stored in the form of a dictionary, that is, dict = {"Task A": "First resource object 1": "X yuan per person-day", "Task B": "First resource object 2": "Y yuan per person-day"}.

[0077] Specifically, according to the association relationship between tasks in the first task set, determine the execution order of tasks to obtain the task priority. According to the task priority and the first task information set, match the resource object in the first set that can meet the task requirements and has the smallest resource consumption as the first resource object of the task. Corresponding the first resource object with the corresponding task and evaluating the resource consumption to obtain the second task information set.

[0078] Among them, the first set includes all resource objects within the project's affiliated team and the resource information corresponding to the resource objects.

[0079] Furthermore, the resource consumption evaluation is to calculate the total resources required to complete all projects according to the current first resource object and the corresponding task. If the total resource consumption exceeds the preset resource consumption, it is considered that the resource consumption is over-limit and resource consumption optimization is required. Evaluate the optimized plan. If it is satisfied, determine the second task information set according to the optimized resource object and the corresponding task.

[0080] Furthermore, the resource consumption evaluation is implemented through a resource optimization model, that is, evaluate the resource consumption of the first resource object according to the resource optimization model. If the requirements are met, construct the second task information set according to the first resource object and the corresponding task; if the requirements are not met, update the first resource object.

[0081] Among them, the resource optimization model can be expressed by the following formula:

[0082] ;

[0083] Among them, , take 1 when the first resource object k is used during the sprint period j, otherwise take 0; c k The single-period resource consumption of the first resource object k, where a single period refers to a sprint period; Z is the total number of sprint periods; n is the total number of first resource objects; m is the total number of tasks (m > n).

[0084] Furthermore, the constraint functions of the resource optimization model include: Each task must be assigned and only assigned once:

[0085] ;

[0086] Each first resource object can handle at most one task in the same sprint:

[0087] ;

[0088] The technology stack of the first resource object must cover the task requirements:

[0089] ;

[0090] The level of the first resource object needs to meet the minimum task requirements:

[0091] ;

[0092] Task i must start after all its prerequisite tasks are completed:

[0093] ;

[0094] Among them, s i Is defined by the allocation variable:

[0095] ;

[0096] Among them, m is the total number of tasks (m > n); n is the total number of first resource objects; Z is the number of sprint periods; c k The single-period resource consumption of the first resource object k; t i The technology stack type of task i; r i The level requirement of task i; l k The level of the first resource object k; S k The set of technology stacks mastered by the first resource object k; p i The set of prerequisite tasks of task i; , take 1 when task i is assigned to the first resource object k during the sprint period j, otherwise take 0; , which takes 1 when the first resource object k is used during the sprint period j, and 0 otherwise; , the number of sprint periods assigned to task i.

[0097] Among them, resource consumption optimization refers to traversing the resource objects in the first set that can complete the task and whose resource consumption is less than that of the first resource object, and replacing the first resource object with this resource object.

[0098] Among them, the first set contains resource objects that can complete the tasks in the project and the resource object information corresponding to the resource objects, and the resource objects among them can complete at least one task.

[0099] Among them, the resource object information includes: the name of the resource object, the development level, the possessed technology stack, resource consumption, etc., as shown in Table 2.

[0100] Table 2 Resource Object Information

[0101]

[0102] Furthermore, the matching of the first resource object needs to meet the following requirements: within each sprint period, the resource object only completes one task; the resource object level needs to meet the minimum requirements for task completion; the technology stack of the resource object must cover the task requirements.

[0103] Among them, the sprint period is an iterative cycle with a fixed duration, usually 1 - 4 weeks. During this period, the resource object processes a series of assigned tasks.

[0104] In the above steps, the time axis is discretized into independent sprint periods (Sprint 1~Z), and each period's resource pool is independent, which can meet the requirements of agile iteration.

[0105] Furthermore, the above steps can be obtained through the Scrum method. The Scrum method mainly includes two parts: the core framework and key activities. Among them, the core framework is used to sort out the requirements of the project; the key activities are used to determine the amount of tasks to be completed in each task sprint period.

[0106] Exemplarily, as Figure 7 shown, first, according to the project deadline, the deadline is divided into Z sprint periods. Within each sprint period, tasks are assigned according to the first task information set, and a task pool is generated. Each sprint period updates the task pool equipped for it at the initial stage of operation, determines the task priorities and matches the first resource object according to the first task information set. The tasks are processed according to the task priorities and the first resource object, and the task processing results are fed back. The task pool for the next sprint period is updated according to the feedback results.

[0107] Before each sprint, updating the task pool according to the feedback results is to prevent the subsequent processing of related tasks from being affected if no feedback is provided after a task fails to be processed.

[0108] Furthermore, as Figure 7 shown, the requirement assessment and decomposition of the project mainly involve: splitting the project according to the completion indicators of the project to obtain the factors affecting project scheduling, such as the number of tasks, task names, task dependencies, and resource object information, etc. As shown in Table 1 and Table 2.

[0109] S140. Schedule the project according to the second task information set.

[0110] Specifically, according to the second task information set, send the names of the tasks to be executed and the sprints they belong to to each first resource object. The first resource object processes the tasks according to the task names and the sprints where the tasks are located.

[0111] S150. Dynamically update the second task information set according to the processing status of each task during the scheduling process.

[0112] Specifically, when scheduling the project according to the second task information set, after each sprint is completed, obtain the processing status of each task in that sprint, generate a feedback result according to the processing status, update the tasks in the task pool for the next sprint and the corresponding first resource objects according to the feedback result, and adjust the second task information set.

[0113] Among them, the feedback result includes: the processing status of the tasks and the situation of the first resource objects. The processing status of the tasks includes: task processing failure, new task requirements, adjustment of task dependencies, etc. The situation of the first resource objects includes: resource object adjustment, new resource object, and resource object withdrawal, etc.

[0114] Furthermore, adjusting the second task information set needs to meet the requirement of minimizing the resource consumption of the reallocated resource objects while ensuring the stability of task processing in the first task set. Therefore, a resource update model is used to dynamically adjust the second task information according to the feedback result.

[0115] Among them, the resource update model can be expressed as:

[0116] ;

[0117] Among them, s i is the assigned sprint of task i in the second task information set; s i′ is the allocated sprint period for task i after calibration; λ is the stability weight for task processing in the first task set; C is the first task set (TF i = 0).

[0118] Furthermore, the constraint functions of the resource update model include: task reassignment constraint, resource dynamic availability constraint, dependency dynamic update constraint, time window constraint, and task protection constraint within the first task set.

[0119] Furthermore, the task reassignment constraint is used to allocate resource objects to tasks that have failed in processing, that is, for all tasks i ∈ F that failed in the (t - 1)-th sprint period t-1 , reallocate them to the t-th sprint period or a certain sprint period after that (j ≥ t), and the allocated resource objects need to be currently available resource objects (k ∈ D t ). Furthermore, the task reassignment constraint can be expressed as:

[0120] ;

[0121] where F t-1 is the set of tasks that failed in the (t - 1)-th sprint period, and F t-1 = {i | task i was not completed in the (t - 1)-th sprint period}. x ijk = 1 indicates that task i is allocated to the first resource object k in sprint period j; Z is the total number of sprint periods; D t is the set composed of the first resource objects corresponding to the tasks within the t-th sprint period.

[0122] Furthermore, the resource dynamic availability constraint is used to characterize that the resource objects added in the t-th sprint period (k ∈ D t \D t -1 ) cannot appear in the allocation records of historical sprint periods (j < t). Furthermore, the resource dynamic availability constraint can be expressed as:

[0123] ;

[0124] where y jk = 0 indicates that the first resource object k is not used within sprint period j; D t is the set composed of the first resource objects corresponding to the tasks within the t-th sprint period; D t-1 is the set composed of the first resource objects corresponding to the tasks within the (t - 1)-th sprint period.

[0125] Furthermore, the dependency dynamic update constraint characterizes that for task i ∈ ΔT with a changed dependency relationship t , its calibrated allocated sprint s i ′ must be later than all new predecessor tasks h ∈ p iThe completion time of '. Further, the dependency dynamic update constraint can be expressed as:

[0126] ;

[0127] where s i ' is the assigned sprint period of task i after calibration; s h ' is the assigned sprint period of the predecessor task h of task i after calibration; p i ' is the set composed of the predecessor tasks of task i after calibration; ΔT is the set of tasks whose changes occur in the t-th sprint period, and the changes can be: new tasks, failed tasks, and task dependency changes.

[0128] Further, the time window constraint is used to characterize that the calibration only affects the subsequent sprint periods. Further, the time window constraint can be expressed as:

[0129] .

[0130] Further, the task protection constraint within the first task set is used to characterize that task i ∈ C within the first task set must be assigned and completed within the latest completion time window [t, LF i after calibration. Further, the task protection constraint within the first task set can be expressed as:

[0131] .

[0132] Further, after updating the tasks and the first resource object within the second task information set, it is also necessary to re-update the priorities of the tasks, and then it is necessary to update the task start time, task end time, and task float time.

[0133] Among them, updating the task start time can be expressed as:

[0134] ;

[0135] Among them, ES i is the task start time of task i; ES i ' is the updated task start time of task i; ES h ' is the updated task start time of task h; task h is the predecessor task of task i; p i ' is the set of predecessor tasks of task i after update; ΔT is the set of tasks whose changes occur in the t-th sprint period.

[0136] Among them, updating the task end time can be expressed as:

[0137] ;

[0138] Among them, LF iThe end time of task i; LF i ′ is the updated end time of task i; LF g ′ is the updated end time of task g; task g is the successor task of task i; s i ′ is the allocated sprint period of task i after calibration; ΔT is the set of tasks whose composition changes in the t-th sprint period.

[0139] Among them, the updated task float time can be expressed as:

[0140] .

[0141] Optionally, determining the first task information set includes steps A1 - A2:

[0142] Step A1. Split the project according to the project requirement information to obtain task information.

[0143] Specifically, split the tasks according to the project requirement information, and determine the prerequisite task information of each task according to the requirements of each task, and use the prerequisite task information as the task information.

[0144] Among them, the prerequisite task information is the information of other tasks that need to be completed before the task.

[0145] Among them, the project requirement information can be that there are m tasks and n people are required to complete them, where m > n. The project requires that all task developments be completed within the Z - period sprint. Task information is given: requirements for the resource object level, the type of technology stack required for the task (1 task corresponds to only 1 type of technology stack), task dependencies (some tasks need to complete a certain or multiple prerequisite tasks before they can be developed). Resource object information is given: resource object level, the technology stacks mastered by the resource object (1 resource object can master multiple technology stacks), resource consumption of the resource object. The resource object can be flexibly scheduled, and the resource consumption is only calculated when the resource object is invested in the current sprint period. Assume that the project task information has been reasonably subdivided: in each sprint period, 1 resource object can correspond to 1 task, and 1 task is only assigned to 1 resource object. At this time, calculate the consumption of the resource object.

[0146] Step A2. Establish the association relationships of the tasks in the project according to the task information to obtain the first task information set. Among them, the association relationships include dependency relationships and parallel relationships.

[0147] Among them, the parallel relationship represents tasks that can be processed in parallel, such as Figure 6 tasks a, b, and c in.

[0148] Among them, the dependency relationship is the linear dependency relationship, the merge - type dependency relationship, and the branch - type dependency relationship among tasks.

[0149] Specifically, obtain the association relationships between tasks in the project according to the task information, and perform task association on each task according to the association relationships to obtain a first set of task information.

[0150] Exemplarily, as Figure 6 shown, there is a linear dependency relationship between task a, task d, and task g; there is a merge-type dependency relationship between task a, task b, and task e; there is a merge-type dependency relationship between task b, task c, and task f; there is a merge-type dependency relationship between task e, task f, and task h; there is a branch-type dependency relationship between task f, task i, and task h. Perform association on each task according to the obtained dependency relationships between tasks to obtain a first set of task information.

[0151] Optionally, determine the task priorities according to the task classification set, including steps B1 - B3:

[0152] Step B1: Determine the task start time of each task according to the association relationships between tasks in the first task set.

[0153] Among them, the start time of the task is the earliest start time of the task.

[0154] Specifically, according to the association relationships between tasks in the first task set, calculate the task start time of the predecessor tasks of the task, and determine the task start time of the task according to the maximum task start time of the predecessor tasks.

[0155] Furthermore, the task start time (ES) can be expressed by the following formula:

[0156] ;

[0157] where h is the predecessor task of task i; ES h is the task start time of task h; p i is the set of predecessor tasks of task i; ES i is the task start time of task i.

[0158] Exemplarily, taking the tasks in Table 1 as an example, tasks A and E have no predecessor tasks, so the task start times of tasks A and E are 1; the predecessor tasks of tasks B and D are A, so the task start times of tasks B and D are 2; the predecessor tasks of task C are tasks A and B, the task start time of task A is 1, and the task start time of task B is 2, so the task start time of task C takes the maximum of the task start times of tasks A and B and adds 1, so the task start time of task C is 3.

[0159] Step B2: Sort according to the task start time in a preset order to obtain the priorities of each task in the first task set.

[0160] Among them, the preset order is in ascending order of the task start time.

[0161] Specifically, sort the task start times in ascending order. The task with a smaller task start time has a higher priority, so as to obtain the priorities of the tasks in the first task set.

[0162] Step B3: Determine the task float time of each task in the second task set, and calculate the priority of each task in the second task set according to the priority function. The priority function consists of the task float time.

[0163] Specifically, determine the task start time and task completion time of each task in the second task set, subtract the task start time from the task completion time to obtain the task float time. Input the task float time into the priority function to determine the task priority of each task in the second task set.

[0164] In the above steps, the priorities of the tasks in the second task set are determined by the task float time. The priority of the task with a short task float time (TF→0) approaches 1, and the assigned weight is significantly higher than that of the task with a long task float time (the priority approaches 0 when TF→∞), ensuring that high-priority tasks are completed first and preventing them from being converted into the first task. Dynamically adjusting the second task allocation order through the priority function can avoid resource waste.

[0165] Further, if the task is the last task in the second task set, the task completion time of this task is the total number of sprint periods; if the task is not the last task in the second task set, the task completion time of this task is the minimum value among the task completion times of the subsequent tasks - 1.

[0166] Among them, the task completion time (LF) can be expressed by the following formula:

[0167] ;

[0168] Among them, g is the subsequent task of task i; LF g is the task completion time of task g; is the set of subsequent tasks of task i; Z is the number of sprint periods; LF i is the task completion time of task i.

[0169] Optionally, after determining the task float time of each task in the second task set and calculating the priority of each task in the second task set according to the priority function, steps C1 - C4 are included:

[0170] Step C1: Screen the first set according to the first task information set, remove the resource objects that do not meet the requirements, and obtain the second set.

[0171] Among them, the first set includes all resource objects within the project's affiliated team and the resource information corresponding to the resource objects.

[0172] Specifically, according to the execution requirements of the tasks in the first task information set, eliminate the resource objects in the first set that do not meet the requirements to obtain the second set.

[0173] Exemplarily, the process of determining the second set is as follows: Input: task set T, first set D; for each task i ∈ T, generate the second set :

[0174] ;

[0175] Among them, S k The set of technical stacks mastered by the first resource object k; r i The level requirement of task i; l k The level of the first resource object k; t i The technical stack type of task i.

[0176] Furthermore, if , report an error "There is no feasible developer for task i".

[0177] Furthermore, pre-sort the second set according to resource consumption: Sort each D i in ascending order according to resource consumption c k to ensure that the first resource object with the lowest resource consumption is directly selected for subsequent allocation.

[0178] Step C2: Match according to the completion requirements and task priorities of each task in the first task information set from the second set to obtain the corresponding third set.

[0179] Among them, the second set includes all resource objects that can complete the tasks.

[0180] Specifically, match the resource objects that can complete the tasks from the second set according to the completion requirements of each task in the first task information set, screen the matched resource objects according to the task priorities to obtain the third object resources, and generate the third set from all the obtained third resource objects.

[0181] Furthermore, if the third object resources cannot be allocated, terminate immediately and report an error "The task cannot be allocated".

[0182] Further, before matching the third resource object, it also includes: inputting the number of sprint periods Z; defining the availability matrix, the sprint periods and buffer periods of the tasks in the first task set according to the sprint periods.

[0183] Among them, the availability matrix is used to evaluate the availability of each resource object in the second set, and the availability matrix can be expressed by the following formula:

[0184] ;

[0185] Among them, the sprint period of the tasks in the first task set: [1, C 理论 .

[0186] Among them, the buffer period is: [C 理论 + 1, Z]. If the buffer period is less than <0, immediately report an error "The first task is overdue, and the sprint period needs to be extended". The buffer period is a period reserved after the sprint period for completing some work that was not completed during the sprint period, or for testing, debugging, optimizing the tasks in the project, and making preparations for delivery, etc.

[0187] Further, dynamically adjust the remaining buffer period B according to C 实际 = Z - C 实际 , if B 实际 < 0, trigger an alarm.

[0188] In the above steps, the dynamic calibration of the buffer period can automatically evaluate the progress risk during task processing, support the extension of the sprint period or task trimming, and ensure the controllability of the project.

[0189] Step C3: Sort each resource object in the third set according to resource consumption, and use the resource object with the smallest resource consumption as the first resource object.

[0190] Specifically, sort in ascending order according to the resource consumption corresponding to each resource object in the third set, and use the resource object with the smallest resource consumption as the first resource object.

[0191] Further, if the task belongs to the first task set, the matching of the first resource object can be achieved through the following steps: Assume the task sequence is L * , the availability matrix is A. Calculate the earliest available sprint period for each task i ∈ L *, and traverse in the interval j ∈ [j i , Z] from the earliest to the latest sprint period: For each resource object k ∈ D i (already sorted in ascending order according to resource consumption), if A j-1, k = 1, then immediately allocate: x ijk = 1, s i = j, A j-1, k = 0, and mark the resource occupancy x ijk* = 1, yjk* = 1, s i = j.

[0192] Among them, the earliest allocable sprint period can be expressed by the following formula:

[0193] ;

[0194] Among them, s h is the allocation sprint period of task h in the second task information set.

[0195] In the above steps, the first task (TF = 0) is allocated in ascending order of ES during the preprocessing stage, and the first resource object is locked within its time window (ES to LF) to form a "non-preemptible" resource pool. The first task is completed 100% on schedule. If an attempt is made to occupy it, the system triggers a rollback operation (releasing resources based on set difference operations) to ensure the integrity of the first task.

[0196] Furthermore, if the task belongs to the second task set, the matching of the first resource object can be achieved through the following steps: For each task i ∈ / C in the second task set (in ascending order of TF), and calculate the earliest allocable sprint. In the interval j ∈ [j i , Z], select available resource objects in ascending order of the resource consumption of the resource objects. If there is insufficient resources, record the unallocated tasks, but do not block the first task.

[0197] Step C4: Associate the first resource object with the corresponding task to obtain the second task information set.

[0198] Specifically, establish a connection between the first resource object and the corresponding executing task to obtain the second task information set.

[0199] Furthermore, the second task information set can be represented by a dictionary, that is, dict = {"Task A": "Resource Object 1", "Task B": "Resource Object 2",...}.

[0200] Optionally, before scheduling the project according to the second task information set, it also includes steps D1 - D2:

[0201] Step D1: Traverse the second task information set and compare the first resource object corresponding to each task therein with the second resource object. Among them, the second resource object is the resource object within the first set.

[0202] Specifically, if the first resource consumption is greater than or equal to the preset resource consumption, it is considered that there is a first resource object with high resource consumption in the second task information set. Therefore, traverse the second task information set to obtain the first resource object corresponding to each task, determine the corresponding resource consumption according to the obtained first resource object, and compare the resource consumption of the obtained first resource object with the resource consumption corresponding to the second resource object.

[0203] Further, the comparison operation can be implemented in the following way: check whether there exists k′∈D and satisfies c k′ <c ki and during the sprint period j i is available (y jik′ =0).

[0204] where k′ is the second resource object; D is the first set; c k′ is the resource consumption corresponding to the second resource object; c ki is the resource consumption corresponding to the first resource object; y jik′ =0 means that the second resource object is not allocated during the sprint period j i .

[0205] Step D2: If the resource consumption corresponding to the first resource object is greater than the resource consumption corresponding to the second resource object, then replace the first resource object in the second task information set with the second resource object.

[0206] Specifically, if the resource consumption corresponding to the first resource object is greater than the resource consumption corresponding to the second resource object, and the second resource object can meet the task requirements, then replace the first resource object in the second task information set with the second resource object.

[0207] Further, the replacement operation can be implemented by the following formula:

[0208] .

[0209] Further, continuously iterate the resource consumption until the preset resource consumption is met.

[0210] Exemplarily, assume that the first resource object matched by task A is resource object 3, and its corresponding resource consumption is 3000; the second resource object is resource object 1, and its corresponding resource consumption is 800; the resource consumption of resource object 1 is less than that of resource object 3, and resource object 1 can meet the requirements of task A for the technology stack and development level, then replace resource object 3 with resource object 1.

[0211] Further, continuously iterating the resource consumption until the preset resource consumption is met includes: evaluating the total resource consumption of each first resource object in the replaced second task information set through a resource optimization model to obtain the first resource consumption; comparing the obtained first resource consumption with the preset resource consumption to evaluate whether the first resource consumption meets the development requirements. If not, continue to replace the resource objects until the preset resource consumption is met.

[0212] Among them, the resource optimization model can be expressed by the following formula:

[0213] ;

[0214] Among them, , take 1 when the first resource object k is used within the sprint period j, otherwise take 0; c k The single-period resource consumption of the first resource object k; Z is the total number of sprint periods; n is the total number of first resource objects; m is the total number of tasks (m > n).

[0215] The above steps for secondary resource optimization can find the theoretical optimal solution of the project total cost, enabling the project to reduce resource consumption on the basis of being completed quickly.

[0216] Optionally, scheduling the project according to the second task information set includes steps E1 - E4:

[0217] Step E1, if the first task trigger fails, release the processing object. Among them, the processing object is the resource object for processing the second task.

[0218] Specifically, if the first task trigger fails, it indicates that the first task cannot be triggered. Roll back the first task and release the processing object within this sprint period.

[0219] Step E2, match the processing object with the first task.

[0220] Specifically, obtain the resource object information of the processing object and compare the resource object information with the task information in the first task information set.

[0221] Step E3, if the match is successful, process the first task through the processing object.

[0222] Specifically, if the processing object matches the first task successfully, send a first task processing request to the processing object, and the processing object processes the first task.

[0223] Step E4, if the match fails, give an early warning.

[0224] Specifically, if the matching fails, it is considered that the first task cannot be completed, and a warning message indicating that the first task cannot be completed within the Z period is displayed on the display interface.

[0225] The technical solution of this embodiment determines the first task information set; classifies the tasks according to the first task information set to obtain a task classification set, which can avoid the problem of task blocking during task execution; determines the task priority according to the task classification set, and allocates the first resource object according to the task priority and the first task information set to obtain the second task information set. The determination of the priority can avoid resource preemption between tasks and trigger the task conflict rollback mechanism problem. At the same time, the allocation of the first resource object can make the task processing achieve the highest efficiency and the lowest resource consumption; schedules the project according to the second task information set, and dynamically updates the second task information set according to the processing status of each task during the scheduling process, which can ensure that the first resource object corresponding to each task during task scheduling consumes the least resources and has the highest efficiency. This method classifies the tasks according to the first task information set, determines the second task information set according to the classified tasks, and schedules the project through the second task information set, realizing a task scheduling method that can quickly find executable tasks and meet the project progress. While controlling the project progress risk, it can ensure the lowest total project cost and achieve resource savings.

[0226] Figure 8 It is a schematic structural diagram of a project scheduling device provided by an embodiment of the present invention. This embodiment is applicable to the situation of scheduling a project when resources are limited. The project scheduling device can be implemented in the form of hardware and / or software, and the project scheduling device can be configured in any electronic device with network communication functions. Such as Figure 8 As shown, the device includes: a first task information set determination module 210, a task classification set determination module 220, a second task information set determination module 230, a scheduling module 240, and an update module 250, where:

[0227] The first task information set determination module 210: is used to determine the first task information set; the first task information set is used to represent the dependency relationship between tasks of the project; the project is used to represent the task requirements for completing each task, the progress requirements of each task, and the indicators that the development pool where each task is located needs to reach; the development pool is composed of resource objects for completing tasks;

[0228] Task Classification Set Determination Module 220: It is used to classify tasks according to the first task information set to obtain a task classification set; the task classification set includes: a first task set and a second task set; the execution of tasks in the first task set depends on the completion degree of their associated prerequisite tasks, and the task chain composed of tasks in the first task set is greater than or equal to a preset length; the execution of tasks in the second task set depends on the completion degree of their associated prerequisite tasks, and the task chain composed of tasks in the second task set is less than the preset length.

[0229] Second Task Information Set Determination Module 230: It is used to determine task priorities according to the task classification set, and allocate the first resource object according to the task priorities and the first task information set to obtain a second task information set; the task priorities include: a first task priority and a second task priority; the first task priority is determined according to the task start time of each task in the first task set; the second task priority is determined according to the task float time and the priority function of each task in the second task set; the second task information set is a set used to represent the corresponding relationship between each task and the first resource object.

[0230] Scheduling Module 240: It is used to schedule the project according to the second task information set.

[0231] Update Module 250: It is used to dynamically update the second task information set according to the processing status of each task during the scheduling process.

[0232] Optionally, the first task information set determination module 210 includes:

[0233] First Task Set Determination Unit: It is used to split the project according to the project requirement information to obtain task information.

[0234] First Task Information Set Determination Unit: It is used to obtain the association relationship of each task of the project according to the task information to obtain the first task information set; the association relationship includes a dependency relationship and a parallel relationship.

[0235] Optionally, the second task information set determination module 230 includes:

[0236] Start Time Determination Unit: It is used to determine the task start time of each task according to the association relationship between tasks in the first task set.

[0237] Priority Determination Unit: It is used to sort the tasks in the first task set according to the task start time in a preset order to obtain the priorities of each task in the first task set.

[0238] Priority determination unit: Determine the task floating time of each task in the second task set, and calculate the priority of each task in the second task set according to the priority function; the priority function consists of the task floating time.

[0239] Optionally, the project scheduling device includes:

[0240] Second set determination unit: Used to screen the first set according to the first task information set, remove resource objects that do not meet the requirements, and obtain the second set;

[0241] Third resource object determination unit: Used to match according to the completion requirements and task priorities of each task in the first task information set, and obtain the corresponding third set from the second set;

[0242] First resource object determination unit: Used to sort each resource object in the third set according to resource consumption, and use the resource object with the smallest resource consumption as the first resource object;

[0243] Second task information set determination unit: Used to associate the first resource object with the corresponding task to obtain the second task information set.

[0244] Optionally, the project scheduling device includes:

[0245] Resource object comparison and determination module: Used to traverse the second task information set, and compare the first resource object corresponding to each task therein with the second resource object; the second resource object is the resource object in the first set;

[0246] Replacement module: Used to replace the first resource object in the second task information set with the second resource object if the resource consumption corresponding to the first resource object is greater than the resource consumption corresponding to the second resource object.

[0247] Optionally, the scheduling module 240 includes:

[0248] Release processing object determination unit: Used to release the processing object if the first task fails to trigger; the processing object is the resource object for processing the second task;

[0249] Matching unit: Used to match the processing object with the first task;

[0250] Processing unit: Used to process the first task through the processing object if the match is successful;

[0251] Warning unit: Used to give a warning if the match fails.

[0252] The project scheduling device provided in the embodiments of the present invention can execute the project scheduling method provided in any of the above embodiments of the present invention, and has the corresponding functions and beneficial effects for executing the project scheduling method. For the detailed process, refer to the related operations of the project scheduling method in the foregoing embodiments.

[0253] Figure 9 FIG. is a schematic structural diagram of an electronic device for implementing the project scheduling method according to an embodiment of the present invention. The electronic device is intended to represent various forms of digital computers, such as, for example, a laptop computer, a desktop computer, a workbench, a personal digital assistant, a server, a blade server, a mainframe computer, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as, for example, a personal digital processor, a cellular phone, a smart phone, a wearable device (such as a helmet, glasses, a watch, etc.) and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present invention described and / or claimed herein.

[0254] As Figure 9 shown, the electronic device 10 includes at least one processor 11, and a memory communicatively connected to the at least one processor 11, such as a read-only memory (ROM) 12, a random access memory (RAM) 13, etc. The memory stores a computer program executable by the at least one processor. The processor 11 can perform various appropriate actions and processes according to the computer program stored in the read-only memory (ROM) 12 or the computer program loaded from the storage unit 18 into the random access memory (RAM) 13. In the RAM 13, various programs and data required for the operation of the electronic device 10 can also be stored. The processor 11, the ROM 12, and the RAM 13 are connected to each other via a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.

[0255] Multiple components in the electronic device 10 are connected to the I / O interface 15, including: an input unit 16, such as a keyboard, a mouse, etc.; an output unit 17, such as various types of displays, speakers, etc.; a storage unit 18, such as a magnetic disk, an optical disk, etc.; and a communication unit 19, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 19 allows the electronic device 10 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0256] The processor 11 can be various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The processor 11 executes the various methods and processes described above, such as the project scheduling method.

[0257] In some embodiments, the project scheduling method can be implemented as a computer program, which is tangibly contained in a computer-readable storage medium, such as the storage unit 18. In some embodiments, part or all of the computer program can be loaded and / or installed onto the electronic device 10 via the ROM 12 and / or the communication unit 19. When the computer program is loaded into the RAM 13 and executed by the processor 11, one or more steps of the project scheduling method described above can be executed. Alternatively, in other embodiments, the processor 11 can be configured to execute the project scheduling method by any other suitable means (e.g., by means of firmware).

[0258] The various embodiments of the systems and technologies described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a dedicated or general-purpose programmable processor, and can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit the data and instructions to the storage system, the at least one input device, and the at least one output device.

[0259] The computer programs for implementing the methods of the present invention can be written in any combination of one or more programming languages. These computer programs can be provided to the processors of general-purpose computers, special-purpose computers, or other programmable data processing devices, such that when the computer programs are executed by the processors, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The computer programs can be executed entirely on the machine, partially on the machine, as an independent software package partially on the machine and partially on a remote machine, or entirely on a remote machine or server.

[0260] In the context of the present invention, a computer-readable storage medium can be a tangible medium that can contain or store a computer program for use by or in connection with an instruction execution system, apparatus, or device. The computer-readable storage medium can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any suitable combination of the foregoing. Alternatively, the computer-readable storage medium can be a machine-readable signal medium. More specific examples of the machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0261] To provide for interaction with a user, the systems and techniques described herein can be implemented on an electronic device having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the electronic device. Other kinds of devices can also be used to provide for interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, speech input, or tactile input).

[0262] The systems and techniques described herein can be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer having a graphical user interface or a web browser through which the user can interact with an implementation of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), a blockchain network, and the Internet.

[0263] A computing system may include a client and a server. The client and the server are generally far from each other and usually interact via a communication network. The relationship between the client and the server is created by computer programs running on respective computers and having a client-server relationship with each other. The server may be a cloud server, also known as a cloud computing server or a cloud host, which is a host product in the cloud computing service system, and solves the defects of difficult management and weak business scalability existing in traditional physical hosts and VPS services.

[0264] It should be understood that various forms of the processes shown above can be used, steps can be reordered, added or deleted. For example, the steps described in the present invention can be executed in parallel, sequentially or in different orders, as long as the desired results of the technical solution of the present invention can be achieved, and no limitation is made herein.

[0265] The above specific embodiments do not constitute a limitation on the protection scope of the present invention. Those skilled in the art should understand that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions and improvements made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.

Claims

1. A project scheduling method, characterized in that, including: determine the first task information set; the first task information set is used to characterize the dependency relationships among the tasks of the project; the project is used to characterize the task requirements for completing each task, the progress requirements for each task, and the indicators that the development pool where each task is located needs to achieve; the development pool consists of resource objects for completing tasks; classify the tasks according to the first task information set to obtain a task classification set; the task classification set includes: a first task set and a second task set; the execution of the tasks in the first task set depends on the completion degree of their associated predecessor tasks, and the task chain composed of the tasks in the first task set is greater than or equal to a preset length; the execution of the tasks in the second task set depends on the completion degree of their associated predecessor tasks, and the task chain composed of the tasks in the second task set is less than the preset length; determine the task priorities according to the task classification set, and allocate the first resource objects according to the task priorities and the first task information set to obtain a second task information set; the task priorities include: a first task priority and a second task priority; the first task priority is determined according to the task start times of the tasks in the first task set; the second task priority is determined according to the task float times and the priority function of the tasks in the second task set; the second task information set is a set used to characterize the corresponding relationships between the tasks and the first resource objects; schedule the project according to the second task information set; dynamically update the second task information set according to the processing status of each task during the scheduling process.

2. The method according to claim 1, characterized in that, The determination of the first task information set includes: split the project according to the project requirement information to obtain task information; obtain the first task information set by establishing the association relationships among the tasks of the project according to the task information; the association relationships include dependency relationships and parallel relationships.

3. The method according to claim 1, characterized in that, The determination of the task priorities according to the task classification set includes: determine the task start times of each task according to the association relationships among the tasks in the first task set; sort the tasks in the first task set according to the task start times in a preset order to obtain the priorities of the tasks in the first task set; determine the task float times of each task in the second task set, and calculate the priorities of the tasks in the second task set according to the priority function; the priority function consists of task float times.

4. The method according to claim 3, characterized in that, After determining the task float times of each task in the second task set and calculating the priorities of the tasks in the second task set according to the priority function, it includes: screen the first set according to the first task information set, remove the resource objects that do not meet the requirements, and obtain a second set; match from the second set according to the completion requirements of each task in the first task information set and the task priorities to obtain a corresponding third set; sort the resource objects in the third set according to the resource consumption, and use the resource object with the smallest resource consumption as the first resource object; Associate the first resource object with the corresponding task to obtain a second task information set.

5. The method according to claim 1, wherein Before scheduling the project according to the second task information set, it further includes: Traverse the second task information set, and compare the first resource object corresponding to each task therein with the second resource object; the second resource object is the resource object within the first set. If the resource consumption corresponding to the first resource object is greater than the resource consumption corresponding to the second resource object, replace the first resource object in the second task information set according to the second resource object.

6. The method according to claim 1, characterized in that, Scheduling the project according to the second task information set includes: If the first task fails to trigger, release the processing object; the processing object is the resource object for processing the second task. Match the processing object with the first task. If the match is successful, process the first task through the processing object. If the match fails, give an alarm.

7. A project scheduling device, characterized in that, It includes: The first task information set determination module is used to determine the first task information set. The first task information set is used to represent the dependency relationship between tasks of the project. The project is used to represent the task requirements for completing each task, the progress requirements of each task, and the indicators that the development pool where each task is located needs to achieve; the development pool is composed of resource objects for completing tasks. The task classification set determination module is used to classify tasks according to the first task information set to obtain a task classification set. The task classification set includes: the first task set and the second task set; the execution of tasks in the first task set depends on the completion degree of their associated predecessor tasks, and the task chain composed of tasks in the first task set is greater than or equal to the preset length; the execution of tasks in the second task set depends on the completion degree of their associated predecessor tasks, and the task chain composed of tasks in the second task set is less than the preset length. The second task information set determination module is used to determine the task priority according to the task classification set, and allocate the first resource object according to the task priority and the first task information set to obtain the second task information set; the task priority includes: the first task priority and the second task priority; the first task priority is determined according to the task start time of each task in the first task set; the second task priority is determined according to the task float time and the priority function of each task in the second task set; the second task information set is used to represent the set of corresponding relationships between each task and the first resource object. The scheduling module is used to schedule the project according to the second task information set. The update module is used to dynamically update the second task information set according to the processing status of each task during the scheduling process.

8. The device according to claim 7, characterized in that, The second task information set determination module includes: The start time determination unit is used to determine the task start time of each task according to the association relationship between tasks in the first task set. The priority determination unit is used to sort according to the task start time in a preset order to obtain the priority of each task in the first task set. A completion time determination unit for determining the task float time of each task in the second task set; A priority determination unit for determining the task float time of each task in the second task set, and calculating the priority of each task in the second task set according to a priority function to obtain the priority of each task in the second task set.

9. An electronic device, characterized in that, The electronic device includes: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program executable by the at least one processor, and the computer program is executed by the at least one processor so that the at least one processor can execute the project scheduling method according to any one of claims 1-6.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions for causing a processor to implement the project scheduling method according to any one of claims 1-6 when executed.

Citation Information

Patent Citations

  • Aerospace mission demand acceptance model for multi-client application

    CN116822915A

  • Task scheduling method and device, electronic equipment, storage medium and program product

    CN117234693A

  • Task scheduling method and device, equipment and medium

    CN117608799A

  • Construction engineering project management method and system based on Internet of Things

    CN118378858A

  • Intelligent construction period management method and system based on BIM

    CN118411001A