Task Scheduling Method, Device, Computer Equipment and Storage Medium

By optimizing the task scheduling method, obtaining the execution sequence and staffing scheme of multiple steps, and using fitness filtering and simulation configuration, the problem of inefficient execution of change tasks is solved and more efficient task execution is achieved.

CN115409426BActive Publication Date: 2025-05-27INDUSTRIAL AND COMMERCIAL BANK OF CHINA
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211225916.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-10-09
Publication Date
2025-05-27
Estimated Expiration
2042-10-09

AI Technical Summary

Technical Problem

In IT operation and maintenance work, the execution efficiency of change tasks is low, especially cross-departmental coordinated change tasks, which requires stricter execution time, resulting in low task execution efficiency.

Method used

Provide a task scheduling method, by obtaining execution sequences and staffing schemes of multiple steps, using fitness filtering and simulation configuration, and optimizing task scheduling combinations to improve task execution efficiency.

Benefits of technology

By optimizing the task scheduling combination, the execution efficiency of the change tasks is improved, the execution time is shortened, and the smooth progress of the change tasks is ensured.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115409426B_ABST
    Figure CN115409426B_ABST
Patent Text Reader

Abstract

The present application relates to a task scheduling method, apparatus, computer device, and storage medium. It relates to the field of computer technology and can be used in the field of fintech or other related fields. The method includes: by optimizing the step execution sequence and personnel allocation plan, the fitness of the obtained first target task scheduling combination is made smaller. Correspondingly, based on the personnel allocation plan in the first target task scheduling combination, when personnel simulation configuration is performed on the step execution sequence in the first target task scheduling combination and task scheduling during simulation execution is carried out, the task scheduling efficiency is higher. Subsequently, task scheduling can be performed based on the first target task scheduling combination. On the one hand, the execution efficiency of tasks is thus improved; on the other hand, support is provided for formulating a task execution plan to ensure the smooth progress of changes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a task scheduling method, apparatus, computer equipment and storage medium. Background Art

[0002] In IT operation and maintenance work, various tasks usually need to be handled, among which the most common is change tasks. Change tasks are mainly divided into three types: change tasks within the same department group, change tasks between different groups in the same department, and change tasks between different departments. The execution relationship of change tasks is complex, and some change tasks require the collaboration of multiple departments and multiple groups. For these three types of complex change tasks, efficient implementation and smooth completion are crucial. In the execution process of change tasks, there are generally two factors that affect the execution of change tasks: one is human resources; the other is execution time. Different steps in the execution of change tasks require different skills. Due to different professional knowledge reserves or different daily learning focuses, different executors have the same degree of mastery of the same skills. Another key to the execution of change tasks is the execution time, especially the cross-departmental collaborative change tasks have more stringent requirements on the execution time. Therefore, there is an urgent need for a task scheduling method to improve the execution efficiency of change tasks. Summary of the invention

[0003] Based on this, it is necessary to provide a task scheduling method, apparatus, computer device and computer-readable storage medium that can improve the execution efficiency of change tasks in response to the above technical problems.

[0004] In a first aspect, the present application provides a task scheduling method. The method comprises:

[0005] For the multiple steps decomposed from the task, obtain multiple step execution sequences composed of multiple steps and satisfying the dependency relationship between the steps, as well as multiple staffing plans with a fixed number of people and satisfying the corresponding skill requirements for completing the multiple steps;

[0006] Obtain a step execution sequence parent population determined by a plurality of step execution sequences, obtain a staffing scheme parent population determined by a plurality of staffing schemes, update the step execution sequences in the step execution sequence parent population and the staffing schemes in the staffing scheme parent population respectively, and obtain a step execution sequence intermediate population and a staffing scheme intermediate population;

[0007] Determine a first temporary population based on at least one of the parent population of the step execution sequence or the intermediate population of the step execution sequence, and determine a second temporary population based on at least one of the parent population of the staffing scheme or the intermediate population of the staffing scheme;

[0008] Based on the first temporary population and the second temporary population, a task scheduling combination consisting of a step execution sequence and a personnel configuration scheme is obtained, and based on the corresponding fitness of the task scheduling combination, the task scheduling combination is screened to obtain a target task scheduling combination population, wherein the fitness is used to reflect the task scheduling efficiency when personnel simulation configuration and simulated execution are performed on the step execution sequence in the corresponding task scheduling combination based on the personnel configuration scheme in the corresponding task scheduling combination;

[0009] Determine a new step execution sequence parent population based on the first temporary population, determine a new staffing scheme parent population based on the second temporary population, return to the steps of updating the step execution sequence in the step execution sequence parent population and the staffing scheme in the staffing scheme parent population respectively, and continue to execute until the repeated execution end condition is met;

[0010] According to the corresponding fitness of each task scheduling combination in the target task scheduling combination population, the target task scheduling combination population is screened to obtain the first target task scheduling combination.

[0011] In one embodiment, the first temporary population includes a step execution sequence parent population and a step execution sequence intermediate population, and the second temporary population includes a staffing scheme parent population and a staffing scheme intermediate population; based on the first temporary population and the second temporary population, a task scheduling combination consisting of a step execution sequence and a staffing scheme is obtained, and based on the corresponding fitness of the task scheduling combination, the task scheduling combination is screened to obtain a target task scheduling combination population, including:

[0012] Based on the first temporary population and the parent population of the staffing scheme, a first task scheduling combination consisting of a step execution sequence and a staffing scheme is obtained; based on the second temporary population and the parent population of the step execution sequence, a second task scheduling combination consisting of a step execution sequence and a staffing scheme is obtained;

[0013] Based on the fitness of each of the first task scheduling combination and the second task scheduling combination, all the first task scheduling combinations and all the second task scheduling combinations are sorted respectively to obtain a first sorting result and a second sorting result;

[0014] The task scheduling combination is screened based on the first sorting result and the second sorting result to obtain a second target task scheduling combination, and the second target task scheduling combination constitutes a target task scheduling combination population.

[0015] In one embodiment, the process of determining the fitness of the task scheduling combination includes:

[0016] Obtain a dependency graph determined based on multiple steps and dependencies between the steps, and determine a target step on a path with the largest total workload in the dependency graph according to the workload corresponding to each of the multiple steps;

[0017] For the current task scheduling combination, according to the target step, the required skills for each of the multiple steps, the current staffing plan in the current task scheduling combination, the skills and skill proficiency of each person in the current staffing plan, the current step execution sequence in the current task scheduling combination is simulated and executed to obtain the corresponding fitness of the current task scheduling combination.

[0018] In one embodiment, determining a target step on a path with the largest total workload in a dependency graph according to the workload of each of the multiple steps includes:

[0019] Determine the earliest execution end time of each step according to the corresponding workload of each step in the multiple steps;

[0020] Determine the latest execution end time of each step according to the corresponding workload of each step in the multiple steps and the earliest execution end time of each step;

[0021] Determine whether the earliest execution end time of each step is equal to the latest execution end time of the same step, and take the step where the two are equal as the target step.

[0022] In one embodiment, determining the earliest execution end time of each step according to the workload of each step in the multiple steps includes:

[0023] A first flag is set for each step, and the first flag is set with a first initial value;

[0024] Randomly determine a reference execution order of multiple steps, and traverse the multiple steps from front to back according to the reference execution order;

[0025] For the current step currently traversed, determine whether the first flag bit of the current step is the first initial value;

[0026] If the first flag bit of the current step is not the first initial value, skip the current step; if the first flag bit of the current step is the first initial value, determine whether there is an adjacent preceding step that satisfies the dependency relationship with the current step;

[0027] If it does not exist, the earliest execution start time of the current step is set to 0, the earliest execution end time of the current step is set to the workload of the current step, and the first flag bit of the current step is set to the first confirmed end flag;

[0028] If so, determine whether the first flag bits of the adjacent preceding steps that satisfy the dependency relationship with the current step are not the first initial value;

[0029] If none of them is the first initial value, the earliest execution start time of the current step is set to the maximum value of the earliest execution end time of each adjacent preceding step, and the earliest execution end time of the current step is determined according to the earliest execution start time of the current step and the workload of the current step, and the first flag bit of the current step is set to the first determined end flag;

[0030] If they are not all the first initial values, skip the current step;

[0031] After the current traversal process has completed traversing multiple steps, determine whether the first flag bits of the multiple steps are all set to the first definite end marker. If they are all set to the first definite end marker, the overall traversal process ends. If they are not all set to the first definite end marker, return to the step of traversing multiple steps from front to back according to the reference execution order and enter the next traversal process.

[0032] In one embodiment, determining the latest execution end time of each step according to the workload corresponding to each step in the multiple steps and the earliest execution end time of each step includes:

[0033] A second flag is set for each step, and the second flag is set with a second initial value;

[0034] Randomly determine a reference execution order of multiple steps, and traverse the multiple steps from front to back according to the reference execution order;

[0035] For the current step currently traversed, determine whether the second flag bit of the current step is the second initial value;

[0036] If the second flag bit of the current step is not the second initial value, skip the current step; if the second flag bit of the current step is the second initial value, determine whether there is an adjacent subsequent step that satisfies the dependency relationship with the current step;

[0037] If it does not exist, the latest execution end time of the current step is set to the maximum value of the earliest execution end time of each step, and the latest execution start time of the current step is determined according to the latest execution end time of the current step and the workload of the current step, and the second flag bit of the current step is set to the second determined end flag;

[0038] If so, determine whether the second flag bits of the adjacent subsequent steps that satisfy the dependency relationship with the current step are not the second initial value;

[0039] If none of them is the second initial value, the latest execution end time of the current step is set to the minimum value of the latest execution start time of each adjacent subsequent step, and the latest execution start time of the current step is determined according to the latest execution end time of the current step and the workload of the current step, and the second flag bit of the current step is set to the second determined end mark;

