Process task scheduling method, device, equipment, storage medium and product
By obtaining and processing the mapping relationship between process tasks and resource groups, calculating the adaptability and determining the target sequence, the problem of inaccurate process task scheduling results in the prior art is solved, and efficient and accurate resource and time planning is achieved.
Patent Information
- Application Number
- CN202411134128.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-19
- Publication Date
- 2024-12-31
- Estimated Expiration
- 2044-08-19
AI Technical Summary
The existing process task scheduling methods are difficult to obtain scheduling results efficiently and accurately, resulting in errors in resource allocation and time planning.
By obtaining multiple candidate sequences, each sequence unit represents the mapping relationship between the process task and the resource group, performs scheduling processing and calculates the fitness. If the preset termination condition is met, the target sequence and its scheduling results will be determined, and genetic algorithms will be used, etc. Methods improve accuracy and efficiency.
It realizes efficient and accurate resource allocation and time planning of process tasks, improves the accuracy and efficiency of scheduling, and ensures the rational use of resources.
Smart Images

Figure CN118657350B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of data processing technology, specifically to the technical fields of big data, search algorithms, etc., and in particular to a process task scheduling method, device, equipment, storage medium and product. Background Art
[0002] Process task scheduling is an important issue for enterprises to formulate production operation plans, which is used to determine the execution resources and execution time of each process task.
[0003] The problem of how to obtain scheduling results efficiently and accurately needs to be solved. Summary of the invention
[0004] The present invention provides a process task scheduling method, device, equipment, storage medium and product.
[0005] According to one aspect of the present disclosure, a process task scheduling method is provided, comprising: obtaining multiple candidate sequences, each candidate sequence comprising multiple sequence units, each sequence unit being used to represent a mapping relationship between each process task and a resource group; performing scheduling processing on each candidate sequence to obtain a scheduling result of each candidate sequence; determining the fitness of each candidate sequence based on the scheduling result of each candidate sequence; if a preset termination condition is reached, determining a target sequence from the multiple candidate sequences based on the fitness, and using the scheduling result of the target sequence as the target scheduling result.
[0006] According to another aspect of the present disclosure, a process task scheduling device is provided, including: a first acquisition module, used to acquire multiple candidate sequences, each candidate sequence includes multiple sequence units, and each sequence unit is used to represent the mapping relationship between each process task and a resource group; a second acquisition module, used to schedule each candidate sequence to obtain a scheduling result of each candidate sequence; a third acquisition module, used to determine the fitness of each candidate sequence based on the scheduling result of each candidate sequence; a determination module, used to determine a target sequence among the multiple candidate sequences based on the fitness if a preset termination condition is reached, and use the scheduling result of the target sequence as the target scheduling result.
[0007] According to another aspect of the present disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute any method as described in any of the above aspects.
[0008] According to another aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to enable the computer to execute any one of the methods according to any one of the above aspects.
[0009] According to another aspect of the present disclosure, a computer program product is provided, including a computer program, wherein when the computer program is executed by a processor, the computer program implements any one of the methods described in any one of the above aspects.
[0010] According to the technical solution disclosed in the present invention, the scheduling results of process tasks can be obtained efficiently and accurately.
[0011] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The accompanying drawings are used to better understand the present solution and do not constitute a limitation of the present disclosure.
[0013] Figure 1 is a schematic diagram of a process task scheduling method according to a first embodiment of the present disclosure;
[0014] Figure 2 is a schematic diagram of a process task sequence provided according to an embodiment of the present disclosure;
[0015] Figure 3 is a schematic diagram of an available time matrix provided according to an embodiment of the present disclosure;
[0016] Figure 4 is a schematic diagram of a process task scheduling method according to a second embodiment of the present disclosure;
[0017] Figure 5 is a schematic diagram of multiple initial sequences provided according to an embodiment of the present disclosure;
[0018] Figure 6 It is a flowchart of determining the execution time and execution resources of the current process task provided according to an embodiment of the present disclosure;
[0019] Figure 7 is a schematic diagram of an updated available time matrix provided according to an embodiment of the present disclosure;
[0020] Figure 8 is a schematic diagram of a cross-processing process provided according to an embodiment of the present disclosure;
[0021] Fig. 9 is a schematic diagram of a variation processing process provided according to an embodiment of the present disclosure;
[0022] Fig.10 is a schematic diagram of a process task scheduling device according to a third embodiment of the present disclosure;
[0023] Fig.11 It is a schematic diagram of an electronic device used to implement the process task scheduling method of the embodiment of the present disclosure. DETAILED DESCRIPTION
[0024] The following is a description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for the sake of clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.
[0025] In order to better understand the embodiments of the present disclosure, the terms involved in the embodiments of the present disclosure are explained as follows:
[0026] Resources: Entities required to complete process tasks, including equipment and personnel.
[0027] Resource pool: A collection of resources with the same function.
[0028] Resource group: A collection of resource pools required for a certain process task.
[0029] There are multiple resource groups available for selection for each process task, and one process task can be assigned to one resource group.
[0030] Taking the stamping process task of a workshop as an example, the resources may include: the first large stamping machine and the second large stamping machine; the first small stamping machine, the second small stamping machine and the third small stamping machine; the first skilled worker, the second skilled worker and the third skilled worker; the first novice worker and the second novice worker.
[0031] The first large punch and the second large punch form the first resource pool (large punch resource pool). The first small punch, the second small punch and the third small punch form the second resource pool (small punch resource pool). The first skilled worker, the second skilled worker and the third skilled worker form the third resource pool (skilled worker resource pool). The first novice and the second novice form the fourth resource pool (novice resource pool).
[0032] The resource groups available for selection are user-defined. For example, the resource group includes: one large stamping machine and one skilled worker, and the time required is 2 hours. Or for example, the resource group includes: one large stamping machine and two skilled workers, and the time required is 1 hour. Or for example, the resource group includes: two small stamping machines and two novice workers, and the time required is 4 hours, etc.
[0033] After process task scheduling, it is necessary to determine the specific resources and execution time corresponding to the stamping process task. For example, the first skilled worker uses the first large stamping machine to start executing the stamping process task at 11 o'clock.
[0034] Figure 1 is a schematic diagram according to a first embodiment of the present disclosure. This embodiment provides a process task scheduling method, the method comprising:
[0035] 101. Acquire multiple candidate sequences, each candidate sequence includes multiple sequence units, and each sequence unit is used to represent a mapping relationship between each process task and a resource group.
[0036] 102. Perform scheduling processing on each candidate sequence to obtain a scheduling result of each candidate sequence.
[0037] 103. Based on the scheduling result of each candidate sequence, determine the fitness of each candidate sequence.
[0038] 104. If a preset termination condition is reached, determine a target sequence from the multiple candidate sequences based on the fitness, and use the scheduling result of the target sequence as a target scheduling result.
[0039] The sequence refers to a process task sequence, which includes a plurality of sequence units, each of which is used to represent a mapping relationship (or a corresponding relationship) between each process task and a resource group.
[0040] Figure 2 Schematic diagram of a process task sequence provided according to an embodiment of the present disclosure. Figure 2 As shown, taking four process tasks as an example, they are represented as process task-1 to process task-4, and resource groups are represented by resource group-1 to resource group-4. Then the process task sequence includes 4 sequence units, each sequence unit corresponds to a process task, which is used to represent the mapping relationship between each process task and the resource group.
[0041] For example, the first sequence unit corresponds to process task-1, and the resource group mapped to process task-1 is resource group-1. Similarly, the second sequence unit corresponds to process task-4, and the resource group mapped to process task-4 is resource group-2, and so on. In this embodiment, different process tasks correspond to different resource groups as an example. It can be understood that different process tasks can also correspond to the same resource group. For example, process task-4 can also correspond to resource group-1.
[0042] For the purpose of distinction, sequences are divided into candidate sequences and target sequences. A candidate sequence is a sequence that can be selected, and a target sequence is a sequence selected from the candidate sequence. In one embodiment, the candidate sequence with the largest fitness can be used as the target sequence. For example, the candidate sequence includes a first sequence, a second sequence, and a third sequence. If the third sequence has the largest fitness, the third sequence is used as the target sequence.
[0043] The scheduling results include: the execution order of process tasks, the execution time and execution resources of each process task.
[0044] The execution order of the process tasks is consistent with the order of the process tasks in the target sequence. For example, the target sequence is Figure 2 As shown in the sequence, the execution order of the process tasks is: process task-1, process task-4, process task-2, process task-3.
[0045] The execution time and execution resources of each process task can be determined based on the available time matrix of the resources in the resource group corresponding to the process task. Figure 2 The sequence shown corresponds to resource group-1. Afterwards, the execution time and execution resources of process task-1 are determined based on the available time matrix of resources in resource group-1.
[0046] A resource group can include one or more resource pools, and each resource pool can include one or more resources. The mapping relationship between resource groups and resource pools (i.e., which resource pools a resource group includes) and the mapping relationship between resource pools and resources (i.e., which resources a resource pool includes) are user-defined.
[0047] The available time matrix is used to represent the available time of resources.
[0048] Figure 3 It is a schematic diagram of an available time matrix provided according to an embodiment of the present disclosure.
[0049] like Figure 3 As shown, the rows of the matrix correspond to various resources, and the columns of the matrix are preset unit times. The matrix elements are used to indicate whether the corresponding resources are available at the corresponding time. A matrix element of 1 indicates availability, and a matrix element of 0 indicates unavailability.
[0050] like Figure 3As shown, in one embodiment, the resource pool includes: a large stamping machine resource pool, a small stamping machine resource pool, a skilled worker resource pool, and a novice resource pool; the large stamping machine resource pool includes two resources, namely, stamping machine-01 and stamping machine-02, wherein there are two stamping machines-01 and three stamping machines-02. The small stamping machine resource pool includes one resource, stamping machine-03, and there is one stamping machine-03. The skilled worker resource pool includes three personnel, A, B, and C. The novice resource pool includes two personnel, D and E.
[0051] The available time matrix corresponding to the resource is used to indicate whether it is available at each time. For example, the first stamping machine-01 is available at 8 o'clock, and the second stamping machine-01 is unavailable at 8 o'clock. Personnel A is unavailable at 8 o'clock and 9 o'clock, and is available at 11 o'clock. The meanings of the other parameters are similar and will not be repeated here.
[0052] After obtaining the available time matrix, the execution time and execution resources of the process task are obtained based on the available time matrix. Execution resources include specific equipment and personnel. The execution time can specifically include the execution start time and execution duration. For example, person A uses stamping machine-01, starts execution at 10 o'clock, and the execution time is 2 hours, that is, it ends at 12 o'clock.
[0053] After obtaining the scheduling result of each candidate sequence, the fitness of each candidate sequence can be calculated based on the scheduling result, and when a preset termination condition is reached, the target sequence and its corresponding target scheduling result can be determined based on the fitness.
[0054] The termination condition includes, for example, the maximum number of iterations and the existence of at least one candidate sequence with a hard constraint score equal to 0. In addition, if after multiple iterations, no candidate sequence has a hard constraint score that reaches 0, that is, all are less than 0, then when the set number of iterations is reached, the process is terminated and an alarm is issued even if the hard constraint score does not meet the condition. The calculation process of the hard constraint score can be found in the subsequent description.
[0055] In this embodiment, the target sequence is determined based on the fitness, and the target sequence and its corresponding target scheduling result can be obtained by using the genetic algorithm idea, thereby improving the accuracy and efficiency of process task scheduling.
[0056] In one embodiment, the present disclosure provides a process task scheduling method, the method comprising:
[0057] Randomly generate multiple initial sequences as initial values of multiple candidate sequences;
[0058] After determining the fitness of each candidate sequence, if a preset termination condition is not met, performing selection processing among the multiple candidate sequences based on the fitness to obtain a sequence after selection processing;
[0059] Performing cross processing on the selected processed sequence to obtain a cross processed sequence;
[0060] The crossover processed sequence is subjected to mutation processing to obtain a mutated processed sequence as a new candidate sequence.
[0061] Figure 4 is a schematic diagram according to a second embodiment of the present disclosure. This embodiment provides a process task scheduling method, the method comprising:
[0062] 401. Randomly generate multiple initial sequences as initial values of multiple candidate sequences.
[0063] The initial sequence may also be a process task sequence; the initial sequence may be randomly generated.
[0064] Each initial sequence includes multiple sequence units, and each sequence unit is used to represent the mapping relationship between each process task and resource group.
[0065] For the initial sequence, the resource group corresponding to each process task is randomly determined, and the arrangement order of the process tasks in the initial sequence is also randomly determined.
[0066] Figure 5 It is a schematic diagram of multiple initial sequences provided according to an embodiment of the present disclosure.
[0067] like Figure 5 As shown, both process tasks and resource groups are represented by serial numbers (IDs). The process task IDs are j1~j6, and the resource group IDs are g1~g6. Figure 5 Two initial sequences are shown. In the first initial sequence, the order of the process tasks is j1, j2, j4, j3, j5, j6, and their corresponding resource groups are g1~g6 respectively.
[0068] 402. Perform scheduling processing on each candidate sequence to obtain a scheduling result of each candidate sequence.
[0069] Specifically, performing scheduling processing on each candidate sequence to obtain a scheduling result for each candidate sequence may include:
[0070] The arrangement order of each sequence unit in each candidate sequence is used as the execution order of the process tasks corresponding to each sequence unit;
[0071] For a current process task, determine a resource group corresponding to the current process task based on the mapping relationship, and obtain an available time matrix of resources in the resource group; the current process task is any process task in each candidate sequence;
[0072] Based on the available time matrix, determining the execution time and execution resources of the current process task;
[0073] The execution order of the process tasks, the execution time and the execution resources of the current process tasks are used as the scheduling result of each candidate sequence.
[0074] For example, Figure 5 Two candidate sequences are shown. For the above candidate sequences, the execution order of their process tasks is arranged in the following order: j1, j2, j4, j3, j5, j6.
[0075] For each candidate sequence, each process task is taken as the current process task in turn, and the execution time and execution resources of the current process task are obtained.
[0076] Specifically, based on the available time matrix, determining the execution time and execution resources of the current process task may include:
[0077] Based on the available time matrix, determine the earliest available time of each resource pool included in the resource group; the earliest available time is later than the end time of the predecessor process task, and the idle time after the earliest available time is greater than or equal to the execution time corresponding to the resource group;
[0078] If the earliest available time of each resource pool is the same, the earliest available time is used as the execution start time of the current process task, and the time corresponding to the execution start time and the execution duration is used as the execution time; and the resources corresponding to the earliest available time are used as the execution resources.
[0079] Figure 6 It is a flowchart of determining the execution time and execution resources of the current process task provided according to an embodiment of the present disclosure.
[0080] like Figure 6 As shown, the method includes:
[0081] 601. Determine the resource group corresponding to the current process task.
[0082] Among them, the resource group corresponding to each process task can be specified by the user. In one embodiment, the resource group can be determined according to the pre-configuration information. In one embodiment, the sequence unit of each candidate sequence is used to represent the mapping relationship between the process task and the resource group. If the resource group corresponding to the current process task is not empty, the resource group can be determined according to the mapping relationship. In one embodiment, if the user does not specify, and the resource group corresponding to the mapping relationship is empty, then one is randomly selected from the multiple resource groups corresponding to the preset current process task.
[0083] For example, based on Figure 5For the candidate sequence shown above, if the current process task is j1, then its corresponding resource group is g1.
[0084] 602. Obtain an available time matrix of each resource in the resource group; the available time matrix is used to represent the available time of the resource.
[0085] Each resource group includes one or more resource pools, and each resource pool includes one or more resources. Each resource pool and each resource may be traversed in sequence to obtain an available time matrix of each resource.
[0086] The initial elements of the available time matrix may all be 1, indicating that all are available. The available time matrix is updated after allocating resources and time.
[0087] For example, the available time matrix can be Figure 3 shown.
[0088] 603. Query the earliest available time of each resource pool included in the resource group; the earliest available time is later than the end time of the predecessor process task, and the idle time after the earliest available time is greater than or equal to the execution time corresponding to the resource group.
[0089] For each process task, the user can customize the resource pool included in each resource group corresponding to the process task, as well as the execution time of each resource group.
[0090] For example, for a stamping process task, its resource groups may include the first resource group, the second resource group, and the third resource group. The first resource group includes a large stamping machine and one skilled worker, and the corresponding execution time is 2 hours. The second resource group includes a large stamping machine and two skilled workers, and the corresponding execution time is 1 hour. The third resource group includes two small stamping machines and two novice workers, and the corresponding execution time is 4 hours, etc.
[0091] Taking the resource group being the first resource group as an example, the resource pools included in the resource group are a large stamping machine resource pool and a skilled worker resource pool. At this time, it is necessary to obtain the earliest available time of the large stamping machine resource pool and the earliest available time of the skilled worker resource pool.
[0092] The earliest available time is represented by t2, and the end time of the predecessor task is represented by t1. If the current task has no predecessor task, t1 can be considered to be 0, otherwise t1 is the actual allocation time of the predecessor task.
[0093] t2 needs to be later than t1, that is, t2 is greater than or equal to t1, and the idle time of the resource after t2 is greater than or equal to the execution time corresponding to the resource group (for example, the execution time corresponding to the first resource pool is 2 hours).
[0094] For example, see Figure 3 , if the end time of the predecessor task is t1 = 10 o'clock, then for the large stamping machine resource pool, its earliest available time is t2 = 10 o'clock. Specifically, the first large stamping machine-01 is available at 10 o'clock, and the available time after 10 o'clock is greater than 2 hours. For the skilled worker resource pool, its earliest available time is t2 = 11 o'clock. Specifically, if employee B is available at 11 o'clock, and the available time after 11 o'clock is greater than 2 hours.
[0095] 604. Determine whether the earliest available time of each resource pool is the same. If so, execute 605; otherwise, execute 606.
[0096] 605. Use the earliest available time as the execution start time of the current process task, and use the time corresponding to the execution start time and the execution duration as the execution time; and use the resources corresponding to the earliest available time as the execution resources.
[0097] 606. Requery the earliest available time of each resource pool, the earliest available time of the requery is later than the latest time among the different earliest available times queried previously, and the idle time after the earliest available time of the requery is greater than or equal to the execution time corresponding to the resource group. Then, repeat 604 and subsequent steps.
[0098] For example, the t2 of the above two resource pools are 10 o'clock and 11 o'clock respectively, which are different. Then, find the latest time (11 o'clock) among the different times, and then re-query the earliest available time after 11 o'clock. For example, the earliest available time re-queried for the large stamping machine resource pool is 11 o'clock (for example, the first large stamping machine-01 is available at 11 o'clock, and the available time is greater than 2 hours), and the earliest available time re-queried for the skilled worker resource pool is 11 o'clock (for example, staff B is available at 11 o'clock, and the available time is greater than 2 hours). At this time, the earliest available time re-queried for the two resource pools is the same.
[0099] When the earliest available time of different resource pools is the same, the time is used as the execution start time of the current process task. For example, 11 o'clock is used as the execution start time, and the execution duration is a preset value, such as 2 hours. Therefore, the current process task starts at 11 o'clock and executes for 2 hours, so the execution time is 11 o'clock and 12 o'clock.
[0100] In one embodiment, the resources corresponding to the earliest available time may also be used as execution resources, for example, large stamping machine-01 and skilled worker B may be used as execution resources.
[0101] After allocating resources to the current process task, the available time matrix is updated and the occupied time is updated to unavailable for subsequent processing.
[0102] Figure 7 is a schematic diagram of an updated available time matrix provided according to an embodiment of the present disclosure.
[0103] For example, if the execution resources of the current process task are large stamping machine-01 and skilled worker B, and the execution time is 11 o'clock and 12 o'clock, then Figure 7 As shown, the corresponding time of the corresponding resource (indicated by a thick frame) is updated to unavailable, that is, the matrix element is updated from 1 to 0.
[0104] 403. Determine the fitness of each candidate sequence based on the scheduling result of each candidate sequence.
[0105] Specifically, the scheduling result of each candidate sequence includes:
[0106] The end time of the previous process task and the start time of the current process task;
[0107] The start time of the earliest starting process task and the end time of the latest ending process task;
[0108] The end time of the current process task and the end time of the order to which the current process task belongs;
[0109] Execution resources corresponding to the process tasks;
[0110] The step of determining the fitness of each candidate sequence based on the scheduling result of each candidate sequence comprises:
[0111] Determining a hard constraint score based on the end time of the predecessor process task and the start time of the current process task;
[0112] Determine the overall time spent score based on the start time of the earliest start process task and the end time of the latest end process task;
[0113] Determine an order priority score based on the end time of the current process task and the end time of the order, as well as a preset priority of the order;
[0114] Determine the resource priority score based on the execution resources corresponding to the process task and the preset resource priority;
[0115] Acquire multiple process tasks corresponding to the same execution resource based on the execution resources corresponding to the process tasks, and determine the number of changeover scores based on whether the multiple process tasks produce the same product;
[0116] The fitness of each candidate sequence is determined based on the hard constraint score, the overall time spent score, the order priority score, the resource priority score and the conversion number score.
[0117] The formula is:
[0118] The hard constraint score is used to evaluate the execution order of process tasks. The larger the hard constraint score, the better the execution order of the corresponding process tasks. The calculation formula is:
[0119]
[0120]
[0121] in, is the hard constraint score, is the end time of process task i, is the start time of process task j, and process task i is the predecessor process task of process task j.
[0122] Soft constraint scores include: overall time spent score, order priority score, resource priority score, and number of conversion scores.
[0123] The overall time spent score is used to evaluate the overall time spent on all process tasks. The larger the overall time spent score, the better the overall time spent on all process tasks. The calculation formula is:
[0124]
[0125] in, is the overall time spent fraction, is the start time of the earliest process task. It is the end time of the process task that starts the latest.
[0126] Order priority score, used to evaluate order priority, the larger the better. The calculation formula is:
[0127]
[0128]
[0129] in, is the order priority score; is the priority of the order to which process task i belongs, which is a known value between 1 and 10. The smaller the value, the higher the priority. This embodiment takes the maximum priority of 10 as an example, and other values may also be used, and the calculation method is similar.
[0130] Resource priority score, used to evaluate resource priority. The larger the score, the better.
[0131] The calculation formula is:
[0132]
[0133]
[0134] in, is the resource priority score, n is the number of resources, and k is the number of process tasks; is the priority of resource r, which is a known value between 1 and 10. The smaller the value, the higher the priority. This embodiment takes the maximum priority of 10 as an example, and other values may also be used, and the calculation method is similar.
[0135] The number of changeovers score is used to evaluate the number of changeovers. The larger the number of changeovers score, the better the number of changeovers.
[0136] The calculation formula is:
[0137]
[0138]
[0139] in, is the fraction of the number of changeovers, and m is the number of all process tasks on resource r.
[0140] After obtaining the above hard constraint scores and soft constraint scores, they can be added together to obtain the fitness.
[0141] That is, fitness = soft constraint score + hard constraint score;
[0142] Soft constraint score = overall time spent score + order priority score + resource priority score + number of changeovers score.
[0143] 404. Determine whether the preset termination condition is met. If so, execute 405; otherwise, execute 406.
[0144] The termination condition may include: the maximum number of iterations, and the existence of at least one candidate sequence with a hard constraint score equal to 0. If after multiple iterations, no candidate sequence has a hard constraint score that reaches 0, that is, all are less than 0, then when the set number of iterations is reached, the process is terminated even if the hard constraint score does not meet the condition, and an alarm is issued.
[0145] 405. Determine a target sequence from the multiple candidate sequences based on the fitness, and use the scheduling result of the target sequence as the target scheduling result.
[0146] In one embodiment, the candidate sequence with the largest fitness can be used as the target sequence. For example, the candidate sequence includes a first sequence, a second sequence, and a third sequence. If the third sequence has the largest fitness, the third sequence is used as the target sequence.
[0147] The target scheduling result includes: the execution order of process tasks, the execution time and execution resources of each process task. The execution order of process tasks is the arrangement order of the corresponding sequence units in the target sequence, and the execution time and execution resources are determined based on the above-mentioned available time matrix.
[0148] 406. Based on the fitness, perform selection processing among the multiple candidate sequences to obtain a sequence after selection processing.
[0149] Specifically, it may include: performing Pareto optimal grouping on the multiple candidate sequences based on the fitness to obtain multiple groups;
[0150] Calculate the crowding distance for each group to obtain the crowding distance corresponding to each group;
[0151] A preset number of groups are selected based on the crowding distance, and candidate sequences in the selected groups are used as selected processed sequences. For example, 20 groups with larger crowding distances are selected.
[0152] 407. Perform cross processing on the selected processed sequence to obtain a cross processed sequence.
[0153] Specifically, it may include: for any two first sequences and second sequences in the selected processed sequences whose similarities are lower than a preset value: based on a preset crossover operator, obtaining a first part of the first sequence and a second part of the second sequence, wherein the first part and the second part are complementary, and sequentially splicing the first part and the second part to obtain a crossover processed sequence.
[0154] The preset value of the similarity may be 75%. If there is no sequence with a similarity lower than the preset value, the constraint may be ignored.
[0155] Figure 8 is a schematic diagram of a cross-processing process provided according to an embodiment of the present disclosure.
[0156] like Figure 8 As shown in the figure, the crossover operator is used to divide the serial numbers corresponding to the process tasks (such as 0~5) into two complementary sets, such as {1,2,3} and {0,4,5}. Then, the parts corresponding to the two complementary sets are selected from the two sequences respectively and spliced in order to obtain the sequence after crossover processing.
[0157] 408. Perform mutation processing on the crossover processed sequence to obtain a mutated processed sequence as a new candidate sequence. Then, repeat 402 and subsequent steps.
[0158] Specifically, performing mutation processing on the crossover processed sequence to obtain a mutation processed sequence may include: randomly selecting a sequence in the crossover processed sequence;
[0159] In a randomly selected sequence, a preset number of points are randomly selected, and the process tasks at the randomly selected points are randomly sorted to obtain randomly sorted process tasks;
[0160] The resource groups at the randomly selected points are randomly processed to obtain randomly allocated resource groups;
[0161] The randomly ordered process tasks and the randomly assigned resource groups are used to replace the process tasks and resource groups corresponding to the points to generate a sequence after variation processing.
[0162] Fig. 9 It is a schematic diagram of the variation processing process provided according to an embodiment of the present disclosure.
[0163] like Fig. 9 As shown, if a randomly selected sequence is Fig. 9 For the sequence shown on the upper side, if the preset number = 3, then the process tasks of 3 points are randomly selected in the sequence and randomly arranged. For example, the original arrangement order of the process task id is j2, j3, j5. After random processing, the arrangement order is j5, j2, j3, and the resource groups corresponding to these 3 points are randomly allocated. For example, the original resource group id of g3, g2, g3 is updated to the resource group id of g1, g2, g1.
[0164] After selection, crossover and mutation, the sequence is used as a new candidate sequence to re-execute the above process until the termination condition is reached. The candidate sequence with the maximum fitness when the termination condition is reached is used as the target sequence, and the scheduling result of the target sequence is obtained as the final target scheduling result.
[0165] Fig.10 is a schematic diagram according to the third embodiment of the present disclosure. This embodiment provides a process task scheduling device, such as Fig.10 The device 1000 comprises: a first acquisition module 1001 , a second acquisition module 1002 , a third acquisition module 1003 and a determination module 1004 .
[0166] The first acquisition module 1001 is used to acquire multiple candidate sequences, each candidate sequence includes multiple sequence units, and each sequence unit is used to represent the mapping relationship between each process task and resource group.
[0167] The second acquisition module 1002 is used to perform scheduling processing on each candidate sequence to obtain a scheduling result of each candidate sequence.
[0168] The third acquisition module 1003 is used to determine the fitness of each candidate sequence based on the scheduling result of each candidate sequence.
[0169] The determination module 1004 is configured to determine a target sequence from the plurality of candidate sequences based on the fitness if a preset termination condition is reached, and use the scheduling result of the target sequence as a target scheduling result.
[0170] In some embodiments, the third acquisition module 1003 is further used to:
[0171] The arrangement order of each sequence unit in each candidate sequence is used as the execution order of the process tasks corresponding to each sequence unit;
[0172] For a current process task, determine a resource group corresponding to the current process task, and obtain an available time matrix of resources in the resource group; the current process task is any process task in each candidate sequence;
[0173] Based on the available time matrix, determining the execution time and execution resources of the current process task;
[0174] The execution order of the process tasks, the execution time and the execution resources of the current process tasks are used as the scheduling result of each candidate sequence.
[0175] In some embodiments, the third acquisition module 1003 is further used to:
[0176] Based on the available time matrix, determine the earliest available time of each resource pool included in the resource group; the earliest available time is later than the end time of the predecessor process task, and the idle time after the earliest available time is greater than or equal to the execution time corresponding to the resource group;
[0177] If the earliest available time of each resource pool is the same, the earliest available time is used as the execution start time of the current process task, and the time corresponding to the execution start time and the execution duration is used as the execution time; and the resources corresponding to the earliest available time are used as the execution resources.
[0178] In some embodiments, the scheduling result of each candidate sequence includes:
[0179] The end time of the previous process task and the start time of the current process task;
[0180] The start time of the earliest starting process task and the end time of the latest ending process task;
[0181] The end time of the current process task and the end time of the order to which the current process task belongs;
[0182] Execution resources corresponding to the process tasks;
[0183] The third acquisition module 1003 is further used for:
[0184] Determining a hard constraint score based on the end time of the predecessor process task and the start time of the current process task;
[0185] Determine the overall time spent score based on the start time of the earliest start process task and the end time of the latest end process task;
[0186] Determine an order priority score based on the end time of the current process task and the end time of the order, as well as a preset priority of the order;
[0187] Determine the resource priority score based on the execution resources corresponding to the process task and the preset resource priority;
[0188] Acquire multiple process tasks corresponding to the same execution resource based on the execution resources corresponding to the process tasks, and determine the number of changeover scores based on whether the multiple process tasks produce the same product;
[0189] The fitness of each candidate sequence is determined based on the hard constraint score, the overall time spent score, the order priority score, the resource priority score and the conversion number score.
[0190] In some embodiments, the apparatus 1000 further includes a generating module.
[0191] The generating module is used to randomly generate a plurality of initial sequences as initial values of a plurality of candidate sequences.
[0192] In some embodiments, the apparatus 1000 further includes a selection module.
[0193] The selection module is used to, after determining the fitness of each candidate sequence, if a preset termination condition is not met, perform selection processing among the multiple candidate sequences based on the fitness to obtain a sequence after selection processing.
[0194] In some embodiments, the apparatus 1000 further includes a crossover module.
[0195] The crossover module is used to perform crossover processing on the selected processed sequence to obtain a crossover processed sequence.
[0196] In some embodiments, the apparatus 1000 further includes a mutation module.
[0197] The mutation module is used to perform mutation processing on the crossover processed sequence to obtain a mutated sequence as a new candidate sequence.
[0198] In some embodiments, the selection module is further configured to:
[0199] Based on the fitness, performing Pareto optimal grouping on the multiple candidate sequences to obtain multiple groups;
[0200] Calculate the crowding distance for each group to obtain the crowding distance corresponding to each group;
[0201] A preset number of groups are selected based on the crowding distance, and candidate sequences in the selected groups are used as selected processed sequences.
[0202] In some embodiments, the crossover module is further used to:
[0203] For any two first sequences and second sequences in the selected processed sequences whose similarities are lower than a preset value: based on a preset crossover operator, a first part of the first sequence and a second part of the second sequence are obtained, and the first part and the second part are complementary, and the first part and the second part are sequentially spliced to obtain a crossover processed sequence.
[0204] In some embodiments, the mutation module is further used to:
[0205] Randomly select a sequence from the sequences after the crossover process;
[0206] In a randomly selected sequence, a preset number of points are randomly selected, and the process tasks at the randomly selected points are randomly sorted to obtain randomly sorted process tasks;
[0207] The resource groups at the randomly selected points are randomly processed to obtain randomly allocated resource groups;
[0208] The randomly ordered process tasks and the randomly assigned resource groups are used to replace the process tasks and resource groups corresponding to the points to generate a sequence after variation processing.
[0209] It can be understood that in the embodiments of the present disclosure, the same or similar contents in different embodiments can be referenced to each other.
[0210] It can be understood that the “first”, “second”, etc. in the embodiments of the present disclosure are only used for distinction and do not indicate the degree of importance, time sequence, etc.
[0211] In the technical solution of the present disclosure, the collection, storage, use, processing, transmission, provision and disclosure of user personal information involved are in compliance with the provisions of relevant laws and regulations and do not violate public order and good morals.
[0212] According to an embodiment of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium and a computer program product.
[0213] Fig.11 A schematic block diagram of an example electronic device 1100 that can be used to implement embodiments of the present disclosure is shown. Electronic device 1100 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, servers, blade servers, mainframes, and other suitable computers.
[0214] The electronic device 1100 may also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit implementations of the present disclosure described and / or claimed herein.
[0215] like Fig.11 As shown, the electronic device 1100 includes a computing unit 1101 .
[0216] The computing unit 1101 may perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 1102 or a computer program loaded from the storage unit 1108 to a random access memory (RAM) 1103 .
[0217] In the RAM 1103 , various programs and data necessary for the operation of the electronic device 1100 may also be stored.
[0218] The calculation unit 1101 , the ROM 1102 , and the RAM 1103 are connected to one another via a bus 1104 . An input / output (I / O) interface 1105 is also connected to the bus 1104 .
[0219] The electronic device 1100 further includes a storage unit 1108 communicatively connected to the at least one computing unit 1101 .
[0220] The storage unit 1108 stores instructions that can be executed by at least one computing unit 1101. The instructions are executed by at least one computing unit 1101 to enable at least one computing unit 1101 to perform one or more steps of at least one process task scheduling method.
[0221] Multiple components in the electronic device 1100 are connected to the I / O interface 1105, including: an input unit 1106, such as a keyboard, a mouse, etc.; an output unit 1107, such as various types of displays, speakers, etc.; a storage unit 1108, such as a disk, an optical disk, etc.; and a communication unit 1109, such as a network card, a modem, a wireless communication transceiver, etc.
[0222] The communication unit 1109 allows the electronic device 1100 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
[0223] The computing unit 1101 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 1101 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The computing unit 1101 performs the various methods and processes described above, such as a process task scheduling method.
[0224] For example, in some embodiments, the process task scheduling method may be implemented as a computer software program, which is tangibly contained in a readable storage medium, such as the storage unit 1108. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 1100 via the ROM 1102 and / or the communication unit 1109. When the computer program is loaded into the RAM 1103 and executed by the computing unit 1101, one or more steps of the process task scheduling method described above may be performed.
[0225] Alternatively, in other embodiments, the computing unit 1101 may be configured to execute at least one of the aforementioned process task scheduling methods in any other appropriate manner (for example, by means of firmware).
[0226] The computer-readable storage medium provided by the present disclosure may be a non-transitory computer-readable storage medium storing computer instructions.
[0227] The computer instructions are used to enable a computer to execute one or more steps of at least one of the aforementioned process task scheduling methods.
[0228] The computer program product provided by the present disclosure includes a computer program.
[0229] When the computer program is executed by a processor, one or more steps of at least one of the aforementioned process task scheduling methods are implemented.
[0230] Various embodiments of the systems and techniques described above herein may be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard parts (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0231] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.
[0232] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0233] To provide interaction with a user, the systems and techniques described herein may be implemented on a computer having: a display device for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. The display device may be a CRT (CathodeRay Tube) monitor or an LCD (Liquid Crystal Display) monitor. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form (including acoustic input, voice input, or tactile input).
[0234] The systems and techniques described herein may be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), and the Internet.
[0235] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship between the client and the server is generated by computer programs running on the corresponding computers and having a client-server relationship with each other. The server may be a cloud server, also known as a cloud computing server or cloud host, which is a host product in the cloud computing service system to solve the defects of difficult management and weak business scalability in traditional physical hosts and VPS services ("Virtual Private Server", or "VPS" for short). The server may also be a server of a distributed system, or a server combined with a blockchain.
[0236] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps recorded in this disclosure can be executed in parallel, sequentially or in different orders, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this document does not limit this.
[0237] The above specific implementations do not constitute a limitation on the protection scope of the present disclosure. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modification, equivalent substitution and improvement made within the spirit and principle of the present disclosure shall be included in the protection scope of the present disclosure.
Claims
1. A process task scheduling method, characterized in that: include: Acquire multiple candidate sequences, each candidate sequence includes multiple sequence units, and each sequence unit is used to represent a mapping relationship between each process task and a resource group; Performing scheduling processing on each candidate sequence to obtain a scheduling result of each candidate sequence; Based on the scheduling result of each candidate sequence, determine the fitness of each candidate sequence; If a preset termination condition is reached, a target sequence is determined from the plurality of candidate sequences based on the fitness, and a scheduling result of the target sequence is used as a target scheduling result; The scheduling process is performed on each candidate sequence to obtain a scheduling result for each candidate sequence, including: The arrangement order of each sequence unit in each candidate sequence is used as the execution order of the process tasks corresponding to each sequence unit; For a current process task, determine a resource group corresponding to the current process task, and obtain an available time matrix of resources in the resource group; the current process task is any process task in each candidate sequence; Based on the available time matrix, determining the execution time and execution resources of the current process task; The execution order of the process tasks, the execution time and the execution resources of the current process tasks are used as the scheduling result of each candidate sequence.
2. The method according to claim 1, characterized in that Determining the execution time and execution resources of the current process task based on the available time matrix includes: Based on the available time matrix, determine the earliest available time of each resource pool included in the resource group; the earliest available time is later than the end time of the predecessor process task, and the idle time after the earliest available time is greater than or equal to the execution time corresponding to the resource group; If the earliest available time of each resource pool is the same, the earliest available time is used as the execution start time of the current process task, and the time corresponding to the execution start time and the execution duration is used as the execution time; and the resources corresponding to the earliest available time are used as the execution resources.
3. The method according to claim 1, characterized in that The scheduling result of each candidate sequence includes: The end time of the previous process task and the start time of the current process task; The start time of the earliest starting process task and the end time of the latest ending process task; The end time of the current process task and the end time of the order to which the current process task belongs; Execution resources corresponding to the process tasks; The step of determining the fitness of each candidate sequence based on the scheduling result of each candidate sequence comprises: Determining a hard constraint score based on the end time of the predecessor process task and the start time of the current process task; Determine the overall time spent score based on the start time of the earliest start process task and the end time of the latest end process task; Determine an order priority score based on the end time of the current process task and the end time of the order, as well as a preset priority of the order; Determine the resource priority score based on the execution resources corresponding to the process task and the preset resource priority; Acquire multiple process tasks corresponding to the same execution resource based on the execution resources corresponding to the process tasks, and determine the number of changeover scores based on whether the multiple process tasks produce the same product; The fitness of each candidate sequence is determined based on the hard constraint score, the overall time spent score, the order priority score, the resource priority score and the conversion number score.
4. The method according to claim 1, characterized in that Also includes: Randomly generate multiple initial sequences as initial values of multiple candidate sequences; After determining the fitness of each candidate sequence, if a preset termination condition is not met, performing selection processing among the multiple candidate sequences based on the fitness to obtain a sequence after selection processing; Performing cross processing on the selected processed sequence to obtain a cross processed sequence; The crossover processed sequence is subjected to mutation processing to obtain a mutated processed sequence as a new candidate sequence.
5. The method according to claim 4, characterized in that The selecting and processing the plurality of candidate sequences based on the fitness to obtain a sequence after the selecting and processing comprises: Based on the fitness, performing Pareto optimal grouping on the multiple candidate sequences to obtain multiple groups; Calculate the crowding distance for each group to obtain the crowding distance corresponding to each group; A preset number of groups are selected based on the crowding distance, and candidate sequences in the selected groups are used as selected processed sequences.
6. The method according to claim 4, characterized in that The step of performing cross processing on the selected processed sequence to obtain a cross processed sequence includes: For any two first sequences and second sequences in the selected processed sequences whose similarities are lower than a preset value: based on a preset crossover operator, a first part of the first sequence and a second part of the second sequence are obtained, and the first part and the second part are complementary, and the first part and the second part are sequentially spliced to obtain a crossover processed sequence.
7. The method according to claim 4, characterized in that The performing mutation processing on the crossover processed sequence to obtain a mutation processed sequence includes: Randomly select a sequence from the crossover processed sequences; In a randomly selected sequence, a preset number of points are randomly selected, and the process tasks at the randomly selected points are randomly sorted to obtain randomly sorted process tasks; The resource groups at the randomly selected points are randomly processed to obtain randomly allocated resource groups; The randomly ordered process tasks and the randomly assigned resource groups are used to replace the process tasks and resource groups corresponding to the points to generate a sequence after variation processing.
8. A process task scheduling device, characterized in that: include: A first acquisition module is used to acquire multiple candidate sequences, each candidate sequence includes multiple sequence units, and each sequence unit is used to represent a mapping relationship between each process task and a resource group; A second acquisition module is used to perform scheduling processing on each candidate sequence to obtain a scheduling result for each candidate sequence; A third acquisition module is used to determine the fitness of each candidate sequence based on the scheduling result of each candidate sequence; A determination module, configured to determine a target sequence from the plurality of candidate sequences based on the fitness if a preset termination condition is reached, and use the scheduling result of the target sequence as a target scheduling result; The third acquisition module is further used for: The arrangement order of each sequence unit in each candidate sequence is used as the execution order of the process tasks corresponding to each sequence unit; For a current process task, determine a resource group corresponding to the current process task, and obtain an available time matrix of resources in the resource group; the current process task is any process task in each candidate sequence; Based on the available time matrix, determining the execution time and execution resources of the current process task; The execution order of the process tasks, the execution time and the execution resources of the current process tasks are used as the scheduling result of each candidate sequence.
9. The device according to claim 8, characterized in that The third acquisition module is further used for: Based on the available time matrix, determine the earliest available time of each resource pool included in the resource group; the earliest available time is later than the end time of the predecessor process task, and the idle time after the earliest available time is greater than or equal to the execution time corresponding to the resource group; If the earliest available time of each resource pool is the same, the earliest available time is used as the execution start time of the current process task, and the time corresponding to the execution start time and the execution duration is used as the execution time; and the resources corresponding to the earliest available time are used as the execution resources.
10. The device according to claim 8, characterized in that The scheduling result of each candidate sequence includes: The end time of the previous process task and the start time of the current process task; The start time of the earliest starting process task and the end time of the latest ending process task; The end time of the current process task and the end time of the order to which the current process task belongs; Execution resources corresponding to the process tasks; The third acquisition module is further used for: Determining a hard constraint score based on the end time of the predecessor process task and the start time of the current process task; Determine the overall time spent score based on the start time of the earliest start process task and the end time of the latest end process task; Determine an order priority score based on the end time of the current process task and the end time of the order, as well as a preset priority of the order; Determine the resource priority score based on the execution resources corresponding to the process task and the preset resource priority; Acquire multiple process tasks corresponding to the same execution resource based on the execution resources corresponding to the process tasks, and determine the number of changeover scores based on whether the multiple process tasks produce the same product; The fitness of each candidate sequence is determined based on the hard constraint score, the overall time spent score, the order priority score, the resource priority score and the conversion number score.
11. The device according to claim 8, characterized in that Also includes: A generating module, used for randomly generating a plurality of initial sequences as initial values of a plurality of candidate sequences; A selection module is used for, after determining the fitness of each candidate sequence, if a preset termination condition is not met, performing selection processing among the multiple candidate sequences based on the fitness to obtain a sequence after selection processing; A crossover module, used for performing crossover processing on the selected processed sequence to obtain a crossover processed sequence; The mutation module is used to perform mutation processing on the crossover processed sequence to obtain a mutated sequence as a new candidate sequence.
12. The device according to claim 11, characterized in that The selection module is further used for: Based on the fitness, performing Pareto optimal grouping on the multiple candidate sequences to obtain multiple groups; Calculate the crowding distance for each group to obtain the crowding distance corresponding to each group; A preset number of groups are selected based on the crowding distance, and candidate sequences in the selected groups are used as selected processed sequences.
13. The device according to claim 11, characterized in that The crossover module is further used for: For any two first sequences and second sequences in the selected processed sequences whose similarities are lower than a preset value: based on a preset crossover operator, a first part of the first sequence and a second part of the second sequence are obtained, and the first part and the second part are complementary, and the first part and the second part are sequentially spliced to obtain a crossover processed sequence.
14. The device according to claim 11, characterized in that The mutation module is further used to: Randomly select a sequence from the crossover processed sequences; In a randomly selected sequence, a preset number of points are randomly selected, and the process tasks at the randomly selected points are randomly sorted to obtain randomly sorted process tasks; The resource groups at the randomly selected points are randomly processed to obtain randomly allocated resource groups; The randomly ordered process tasks and the randomly assigned resource groups are used to replace the process tasks and resource groups corresponding to the points to generate a sequence after variation processing.
15. An electronic device, comprising: at least one computing unit; as well as A storage unit communicatively connected to the at least one computing unit; wherein, The storage unit stores instructions that can be executed by the at least one computing unit, and the instructions are executed by the at least one computing unit to enable the at least one computing unit to perform the method according to any one of claims 1 to 7.
16. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to make a computer execute the method according to any one of claims 1-7.
17. A computer program product, comprising a computer program, which, when executed by a processor, implements the method according to any one of claims 1 to 7.