Project scheduling method, device, electronic device and storage medium

By classifying and prioritizing tasks, dynamically updating resource objects, the problem of low task allocation efficiency is solved, efficient task scheduling and resource utilization is achieved, and project progress and cost are ensured.

CN120258464BActive Publication Date: 2025-08-19NANJING HUADUN ELECTRIC POWER INFORMATION SAFETY EVALUATION CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510645354.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-05-20
Publication Date
2025-08-19
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 set, the classifying tasks are the first task set and the second task set, and they are allocated according to the task priority and resource object information, and the task scheduling is dynamically updated to avoid task blockage and resource preemption.

Benefits of technology

It realizes efficient task scheduling and resource conservation, ensures stable project progress and reduces total costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120258464B_ABST
    Figure CN120258464B_ABST
Patent Text Reader

Abstract

The present invention discloses a project scheduling method, device, electronic device, and storage medium. The method includes: determining a first task information set; classifying tasks according to the first task information set to obtain a task classification set; determining task priorities according to the task classification set, and allocating first resource objects according to the task priorities and the first task information set to obtain a second task information set; scheduling projects according to the second task information set; and dynamically updating the second task information set based on the processing status of each task during the scheduling process. The method classifies tasks according to the first task information set, determines a second task information set based on the classified tasks, and schedules projects using the second task information set, thereby implementing a method for rapidly finding executable tasks that meet the project schedule. This method can control project schedule risks while minimizing total project costs and conserving resources.
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 in particular to a project scheduling method, device, electronic equipment and storage medium. Background Art

[0002] Task scheduling is a critical issue in software development project management, especially within teams employing agile development methodologies. As projects expand in scale and complexity, efficiently allocating tasks to primary resources to ensure the achievement of project goals and optimal resource utilization becomes a significant challenge for project managers and development teams. Especially within each sprint, task allocation requires comprehensive consideration of multiple factors, including task value, workload, primary resource capabilities, efficiency, and resource availability.

[0003] Traditional task allocation methods often rely on simple rotational or empirical approaches, failing to scientifically consider the value of the task, the capabilities and efficiency of the primary resource, and the compatibility between the task and the primary resource. This approach not only leads to inefficient task allocation but also wastes task value, fails to fully utilize the primary resource's capabilities, and impacts the overall project progress and quality. 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, a project scheduling method is provided, comprising:

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

[0007] Classifying 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 needs to depend on the completion 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 tasks in the second task set needs to depend on the completion of their associated predecessor tasks, and the task chain composed of the tasks in the second task set is less than the preset length;

[0008] Determine a task priority based on the task classification set, and allocate a first resource object based on the task priority and the first task information set to obtain a second task information set; the task priority includes: a first task priority and a second task priority; the first task priority is determined based on the task start time of each task in the first task set; the second task priority is determined based on the task float time and priority function of each task in the second task set; the second task information set is used to represent a set of corresponding relationships between each task and the first resource object;

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

[0010] The second task information set is dynamically updated according to the processing status of each task in the scheduling process.

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

[0012] A first task information set determination module is configured to determine a first task information set; the first task information set is configured to represent the dependencies between tasks in a project; the project is configured to represent the task requirements and progress requirements for completing each task, as well as the indicators that need to be achieved by the development pool in which each task resides; the development pool is composed of resource objects for completing tasks;

[0013] A task classification set determination module is 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 tasks in the first task set needs to depend on the completion 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 tasks in the second task set needs to depend on the completion of their associated predecessor tasks, and the task chain composed of the tasks in the second task set is less than a preset length;

[0014] a second task information set determination module, configured to determine a task priority based on the task classification set, and to allocate a first resource object based on the task priority and the first task information set, thereby obtaining a second task information set; the task priority includes: a first task priority and a second task priority; the first task priority is determined based on the task start time of each task in the first task set; the second task priority is determined based on the task float time and priority function of each task in the second task set; the second task information set is used to represent a set of corresponding relationships 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 updating module is used to dynamically update the second task information set according to the processing status of each task in the scheduling process.

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