[0040] If they are not all the second initial values, skip the current step;

[0041] After the current traversal process has completed traversing multiple steps, determine whether the second flag bits of the multiple steps are all set to the second definite end marker. If they are all set to the second definite end marker, the overall traversal process ends. If they are not all set to the second definite end marker, return to the step of traversing the multiple steps from front to back according to the reference execution order and enter the next traversal process.

[0042] In one embodiment, according to the target step, the required skills of each of the multiple steps, the current personnel configuration scheme in the current task scheduling combination, the skills and skill proficiency of each person in the current personnel configuration scheme, the personnel simulation configuration and simulation execution are performed on the current step execution sequence in the current task scheduling combination to obtain the corresponding fitness of the current task scheduling combination, including:

[0043] Determine a minimum value from the earliest execution start time of each of the multiple steps, determine a maximum value from the earliest execution end time of each of the multiple steps, and determine a traversal time period based on the minimum value and the maximum value;

[0044] For the current step execution sequence in the current task scheduling combination, the steps in the current step execution sequence are traversed in sequence until all the steps in the current step execution sequence have been simulated and executed; according to the earliest simulation execution end time of each step in the current step execution sequence, the fitness of the current task scheduling combination is determined; wherein, for the traversed current step, the processing process of the current step includes:

[0045] If the current step is in a non-simulated execution state, determine whether the adjacent preceding steps that satisfy the dependency relationship with the current step have all been simulated and executed;

[0046] If all simulations are completed, determine whether the current staffing solution in the current task scheduling combination has a target staff who has the required skills for the current step and is not currently participating in the step simulation execution;

[0047] If it exists, a target person is assigned to the current step for simulation execution. According to the skill proficiency of the assigned target person, the remaining workload of the current step is converted into the remaining simulation execution time. If there is no interruption in the simulation execution period corresponding to the remaining simulation execution time, after the simulation execution of the current step is completed, the earliest simulation execution end time of the current step is set as the simulation execution completion time of the current step;

[0048] If an interruption occurs during the simulation execution period corresponding to the remaining simulation execution time, the remaining workload of the current step is updated according to the simulation execution progress corresponding to the simulation execution interruption time of the current step;

[0049] If it does not exist, determine whether the current step is the target step. If it is the target step, select a designated person who has the required skills for the current step and is not currently participating in the simulation execution of the target step from the current staffing plan, interrupt the simulation execution of the step currently participated by the designated person, and convert the remaining workload of the current step into the remaining simulation execution time according to the skill proficiency of the assigned designated person. If there is no interruption in the simulation execution period corresponding to the remaining simulation execution time, then after the current step model is executed, set the earliest simulation execution end time of the current step to the simulation execution completion time of the current step;

[0050] If an interruption occurs during the simulation execution period corresponding to the remaining simulation execution duration, the remaining workload of the current step is updated according to the simulation execution progress corresponding to the simulation execution interruption moment of the current step.

[0051] In a second aspect, the present application also provides a task scheduling device. The device comprises:

[0052] The step execution sequence acquisition module is used to obtain, for the multiple steps decomposed from the task, multiple step execution sequences composed of multiple steps and satisfying the dependency relationship between the steps, as well as multiple staffing plans with a fixed number of people and satisfying the corresponding skill requirements for completing the multiple steps;

[0053] A population acquisition module is used to acquire a step execution sequence parent population determined by a plurality of step execution sequences, acquire a staffing scheme parent population determined by a plurality of staffing schemes, and respectively update the step execution sequences in the step execution sequence parent population and the staffing schemes in the staffing scheme parent population to obtain a step execution sequence intermediate population and a staffing scheme intermediate population;

[0054] A temporary population determination module, configured to determine a first temporary population based on at least one of a parent population of a step execution sequence or an intermediate population of a step execution sequence, and to determine a second temporary population based on at least one of a parent population of a staffing scheme or an intermediate population of a staffing scheme;

[0055] The first screening module is used to obtain a task scheduling combination consisting of a step execution sequence and a personnel configuration scheme based on the first temporary population and the second temporary population, and to screen the task scheduling combination based on the corresponding fitness of the task scheduling combination to obtain a target task scheduling combination population; the fitness is used to reflect the task scheduling efficiency when personnel simulation configuration and simulated execution are performed on the step execution sequence in the corresponding task scheduling combination based on the personnel configuration scheme in the corresponding task scheduling combination;

[0056] A new population determination module is used to determine a new step execution sequence parent population based on the first temporary population, determine a new staffing scheme parent population based on the second temporary population, return the steps of updating the step execution sequence in the step execution sequence parent population and the staffing scheme in the staffing scheme parent population respectively and continue to execute until the repeated execution end condition is reached;

[0057] The second screening module screens the target task scheduling combination population according to the corresponding fitness of each task scheduling combination in the target task scheduling combination population to obtain the first target task scheduling combination.

[0058] In a third aspect, the present application further provides a computer device. The computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the following steps when executing the computer program:

[0059] For the multiple steps decomposed from the task, obtain multiple step execution sequences composed of multiple steps and satisfying the dependency relationship between the steps, as well as multiple staffing plans with a fixed number of people and satisfying the corresponding skill requirements for completing the multiple steps;

[0060] Obtain a step execution sequence parent population determined by a plurality of step execution sequences, obtain a staffing scheme parent population determined by a plurality of staffing schemes, update the step execution sequences in the step execution sequence parent population and the staffing schemes in the staffing scheme parent population respectively, and obtain a step execution sequence intermediate population and a staffing scheme intermediate population;

[0061] Determine a first temporary population based on at least one of the parent population of the step execution sequence or the intermediate population of the step execution sequence, and determine a second temporary population based on at least one of the parent population of the staffing scheme or the intermediate population of the staffing scheme;

[0062] Based on the first temporary population and the second temporary population, a task scheduling combination consisting of a step execution sequence and a personnel configuration scheme is obtained, and based on the corresponding fitness of the task scheduling combination, the task scheduling combination is screened to obtain a target task scheduling combination population, wherein the fitness is used to reflect the task scheduling efficiency when personnel simulation configuration and simulated execution are performed on the step execution sequence in the corresponding task scheduling combination based on the personnel configuration scheme in the corresponding task scheduling combination;

[0063] Determine a new step execution sequence parent population based on the first temporary population, determine a new staffing scheme parent population based on the second temporary population, return to the steps of updating the step execution sequence in the step execution sequence parent population and the staffing scheme in the staffing scheme parent population respectively, and continue to execute until the repeated execution end condition is met;

[0064] According to the corresponding fitness of each task scheduling combination in the target task scheduling combination population, the target task scheduling combination population is screened to obtain the first target task scheduling combination.

[0065] In a fourth aspect, the present application further provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the following steps are implemented:

[0066] For the multiple steps decomposed from the task, obtain multiple step execution sequences composed of multiple steps and satisfying the dependency relationship between the steps, as well as multiple staffing plans with a fixed number of people and satisfying the corresponding skill requirements for completing the multiple steps;

[0067] Obtain a step execution sequence parent population determined by a plurality of step execution sequences, obtain a staffing scheme parent population determined by a plurality of staffing schemes, update the step execution sequences in the step execution sequence parent population and the staffing schemes in the staffing scheme parent population respectively, and obtain a step execution sequence intermediate population and a staffing scheme intermediate population;

[0068] Determine a first temporary population based on at least one of the parent population of the step execution sequence or the intermediate population of the step execution sequence, and determine a second temporary population based on at least one of the parent population of the staffing scheme or the intermediate population of the staffing scheme;

[0069] Based on the first temporary population and the second temporary population, a task scheduling combination consisting of a step execution sequence and a personnel configuration scheme is obtained, and based on the corresponding fitness of the task scheduling combination, the task scheduling combination is screened to obtain a target task scheduling combination population, wherein the fitness is used to reflect the task scheduling efficiency when personnel simulation configuration and simulated execution are performed on the step execution sequence in the corresponding task scheduling combination based on the personnel configuration scheme in the corresponding task scheduling combination;

[0070] Determine a new step execution sequence parent population based on the first temporary population, determine a new staffing scheme parent population based on the second temporary population, return to the steps of updating the step execution sequence in the step execution sequence parent population and the staffing scheme in the staffing scheme parent population respectively, and continue to execute until the repeated execution end condition is met;

[0071] According to the corresponding fitness of each task scheduling combination in the target task scheduling combination population, the target task scheduling combination population is screened to obtain the first target task scheduling combination.

[0072] The above-mentioned task scheduling method, device, computer equipment and storage medium optimize the step execution sequence and the personnel configuration plan so that the fitness of the obtained first target task scheduling combination is relatively small. Accordingly, based on the personnel configuration plan in the first target task scheduling combination, the task scheduling efficiency is higher when the step execution sequence in the first target task scheduling combination is simulated by personnel configuration and simulated execution. Subsequently, task scheduling can be performed based on the first target task scheduling combination. On the one hand, the execution efficiency of the task is improved; on the other hand, support is provided for the formulation of the task execution plan to ensure the smooth implementation of the change. BRIEF DESCRIPTION OF THE DRAWINGS

[0073] Figure 1 A flowchart of a task scheduling method in one embodiment;

[0074] Figure 2 A schematic diagram of the dependency relationship between various steps in a task scheduling method in an embodiment;

[0075] Figure 3 A schematic diagram of a personnel configuration scheme in a task scheduling method in one embodiment;

[0076] Figure 4 is a flowchart of a task scheduling method in another embodiment;

[0077] Figure 5 is a flowchart of a task scheduling method in yet another embodiment;

[0078] Figure 6 A dependency diagram between various steps in a task scheduling method in another embodiment;

[0079] Figure 7 is a flowchart of a task scheduling method in yet another embodiment;

