Multi-modal multi-target flexible job shop scheduling optimization method
Through the multimodal solution archive mechanism of the NSGA-MSPM algorithm, the problem of multimodal solution processing and screening in flexible work workshop scheduling is solved, and a more flexible and efficient production scheduling solution is achieved.
Patent Information
- Application Number
- CN202411662299.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-20
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2044-11-20
AI Technical Summary
When dealing with the scheduling problem of flexible work workshops, the prior art lacks an effective multimodal solution processing and screening mechanism, which makes it difficult to fully utilize the advantages of multimodal solutions and improve the flexibility and adaptability of the scheduling scheme.
A non-dominant sorting genetic algorithm (NSGA-MSPM) is proposed. This algorithm effectively explores and retains multimodal solutions through a multimodal solution archiving mechanism, and provides a variety of optimization solutions for decision makers to choose.
By effectively identifying and preserving high-quality multimodal solutions, NSGA-MSPM significantly improves the flexibility and adaptability of the scheduling scheme and provides a more efficient production scheduling scheme.
Smart Images

Figure CN119536159A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of workshop scheduling, and in particular relates to a multi-modal 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 multi-modal solution. Background Art
[0002] In the manufacturing industry, the Job Shop Scheduling Problem (JSP) is a classic combinatorial optimization problem that involves arranging a series of jobs in a workshop to achieve the desired goals such as improving production efficiency. With the demand for higher flexibility and efficiency in the manufacturing industry, the Flexible Job Shop Scheduling Problem (FJSP) came into being. The characteristic of FJSP is that each process of each workpiece can be processed on one or more different processing machines. This flexibility makes it more advantageous in dealing with complex production environments and changing production needs.
[0003] However, the flexibility of FJSP also makes the problem-solving process more complicated under the premise of multi-objective optimization, and multiple optimization objectives need to be considered simultaneously, such as minimizing the maximum completion time and balancing the machine load. In the prior art, multi-objective optimization methods for FJSP include particle swarm optimization, taboo search algorithm, and genetic algorithm. However, existing research faces the following problems when exploring the multimodal characteristics of the shop scheduling problem:
[0004] 1. There is a lack of optimization methods to deal with the multimodal characteristics of the workshop scheduling problem. Current optimization methods mainly focus on solving higher-quality Pareto solution sets; the multimodal characteristics of the workshop scheduling problem refer to the existence of multiple high-quality solutions with the same objective value in the solution space;
[0005] 2. There is a lack of effective mechanisms to save and analyze multimodal solutions, and it is impossible to fully utilize the advantages of multimodal solutions to improve the flexibility and adaptability of scheduling solutions;
[0006] 3. Lack of effective multimodal solution screening mechanism: There may be redundant solutions with very small differences in the multimodal solutions, and those solutions with the same target value but very different specific scheduling arrangements cannot be effectively screened out. 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 a more flexible and efficient production scheduling solution. This algorithm should be able to identify and save high-quality multimodal solutions and provide a variety of optimization solutions for decision makers to choose from, thereby improving the overall efficiency and flexibility of production scheduling. Summary of the invention
[0008] The present invention studies the multi-objective optimization in FJSP, models the basic problem of MOFJSP based on the classic shop scheduling test example, and proposes a non-dominated sorting genetic algorithm (NSGA-MSPM) with a multi-modal solution archiving mechanism to solve the problem. The algorithm can effectively explore and retain multi-modal solutions, providing decision makers with a more flexible and efficient production scheduling solution.
[0009] The technical solution adopted by the present invention is:
[0010] A multi-modal multi-objective flexible job shop scheduling optimization method comprises the following steps:
[0011] Step 1, construct a scheduling model including multi-objective optimization for FJSP;
[0012] Step 2, verification of the multimodal characteristics of FJSP: preliminary experiments are performed to verify the multimodal characteristics of FJSP, i.e., there are 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 of which represents a possible scheduling solution; the individuals are represented by real number coding, using process code, machine code and time code to represent the scheduling solution of the job; 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, select individuals for crossover and mutation operations based on their non-dominated ranking and crowding distance; give priority to individuals with high non-dominated ranking and large crowding distance 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 individuals, 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 the deviated individuals 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 level from the mixed population to form a new population to ensure the quality and diversity of the population;
[0022] Step 12, multimodal solution screening and archiving: Screen the multimodal solutions, remove redundant solutions with small differences, retain high-quality solutions with the same target value but large differences in 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 the 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 the iteration.
[0024] Further, the construction steps of 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; 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 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;
[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 process 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 before the lth process of workpiece k is processed on machine i, y ijhkl =1, otherwise 0; y ikl 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] Further, 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] Further, in step 3, the steps of initializing 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] Step 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] Further, in step 4, the steps of calculating the crowding distance between each individual are:
[0057] Step 4-1, input the index of the current individual and the corresponding two objective function value vectors, ensure that the objective function value vectors have the same length and 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 respectively to obtain sorted indexes;
[0060] Step 4-4, setting 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] Further, 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 according to 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 the information;
[0067] Step 6-3, tournament selection, includes the following steps:
[0068] Step 6-3-1, for each selected chromosome, conduct tournament_size random selections to ensure that different contestants are 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 the rankings of multiple participants are the same, give priority to the individual with a larger crowding distance; if the crowding distances of multiple participants are also the same, select an individual randomly;
[0071] Step 6-4, add the selected individuals to the new population chrom1, and repeat the above process until the new population is filled.
[0072] Further, 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; including 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 out 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 exchanged gene position according to 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] Step 7-3-5, add the generated offspring chromosomes child1 and child2 to the new population.
[0086] Further, in step 8, the specific steps of the mutation operation are:
[0087] Step 8-1, determine whether to perform mutation operation according to the mutation probability Pm, and obtain the total number of chromosomes total_op_num and the total number of populations size(chroms,1);
[0088] Step 8-2, process code variation operation; including 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, the process code mutation operation is performed;
[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; including 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 are more than one available machines, select a machine machines_available that is different from the current machine, and update the machine code and time code in the chromosome;
[0097] Step 8-3-5, add the mutated chromosome to the population chroms to ensure the diversity and exploration ability of the population.
[0098] Furthermore, in step 9, the specific steps for checking and eliminating the 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 number of populations size(chroms,1); define two functions: check_machine_constraints and fix_chrom, which are 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 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 the 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 its 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 the environment selection for the flexible workshop scheduling system are:
[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] Step 11-4: When the new population capacity is not full and there are still frontier levels that have not been processed, process each frontier level in a loop; for individuals in the current frontier, if all of them can join the new population, join them directly; otherwise, select some individuals to join the new population based on the crowding distance;
[0116] Step 11-5, check whether the number of rows of chroms_new satisfies the new population size sizepop; if it is sufficient, update the population; otherwise, issue a warning that the population size is insufficient.
[0117] Further, 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 establish 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 was not capped, allowing all nondominated solutions to be retained.
[0122] The beneficial effects of the present invention are:
[0123] 1. The present invention adopts NSGA-MSPM to verify the multimodal characteristics of FJSP and achieves remarkable results in multi-objective optimization.
[0124] 2. The present invention verifies the existence of multimodal characteristics in FJSP, that is, there are multiple solutions with the same objective value in the solution space; the existence of these multimodal solutions is confirmed through preliminary experiments, which provides a solid foundation for the search and retention process of the subsequent algorithm.
[0125] 3. The present invention provides a multimodal solution archiving mechanism that can effectively search and retain multimodal solutions with significant differences. By screening and archiving these solutions, the algorithm can not only find the global optimal solution, but also provide multiple local optimal solutions, which improves the flexibility and adaptability of the scheduling scheme.
[0126] 4. The present invention adopts a multi-objective optimization method, comprehensively considering the two optimization goals of minimizing the maximum completion time and the total machine load. Through non-dominated sorting and crowding distance calculation, the algorithm can effectively balance different goals and improve the overall efficiency and effect of the scheduling scheme. BRIEF DESCRIPTION OF THE DRAWINGS
[0127] Figure 1 It is the flow chart of NSGA-MSPM algorithm;
[0128] Figure 2 Schematic diagram of the individual coding method;
[0129] Figure 3 This is a schematic diagram of the cross operation of process codes;
[0130] Figure 4 This is a schematic diagram of machine code cross operation;
[0131] Figure 5 It is a schematic diagram of the process of 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 Gantt chart of multimodal scheduling scheme 3. DETAILED DESCRIPTION
[0136] The present invention will be further described below in conjunction with the accompanying drawings.
[0137] Flexible shop scheduling standard datasets are an important resource for research and development of scheduling algorithms in the manufacturing industry. These datasets usually contain information on a series of production tasks, covering all aspects from task allocation to resource allocation. In flexible shop scheduling datasets, job information, resource requirements, job priorities, job deadlines, production environment constraints, and historical data are usually included. These datasets are usually provided by academia, research institutions, or industry to promote the development and practical application of scheduling algorithms. Researchers can use these datasets to verify the performance of their scheduling algorithms and propose new optimization methods to meet different challenges and needs.
[0138] The data set used in the present invention is the Brandimarte benchmark test problem. The Brandimarte benchmark test problem includes the number of orders, the number of equipment, the average number of process equipment processing, and the machine serial number and corresponding processing time that can be used for each process of each workpiece. Table 1 is a Brandimarte benchmark test problem.
[0139] Table 1 Brandimarte series standard example Mk01
[0140]
[0141]
[0142] In the Brandimarte benchmark test problem, the first line includes three numbers. The first number refers to the number of workpieces in the current test set, the second number refers to the number of equipment available for use in the current test set, and the third number refers to the average number of available equipment per process in the current test set. For example, the three numbers 10, 6, and 2 in the first line of Mk01 respectively represent that the data set has a total of 10 workpieces, 6 available processing machines, and an average of 2 available equipment 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. The second row to the N+1th row represent the data of each workpiece in turn. Taking the Mk01 dataset as an example, the second row contains the data of the first workpiece, the third row contains the data of the second workpiece, and so on, the N+1th row contains the data of 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 contains 6 operations. The second number 2 indicates that the first operation of the workpiece has two machines available for processing. The subsequent set of numbers 1, 5, 3, 4 indicates that the operation can be processed on the machine with serial number 1, which takes 5 seconds, or it can be processed on the machine with serial number 3, which takes 4 seconds.
[0144] Step 1: Build a scheduling model including multi-objective optimization for FJSP. 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; 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 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;
[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 process 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 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 verify the multimodal nature of FJSP, i.e., the existence of multiple solutions with the same objective value in the solution space. This verification step ensures that strategies for effectively identifying and retaining multimodal solutions can be designed in a targeted manner during subsequent optimization.
[0173] The present invention sets a plurality of different evaluation times for each Brandimarte benchmark test problem, including 30000, 50000, 70000, 90000, 110000, 130000, 150000, 200000 and 250000 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 for 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, such as Figure 1 shown.
[0179] Step 3, initialize the population and archive.
[0180] The present invention adopts a random initialization method to generate an initial population, and each individual represents a possible scheduling solution. Figure 2 As shown, individuals are represented by real number coding, and the scheduling scheme of the job is represented by three parts: process code, machine code and time code. At the same time, the 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] Step 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 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. The detailed steps for calculating the crowding distance between individuals are described as follows:
[0188] Step 4-1, input the index of the current individual and the corresponding two objective function value vectors, ensure that the objective function value vectors have the same length and 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 respectively to obtain sorted indexes;
[0191] Step 4-4, setting 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] Step 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 running iteration number of NSGA-MSPM and is also the starting point of the main loop part of NSGA-MSPM.
[0196] Step 6. Select an action.
[0197] The present invention adopts the tournament selection method as the selection strategy in the initial stage. The tournament selection is a selection method used in evolutionary algorithms to deal with multi-objective optimization problems. The core idea of the algorithm is to select individuals with higher fitness from multiple candidate solutions by simulating the "tournament" process to form the next generation population.
[0198] The multi-objective tournament selection process for the flexible shop scheduling problem is to first randomly select a group of individuals for the "tournament". In each tournament, the fitness of the participating individuals is compared and the best individuals are selected to enter the next generation. For multi-objective problems, the victory criterion of the tournament can be based on the Pareto dominance relationship, that is, the individual who is not inferior to other individuals in multiple objectives wins. If all participating individuals do not dominate each other in certain objectives, the crowding distance can be used to determine the winner, and the individual with a larger crowding distance can be selected to maintain the diversity of the population. The specific steps are:
[0199] Step 6-1, determine the number of chromosomes size_chrom selected for crossover mutation according to 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 the information;
[0201] Step 6-3, tournament selection, includes the following steps:
[0202] Step 6-3-1, for each selected chromosome, conduct tournament_size random selections to ensure that different contestants are 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 the rankings of multiple participants are the same, give priority to the individual with a larger crowding distance; if the crowding distances of multiple participants are also the same, select an individual randomly;
[0205] Step 6-4, add the selected individuals to the new population chrom1, and repeat the above process until the new population is filled.
[0206] Step 7, crossover 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 the process code and the machine code, which can effectively maintain the diversity of process sequence and machine selection, and avoid premature convergence to the local optimal solution. The crossover of process codes ensures the rationality and variability of process arrangement, and improves the scope of exploration of the solution. The crossover of machine codes optimizes the machine allocation while ensuring that the process sequence remains unchanged, making the load more balanced and reducing the machine idle time and job waiting 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; including 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 out 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 exchanged gene position according to 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] Step 7-3-5, add the generated offspring chromosomes child1 and child2 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 at the same time. Figure 5 and Figure 6 shown.
[0224] The specific steps are:
[0225] Step 8-1, determine whether to perform a 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; including 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, the process code mutation operation is performed;
[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; including 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 are more than one available machines, select a machine machines_available that is different from the current machine, and update the machine code and time code in the chromosome;
[0235] Step 8-3-5, add the mutated chromosome to the population chroms to ensure the diversity and exploration ability 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 fail to meet the constraints of the problem, and 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, including the following steps:
[0238] Step 9-1, get the total number of chromosomes total_op_num and the total number of populations size(chroms,1); define two functions: check_machine_constraints and fix_chrom, which are 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 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 the 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 its 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, update the population, then screen the multimodal solutions and update the multimodal solution archive.
[0252] Environmental selection is the most important step in the evolutionary algorithm, which directly affects the convergence of the algorithm, the diversity of solutions, and the quality of the final scheduling solution. Environmental selection helps the algorithm converge toward the Pareto frontier. In each generation, by selecting those individuals that rank high in the non-dominated sorting and combining crowding distance selection, the population gradually approaches the Pareto optimal solution set. This gradual optimization process allows the algorithm to continuously improve in iterations and eventually converge to a better solution set.
[0253] The specific steps are:
[0254] 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.
[0255] Step 11-2, perform non-dominated sorting on the mixed population to determine the frontier level to which each individual belongs.
[0256] 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] Step 11-4: When the new population capacity is not full and there are still frontier levels that have not been processed, process each frontier level in a loop. For individuals in the current frontier, if all of them can join the new population, they join directly; otherwise, select some individuals to join the new population based on the crowding distance.
[0258] Step 11-5, check whether the number of rows in chroms_new satisfies the new population size sizepop. If it is sufficient, update the population; otherwise, issue a warning 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 archive 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: With 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 was not capped, allowing all nondominated 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 have different process arrangements. This means that although these schemes are similar in overall performance, their specific process arrangements may be different, such as the order of operations, the arrangement 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 contain multiple scheduling schemes. Figure 7a-7c As shown, there are three scheduling schemes with maximum completion time 43 and total workload 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 the present invention show that there is significant multimodality in FJSP. It is found that for the same optimization goal, multiple scheduling schemes with different specific arrangements can be found. The Gantt chart further demonstrates the multimodal nature of this problem. By randomly selecting and drawing the Gantt chart of the scheduling schemes, obvious differences in the order of operations and the arrangement of processing machines are highlighted. Although these schemes achieve the same target value, they show unique and diverse approaches in task organization and resource allocation.
[0267] The multi-modal multi-objective flexible workshop scheduling optimization method proposed in the present invention provides decision makers with a wider range of choices and flexibility. In a complex and changing production environment, the multi-modal characteristics enable the present invention to achieve a more efficient and adaptable solution. This is crucial for handling emergencies, optimizing resource allocation, and improving production efficiency.
Claims
1. A multi-modal multi-objective flexible job shop scheduling optimization method, characterized in that: The following steps are involved: Step 1, construct a scheduling model including multi-objective optimization for FJSP; Step 2, verification of the multimodal characteristics of FJSP: preliminary experiments are performed to verify the multimodal characteristics of FJSP, i.e., there are 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 of which represents a possible scheduling solution; the individuals are represented by real number coding, using process code, machine code and time code to represent the scheduling solution of the job; 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 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; Step 5, set the iteration counter to 1; Step 6, selection operation: using the tournament selection method, select individuals for crossover and mutation operations based on their non-dominated ranking and crowding distance; give priority to individuals with high non-dominated ranking and large crowding distance 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 individuals, 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 the deviated individuals 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 level from the mixed population to form a new population to ensure the quality and diversity of the population; Step 12, multimodal solution screening and archiving: Screen the multimodal solutions, remove redundant solutions with small differences, retain high-quality solutions with the same target value but large differences in 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 the 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.
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; 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 process 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 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; Step 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 index of the current individual and the corresponding two objective function value vectors, ensure that the objective function value vectors have the same length and 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 respectively to obtain sorted indexes; Step 4-4, setting 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 according to 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, conduct tournament_size random selections to ensure that different contestants are 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 the rankings of multiple participants are the same, give priority to the individual with a larger crowding distance; if the crowding distances of multiple participants are also the same, select an individual randomly; Step 6-4, add the selected individuals to the new population chrom1, and repeat the above process until the new population is filled.
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; including 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 out 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 exchanged gene position according to the value of the random sequence rand0_1, and exchange the corresponding machine code and time code in the offspring chromosomes child1 and child2; Step 7-3-5, add the generated offspring chromosomes child1 and child2 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 a 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; including the following steps: Step 8-2-1, for each chromosome in the population, if the random number is less than the mutation probability Pm, the process code mutation operation is performed; 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; including 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 are more than one available machines, select a machine machines_available that is different from the current machine, and update the machine code and time code in the chromosome; Step 8-3-5, add the mutated chromosome to the population chroms to ensure the diversity and exploration ability 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 number of populations size(chroms,1); define two functions: check_machine_constraints and fix_chrom, which are 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 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 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. 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 the 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 its 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; Step 11-4: When the new population capacity is not full and there are still frontier levels that have not been processed, process each frontier level in a loop; for individuals in the current frontier, if all of them can join the new population, join them directly; otherwise, select some individuals to join the new population based on the crowding distance; Step 11-5, check whether the number of rows of chroms_new satisfies the new population size sizepop; if it is sufficient, update the population; otherwise, issue 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 multi-modal de-archiving update 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 establish 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 was not capped, allowing all nondominated 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
Project scheduling method and apparatus for multi-language collaborative development
WO2021088436A1
Cited By
Color master batch processing energy consumption and efficiency collaborative optimization system based on production data
CN120317840A
Flexible workshop scheduling optimization method based on meta-heuristic algorithm
CN121684562A