[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 that can be executed by the at least one processor. The computer program is executed by the at least one processor to enable the at least one processor to execute the project scheduling method described in any embodiment of the present invention.

[0021] According to another aspect of the present invention, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a processor to implement the project scheduling method described in any embodiment of the present invention when executed.

[0022] The technical solution of the embodiment of the present invention determines a 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 the tasks are executed; 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 a second task information set. The determination of the priority can avoid resource preemption between tasks, which may cause 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 has the lowest resource consumption and the highest efficiency when the tasks are scheduled. The 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 method for quickly finding executable tasks that meet the project schedule, controlling the project schedule risk, and ensuring the lowest total project cost and achieving resource conservation.

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

[0024] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

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

[0026] Figure 2 A non-dependency task relationship diagram provided by an embodiment of the present invention;

[0027] Figure 3 A linear dependency task relationship diagram provided by an embodiment of the present invention;

[0028] Figure 4 A combined dependency task relationship diagram provided by an embodiment of the present invention;

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

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

[0031] Figure 7 A Sprint cycle iteration flow chart provided in an embodiment of the present invention;

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

[0033] Figure 9 A schematic diagram of the structure of an electronic device for implementing the project scheduling method according to an embodiment of the present invention. DETAILED DESCRIPTION

[0034] In order to enable those skilled in the art to better understand the solutions of the present invention, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the embodiments described are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts should fall within the scope of protection of the present invention.

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

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

[0037] S110: Determine a first task information set. The first task information set is used to represent the dependencies between tasks in a project. A project represents the task requirements and progress requirements for completing each task, as well as the performance targets that must be achieved by the development pool in which each task resides. The development pool consists of resource objects required to complete tasks.

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

[0039] For example, let's assume the project is developing an online education platform. The project includes task requirements and target targets. Task requirements include: Task A: User authentication module development (depends on Task B); Task B: Database architecture design (no dependencies, ES=1); Task C: Front-end page optimization (high priority, no dependencies). The target targets are completion within a preset timeframe.

[0040] The dependencies between tasks represented by the first task information set include: no dependency, linear dependency, merge dependency, and branch dependency.

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

[0042] Among them, the linear dependency relationship is the execution of several tasks in a preset order, such as 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 dependency relationship is that the execution of a task depends on the data information provided by multiple completed tasks, such as 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 relationship provides data information for the completion of other subsequent tasks after a task is completed, such as 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] For example, Figure 6 As shown in the figure, there is a linear dependency relationship between tasks a, d and g; there is a merged dependency relationship between tasks a, b and e; there is a merged dependency relationship between tasks b, c and f; there is a merged dependency relationship between tasks e, f and h; there is a branched dependency relationship between tasks f, i and h.

[0046] Specifically, according to the task requirements and indicators that each task needs to achieve in the project, the project is split level by level to obtain the pre-relationships between tasks, and a first task information set is constructed based on the pre-relationships.

[0047] Furthermore, the step-by-step splitting is to split the project according to the dependencies between tasks.

[0048] The predecessor relationship is used to indicate whether the execution of the current task depends on the completion of other tasks. If a predecessor relationship exists, then there is a dependency relationship between the two tasks. As shown in Table 1, for Task A, if its predecessor task is -, then Task A does not have a predecessor relationship; for Task B, if its predecessor task is A, then Task B does have a predecessor relationship.

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

[0050] For example, 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. From this, it can be seen that Task A, Task B and Task C are in a linear dependency relationship, and the demand for the first resource object gradually increases with the progression of tasks; Task A has a branching dependency relationship with Task D and Task B.

[0051] Table 1 Task information

[0052]

[0053] S120: 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 of their associated predecessor tasks, and the task chain formed by the 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 of their associated predecessor tasks, and the task chain formed by the tasks in the second task set is less than a preset length.

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

[0055] The preset length is calculated based on the task dependencies before classifying the tasks, that is, the preset length can be expressed as:

[0056] .

[0057] Among them, C 理论 The maximum length of the task chain formed between tasks with dependencies; ES i is the task start time (ES) of task i, where the task start time is the earliest start time of task i. The earliest start time is the time when the predecessor task of task i is delivered to task i after it is completed within the preset time requirement or within the preset time requirement.

[0058] Specifically, the preset length is calculated based on the first task information set, and the tasks are classified according to the preset length. Tasks on the task chain with a task chain length greater than or equal to the preset length are added to the first task set; tasks on the task chain with a task chain length less than the preset length are added to the second task set.

[0059] For example, in Table 1, Task B and Task D both require the completion of Task A before they can be executed, while Task C's completion 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 consists of 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 and second task sets because the completion of both Tasks D and B requires Task A.

[0060] S130: Determine task priorities based on the task classification set, and allocate first resource objects based on the task priorities and the first task information set, thereby obtaining a second task information set. Task priorities include a first task priority and a second task priority. The first task priority is determined based on the task start time of each task in the first task set; the second task priority is determined based on the task float time and priority function of each task in the second task set. The second task information set is used to represent the corresponding relationship between each task and the first resource object.