[0080] Figure 8 is a structural block diagram of a task scheduling device in one embodiment;

[0081] Fig. 9FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0082] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0083] In IT operation and maintenance work, various tasks usually need to be handled, among which the most common is change tasks. Change tasks are mainly divided into three types: change tasks within the same department group, change tasks between different groups in the same department, and change tasks between different departments. The execution relationship of change tasks is complex, and some change tasks require the collaboration of multiple departments and multiple groups. For these three types of complex change tasks, efficient implementation and smooth completion are crucial. In the execution process of change tasks, there are generally two factors that affect the execution of change tasks: one is human resources; the other is execution time. Different steps in the execution of change tasks require different skills. Due to different professional knowledge reserves or different daily learning focuses, different executors have the same degree of mastery of the same skills. Another key to the execution of change tasks is the execution time, especially the cross-departmental collaborative change tasks have more stringent requirements on the execution time. Therefore, there is an urgent need for a task scheduling method to improve the execution efficiency of change tasks.

[0084] In view of the problems existing in the above-mentioned related technologies, an embodiment of the present invention provides a task scheduling method, which can be applied to a server, a terminal, or a system including a terminal and a server, and is implemented through the interaction between the terminal and the server. Among them, the server can be implemented with an independent server or a server cluster consisting of multiple servers. The terminal can be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, Internet of Things devices and portable wearable devices. The Internet of Things devices can be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, etc. Portable wearable devices can be smart watches, smart bracelets, head-mounted devices, etc. It should be noted that the numbers of "multiple" and the like mentioned in each embodiment of the present application all refer to the number of "at least two", for example, "multiple" refers to "at least two".

[0085] In one embodiment, Figure 1 As shown, a task scheduling method is provided. This embodiment uses the method applied to a server as an example for illustration. The method includes the following steps:

[0086] 102. For the multiple steps decomposed from the task, obtain multiple step execution sequences composed of multiple steps and satisfying the dependency relationship between the steps, as well as multiple staffing plans with a fixed number of people and satisfying the corresponding skill requirements for completing the multiple steps.

[0087] Among them, the task can be a change task or a maintenance task, which is not limited in the embodiment of the present application.

[0088] Tasks can be decomposed based on the work breakdown structure. For example, the task can be to modify the operating system parameters for the Oracle server, which can be decomposed into the following five steps: Step 1: Check whether there is an application connection and disconnect it; Step 2: Stop the database, listener and CRS; Step 3: Modify the operating system parameters and restart; Step 4: Start the database, listener and CRS; Step 5: Apply verification connection.

[0089] In addition, the step execution sequence is explained. In the actual processing process, the server can assign a unique step identification code to each of the multiple steps. For example, the number of multiple steps is n, and the step execution sequence composed of multiple steps and satisfying the dependency relationship between the steps can be shown in Table 1 below:

[0090] Table 1

[0091] Location 1 2 3 ... n-1 n Step ID Code 5 7 1 ... n-1 n

[0092] It should be noted that the step execution sequence shown in Table 1 is a step execution sequence composed of n steps and satisfies the dependency relationship between the steps, wherein the corresponding positions of the steps determine the execution order of the steps.

[0093] For example, task A is decomposed into 7 steps, namely T1, T2, T3, T4, T5, T6 and T7. The step identification codes of T1, T2, T3, T4, T5, T6 and T7 correspond to 1, 2, 3, 4, 5, 6 and 7 respectively. The dependency relationship between each step is as follows: Figure 2 As shown. Figure 2 As shown, there is a dependency relationship between T2 and T3, and the execution of T3 depends on T2, indicating that T3 can only be executed after the execution of T2 is completed. There is a dependency relationship between T4 and T5, and the execution of T5 depends on T4, indicating that T5 can only be executed after the execution of T4 is completed. There is a dependency relationship between T5 and T6 and T7, and the execution of T7 depends on T5 and T6, indicating that T7 can only be executed after the execution of T5 and T6 is completed.

[0094] Based on this, the step execution sequence composed of T1, T2, T3, T4, T5, T6 and T7 and satisfying the dependency relationship between the steps can be shown in the following Table 2:

[0095] Table 2

[0096] Location 1 2 3 4 5 6 7 Step ID Code 4 2 3 5 6 1 7

[0097] The step execution sequence can also be shown in Table 3 below:

[0098] Table 3

[0099] Location 1 2 3 4 5 6 7 Step ID Code 1 2 4 3 5 6 7

[0100] It should be noted that this is just an example to facilitate understanding of a step execution sequence composed of multiple steps and satisfying the dependency relationship between the steps. It does not constitute a limitation on the number of multiple steps decomposed from a task, nor does it constitute a limitation on the step execution sequence. In actual applications, after decomposing a task, it is not limited to being decomposed into 7 steps. It is necessary to determine the number of steps to decompose the task according to the actual situation of the task. In addition, this embodiment does not limit the number of multiple step execution sequences. The number of multiple step execution sequences can be determined according to the number of multiple steps or according to actual conditions.

[0101] In addition, explain the staffing plan. For example, for task B proposed by company A, the number of staff in the corresponding department of company A is m, and the fixed number of staff is p, where p is less than m. Accordingly, the staffing plan can be as follows: Figure 3 It should be noted that Figure 3 Each column in the table can be mapped to a person name. 0 means that the person mapped to it does not participate in the execution of the task, and 1 means that the person mapped to it participates in the execution of the task. Figure 3 The number of 1s in the equation is n.

[0102] For example, if the first column is 0 and the mapped person name is F, it means that F does not participate in the execution of the task; if the second column is 1 and the mapped person name is J, it means that J participates in the execution of the task. It should be noted that the examples here do not constitute a limitation on a fixed number of people and multiple staffing schemes. In actual applications, the fixed number of people can be determined based on at least one of the number of people in the company, the number of tasks or the number of multiple steps.

[0103] 104. Obtain a parent population of step execution sequences determined by a plurality of step execution sequences, obtain a parent population of staffing schemes determined by a plurality of staffing schemes, update the step execution sequences in the parent population of step execution sequences and the staffing schemes in the parent population of staffing schemes respectively, and obtain an intermediate population of step execution sequences and an intermediate population of staffing schemes.

[0104] Among them, the step execution sequence parent population can contain multiple step execution sequences, and the staffing plan parent population can contain multiple staffing plans.

[0105] Specifically, the step execution sequence in the step execution sequence parent population and the staffing scheme in the staffing scheme parent population are updated respectively, and the intermediate population of the step execution sequence and the intermediate population of the staffing scheme are obtained, including but not limited to:

[0106] Obtaining a coding sequence corresponding to the step execution sequence in the parent population of the step execution sequence, where the coding sequence is determined according to the step identification code and the step execution order in the corresponding step execution sequence, performing mutation or crossover processing on the coding sequence corresponding to the parent population of the step execution sequence, and restoring the processed coding sequence to obtain an intermediate population of the step execution sequence;

[0107] Obtain the coding sequence corresponding to the staffing scheme in the parent population of the staffing scheme, perform mutation or crossover processing on the coding sequence corresponding to the parent population of the staffing scheme, and restore the processed coding sequence to obtain the intermediate population of the staffing scheme.

[0108] It should be noted that each step execution sequence in the intermediate population of step execution sequences is also composed of multiple steps and satisfies the dependency relationship between the steps. Each staffing scheme in the intermediate population of staffing schemes is a staffing scheme with a fixed number of people and meets the corresponding skill requirements for completing multiple steps.

[0109] 106. Determine a first temporary population based on at least one of the parent population of the step execution sequence or the intermediate population of the step execution sequence, and determine a second temporary population based on at least one of the parent population of the staffing plan or the intermediate population of the staffing plan.

[0110] 108. Based on the first temporary population and the second temporary population, a task scheduling combination consisting of a step execution sequence and a personnel allocation plan is obtained, and based on the corresponding fitness of the task scheduling combination, the task scheduling combination is screened to obtain a target task scheduling combination population; the fitness is used to reflect the task scheduling efficiency when personnel are simulated and executed for the step execution sequence in the corresponding task scheduling combination based on the personnel allocation plan in the corresponding task scheduling combination.

[0111] Among them, the corresponding fitness of the task scheduling combination can be: based on the personnel configuration scheme in the corresponding task scheduling combination, the execution time when the personnel simulation configuration and simulation execution are performed on the step execution sequence in the corresponding task scheduling combination. Based on this, it can be understood that the fitness is negatively correlated with the task scheduling efficiency. The smaller the fitness, the higher the task scheduling efficiency.

[0112] Specifically, the first temporary population may include a step execution sequence parent population and a step execution sequence intermediate population, and the second temporary population may include a staffing plan parent population and a staffing plan intermediate population; step 108 may include: for any step execution sequence in the first temporary population, randomly selecting any staffing plan and any step execution sequence from the second temporary population to form a third task scheduling combination; sorting the fitness of each third task scheduling combination from small to large to obtain a third sorting result; screening the task scheduling combination based on the third sorting result to obtain a second target task scheduling combination, and the second target task scheduling combination constitutes a target task scheduling combination population.

[0113] Among them, the third task scheduling combination ranked first in the third sorting result can be used as the second target task scheduling combination.

[0114] 110. Determine a new step execution sequence parent population based on the first temporary population, determine a new staffing plan parent population based on the second temporary population, return to the steps of updating the step execution sequence in the step execution sequence parent population and the staffing plan in the staffing plan parent population respectively, and continue to execute until the repeated execution end condition is reached.

[0115] The repeated execution end condition may be that the number of times the step execution sequence in the step execution sequence parent population is updated reaches a preset number.

[0116] Specifically, determining a new step execution sequence parent population based on the first temporary population may include: sorting the fitness of each third task scheduling combination from small to large, selecting the step execution sequences in a preset number of third task scheduling combinations before sorting, and forming a new step execution sequence parent population.

