A resource-constrained project scheduling method, system, device and medium

By optimizing process sequencing and worker scheduling through genetic simulated annealing algorithm, the resource constraints of manual experience in aircraft assembly production were solved, achieving a balance of worker time and improved production efficiency.

CN119476857BActive Publication Date: 2025-11-11HUAZHONG UNIV OF SCI & TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411645890.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-18
Publication Date
2025-11-11
Estimated Expiration
2044-11-18

AI Technical Summary

Technical Problem

Existing resource-constrained project scheduling methods rely on manual experience in aircraft assembly production, resulting in a large gap between production plans and actual progress, making timely adjustments impossible and affecting production efficiency and worker time balance.

Method used

The genetic simulated annealing algorithm is adopted to determine the number of workers and attendance constraints through process sorting encoding and decoding, optimize the process execution order, obtain the individual with the highest fitness value, minimize the maximum completion time of workers, and schedule shifts by combining the time coefficient and the most recent processing time coefficient.

Benefits of technology

It improved the utilization rate of human resources, balanced the distribution of workers' working hours, reduced the time for adjusting production plans, and improved the balance between production efficiency and workers' time, thus meeting the actual needs of production.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119476857B_ABST
    Figure CN119476857B_ABST
Patent Text Reader

Abstract

This invention discloses a resource-constrained project scheduling method, system, equipment, and medium, belonging to the field of intelligent workshop scheduling technology. The method is based on generated process sequence codes. By creating a decoding sequence set and waiting process groups, the decoding sequence set is updated to determine the decoding sequence set corresponding to the updated process sequence codes. The start time, end time, and total time for completing all processes for each process are determined. Minimizing the maximum completion time for workers is used as the optimization objective. A genetic simulated annealing algorithm is used to obtain the individual with the highest fitness value. Based on the start time, end time, and total time for completing all processes for the individual with the highest fitness value, the total processing time coefficient and the most recent processing time coefficient for each worker are determined, and shifts are scheduled for each worker. This method can improve the utilization rate of human resource scheduling.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of intelligent workshop scheduling technology, and more specifically to a resource-constrained project scheduling method, system, equipment, and medium. Background Technology

[0002] With the successful commercial test flights of the C919, demand and orders have poured in, and its production line has gradually shifted from single-aircraft production during the research and development phase to small- and medium-batch production. Aircraft assembly involves numerous workstations, long assembly cycles, and a complex and intricate process, involving multiple levels of planning, from annual summaries to daily work plans. Therefore, it requires step-by-step analysis, resulting in a long timeframe. In this multi-layered configuration process, relevant personnel need to monitor the entire engineering process comprehensively, at multiple granularities (including aircraft sorties, processes, and workstations), and from multiple perspectives.

[0003] To meet the demands of increased production capacity and improve the efficiency of each workstation, the company has developed a series of production plans to enhance cycle time. Production factors are one of the main constraints on aircraft assembly production efficiency, primarily including personnel, materials, tooling, etc., with personnel allocation being a key focus. Reasonable personnel allocation can not only save production costs but also improve production efficiency. Each workstation has strict requirements for its production cycle time; otherwise, it may affect the production schedule of the specific aircraft, or even delay the entire year's production plan, making it difficult to deliver the aircraft on time.

[0004] Currently, in aircraft mobile assembly work, human resources are deployed in shifts, and their availability is affected by these shifts during production. Therefore, there is a significant discrepancy between the pre-established scheduling plan and the actual production progress. Furthermore, unforeseen circumstances frequently occur during production execution, leading to rework or processing halts. Therefore, after each cycle time adjustment or occurrence of an anomaly, each workstation needs to revise its personnel requirements and shift schedule.

[0005] In summary, existing methods for resolving resource-constrained project scheduling rely heavily on manual production planning based on experience-based formulas. This process is time-consuming and ineffective. Furthermore, when abnormal situations occur during production execution, timely adjustments to the production plan cannot be made, impacting the balance of workers' production time. Summary of the Invention

[0006] To address the problems existing in the above-mentioned fields, this invention proposes a resource-constrained project scheduling method, system, equipment, and medium. Taking the minimization of the maximum completion time of workers as the optimization objective, it determines the constraints on the number of workers and their attendance when workers perform processes, as well as the constraints on the sequential execution of processes. Through the genetic simulated annealing algorithm, it obtains the individual with the highest fitness value and schedules each worker, which can ensure a relatively balanced utilization rate of human resources scheduling.

[0007] To address the aforementioned technical problems, this invention discloses a resource-constrained project scheduling method, comprising the following steps:

[0008] A population is randomly generated, and each individual in the population is a process sorting code based on the process sequence. Based on the generated process sorting code, a decoding sequence set and a waiting process group are created, and the gene code values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene code value is placed at the end of the created decoding sequence set, and the decoding sequence set is updated to determine the decoding sequence set corresponding to the updated process sorting code.

[0009] Based on the updated process sorting code and the corresponding decoding sequence set, find the earliest time after all the preceding processes are completed for the currently decoded process. This time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process. This time is used as the start time of the process. The start time of each process is determined in this way. Based on the start time and processing time of each process, the end time and the total time to complete all processes are determined.

[0010] With minimizing the maximum completion time of workers as the optimization objective, the constraints on the number of workers and their attendance, as well as the constraints on the sequential execution of processes, are determined. The individual with the highest fitness value is obtained through the genetic simulated annealing algorithm.

[0011] Based on the start time, end time, and total time for completing all processes for the individual with the highest fitness value, determine the total processing time coefficient and the most recent processing time coefficient for each worker, and schedule shifts for each worker.

[0012] Preferably, each individual in the population is a process sequence encoding based on the process order, specifically including:

[0013] During the population initialization phase, the gene sequences in each chromosome are encoded using a random decimal format based on 0-1 encoding. The sequence of each gene is a decimal with values ​​between 0 and 1. The generated sequence of genes with sequential encoding is as follows:

[0014] O = {p, a} p )|i=1, 2,...,N, a∈[0~1)}

[0015] Where p is the process number, N is the total number of processes, and a p represents the gene coding value corresponding to the process, and O indicates the chromosome sequenced in the process.

[0016] Preferably, determining the decoding order set corresponding to the updated process sorting code includes the following steps:

[0017] Iterate through all processes that are not currently included in the decoding order set, find all processes that have no preceding process and add them to the waiting process group, and record the number of times each process enters the waiting process group.