[0061] The task priority is determined in two ways: If the task is in the first task set, the task start time is sorted in ascending order, and the priority is determined based on the sorting result. If the task is in the second task set, the task float time of each task in the second task set is calculated, and the priority of each task in the second task set is determined based on the task float time and the priority function.

[0062] The priority function can be expressed as follows:

[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] The task start time is also called the earliest start time, which is used to represent the time when the task's predecessor task is delivered to the task after it is completed within the preset time requirement or within the preset time requirement.

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

[0067] ;

[0068] Among them, 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.

[0069] The task completion time, also known as the latest completion time, represents the time it takes to complete the task after the successor task is completed based on the deadline. The deadline is the duration of the total sprint period.

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

[0071] ;

[0072] Among them, g is the post-task of task i; LF g is the task completion time of task g; is the set of post-tasks of task i, and post-tasks are tasks that are 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, task float time represents the maximum time required to complete the task.

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

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

[0076] Furthermore, the second task information set can be represented as: Task A - First Resource Object 1 - X Yuan / person-day. This is stored in a dictionary format, i.e., dict = {"Task A":"First Resource Object 1":"X Yuan / person-day","Task B":"First Resource Object 2":"Y Yuan / person-day"}.

[0077] Specifically, based on the relationships between tasks in the first task set, the order of task execution is determined to obtain the task priority. Based on the task priority and the first task information set, a resource object that meets the task requirements and minimizes resource consumption is matched from the first set as the first resource object for the task. The first resource object is matched with the corresponding task and resource consumption is evaluated to obtain the second task information set.

[0078] The first set includes all resource objects in the team to which the project belongs and the resource information corresponding to the resource objects.

[0079] Furthermore, the resource consumption assessment is to calculate the total resources required to complete all projects based on the current first resource object and the corresponding tasks. If the total resource consumption exceeds the preset resource consumption, it is considered that the resource consumption exceeds the limit and resource consumption optimization is required. The optimized plan is evaluated. If it meets the requirements, the second task information set is determined based on the optimized resource object and the corresponding task.

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

[0081] The resource optimization model can be expressed as follows:

[0082] ;

[0083] in, , when the first resource object k is used within the sprint period j, it takes 1, otherwise it takes 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; and m is the total number of tasks (m>n).

[0084] Furthermore, the constraint function of the resource optimization model includes: each task must be assigned and assigned only once:

[0085] ;

[0086] Each first resource object handles 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 first resource object level must meet the minimum task requirements:

[0091] ;

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

[0093] ;

[0094] where s i Defined by assigning variables:

[0095] ;

[0096] Where 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 is the number of k The single-period resource consumption of the first resource object k; t i The technology stack type of task i; r i Level requirement for 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; i The set of predecessor tasks of task i; , takes 1 when task i is assigned to the first resource object k in sprint period j, otherwise takes 0; , takes 1 when the first resource object k is used within sprint period j, otherwise takes 0; , the number of sprints to which task i is assigned.

[0097] The 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 the resource objects.

[0098] The first set includes resource objects that can complete tasks in the project and resource object information corresponding to the resource objects, wherein the resource objects can complete at least one task.

[0099] The resource object information includes: the name of the resource object, development level, owned technology stack and resource consumption, 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: the resource object only completes one task in each sprint period; the resource object level must meet the minimum requirements for task completion; and the resource object's technology stack must cover the task requirements.

[0103] The sprint period is an iterative cycle of fixed length, usually 1-4 weeks, during which resources process a series of assigned tasks.

[0104] The above steps discretize the timeline into independent sprint periods (Sprint 1 to Sprint Z). Each period has an independent resource pool, which can meet the needs of agile iteration.

[0105] Furthermore, the above steps can be achieved through the Scrum methodology. The Scrum methodology consists of two main parts: the core framework and key activities. The core framework is used to organize project requirements, while key activities are used to determine the amount of work to be completed during each sprint.

[0106] For example, Figure 7 As shown, the project deadline is first divided into Z sprints. Within each sprint, tasks are assigned according to the first task information set, generating a task pool. At the start of each sprint, the assigned task pool is updated. Task priorities are determined and first resource objects are matched based on the first task information set. Tasks are processed based on their priorities and first resource objects, and feedback is provided on the processing results. The task pool for the next sprint is updated based on the feedback.

[0107] The above steps update the task pool based on feedback results before each sprint period to prevent the failure of task processing from affecting the processing of subsequent related tasks if feedback is not provided.