[0117] Determining a new parent population of staffing solutions based on the second temporary population may include: sorting the fitness of each third task scheduling combination from small to large, selecting staffing solutions from a preset number of third task scheduling combinations before sorting, and forming a new parent population of staffing solutions.

[0118] 112. According to the corresponding fitness of each task scheduling combination in the target task scheduling combination population, the target task scheduling combination population is screened to obtain a first target task scheduling combination.

[0119] Specifically, the fitness of each second target task scheduling combination in the target task scheduling combination population can be sorted from small to large, and the second target task scheduling combination corresponding to the first ranked fitness is selected as the first target task scheduling combination. It can be understood that task scheduling can be performed based on the second target task scheduling combination corresponding to the minimum fitness, which can improve task scheduling efficiency.

[0120] After the first target task scheduling combination is obtained, the tasks may be scheduled based on the first target task scheduling combination.

[0121] In the above-mentioned task scheduling method, by optimizing the step execution sequence and the personnel allocation plan, the fitness of the obtained first target task scheduling combination is smaller. Accordingly, based on the personnel allocation plan in the first target task scheduling combination, the task scheduling efficiency is higher when the step execution sequence in the first target task scheduling combination is simulated by personnel configuration and simulated execution. Subsequently, task scheduling can be performed based on the first target task scheduling combination. On the one hand, the execution efficiency of the task is improved; on the other hand, support is provided for the formulation of the task execution plan to ensure the smooth implementation of the change.

[0122] In one embodiment, Figure 4 As shown, the first temporary population includes a step execution sequence parent population and a step execution sequence intermediate population, and the second temporary population includes a staffing scheme parent population and a staffing scheme intermediate population; based on the first temporary population and the second temporary population, a task scheduling combination consisting of a step execution sequence and a staffing scheme is obtained, and based on the corresponding fitness of the task scheduling combination, the task scheduling combination is screened to obtain a target task scheduling combination population, including:

[0123] 402. Based on the first temporary population and the parent population of the staffing scheme, a first task scheduling combination consisting of a step execution sequence and a staffing scheme is obtained; based on the second temporary population and the parent population of the step execution sequence, a second task scheduling combination consisting of a step execution sequence and a staffing scheme is obtained.

[0124] Specifically, based on the first temporary population and the parent population of the staffing scheme, obtaining a first task scheduling combination consisting of a step execution sequence and a staffing scheme may include:

[0125] For any step execution sequence in the first temporary population, any staffing scheme is randomly selected from the staffing scheme parent population and any step execution sequence in the first temporary population to form a first task scheduling combination.

[0126] For example, the first temporary population includes step execution sequence 1, step execution sequence 2, step execution sequence 3, step execution sequence 4, step execution sequence 5 and step execution sequence 6, and the staffing scheme parent population includes staffing scheme 1, staffing scheme 2 and staffing scheme 3. Using the above method of obtaining the first task scheduling combination, for step execution sequence 1, a staffing scheme can be selected from staffing scheme 1, staffing scheme 2 and staffing scheme 3 and step execution sequence 1 to form a set of first task scheduling combinations. The same is true for other step execution sequences, and finally 6 sets of first task scheduling combinations can be obtained.

[0127] It can be understood that any step execution sequence in the first temporary population only constitutes a set of first task scheduling combinations. The reason why an exhaustive method is not used to obtain all combinations of the first temporary population and the parent population of the personnel allocation plan is because exhaustive method has the problems of large amount of calculation and low efficiency. Therefore, this embodiment can adopt a method of only constituting a set of first task scheduling combinations for any step execution sequence in the first temporary population to obtain the first task scheduling combination composed of the step execution sequence and the personnel allocation plan, thereby reducing the amount of calculation and improving efficiency.

[0128] Specifically, based on the second temporary population and the step execution sequence parent population, obtaining the second task scheduling combination consisting of the step execution sequence and the staffing scheme may include: for any staffing scheme in the second temporary population, randomly selecting any step execution sequence from the step execution sequence parent population and any staffing scheme in the second temporary population to form the second task scheduling combination. It should be noted that the explanation of constituting the second task scheduling combination can refer to the explanation of constituting the first task scheduling combination, which will not be repeated here.

[0129] 404. Based on the fitness of each of the first task scheduling combination and the second task scheduling combination, sort all the first task scheduling combinations and all the second task scheduling combinations respectively to obtain a first sorting result and a second sorting result.

[0130] 406. Perform task scheduling combination screening based on the first sorting result and the second sorting result to obtain a second target task scheduling combination, and form a target task scheduling combination population with the second target task scheduling combination.

[0131] If the first sorting result and the second sorting result are both sorted based on fitness from small to large, it can be understood that the smaller the fitness, the higher the task scheduling efficiency. Therefore, the first task scheduling combination ranked first in the first sorting result and the second task scheduling combination ranked first in the second sorting result can be used as the second target task scheduling combination.

[0132] Based on the fitness, the first task scheduling combination ranked first in the first sorting result and the second task scheduling combination ranked first in the second sorting result may be compared, and the task scheduling combination with the smaller fitness may be used as the second target task scheduling combination.

[0133] It should be noted that the second target task scheduling combination here is obtained by screening the task scheduling combination based on the first sorting result and the second sorting result, which is different from the basis for obtaining the second target task scheduling combination in the above embodiment.

[0134] In this embodiment, by sorting all first task scheduling combinations and all second task scheduling combinations, a first sorting result and a second sorting result are obtained; based on the first sorting result and the second sorting result, task scheduling combinations are screened to obtain a second target task scheduling combination, and the second target task scheduling combination constitutes a target task scheduling combination population. Thus, the second target task scheduling combination in the target task scheduling combination population is a task scheduling combination with a small fitness.

[0135] In one embodiment, determining a new step execution sequence parent population based on the first temporary population may include:

[0136] The fitness of each first task scheduling combination is sorted from small to large, and the step execution sequences in a preset number of first task scheduling combinations before sorting are selected to form a new step execution sequence parent population.

[0137] It is understandable that the number of task scheduling combinations in the step execution sequence parent population may be a preset number of combinations, and the value of the preset number may be determined based on actual conditions.

[0138] In one embodiment, determining a new staffing scheme parent population based on the second temporary population includes:

[0139] The fitness of each second task scheduling combination is sorted from small to large, and the personnel allocation schemes in a preset number of second task scheduling combinations before sorting are selected to form a new parent population of personnel allocation schemes.

[0140] In one embodiment, Figure 5 As shown in FIG, the process of determining the fitness of the task scheduling combination includes:

[0141] 502. Obtain a dependency graph determined based on multiple steps and dependencies between the steps, and determine a target step on a path with the largest total workload in the dependency graph according to the workload corresponding to each of the multiple steps.

[0142] For example, the plurality of steps include T1, T2, T3, T4, T5, T6, T7, T8, T9 and T10, and the workloads of T1 to T10 correspond to 7, 2, 15, 8, 10, 2, 5, 8, 2 and 3, respectively. Among them, the execution of T5 depends on T1 and T2, the execution of T4 and T7 both depend on T5, the execution of T6 depends on T4 and T7, the execution of T8 depends on T7, the execution of T9 depends on T3 and T6, and the execution of T10 depends on T9.

[0143] Accordingly, the determined dependency graph can be as follows Figure 6 According to the corresponding workload of each step from T1 to T10, Figure 6The path with the largest total workload may be the path with the dotted line, and accordingly, the target steps may include: T1, T4, T5, T6, T9 and T10.

[0144] It should be noted that the path with the largest total workload can be called the critical path.

[0145] 504. For the current task scheduling combination, according to the target step, the required skills for each of the multiple steps, the current staffing plan in the current task scheduling combination, the skills and skill proficiency of each person in the current staffing plan, the current step execution sequence in the current task scheduling combination is simulated and executed to obtain the corresponding fitness of the current task scheduling combination.

[0146] Among them, one step may only require one skill, but one person can have multiple skills.

[0147] In this embodiment, by combining the target step, the required skills for each of the multiple steps, the current personnel allocation plan in the current task scheduling combination, the skills possessed by each person in the current personnel allocation plan, and the information on skill proficiency, the current step execution sequence in the current task scheduling combination is simulated by personnel configuration and the actual execution of the simulated execution task is performed to obtain the corresponding fitness of the current task scheduling combination, so that the fitness can accurately reflect the task scheduling efficiency.

[0148] In one embodiment, determining the target step on the path with the largest total workload in the dependency graph according to the workload of each step in the plurality of steps includes:

[0149] Determine the earliest execution end time of each step according to the corresponding workload of each step in the multiple steps;

[0150] Determine the latest execution end time of each step according to the corresponding workload of each step in the multiple steps and the earliest execution end time of each step;

[0151] Determine whether the earliest execution end time of each step is equal to the latest execution end time of the same step, and take the step where the two are equal as the target step.

[0152] In one embodiment, determining the earliest execution end time of each step according to the workload of each step in the multiple steps includes:

[0153] A first flag bit is set for each step, and the first flag bit is set with a first initial value.

[0154] Among them, the first initial value can be 0, or it can be other numerical values, text or symbols. The first initial value only needs to be different from the first determined end identifier, and the embodiment of the present application does not limit this.

[0155] A reference execution order of the multiple steps is randomly determined, and the multiple steps are traversed from front to back according to the reference execution order.

[0156] Step 604 is explained in combination with the above-mentioned multiple steps including 10 steps T1 to T10. For example, the reference execution order of the 10 steps may be T1, T2, T3, T4, T5, T6, T7, T8, T9 and T10. Accordingly, T1 is traversed first and T10 is traversed last during the traversal process.

[0157] For the current step currently traversed, determine whether the first flag bit of the current step is the first initial value.