[0018] Compare the gene coding values ​​in the gene sequences corresponding to all processes in the current waiting process group. If the sum of the gene coding value corresponding to the process to be processed in the current waiting process group and the gene coding value corresponding to the process that has been in the waiting process for more than 3 consecutive times is greater than 1, place the process that has been in the waiting process for 3 consecutive times at the end of the created decoding order set for processing, and update the decoding order set.

[0019] When the gene encoding value of the decoding sequence set is equal to the total number of processes, all processes are placed into the waiting process group, and the updated decoding sequence is output; otherwise, all unprocessed processes are traversed again to find all processes without a preceding process.

[0020] Preferably, the step of determining the start time of each process in this manner specifically includes:

[0021] Based on the updated process sorting code and the corresponding decoding order set, the process is decoded accordingly to determine the completion time of all preceding processes of the process.

[0022] Take the maximum value of the completion time as the proposed start time of the process. Starting from the proposed start time, determine whether the number of available personnel in the team at the current moment meets the number of personnel required for the current process.

[0023] If the required number of workers for the current process is met, the current planned start time is taken as the start time for that process; if not, the planned start time for that process is incremented by 1, and the process is re-evaluated.

[0024] Preferably, determining the end processing time and the total time for completing all processes specifically includes:

[0025] Iterate through all processes in sequence, and take the end time of each process as the sum of the start time and the processing time of the process.

[0026] After traversing all processes, determine the end time of each process and take the maximum value as the total time to complete all processes.

[0027] Preferably, obtaining the individual with the highest fitness value includes the following steps:

[0028] The preset conditions include:

[0029] All production factors except personnel are complete, and there will be no shortage of materials and tooling.

[0030] When the processing logic relationship between processes is a serial logic relationship, it is fixed and cannot be modified;

[0031] Workers are classified by job type. There is only one specific job type in a work group, and workers of a certain job type can only perform the work corresponding to that job type.

[0032] The employment of workers has an attendance requirement. The attendance rate of workers must be higher than the set value, and the working hours of all workers must be consistent, that is, the attendance rate variance must be lower than the set value.

[0033] The hired workers are all skilled workers, and different combinations of workers in the same job can complete any process in the same amount of time.

[0034] If a process is not completed on a given day, it will be suspended and resumed the following day.

[0035] The optimization objective expression is:

[0036] Makespan = minimize(max(E) j j = 1, 2, ..., n

[0037] Among them, E j This refers to the processing time for a process, where n is the number of processes.

[0038] The constraints include:

[0039] At any given time, the total number of workers involved in all processes being processed cannot exceed the limit for the number of workers in that specific process.

[0040]

[0041] Among them, P i The number of people in class group i is limited by σ. jt It is a 0-1 variable; when process j is processing at time t, σ jt =1, otherwise 0; A ij For process j, the number of workers required by team i to complete the task is S. min E is the earliest time when the process begins. max This is the time when all processes have been completed;

[0042] Each step must wait for the preceding step to be completed before it can proceed:

[0043] E j ≥S j′ -τ jj′ *Ωj, j′=1,...,n

[0044] Among them, S j E represents the start time of process j. j τ is the end processing time of process j; jj’ Let τ be a 0-1 variable. When the processing time of process j is earlier than that of j', then... jj’ =1, otherwise 0; Ω is an infinite number;

[0045] At any given time, any worker can participate in at most one processing step:

[0046]

[0047] Where q represents any worker, and the total number of workers is Q; Let be a 0-1 variable. When worker q participates in process j, then... Otherwise, it is 0;

[0048] The overall attendance rate of workers should be higher than the set value:

[0049]

[0050] r q ≥K q=0,...,Q

[0051] Where, r q For each worker, the attendance rate is given by K, where K is the minimum attendance requirement, and T is the minimum attendance rate requirement. j Let be the assembly time for process j.

[0052] Preferably, scheduling each worker includes the following steps:

[0053] For each worker currently processing, the time factor T is used to sort them from largest to smallest. The time factor is calculated as follows:

[0054] T q =N qo *N qt *(T qa +T qs )

[0055] Among them, T q N is the working time factor. q0 The worker's ability to perform this operation, N when the worker performs this operation. q0 =1, otherwise N q0 =0;

[0056] Nqt This refers to the worker's occupation during the time from time t until the completion of the process. When this time is occupied, N represents the number of times the worker occupies the time. qt =0, otherwise N qt =1;

[0057] T qa T is the total processing time coefficient for this worker. qs This is the processing time coefficient for the worker's most recent working day;

[0058] T qa and T qs The calculations are as follows:

[0059]

[0060] Where, θ a and θ s These are the total processing coefficient and the most recent processing coefficient, respectively.

[0061] Preferably, it further includes a resource-constrained project scheduling system, comprising:

[0062] The process sorting encoding and decoding module is used to randomly generate a population, where each individual in the population is a process sorting encoding based on the process order; based on the generated process sorting encoding, a decoding order set and a waiting process group are created, and the gene encoding values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene encoding value is placed at the end of the created decoding order set, and the decoding order set is updated to determine the decoding order set corresponding to the updated process sorting encoding.

[0063] The process time determination module is used to find the earliest time after all the preceding processes are completed for the currently decoded process, based on the decoded order set corresponding to the updated process sorting code. This earliest time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process, and is used as the start time for that process. The start time for each process is determined in this way. Based on the start time and processing duration of each process, the end time and the total time to complete all processes are determined.

[0064] The process sequencing optimization module is used to determine the constraints on the number of workers and their attendance when workers execute processes, as well as the constraints on the sequential execution of processes, with the goal of minimizing the maximum completion time of workers. It uses a genetic simulated annealing algorithm to obtain the individual with the highest fitness value.

[0065] The optimization scheduling module is used to determine the total processing time coefficient and the most recent processing time coefficient for each worker based on the start time, end time and total time of completing all processes for the individual with the highest fitness value, and to schedule shifts for each worker.

[0066] Preferably, the device further includes a computer apparatus, the computer apparatus comprising a memory and a processor, the memory storing a computer program, which, when executed by the processor, causes the processor to perform the following steps:

[0067] A population is randomly generated, and each individual in the population is a process sorting code based on the process sequence. Based on the generated process sorting code, a decoding sequence set and a waiting process group are created, and the gene code values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene code value is placed at the end of the created decoding sequence set, and the decoding sequence set is updated to determine the decoding sequence set corresponding to the updated process sorting code.

[0068] Based on the updated process sorting code and the corresponding decoding sequence set, find the earliest time after all the preceding processes are completed for the currently decoded process. This time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process. This time is used as the start time of the process. The start time of each process is determined in this way. Based on the start time and processing time of each process, the end time and the total time to complete all processes are determined.

[0069] With minimizing the maximum completion time of workers as the optimization objective, the constraints on the number of workers and their attendance, as well as the constraints on the sequential execution of processes, are determined. The individual with the highest fitness value is obtained through the genetic simulated annealing algorithm.

[0070] Based on the start time, end time, and total time for completing all processes for the individual with the highest fitness value, determine the total processing time coefficient and the most recent processing time coefficient for each worker, and schedule shifts for each worker.

[0071] Preferably, the system further includes a computer-readable storage medium storing a computer program that, when executed by a processor, causes the processor to perform the following steps:

[0072] A population is randomly generated, and each individual in the population is a process sorting code based on the process sequence. Based on the generated process sorting code, a decoding sequence set and a waiting process group are created, and the gene code values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene code value is placed at the end of the created decoding sequence set, and the decoding sequence set is updated to determine the decoding sequence set corresponding to the updated process sorting code.

[0073] Based on the updated process sorting code and the corresponding decoding sequence set, find the earliest time after all the preceding processes are completed for the currently decoded process. This time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process. This time is used as the start time of the process. The start time of each process is determined in this way. Based on the start time and processing time of each process, the end time and the total time to complete all processes are determined.

[0074] With minimizing the maximum completion time of workers as the optimization objective, the constraints on the number of workers and their attendance, as well as the constraints on the sequential execution of processes, are determined. The individual with the highest fitness value is obtained through the genetic simulated annealing algorithm.

[0075] Based on the start time, end time, and total time for completing all processes for the individual with the highest fitness value, determine the total processing time coefficient and the most recent processing time coefficient for each worker, and schedule shifts for each worker.

[0076] Compared with the prior art, the present invention has the following beneficial effects:

[0077] This invention proposes a resource-constrained project scheduling method. Based on a decoding sequence set generated from process sequencing encoding, this method avoids infeasible solutions while ensuring decoding efficiency. By determining the start and end times of each process, and the total time to complete all processes, as an active decoding process, it explores better solutions even with a fixed decoding order. Considering the process sequencing constraints, human resource allocation constraints, human resource utilization constraints, and completion time constraints of the scheduling problem, and using minimizing the maximum completion time of workers as the optimization objective, the method determines the constraints on the number of workers and their attendance, as well as the constraints on sequential process execution. A genetic simulated annealing algorithm is used to obtain the individual with the highest fitness value; the shorter the total time, the higher the corresponding fitness value. The algorithm's iteration ensures the generation of high-quality solutions. The designed human resource utilization balancing decoding method, based on the completion time information of each process corresponding to the individual with the highest fitness value, calculates the working time coefficient of each worker currently processing, using both the total time coefficient and the recent processing coefficient to allocate workers to processes. This ensures a relatively balanced utilization rate of human resources, better considers the actual utilization of each worker, and is more in line with production realities and human factors engineering. In summary, this method combines the traditional resource-constrained project scheduling problem with human resource balancing, and has practical guiding significance for production activities. Attached Figure Description

[0078] Figure 1 This is a flowchart of the resource-constrained project scheduling method proposed in this invention;

[0079] Figure 2A flowchart of a genetic algorithm method provided in an embodiment of the present invention;

[0080] Figure 3 This is a flowchart of a method for embedding a simulated annealing algorithm into a genetic algorithm, provided in an embodiment of the present invention.

[0081] Figure 4 This invention provides an excellent example of a production scheduling Gantt chart for embodiments of the invention.

[0082] Figure 5 This is a schematic diagram of the crossover process of the genetic algorithm provided in an embodiment of the present invention;

[0083] Figure 6 This is a schematic diagram of the mutation process of the genetic algorithm provided in an embodiment of the present invention;

[0084] Figure 7 This is a schematic diagram illustrating the acquisition and decoding order provided in an embodiment of the present invention;

[0085] Figure 8 A schematic diagram of heuristic decoding rules provided for embodiments of the present invention. Detailed Implementation

[0086] The following will refer to the appendices in the embodiments of the present invention. Figures 1-8 The technical solutions in the embodiments of the present invention will be clearly and completely described. It should be understood that the terminology used in the present invention is only for describing particular implementation methods and is not intended to limit the present invention.

[0087] like Figure 1 As shown, this invention proposes a resource-constrained project scheduling method, comprising the following steps:

[0088] A population is randomly generated, and each individual in the population is a process sorting code based on the process sequence. Based on the generated process sorting code, a decoding sequence set and a waiting process group are created, and the gene code values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene code value is placed at the end of the created decoding sequence set, and the decoding sequence set is updated to determine the decoding sequence set corresponding to the updated process sorting code.

[0089] Based on the updated process sorting code and the corresponding decoding sequence set, find the earliest time after all the preceding processes are completed for the currently decoded process. This time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process. This time is used as the start time of the process. The start time of each process is determined in this way. Based on the start time and processing time of each process, the end time and the total time to complete all processes are determined.

[0090] With minimizing the maximum completion time of workers as the optimization objective, the constraints on the number of workers and their attendance, as well as the constraints on the sequential execution of processes, are determined. The individual with the highest fitness value is obtained through the genetic simulated annealing algorithm.

[0091] Based on the start time, end time, and total time for completing all processes for the individual with the highest fitness value, determine the total processing time coefficient and the most recent processing time coefficient for each worker, and schedule shifts for each worker.

[0092] The optimization scheduling process of the genetic simulated annealing algorithm includes two stages: a global search and a local search. The global search uses a genetic algorithm, while the local search uses a simulated annealing algorithm. Figure 2 As shown.

[0093] S1: The initialization population stage generates a certain number of random initial populations. Each individual in the population contains a code, namely the process order code, and the population is generated in this way.

[0094] S2: Calculate the fitness value of each individual in the population and perform selection operations on the population based on the fitness value, including two methods: elite selection and tournament selection.

[0095] S3: Perform crossover operation on the population. During the crossover process, any two or more pairs of chromosomes that were not selected in the current parent population are crossed over with a certain probability and according to certain rules to form the offspring population.

[0096] S4: For each chromosome in the population, determine whether the mutation conditions have been met. If they have been met, perform mutation operations on that chromosome according to certain rules.

[0097] S5: Determine whether the conditions for running the simulated annealing algorithm SA are met. If they are met, jump to S6; otherwise, jump to S7.

[0098] S6: After a certain number of generations, perform simulated annealing local search operation on each individual to generate a population.

[0099] S7: Determine if the algorithm has reached the termination condition. If yes, output the currently known optimal solution; otherwise, jump to S2.

[0100] Specifically, obtaining the individual with the highest fitness value includes the following steps:

[0101] The preset conditions include:

[0102] All production factors except personnel are complete, and there will be no shortage of materials and tooling.

[0103] When the processing logic relationship between processes is a serial logic relationship, it is fixed and cannot be modified;

[0104] Workers are classified by job type. There is only one specific job type in a work group, and workers of a certain job type can only perform the work corresponding to that job type.

[0105] The employment of workers has an attendance requirement. The attendance rate of workers must be higher than the set value, and the working hours of all workers must be consistent, that is, the attendance rate variance must be lower than the set value.

[0106] The hired workers are all skilled workers, and different combinations of workers in the same job can complete any process in the same amount of time.

[0107] If a process is not completed on a given day, it will be suspended and resumed the following day.

[0108] The optimization objective expression is:

[0109] Makespan = minimize(max(E) j j = 1, 2, ..., n

[0110] Among them, E j This refers to the processing time for a process, where n is the number of processes.

[0111] The constraints include:

[0112] At any given time, the total number of workers involved in all processes being processed cannot exceed the limit for the number of workers in that specific process.

[0113]

[0114] Among them, P i The number of people in class group i is limited by σ. jt It is a 0-1 variable; when process j is processing at time t, σ jt =1, otherwise 0; A ij For process j, the number of workers required by team i to complete the task is S. min E is the earliest time when the process begins. max This is the time when all processes have been completed;

[0115] Each step must wait for the preceding step to be completed before it can proceed:

[0116] E j ≥S j′ -τ jj’ *Ωj, j′=1,...,n

[0117] Among them, S j E represents the start time of process j. jτ is the end processing time of process j; jj’ Let τ be a 0-1 variable. When the processing time of process j is earlier than that of j', then... jj’ =1, otherwise 0; Ω is an infinite number;

[0118] At any given time, any worker can participate in at most one processing step:

[0119]

[0120] Where q represents any worker, and the total number of workers is Q; Let be a 0-1 variable. When worker q participates in process j, then... Otherwise, it is 0;

[0121] The overall attendance rate of workers should be higher than the set value:

[0122]

[0123] r q ≥K q=(0,...,Q

[0124] Where, r q For each worker, the attendance rate is given by K, where K is the minimum attendance requirement, and T is the minimum attendance rate requirement. j Let be the assembly time for process j.

[0125] A population is randomly generated, and each individual in the population is encoded as a process sequence code based on the process order, specifically including:

[0126] During the population initialization phase, the gene sequences in each chromosome are encoded using a random decimal format based on 0-1 encoding. The sequence of each gene is a decimal with values ​​between 0 and 1. The generated sequence of genes with sequential encoding is as follows:

[0127] O = {p, a} p )|i=1,2,...,N,a∈[0~1)}

[0128] Where p is the process number, N is the total number of processes, and a p represents the gene coding value corresponding to the process, and O indicates the chromosome sequenced in the process.

[0129] Determine the set of decoding orders corresponding to the updated process sorting code, including the following steps:

[0130] Iterate through all processes that are not currently included in the decoding order set, find all processes that have no preceding process, and place them into the waiting process waiting process group. At the same time, record the number of times each process enters the waiting process group.

[0131] Compare the gene coding values ​​in the gene sequences corresponding to all processes in the current waiting process group. If the sum of the gene coding value corresponding to the process to be processed in the current waiting process group and the gene coding value corresponding to the process that has been in the waiting process for more than 3 consecutive times is greater than 1, place the process that has been in the waiting process for 3 consecutive times at the end of the created decoding order set for processing, and update the decoding order set.

[0132] When the gene encoding value of the decoding sequence set is equal to the total number of processes, all processes are placed into the waiting process group, and the updated decoding sequence is output; otherwise, all unprocessed processes are traversed again to find all processes without a preceding process.

[0133] The start time for each process is determined in this manner, specifically including:

[0134] Based on the updated process sorting code and the corresponding decoding order set, the process is decoded accordingly to determine the completion time of all preceding processes of the process.

[0135] Take the maximum value of the completion time as the proposed start time of the process. Starting from the proposed start time, determine whether the number of available personnel in the team at the current moment meets the number of personnel required for the current process.

[0136] If the required number of workers for the current process is met, the current planned start time is taken as the start time for that process; if not, the planned start time for that process is incremented by 1, and the process is re-evaluated.

[0137] Determine the end time of processing and the total time to complete all processes, specifically including:

[0138] Iterate through all processes in sequence, and take the end time of each process as the sum of the start time and the processing time of the process.

[0139] After traversing all processes, determine the end time of each process and take the maximum value as the total time to complete all processes.

[0140] like Figure 7 The image shows an example of obtaining the decoding order of a chromosome gene in a given computational example. OS is the process order code for this computational example. Figure 7 There are two processes to be processed, 4 and 9. The gene value of process 4 is 0.49 and the gene value of process 9 is 0.07. By comparing the size of their corresponding gene values, the decoding order of the process with the larger gene value is arranged first. Taking this figure as an example, the gene value of 4 is larger, so the decoding order of 4 is before that of 9.

[0141] like Figure 8As shown, this illustrates the application of heuristic decoding rules. If process 9 is in the pending process for more than 3 consecutive times, its gene value will be added to that of process 8, which is now being added to the processing process sequence. Since the sum of the gene values ​​of process 9 and process 8 is greater than 1, process 9 is placed after process 8 and enters the decoding sequence set.

[0142] When the gene encoding value of the decoding sequence set is equal to the total number of processes, output the updated decoding sequence; otherwise, iterate through all the current unprocessed processes again to find all processes without a preceding process.

[0143] The genetic simulated annealing algorithm is used to obtain the individual with the highest fitness value, specifically including:

[0144] Based on the decoding order of the output, find the moment after the preceding process in the logical relationship where the remaining number of available workers in the shift meets the number of workers required for the current process. The resulting Gantt chart is as follows: Figure 4 As shown.

[0145] By analyzing the Gantt chart, we can determine the start time, end time, processing time of each process, processing time of each worker, the types of workers used in each process, the number of workers required to complete the process, and the total time to complete all processes, so as to determine the fitness value corresponding to the genetic simulated annealing algorithm.

[0146] Determine the total processing time coefficient and the most recent processing time coefficient for each worker, including the following steps:

[0147] For each worker currently processing, the time factor T is used to sort them from largest to smallest. The time factor is calculated as follows:

[0148] T q =N qo *N qt *(T qa +T qs )

[0149] Among them, T q N is the working time factor. q0 The worker's ability to perform this operation, N when the worker performs this operation. q0 =1, otherwise N q0 =0.

[0150] N qt This refers to the worker's occupation during the time from time t until the completion of the process. When this time is occupied, N represents the number of times the worker occupies the time. qt =0, otherwise N qt =1.

[0151] T qa T is the total processing time coefficient for this worker. qsis the processing duration coefficient of the worker in the most recent l working days.

[0152] T qa and T qs The calculations are as follows:

[0153]

[0154] where θ a and θ s are the total processing coefficient and the most recent processing coefficient respectively.

[0155] Perform the simulated annealing local search operation for each individual respectively, including the following steps:

[0156] Determine the starting temperature t, the termination temperature t', the cooling rate v, the number of iterations mar-len at each temperature, and the acceptance probability p;

[0157] For each individual, perform the following operations:

[0158] Starting from the starting temperature, perform mar-len iterations at each temperature T. Each iteration has a certain probability of randomly mutating the three encodings of the individual. The specific rules of the random mutation are the same as those of the random decimal encoding of 0-1 encoding;

[0159] Compare the fitness values of the individual after each mutation with those before the mutation, and use the Metropolis criterion to decide whether to accept the new solution. Cool down T at the cooling rate t until T < t', and output the local optimal solution of the simulated annealing algorithm.

[0160] The present invention also proposes a resource-constrained project scheduling system, including:

[0161] The operation sequence encoding and decoding module is used to randomly generate a population. Each individual in the population is an operation sequence encoding based on the operation order; based on the generated operation sequence encoding, by creating a decoding order set and a waiting operation group, and comparing the gene encoding values corresponding to all operations in the current waiting operation group, select the operation with the largest gene encoding value and place it at the end of the created decoding order set, update the decoding order set, and determine the decoding order set corresponding to the updated operation sequence encoding;

[0162] The operation time determination module is used to find the earliest time after all the previous operations of the current decoded operation are completed according to the decoding order set corresponding to the updated operation sequence encoding. This time satisfies that the remaining available number of people meets the personnel requirements of the current operation, and use this as the start processing time of the operation. By analogy, determine the start processing time of each operation; according to the start processing time and processing duration of each operation, determine the end processing time and the total time to complete all operations;

[0163] The process sequencing optimization module is used to determine the constraints on the number of workers and their attendance when workers execute processes, as well as the constraints on the sequential execution of processes, with the goal of minimizing the maximum completion time of workers. It uses a genetic simulated annealing algorithm to obtain the individual with the highest fitness value.

[0164] The optimization scheduling module is used to determine the total processing time coefficient and the most recent processing time coefficient for each worker based on the start time, end time and total time of completing all processes for the individual with the highest fitness value, and to schedule shifts for each worker.

[0165] The resource-constrained project scheduling method proposed in this invention incorporates constraints such as process number limits, process sequence constraints, worker processing constraints, and attendance rate constraints, which can improve the utilization rate of human resources.

[0166] Example

[0167] To verify the feasibility of the method proposed in this invention, an embodiment of this invention takes a multi-factory flexible job shop scheduling method considering order allocation based on genetic algorithms and tabu search algorithms as an example. Figure 3 As shown, the specific implementation steps of this scheduling method are as follows:

[0168] Parameter initialization:

[0169] Before using the genetic simulated annealing algorithm to solve a resource-constrained project scheduling problem that considers human resource allocation, parameter initialization is required, specifically including the following parameters:

[0170] (1) Job information: number of jobs and number of workers for each job.

[0171] (2) Process information: the types of work required for the process, the processing time required for the process, and the logical relationship between the processes.

[0172] (3) Parameters of the genetic algorithm: population size popsize, order allocation crossover probability pc f Machine selection crossover probability pc m Process order crossover probability pc o Order allocation probability pm f Machine selection probability pm m Process order variation probability pm o .

[0173] (4) Parameters of the simulated annealing algorithm SA: starting temperature t, ending temperature t', cooling rate v, number of iterations per temperature mar-len, acceptance probability p, order allocation probability pmsa f Machine selection probability pmsa mProcess order variation probability pmsa o .

[0174] (5) Condition parameters: parameter k required to run the simulated annealing algorithm, and termination condition parameter n.

[0175] In this invention, as an illustrative example, both k and n are 60, and popsize is 80.

[0176] Encoding process:

[0177] The encoding method in this embodiment adopts a random decimal encoding form based on 0-1 encoding, that is, the sequence of each gene is a decimal with a value of 0-1.

[0178] Based on the above settings, the specific steps of this embodiment are designed as follows, wherein the flowchart of the genetic simulated annealing algorithm is as follows: Figure 3 As shown:

[0179] S1: The initialization population stage generates a certain number of random initial populations. Each individual in the population contains a code, namely the process order code, and the population is generated in this way.

[0180] S2: Calculate the fitness value of each individual in the population and perform selection operations on the population based on the fitness value, including two methods: elite selection and tournament selection.

[0181] The first phase of elite selection means that in each iteration, the top n% of individuals whose decoded values ​​are closest to the optimization target are selected from the population and placed into the new population.

[0182] The second stage of tournament selection involves randomly selecting two individuals from the population in each iteration, choosing the individual whose decoded value is closer to the optimization target, and placing it into a new population, until the number of individuals in the new population equals the number of individuals in the generated population.

[0183] S3: Perform a crossover operation on the population. During the crossover process, any two or more pairs of chromosomes that were not selected in the parent population are crossed over with a certain probability and according to certain rules to form the offspring population. A diagram illustrating the crossover operation is shown below. Figure 5 As shown.

[0184] Crossing over is the process by which parent chromosomes generate an equal number of offspring chromosomes. It is divided into two types: multi-point crossing over and discrete recombination.

[0185] Multipoint crossover refers to the process where, during crossover, the chromosomes of two parents are cut into a certain number of segments according to the same gene location. One offspring inherits the gene values ​​of the parent chromosome with an equal probability for each segment, while the other offspring inherits the gene values ​​of the other parent.

[0186] Discrete recombination refers to the phenomenon where, during crossover, each gene on each chromosome of the offspring has an equal probability of inheriting gene values ​​from both parents, and the other offspring inherits the same gene values.

[0187] S4: For each chromosome in the population, determine whether the mutation condition has been met. If it has, perform a mutation operation on that chromosome according to certain rules. The mutation operation diagram is shown below. Figure 6 As shown.

[0188] Mutations are classified into two types: single-point mutations and multi-point mutations, among which:

[0189] Single-point mutation refers to the process of arbitrarily selecting one or more genes in the parent chromosome and re-initializing them to form the offspring chromosome.

[0190] Multipoint mutation refers to the process of selecting two or more genes with different locations in the parent chromosome, rearranging their gene values ​​in a random order, and then filling them into the original gene to form the offspring chromosome.

[0191] S5: Determine if the conditions for running the simulated annealing algorithm are met. If met, jump to S6; otherwise, jump to S7.

[0192] S6: For individuals that have undergone factory selection coding mutation, perform simulated annealing algorithm to conduct local search operation and generate a new population.

[0193] To determine whether the conditions for running the simulated annealing algorithm are met, the best solution in each generation of the population is recorded. If the value of the best solution has not changed in k generations, then the simulated annealing algorithm is executed.

[0194] Specifically, the simulated annealing algorithm includes determining the starting temperature t, the ending temperature t', the cooling rate v, the number of iterations at each temperature mar-len, and the acceptance probability p. For each individual, the following operations are required:

[0195] Starting from the initial temperature, perform mar-len iterations at each temperature T. Each iteration has a certain probability of encoding a mutation in the individual, such as... Figure 6 As shown, the specific rules are the same as the encoding rules mentioned above.

[0196] The fitness values ​​of individuals after each mutation are compared with those before the mutation. The Metropolis criterion is used to determine whether to accept the new solution, and the temperature T is reduced at a rate v until T is reached. <t’。

[0197] S7: Determine if the algorithm has reached the termination condition. If yes, output the currently known optimal solution; otherwise, jump to S2.

[0198] For resource-constrained scheduling scenarios, preset conditions, relevant parameters, and constraints are set, and the above-mentioned optimized scheduling model considering resource constraints is constructed.

[0199] Following the steps above, in order to verify the performance of the algorithm provided in this embodiment, an experiment was conducted, and 10 sets of calculation results, RC01-RC10, were obtained as shown in Table 1. Each job type, the number of employees in each job type, and the process are different.

[0200] Table 1 shows the calculation results obtained in this embodiment.

[0201]

[0202] In this set of examples, the optimal solution obtained by the genetic simulated annealing algorithm is relatively stable, and the worker utilization rate of the optimal solution is consistently above 65%, demonstrating the effectiveness and stability of the genetic simulated annealing algorithm provided in this embodiment of the invention. An excellent production scheduling Gantt chart for a certain example is shown below. Figure 4 As shown, the worker utilization rate is relatively balanced, and the completion time is 79 standard hours.

[0203] The method proposed in this invention combines the traditional resource-constrained project scheduling problem with resource balancing, and can serve as a reference for multi-shift resource-constrained project scheduling problems. To further improve search efficiency and incorporate practical industrial factors, this invention uses maximum completion time as the optimization objective. Furthermore, the core concept lies in the sequencing of process operations and the optimization of resource availability time, and is not limited to the specific design of termination conditions or constraint objectives; therefore, it is widely applicable to different design objectives and constraints.

[0204] The problem is solved using a genetic simulated annealing algorithm. The genetic algorithm expands the search range and generates higher-quality solutions, while the simulated annealing algorithm explores solutions near a given individual, improving search efficiency and avoiding getting trapped in local optima. Therefore, the solution method employed in this invention balances search range and search efficiency, achieving global optimization with high efficiency.

[0205] In a specific application scenario, the present invention further designs constraints such as the number of workers, the sequence of processes, worker processing constraints, and attendance rate constraints, which can improve the system's computational efficiency while satisfying the above constraints.

[0206] The initialization scheme uses decimal encoding, where a random decimal from 0 to 1 is assigned to each chromosome. Compared to the traditional sorting based on process number, this encoding method can avoid infeasible solutions in this problem by preventing conflicts in the logical order of process steps, thus preventing infeasible solutions. Furthermore, the unified encoding scheme allows the chromosome values ​​to change freely; a change in the value of each chromosome may alter the processing order, facilitating the algorithm's exploration of the solution space.

[0207] To address the limitations of resource processing and utilization, a decoding method based on working time coefficients was designed. This method uses two indicators—total working time coefficient and recent processing coefficient—to allocate processing workers for each process, which is more in line with actual production and human factors engineering.

[0208] The above description is only a preferred embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any equivalent substitutions or modifications made by those skilled in the art within the scope of the technology disclosed in the present invention, based on the technical solution and inventive concept of the present invention, should be covered within the scope of protection of the present invention.

[0209] Furthermore, unless otherwise stated, all technical and scientific terms used in this invention have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains. All references to this specification are incorporated by way of citation to disclose and describe methods relating to those references. In the event of any conflict with any incorporated reference, the content of this specification shall prevail.

Claims

1. A resource-constrained project scheduling method, characterized in that, Includes the following steps: A population is randomly generated, and each individual in the population is a process order code based on the process sequence; During the population initialization phase, the gene sequences in each chromosome are encoded using a random decimal format based on 0-1 encoding. The sequence of each gene is a decimal with values ​​between 0 and 1. The generated sequence of genes with sequential encoding is as follows: in, p For process numbering, N The total number of processes. The gene coding value corresponding to the process. Chromosomes represent the order of processes; Based on the generated process sorting code, a decoding order set and a waiting process group are created. The gene coding values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene coding value is placed at the end of the created decoding order set. The decoding order set is then updated to determine the decoding order set corresponding to the updated process sorting code. Iterate through all processes that are not currently included in the decoding order set, find all processes that have no preceding process and add them to the waiting process group, and record the number of times each process enters the waiting process group. Compare the gene coding values ​​in the gene sequences corresponding to all processes in the current waiting process group. If the sum of the gene coding value corresponding to the process to be processed in the current waiting process group and the gene coding value corresponding to the process that has been in the waiting process for more than 3 consecutive times is greater than 1, place the process that has been in the waiting process for 3 consecutive times at the end of the created decoding order set for processing, and update the decoding order set. When the gene encoding value of the decoding order set is equal to the total number of processes, all processes are placed into the waiting process group, and the updated decoding order is output; otherwise, all unprocessed processes are traversed again to find all processes without a preceding process. Based on the updated process sorting code and the corresponding decoding sequence set, find the earliest time after all the preceding processes are completed for the currently decoded process. This time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process. This time is used as the start time of the process. The start time of each process is determined in this way. Based on the start time and processing time of each process, the end time and the total time to complete all processes are determined. With minimizing the maximum completion time of workers as the optimization objective, the constraints on the number of workers and their attendance, as well as the constraints on the sequential execution of processes, are determined. The individual with the highest fitness value is obtained through the genetic simulated annealing algorithm. Based on the start time, end time, and total time for completing all processes for the individual with the highest fitness value, determine the total processing time coefficient and most recent processing time coefficient for each worker, and schedule shifts for each worker accordingly: Apply a time factor to each worker currently processing the data. T q The calculation methods are sorted from largest to smallest, and the working hour coefficient is calculated as follows: in, T q This is the working hour coefficient. The worker's ability to perform this process, when the worker performs this process. =1, otherwise =0; For the worker in t The time occupancy from the start of the process to the completion of the operation, and when this time is occupied. =0, otherwise =1; This is the worker's total processing time coefficient. For the worker recently l Processing time coefficient per working day; and The calculations are as follows: in, and These are the total processing coefficient and the most recent processing coefficient, respectively.

2. The resource-constrained project scheduling method according to claim 1, characterized in that, The process of determining the start time of each step in this manner specifically includes: Based on the updated process sorting code and the corresponding decoding order set, the process is decoded accordingly to determine the completion time of all preceding processes of the process. Take the maximum value of the completion time as the proposed start time of the process. Starting from the proposed start time, determine whether the number of available personnel in the team at the current moment meets the number of personnel required for the current process. If the required number of workers for the current process is met, the current planned start time is taken as the start time for that process; if not, the planned start time for that process is incremented by 1, and the process is re-evaluated.

3. The resource-constrained project scheduling method according to claim 1, characterized in that, The determination of the end processing time and the total time for completing all processes specifically includes: Iterate through all processes in sequence, and take the end time of each process as the sum of the start time and the processing time of the process. After traversing all processes, determine the end time of each process and take the maximum value as the total time to complete all processes.

4. The resource-constrained project scheduling method according to claim 1, characterized in that, Obtaining the individual with the highest fitness value includes the following steps: The preset conditions include: All production factors except personnel are complete, and there will be no shortage of materials and tooling. When the processing logic relationship between processes is a serial logic relationship, it is fixed and cannot be modified; Workers are classified by job type. There is only one specific job type in a work group, and workers of a certain job type can only perform the work corresponding to that job type. The employment of workers has an attendance requirement. The attendance rate of workers must be higher than the set value, and the working hours of all workers must be consistent, that is, the attendance rate variance must be lower than the set value. The hired workers are all skilled workers, and different combinations of workers in the same job can complete any process in the same amount of time. If a process is not completed on a given day, it will be suspended and resumed the following day. The optimization objective expression is: in, This refers to the time required to complete a processing step. n It refers to the number of processes; The constraints include: At any given time, the total number of workers involved in all processes being processed cannot exceed the limit for the number of workers in that specific process. in, For the work group i The number of people is limited. It is a 0-1 variable; when the process j In progress t During processing, =1, otherwise 0; For process j Work teams are needed i Number of people who completed the task The earliest time when the process begins. This is the time when all processes have been completed; Each step must wait for the preceding step to be completed before it can proceed: in, For process j The start time of processing For process j End processing time; As a 0-1 variable, when the process j Compare If the processing time is earlier, then =1, otherwise 0; It is an infinitely large number; At any given time, any worker can participate in at most one processing step: in, q Let be any worker, and the total number of workers be... ; As a 0-1 variable, when the worker q Participated in the process j During processing, =1, otherwise 0; The overall attendance rate of workers should be higher than the set value: in, Attendance rate for each worker, As a minimum attendance requirement, For process j Assembly time.

5. A resource-constrained project scheduling system, characterized in that, include: The process sequencing encoding and decoding module is used to randomly generate a population, wherein each individual in the population is a process sequencing code based on the process order; Based on the generated process sorting code, a decoding order set and a waiting process group are created. The gene coding values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene coding value is placed at the end of the created decoding order set. The decoding order set is then updated to determine the decoding order set corresponding to the updated process sorting code. Iterate through all processes that are not currently included in the decoding order set, find all processes that have no preceding process and add them to the waiting process group, and record the number of times each process enters the waiting process group. Compare the gene coding values ​​in the gene sequences corresponding to all processes in the current waiting process group. If the sum of the gene coding value corresponding to the process to be processed in the current waiting process group and the gene coding value corresponding to the process that has been in the waiting process for more than 3 consecutive times is greater than 1, place the process that has been in the waiting process for 3 consecutive times at the end of the created decoding order set for processing, and update the decoding order set. When the gene encoding value of the decoding order set is equal to the total number of processes, all processes are placed into the waiting process group, and the updated decoding order is output; otherwise, all unprocessed processes are traversed again to find all processes without a preceding process. The process time determination module is used to find the earliest time after all the preceding processes are completed for the currently decoded process, based on the decoded order set corresponding to the updated process sorting code. This earliest time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process, and is used as the start time for that process. The start time for each process is determined in this way. Based on the start time and processing duration of each process, the end time and the total time to complete all processes are determined. The process sequencing optimization module is used to determine the constraints on the number of workers and their attendance when workers execute processes, as well as the constraints on the sequential execution of processes, with the goal of minimizing the maximum completion time of workers. It uses a genetic simulated annealing algorithm to obtain the individual with the highest fitness value. The optimization scheduling module is used to determine the total processing time coefficient and the most recent processing time coefficient for each worker based on the start time, end time, and total time to complete all processes for the individual with the highest fitness value, and then schedule shifts for each worker. Apply a time factor to each worker currently processing the data. T q The calculation methods are sorted from largest to smallest, and the working hour coefficient is calculated as follows: in, T q This is the working hour coefficient. The worker's ability to perform this process, when the worker performs this process. =1, otherwise =0; For the worker in t The time occupancy from the start of the process to the completion of the operation, and when this time is occupied. =0, otherwise =1; This is the worker's total processing time coefficient. For the worker recently l Processing time coefficient per working day; and The calculations are as follows: in, and These are the total processing coefficient and the most recent processing coefficient, respectively. Each individual in the population is encoded as a process sequence code based on the process order, specifically including: During the population initialization phase, the gene sequences in each chromosome are encoded using a random decimal format based on 0-1 encoding. The sequence of each gene is a decimal with values ​​between 0 and 1. The generated sequence of genes with sequential encoding is as follows: in, p For process numbering, N The total number of processes. The gene coding value corresponding to the process. Chromosomes represent the process ordering.

6. A computer device, characterized in that, The computer device includes a memory and a processor. The memory stores a computer program, which, when executed by the processor, causes the processor to perform the following steps: A population is randomly generated, and each individual in the population is a process order code based on the process sequence; During the population initialization phase, the gene sequences in each chromosome are encoded using a random decimal format based on 0-1 encoding. The sequence of each gene is a decimal with values ​​between 0 and 1. The generated sequence of genes with sequential encoding is as follows: in, p For process numbering, N The total number of processes. The gene coding value corresponding to the process. Chromosomes represent the order of processes; Based on the generated process sorting code, a decoding order set and a waiting process group are created. The gene coding values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene coding value is placed at the end of the created decoding order set. The decoding order set is then updated to determine the decoding order set corresponding to the updated process sorting code. Iterate through all processes that are not currently included in the decoding order set, find all processes that have no preceding process and add them to the waiting process group, and record the number of times each process enters the waiting process group. Compare the gene coding values ​​in the gene sequences corresponding to all processes in the current waiting process group. If the sum of the gene coding value corresponding to the process to be processed in the current waiting process group and the gene coding value corresponding to the process that has been in the waiting process for more than 3 consecutive times is greater than 1, place the process that has been in the waiting process for 3 consecutive times at the end of the created decoding order set for processing, and update the decoding order set. When the gene encoding value of the decoding order set is equal to the total number of processes, all processes are placed into the waiting process group, and the updated decoding order is output; otherwise, all unprocessed processes are traversed again to find all processes without a preceding process. Based on the updated process sorting code and the corresponding decoding sequence set, find the earliest time after all the preceding processes are completed for the currently decoded process. This time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process. This time is used as the start time of the process. The start time of each process is determined in this way. Based on the start time and processing time of each process, the end time and the total time to complete all processes are determined. With minimizing the maximum completion time of workers as the optimization objective, the constraints on the number of workers and their attendance, as well as the constraints on the sequential execution of processes, are determined. The individual with the highest fitness value is obtained through the genetic simulated annealing algorithm. Based on the start time, end time, and total time for completing all processes for the individual with the highest fitness value, determine the total processing time coefficient and most recent processing time coefficient for each worker, and schedule shifts for each worker accordingly: Apply a time factor to each worker currently processing the data. T q The calculation methods are sorted from largest to smallest, and the working hour coefficient is calculated as follows: in, T q This is the working hour coefficient. The worker's ability to perform this process, when the worker performs this process. =1, otherwise =0; For the worker in t The time occupancy from the start of the process to the completion of the operation, and when this time is occupied. =0, otherwise =1; This is the worker's total processing time coefficient. For the worker recently l Processing time coefficient per working day; and The calculations are as follows: in, and These are the total processing coefficient and the most recent processing coefficient, respectively.

7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, causes the processor to perform the following steps: A population is randomly generated, and each individual in the population is a process order code based on the process sequence; During the population initialization phase, the gene sequences in each chromosome are encoded using a random decimal format based on 0-1 encoding. The sequence of each gene is a decimal with values ​​between 0 and 1. The generated sequence of genes with sequential encoding is as follows: in, p For process numbering, N The total number of processes. The gene coding value corresponding to the process. Chromosomes represent the order of processes; Based on the generated process sorting code, a decoding order set and a waiting process group are created. The gene coding values ​​corresponding to all processes in the current waiting process group are compared. The process with the largest gene coding value is placed at the end of the created decoding order set. The decoding order set is then updated to determine the decoding order set corresponding to the updated process sorting code. Iterate through all processes that are not currently included in the decoding order set, find all processes that have no preceding process and add them to the waiting process group, and record the number of times each process enters the waiting process group. Compare the gene coding values ​​in the gene sequences corresponding to all processes in the current waiting process group. If the sum of the gene coding value corresponding to the process to be processed in the current waiting process group and the gene coding value corresponding to the process that has been in the waiting process for more than 3 consecutive times is greater than 1, place the process that has been in the waiting process for 3 consecutive times at the end of the created decoding order set for processing, and update the decoding order set. When the gene encoding value of the decoding order set is equal to the total number of processes, all processes are placed into the waiting process group, and the updated decoding order is output; otherwise, all unprocessed processes are traversed again to find all processes without a preceding process. Based on the updated process sorting code and the corresponding decoding sequence set, find the earliest time after all the preceding processes are completed for the currently decoded process. This time satisfies the requirement that the remaining available personnel meet the personnel requirements of the current process. This time is used as the start time of the process. The start time of each process is determined in this way. Based on the start time and processing time of each process, the end time and the total time to complete all processes are determined. With minimizing the maximum completion time of workers as the optimization objective, the constraints on the number of workers and their attendance, as well as the constraints on the sequential execution of processes, are determined. The individual with the highest fitness value is obtained through the genetic simulated annealing algorithm. Based on the start time, end time, and total time for completing all processes for the individual with the highest fitness value, determine the total processing time coefficient and most recent processing time coefficient for each worker, and schedule shifts for each worker accordingly: Apply a time factor to each worker currently processing the data. T q The calculation methods are sorted from largest to smallest, and the working hour coefficient is calculated as follows: in, T q This is the working hour coefficient. The worker's ability to perform this process, when the worker performs this process. =1, otherwise =0; For the worker in t The time occupancy from the start of the process to the completion of the operation, and when this time is occupied. =0, otherwise =1; This is the worker's total processing time coefficient. For the worker recently l Processing time coefficient per working day; and The calculations are as follows: in, and These are the total processing coefficient and the most recent processing coefficient, respectively.

Citation Information

Patent Citations

  • A flexible job shop scheduling method adopting an improved immune genetic algorithm

    CN109816262A

  • Skill planning configuration and workshop scheduling integrated optimization method based on learning ability

    CN114912346A