[0108] Further, if Figure 7 As shown in Table 1 and Table 2, the project demand assessment and decomposition requirements mainly include: splitting the project according to the project completion indicators to obtain factors that affect project scheduling, such as the number of tasks, task names, task dependencies, and resource object information.

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

[0110] Specifically, the name of the task to be executed and the sprint period in which it is located are issued to each first resource object according to the second task information set. The first resource object processes the task according to the task name and the sprint period in which the task is located.

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

[0112] Specifically, when scheduling the project according to the second task information set, each time a sprint period is completed, the processing status of each task in the sprint period is obtained, and feedback results are generated based on the processing status. According to the feedback results, the tasks in the task pool of the next sprint period and the first resource objects corresponding to the tasks are updated, and the second task information set is adjusted.

[0113] The feedback results include the task processing status and the status of the first resource object. Task processing status includes task processing failure, new task requirements, and adjustments to inter-task dependencies. The status of the first resource object includes resource object adjustments, new resource objects, and resource object removal.

[0114] Furthermore, the adjustment of the second task information set needs to ensure that the resource consumption of the reallocated resource objects is minimized while also 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 based on the feedback results.

[0115] The resource update model can be expressed as:

[0116] ;

[0117] Among them, s i is the assigned sprint period 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 of 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 processing failures, 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 the 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 a 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 i’’s completion time. Further, the dependency dynamic update constraint can be expressed as:

[0126] ;

[0127] Among them, s i ′ is the assigned sprint period of task i after calibration; s h ′ is the allocated sprint period of the predecessor task h of task i after calibration; p i ′ is the set of predecessor tasks of task i after calibration; ΔT is the set of tasks that have changed in the t-th sprint period. Changes can include: new tasks, failed tasks, and changes in task dependencies.

[0128] Furthermore, the time window constraint is used to indicate that the calibration only affects the subsequent sprint period. Furthermore, the time window constraint can be expressed as:

[0129] .

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

[0131] .

[0132] Furthermore, after the tasks and the first resource objects in the second task information set are updated, the priority of the tasks needs to be updated again, and the task start time, task end time and task float time need to be updated.

[0133] Among them, the update 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 updated set of predecessor tasks of task i; ΔT is the set of tasks that have changed in the t-th sprint period.

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

[0137] ;

[0138] Among them, LF iis the task end time of task i; LF i ′ is the updated task end time of task i; LF g ′ is the updated task end time of task g; task g is the subsequent task of task i; s i ′ is the assigned sprint period of task i after calibration; ΔT is the set of tasks that have changed in the t-th sprint period.

[0139] Among them, the update 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 project requirement information to obtain task information.

[0143] Specifically, tasks are split according to project requirement information, and predecessor task information of tasks is determined according to the requirements of each task, and the predecessor task information is used as task information.

[0144] The predecessor task information is information about other tasks that need to be completed before completing a task.

[0145] The project requirement information may include m tasks requiring n people to complete, where m>n. The project requires that all task development be completed within sprint Z. Given task information includes: resource object level requirements, task technology stack type (one task corresponds to only one technology stack), and task dependencies (some tasks require the completion of one or more prerequisite tasks before development can be executed). Given resource object information includes: resource object level, the technology stack mastered by the resource object (one resource object can master multiple technology stacks), and resource object resource consumption. Resource objects can be flexibly scheduled, and resource consumption is only calculated when the resource object is committed to the current sprint. Assuming that the project task information has been reasonably segmented: in each sprint, one resource object can correspond to one task, and one task is only assigned to one resource object, in this case, the resource object consumption is calculated.

[0146] Step A2: Associating the tasks of the project according to the task information to obtain a first task information set, wherein the association relationship includes dependency relationship and parallel relationship.

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

[0148] Among them, the dependencies include linear dependencies, merge dependencies, and branch dependencies between tasks.

[0149] Specifically, the association relationship between each task in the project is acquired according to the task information, and each task is associated according to the association relationship to obtain a first task information set.

[0150] For example, Figure 6 As shown, there is a linear dependency relationship between task a, task d and task g; there is a merged dependency relationship between task a, task b and task e; there is a merged dependency relationship between task b, task c and task f; there is a merged dependency relationship between task e, task f and task h; there is a branched dependency relationship between task f, task i and task h. Based on the obtained dependency relationship between tasks, each task is associated to obtain the first task information set.

[0151] Optionally, determining the task priority based on the task classification set includes steps B1-B3:

[0152] Step B1: Determine the task start time of each task based on the association relationship between the tasks in the first task set.