[0158] If the first flag bit of the current step is not the first initial value, skip the current step; if the first flag bit of the current step is the first initial value, determine whether there is an adjacent preceding step that satisfies the dependency relationship with the current step.

[0159] Among them, the first flag bit of the current step is not the first initial value, indicating that the earliest execution end time of the current step has been determined, so the current step is skipped.

[0160] If it does not exist, the earliest execution start time of the current step is set to 0, the earliest execution end time of the current step is set to the workload of the current step, and the first flag bit of the current step is set to the first confirmed end mark.

[0161] It is understandable that if there is no adjacent preceding step that satisfies the dependency relationship with the current step, it indicates that the execution of the current step does not need to depend on any step, and accordingly, the earliest execution end time of the current step does not need to depend on the earliest execution end time of any step. If there is an adjacent preceding step that satisfies the dependency relationship with the current step, it indicates that the execution of the current step needs to depend on the adjacent preceding step, and the earliest execution end time of the adjacent preceding step needs to be determined before the earliest execution end time of the current step can be determined.

[0162] In combination with the above steps including the 10 steps T1 to T10, the adjacent preceding steps are explained. For example, the current step is T5. Figure 6 It can be seen that T1 and T2 are the adjacent preceding steps of T5. For example, the current step is T1. Figure 6 It can be seen that T1 has no adjacent preceding steps.

[0163] If so, determine whether the first flag bits of the adjacent preceding steps that satisfy the dependency relationship with the current step are not the first initial value.

[0164] If none of them is the first initial value, the earliest execution start time of the current step is set to the maximum value of the earliest execution end time of each adjacent preceding step. According to the earliest execution start time of the current step and the workload of the current step, the earliest execution end time of the current step is determined, and the first flag bit of the current step is set to the first determined end mark.

[0165] It can be understood that if none of them is the first initial value, it means that the earliest execution end time of the adjacent preceding steps of the current step has been determined. In this case, the earliest execution end time of the current step can be determined.

[0166] Since for the current step with adjacent predecessor steps, during the execution process, the current step needs to wait for the adjacent predecessor steps to be completed before it can start execution, therefore, the earliest execution start time of the current step is set to the maximum value of the earliest execution end times of each adjacent predecessor step to ensure that the current step is executed only after the adjacent predecessor steps of the current step are completed.

[0167] Among them, determining the earliest execution end time of the current step based on the earliest execution start time of the current step and the workload of the current step can include: calculating the sum of the earliest execution start time of the current step and the workload of the current step, and using the sum as the earliest execution end time of the current step.

[0168] If they are not all the first initial values, skip the current step.

[0169] After the current traversal process has completed traversing multiple steps, determine whether the first flag bits of the multiple steps are all set to the first definite end marker. If they are all set to the first definite end marker, the overall traversal process ends. If they are not all set to the first definite end marker, return to the step of traversing multiple steps from front to back according to the reference execution order and enter the next traversal process.

[0170] In one embodiment, determining the latest execution end time of each step according to the workload corresponding to each step in the multiple steps and the earliest execution end time of each step includes:

[0171] A second flag is set for each step, and the second flag is set with a second initial value.

[0172] Among them, the second initial value can be 0, or it can be other numerical values, text or symbols. The second initial value only needs to be different from the second confirmed end identifier, and the embodiment of the present application does not limit this.

[0173] A reference execution order of the multiple steps is randomly determined, and the multiple steps are traversed from front to back according to the reference execution order.

[0174] Among them, the explanation of the execution order referred to here can refer to the above embodiment, and will not be repeated here.

[0175] For the current step currently traversed, determine whether the second flag bit of the current step is the second initial value.

[0176] If the second flag bit of the current step is not the second initial value, the current step is skipped; if the second flag bit of the current step is the second initial value, it is determined whether there is an adjacent subsequent step that satisfies the dependency relationship with the current step.

[0177] In combination with the above steps including the 10 steps T1 to T10, the adjacent subsequent steps are explained. For example, the current step is T5. Figure 6 It can be seen that T4 and T7 are the adjacent subsequent steps of T5. For example, the current step is T4, according to Figure 6 It can be seen that T6 is the adjacent subsequent step of T4. For example, the current step is T10 or T8. Figure 6 It can be seen that there are no adjacent subsequent steps between T10 and T8.

[0178] If it does not exist, the latest execution end time of the current step is set to the maximum value of the earliest execution end time of each step. According to the latest execution end time of the current step and the workload of the current step, the latest execution start time of the current step is determined, and the second flag bit of the current step is set to the second confirmed end flag.

[0179] Specifically, based on the latest execution end time of the current step and the workload of the current step, determining the latest execution start time of the current step may include: calculating the difference between the latest execution end time of the current step and the workload of the current step, and taking the difference as the latest execution start time of the current step.

[0180] If so, determine whether the second flag bits of adjacent subsequent steps that satisfy the dependency relationship with the current step are not the second initial value.

[0181] If none of them is the second initial value, the latest execution end time of the current step is set to the minimum value of the latest execution start time of each adjacent subsequent step. According to the latest execution end time of the current step and the workload of the current step, the latest execution start time of the current step is determined, and the second flag bit of the current step is set to the second determined end mark.

[0182] If they are not both the second initial value, skip the current step.

[0183] After the current traversal process has completed traversing multiple steps, determine whether the second flag bits of the multiple steps are all set to the second definite end marker. If they are all set to the second definite end marker, the overall traversal process ends. If they are not all set to the second definite end marker, return to the step of traversing the multiple steps from front to back according to the reference execution order and enter the next traversal process.

[0184] For ease of understanding, in multiple steps including 10 steps T1 to T10, the workloads of T1 to T10 correspond to 7, 2, 15, 8, 10, 2, 5, 8, 2 and 3 respectively, and the determined dependency diagram is as follows Figure 6 In the case shown in FIG. 4 , the earliest execution start time, earliest execution end time, latest execution start time and latest execution end time corresponding to each of the 10 steps T1 to T10 can be shown in the following Table 4:

[0185] Table 4

[0186]

[0187]

[0188] It should be noted that, in Table 4, ES represents the earliest execution start time, EF represents the earliest execution end time, LS represents the latest execution start time, and LF represents the latest execution end time. Based on Table 4, it can be seen that the target steps include: T1, T4, T5, T6, T9 and T10.

[0189] In one embodiment, according to the target step, the required skills of each step in the multiple steps, the current personnel configuration scheme in the current task scheduling combination, the skills and skill proficiency of each person in the current personnel configuration scheme, the personnel simulation configuration and simulation execution are performed on the current step execution sequence in the current task scheduling combination to obtain the corresponding fitness of the current task scheduling combination, including:

[0190] A minimum value is determined from the earliest execution start times of each of the multiple steps, a maximum value is determined from the earliest execution end times of each of the multiple steps, and a traversal time period is determined based on the minimum value and the maximum value.

[0191] For example, the multiple steps include 10 steps from T1 to T10, and the earliest execution start time, earliest execution end time, latest execution start time and latest execution end time corresponding to the 10 steps from T1 to T10 are shown in Table 4. As shown in Table 4, the minimum value is 0, the maximum value is 32, and the traversal time period can be 0 minutes to 32 minutes.

[0192] For the current step execution sequence in the current task scheduling combination, the steps in the current step execution sequence are traversed in sequence until all steps in the current step execution sequence have been simulated and executed; according to the earliest simulation execution end time of each step in the current step execution sequence, the fitness of the current task scheduling combination is determined; wherein, for the traversed current step, if Figure 7 As shown, the processing of the current step includes:

[0193] 702. If the current step is in a non-simulated execution state, determine whether the adjacent preceding steps that satisfy the dependency relationship with the current step have all been simulated and executed.

[0194] Specifically, according to the simulated earliest execution end time of each step in the current step execution sequence, determining the fitness of the current task scheduling combination may include: determining the maximum value from the earliest execution end times of each of the multiple steps, and using the maximum value as the fitness of the current task scheduling combination.

[0195] For example, the current step execution sequence is as shown in Table 2. The steps in the current step execution sequence can be looped and traversed in sequence according to the positions of the steps. Accordingly, the order of the looping and traversal can be T4, T2, T3, T5, T6, T1, T7, and then looped and traversed again from T4.

[0196] Among them, the explanation of adjacent pre-steps can refer to the above embodiments and will not be repeated here.

[0197] It should be noted that, for a current step that does not have an adjacent preceding step, the default judgment result is that the adjacent preceding steps that satisfy the dependency relationship with the current step are all simulated and executed.

[0198] 704. If all simulations have been completed, determine whether the current personnel allocation plan in the current task scheduling combination has a target person who has the required skills for the current step and is not currently participating in the step simulation execution.

[0199] It is understandable that the target personnel must be those who are involved in the execution of the task.

[0200] 706. If it exists, a target person is assigned to the current step for simulation execution. According to the skill proficiency of the assigned target person, the remaining workload of the current step is converted into the remaining simulation execution time. If there is no interruption in the simulation execution period corresponding to the remaining simulation execution time, then after the simulation execution of the current step is completed, the earliest simulation execution end time of the current step is set to the simulation execution completion time of the current step.

[0201] The conversion method may be: calculating the ratio between the remaining workload of the current step and the skill proficiency of the assigned target personnel, determining whether the ratio is an integer, and if not, processing the ratio using the step-up method, and using the processed ratio as the remaining simulation execution time. For example, the converted ratio is 7.2, and after being processed by the step-up method, the processed ratio is 8.

[0202] It is understandable that several step execution paths can be determined based on multiple steps and the dependencies between steps. In order to ensure that the target step on the path with the largest total workload is not unbalanced, causing the corresponding workload of other paths to be much larger than the corresponding workload of the path with the largest total workload, therefore, for balance considerations, a target person is randomly assigned to the current step for simulation execution, rather than assigning the target person with the highest skill proficiency among all target persons to the current step.

