Multi-team collaborative project scheduling method and device, equipment and storage medium
Patent Information
- Application Number
- CN202310694435.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-12
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2043-06-12
AI Technical Summary
[0003]由于项目调度问题通常为所有多项式复杂程度的非确定性问题都能在多项式时间复杂度内归约到的问题(Non-deterministic Polynomial-Hard,NP-Hard),随着问题规模的增加,对项目调度问题的精确解搜索会导致组合爆炸,算法的复杂性会呈指数型增长
[0061]本申请实施例提出的一种多队伍协同项目调度方法、装置、设备及存储介质,首先,获取目标项目的初始项目数据,该初始项目数据包括目标任务、目标队伍和任务优先级约束数据。根据目标任务、目标队伍和任务优先级约束数据进行初始化任务调度,得到第一调度集合,第一调度集合包括第一调度数据,第一调度数据包括完成目标项目的第一最大完成时间。根据第一最大完成时间从第一调度集合中筛选出第一候选调度数据。然后,根据预设路径重连算法对第一调度数据进行数据重组,得到第二调度集合,第二调度集合包括第二调度数据,第一调度集合中的数据数量与第二调度集合中的数据数量相同。之后,根据预设搜索算法对第二调度数据进行邻域搜索,得到第三调度数据。根据第三调度数据更新第一调度集合,并从更新后的第一调度集合中筛选出第二候选调度数据。最后,根据第一候选调度数据和第二候选调度数据确定目标调度数据,则根据目标调度数据对目标项目进行项目执行操作。本申请实施例能够有效地求解各种规模类型的项目调度问题。
Smart Images