[0153] The start time of a task is the earliest start time of the task.

[0154] Specifically, according to the association relationship between the tasks in the first task set, the task start time of the predecessor task of the task is calculated, and the task start time of the task is determined according to the maximum task start time of the predecessor tasks.

[0155] Furthermore, the task start time (ES) can be expressed as follows:

[0156] ;

[0157] Among them, 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 start time of task i.

[0158] For example, taking the tasks in Table 1 as an example, if Task A and Task E have no predecessor tasks, then the task start time of Task A and Task E is 1; if the predecessor task of Task B and Task D is A, then the task start time of Task B and Task D is 2; if the predecessor tasks of Task C are Task A and Task B, the task start time of Task A is 1, and the task start time of Task B is 2, then the task start time of Task C is the maximum of the task start times of Task A and Task B plus 1, then the task start time of Task C is 3.

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

[0160] The preset order is in ascending order of task start time.

[0161] Specifically, the task start times are sorted in ascending order, and the task with the smaller the start time is, the higher the priority is, thereby obtaining the priority of each task 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 to obtain the priority of each task in the second task set. The priority function is composed of the task float time.

[0163] Specifically, the task start time and task completion time of each task in the second task set are determined, and the task start time and task completion time are subtracted to obtain the task float time. The task float time is input into the priority function to determine the task priority of each task in the second task set.

[0164] In the above steps, the priority of each task in the second task set is determined by task float. Tasks with short float (TF→0) have a priority close to 1 and are assigned a significantly higher weight than tasks with long float (TF→∞), which approach 0. This ensures that highly urgent tasks are completed first and avoid them becoming the primary task. Dynamically adjusting the second task allocation order through the priority function can avoid wasting resources.

[0165] Furthermore, if the task is the last task in the second task set, the task completion time of the 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 the task is the minimum value of the task completion time 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 to obtain the priority of each task in the second task set, steps C1 to C4 are included:

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

[0171] The first set includes all resource objects in the team to which the project belongs 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, resource objects that do not meet the requirements in the first set are eliminated to obtain the second set.

[0173] Exemplarily, the second set determination process 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 technology stacks mastered by the first resource object k; r i Level requirement for task i; l k The level of the first resource object k; t i The technology stack type of task i.

[0176] Furthermore, if , reporting the error "Task i has no feasible developer".

[0177] Furthermore, the second set is pre-sorted by resource consumption: each D i By resource consumption c k Arrange in ascending order to ensure that subsequent allocations directly select the first resource object with the lowest resource consumption.

[0178] Step C2: According to the completion requirements and task priorities of each task in the first task information set, matching is performed from the second set to obtain a corresponding third set.

[0179] The second set includes all resource objects that can complete the task.

[0180] Specifically, according to the completion requirements of each task in the first task information set, resource objects that can complete the tasks are matched from the second set, and the matched resource objects are screened according to the task priority to obtain third object resources, and all the obtained third resource objects are generated into a third set.

[0181] Furthermore, if the third object resource cannot be allocated, the process is terminated immediately and an error message "task cannot be allocated" is reported.

[0182] Furthermore, before matching the third resource object, the method further includes: inputting a sprint period number Z; and defining an availability matrix, a sprint period, and a buffer period of tasks in the first task set according to the sprint period.

[0183] The availability matrix is used to evaluate the availability of each resource object in the second set. The availability matrix can be expressed as follows:

[0184] ;

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

[0186] The buffer period is: [C 理论 +1, Z]. If the buffer period is less than <0, an error message "The first task is overdue, and the sprint period needs to be extended" will be reported immediately. The buffer period is a period of time reserved after the sprint period to complete any work that was not completed during the sprint, or to test, debug, optimize, and prepare for delivery of project tasks.

[0187] Furthermore, the remaining buffer period B is dynamically adjusted according to C. 实际 =ZC 实际 , if B 实际 <0 triggers an alert.

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

[0189] Step C3: Sort the resource objects 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, the resource objects in the third set are sorted in ascending order according to the resource consumption corresponding to each resource object, and the resource object with the smallest resource consumption is taken as the first resource object.

[0191] Furthermore, if the task belongs to the first task set, the matching of the first resource object can be achieved by the following steps: Assuming that the task sequence is L * , the availability matrix is A. Calculate the earliest assignable sprint period for each task i∈L* in the interval j∈[j i , Z], traverse from early to late according to the sprint period: for each resource object k∈D i , (arranged in ascending order of resource consumption), if A j-1, k=1, then immediately assign: x ijk =1,s i =j,A j-1, k=0, and mark resource usage 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 assigned sprint period of task h in the second task information set.