[0203] 708. If an interruption occurs during the simulation execution period corresponding to the remaining simulation execution duration, the remaining workload of the current step is updated according to the simulation execution progress corresponding to the simulation execution interruption time of the current step.

[0204] It can be understood that the simulation execution progress refers to the amount of work that has been simulated and executed in the current step during the simulation execution process.

[0205] 710. If it does not exist, determine whether the current step is the target step. If it is the target step, select a designated person from the current staffing plan who has the required skills for the current step and is not currently participating in the simulation execution of the target step, and interrupt the simulation execution of the step in which the designated person is currently participating. According to the skill proficiency of the assigned designated person, convert the remaining workload of the current step into the remaining simulation execution time. If there is no interruption within the simulation execution period corresponding to the remaining simulation execution time, then after the current step model is executed, set the earliest simulation execution end time of the current step to the simulation execution completion time of the current step.

[0206] It can be understood that if it is a target step, the reason why the simulation execution of the step in which the designated person is currently participating is interrupted and the designated person is assigned to the current step for simulation execution is because the target step is the step on the path with the largest total workload. Therefore, if it does not exist, the target step is set to be executed first, thereby reducing the fitness of the current task scheduling combination.

[0207] 712. If an interruption occurs during the simulation execution period corresponding to the remaining simulation execution duration, the remaining workload of the current step is updated according to the simulation execution progress corresponding to the simulation execution interruption time of the current step.

[0208] In this embodiment, when assigning personnel to the current step for simulation execution, it is determined whether the current step is the target step. If it is the target step, a designated person who has the required skills for the current step and is not currently participating in the simulation execution of the target step is selected from the current personnel allocation plan, thereby ensuring that the target step can be executed first, thereby reducing the fitness of the current task scheduling combination.

[0209] In one embodiment, if the current step is in a simulated execution state, the remaining workload of the current step is converted into the remaining simulated execution time according to the skill proficiency of the target personnel who executes the current step. If no interruption occurs during the simulated execution period corresponding to the remaining simulated execution time, after the simulation execution of the current step is completed, the earliest simulation execution end time of the current step is set as the simulation execution completion time of the current step;

[0210] If an interruption occurs during the simulation execution period corresponding to the remaining simulation execution time, the remaining workload of the current step is updated according to the simulation execution progress corresponding to the simulation execution interruption time of the current step;

[0211] If it does not exist, determine whether the current step is the target step. If it is the target step, select a designated person who has the required skills for the current step and is not currently participating in the simulation execution of the target step from the current staffing plan, interrupt the simulation execution of the step currently participated by the designated person, and convert the remaining workload of the current step into the remaining simulation execution time according to the skill proficiency of the assigned designated person. If there is no interruption in the simulation execution period corresponding to the remaining simulation execution time, then after the current step model is executed, set the earliest simulation execution end time of the current step to the simulation execution completion time of the current step;

[0212] If an interruption occurs during the simulation execution period corresponding to the remaining simulation execution duration, the remaining workload of the current step is updated according to the simulation execution progress corresponding to the simulation execution interruption moment of the current step.

[0213] Among them, the explanation of the terms and steps involved in this embodiment can refer to the explanation of the above steps 708 to 714, which will not be repeated here.

[0214] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.

[0215] Based on the same inventive concept, the embodiment of the present application also provides a task scheduling device for implementing the task scheduling method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more task scheduling device embodiments provided below can refer to the limitations on the task scheduling method above, and will not be repeated here.

[0216] In one embodiment, Figure 8 As shown, a task scheduling device is provided, including: a step execution sequence acquisition module 802, a population acquisition module 804, a temporary population determination module 806, a first screening module 808, a new population determination module 810 and a second screening module 812, wherein:

[0217] The step execution sequence acquisition module 802 is used to acquire, for the multiple steps decomposed from the task, multiple step execution sequences composed of multiple steps and satisfying the dependency relationship between the steps, and multiple staffing solutions with a fixed number of people and satisfying the corresponding skill requirements for completing the multiple steps;

[0218] The population acquisition module 804 is used to acquire a step execution sequence parent population determined by a plurality of step execution sequences, acquire a staffing scheme parent population determined by a plurality of staffing schemes, and respectively update the step execution sequences in the step execution sequence parent population and the staffing schemes in the staffing scheme parent population to obtain a step execution sequence intermediate population and a staffing scheme intermediate population;

[0219] A temporary population determination module 806 is used to determine a first temporary population based on at least one of the parent population of the step execution sequence or the intermediate population of the step execution sequence, and to determine a second temporary population based on at least one of the parent population of the staffing scheme or the intermediate population of the staffing scheme;

[0220] The first screening module 808 is used to obtain a task scheduling combination consisting of a step execution sequence and a personnel configuration scheme based on the first temporary population and the second temporary population, and to screen the task scheduling combination based on the corresponding fitness of the task scheduling combination to obtain a target task scheduling combination population; the fitness is used to reflect the task scheduling efficiency when personnel simulation configuration and simulation execution are performed on the step execution sequence in the corresponding task scheduling combination based on the personnel configuration scheme in the corresponding task scheduling combination;

[0221] A new population determination module 810 is used to determine a new step execution sequence parent population based on the first temporary population, determine a new staffing scheme parent population based on the second temporary population, return to the steps of respectively updating the step execution sequence in the step execution sequence parent population and the staffing scheme in the staffing scheme parent population and continue to execute until the repeated execution end condition is met;

[0222] The second screening module 812 screens the target task scheduling combination population according to the corresponding fitness of each task scheduling combination in the target task scheduling combination population to obtain a first target task scheduling combination.

[0223] In one embodiment, the first temporary population includes a step execution sequence parent population and a step execution sequence intermediate population, and the second temporary population includes a staffing scheme parent population and a staffing scheme intermediate population; the first screening module 808 includes:

[0224] An acquisition unit is used to acquire a first task scheduling combination consisting of a step execution sequence and a staffing scheme based on a first temporary population and a parent population of a staffing scheme, and to acquire a second task scheduling combination consisting of a step execution sequence and a staffing scheme based on a second temporary population and a parent population of a step execution sequence;

[0225] A sorting unit, configured to sort all first task scheduling combinations and all second task scheduling combinations respectively based on the fitness of each of the first task scheduling combination and the second task scheduling combination, to obtain a first sorting result and a second sorting result;

[0226] The composition unit is used to screen the task scheduling combination based on the first sorting result and the second sorting result, obtain the second target task scheduling combination, and form a target task scheduling combination population from the second target task scheduling combination.

[0227] In one embodiment, the device comprises:

[0228] A target step determination module is used to obtain a dependency graph determined based on multiple steps and dependencies between the steps, and determine a target step on a path with the largest total workload in the dependency graph according to the workload corresponding to each of the multiple steps;

[0229] The fitness acquisition module is used to simulate the personnel configuration and execution of the current step execution sequence in the current task scheduling combination according to the target step, the required skills for each of the multiple steps, the current staffing plan in the current task scheduling combination, the skills and skill proficiency of each person in the current staffing plan, so as to obtain the corresponding fitness of the current task scheduling combination.

[0230] In one embodiment, the target step determination module includes:

[0231] An earliest execution end time determination unit, used to determine the earliest execution end time of each step according to the corresponding workload of each step in the multiple steps;

[0232] A latest execution end time determination unit, used to determine the latest execution end time of each step according to the corresponding workload of each step in the multiple steps and the earliest execution end time of each step;

[0233] The target step determination unit is used to determine whether the earliest execution end time of each step is equal to the latest execution end time of the same step, and take the step where the two are equal as the target step.

[0234] In one embodiment, the earliest execution end time determination unit includes:

[0235] A first flag setting subunit, used for setting a first flag for each step, wherein the first flag is set with a first initial value;

[0236] A first traversal subunit is used to randomly determine a reference execution order of multiple steps, and traverse the multiple steps from front to back according to the reference execution order;

[0237] A first judgment subunit is used to judge whether the first flag bit of the current step is a first initial value for the current step currently traversed;

[0238] The second judgment subunit is used to skip the current step if the first flag bit of the current step is not the first initial value; if the first flag bit of the current step is the first initial value, determine whether there is an adjacent preceding step that satisfies the dependency relationship with the current step;

[0239] A first setting subunit is used to set the earliest execution start time of the current step to 0, set the earliest execution end time of the current step to the workload of the current step, and set the first flag bit of the current step to the first confirmed end mark if it does not exist;

[0240] A third judgment subunit is used to judge whether the first flag bits of the adjacent preceding steps that satisfy the dependency relationship with the current step are not the first initial value, if any;

[0241] The second setting subunit is used for setting the earliest execution start time of the current step to the maximum value of the earliest execution end time of each adjacent preceding step if none of them is the first initial value, determining the earliest execution end time of the current step according to the earliest execution start time of the current step and the workload of the current step, and setting the first flag bit of the current step to the first determined end mark;

[0242] A first skip subunit, used for skipping the current step if both are not the first initial value;

[0243] The fourth judgment sub-unit is used to judge whether the first flag bits of multiple steps are all set to the first definite end identifier after the current traversal process has completed traversing multiple steps. If they are all set to the first definite end identifier, the overall traversal process is terminated; if they are not all set to the first definite end identifier, it returns to the step of traversing multiple steps from front to back according to the reference execution order and enters the next traversal process.

[0244] In one embodiment, the latest execution end time determination unit includes:

[0245] A second flag bit setting subunit, used for setting a second flag bit for each step, wherein the second flag bit is set with a second initial value;

[0246] A second traversal subunit is used to randomly determine a reference execution order of the multiple steps, and traverse the multiple steps from front to back according to the reference execution order;

