Multimodal and multi-objective flexible job shop scheduling optimization method
By screening and saving multimodal solutions through the NSGA-MSPM algorithm, the lack of flexibility in multi-objective optimization in the flexible job shop scheduling problem is solved, efficient multi-objective flexible job shop scheduling is achieved, and the flexibility and adaptability of the scheduling scheme are improved.
Patent Information
- Application Number
- CN202411662299.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-20
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2044-11-20
AI Technical Summary
Existing technologies lack an effective multimodal solution processing mechanism for multi-objective flexible job shop scheduling problems, resulting in insufficient flexibility and adaptability of scheduling schemes and an inability to effectively screen and preserve high-quality solutions with significant differences.
The non-dominated sorting genetic algorithm (NSGA-MSPM) is used to screen and save multimodal solutions with significant differences through the multimodal solution archiving mechanism. The non-dominated sorting and crowding distance calculation are combined to optimize the population selection and crossover mutation operations to ensure the diversity and quality of the population.
It effectively explores and retains multimodal solutions, provides multiple optimization schemes, improves the flexibility and adaptability of flexible job shop scheduling, comprehensively considers minimizing the maximum completion time and total machine load, and improves the overall efficiency of the scheduling scheme.
Smart Images

Figure CN119536159B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of job shop scheduling, and in particular relates to a multimodal and multi-objective flexible job shop scheduling optimization method; the method aims to solve the multi-objective flexible job shop scheduling problem (MOFJSP) and improve the flexibility and adaptability of production scheduling by using a multimodal solution. Background Art
[0002] In manufacturing, the job shop scheduling problem (JSP) is a classic combinatorial optimization problem that involves scheduling a series of jobs within a shop floor to achieve desired goals, such as improving production efficiency. With the manufacturing industry's demand for greater flexibility and efficiency, the flexible job shop scheduling problem (FJSP) has emerged. FJSP is characterized by the ability to choose to perform each process step on one or more different machines for each workpiece. This flexibility makes it advantageous when dealing with complex production environments and fluctuating production demands.
[0003] However, the flexibility of FJSP also complicates the problem-solving process under the premise of multi-objective optimization, requiring simultaneous consideration of multiple optimization objectives, such as minimizing maximum completion time and balancing machine load. Existing multi-objective optimization methods for FJSP include particle swarm optimization, tabu search algorithms, and genetic algorithms. However, existing research on the multimodal nature of the shop floor scheduling problem faces the following challenges:
[0004] 1. There is a lack of optimization methods that can handle the multimodal nature of the shop scheduling problem. Current optimization methods mainly focus on solving higher-quality Pareto solutions. The multimodal nature of the shop scheduling problem refers to the existence of multiple high-quality solutions with the same objective value in the solution space.
[0005] 2. Lack of effective mechanisms to save and analyze multimodal solutions, making it impossible to fully utilize the advantages of multimodal solutions to improve the flexibility and adaptability of scheduling solutions;
[0006] 3. Lack of an effective multimodal solution screening mechanism: Multimodal solutions may contain redundant solutions with very small differences, which fails to effectively screen out solutions that have the same target value but very different specific scheduling arrangements. Retaining these unique high-quality solutions can significantly improve the flexibility and adaptability of the scheduling scheme.
[0007] Therefore, there is an urgent need for a new optimization algorithm that can effectively explore and utilize multimodal solutions to solve the MOFJSP problem and provide more flexible and efficient production scheduling solutions. Such an algorithm should be able to identify and preserve high-quality multimodal solutions and provide multiple optimization solutions for decision makers to choose from, thereby improving the overall efficiency and flexibility of production scheduling. Summary of the Invention
[0008] This paper studies the multi-objective optimization in FJSP. Based on a classic shop floor scheduling test case, the basic problem modeling of MOFJSP is carried out. A non-dominated sorting genetic algorithm with a multimodal solution archiving mechanism (NSGA-MSPM) is proposed to solve the problem. The algorithm can effectively explore and retain multimodal solutions, providing decision makers with a more flexible and efficient production scheduling scheme.
[0009] The technical solution adopted in the present invention is:
[0010] A multi-modal and multi-objective flexible job shop scheduling optimization method comprises the following steps:
[0011] Step 1: Build a scheduling model including multi-objective optimization for FJSP;
[0012] Step 2, Verification of the multimodal characteristics of FJSP: Preliminary experiments were conducted to verify the multimodal characteristics of FJSP, i.e., the existence of multiple solutions with the same objective value in the solution space;
[0013] Step 3, Population Initialization and Archiving: Initialize the population and generate multiple initial individuals, each representing a possible scheduling solution. Individuals are represented using real number encoding, using process code, machine code, and time code to represent the job scheduling solution. At the same time, initialize the multimodal solution archive to save the multimodal solutions found in subsequent iterations.
[0014] Step 4, non-dominated sorting and crowding distance calculation: perform non-dominated sorting on the individuals in the population to determine the non-dominated level of each individual; calculate the crowding distance of each individual to maintain diversity during the selection process and ensure the diversity of the population;
[0015] Step 5, set the iteration counter to 1;
[0016] Step 6, selection operation: Using the tournament selection method, individuals are selected for crossover and mutation operations based on their non-dominated ranking and crowding distance. Individuals with high non-dominated ranking and large crowding distance are given priority to maintain population diversity and the transmission of excellent genes.
[0017] Step 7, crossover operation: Perform crossover operations based on process code and machine code to increase the diversity of the population; crossover based on process code exchanges the operation sequence of the parent individual, and crossover based on machine code exchanges the allocation scheme of the machine;
[0018] Step 8, mutation operation: perform process code mutation and machine code mutation to improve the exploration ability of the population; process code mutation generates new individuals by changing the processing sequence, and machine code mutation generates new individuals by changing the machine assigned to the process;
[0019] Step 9: Check and remove individuals that deviate during the crossover mutation operation;
[0020] Step 10, merging populations and non-dominated sorting: merging the current population with the generated offspring individuals to form a new mixed population; performing non-dominated sorting and crowding distance calculation on the individuals in the mixed population, and updating the non-dominated rank and crowding distance of each individual;
[0021] Step 11, environmental selection strategy and population update: select individuals with the highest non-dominated rank from the mixed population to form a new population, ensuring the quality and diversity of the population;
[0022] Step 12: Multimodal solution screening and archiving: Screen the multimodal solutions, remove redundant solutions with minimal differences, retain high-quality solutions with the same target value but significantly different specific scheduling arrangements, and update the multimodal solution archive.
[0023] Step 13, termination condition verification: Check the termination condition, which usually includes the maximum number of iterations or convergence of the objective function; when the termination condition is met, output the final multimodal solution archive; otherwise, return to the selection operation step to continue iteration.
[0024] Furthermore, the steps for constructing the FJSP model are as follows:
[0025] Step 1-1, problem definition: The optimization objectives of MOFJSP are to minimize the maximum completion time and minimize the total machine load;
[0026] Step 1-2, set the objective function:
[0027] (1) Minimize the maximum completion time:
[0028] f1=min(max 1≤j≤n (C j ))
[0029] Where: n is the total number of workpieces; C j is the completion time of job j;
[0030] (2) Minimize the total machine load:
[0031]
[0032] Where: m is the total number of machines; i is the machine number, 1≤i≤m; j is the workpiece number; h is the process number; h j is the total number of processes for job j; p ijh is the processing time of the hth process of workpiece j on machine i; x ijh Indicates process O jh Whether to select machine i for processing;
[0033] Steps 1-3, set constraints:
[0034] (1) Each process of each workpiece can only be processed on one machine:
[0035]
[0036] Where: Ω jh is the set of optional processing machines for the h-th process of workpiece j;
[0037] (2) Each machine can only process one workpiece at a time:
[0038] s jh +p ijh ≤s kl ,
[0039] Where: s jh is the starting time of the hth process of workpiece j; p ijh is the processing time of the hth process of workpiece j on machine i; s kl represents the start time of the lth process of workpiece k;
[0040] (3) Workpiece process sequence constraints:
[0041] c jh ≤s j,h+1 ,
[0042] Where: c jh is the completion time of the hth process of workpiece j;
[0043] (4) The relationship between the completion time and the start time of the process:
[0044] c jh =s jh +p ijh ,
[0045] Where: p ijh is the processing time of the hth step of workpiece j on machine i;
[0046] (5) Machine processing sequence constraints:
[0047] y ijhkl +y ikl =1,
[0048]
[0049] Where: y ijhkl is a binary variable. When the nth process of workpiece j is processed on machine i and is before the lth process of workpiece k is processed on machine i, y ijhkl =1, otherwise 0; y ikl It is also a binary variable. When the lth process of workpiece k is processed on machine i and is before the hth process of workpiece j is processed on machine i, y ikl =1, otherwise 0.
[0050] Furthermore, step 2 includes: setting multiple different evaluation times for each Brandimarte benchmark test problem, including 30,000, 50,000, 70,000, 90,000, 110,000, 130,000, 150,000, 200,000 and 250,000 times; running each test instance independently 30 times, and recording the number of best target values and the corresponding number of multimodal solutions found in each run; and recording the number of best target values and the number of multimodal solutions found in each evaluation, and calculating the average value.
[0051] Furthermore, in step 3, the steps to initialize the population are:
[0052] Step 3-1, generate a vector temp, which contains the process number of each workpiece;
[0053] Step 3-2, create an all-zero matrix to store the chromosomes of the population;
[0054] Step 3-3: Randomly shuffle the process numbers of each individual in a population, and then fill the shuffled process numbers into the first layer of the chromosome;
[0055] In steps 3-4, for each process of each workpiece, randomly select an available machine and record the machine number and the corresponding processing time in the second and third layers of chromosome chroms.
[0056] Furthermore, in step 4, the steps for calculating the crowding distance between each individual are:
[0057] Step 4-1: Input the current individual index and the corresponding two objective function value vectors, ensuring that the objective function value vectors have the same length and that the individual index is within the valid range;
[0058] Step 4-2, initialize a zero vector to store the crowding distance of each individual;
[0059] Step 4-3, sort the two objective function values separately to obtain the sorted indexes;
[0060] Step 4-4, set the crowding distance of the boundary points of the two objective functions after sorting to infinity;
[0061] Step 4-5, calculate the range of the objective function value and ensure that the range is not zero;
[0062] Steps 4-6: For each non-boundary point, the crowding distance in the two dimensions is calculated by dividing the difference between the two adjacent individuals in the dimension by the range;
[0063] In steps 4-7, the crowding distances in the two dimensions are added together to obtain the total crowding distance of each individual.
[0064] Furthermore, in step 6, the specific steps of the selection operation are:
[0065] Step 6-1, determine the number of chromosomes size_chrom selected for crossover mutation based on the selection probability Ps; calculate the total number of individuals num_individuals in the population; initialize a new population chrom1;
[0066] Step 6-2, calculate the non-dominated sorting and crowding distance of individuals in the population; combine the chromosome information, non-dominated sorting level and crowding distance to form a matrix chrom_combined containing all information;
[0067] Step 6-3, tournament selection, includes the following steps:
[0068] Step 6-3-1, for each selected chromosome, perform tournament_size random selections to ensure that a different contestant is selected each time;
[0069] Step 6-3-2, for each participating individual, record its non-dominated ranking rank c_obj_rank and crowding distance c_obj_distance;
[0070] Step 6-3-3: Among all the participating individuals, select the individual with the smallest non-dominated ranking. If multiple participants have the same ranking, give priority to the individual with the larger crowding distance. If multiple participants have the same crowding distance, select an individual at random.
[0071] In step 6-4, the selected individuals are added to the new population chrom1, and the above process is repeated until the new population is full.
[0072] Furthermore, in step 7, the specific steps of the crossover operation are:
[0073] Step 7-1, determine whether to perform a crossover operation based on the crossover probability Pc, obtain the total number of chromosomes size_chrom and the total number of operations total_op_num, and initialize a new population chroms_new;
[0074] Step 7-2, cross operation based on process code, includes the following steps:
[0075] Step 7-2-1, pair each pair of chromosomes in the population according to i and i+1. If the random number is less than the crossover probability Pc, then select this pair of chromosomes for the crossover operation;
[0076] Step 7-2-2, randomly divide the workpiece num_job into two sets J1 and J2;
[0077] Step 7-2-3, find the operation sequence positions op_p1 and op_p2 corresponding to the J2 set in the parent chromosome;
[0078] Step 7-2-4, in the offspring chromosomes child1 and child2, exchange the gene positions of the J2 set, including the operation sequence, machine code, and time code;
[0079] Step 7-2-5, add the generated offspring chromosomes child1 and child2 to the new population chroms_new;
[0080] Step 7-3, cross operation based on machine code, includes the following steps:
[0081] Step 7-3-1, calculate the cumulative number of operations for each workpiece to form a cumulative sum vector cumulative_op;
[0082] Step 7-3-2, pair each pair of chromosomes in the population according to k and k+1. If the random number is less than the crossover probability, select this pair of chromosomes for the crossover operation;
[0083] Step 7-3-3, generate a random 0,1 sequence rand0_1 equal to the total number of processes;
[0084] Step 7-3-4: For each workpiece, determine the gene position to be exchanged based on the value of the random sequence rand0_1, and exchange the corresponding machine code and time code in the offspring chromosomes child1 and child2;
[0085] In step 7-3-5, the generated offspring chromosomes child1 and child2 are added to the new population.
[0086] Furthermore, in step 8, the specific steps of the mutation operation are:
[0087] Step 8-1, determine whether to perform mutation operation based on the mutation probability Pm, and obtain the total number of chromosomes total_op_num and the total population size (chroms, 1);
[0088] Step 8-2, process code variation operation; includes the following steps:
[0089] Step 8-2-1: For each chromosome in the population, if the random number is less than the mutation probability Pm, perform the process code mutation operation;
[0090] Step 8-2-2, randomly select the positions of tau workpieces job_ind, and the value of tau is within the range of tau_min and tau_max;
[0091] Step 8-2-3, for each selected tau position, generate the full permutation ind, and generate the neighborhood solution chrom_neigh based on these permutations, including exchanging process codes, updating the corresponding machine codes and time codes;
[0092] Step 8-3, machine code mutation operation; includes the following steps:
[0093] Step 8-3-1, for each chromosome in the population, if the random number is less than the mutation probability Pm, perform a machine code mutation operation;
[0094] Step 8-3-2, randomly select a position ind and find the workpiece job and process op corresponding to the position;
[0095] Step 8-3-3, obtain the machines and processing time times available for the corresponding process;
[0096] Step 8-3-4, if there is more than one available machine, select a machine different from the current machine from machines_available and update the machine code and time code in the chromosome;
[0097] In step 8-3-5, the mutated chromosome is added to the population chroms to ensure the diversity and exploration capability of the population.
[0098] Furthermore, in step 9, the specific steps for checking and eliminating deviated individuals during the crossover mutation operation are as follows:
[0099] Step 9-1, get the total number of chromosomes total_op_num and the total population size (chroms, 1); define two functions: check_machine_constraints and fix_chrom, used to check and repair chromosomes;
[0100] Step 9-2, checking whether the individual satisfies the machine constraints, includes the following steps:
[0101] Step 9-2-1, check each chromosome in the population to determine whether it violates the machine constraints;
[0102] Step 9-2-2, calculate the total number of processes, each process includes process code, machine code and time code;
[0103] Step 9-2-3, traverse all the processes in the chromosome, obtain the processing machine and workpiece number job corresponding to each process, as well as the number of processes before the current position num_ops_before, and determine the operation code operation_num;
[0104] Step 9-2-4, obtain the optional machines valid_machines corresponding to the process, and check whether the currently selected machine is in its optional machine list; if not, it means that the constraint is violated and true is returned.
[0105] Step 9-3, repairing chromosomes that violate constraints, includes the following steps:
[0106] Step 9-3-1, initialize the repaired chromosome chrom_fixed to the original chromosome;
[0107] Step 9-3-2, traverse all processes in the chromosome, obtain the processing machine machine, workpiece number job and processing time time of the current process, as well as the number of processes before the current position num_ops_before, and determine the operation code operation_num;
[0108] Step 9-3-3, obtain the optional machines valid_machines and corresponding processing time valid_times corresponding to the process, and check whether the machine and time selected by the current process are in the optional list;
[0109] Step 9-3-4, if the currently selected machine and time are not in the valid list, sort the machines according to the processing time, select the machine new_machine with the shortest processing time and its processing time new_machine_time, and update the machine code and the corresponding time code in the repaired chromosome;
[0110] Step 9-3-5, add the repaired chromosome to the population chroms to ensure the legitimacy of the population.
[0111] Furthermore, in step 11, the specific steps of environment selection for the flexible shop scheduling system are as follows:
[0112] Step 11-1, merge the current population chroms and the newly generated offspring offspring to form a mixed population; at the same time, merge their corresponding objective function values Z1 and Z2;
[0113] Step 11-2, perform non-dominated sorting on the mixed population to determine the frontier level to which each individual belongs;
[0114] Step 11-3, pre-allocate memory to store the new population and its objective function value; initialize the counter num_chroms_selected to record the number of selected individuals, and set the front index front_idx to 1;
[0115] In step 11-4, if the new population capacity is not full and there are still unprocessed frontier levels, each frontier level is processed in a loop; for individuals in the current frontier, if all of them can join the new population, they are directly added; otherwise, some individuals are selected to join the new population based on the crowding distance;
[0116] Step 11-5 checks whether the number of rows in chroms_new satisfies the new population size sizepop; if so, updates the population; otherwise, issues a warning that the population size is insufficient.
[0117] Furthermore, in step 12, the multimodal de-archiving update mechanism is:
[0118] Step 12-1, initial archiving: When the archive is empty, the non-dominated sorting genetic algorithm with multimodal solution archiving mechanism will directly add all individuals with the highest non-dominated level to build a preliminary understanding of the potential solution space of the problem;
[0119] Step 12-2, archive update: After the archive is filled, the new candidate solutions are compared with the existing solutions in the archive based on the non-dominated ranking of the merged current archive and the new offspring, and only the individuals with the highest non-dominated level are retained;
[0120] Step 12-3, Deduplication and Uniqueness: At each update, the algorithm eliminates duplicate solutions to ensure the uniqueness of individuals in the archive, thereby enhancing the diversity of the archive;
[0121] Step 12-4, unlimited archive: To fully evaluate the potential multimodal nature of MOFJSP, the archive has no upper limit, allowing all non-dominated solutions to be retained.
[0122] The beneficial effects of the present invention are:
[0123] 1. The present invention uses NSGA-MSPM to verify the multimodal characteristics of FJSP and achieves significant results in multi-objective optimization.
[0124] 2. This paper verifies the existence of multimodal characteristics in FJSP, that is, there are multiple solutions with the same objective value in the solution space; through preliminary experiments, the existence of these multimodal solutions is confirmed, which provides a solid foundation for the search and retention process of the subsequent algorithm.
[0125] 3. This invention provides a multimodal solution archiving mechanism that effectively searches for and retains significantly different multimodal solutions. By screening and archiving these solutions, the algorithm not only finds the global optimal solution but also provides multiple local optimal solutions, improving the flexibility and adaptability of the scheduling scheme.
[0126] 4. This invention employs a multi-objective optimization approach, comprehensively considering the two optimization objectives of minimizing maximum makespan and total machine load. Through non-dominated sorting and congestion distance calculation, the algorithm effectively balances these different objectives, improving the overall efficiency and effectiveness of the scheduling solution. BRIEF DESCRIPTION OF THE DRAWINGS
[0127] Figure 1 This is the flow chart of the NSGA-MSPM algorithm;
[0128] Figure 2 Schematic diagram of the individual coding method;
[0129] Figure 3 This is a schematic diagram of process code cross operation;
[0130] Figure 4 This is a schematic diagram of machine code cross operation;
[0131] Figure 5 This is a schematic diagram of the process code variation;
[0132] Figure 6 This is a schematic diagram of the machine code mutation process;
[0133] Figure 7a This is the Gantt chart of multimodal scheduling scheme 1;
[0134] Figure 7b This is the Gantt chart of multimodal scheduling scheme 2;
[0135] Figure 7c This is the Gantt chart of multimodal scheduling scheme 3. DETAILED DESCRIPTION
[0136] The present invention will be further described below with reference to the accompanying drawings.
[0137] Standard datasets for flexible shop floor scheduling are a valuable resource for research and development of scheduling algorithms in the manufacturing industry. These datasets typically contain information on a range of production tasks, covering everything from task allocation to resource allocation. Flexible shop floor scheduling datasets typically include job information, resource requirements, job priorities, job deadlines, production environment constraints, and historical data. These datasets are often provided by academia, research institutions, or industry to promote the development and practical application of scheduling algorithms. Researchers can use these datasets to validate the performance of their scheduling algorithms and propose new optimization methods to address diverse challenges and requirements.
[0138] The dataset used in this paper is the Brandimarte benchmark problem. The Brandimarte benchmark problem includes the number of orders, the number of machines, the average number of processes per machine, and the machine numbers and corresponding processing times for each process of each workpiece. Table 1 is an example of a Brandimarte benchmark problem.
[0139] Table 1 Brandimarte series standard example Mk01
[0140]
[0141]
[0142] In the Brandimarte benchmark, the first row contains three numbers. The first number indicates the number of workpieces in the test set, the second number indicates the number of available machines, and the third number indicates the average number of available machines per process. For example, in Mk01, the first row contains three numbers: 10, 6, and 2, indicating that the dataset contains 10 workpieces, 6 available processing machines, and an average of 2 available machines per process.
[0143] The Brandimarte benchmark problem has N+1 rows of data, where N is the number of workpieces given in the first row. Rows 2 through N+1 represent the data for each workpiece, in that order. For the Mk01 dataset, for example, row 2 contains the data for the first workpiece, row 3 contains the data for the second workpiece, and so on, up to row N+1 for the Nth workpiece. Each row is interpreted in the same way. For example, in the second row of the Mk01 dataset, the first number, 6, indicates that the workpiece has six steps. The second number, 2, indicates that the first step of the workpiece can be processed on two machines. The subsequent numbers, 1, 5, 3, and 4, indicate that the step can be processed on machine number 1, taking 5 seconds, or on machine number 3, taking 4 seconds.
[0144] Step 1: Build a scheduling model for FJSP including multi-objective optimization. The steps are as follows:
[0145] Step 1-1, problem definition: The optimization objectives of MOFJSP are to minimize the maximum completion time and minimize the total machine load;
[0146] Step 1-2, set the objective function:
[0147] (1) Minimize the maximum completion time:
[0148] f1=min(max 1≤j≤n (C j ))
[0149] Where: n is the total number of workpieces; C j is the completion time of job j;
[0150] (2) Minimize the total machine load:
[0151]
[0152] Where: m is the total number of machines; i is the machine number, 1≤i≤m; j is the workpiece number; h is the process number; h j is the total number of processes for job j; p ijh is the processing time of the hth process of workpiece j on machine i; x ijh Indicates process O jh Whether to select machine i for processing;
[0153] Steps 1-3, set constraints:
[0154] (1) Each process of each workpiece can only be processed on one machine:
[0155]
[0156] Where: Ω jhis the set of optional processing machines for the h-th process of workpiece j;
[0157] (2) Each machine can only process one workpiece at a time:
[0158] s jh +p ijh ≤s kl ,
[0159] Where: s jh is the starting time of the hth process of workpiece j; p ijh is the processing time of the hth process of workpiece j on machine i; s kl represents the start time of the lth process of workpiece k;
[0160] (3) Workpiece process sequence constraints:
[0161] c jh ≤s j,h+1 ,
[0162] Where: c jh is the completion time of the hth process of workpiece j;
[0163] (4) The relationship between the completion time and the start time of the process:
[0164] c jh =s jh +p ijh ,
[0165] Where: p ijh is the processing time of the hth step of workpiece j on machine i;
[0166] (5) Machine processing sequence constraints:
[0167] y ijhkl +y ikl =1,
[0168]
[0169] Where: y ijhkl is a binary variable. When the hth process of workpiece j is processed on machine i and is before the lth process of workpiece k is processed on machine i, y ijhkl =1, otherwise 0; y ikl It is also a binary variable. When the lth process of workpiece k is processed on machine i and is before the hth process of workpiece j is processed on machine i, y ikl =1, otherwise 0.
[0170] Through the above steps, the present invention constructs a model for the multi-objective flexible workshop scheduling problem.
[0171] Step 2: Verification of FJSP multimodal features.
[0172] Preliminary experiments validate the multimodal nature of FJSP, i.e., the existence of multiple solutions with the same objective value in the solution space. This validation step ensures that strategies for effectively identifying and retaining multimodal solutions can be designed in the subsequent optimization process.
[0173] The present invention sets multiple different evaluation times for each Brandimarte benchmark test problem, including 30,000, 50,000, 70,000, 90,000, 110,000, 130,000, 150,000, 200,000 and 250,000 times. Each test instance is run independently 30 times, and the number of optimal target values and the corresponding number of multimodal solutions found in each run are recorded. At the same time, the number of optimal target values Nob and the number of multimodal solutions Nmu found in each evaluation are recorded, and the average value is calculated. Table 2 shows the number of multimodal solutions found in the Mk01-10 instance under different evaluation times. Table 3 shows the number of optimal target values found in the Mk01-10 instance under different evaluation times. The results show that the number of multimodal solutions that can be found and the number of non-unique optimal target value groups indicate that the flexible job shop scheduling problem has multimodal characteristics, that is, there are multiple solutions with the same target value.
[0174] Table 2 Number of multimodal solutions to the MK01-10 test problem
[0175]
[0176] Table 3 Number of optimal target values in the MK01-10 test set
[0177]
[0178] In view of the above modeling, the present invention adopts NSGA-MSPM to solve the problem, as shown in Figure 1 shown.
[0179] Step 3: Initialize the population and archive.
[0180] The present invention adopts random initialization method to generate the initial population, and each individual represents a possible scheduling solution. Figure 2 As shown, individuals are represented by real number encoding, using process code, machine code, and time code to represent the job scheduling plan. At the same time, a multimodal solution archive is initialized to save the multimodal solutions found in subsequent iterations.
[0181] The steps to initialize the population are:
[0182] Step 3-1, generate a vector temp, which contains the process number of each workpiece;
[0183] Step 3-2, create an all-zero matrix to store the chromosomes of the population;
[0184] Step 3-3: Randomly shuffle the process numbers of each individual in a population, and then fill the shuffled process numbers into the first layer of the chromosome;
[0185] In steps 3-4, for each process of each workpiece, randomly select an available machine and record the machine number and the corresponding processing time in the second and third layers of chromosome chroms.
[0186] Step 4: Perform non-dominated sorting on the individuals in the current population and calculate the crowding distance of each individual.
[0187] Perform non-dominated sorting on the individuals in the population initialized in step 3 to determine the non-dominated rank of each individual. Calculate the crowding distance of each individual to maintain diversity during the selection process and ensure the diversity of the population. The detailed steps for calculating the crowding distance between individuals are described as follows:
[0188] Step 4-1: Input the current individual index and the corresponding two objective function value vectors, ensuring that the objective function value vectors have the same length and that the individual index is within the valid range;
[0189] Step 4-2, initialize a zero vector to store the crowding distance of each individual;
[0190] Step 4-3, sort the two objective function values separately to obtain the sorted indexes;
[0191] Step 4-4, set the crowding distance of the boundary points of the two objective functions after sorting to infinity;
[0192] Step 4-5, calculate the range of the objective function value and ensure that the range is not zero;
[0193] Steps 4-6: For each non-boundary point, calculate its crowding distance in two dimensions, specifically the difference between two adjacent individuals in the dimension divided by the range;
[0194] In steps 4-7, the crowding distances in the two dimensions are added together to obtain the total crowding distance of each individual; these crowding distances are used to measure the sparseness of individuals in the target space and help maintain the diversity of the population.
[0195] Step 5: Set the iteration counter to 1 (Gen=1). The iteration counter set in this step is used to control the number of iterations of the NSGA-MSPM operation and is also the starting point of the main loop part of the NSGA-MSPM.
[0196] Step 6. Select an action.
[0197] This paper uses tournament selection as the initial selection strategy. Tournament selection is a selection method used in evolutionary algorithms to solve multi-objective optimization problems. The core idea of this algorithm is to simulate a "tournament" process to select individuals with high fitness from multiple candidate solutions to form the next generation population.
[0198] The multi-objective tournament selection process for flexible shop floor scheduling begins by randomly selecting a group of individuals for a "tournament." In each tournament, the fitness of the participating individuals is compared, and the best individual is selected to advance to the next generation. For multi-objective problems, the tournament victory criterion can be based on the Pareto dominance relationship, meaning that the individual that performs equally well on multiple objectives wins. If all participating individuals do not dominate each other on certain objectives, the crowding distance can be used to determine the winner, selecting individuals with larger crowding distances to maintain population diversity. The specific steps are as follows:
[0199] Step 6-1, determine the number of chromosomes size_chrom selected for crossover mutation based on the selection probability Ps; calculate the total number of individuals num_individuals in the population; initialize a new population chrom1;
[0200] Step 6-2, calculate the non-dominated sorting and crowding distance of individuals in the population; combine the chromosome information, non-dominated sorting level and crowding distance to form a matrix chrom_combined containing all information;
[0201] Step 6-3, tournament selection, includes the following steps:
[0202] Step 6-3-1, for each selected chromosome, perform tournament_size random selections to ensure that a different contestant is selected each time;
[0203] Step 6-3-2, for each participating individual, record its non-dominated ranking rank c_obj_rank and crowding distance c_obj_distance;
[0204] Step 6-3-3: Among all the participating individuals, select the individual with the smallest non-dominated ranking. If multiple participants have the same ranking, give priority to the individual with the larger crowding distance. If multiple participants have the same crowding distance, select an individual at random.
[0205] In step 6-4, the selected individuals are added to the new population chrom1, and the above process is repeated until the new population is full.
[0206] Step 7, cross operation.
[0207] The crossover operation simulates the mating process of organisms, exchanging and combining the gene fragments of two individuals to produce new individuals with better arrangement characteristics. In FJSP, the crossover operation can be performed based on processes or machines to produce better scheduling solutions. The mutation operation introduces randomness and randomly changes the genes of individuals to increase the diversity of the population. Figure 3 and Figure 4 As shown, the present invention sequentially crosses process codes and machine codes, effectively maintaining the diversity of process sequences and machine selection, and avoiding premature convergence to local optima. Crossing process codes ensures the rationality and variability of process arrangements, increasing the scope of solution exploration. Crossing machine codes optimizes machine allocation while maintaining the process sequence, resulting in more balanced loads and reduced machine idle time and job wait time.
[0208] The specific steps are:
[0209] Step 7-1, determine whether to perform a crossover operation based on the crossover probability Pc, obtain the total number of chromosomes size_chrom and the total number of operations total_op_num, and initialize a new population chroms_new;
[0210] Step 7-2, cross operation based on process code, includes the following steps:
[0211] Step 7-2-1, pair each pair of chromosomes in the population according to i and i+1. If the random number is less than the crossover probability Pc, then select this pair of chromosomes for the crossover operation;
[0212] Step 7-2-2, randomly divide the workpiece num_job into two sets J1 and J2;
[0213] Step 7-2-3, find the operation sequence positions op_p1 and op_p2 corresponding to the J2 set in the parent chromosome;
[0214] Step 7-2-4, in the offspring chromosomes child1 and child2, exchange the gene positions of the J2 set, including the operation sequence, machine code, and time code;
[0215] Step 7-2-5, add the generated offspring chromosomes child1 and child2 to the new population chroms_new;
[0216] Step 7-3, cross operation based on machine code, includes the following steps:
[0217] Step 7-3-1, calculate the cumulative number of operations for each workpiece to form a cumulative sum vector cumulative_op;
[0218] Step 7-3-2, pair each pair of chromosomes in the population according to k and k+1. If the random number is less than the crossover probability, select this pair of chromosomes for the crossover operation;
[0219] Step 7-3-3, generate a random 0,1 sequence rand0_1 equal to the total number of processes;
[0220] Step 7-3-4: For each workpiece, determine the gene position to be exchanged based on the value of the random sequence rand0_1, and exchange the corresponding machine code and time code in the offspring chromosomes child1 and child2;
[0221] In step 7-3-5, the generated offspring chromosomes child1 and child2 are added to the new population.
[0222] Step 8: mutation operation.
[0223] The mutation operation introduces randomness and randomly changes the genes of individuals to increase the diversity of the population. In the flexible job shop scheduling problem, the mutation operation can be to randomly exchange the position of the process or adjust the processing time, so as to explore new scheduling schemes and improve the search efficiency. The present invention performs mutation operations on the process code and the machine code in turn. Exchange mutation refers to randomly selecting two process codes or machine codes, exchanging their positions, and updating the corresponding machine code or process code and time code. Figure 5 and Figure 6 shown.
[0224] The specific steps are:
[0225] Step 8-1, determine whether to perform mutation operation based on the mutation probability Pm, and obtain the total number of chromosomes total_op_num and the total population size (chroms, 1).
[0226] Step 8-2, process code variation operation; includes the following steps:
[0227] Step 8-2-1: For each chromosome in the population, if the random number is less than the mutation probability Pm, perform the process code mutation operation;
[0228] Step 8-2-2, randomly select the positions of tau workpieces job_ind, and the value of tau is within the range of tau_min and tau_max;
[0229] Step 8-2-3, for each selected tau position, generate the full permutation ind, and generate the neighborhood solution chrom_neigh based on these permutations, including exchanging process codes, updating the corresponding machine codes and time codes;
[0230] Step 8-3, machine code mutation operation; includes the following steps:
[0231] Step 8-3-1, for each chromosome in the population, if the random number is less than the mutation probability Pm, perform a machine code mutation operation;
[0232] Step 8-3-2, randomly select a position ind and find the workpiece job and process op corresponding to the position;
[0233] Step 8-3-3, obtain the machines and processing time times available for the corresponding process;
[0234] Step 8-3-4, if there is more than one available machine, select a machine different from the current machine from machines_available and update the machine code and time code in the chromosome;
[0235] In step 8-3-5, the mutated chromosome is added to the population chroms to ensure the diversity and exploration capability of the population.
[0236] Step 9: Check and remove deviant individuals during the crossover mutation operation.
[0237] After the crossover and mutation operations, some unreasonable scheduling schemes are often generated. Crossover and mutation operations are the main means of generating new solutions (individuals). However, these operations may break the existing solution structure, causing the new solution to not meet the constraints of the problem, or even produce an infeasible scheduling scheme. For example, the crossover operation may cause task allocation conflicts, and the mutation operation may cause unreasonable task order. These unreasonable individuals will affect the convergence speed of the algorithm and the quality of the solution. The present invention designs a check and elimination mechanism for deviating individuals, which includes the following steps:
[0238] Step 9-1, get the total number of chromosomes total_op_num and the total population size (chroms, 1); define two functions: check_machine_constraints and fix_chrom, used to check and repair chromosomes;
[0239] Step 9-2, checking whether the individual satisfies the machine constraints, includes the following steps:
[0240] Step 9-2-1, check each chromosome in the population to determine whether it violates the machine constraints;
[0241] Step 9-2-2, calculate the total number of processes, each process includes process code, machine code and time code;
[0242] Step 9-2-3, traverse all the processes in the chromosome, obtain the processing machine and workpiece number job corresponding to each process, as well as the number of processes before the current position num_ops_before, and determine the operation code operation_num;
[0243] Step 9-2-4, obtain the optional machines valid_machines corresponding to the process, and check whether the currently selected machine is in its optional machine list; if not, it means that the constraint is violated and true is returned.
[0244] Step 9-3, repairing chromosomes that violate constraints, includes the following steps:
[0245] Step 9-3-1, initialize the repaired chromosome chrom_fixed to the original chromosome;
[0246] Step 9-3-2, traverse all processes in the chromosome, obtain the processing machine machine, workpiece number job and processing time time of the current process, as well as the number of processes before the current position num_ops_before, and determine the operation code operation_num;
[0247] Step 9-3-3, obtain the optional machines valid_machines and corresponding processing time valid_times corresponding to the process, and check whether the machine and time selected by the current process are in the optional list;
[0248] Step 9-3-4, if the currently selected machine and time are not in the valid list, sort the machines according to the processing time, select the machine new_machine with the shortest processing time and its processing time new_machine_time, and update the machine code and the corresponding time code in the repaired chromosome;
[0249] Step 9-3-5, add the repaired chromosome to the population chroms to ensure the legitimacy of the population.
[0250] Step 10: Merge the newly generated offspring individuals with the current population to form a new mixed population. Perform non-dominated sorting on the new mixed population and calculate the crowding distance of the new population, and update the non-dominated rank and crowding distance of each individual.
[0251] Step 11: Environment selection strategy and population update. First, perform population update, then screen the multimodal solutions and update the multimodal solution archive.
[0252] Environment selection is the most crucial step in evolutionary algorithms, directly impacting their convergence, solution diversity, and the quality of the final scheduling solution. Environment selection helps the algorithm converge toward the Pareto front. In each generation, by selecting individuals that rank high in the non-dominated sorting and combining them with crowding distance selection, the population gradually approaches the Pareto optimal solution set. This gradual optimization process allows the algorithm to continuously improve over time, ultimately converging to a more optimal solution set.
[0253] The specific steps are:
[0254] In step 11-1, the current population chroms and the newly generated offspring offspring are merged to form a mixed population. At the same time, their corresponding objective function values Z1 and Z2 are merged.
[0255] Step 11-2, perform non-dominated sorting on the mixed population to determine the frontier level to which each individual belongs.
[0256] In step 11-3, pre-allocate memory to store the new population and its objective function value. Initialize the counter num_chroms_selected to record the number of selected individuals, and set the front index front_idx to 1.
[0257] In step 11-4, if the new population is not full and there are still unprocessed frontier levels, each frontier level is processed in a loop. For individuals in the current frontier, if all of them can join the new population, they are directly added; otherwise, some individuals are selected based on the crowding distance to join the new population.
[0258] Step 11-5 checks whether the number of rows in chroms_new satisfies the new population size sizepop. If so, the population is updated; otherwise, a warning is issued, indicating that the population size is insufficient.
[0259] Step 12, updating the population and archive with a new set of individuals, i.e. the archive initialized in step 3 and the above archive, is a multimodal solution archiving mechanism, the steps of which are:
[0260] Step 12-1, initial archiving: When the archive is empty, the non-dominated sorting genetic algorithm with multimodal solution archiving mechanism will directly add all individuals with the highest non-dominated level to build a preliminary understanding of the potential solution space of the problem.
[0261] Step 12-2, archive update: After the archive is filled, the new candidate solutions are compared with the existing solutions in the archive based on the non-dominated ranking of the merged current archive and the new offspring, and only the individuals with the highest non-dominated level are retained.
[0262] Step 12-3, Deduplication and Uniqueness: At each update, the algorithm eliminates duplicate solutions to ensure the uniqueness of individuals in the archive, thereby enhancing the diversity of the archive.
[0263] Step 12-4, unlimited archive: To fully evaluate the potential multimodal nature of MOFJSP, the archive has no upper limit, allowing all non-dominated solutions to be retained.
[0264] When multiple scheduling schemes have the same optimization objectives such as completion time, machine idle time, and total energy consumption, they may differ in process arrangement. This means that although these schemes are similar in overall performance, their specific process arrangements may be different, such as the order of operations, arrangements on different equipment, etc. This multimodal characteristic means that on the Pareto frontier obtained by solving the problem, there are not only multiple solution sets, but each solution set may also contain multiple scheduling schemes. Figure 7a-7c As shown in the figure, there are three scheduling schemes with a maximum completion time of 43 and a total workload of 159.
[0265] Step 13, check whether the termination condition is met; if not, increase the count of the iteration counter and return to step 5; if yes, end the algorithm.
[0266] In summary, the experimental results of this paper demonstrate the significant multimodality of FJSP. The experiments revealed that multiple scheduling solutions with different specific arrangements can be found for the same optimization objective. Gantt charts further demonstrate the multimodal nature of this problem. By randomly selecting and plotting Gantt charts of scheduling solutions, significant differences in the order of operations and the arrangement of processing machines are highlighted. Although these solutions achieve the same objective, they exhibit unique and diverse approaches to task organization and resource allocation.
[0267] The multimodal, multi-objective, flexible shop floor scheduling optimization method proposed in this paper provides decision makers with a wider range of options and flexibility. In complex and changing production environments, the multimodal nature of this method enables more efficient and adaptable solutions. This is crucial for handling emergencies, optimizing resource allocation, and improving production efficiency.
Claims
1. A multi-modal and multi-objective flexible job shop scheduling optimization method, characterized in that: The following steps are involved: Step 1: Build a scheduling model including multi-objective optimization for FJSP; Step 2, Verification of the multimodal characteristics of FJSP: Preliminary experiments were conducted to verify the multimodal characteristics of FJSP, i.e., the existence of multiple solutions with the same objective value in the solution space; Step 3, Population Initialization and Archiving: Initialize the population and generate multiple initial individuals, each representing a possible scheduling solution. Individuals are represented using real number encoding, using process code, machine code, and time code to represent the job scheduling solution. At the same time, initialize the multimodal solution archive to save the multimodal solutions found in subsequent iterations. Step 4, non-dominated sorting and crowding distance calculation: perform non-dominated sorting on the individuals in the population and determine the non-dominated rank of each individual; Calculate the crowding distance of each individual to maintain diversity during the selection process and ensure the diversity of the population; Step 5, set the iteration counter to 1; Step 6, selection operation: Using the tournament selection method, individuals are selected for crossover and mutation operations based on their non-dominated ranking and crowding distance. Individuals with high non-dominated ranking and large crowding distance are given priority to maintain population diversity and the transmission of excellent genes. Step 7, crossover operation: Perform crossover operations based on process code and machine code to increase the diversity of the population; crossover based on process code exchanges the operation sequence of the parent individual, and crossover based on machine code exchanges the allocation scheme of the machine; Step 8, mutation operation: perform process code mutation and machine code mutation to improve the exploration ability of the population; process code mutation generates new individuals by changing the processing sequence, and machine code mutation generates new individuals by changing the machine assigned to the process; Step 9: Check and remove individuals that deviate during the crossover mutation operation; Step 10, merging populations and non-dominated sorting: merging the current population with the generated offspring individuals to form a new mixed population; performing non-dominated sorting and crowding distance calculation on the individuals in the mixed population, and updating the non-dominated rank and crowding distance of each individual; Step 11, environmental selection strategy and population update: select individuals with the highest non-dominated rank from the mixed population to form a new population, ensuring the quality and diversity of the population; Step 12: Multimodal solution screening and archiving: Screen the multimodal solutions, remove redundant solutions with minimal differences, retain high-quality solutions with the same target value but significantly different specific scheduling arrangements, and update the multimodal solution archive. Step 13, termination condition verification: Check the termination condition, which usually includes the maximum number of iterations or convergence of the objective function; when the termination condition is met, output the final multimodal solution to archive; Otherwise, return to the selection operation step to continue iteration.
2. A multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: The construction steps of the FJSP are as follows: Step 1-1, problem definition: The optimization objectives of MOFJSP are to minimize the maximum completion time and minimize the total machine load; Step 1-2, set the objective function: (1) Minimize the maximum completion time: f1=min(max 1≤j≤n (C j )) Where: n is the total number of workpieces; C j is the completion time of job j; (2) Minimize the total machine load: Where: m is the total number of machines; i is the machine number, 1≤i≤m; j is the workpiece number; h is the process number; h j is the total number of processes for job j; p ijh is the processing time of the hth process of workpiece j on machine i; x ijh Indicates process O jh Whether to select machine i for processing; Steps 1-3, set constraints: (1) Each process of each workpiece can only be processed on one machine: Where: Ω jh is the set of optional processing machines for the h-th process of workpiece j; (2) Each machine can only process one workpiece at a time: Where: s jh is the start time of the hth process of workpiece j; p ijh is the processing time of the hth process of workpiece j on machine i; s kl represents the start time of the lth process of workpiece k; (3) Workpiece process sequence constraints: Where: c jh is the completion time of the hth process of workpiece j; (4) The relationship between the completion time and the start time of the process: Where: p ijh is the processing time of the hth step of workpiece j on machine i; (5) Machine processing sequence constraints: Where: y ijhkl is a binary variable. When the hth process of workpiece j is processed on machine i and is before the lth process of workpiece k is processed on machine i, y ijhkl =1, otherwise 0; y ikl It is also a binary variable. When the lth process of workpiece k is processed on machine i and is before the hth process of workpiece j is processed on machine i, y ikl =1, otherwise 0.
3. The multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: The specific steps of step 3 are: Step 3-1, generate a vector temp, which contains the process number of each workpiece; Step 3-2, create an all-zero matrix to store the chromosomes of the population; Step 3-3: Randomly shuffle the process numbers of each individual in a population, and then fill the shuffled process numbers into the first layer of the chromosome; In steps 3-4, for each process of each workpiece, randomly select an available machine and record the machine number and the corresponding processing time in the second and third layers of chromosome chroms.
4. The multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: The specific steps of step 4 are: Step 4-1: Input the current individual index and the corresponding two objective function value vectors, ensuring that the objective function value vectors have the same length and that the individual index is within the valid range; Step 4-2, initialize a zero vector to store the crowding distance of each individual; Step 4-3, sort the two objective function values separately to obtain the sorted indexes; Step 4-4, set the crowding distance of the boundary points of the two objective functions after sorting to infinity; Step 4-5, calculate the range of the objective function value and ensure that the range is not zero; Steps 4-6: For each non-boundary point, the crowding distance in the two dimensions is calculated by dividing the difference between the two adjacent individuals in the dimension by the range; In steps 4-7, the crowding distances in the two dimensions are added together to obtain the total crowding distance of each individual.
5. The multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: The specific steps of step 6 are: Step 6-1, determine the number of chromosomes size_chrom selected for crossover mutation based on the selection probability Ps; calculate the total number of individuals num_individuals in the population; initialize a new population chrom1; Step 6-2, calculate the non-dominated sorting and crowding distance of individuals in the population; combine the chromosome information, non-dominated sorting level and crowding distance to form a matrix chrom_combined containing all information; Step 6-3, tournament selection, includes the following steps: Step 6-3-1, for each selected chromosome, perform tournament_size random selections to ensure that a different contestant is selected each time; Step 6-3-2, for each participating individual, record its non-dominated ranking rank c_obj_rank and crowding distance c_obj_distance; Step 6-3-3: Among all the participating individuals, select the individual with the smallest non-dominated ranking. If multiple participants have the same ranking, give priority to the individual with the larger crowding distance. If multiple participants have the same crowding distance, select an individual at random. In step 6-4, the selected individuals are added to the new population chrom1, and the above process is repeated until the new population is full.
6. The multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: The specific steps of step 7 are: Step 7-1, determine whether to perform a crossover operation based on the crossover probability Pc, obtain the total number of chromosomes size_chrom and the total number of operations total_op_num, and initialize a new population chroms_new; Step 7-2, cross operation based on process code, includes the following steps: Step 7-2-1, pair each pair of chromosomes in the population according to i and i+1. If the random number is less than the crossover probability Pc, then select this pair of chromosomes for the crossover operation; Step 7-2-2, randomly divide the workpiece num_job into two sets J1 and J2; Step 7-2-3, find the operation sequence positions op_p1 and op_p2 corresponding to the J2 set in the parent chromosome; Step 7-2-4, in the offspring chromosomes child1 and child2, exchange the gene positions of the J2 set, including the operation sequence, machine code, and time code; Step 7-2-5, add the generated offspring chromosomes child1 and child2 to the new population chroms_new; Step 7-3, cross operation based on machine code, includes the following steps: Step 7-3-1, calculate the cumulative number of operations for each workpiece to form a cumulative sum vector cumulative_op; Step 7-3-2, pair each pair of chromosomes in the population according to k and k+1. If the random number is less than the crossover probability, select this pair of chromosomes for the crossover operation; Step 7-3-3, generate a random 0,1 sequence rand0_1 equal to the total number of processes; Step 7-3-4: For each workpiece, determine the gene position to be exchanged based on the value of the random sequence rand0_1, and exchange the corresponding machine code and time code in the offspring chromosomes child1 and child2; In step 7-3-5, the generated offspring chromosomes child1 and child2 are added to the new population.
7. The multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: The specific steps of step 8 are: Step 8-1, determine whether to perform mutation operation based on the mutation probability Pm, and obtain the total number of chromosomes total_op_num and the total population size (chroms, 1); Step 8-2, process code variation operation; includes the following steps: Step 8-2-1: For each chromosome in the population, if the random number is less than the mutation probability Pm, perform the process code mutation operation; Step 8-2-2, randomly select the positions of tau workpieces job_ind, and the value of tau is within the range of tau_min and tau_max; Step 8-2-3, for each selected tau position, generate the full permutation ind, and generate the neighborhood solution chrom_neigh based on these permutations, including exchanging process codes, updating the corresponding machine codes and time codes; Step 8-3, machine code mutation operation; includes the following steps: Step 8-3-1, for each chromosome in the population, if the random number is less than the mutation probability Pm, perform a machine code mutation operation; Step 8-3-2, randomly select a position ind and find the workpiece job and process op corresponding to the position; Step 8-3-3, obtain the machines and processing time times available for the corresponding process; Step 8-3-4, if there is more than one available machine, select a machine different from the current machine from machines_available and update the machine code and time code in the chromosome; In step 8-3-5, the mutated chromosome is added to the population chroms to ensure the diversity and exploration capability of the population.
8. The multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: The specific steps of step 9 are: Step 9-1, get the total number of chromosomes total_op_num and the total population size (chroms, 1); define two functions: check_machine_constraints and fix_chrom, used to check and repair chromosomes; Step 9-2, checking whether the individual satisfies the machine constraints, includes the following steps: Step 9-2-1, check each chromosome in the population to determine whether it violates the machine constraints; Step 9-2-2, calculate the total number of processes, each process includes process code, machine code and time code; Step 9-2-3, traverse all the processes in the chromosome, obtain the processing machine and workpiece number job corresponding to each process, as well as the number of processes before the current position num_ops_before, and determine the operation code operation_num; Step 9-2-4, obtain the valid_machines list of optional machines corresponding to the process, and check whether the currently selected machine is in the list of optional machines; if not, it means the constraint is violated and returns true; Step 9-3, repairing chromosomes that violate constraints, includes the following steps: Step 9-3-1, initialize the repaired chromosome chrom_fixed to the original chromosome; Step 9-3-2, traverse all processes in the chromosome, obtain the processing machine machine, workpiece number job and processing time time of the current process, as well as the number of processes before the current position num_ops_before, and determine the operation code operation_num; Step 9-3-3, obtain the optional machines valid_machines and corresponding processing time valid_times corresponding to the process, and check whether the machine and time selected by the current process are in the optional list; Step 9-3-4, if the currently selected machine and time are not in the valid list, sort the machines according to the processing time, select the machine new_machine with the shortest processing time and its processing time new_machine_time, and update the machine code and the corresponding time code in the repaired chromosome; Step 9-3-5, add the repaired chromosome to the population chroms to ensure the legitimacy of the population.
9. The multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: The specific steps of step 11 are: Step 11-1, merge the current population chroms and the newly generated offspring offspring to form a mixed population; at the same time, merge their corresponding objective function values Z1 and Z2; Step 11-2, perform non-dominated sorting on the mixed population to determine the frontier level to which each individual belongs; Step 11-3, pre-allocate memory to store the new population and its objective function value; initialize the counter num_chroms_selected to record the number of selected individuals, and set the front index front_idx to 1; In step 11-4, if the new population capacity is not full and there are still unprocessed frontier levels, each frontier level is processed in a loop; for individuals in the current frontier, if all of them can join the new population, they are directly added; otherwise, some individuals are selected to join the new population based on the crowding distance; Step 11-5 checks whether the number of rows in chroms_new satisfies the new population size sizepop; if so, updates the population; otherwise, issues a warning that the population size is insufficient.
10. The multi-modal multi-objective flexible job shop scheduling optimization method according to claim 1, characterized in that: In step 12, the multimodal de-archiving and updating mechanism is: Step 12-1, initial archiving: When the archive is empty, the non-dominated sorting genetic algorithm with multimodal solution archiving mechanism will directly add all individuals with the highest non-dominated level to build a preliminary understanding of the potential solution space of the problem; Step 12-2, archive update: After the archive is filled, the new candidate solutions are compared with the existing solutions in the archive based on the non-dominated ranking of the merged current archive and the new offspring, and only the individuals with the highest non-dominated level are retained; Step 12-3, Deduplication and Uniqueness: At each update, the algorithm eliminates duplicate solutions to ensure the uniqueness of individuals in the archive, thereby enhancing the diversity of the archive; Step 12-4, unlimited archive: To fully evaluate the potential multimodal nature of MOFJSP, the archive has no upper limit, allowing all non-dominated solutions to be retained.
Citation Information
Patent Citations
Multi-target flexible job shop scheduling method, electronic equipment and medium
CN117075545A
Large-scale dynamic double-effect scheduling method for flexible job shop based on genetic programming
US12099346B1