[0195] In the above steps, the first task (TF=0) was allocated in ascending ES order during the preprocessing phase and locked the first resource object within its time window (ES to LF), forming a "non-preemptible" resource pool. The first task was completed 100% on schedule. If any attempt to seize the resource was made, the system triggered a rollback (releasing the resource using a set difference operation) 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 by the following steps: for each task i∈ / C in the second task set (in ascending order of TF), calculate the earliest assignable sprint. i ,Z], select available resource objects in ascending order of their resource consumption. If the resources are insufficient, record the unassigned tasks, but do not block the first task.

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

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

[0199] Furthermore, the second task information set may 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, steps D1-D2 are further included:

[0201] Step D1: traverse the second task information set and compare the first resource object corresponding to each task with the second resource object, wherein the second resource object is a resource object in 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, so the second task information set is traversed to obtain the first resource object corresponding to each task, and the corresponding resource consumption is determined based on the obtained first resource object, and the resource consumption of the obtained first resource object is compared with the resource consumption corresponding to the second resource object.

[0203] Furthermore, the comparison operation can be implemented in the following way: check whether there is k′∈D and satisfies c k′ <c ki And in the sprint period i 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; jik′ =0 means the second resource object is in the sprint period j i Not allocated within.

[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, the first resource object in the second task information set is replaced according to 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, the first resource object in the second task information set is replaced according to the second resource object.

[0207] Furthermore, the replacement operation can be implemented as follows:

[0208] .

[0209] Furthermore, the resource consumption is continuously iterated until the preset resource consumption is met.

[0210] For example, assuming 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 resource object 3 is replaced by resource object 1.

[0211] Furthermore, continuously iterating the resource consumption until the preset resource consumption is met includes: evaluating the sum of the resource consumption of each first resource object in the replaced second task information set through the resource optimization model to obtain the first resource consumption; comparing the obtained first resource consumption with the preset resource consumption, and evaluating 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] The resource optimization model can be expressed as follows:

[0213] ;

[0214] in, , when the first resource object k is used within the sprint period j, it takes 1, otherwise it takes 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, through secondary resource optimization, can find the theoretical optimal solution for the total project cost, so that the project can be completed quickly while reducing resource consumption.

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

[0217] Step E1: If the first task fails to be triggered, the processing object is released, wherein the processing object is a resource object for processing the second task.

[0218] Specifically, if the first task fails to be triggered, it indicates that the first task cannot be triggered, the first task is rolled back, and the processing objects in the sprint period are released.

[0219] Step E2: Match the processing object with the first task.

[0220] Specifically, resource object information of the processing object is obtained, and the resource object information is compared with task information in the first task information set.

[0221] Step E3: If the match is successful, the first task is processed by the processing object.

[0222] Specifically, if the processing object is successfully matched with the first task, a first task processing request is sent to the processing object, and the processing object processes the first task.

[0223] Step E4: If the matching fails, issue 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 is to determine a first task information set; classify tasks according to the first task information set to obtain a task classification set, which can avoid the problem of task blocking when the tasks are executed; 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 a second task information set. The determination of the priority can avoid resource preemption between tasks, which may cause the problem of task conflict rollback mechanism. At the same time, the allocation of the first resource object can make the processing of tasks reach the highest efficiency and the lowest resource consumption; schedule the project according to the second task information set, and dynamically update 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 has the lowest resource consumption and the highest efficiency when scheduling the tasks. The 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 method for quickly finding executable tasks that meet the project schedule, controlling the project schedule risk, and ensuring the lowest total project cost and achieving resource conservation.

[0226] Figure 8 This is a schematic diagram of the structure of a project scheduling device provided by an embodiment of the present invention. This embodiment is applicable to the situation where projects are scheduled when resources are limited. The project scheduling device can be implemented in the form of hardware and / or software. The project scheduling device can be configured in any electronic device with network communication function. Figure 8 As shown, the apparatus 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 updating module 250, wherein:

[0227] First Task Information Set Determination Module 210: Determines a first task information set; the first task information set represents the dependencies between tasks in a project; a project represents the task requirements and progress requirements for completing each task, as well as the indicators that the development pool in which each task resides must meet; a development pool is composed of resource objects required to complete tasks;

[0228] The task classification set determination module 220 is 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 tasks in the first task set needs to depend on the completion 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 tasks in the second task set needs to depend on the completion of their associated predecessor tasks, and the task chain composed of the tasks in the second task set is less than a preset length;