[0247] A fifth judgment subunit is used to judge whether the second flag bit of the current step is the second initial value for the current step currently traversed;

[0248] The sixth judgment subunit is used to skip the current step if the second flag bit of the current step is not the second initial value; if the second flag bit of the current step is the second initial value, determine whether there is an adjacent post-step that satisfies the dependency relationship with the current step;

[0249] The third setting subunit is used for setting the latest execution end time of the current step to the maximum value of the earliest execution end time of each step if it does not exist, determining the latest execution start time of the current step according to the latest execution end time of the current step and the workload of the current step, and setting the second flag bit of the current step to the second determined end flag;

[0250] a seventh judgment subunit, for judging, if any, whether the second flag bits of the adjacent subsequent steps satisfying the dependency relationship with the current step are not the second initial value;

[0251] a fourth setting subunit, for setting the latest execution end time of the current step to the minimum value of the latest execution start times of the adjacent subsequent steps if none of them are the second initial values, determining the latest execution start time of the current step according to the latest execution end time of the current step and the workload of the current step, and setting the second flag bit of the current step to the second determined end flag;

[0252] A second skip subunit is used for skipping the current step if both are not the second initial value;

[0253] The eighth judgment sub-unit is used to judge whether the second flag bits of multiple steps are all set to the second definite end mark after the current traversal process has completed traversing multiple steps. If they are all set to the second definite end mark, the overall traversal process is ended; if they are not all set to the second definite end mark, it returns to the step of traversing multiple steps from front to back according to the reference execution order and enters the next traversal process.

[0254] In one embodiment, the fitness acquisition module includes:

[0255] A traversal time period determination unit, used to determine a minimum value from the earliest execution start time of each of the multiple steps, determine a maximum value from the earliest execution end time of each of the multiple steps, and determine the traversal time period based on the minimum value and the maximum value;

[0256] The loop traversal unit is used to loop through the steps in the current step execution sequence in the current task scheduling combination in sequence until all steps in the current step execution sequence have been simulated and executed; according to the earliest simulation execution end time of each step in the current step execution sequence, determine the fitness of the current task scheduling combination; wherein, for the traversed current step, the processing process of the current step includes:

[0257] The first judgment unit is used to judge whether the adjacent preceding steps that satisfy the dependency relationship with the current step have all been simulated and executed if the current step is in a non-simulated execution state;

[0258] The second judgment unit is used to judge whether there is a target person who has the required skills for the current step and is not currently participating in the step simulation execution in the current personnel allocation scheme in the current task scheduling combination if all simulation executions are completed;

[0259] The earliest simulation execution end time setting unit is used to assign a target person to the current step for simulation execution if it exists, and convert the remaining workload of the current step into the remaining simulation execution time according to the skill proficiency of the assigned target person. If there is no interruption in the simulation execution period corresponding to the remaining simulation execution time, then after the simulation execution of the current step is completed, the earliest simulation execution end time of the current step is set to the simulation execution completion time of the current step;

[0260] A first updating unit is used to update the remaining workload of the current step according to the simulation execution progress corresponding to the simulation execution interruption moment of the current step if an interruption occurs within the simulation execution period corresponding to the remaining simulation execution duration;

[0261] The third judgment unit is used to judge whether the current step is the target step if it does not exist. If it is the target step, a designated person who has the required skills for the current step and is not currently participating in the simulation execution of the target step is selected from the current personnel configuration plan, and the simulation execution of the step currently participated by the designated person is interrupted. According to the skill proficiency of the assigned designated person, the remaining workload of the current step is converted into the remaining simulation execution time. If no interruption occurs within the simulation execution period corresponding to the remaining simulation execution time, then after the current step model is executed, the earliest simulation execution end time of the current step is set as the simulation execution completion time of the current step;

[0262] The first updating unit is used to update the remaining workload of the current step according to the simulation execution progress corresponding to the simulation execution interruption moment of the current step if an interruption occurs within the simulation execution period corresponding to the remaining simulation execution duration.

[0263] Each module in the above task scheduling device can be implemented in whole or in part by software, hardware or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to each module.

[0264] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Fig. 9As shown. The computer device includes a processor, a memory and a network interface connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store data such as step execution sequences, personnel configuration plans and task scheduling combinations. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a task scheduling method is implemented.

[0265] Those skilled in the art will understand that Fig. 9 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0266] In one embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the following steps are implemented:

[0267] For the multiple steps decomposed from the task, obtain multiple step execution sequences composed of multiple steps and satisfying the dependency relationship between the steps, as well as multiple staffing plans with a fixed number of people and satisfying the corresponding skill requirements for completing the multiple steps;

[0268] Obtain a step execution sequence parent population determined by a plurality of step execution sequences, obtain a staffing scheme parent population determined by a plurality of staffing schemes, update the step execution sequences in the step execution sequence parent population and the staffing schemes in the staffing scheme parent population respectively, and obtain a step execution sequence intermediate population and a staffing scheme intermediate population;

[0269] Determine a first temporary population based on at least one of the parent population of the step execution sequence or the intermediate population of the step execution sequence, and determine a second temporary population based on at least one of the parent population of the staffing scheme or the intermediate population of the staffing scheme;

[0270] Based on the first temporary population and the second temporary population, a task scheduling combination consisting of a step execution sequence and a personnel configuration scheme is obtained, and based on the corresponding fitness of the task scheduling combination, the task scheduling combination is screened to obtain a target task scheduling combination population, wherein the fitness is used to reflect the task scheduling efficiency when personnel simulation configuration and simulated execution are performed on the step execution sequence in the corresponding task scheduling combination based on the personnel configuration scheme in the corresponding task scheduling combination;

[0271] Determine a new step execution sequence parent population based on the first temporary population, determine a new staffing scheme parent population based on the second temporary population, return to the steps of updating the step execution sequence in the step execution sequence parent population and the staffing scheme in the staffing scheme parent population respectively, and continue to execute until the repeated execution end condition is met;

[0272] According to the corresponding fitness of each task scheduling combination in the target task scheduling combination population, the target task scheduling combination population is screened to obtain the first target task scheduling combination.

[0273] In one embodiment, a computer readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0274] For the multiple steps decomposed from the task, obtain multiple step execution sequences composed of multiple steps and satisfying the dependency relationship between the steps, as well as multiple staffing plans with a fixed number of people and satisfying the corresponding skill requirements for completing the multiple steps;

[0275] Obtain a step execution sequence parent population determined by a plurality of step execution sequences, obtain a staffing scheme parent population determined by a plurality of staffing schemes, update the step execution sequences in the step execution sequence parent population and the staffing schemes in the staffing scheme parent population respectively, and obtain a step execution sequence intermediate population and a staffing scheme intermediate population;

[0276] Determine a first temporary population based on at least one of the parent population of the step execution sequence or the intermediate population of the step execution sequence, and determine a second temporary population based on at least one of the parent population of the staffing scheme or the intermediate population of the staffing scheme;

[0277] Based on the first temporary population and the second temporary population, a task scheduling combination consisting of a step execution sequence and a personnel configuration scheme is obtained, and based on the corresponding fitness of the task scheduling combination, the task scheduling combination is screened to obtain a target task scheduling combination population, wherein the fitness is used to reflect the task scheduling efficiency when personnel simulation configuration and simulated execution are performed on the step execution sequence in the corresponding task scheduling combination based on the personnel configuration scheme in the corresponding task scheduling combination;

[0278] Determine a new step execution sequence parent population based on the first temporary population, determine a new staffing scheme parent population based on the second temporary population, return to the steps of updating the step execution sequence in the step execution sequence parent population and the staffing scheme in the staffing scheme parent population respectively, and continue to execute until the repeated execution end condition is met;

[0279] According to the corresponding fitness of each task scheduling combination in the target task scheduling combination population, the target task scheduling combination population is screened to obtain the first target task scheduling combination.

[0280] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory or optical memory, etc. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).

[0281] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0282] The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the attached claims.

Claims

1. A task scheduling method, characterized in that, the method includes: For multiple steps decomposed from a task, obtain multiple step execution sequences formed by combining the multiple steps and satisfying the inter-step dependency relationships, and multiple personnel allocation plans with a fixed number of personnel and satisfying the corresponding skill requirements for completing the multiple steps; Obtain a step execution sequence parent population determined by the multiple step execution sequences, obtain a personnel allocation plan parent population determined by the multiple personnel allocation plans, and update the step execution sequences in the step execution sequence parent population and the personnel allocation plans in the personnel allocation plan parent population respectively to obtain a step execution sequence intermediate population and a personnel allocation plan intermediate population; Based on at least one of the step execution sequence parent population or the step execution sequence intermediate population, determine a first temporary population, and based on at least one of the personnel allocation plan parent population or the personnel allocation plan intermediate population, determine a second temporary population; Based on the first temporary population and the second temporary population, obtain a task scheduling combination composed of a step execution sequence and a personnel allocation plan, and screen the task scheduling combination based on the fitness corresponding to the task scheduling combination to obtain a target task scheduling combination population, where the fitness is used to reflect the task scheduling efficiency when personnel simulation configuration and simulation execution are performed on the step execution sequence in the corresponding task scheduling combination based on the personnel allocation plan in the corresponding task scheduling combination; Based on the first temporary population, determine a new step execution sequence parent population, based on the second temporary population, determine a new personnel allocation plan parent population, return to the step of updating the step execution sequences in the step execution sequence parent population and the personnel allocation plans in the personnel allocation plan parent population respectively and continue to execute until the repeated execution end condition is reached; According to the fitness corresponding to each task scheduling combination in the target task scheduling combination population, screen the target task scheduling combination population to obtain a first target task scheduling combination.