Figure CN116843282B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer application technology, and in particular to a method, apparatus, device and storage medium for scheduling multi-team collaborative projects. Background Technology
[0002] In engineering project scenarios, project scheduling is a core part of project management. It aims to achieve project goals by rationally allocating tasks and determining their processing order, start times, and end times. The project scheduling problem requires allocating tasks to machines or teams while satisfying the priority constraints of each operation, and determining the sequence of operations within each machine or team, in order to minimize the project duration.
[0003] Since the project scheduling problem is typically a non-deterministic polynomial-hard (NP-hard) problem that can be reduced to polynomial time complexity for all nondeterministic problems of polynomial complexity, the search for an exact solution to the project scheduling problem leads to combinatorial explosion as the problem size increases, and the complexity of the algorithm grows exponentially. However, when using traditional optimization methods such as linear programming, branch and bound, and gradient descent to solve task scheduling problems like those in shop floor operations, related task scheduling methods may suffer from excessively high algorithm complexity, long running times, and poor optimization performance. Therefore, these methods can only handle small-scale project scheduling problems and are difficult to effectively solve large-scale ones. Summary of the Invention
[0004] The main objective of this application is to propose a multi-team collaborative project scheduling method, apparatus, equipment, and storage medium that can effectively solve project scheduling problems of various scales and types.
[0005] To achieve the above objectives, a first aspect of this application proposes a multi-team collaborative project scheduling method, the method comprising:
[0006] Obtain initial project data for the target project, including target tasks, target teams, and task priority constraint data;
[0007] Based on the target task, the target team, and the task priority constraint data, the task scheduling is initialized to obtain a first scheduling set. The first scheduling set includes first scheduling data, which includes a first maximum completion time for completing the target project.
[0008] First candidate scheduling data is selected from the first scheduling set based on the first maximum completion time;
[0009] The first scheduling data is reorganized according to a preset path reconnection algorithm to obtain a second scheduling set. The second scheduling set includes the second scheduling data, and the number of data in the first scheduling set is the same as the number of data in the second scheduling set.
[0010] The third scheduling data is obtained by performing a neighborhood search on the second scheduling data according to a preset search algorithm;
[0011] The first scheduling set is updated according to the third scheduling data, and second candidate scheduling data is selected from the updated first scheduling set.
[0012] If target scheduling data is determined based on the first candidate scheduling data and the second candidate scheduling data, then project execution operations are performed on the target project based on the target scheduling data.
[0013] In some embodiments, the task priority constraint data includes an execution team threshold and a task prerequisite type. The step of initializing task scheduling based on the target task, the target team, and the task priority constraint data to obtain a first scheduling set includes:
[0014] Obtain the initial priority tree, which includes initial layer data;
[0015] Based on the target task, determine the set of scheduled tasks and the set of unscheduled tasks for the initial layer data, wherein the set of unscheduled tasks includes unscheduled tasks;
[0016] The first start time is determined based on the unscheduled tasks and the task prerequisite types;
[0017] Construct a set of qualified teams based on the historical task completion times of the target teams;
[0018] The set of execution teams for the target task in the initial layer data is determined based on the set of qualified teams and the execution team threshold.
[0019] Update the set of scheduled tasks and the set of unscheduled tasks based on the set of execution teams;
[0020] When the set of unscheduled tasks is an empty set or the unscheduled tasks are preset virtual tail nodes, the first scheduling data is constructed based on the target task and the set of execution teams, and the first scheduling set is constructed based on the first scheduling data.
[0021] In some embodiments, the step of filtering first candidate scheduling data from the first scheduling set based on the first maximum completion time includes:
[0022] Obtain priority tree iteration parameters, and initialize task scheduling based on the priority tree iteration parameters, the target task, the target team, and the task priority constraint data to obtain fourth scheduling data;
[0023] Obtain the second maximum completion time of the fourth scheduling data;
[0024] A time comparison is performed between the first maximum completion time and the second maximum completion time; the time comparison results are as follows:
[0025] The first candidate scheduling data is determined from the fourth scheduling data and the first scheduling data based on the time comparison result.
[0026] In some embodiments, the step of reorganizing the first scheduling data according to a preset path reconnection algorithm to obtain a second scheduling set includes:
[0027] The first scheduling data is sampled according to a preset sampling quantity to obtain a sampling set, the sampling set including the fifth scheduling data;
[0028] According to the target project, an initial scheduling data pair is collected from the fifth scheduling data, and the initial scheduling data pair includes the first reconnection data and the second reconnection data.
[0029] Search for the first neighboring data adjacent to the second reconnected data based on the neighborhood space of the first reconnected data;
[0030] The second neighboring data is determined from the first neighboring data based on the maximum completion time parameter;
[0031] The second reconnection data is updated according to the sampling set, and the second neighborhood data is updated according to the updated second reconnection data;
[0032] After all the fifth scheduling data has been searched, the second scheduling data is determined based on the second neighborhood data, and the second scheduling set is constructed based on the second scheduling data.
[0033] In some embodiments, the step of performing a neighborhood search on the second scheduling data according to a preset search algorithm to obtain the third scheduling data includes:
[0034] The search target data is determined based on the second scheduling data;
[0035] Select the sixth scheduling data from the second scheduling data;
[0036] The seventh scheduling data is selected from the neighborhood space of the sixth scheduling data according to a preset fitness function;
[0037] The sixth scheduling data and the seventh scheduling data are compared based on the maximum completion time parameter, and the search target data is updated based on the comparison result.
[0038] Add the seventh scheduling data to the preset taboo list;
[0039] The third scheduling data is determined based on the preset search iteration parameters, the preset taboo list, and the search target data.
[0040] In some embodiments, updating the first scheduling set according to the third scheduling data includes:
[0041] Based on the maximum completion time parameter, the eighth scheduling data and the ninth scheduling data are selected from the first scheduling set. The eighth scheduling data is used to represent the data with the smallest maximum completion time parameter in the first scheduling data, and the ninth scheduling data is used to represent the data with the largest maximum completion time parameter in the first scheduling data.
[0042] When the maximum completion time parameter of the third scheduling data is less than the maximum completion time parameter of the ninth scheduling data, the first candidate data is selected from the first scheduling set based on the maximum completion time parameter and the first arc frequency data of the first scheduling data.
[0043] If the first candidate data is not empty, replace the first candidate data with the third scheduling data and update the first scheduling set.
[0044] In some embodiments, before replacing the first candidate data with the third scheduling data and updating the first scheduling set when the first candidate data is not empty, the step of updating the first scheduling set according to the third scheduling data further includes:
[0045] When the first candidate data is empty, the maximum completion time parameter of the third scheduling data and the maximum completion time parameter of the eighth scheduling data are compared numerically.
[0046] When the maximum completion time parameter of the third scheduling data is less than the maximum completion time parameter of the eighth scheduling data, the third scheduling data replaces the ninth scheduling data, and the first scheduling set is updated.
[0047] To achieve the above objectives, a second aspect of this application provides a multi-team collaborative project scheduling device, the device comprising:
[0048] The data acquisition module is used to acquire the initial project data of the target project, which includes the target task, target team, and task priority constraint data.
[0049] An initialization scheduling module is used to initialize task scheduling based on the target task, the target team, and the task priority constraint data to obtain a first scheduling set. The first scheduling set includes first scheduling data, which includes a first maximum completion time for completing the target project.
[0050] The filtering module is used to filter out first candidate scheduling data from the first scheduling set based on the first maximum completion time;
[0051] The data reassembly module is used to reassemble the first scheduling data according to a preset path reconnection algorithm to obtain a second scheduling set. The second scheduling set includes the second scheduling data, and the number of data in the first scheduling set is the same as the number of data in the second scheduling set.
[0052] The neighborhood search module is used to perform a neighborhood search on the second scheduling data according to a preset search algorithm to obtain the third scheduling data;
[0053] The set update module is used to update the first scheduling set according to the third scheduling data, and to filter out the second candidate scheduling data from the updated first scheduling set.
[0054] The target scheduling module is used to determine target scheduling data based on the first candidate scheduling data and the second candidate scheduling data, and then perform project execution operations on the target project based on the target scheduling data.
[0055] To achieve the above objectives, a third aspect of this application provides a computer device, comprising:
[0056] At least one memory;
[0057] At least one processor;
[0058] At least one computer program;
[0059] The at least one computer program is stored in the at least one memory, and the at least one processor executes the at least one computer program to implement the multi-team collaborative project scheduling method described in the first aspect above.
[0060] To achieve the above objectives, a fourth aspect of the present application provides a computer-readable storage medium storing a computer program for causing a computer to execute the multi-team collaborative project scheduling method described in the first aspect.
[0061] This application proposes a multi-team collaborative project scheduling method, apparatus, device, and storage medium. First, initial project data for the target project is acquired, including target tasks, target teams, and task priority constraints. Initial task scheduling is performed based on the target tasks, target teams, and task priority constraints to obtain a first scheduling set. The first scheduling set includes first scheduling data, which includes a first maximum completion time for the target project. First candidate scheduling data is selected from the first scheduling set based on the first maximum completion time. Then, the first scheduling data is reorganized using a preset path reconnection algorithm to obtain a second scheduling set, which includes second scheduling data, with the number of data in the first scheduling set being the same as the number of data in the second scheduling set. Next, a neighborhood search is performed on the second scheduling data using a preset search algorithm to obtain third scheduling data. The first scheduling set is updated based on the third scheduling data, and second candidate scheduling data is selected from the updated first scheduling set. Finally, target scheduling data is determined based on the first and second candidate scheduling data, and project execution operations are performed on the target project according to the target scheduling data. This application embodiment can effectively solve project scheduling problems of various scales and types. Attached Figure Description
[0062] Figure 1 This is a schematic diagram of the four priority relationships provided in the embodiments of this application;
[0063] Figure 2 This is a schematic diagram of a disjunction graph of a scheduling problem provided in an embodiment of this application;
[0064] Figure 3 This is a flowchart of the multi-team collaborative project scheduling method provided in the embodiments of this application;
[0065] Figure 4 yes Figure 3 The flowchart of step S320 in the middle;
[0066] Figure 5 This is a schematic diagram representing the scheduling data provided in an embodiment of this application;
[0067] Figure 6 yes Figure 3 The flowchart of step S330 in the text;
[0068] Figure 7 yes Figure 3 The flowchart of step S340 in the text;
[0069] Figure 8 This is a schematic diagram of the path reconnection process provided in the embodiments of this application;
[0070] Figure 9 yes Figure 3The flowchart of step S350 in the text;
[0071] Figure 10 yes Figure 3 The first flowchart of step S360 in the process;
[0072] Figure 11 yes Figure 3 The second flowchart of step S360 in the process;
[0073] Figure 12 This is a schematic diagram of the structure of the multi-team collaborative project scheduling device provided in the embodiments of this application;
[0074] Figure 13 This is a schematic diagram of the hardware structure of the computer device provided in the embodiments of this application. Detailed Implementation
[0075] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0076] It should be noted that although functional modules are divided in the device schematic diagram and a logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than the module division in the device or the order in the flowchart. The terms "first," "second," etc., in the specification, claims, and the aforementioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0077] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0078] Due to differences in construction techniques, the construction sequence may vary within an engineering project. Before commencing construction on a particular task, certain preparatory work must be completed in advance; that is, all prerequisite tasks must be finished before construction on that task can begin. For example... Figure 1 As shown, Figure 1 This is a schematic diagram illustrating the priority relationship between tasks provided in the embodiments of this application. Figure 1Four priority relationships are illustrated: Finish-Start (FS), Finish-Finish (FF), Start-Start (SS), and Start-Finish (SF). The FS constraint is the most common, indicating that one task can only begin after the previous one is completed. The FF constraint requires one task to be completed before the next can begin; the SS constraint requires one task to begin before the next can begin; and the SF constraint requires one task to begin before the next can complete. In addition, this application embodiment also sets a new priority relationship: the Finish-Start (γ) constraint. This constraint indicates that the next task can only begin after the previous task has completed γ, meaning the downstream task's progress is constrained by the upstream task's completion progress. Here, γ can represent a percentage of the previous task, meaning γ can take any value between [0% and 100%], or it can be a decimal coefficient, i.e., γ∈[0,1]. No specific limitation is made here; its value is given by the specific scenario. This prioritization relationship has practical application value in engineering. During the construction process, the progress of one task can determine whether the next task can be started, which is also more instructive for the arrangement of construction teams.
[0079] This application's embodiments abstract engineering projects into general problems, assuming all task sets are Ω = {1, ..., l} and all team sets are Teams = {1, ..., h}. When h teams need to be assigned to execute l tasks, each task i ∈ Ω can be assigned by a group of teams. Execute, and for each team j∈Team i When task i is executed, there is an execution speed v. i,j The workload of task i is defined as w. i According to w i and v i,j We can obtain team j∈Team i Then the time required for team j to execute task i is p. i,j =w i / v i,j .
[0080] A disjunctive graph is a common descriptive form used in scheduling problems. This embodiment uses a defined disjunctive graph D(V, A, E) to describe the task scheduling problem of a complex engineering project. This disjunctive graph contains a series of nodes V = Ω ∪ {0, l+1}, where Ω represents the set of all tasks, and 0 and l+1 are the preset virtual head node and virtual tail node, respectively. Specifically, this embodiment defines the virtual head node 0 and the virtual tail node l+1. and S 0,j =s l+1,j=0 A is the set of all connected directed arcs in the disjunction graph D, where each connected directed arc represents the priority relationship between two tasks. Each disjunction arc in the disjunction arc set E can be viewed as a pair of arcs with opposite directions; therefore, the disjunction arc set E contains the disjunction sub-arcs E on all teams. j The set of can be represented as Among them, E j Let j ∈ Teams be the set of disjunctive arcs, representing the connections between tasks that can be performed by team j.
[0081] For example, such as Figure 2 As shown, Figure 2 This is a disjunctive graph diagram illustrating a scheduling problem provided in an embodiment of this application. Assume the current project contains 8 tasks (tasks 1 to 8 in the figure) and 3 teams (three different thicknesses of bidirectional dashed lines in the figure). Figure 2 Each directed arc in the diagram represents the priority relationship between two adjacent tasks, and the type of priority relationship is marked on the arc. The constraint relationship between the virtual head node and task nodes is defined as an SS-type constraint, meaning that tasks 1, 3, 5, and 7 can only start after task 0 starts. This implies that the virtual head node is the starting node for all tasks without affecting the specific scheduling of tasks. The priority relationship between tasks 2, 4, 6, and 8 and the virtual tail node 9 is FF-type, meaning that task 9 can only end after all other tasks have finished, which also conforms to the definition of the virtual tail node in this application's embodiments.
[0082] It should be noted that the constraint relationship between Task 1 and Task 2 is a completion-start type constraint, and at this time γ is 50%, which means that Task 2 can only start after Task 1 is 50% complete. Figure 2 The disjunction arcs in the diagram indicate that tasks 1, 2, and 3 can be executed by team 1; tasks 4, 5, and 7 can be executed by team 2; and tasks 3, 6, and 8 can be executed by team 3. The specific order in which tasks are executed within each team depends on the scheduling results.
[0083] In engineering projects, project scheduling is a core part of project management. It aims to achieve project goals by rationally allocating tasks and determining their processing order, start time, and end time. The project scheduling problem requires allocating tasks to machines or teams while satisfying priority constraints, and determining the operation sequence within each machine or team to minimize the project duration. The project scheduling problem is a typical combinatorial optimization problem with strong engineering background and practical significance. Research on the project scheduling problem can be divided into two aspects: model building and algorithm optimization. Model building mainly studies constraints, optimization objectives, and scheduling rules, while algorithm optimization focuses on algorithm design, performance, and complexity analysis.
[0084] Since the project scheduling problem is typically a non-deterministic polynomial-hard (NP-hard) problem that can be reduced to polynomial time complexity for all nondeterministic problems of polynomial complexity, the search for an exact solution to the project scheduling problem leads to combinatorial explosion as the problem size increases, and the complexity of the algorithm grows exponentially. However, when using traditional optimization methods such as linear programming, branch and bound, and gradient descent to solve task scheduling problems like those in shop floor operations, related task scheduling methods may suffer from excessively high algorithm complexity, long running times, and poor optimization performance. Therefore, these methods can only handle small-scale project scheduling problems and are difficult to effectively solve large-scale ones.
[0085] Based on this, embodiments of this application provide a method, apparatus, device, and storage medium for multi-team collaborative project scheduling, which can effectively solve project scheduling problems of various scales and types.
[0086] The multi-team collaborative project scheduling method provided in this application can be applied to a terminal, a server, or software running on either a terminal or a server. In some embodiments, the terminal can be a smartphone, tablet, laptop, desktop computer, etc.; the server can be configured as an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms; the software can be an application that implements the multi-team collaborative project scheduling method, but is not limited to the above forms.
[0087] This application can be used in a wide variety of general-purpose or special-purpose computer system environments or configurations. Examples include: personal computers, server computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network personal computers (PCs), minicomputers, mainframe computers, and distributed computing environments including any of the above systems or devices. This application can be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform specific tasks or implement specific abstract data types. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0088] Please see Figure 3 , Figure 3 This is an optional flowchart of the multi-team collaborative project scheduling method provided in the embodiments of this application. Figure 3 The method described below may specifically include, but is not limited to, steps S310 to S370. Figure 3 These seven steps will be explained in detail.
[0089] Step S310: Obtain the initial project data for the target project. The initial project data includes the target task, target team, and task priority constraint data.
[0090] Step S320: Initialize task scheduling based on target task, target team and task priority constraint data to obtain a first scheduling set. The first scheduling set includes first scheduling data, which includes the first maximum completion time for completing the target project.
[0091] Step S330: Select first candidate scheduling data from the first scheduling set based on the first maximum completion time;
[0092] Step S340: Reassemble the first scheduling data according to the preset path reconnection algorithm to obtain a second scheduling set. The second scheduling set includes the second scheduling data, and the number of data in the first scheduling set is the same as the number of data in the second scheduling set.
[0093] Step S350: Perform a neighborhood search on the second scheduling data according to a preset search algorithm to obtain the third scheduling data;
[0094] Step S360: Update the first scheduling set according to the third scheduling data, and select the second candidate scheduling data from the updated first scheduling data;
[0095] Step S370: Determine the target scheduling data based on the first candidate scheduling data and the second candidate scheduling data, and then perform project execution operations on the target project based on the target scheduling data.
[0096] It should be noted that the multi-team collaborative project scheduling method provided in this application embodiment can be applied to the client or the server, and the calling end can also be the client or the server, without specific limitations.
[0097] In step S310 of some embodiments, since this application embodiment can be used to execute project scheduling scenarios where multiple teams jointly perform tasks, initial project data of the target project is first obtained. This initial project data includes target tasks, target teams, and task priority constraint data. Specifically, target tasks represent task information that needs to be scheduled within the target project; target teams represent team information that can execute tasks within the target project; and task priority constraint data represents priority constraint information between different target tasks and different target teams.
[0098] It should be noted that, as shown in Table 1 below, Table 1 defines the symbolic markers for tasks and teams used in the embodiments of this application and the meaning of each symbolic marker.
[0099]
[0100] Table 1
[0101] In step S320 of some embodiments, compared with the shortcomings of traditional priority tree algorithms which can only be used to solve single-team project scheduling problems, the embodiments of this application will randomly select team combinations that meet the constraints from the idle teams based on the target task, target team and task priority constraint data, and based on the random allocation strategy, thereby enhancing the randomness of the generated scheduling data (i.e. solution) and increasing the diversity of the first scheduling data.
[0102] It should be noted that the goal of the initial task scheduling phase in this application is to generate a sufficiently diverse reference set (i.e., the first scheduling set) containing multiple initial solutions (i.e., the first scheduling data). Since the priority tree algorithm was originally used to solve the small-scale resource-constrained project scheduling problem (RCPSP), it is essentially a backtracking algorithm, meaning it can enumerate all feasible solutions to the RCPSP problem and select the best-quality solution. However, since this application assumes that each task can be executed by multiple teams, it is impossible to enumerate all feasible solutions. Therefore, to solve the above problem, this application's embodiments make a series of modifications to the priority tree algorithm to perform initial task scheduling in this application according to the new priority tree algorithm, thereby obtaining the first scheduling set, which is denoted as set R.
[0103] Please see Figure 4 , Figure 4 This is an optional flowchart of step S320 provided in the embodiments of this application. In some embodiments of this application, the task priority constraint data includes the execution team threshold and the task prerequisite type. Therefore, step S320 may specifically include, but is not limited to, steps S410 to S470. The following is in conjunction with... Figure 4 These seven steps will be explained in detail.
[0104] Step S410: Obtain the initial priority tree, which includes the initial layer data;
[0105] Step S420: Determine the set of scheduled tasks and the set of unscheduled tasks for the initial layer data based on the target task. The set of unscheduled tasks includes unscheduled tasks.
[0106] Step S430: Determine the first start time based on the unscheduled tasks and task prerequisite types;
[0107] Step S440: Construct a set of qualified teams based on the historical task completion time of the target teams;
[0108] Step S450: Determine the set of execution teams for the target task in the initial layer data based on the set of qualified teams and the execution team threshold;
[0109] Step S460: Update the task set and unassigned task set according to the execution team set;
[0110] Step S470: When the unassigned task set is an empty set or the unassigned task is a preset virtual tail node, construct the first scheduling data according to the target task and the execution team set, and construct the first scheduling set according to the first scheduling data.
[0111] It should be noted that, compared to the limitations of traditional priority tree algorithms, which can only solve single-team project scheduling problems, this embodiment first determines which teams are idle during the task allocation process, and then distributes tasks equally among these teams, rather than assigning tasks to only one team, thus achieving multi-team collaborative project scheduling. Furthermore, in determining which teams to allocate tasks to, this embodiment randomly selects combinations of teams that meet the constraints from the idle teams based on a random allocation strategy, enhancing the randomness of the solution to a certain extent, thereby generating more diverse and higher-quality first-stage scheduling data.
[0112] In step S410 of some embodiments, when the present application embodiment uses a new priority tree algorithm to perform initial task scheduling in this application, as shown in Table 2, Table 2 shows the symbolic markers and the meaning of each symbolic marker related to the priority tree algorithm in the present application embodiment. Specifically, in the initial priority tree embodiment, the height of the priority tree and the data of each variable are first initialized. The number of levels of the initial priority tree is initialized to 0, that is, the initial level data g is set to 0, i0 on the initial level data 0 is set to 0, and SCJ0 is an empty set. but It is 0.
[0113]
[0114]
[0115] Table 2
[0116] In step S420 of some embodiments, after initializing the initial layer data, the available task set is calculated, that is, the scheduled task set and the unscheduled task set corresponding to the initial layer data are updated. The scheduled task set corresponds to SCJ in Table 2. g The set of unassigned tasks corresponds to EJ in Table 2. g .
[0117] It should be noted that when the initial layer data changes, the corresponding task scheduling set SCJ is updated according to the following formula (1). g and the set of unassigned tasks EJ g .
[0118]
[0119] In formula (1), the first sub-formula represents the task arrangement of the initial layer data to the next level; the second sub-formula represents the task arrangement set of the g-th layer as the set of task arrangement of the (g-1)-th layer and the set of task i selected at the priority tree level g-1; PJ gLet represent a subset of the task set at level g, and \ denote the removal of some elements from the set. Then, the third sub-formula indicates that the unscheduled task set at level g is equal to the set of operations SCJ that have been scheduled at level g removed from the task set {0, 1, ..., l+1}. g All prerequisite tasks are retained in the SCJ set. g The tasks in the middle, that is, the remaining tasks, are not constrained by the preceding tasks.
[0120] In step S430 of some embodiments, when the set of unscheduled tasks is not an empty set (i.e. And the node that has not been assigned a task is not a preset virtual tail node (i.e. ), then in EJ g Randomly select the next task to be scheduled to be executed. g ∈EJ g And according to task i g The completion time of the FS-type prerequisite task or the start time of the SS-type prerequisite task determines task i. g Earliest available start time That is, the first start time. Specifically, the following formula (2) is the specific calculation process for solving the first start time.
[0121]
[0122] In step S440 of some embodiments, task i is determined. g Following the initial start time, this application then determines the arrangements. Which teams are carrying out the mission? g Among them, it is assumed that... This includes all teams within the target project. Specifically, the minimum time threshold minTime is first set to infinity, and then... A team j is randomly selected. To minimize the idle time of a team, the novel priority tree algorithm in this embodiment sets teams whose completion time of the previous task (i.e., historical task completion time) is less than or equal to the first start time, constructing a qualified team set. Therefore, when the historical task completion time finishTime of team j is less than or equal to the first start time, the team j is selected. j If the time is less than or equal to the first start time, then as shown in formula (3), the historical task completion time is used to determine the time. For each team j in the list, a set of qualified teams is constructed based on the historical task completion time of the target teams, denoted as .
[0123]
[0124] It should be noted that when team j's historical task completion time is finishTimej If the time is less than the first start time, set the historical task completion time finishTime of team j to finishTime. j The finishTime j Replace the minimum time threshold minTime, and set the current execution task i g As the smallest team, minTime.
[0125] In step S450 of some embodiments, when the historical task completion time of all teams is greater than the first start time, the qualified team set becomes empty. To ensure that the number of teams in the qualified team set is greater than or equal to the qualified team threshold, the teams for the target task are selected from the Teams... g In the middle, the finishTime of historical tasks is selected from the set of scheduled tasks and the set of unscheduled tasks. j Find the smallest team j and add that team to the set of eligible teams. In practical applications, the number of teams simultaneously scheduling target tasks must not exceed the execution team threshold q. i Then from the qualified team set Determine a subset That is, subset This is an execution team set, which contains teams used to execute the corresponding target teams.
[0126] It should be noted that the qualification team threshold is used to represent the minimum number of teams that must be included in the qualification team set. This qualification team threshold can be 1, 2, etc., and can be flexibly adjusted according to actual needs, which will not be elaborated here.
[0127] In step S460 of some embodiments, compared to in Random selection Each team is assigned to execute the corresponding target task. To improve the diversity of scheduling data (i.e., solutions), this embodiment of the application uses random numbers to determine the set of execution teams. The size of the set is Within the scope of [the target / objective]. Within the set of teams determined to carry out this objective task. Next, update the historical task completion times (finishTime) of these teams in the execution team set. j ,and At the same time, the task set and the unassigned task set are updated based on the target tasks for which corresponding execution teams have already been assigned.
[0128] In step S470 of some embodiments, when the unscheduled task set is an empty set (i.e. If the remaining tasks do not satisfy the priority tree constraints, then the current priority tree algorithm terminates, and scheduling cannot continue. When the unassigned task is a preset virtual tail node (i.e., l+1∈EJ), the scheduling process terminates. g If the condition is met, it means that all current target tasks have been executed, and the algorithm ends. The first scheduling data is constructed based on the target tasks and the constructed execution team set, and the first scheduling set R is formed based on the first scheduling data.
[0129] For example, Table 3 below illustrates the algorithm execution process of step S320 provided in the embodiments of this application.
[0130]
[0131]
[0132] Table 3
[0133] It should be noted that, in this application embodiment, a scheduling data is denoted as a solution s to a task scheduling problem, which can be represented by a two-dimensional vector π. Assume that π has h elements. Each element π(j) in the two-dimensional vector π represents the sequence of task operations on target team j, and includes the workload of each target task handled by target team j. Since a target task can be completed by multiple target teams, each target team only completes a portion of the target task. Therefore, it is necessary to record the workload of each target team handling each target task, and the sum of the workloads of all target teams handling the same target task equals the total workload of executing that target task.
[0134] It should be noted that you should refer to [link / reference]. Figure 5 , Figure 5 This is a schematic diagram representing a scheduling data (i.e., solution s) provided in an embodiment of this application. The scheduling data (i.e., solution s) provided in this embodiment can be represented by a directed acyclic graph. Let D be the disjunctive graph. This represents the priority relationship between the tasks performed by each team in solution s. Figure 5 Given Figure 2 The diagram shows a feasible solution to the scheduling problem, represented by directed arcs s. The tasks performed by each team and their execution order are as follows: Team 1 performs tasks 3->1->2; Team 2 performs tasks 5->7->4; and Team 3 performs tasks 3->8->6. It is important to note that Team 1 and Team 3 jointly complete task 3, and each team completes half of the workload for task 3.
[0135] It needs to be made clear that, in Figure 5 The directed acyclic graph G(y, A, E) representing the solution s.* In the given diagram, ρ(m, n) represents the longest directed path {m, o1, o2, ..., o3} between tasks m ∈ Ω and n ∈ Ω. u The duration of path ρ(m,n) is defined as L(m,n).
[0136] It should be noted that, in combination Figure 5 This application employs an adaptive storage structure to record the frequency of arcs occurring between target tasks executed sequentially in each target team. As the search progresses, the frequency of the arcs continuously changes. This adaptive storage structure is called an Arc Frequency Map. Specifically, the Arc Frequency Map is defined as a three-dimensional matrix W, where the element W[m, n, j] represents the frequency of arc (m, n) occurring in target team j. It should be noted that arc (m, n) indicates that target task n is executed by team j immediately following task m. As the algorithm progresses, the Arc Frequency Map continuously changes, thus achieving its adaptive characteristic.
[0137] It should be noted that, in order to quantitatively analyze the frequency of the arcs appearing in each feasible solution, the embodiments of this application use the following formula (4) to define the arc frequency of each solution s as the calculation process of arcFrequency(s).
[0138]
[0139] Here, the arc frequency (arcFrequency(s)) of each solution s represents the relative frequency of arcs appearing in solution s among all feasible solutions. Furthermore, this embodiment considers solutions with lower arc frequencies to contain more high-frequency arcs, resulting in lower solution diversity and less difference from other solutions; while solutions with relatively higher arc frequencies contain more relatively rare arcs, resulting in higher solution diversity and greater difference from other solutions. Therefore, this embodiment introduces an arc frequency diagram to obtain high-frequency arcs in high-quality solutions, while simultaneously adding lower-frequency arcs to high-quality solutions to increase solution diversity.
[0140] In step S330 of some embodiments, the embodiments of this application first place the generated first scheduling data into a first scheduling set R according to the new priority tree algorithm, and update the arc frequency graph after each feasible solution is generated until R contains a first set threshold of scheduling data, i.e., ζ feasible solutions. Finally, first candidate scheduling data is selected from the first scheduling set.
[0141] Please see Figure 6 , Figure 6This is an optional flowchart of step S330 provided in the embodiments of this application. In some embodiments of this application, step S330 may specifically include, but is not limited to, steps S610 to S640. The following is in conjunction with... Figure 6 These four steps will be explained in detail.
[0142] Step S610: Obtain the priority tree iteration parameters, and initialize task scheduling based on the priority tree iteration parameters, target task, target team, and task priority constraint data to obtain the fourth scheduling data;
[0143] Step S620: Obtain the second maximum completion time of the fourth scheduling data;
[0144] Step S630: Compare the first maximum completion time and the second maximum completion time. The time comparison result is as follows:
[0145] Step S640: Determine the first candidate scheduling data from the fourth scheduling data and the first scheduling data based on the time comparison results.
[0146] In steps S610 to S640 of some embodiments, in order to ensure the quality of the first scheduling data, this embodiment of the application uses a priority tree iteration parameter, i.e., a λ-fold priority tree algorithm, and initializes task scheduling based on the priority tree iteration parameters, the target task, the target team, and task priority constraint data to obtain the fourth scheduling data s. best That is, the smallest solution C among them max The fourth scheduling data represents another solution to the iterative execution priority tree algorithm, and is also stored in the first scheduling set. The second maximum completion time of the fourth scheduling data is obtained, and the first and second maximum completion times of each other first scheduling data are compared. The scheduling data with the smallest time comparison result is then taken as the globally optimal solution s in the current first scheduling data set. * This refers to the first candidate scheduling data.
[0147] It should be noted that, in this embodiment of the application, the time cost of solving the task scheduling problem 's', i.e., the maximum completion time of the project, is expressed as: It can also be abbreviated as C max .
[0148] For example, Table 4 below illustrates the initialization algorithm execution process of the hybrid priority tree algorithm and path reconnection algorithm provided in the embodiments of this application.
[0149]
[0150] Table 4
[0151] in, This indicates that the solution with the smallest maximum completion time is selected from the first scheduling set as the first candidate scheduling data s. * .
[0152] In step S340 of some embodiments, to improve the quality of the scheduling data (i.e., solutions) generated by the priority tree algorithm, this application embodiment introduces a preset path reconnection algorithm, which iteratively reorganizes the solutions to generate higher quality solutions. Compared to the drawback of traditional path reconnection algorithms in failing to identify frequently occurring arcs in high-quality solutions, this application embodiment introduces an adaptive storage structure—an arc frequency graph. This arc frequency graph records the frequency of arcs between tasks executed sequentially in each team, thereby identifying frequently occurring and infrequently occurring arcs in high-quality solutions. This guides the path reconnection algorithm to search the neighborhood space of solutions containing infrequently occurring arcs, enhancing the diversity of solutions. Specifically, in the evolution stage of the hybrid priority tree, this application embodiment reorganizes the first scheduling data in the first scheduling set R according to the preset path reconnection algorithm to generate a child solution s, i.e., the second scheduling data. This second scheduling data is placed into set C, thus obtaining the second scheduling set C. Therefore, the evolution stage stops when the number of solutions in the second scheduling set C and the first scheduling set R are the same.
[0153] Please see Figure 7 , Figure 7 This is an optional flowchart of step S340 provided in the embodiments of this application. In some embodiments, step S340 may specifically include, but is not limited to, steps S710 to S760. The following is in conjunction with... Figure 7 These six steps will be explained in detail.
[0154] Step S710: Sample the first scheduling data according to the preset sampling quantity to obtain a sampling set, which includes the fifth scheduling data;
[0155] Step S720: Collect initial scheduling data pairs from the fifth scheduling data according to the target project. The initial scheduling data pairs include the first reconnection data and the second reconnection data.
[0156] Step S730: Search for the first neighboring data adjacent to the second reconnected data based on the neighborhood space of the first reconnected data;
[0157] Step S740: Determine the second neighboring data from the first neighboring data based on the maximum completion time parameter;
[0158] Step S750: Update the second reconnected data according to the sampling set, and update the second neighborhood data according to the updated second reconnected data;
[0159] Step S760: After all the fifth scheduling data has been searched, the second scheduling data is determined based on the second neighborhood data, and the second scheduling set is constructed based on the second scheduling data.
[0160] In steps S710 to S720 of some embodiments, this application embodiment generates more high-quality and diverse child solutions through a parent solution recombination method. This application explores paths in the solution space between a pair of first scheduling data, starting from an initial solution and making local moves. By reducing the distance between the two first scheduling data in each neighborhood search, it gradually approaches the guiding solution to construct a second scheduling set C. Specifically, in the evolution phase, firstly, a preset number β of first scheduling data are randomly sampled from the first scheduling set R, and the sampled data is placed into a sampling set Z. The scheduling data in this sampling set is used as the fifth scheduling data. Then, based on the target project, initial scheduling data pairs are collected from the fifth scheduling data. These initial scheduling data pairs include the first reconnection data and the second reconnection data, and this pair is used as the parent solution. Afterwards, multiple tabu searches are performed based on the first and second reconnection data to generate child solutions. This refers to the second scheduling data, where β-1 indicates that only β-1 child solutions are generated. It should be noted that the goal of tabu search is to reduce the distance between parent solutions, allowing two parent solutions to recombine and generate child solutions.
[0161] In steps S730 to S760 of some embodiments, the embodiments of this application employ a tabu search algorithm to perform a neighborhood search on the first and second reconnected data, which can fully explore the neighborhood space of the solution and prevent the search process from getting stuck in a local loop. Specifically, see Figure 8 First, the initial solution z1 is used as the first reconnected data, and the guiding solution z2 is used as the second reconnected data. Starting from solution z1, the neighborhood space of solution z1 is searched, and the solution s1 with the smallest distance to the guiding solution z2 is found in the neighborhood space. This process continues, searching the neighborhood space of solution s1 to find the solution s2 with the smallest distance to the guiding solution z2, and so on. Therefore, all the neighborhood solutions s1, s2, and other first neighborhood data traversed in this process form a path ρ1(z1, z2) between the initial solution z1 and the guiding solution z2. On this path ρ1(z1, z2), this embodiment selects the neighborhood solution with the smallest maximum completion time from the first neighborhood data based on the maximum completion time parameter. That is, the second neighborhood data. Then, the second reconnected data is updated based on the sampled set, that is, the solution z3 is used as the new second reconnected data, and the resulting second neighborhood data... This serves as the first new reconnection data. Next, from the solution... Starting from there, we gradually approach the guiding solution z3, continuously reducing the distance between us and the guiding solution z3, and finally selecting the solution with the minimum maximum completion time. This process continues iteratively, reconnecting the paths according to a preset number of iterations (maxGenerations), until the final child solution is generated. This yields the second neighborhood data. Finally, the second scheduling set C is constructed based on the obtained second scheduling data.
[0162] For example, Table 5 below illustrates the execution process of the path reconnection algorithm provided in the embodiments of this application.
[0163]
[0164]
[0165] Table 5
[0166] Here, the parameter i1 is a quantity marker. Indicates parameters ξ and maxIterations are tabu search algorithms, where maxIterations is the preset maximum search iteration parameter; ξ is the tabu period parameter corresponding to the tabu list in the tabu search algorithm; SelectAtRandom(R, β) means that the set Z is constructed by randomly selecting β solutions from the first scheduling set R.
[0167] It should be noted that when calculating the distance between two solutions in this application embodiment, methods such as Hamming distance and Euclidean distance can be used, and no specific limitation is made here. When this application uses Hamming distance to measure the distance between two solutions, it is necessary to consider not only the different arcs between the two solutions, but also the differences in task allocation to teams. For this purpose, as shown in the following formula (5), this application embodiment defines the distance d(s, s′) between two solutions s and s′.
[0168]
[0169] in, These two variables represent the values of 1 and 0 respectively in solutions s and s′, if task i is assigned to team j. and These two variables represent the values of 1 and 0 respectively in solutions s and s′, respectively. If task k in team j is executed immediately after task i, then the corresponding values of these two variables are 1; otherwise, they are 0. This represents the XOR operation, i.e., if... These two values are not the same, then The XOR result is 1. If The two values are the same. The XOR result is 0. When hour, In other words, if only one solution among solutions s and s′ satisfies that task i is assigned to team j, then only the difference in task assignment is calculated, and the difference between arcs does not need to be calculated. Conversely, if In solutions s and s', task i is either assigned to team j or not assigned to team j at all. This indicates that the differences between arcs need to be considered. Therefore, the distance d(s, s′) defined in this application can measure both the differences between task assignments and the differences between arcs, making it very suitable for representing the distance between two solutions.
[0170] In step S350 of some embodiments, in order to find a high-quality solution, the first scheduling set reference set of this application needs to have two characteristics: (1) the quality of the solutions in the first scheduling set should be high, that is, the maximum completion time of the solutions should be very small; (2) the differences between the solutions in the first scheduling set should be relatively large, that is, the arc frequency of the solutions should be relatively large. Therefore, in the embodiments of this application, a neighborhood search will first be performed on the second scheduling data in the second scheduling set according to a preset search algorithm to obtain the third scheduling data, denoted as s. c .
[0171] Please see Figure 9 , Figure 9 This is an optional flowchart of step S350 provided in the embodiments of this application. In some embodiments of this application, step S350 may specifically include, but is not limited to, steps S910 to S960. The following is in conjunction with... Figure 9 These six steps will be explained in detail.
[0172] Step S910: Determine the search target data based on the second scheduling data;
[0173] Step S920: Select the sixth scheduling data from the second scheduling data;
[0174] Step S930: Select the seventh scheduling data from the neighborhood space of the sixth scheduling data according to the preset fitness function;
[0175] Step S940: Compare the sixth scheduling data and the seventh scheduling data according to the maximum completion time parameter, and update the search target data according to the comparison result;
[0176] Step S950: Add the seventh scheduling data to the preset taboo list;
[0177] Step S960: Determine the third scheduling data based on the preset search iteration parameters, the preset taboo list, and the search target data.
[0178] In steps S910 to S960 of some embodiments, in the local boosting stage of the hybrid priority tree algorithm and path reconnection algorithm of this application embodiment, firstly, a search target data, i.e., the optimal solution s, is determined based on the second scheduling data. best1 Furthermore, the system inputs the preset maximum search iteration parameter `maxIterations` and the tabu period parameter `ξ` corresponding to the tabu list in the tabu search algorithm. A sixth scheduling data point is selected from the second scheduling data for searching. Then, a seventh scheduling data point is selected from the neighborhood space N of the sixth scheduling data according to the preset fitness function; this seventh scheduling data point is the solution with the minimum fitness function F(·). The sixth and seventh scheduling data points are compared based on the maximum completion time parameter, and the data point with the smaller maximum completion time is selected as the new search target data. The seventh scheduling data point is then added to the preset tabu list to effectively prevent the tabu search from getting stuck in a local loop. Afterward, through continuous iteration until the preset search iteration parameter is reached, the search stops, thus determining the final third scheduling data point, denoted as `s`, based on the preset tabu list and the search target data. c .
[0179] It should be noted that the fitness function in this application can be set according to the goal of the tabu search. For example, the fitness function used in the tabu search during the path reconnection process in the above embodiment is... Because the goal of decomposition and reorganization is to minimize the distance between two parent solutions. During this local boosting phase, the preset fitness function used is... To minimize the C of the solution max .
[0180] It should be noted that, in this embodiment of the application, after selecting the solution that minimizes the fitness function F(·) in the neighborhood N, the optimal solution s is determined based on the maximum completion time of that solution. best1 The algorithm updates the solution and simultaneously updates the tabu list. The tabu list acts as a short-term memory structure to record recently visited solutions and prohibits revisiting these solutions in the next ξ periods. This effectively prevents the search from getting stuck in a local loop, allowing the neighborhood search to find higher-quality solutions. This iteration continues until the maximum number of iterations, maxIterations, is reached, at which point the search stops.
[0181] For example, Table 6 below illustrates the execution process of the preset search algorithm provided in the embodiments of this application.
[0182]
[0183] Table 6
[0184] Here, UpdateTabuList(s, ξ) represents updating the tabu list, that is, adding the searched solution s to the tabu list and prohibiting access to the data again during the next tabu period; NeighborhoodStructure(s) represents searching the neighborhood space of s.
[0185] In step S360 of some embodiments, in the neighborhood search stage of this application embodiment, a preset search algorithm is used to search for each sub-solution in the second scheduling set C, and the solution with the best performance, i.e., the minimum maximum completion time, is selected from the multiple neighborhood solutions generated by the search. This solution is the third scheduling data, and then the arc frequency map (UpdateArcFrequencyMap) and the first scheduling set R are updated based on the third scheduling data. Then, the scheduling data with the minimum maximum completion time is selected from the updated first scheduling set R as the second candidate scheduling data, denoted as s′. * .
[0186] For example, Table 7 below illustrates the evolutionary stages and local boosting stages of the hybrid priority tree algorithm and path reconnection algorithm provided in this application embodiment. After Algorithm 2, this application embodiment can execute Algorithm 5 as follows.
[0187]
[0188] Table 7
[0189] Among them, s c This represents the third scheduling data, s′ * This represents the second candidate scheduling data. The calculation of PathRelinking(β, R) can be found in Algorithm 3 above. The calculation of TabuSearch(s′, ξ, maxIterations) can be found in Algorithm 4 above. UpdateReferenceSet(s c R) means updating the first scheduling set R based on the third scheduling data; This represents the solution with the minimum maximum completion time from the first scheduling set.
[0190] Please see Figure 10 , Figure 10 This is an optional flowchart of step S360 provided in the embodiments of this application. In some embodiments of this application, step S360 may specifically include, but is not limited to, steps S1010 to S1030. The following is in conjunction with... Figure 10 These three steps will be explained in detail.
[0191] Step S1010: Select the eighth scheduling data and the ninth scheduling data from the first scheduling set according to the maximum completion time parameter. The eighth scheduling data is used to represent the data with the smallest maximum completion time parameter in the first scheduling data, and the ninth scheduling data is used to represent the data with the largest maximum completion time parameter in the first scheduling data.
[0192] Step S1020: When the maximum completion time parameter of the third scheduling data is less than the maximum completion time parameter of the ninth scheduling data, the first candidate data is selected from the first scheduling data based on the maximum completion time parameter and the first arc frequency data of the first scheduling data.
[0193] Step S1030: When the first candidate data is not empty, replace the first candidate data with the third scheduling data and update the first scheduling set.
[0194] In steps S1010 to S1030 of some embodiments, in order to obtain a high-quality reference set, the embodiments of this application update the first scheduling set R in a timely manner according to the third scheduling data. Specifically, the eighth scheduling data and the ninth scheduling data are selected from the first scheduling set according to the maximum completion time parameter. The eighth scheduling data is used to represent the data with the smallest maximum completion time parameter in the first scheduling data, denoted as s. b The ninth scheduling data is used to represent the data with the largest maximum completion time parameter in the first scheduling data, denoted as s. w When the maximum completion time parameter of the third scheduling data. The maximum completion time parameter less than the ninth scheduling data Then, based on the maximum completion time parameter and the first arc frequency data of the first scheduling data, the first candidate data is selected from the first scheduling data, that is, the data that meets the conditions is searched from the first scheduling set R. And arcFrequency(s) c )≥arcFrequency(s r The solution s r This is the first candidate data. Here, arcFrequency represents the arc frequency data corresponding to the arc frequency graph. When there exists such an s... r If ∈T, meaning the first candidate data is not empty, then the third scheduling data is used to directly replace the first candidate data and store it in the first scheduling set to update the first scheduling set.
[0195] It should be noted that when there are at least two solutions s that satisfy the conditions... r Then from these solutions s r Select the maximum completion time C max The largest solution is taken as the first candidate data, and the first candidate data is replaced by the third scheduling data and stored in the first scheduling set to update the first scheduling set.
[0196] Please see Figure 11 , Figure 11 This is another optional flowchart of step S360 provided in the embodiments of this application. In some embodiments of this application, before step S1030, step S360 may specifically include, but is not limited to, steps S1110 to S1120. The following is in conjunction with Figure 11 These two steps will be explained in detail.
[0197] Step S1110: When the first candidate data is empty, compare the maximum completion time parameter of the third scheduling data with the maximum completion time parameter of the eighth scheduling data.
[0198] Step S1120: When the maximum completion time parameter of the third scheduling data is less than the maximum completion time parameter of the eighth scheduling data, replace the ninth scheduling data with the third scheduling data and update the first scheduling set.
[0199] In some embodiments, in steps S1110 to S1120, when such a s does not exist r ∈T, meaning the first candidate data is empty, then the maximum completion time parameter for the third scheduled data is... and the maximum completion time parameter of the eighth scheduling data Perform numerical comparisons. When the maximum completion time parameter of the third scheduling data... The maximum completion time parameter less than the eighth scheduling data Then directly use the third scheduling data s c Replace the ninth scheduling data s b Update the first scheduling set. When the maximum completion time parameter of the third scheduling data... The maximum completion time parameter of the eighth scheduling data is greater than or equal to Therefore, the first scheduling data is not updated. As the iteration progresses, the maximum completion time of the solution in the first scheduling data generally decreases, and the diversity of solutions also increases, providing high-quality initial solutions for subsequent searches.
[0200] In step S370 of some embodiments, the maximum completion time of the first candidate scheduling data and the second candidate scheduling data is compared, and the scheduling data with the minimum maximum completion time is selected as the target scheduling data. Then, the target project is assigned a corresponding target team according to the target scheduling data, and the project execution operation is performed according to the target team.
[0201] Please see Figure 12 , Figure 12This is a schematic diagram of the structure of the multi-team collaborative project scheduling device provided in the embodiments of this application. The device can implement the multi-team collaborative project scheduling method of the above embodiments. The device includes a data acquisition module 1210, an initialization scheduling module 1220, a filtering module 1230, a data recombination module 1240, a neighborhood search module 1250, a set update module 1260, and a target scheduling module 1270.
[0202] Data acquisition module 1210 is used to acquire the initial project data of the target project, which includes the target task, target team and task priority constraint data;
[0203] The initialization scheduling module 1220 is used to initialize task scheduling based on target task, target team and task priority constraint data to obtain a first scheduling set. The first scheduling set includes first scheduling data, which includes the first maximum completion time for completing the target project.
[0204] The filtering module 1230 is used to filter out the first candidate scheduling data from the first scheduling data based on the first maximum completion time.
[0205] The data reassembly module 1240 is used to reassemble the first scheduling data according to a preset path reconnection algorithm to obtain a second scheduling set. The second scheduling set includes the second scheduling data, and the number of data in the first scheduling set is the same as the number of data in the second scheduling set.
[0206] The neighborhood search module 1250 is used to perform a neighborhood search on the second scheduling data according to a preset search algorithm to obtain the third scheduling data.
[0207] The set update module 1260 is used to update the first scheduling set according to the third scheduling data, and to filter out the second candidate scheduling data from the updated first scheduling data.
[0208] The target scheduling module 1270 is used to determine the target scheduling data based on the first candidate scheduling data and the second candidate scheduling data, and then perform project execution operations on the target project based on the target scheduling data.
[0209] It should be noted that the multi-team collaborative project scheduling device in this application embodiment is used to implement the multi-team collaborative project scheduling method in the above embodiment. The multi-team collaborative project scheduling device in this application embodiment corresponds to the aforementioned multi-team collaborative project scheduling method. For the specific processing process, please refer to the aforementioned multi-team collaborative project scheduling method, which will not be repeated here.
[0210] This application also provides a computer device comprising: at least one memory, at least one processor, and at least one computer program. The at least one computer program is stored in the at least one memory, and the at least one processor executes the at least one computer program to implement any of the multi-team collaborative project scheduling methods described in the above embodiments. The computer device can be any smart terminal, including tablet computers, in-vehicle computers, etc.
[0211] Please see Figure 13 , Figure 13 The illustration shows the hardware structure of a computer device according to another embodiment, the computer device comprising:
[0212] The processor 1310 can be implemented using a general-purpose central processing unit (CPU), microprocessor, application specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this application.
[0213] The memory 1320 can be implemented as a read-only memory (ROM), static storage device, dynamic storage device, or random access memory (RAM). The memory 1320 can store the operating system and other applications. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program code is stored in the memory 1320 and is called and executed by the processor 1310 using the multi-team collaborative project scheduling method of the embodiments of this application.
[0214] The input / output interface 1330 is used to implement information input and output;
[0215] The communication interface 1340 is used to enable communication and interaction between this device and other devices. Communication can be achieved through wired means (such as USB, network cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.).
[0216] Bus 1350 transmits information between various components of the device (e.g., processor 1310, memory 1320, input / output interface 1330, and communication interface 1340);
[0217] The processor 1310, memory 1320, input / output interface 1330 and communication interface 1340 are connected to each other within the device via bus 1350.
[0218] This application also provides a computer-readable storage medium storing a computer program for causing a computer to execute the multi-team collaborative project scheduling method described above.
[0219] This application provides a method, apparatus, device, and storage medium for multi-team collaborative project scheduling. It proposes a hybrid priority tree algorithm and path reconnection algorithm for multi-team collaborative project scheduling problems. Compared to the traditional priority tree algorithm, which can only solve single-team project scheduling problems, the multi-team collaborative project scheduling method provided in this application can achieve multi-team collaborative project scheduling. Furthermore, in determining which teams to assign tasks to, this application uses a random allocation strategy to randomly select team combinations that meet the constraints from idle teams, enhancing the randomness of the solution and increasing the diversity of scheduling data. To improve the quality of the initial solution generated by the priority tree algorithm, this application introduces a path reconnection algorithm to reorganize and iterate the first scheduling data to generate higher-quality solutions. This application also introduces an adaptive storage structure—an arc frequency graph—which records the frequency of arcs between tasks executed sequentially in each team, thereby identifying frequently occurring and infrequently occurring arcs in high-quality solutions. This guides the path reconnection algorithm to search the neighborhood space containing solutions with infrequently occurring arcs, further enhancing the diversity of solutions.
[0220] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs and non-transitory computer-executable programs. Furthermore, memory may include high-speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, memory may optionally include memory remotely located relative to the processor, and these remote memories can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0221] The embodiments described in this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided by the embodiments of this application. As those skilled in the art will know, with the evolution of technology and the emergence of new application scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
[0222] Those skilled in the art will understand that the technical solutions shown in the figures do not constitute a limitation on the embodiments of this application, and may include more or fewer steps than shown, or combine certain steps, or different steps.
[0223] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.
[0224] Those skilled in the art will understand that all or some of the steps in the methods disclosed above, as well as the functional modules / units in the systems and devices, can be implemented as software, firmware, hardware, or suitable combinations thereof.
[0225] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0226] It should be understood that in this application, "at least one (item)" means one or more, and "more than" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.
[0227] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of the units described above is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0228] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0229] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0230] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes multiple instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing programs, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0231] The preferred embodiments of the present application have been described above with reference to the accompanying drawings, but this does not limit the scope of the claims of the present application. Any modifications, equivalent substitutions, and improvements made by those skilled in the art without departing from the scope and substance of the embodiments of the present application shall be within the scope of the claims of the present application.
Claims
1. A method for scheduling collaborative projects involving multiple teams, characterized in that, The method includes: Obtain initial project data for the target project, including target tasks, target teams, and task priority constraint data, including execution team thresholds and task prerequisite types. Obtain an initial priority tree, which includes initial layer data; determine the scheduled task set and unscheduled task set of the initial layer data according to the target task, the unscheduled task set including unscheduled tasks; determine a first start time according to the unscheduled tasks and the task prerequisite type; construct a qualified team set according to the historical task completion time of the target team; determine the execution team set of the target task in the initial layer data according to the qualified team set and the execution team threshold; update the scheduled task set and the unscheduled task set according to the execution team set; when the unscheduled task set is an empty set or the unscheduled task is a preset virtual tail node, construct first scheduling data according to the target task and the execution team set, and construct a first scheduling set according to the first scheduling data, the first scheduling set including the first scheduling data, the first scheduling data including a first maximum completion time for completing the target project; First candidate scheduling data is selected from the first scheduling set based on the first maximum completion time; The first scheduling data is reorganized according to a preset path reconnection algorithm to obtain a second scheduling set. The second scheduling set includes the second scheduling data, and the number of data in the first scheduling set is the same as the number of data in the second scheduling set. The third scheduling data is obtained by performing a neighborhood search on the second scheduling data according to a preset search algorithm; The first scheduling set is updated according to the third scheduling data, and second candidate scheduling data is selected from the updated first scheduling set. Target scheduling data is determined based on the first candidate scheduling data and the second candidate scheduling data, and project execution operations are performed on the target project based on the target scheduling data.
2. The method according to claim 1, characterized in that, The step of filtering the first candidate scheduling data from the first scheduling set based on the first maximum completion time includes: Obtain priority tree iteration parameters, and initialize task scheduling based on the priority tree iteration parameters, the target task, the target team, and the task priority constraint data to obtain fourth scheduling data; Obtain the second maximum completion time of the fourth scheduling data; The first maximum completion time and the second maximum completion time are compared to obtain the time comparison result. The first candidate scheduling data is determined from the fourth scheduling data and the first scheduling data based on the time comparison result.
3. The method according to claim 1, characterized in that, The step of reorganizing the first scheduling data according to a preset path reconnection algorithm to obtain a second scheduling set includes: The first scheduling data is sampled according to a preset sampling quantity to obtain a sampling set, the sampling set including the fifth scheduling data; According to the target project, an initial scheduling data pair is collected from the fifth scheduling data, and the initial scheduling data pair includes the first reconnection data and the second reconnection data. Search for the first neighboring data adjacent to the second reconnected data based on the neighborhood space of the first reconnected data; The second neighboring data is determined from the first neighboring data based on the maximum completion time parameter; The second reconnection data is updated according to the sampling set, and the second neighborhood data is updated according to the updated second reconnection data; After all the fifth scheduling data has been searched, the second scheduling data is determined based on the second neighborhood data, and the second scheduling set is constructed based on the second scheduling data.
4. The method according to any one of claims 1 to 3, characterized in that, The step of performing a neighborhood search on the second scheduling data according to a preset search algorithm to obtain the third scheduling data includes: The search target data is determined based on the second scheduling data; Select the sixth scheduling data from the second scheduling data; The seventh scheduling data is selected from the neighborhood space of the sixth scheduling data according to a preset fitness function; The sixth scheduling data and the seventh scheduling data are compared based on the maximum completion time parameter, and the search target data is updated based on the comparison result. Add the seventh scheduling data to the preset taboo list; The third scheduling data is determined based on the preset search iteration parameters, the preset taboo list, and the search target data.
5. The method according to claim 4, characterized in that, The step of updating the first scheduling set according to the third scheduling data includes: Based on the maximum completion time parameter, the eighth scheduling data and the ninth scheduling data are selected from the first scheduling set. The eighth scheduling data is used to represent the data with the smallest maximum completion time parameter in the first scheduling data, and the ninth scheduling data is used to represent the data with the largest maximum completion time parameter in the first scheduling data. When the maximum completion time parameter of the third scheduling data is less than the maximum completion time parameter of the ninth scheduling data, the first candidate data is selected from the first scheduling set based on the maximum completion time parameter and the first arc frequency data of the first scheduling data. If the first candidate data is not empty, replace the first candidate data with the third scheduling data and update the first scheduling set.
6. The method according to claim 5, characterized in that, Before replacing the first candidate data with the third scheduling data and updating the first scheduling set when the first candidate data is not empty, the step of updating the first scheduling set according to the third scheduling data further includes: When the first candidate data is empty, the maximum completion time parameter of the third scheduling data and the maximum completion time parameter of the eighth scheduling data are compared numerically. When the maximum completion time parameter of the third scheduling data is less than the maximum completion time parameter of the eighth scheduling data, the third scheduling data replaces the ninth scheduling data, and the first scheduling set is updated.
7. A multi-team collaborative project scheduling device, characterized in that, The device includes: The data acquisition module is used to acquire the initial project data of the target project. The initial project data includes the target task, the target team, and the task priority constraint data. The task priority constraint data includes the execution team threshold and the task prerequisite type. An initialization scheduling module is used to obtain an initial priority tree, which includes initial layer data; determine the scheduled task set and unscheduled task set of the initial layer data according to the target task, the unscheduled task set including unscheduled tasks; determine a first start time according to the unscheduled tasks and the task prerequisite type; construct a qualified team set according to the historical task completion time of the target team; determine the execution team set of the target task in the initial layer data according to the qualified team set and the execution team threshold; update the scheduled task set and the unscheduled task set according to the execution team set; when the unscheduled task set is an empty set or the unscheduled task is a preset virtual tail node, construct first scheduling data according to the target task and the execution team set, and construct a first scheduling set according to the first scheduling data, the first scheduling set including the first scheduling data, the first scheduling data including a first maximum completion time for completing the target project; The filtering module is used to filter out first candidate scheduling data from the first scheduling set based on the first maximum completion time; The data reassembly module is used to reassemble the first scheduling data according to a preset path reconnection algorithm to obtain a second scheduling set. The second scheduling set includes the second scheduling data, and the number of data in the first scheduling set is the same as the number of data in the second scheduling set. The neighborhood search module is used to perform a neighborhood search on the second scheduling data according to a preset search algorithm to obtain the third scheduling data; The set update module is used to update the first scheduling set according to the third scheduling data, and to filter out the second candidate scheduling data from the updated first scheduling set. The target scheduling module is used to determine target scheduling data based on the first candidate scheduling data and the second candidate scheduling data, and to perform project execution operations on the target project based on the target scheduling data.
8. A computer device, characterized in that, include: At least one memory; At least one processor; At least one computer program; The at least one computer program is stored in the at least one memory, and the at least one processor executes the at least one computer program to perform: The method as described in any one of claims 1 to 6.
9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that is used to cause the computer to execute: The method as described in any one of claims 1 to 6.