[0229] Second task information set determination module 230: used to determine task priorities based on the task classification set, and allocate first resource objects based on 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 based on the task start time of each task in the first task set; the second task priority is determined based on the task float time and priority function of each task in the second task set; the second task information set is used to represent a set of corresponding relationships between each task and the first resource object;

[0230] Scheduling module 240: configured to schedule projects according to the second task information set;

[0231] The updating module 250 is configured to dynamically update the second task information set according to the processing status of each task in the scheduling process.

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

[0233] The first task set determination unit is used to split the project according to the project requirement information to obtain task information;

[0234] The first task information set determining unit is used to associate the tasks 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 determining module 230 includes:

[0236] A start time determination unit is configured to determine a task start time for each task based on the association between the tasks in the first task set;

[0237] Priority determination unit: used to sort the tasks in a preset order according to their start time to obtain the priority of each task in the first task set;

[0238] Priority determination unit: determines the task float time of each task in the second task set, and calculates the priority of each task in the second task set according to the priority function to obtain the priority of each task in the second task set; the priority function is composed of the task float time.

[0239] Optional, project scheduling device, including:

[0240] A second set determining unit is configured to filter the first set according to the first task information set, remove resource objects that do not meet the requirements, and obtain a second set;

[0241] A third resource object determining unit is configured to match the second set of tasks according to the completion requirements and task priorities of each task in the first task information set to obtain a corresponding third set;

[0242] A first resource object determining unit is configured to sort the resource objects in the third set according to resource consumption, and select the resource object with the smallest resource consumption as the first resource object;

[0243] The second task information set determining unit is configured to associate the first resource object with the corresponding task to obtain the second task information set.

[0244] Optional, project scheduling device, including:

[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 with the second resource object; the second resource object is a resource object in the first set;

[0246] Replacement module: used to replace the first resource object in the second task information set according to 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] A processing object release determination unit is configured to release a processing object if the first task fails to be triggered; the processing object is a resource object for processing the second task;

[0249] Matching unit: used for matching the processing object with the first task;

[0250] Processing unit: used for processing the first task through the processing object if the match is successful;

[0251] Early warning unit: used to issue an early warning if the matching fails.

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

[0253] Figure 9 A schematic diagram of the structure 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 laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices (such as helmets, glasses, watches, etc.), and other similar computing devices. The components shown herein, their connections and relationships, and their functions are provided for example only and are not intended to limit the implementation of the present invention described and / or claimed herein.

[0254] like Figure 9 As shown, electronic device 10 includes at least one processor 11 and memory, such as read-only memory (ROM) 12 and random access memory (RAM) 13, communicatively connected to at least one processor 11. The memory stores computer programs executable by the at least one processor. Processor 11 can perform various appropriate actions and processes based on the computer programs stored in ROM 12 or loaded from storage unit 18 into RAM 13. RAM 13 can also store various programs and data required for the operation of electronic device 10. Processor 11, ROM 12, and RAM 13 are interconnected via bus 14. An input / output (I / O) interface 15 is also connected to 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 via a computer network such as the Internet and / or various telecommunication networks.

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

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

[0258] Various embodiments of the systems and techniques described 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), system-on-chip systems (SOCs), 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 are executable and / or interpreted on a programmable system comprising at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0259] Computer programs for implementing the methods of the present invention may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that when the computer program is executed by the processor, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The computer program may be executed entirely on the machine, partially on the machine, as a stand-alone 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 may be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, device, or apparatus. A computer-readable storage medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium may be a machine-readable signal medium. More specific examples of machine-readable storage media may 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 disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0261] To provide interaction with a user, the systems and techniques described herein can be implemented on an electronic device that has: 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 pointing device (e.g., a mouse or trackball) through which the user can provide input to the electronic device. Other types of devices can also be used to provide interaction with the user; for example, the 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, voice input, or tactile input).

[0262] The systems and techniques described herein can be implemented in a computing system that includes back-end 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 front-end components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end 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 clients and servers. The clients and servers are typically remote from each other and typically interact via a communication network. This client-server relationship arises through computer programs running on the respective computers, creating a client-server relationship. The server may be a cloud server, also known as a cloud computing server or cloud host. This server is a hosting product within the cloud computing service ecosystem that addresses the management difficulties and limited scalability of traditional physical hosting and VPS services.

[0264] It should be understood that the various forms of the processes shown above can be used to reorder, add, or delete steps. For example, the steps described in the present invention can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solution of the present invention can be achieved. This is not limited herein.