2. The method according to claim 1, characterized in that, the first temporary population includes the step execution sequence parent population and the step execution sequence intermediate population, and the second temporary population includes the personnel allocation plan parent population and the personnel allocation plan intermediate population; the obtaining a task scheduling combination composed of a step execution sequence and a personnel allocation plan based on the first temporary population and the second temporary population, and screening the task scheduling combination based on the fitness corresponding to the task scheduling combination to obtain a target task scheduling combination population includes: Based on the first temporary population and the personnel allocation plan parent population, obtain a first task scheduling combination composed of a step execution sequence and a personnel allocation plan, and based on the second temporary population and the step execution sequence parent population, obtain a second task scheduling combination composed of a step execution sequence and a personnel allocation plan; Sort all the first task scheduling combinations and all the second task scheduling combinations respectively based on the fitness of each of the first task scheduling combination and the second task scheduling combination, to obtain a first sorting result and a second sorting result; Perform task scheduling combination screening based on the first sorting result and the second sorting result to obtain a second target task scheduling combination, and form a target task scheduling combination population with the second target task scheduling combinations.

3. The method according to claim 1, characterized in that the process of determining the fitness corresponding to a task scheduling combination includes: Obtain a dependency graph determined based on the multiple steps and the dependencies between the steps, and determine a target step on the path with the largest total workload in the dependency graph according to the workload corresponding to each step in the multiple steps; For the current task scheduling combination, perform personnel simulation configuration and simulation execution on the current step execution sequence in the current task scheduling combination according to the target step, the required skills for each step in the multiple steps, the current personnel configuration plan in the current task scheduling combination, the skills and skill proficiency levels possessed by each person in the current personnel configuration plan, to obtain the fitness corresponding to the current task scheduling combination.

4. The method according to claim 3, characterized in that the determining of the target step on the path with the largest total workload in the dependency graph according to the workload corresponding to each step in the multiple steps includes: Determine the earliest execution end time of each step according to the workload corresponding to each step in the multiple steps; Determine the latest execution end time of each step according to the workload corresponding to each step in the multiple steps and the earliest execution end time of each step; Judge whether the earliest execution end time of each step is equal to the latest execution end time of the same step, and take the steps with equal values as the target steps.

5. The method according to claim 4, characterized in that the determining of the earliest execution end time of each step according to the workload corresponding to each step in the multiple steps includes: Set a first flag bit for each step, and each first flag bit is set with a first initial value; Randomly determine a reference execution order of the multiple steps, and traverse the multiple steps in the forward direction according to the reference execution order; For the current step currently traversed, judge whether the first flag bit of the current step is the first initial value; If the first flag bit of the current step is not the first initial value, skip the current step; if the first flag bit of the current step is the first initial value, judge whether there are adjacent preceding steps that satisfy the dependency relationship with the current step; If not, set the earliest execution start time of the current step to 0, set the earliest execution end time of the current step to the workload of the current step, and set the first flag bit of the current step to a first determined end identifier; If so, judge whether the first flag bits of the adjacent preceding steps that satisfy the dependency relationship with the current step are all not the first initial value; If none of them is the first initial value, set the earliest execution start time of the current step to the maximum value among the earliest execution end times of each adjacent preceding step. Determine the earliest execution end time of the current step according to the earliest execution start time of the current step and the workload of the current step, and set the first flag bit of the current step to the first determined end identifier; If they are not all the first initial value, skip the current step; After traversing all the multiple steps in the current traversal process, determine whether the first flag bits of all the multiple steps are set to the first determined end identifier. If they are all set to the first determined end identifier, the overall traversal process ends. If they are not all set to the first determined end identifier, return to the step of traversing the multiple steps from front to back according to the reference execution order, and enter the next traversal process.

6. The method according to claim 4, wherein, the determining the latest execution end time of each step according to the workload of each step and the earliest execution end time of each step in the multiple steps includes: Set a second flag bit for each step, and each second flag bit is set with a second initial value; Randomly determine the reference execution order of the multiple steps, and traverse the multiple steps from front to back according to the reference execution order; For the current step currently traversed, determine whether the second flag bit of the current step is the second initial value; If the second flag bit of the current step is not the second initial value, skip the current step; if the second flag bit of the current step is the second initial value, determine whether there is an adjacent subsequent step that satisfies the dependency relationship with the current step; If not, set the latest execution end time of the current step to the maximum value among the earliest execution end times of each step. Determine the latest execution start time of the current step according to the latest execution end time of the current step and the workload of the current step, and set the second flag bit of the current step to the second determined end identifier; If so, determine whether the second flag bits of the adjacent subsequent steps that satisfy the dependency relationship with the current step are all not the second initial value; If they are all not the second initial value, set the latest execution end time of the current step to the minimum value among the latest execution start times of each adjacent subsequent step. Determine the latest execution start time of the current step according to the latest execution end time of the current step and the workload of the current step, and set the second flag bit of the current step to the second determined end identifier; If they are not all the second initial value, skip the current step; After traversing all the multiple steps in the current traversal process, determine whether the second flag bits of all the multiple steps are set to the second determined end identifier. If they are all set to the second determined end identifier, the overall traversal process ends. If they are not all set to the second determined end identifier, return to the step of traversing the multiple steps from front to back according to the reference execution order, and enter the next traversal process.

7. The method according to claim 3, wherein, performing personnel simulation configuration and simulation execution on the current step execution sequence in the current task scheduling combination according to the target step, the required skills for each step in the multiple steps, the current personnel allocation plan in the current task scheduling combination, the skills possessed by each person in the current personnel allocation plan, and the skill proficiency, to obtain the fitness corresponding to the current task scheduling combination, includes: determining the minimum value from the earliest execution start times of the multiple steps respectively, determining the maximum value from the earliest execution end times of the multiple steps respectively, and determining the traversal time period based on the minimum value and the maximum value; for the current step execution sequence in the current task scheduling combination, performing sequential loop traversal on the steps in the current step execution sequence until all steps in the current step execution sequence have been simulated and executed; determining the fitness of the current task scheduling combination according to the simulated earliest execution end time of each step in the current step execution sequence; wherein, for the currently traversed step, the processing process of the current step includes: if the current step is in an unexecuted state, determining whether all adjacent preceding steps that satisfy the dependency relationship with the current step have been simulated and executed; if all have been simulated and executed, determining whether there is a target person in the current personnel allocation plan in the current task scheduling combination who has the required skills for the current step and has not participated in the step simulation execution currently; if there is, allocating a target person to the current step for simulation execution, converting the remaining workload of the current step into the remaining simulation execution duration according to the skill proficiency of the allocated target person, if there is no interruption during the simulation execution period corresponding to the remaining simulation execution duration, after the current step is simulated and executed, setting the simulated earliest execution end time of the current step to the simulated execution completion time of the current step; if there is an interruption during the simulation execution period corresponding to the remaining simulation execution duration, updating the remaining workload of the current step according to the simulation execution progress corresponding to the simulation execution interruption time of the current step; if there is no such person, determining whether the current step is the target step, if it is the target step, selecting a designated person from the current personnel allocation plan who has the required skills for the current step and has not participated in the target step simulation execution currently, interrupting the simulation execution of the step currently participated by the designated person, converting the remaining workload of the current step into the remaining simulation execution duration according to the skill proficiency of the allocated designated person, if there is no interruption during the simulation execution period corresponding to the remaining simulation execution duration, after the current step model is executed, setting the simulated earliest execution end time of the current step to the simulated execution completion time of the current step; If an interruption occurs during the simulation execution period corresponding to the remaining simulation execution duration, update the remaining workload of the current step according to the simulation execution progress corresponding to the simulation execution interruption moment of the current step.

8. A task scheduling device Characterized in that The device includes: A step execution sequence acquisition module, configured to, for multiple steps obtained by decomposing a task, acquire multiple step execution sequences formed by combining the multiple steps and satisfying the inter-step dependency relationship, and multiple personnel configuration schemes with a fixed number of personnel and satisfying the skill requirements corresponding to the completion of the multiple steps; A population acquisition module, configured to acquire a step execution sequence parent population determined by the multiple step execution sequences, acquire a personnel configuration scheme parent population determined by the multiple personnel configuration schemes, update the step execution sequences in the step execution sequence parent population and the personnel configuration schemes in the personnel configuration scheme parent population respectively, and obtain a step execution sequence intermediate population and a personnel configuration scheme intermediate population; A temporary population determination module, configured to determine a first temporary population based on at least one of the step execution sequence parent population or the step execution sequence intermediate population, and determine a second temporary population based on at least one of the personnel configuration scheme parent population or the personnel configuration scheme intermediate population; A first screening module, configured to, based on the first temporary population and the second temporary population, acquire a task scheduling combination composed of a step execution sequence and a personnel configuration scheme, and screen the task scheduling combination based on the fitness corresponding to the task scheduling combination to obtain a target task scheduling combination population; the fitness is used to reflect the task scheduling efficiency when performing personnel simulation configuration and simulation execution on the step execution sequence in the corresponding task scheduling combination based on the personnel configuration scheme in the corresponding task scheduling combination; A new population determination module, configured to determine a new step execution sequence parent population based on the first temporary population, determine a new personnel configuration scheme parent population based on the second temporary population, return to the step of updating the step execution sequences in the step execution sequence parent population and the personnel configuration schemes in the personnel configuration scheme parent population respectively and continue to execute until the repeated execution end condition is reached; A second screening module, configured to screen the target task scheduling combination population according to the fitness corresponding to each task scheduling combination in the target task scheduling combination population to obtain a first target task scheduling combination.

9. A computer device, including a memory and a processor, where the memory stores a computer program Characterized in that When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 7.

10. A computer-readable storage medium, on which a computer program is stored Characterized in that When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Flexible job shop scheduling method and device based on worker operation experience

    CN111123869A

  • Real-time optimization of allocation of resources

    US20110269491A1