[0265] The above specific embodiments do not limit the scope of protection of the present invention. Those skilled in the art will appreciate that various modifications, combinations, sub-combinations, and substitutions may be made based on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention are intended to be included within the scope of protection of the present invention.

Claims

1. A project scheduling method, characterized in that: include: Determining a first task information set; The first task information set is used to represent the dependency relationship between the tasks of the project; The project is used to represent the task requirements and progress requirements required to complete each task, as well as the indicators that the development pool of each task needs to achieve; the development pool is composed of resource objects that complete the task; Classifying 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 needs to depend on the completion 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 tasks in the second task set needs to depend on the completion 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 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: 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 priority function of each task in the second task set; the second task information set is used to represent a set of corresponding relationships between each task and the first resource object; wherein the task start time is used to represent the corresponding time when the predecessor task of the task is completed within the preset time requirement and is transferred to the task; Scheduling the project according to the second task information set; Dynamically updating the second task information set according to the processing status of each task in the scheduling process; The step of determining the task priority according to the task classification set includes: Determining a task start time for each task based on the association relationship between the tasks in the first task set; Sort the tasks in a preset order according to their start time to obtain the priority of each task in the first task set; 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 a priority function to obtain the priority of each task in the second task set; the priority function is composed of the task float time.

2. The method according to claim 1, characterized in that The determining of the first task information set includes: Split the project according to project requirement information to obtain task information; The tasks of the project are associated with each other according to the task information to obtain a first task information set; the associated relationship includes a dependency relationship and a parallel relationship.

3. The method according to claim 1, characterized in that 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 to obtain the priority of each task in the second task set, the method includes: Filtering the first set according to the first task information set, removing resource objects that do not meet the requirements, and obtaining a second set; According to the completion requirements of each task in the first task information set and the task priority, matching is performed from the second set to obtain a corresponding third set; sorting the resource objects in the third set according to resource consumption, and taking the resource object with the smallest resource consumption as the first resource object; The first resource object is associated with the corresponding task to obtain a second task information set.

4. The method according to claim 1, wherein Before scheduling the project according to the second task information set, the method further includes: Traversing the second task information set, and comparing the first resource object corresponding to each task with the second resource object; the second resource object is a resource object in 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, the first resource object in the second task information set is replaced according to the second resource object.

5. The method according to claim 1, wherein Scheduling the project according to the second task information set includes: If the first task fails to be triggered, the processing object is released; the processing object is a resource object for processing the second task; Matching the processing object with a first task; If the match is successful, the first task is processed by the processing object; If the match fails, an early warning will be issued.

6. A project scheduling device, characterized in that: include: A first task information set determining module, configured to determine a first task information set; The first task information set is used to represent the dependency relationship between the tasks of the project; The project is used to represent the task requirements and progress requirements required to complete each task, as well as the indicators that the development pool of each task needs to achieve; the development pool is composed of resource objects that complete the task; a task classification set determining 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 tasks in the first task set needs to depend on the completion 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 tasks in the second task set needs to depend on the completion of their associated predecessor tasks, and the task chain composed of the tasks in the second task set is less than the preset length; A second task information set determination module is configured to determine a task priority based on the task classification set, and allocate a first resource object based on the task priority and the first task information set to obtain a second task information set; the task priority includes: a first task priority and a second task priority; the first task priority is determined based on the task start time of each task in the first task set; the second task priority is determined based on the task float time and priority function of each task in the second task set; the second task information set is a set representing the corresponding relationship between each task and the first resource object; wherein the task start time is used to represent the corresponding time when the predecessor task of the task is completed within the preset time requirement and is transferred to the task; a scheduling module, configured to schedule the project according to the second task information set; An updating module, configured to dynamically update the second task information set according to the processing status of each task in the scheduling process; The second task information set determination module includes: a start time determination unit, configured to determine a task start time for each task based on an association relationship between tasks in the first task set; a priority determination unit, configured to sort the tasks in a preset order according to their start time to obtain the priority of each task in the first task set; The priority determination unit is used to 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 to obtain the priority of each task in the second task set; the priority function is composed of the task float time.

7. An electronic device, characterized in that: The electronic device comprises: at least one processor; and a memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor. The computer program is executed by the at least one processor to enable the at least one processor to perform the project scheduling method according to any one of claims 1 to 5.

8. A computer-readable storage medium, characterized in that The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a processor to implement the project scheduling method according to any one of claims 1 to 5 when executed.

Citation Information

Patent Citations

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

    CN118378858A

  • Project execution risk assessment system and method based on data mining

    CN119151297A