A Flexible Job Shop Scheduling Optimization Method with Robot Constraints

Through the EA-DQN-CP algorithm, combined with the deep Q network and constraint planning model, the flexible work workshop scheduling is optimized, which solves the problems of solution space limitations and low search efficiency under robot constraints, and improves production efficiency and equipment utilization.

CN120010425BActive Publication Date: 2025-07-22LIAOCHENG UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510485593.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-04-17
Publication Date
2025-07-22
Estimated Expiration
2045-04-17

AI Technical Summary

Technical Problem

When the existing methods deal with the problem of flexible work workshop scheduling with robot constraints, the solution space is limited and the search efficiency is low, so the robot constraints cannot be effectively processed, resulting in the impact of production efficiency.

Method used

A hybrid algorithm, namely the deep Q network evolution algorithm (EA-DQN-CP) assisted by the constraint planning model, combines the deep Q network, evolution algorithm and constraint planning model, and optimizes the scheduling scheme to reduce the impact of robot loading and unloading time through population initialization, evolution, update and CP model optimization.

Benefits of technology

It effectively reduces the impact of robot loading and unloading time on production efficiency, improves equipment utilization, improves understanding quality and search efficiency, and can handle complex workshop scheduling issues more comprehensively.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120010425B_ABST
    Figure CN120010425B_ABST
Patent Text Reader

Abstract

The present invention relates to the technical field of flexible job shop scheduling in intelligent manufacturing, and specifically to an optimization method for flexible job shop scheduling with robot constraints. It includes: initializing parameters; initializing the population to generate an evolution-guided population and a knowledge-driven population; population evolution, using individual competition strategies, self-evolution, and co-evolution to evolve the evolution-guided population, and using individual pairing strategies and DQN evolution to evolve the knowledge-driven population; population update, using the combined population to update the evolution-guided population and the knowledge-driven population; CP-assisted optimization, satisfying the optimization conditions, constructing a CP model, taking the individual with the minimum makespan after population update as the initial solution in the CP model, and further optimizing using the global search ability of the CP model; termination condition check, satisfying which outputs the final solution. The present invention can effectively reduce the impact of robot loading and unloading time on production efficiency and improve equipment utilization rate.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of flexible job shop scheduling in intelligent manufacturing, and specifically to an optimization method for the flexible job shop scheduling problem with robot constraints. Background Art

[0002] With the rapid development of automation technology, fully automated workshops equipped with robots have become an important development trend in the manufacturing industry. The Flexible Job Shop Scheduling Problem (FJSP) is the core scheduling problem of intelligent production systems. The extended problem of flexible job shop scheduling with robot constraints (Flexible JobShop Scheduling Problem with Robot Constraints, FJSP-RC) not only needs to solve the process sequencing and machine selection problems, but also needs to consider the scheduling of the loading and unloading tasks of robots. In existing methods, although the Mixed Integer Linear Programming (MILP) model and the Constraint Programming (CP) model can solve small-scale instances, they are inefficient for large-scale problems. Although the traditional Evolutionary Algorithm (EA) has high solution efficiency, it lacks the effective utilization of historical search information. In the field of intelligent scheduling, reinforcement learning based on Q-learning is a specific implementation of Reinforcement Learning (RL). Q-learning is a model-free reinforcement learning algorithm. It evaluates the long-term cumulative reward of taking a specific action in a certain state through the Q value (action value function). The agent selects the optimal action based on the Q value. The agent is the main body that executes decision-making tasks to achieve the goal of maximizing the cumulative reward. However, the reinforcement learning based on Q-learning (Q-learning) has limited state extraction ability in complex workshop environments. Compared with the reinforcement learning based on Q-learning, the deep reinforcement learning algorithm has obvious advantages. The Deep Q-Network (DQN) is an algorithm of deep reinforcement learning. DQN combines the powerful feature extraction ability of deep learning and the decision optimization mechanism of reinforcement learning, effectively solving the challenges brought by the high-dimensional state space, enabling the agent to more accurately understand the environmental state and thus make better decisions. This advantage has gradually made the DQN deep reinforcement learning algorithm applied in the field of workshop scheduling. In addition, existing methods do not fully combine the global search ability of CP and the swarm optimization advantages of EA, resulting in insufficient solution quality and efficiency. Therefore, there is an urgent need for a hybrid algorithm that can integrate CP, EA, and DQN to efficiently solve the flexible job shop scheduling problem with robot constraints. Summary of the Invention

[0003] The object of the present invention is to propose a flexible job shop scheduling optimization method with robot constraints, which solves the problems in existing shop scheduling that robot constraints cannot be effectively processed, the solution space is limited, and the search efficiency is low, so as to achieve the purpose of effectively reducing the impact of robot loading and unloading time on production efficiency and improving equipment utilization rate by optimizing the scheduling plan.

[0004] A flexible job shop scheduling optimization method with robot constraints provided by the present invention is characterized by including the following steps.

[0005] Step 1, initialize parameters, and set the scale N of the evolutionary guiding population p1 , the scale N of the knowledge-driven population p2 and the total running time t.

[0006] Step 2, population initialization, randomly generate an initial population, including an evolutionary guiding population and a knowledge-driven population.

[0007] Step 3, population evolution, use the individual competition strategy, self-evolution and co-evolution to evolve the evolutionary guiding population, and use the individual pairing strategy and DQN evolution to evolve the knowledge-driven population.

[0008] Step 4, population update, combine the evolved evolutionary guiding population and knowledge-driven population into a population, and use the combined population to update the evolutionary guiding population and the knowledge-driven population.

[0009] Step 5, CP-assisted optimization, if the optimization condition is met, construct a CP model, use the individual with the minimum makespan after population update as the initial solution in the CP model, and further optimize it using the global search ability of the CP model. If the optimization condition is not met, return to Step 3, where the optimization condition is that the running time after population update is equal to half of the total running time t.

[0010] Step 6, termination condition check, if the termination condition is met, output the final solution, where the termination condition is that the running time after CP-assisted optimization is equal to the total running time t.

[0011] Further, in Step 2, the implementation process of population initialization is to initialize individuals in a loop. For the evolutionary guiding population, iterate from 0 to N p1 by loop, and for the knowledge-driven population, iterate from 0 to N p2Iterate, creating an individual in each iteration; an individual consists of two vectors, namely the operation sequencing vector and the machine selection vector; initialize the operation sequencing vector, the length of the operation sequencing vector is the total number of operations, the operations in the operation sequencing vector are randomly generated within the range of [0, n - 1], where n is the total number of workpieces, and the number of times each workpiece appears in the operation sequencing vector is the same as the number of operations contained in the workpiece; initialize the machine selection vector, the length of the machine selection vector is the total number of operations, the machines in the machine selection vector are randomly generated within the range of [0, M - 1], where M is the total number of machines. If the processing time of the operation on the selected machine is 0, the machines in the machine selection vector are randomly generated again within the range of [0, M - 1] until the processing time of the operation on the selected machine is not 0; after completing the individual initialization, the N p1 number of individuals generated are added to the evolution-guided population, and the N p2 number of individuals generated are added to the knowledge-driven population.

[0012] Furthermore, in step 3, the individual competition strategy is as follows: classify the individuals in the evolution-guided population according to the makespan, divide the evolution-guided population into a winner population and a loser population, and the sizes of the winner population and the loser population are N p1 / 2. Sort the individuals in the evolution-guided population in ascending order of the makespan. The first N p1 / 2 individuals are assigned to the winner population, and the last N p1 / 2 individuals are assigned to the loser population; each individual in the winner population randomly uses one of the swap operator, inversion operator, and reassignment operator for self-evolution. Among them, the swap operator and the inversion operator are applied to the operation sequencing vector, and the reassignment operator is applied to the machine selection vector; the winner population and the loser population co-evolve by using the crossover operator. The crossover operator includes the precedence operation crossover operator and the uniform crossover operator. Randomly select one individual from the winner population and the loser population respectively. The operation sequencing vectors of the two selected individuals use the precedence operation crossover operator, and the machine selection vectors use the uniform crossover operator. Each operation sequencing vector and machine selection vector of each individual perform one crossover operation until all individuals complete the crossover process.

[0013] Furthermore, the operation steps of the swap operator, inversion operator, reassignment operator, precedence operation crossover operator, and uniform crossover operator are as follows:

[0014] The operation process of the swap operator is to randomly select two different positions rand1 and rand2 from the operation sequencing vector of the individual, and swap the operations at the selected positions rand1 and rand2;

[0015] The operation process of the inversion operator is as follows: randomly select two different positions rand1 and rand2 from the operation sequence vector of an individual. The position rand1 is at least 3 operation intervals before the position rand2. Invert the operation sequence between the positions rand1 and rand2 in the operation sequence vector, find the midpoint position (rand1 + rand2) / 2 of the inversion interval, and successively exchange the operations symmetric with respect to the midpoint position of the inversion interval;

[0016] The operation process of the reallocation operator is as follows: randomly select a position in the machine selection vector, and randomly select a machine from the set of selectable machines corresponding to the operation at the selected position to replace the original machine;

[0017] The operation process of the priority operation crossover operator is as follows: obtain the operation sequence vectors of individuals pop1 and pop2, where the operation sequence vector is represented as an operation sequence. Randomly generate a number num between [1, n - 1], where n represents the total number of workpieces. Generate a workpiece set I0 of size num, and randomly select num different workpieces from all workpieces to fill the workpiece set I0. Traverse each position in the operation sequences of pop1 and pop2. If operations belonging to the workpiece set I0 are found, then successively exchange the corresponding operations in pop1 and pop2;

[0018] The operation process of the uniform crossover operator is as follows: obtain the machine selection vectors of individuals pop1 and pop2, where the machine selection vector is represented as a machine sequence. Generate a number set B of size N, where N represents the total number of operations. Randomly fill 0 or 1 at each position in the number set B. 0 and 1 are flags used to determine whether the machines at the corresponding positions in the machine sequences of pop1 and pop2 are exchanged, where 0 represents exchange and 1 represents non - exchange. Perform N iterations. Traverse each position in the machine sequences of pop1 and pop2 in order from the first position to the last position, and synchronously traverse the numbers at the corresponding positions in the number set B. If the number at the current position in the number set B is 0, then exchange the machines at the current traversed positions in the machine sequences of pop1 and pop2.

[0019] Further, in step 3, the individual pairing strategy is to generate all pairs of individuals that pair with each other from the knowledge-driven population. The pairs of individuals that pair with each other consist of two different individuals. All pairs of individuals are combined together to form a paired population. Apply DQN evolution to the paired population. DQN selects a search operator that minimizes the makespan based on the combination information of the process sequence vector and the machine selection vector of the individuals in the current paired population. The search operators include swap operator, inversion operator, reassignment operator, job-based crossover operator, two-point crossover operator, and multi-point crossover operator. Among them, the swap operator, inversion operator, and job-based crossover operator are applied to the process sequence vector, and the reassignment operator, two-point crossover operator, and multi-point crossover operator are applied to the machine selection vector.

[0020] Further, the operation steps of the job-based crossover operator, two-point crossover operator, and multi-point crossover operator are as follows.

[0021] The operation process of the job-based crossover operator is to obtain the process sequence vectors of individual pop1 and individual pop2, where the process sequence vector is represented as a process sequence. Initialize list C1 and list C2. List C1 is used to store the process sequence of pop1 after crossover, and list C2 is used to store the process sequence of pop2 after crossover. Randomly divide all workpieces into two different sets, denoted as workpiece set I1 and workpiece set I2. Traverse each position of the process sequences of pop1 and pop2. If the current process of pop1 belongs to I1, copy this process to the corresponding position in list C1. If the current process of pop2 belongs to I2, copy this process to the corresponding position in list C2. For the processes in pop2 that do not belong to I1, copy them to the unoccupied positions in list C1 in the order in pop2. For the processes in pop1 that do not belong to I2, copy them to the unoccupied positions in list C2 in the order in pop1. Assign the process sequence obtained after crossover in list C1 to pop1, and assign the process sequence obtained after crossover in list C2 to pop2;

[0022] The operation process of the two-point crossover operator is as follows: obtain the machine selection vectors of individual pop1 and individual pop2, where the machine selection vector is represented as a machine sequence, initialize list C1 and list C2. C1 is used to store the machine sequence of pop1 after crossover, and C2 is used to store the machine sequence of pop2 after crossover. Randomly generate positions rand1 and rand2 on the machine sequence, where position rand1 is at least 1 machine interval before position rand2. Copy the machines in the machine sequence interval [rand1, rand2] of pop1 to the corresponding positions in list C1, and copy the machines in the machine sequence interval [rand1, rand2] of pop2 to the corresponding positions in list C2. Copy the machines in the machine sequence intervals [0, rand1] and [rand2, N - 1] of pop1 to the corresponding positions in list C2, and copy the machines in the machine sequence intervals [0, rand1] and [rand2, N - 1] of pop2 to the corresponding positions in list C1. N represents the total number of processes. Assign the machine sequence obtained after crossover in list C1 to pop1, and assign the machine sequence obtained after crossover in list C2 to pop2;

[0023] The operation process of the multi-point crossover operator is as follows: obtain the machine selection vectors of individual pop1 and individual pop2, where the machine selection vector is represented as a machine sequence. Randomly generate a number num between [0, N - 1], where N represents the total number of processes. Perform num machine exchanges between pop1 and pop2. Each time, randomly select a position of a machine and exchange the machines at the selected positions in the machine sequences of pop1 and pop2.

[0024] Further, in step 4, the specific process of population update is as follows: combine the evolved evolution-guided population and knowledge-driven population into one population, and sort the individuals in the combined population in ascending order according to the makespan; clear all individuals in the evolution-guided population and knowledge-driven population; add the first N p1 individuals in the combined population to the evolution-guided population in sequence, and add the first N p2 individuals in the combined population to the knowledge-driven population in sequence.

[0025] Further, in step 5, the CP model includes the following constraint sets,

[0026]

[0027] Among them, the variables of the CP model include: i represents the workpiece index; I represents the set of all workpieces; n i represents the number of processes of workpiece i; j represents the process index; J iDenote the set of operations of workpiece \(i\); \(l\) represents the index of loading or unloading tasks; \(L\) represents the set of loading and unloading tasks; \(k\) represents the machine index; \(K\) represents the set of all machines; \(r\) represents the robot index; \(R\) represents the set of all robots; \(n\) represents the total number of workpieces; \(N\) represents the total number of operations; \(O\) i,j Denote the \(j\)-th operation of workpiece \(i\); \(K\) i,j Denote the set of machines that can process operation \(O\) i,j ; \(C'\) max Is a continuous decision variable for the makespan, For the \(n\)-th operation of workpiece \(i\) i Interval variable for the unloading task; \(Ops\) i,j Interval variable for operation \(O\) i,j ; \(mod\) i,j,k Interval variable for operation \(O\) i,j Optional interval variable for processing on machine \(k\); \(Lu\) i,j,l Interval variable for the loading or unloading task of operation \(O\) i,j When \(l = 1\), it represents the loading task, and when \(l = 2\), it represents the unloading task; \(LuT\) i,j,l,k Interval variable for the loading or unloading task of operation \(O\) i,j Optional interval variable for processing on machine \(k\); \(Lu\) i,j,2 Interval variable for the unloading task of operation \(O\) i,j ; \(Lu\) i,j+1,1 Interval variable for the loading task of operation \(O\) i,j+1 ; \(modLU\) i,j,k Integrates the interval variable for the loading or unloading task of operation \(O\) i,j And the optional interval variable for processing on machine \(k\); \(mchs\) k Is a machine sequence decision variable, including the assigned optional interval variable \(modLU\) i,j,k ; \(robots\) r Is a robot sequence decision variable, including the assigned optional interval variable \(LuT\) i,j,l,k ; \(mchs'\) k Is a machine sequence decision variable, including the assigned optional interval variables \(modLU\) i,j,k And \(LuT\) i,j,l,k ; \(Lu\) i,j,1 Interval variable for the loading task of operation \(O\) i,j ; \(Lu\) i,j,2 Interval variable for the unloading task of operation \(O\) i,j ;

[0028] Constraint set (1) indicates that the goal is to minimize the makespan \(C'\) max ; The function Returns the end time of the interval variable ;

[0029] The constraint set (2) represents the operation O i,j can only be processed on one eligible machine k ∈ K i,j . The function alternative(Ops i,j , mod i,j,k ) indicates that only one alternative interval variable mod i,j can be selected from each interval variable Ops i,j,k ;

[0030] The constraint set (3) represents the loading or unloading task l of the operation O i,j can only be processed on one eligible machine k ∈ K i,j . The function alternative(Lu i,j,l , LuT i,j,l,k ) indicates that only one alternative interval variable LuT i,j,l can be selected from each interval variable Lu i,j,l,k ;

[0031] The constraint set (4) represents that for each operation of the workpiece i, the loading task of the operation O i,j+1 can only start after the unloading task of the previous operation O i,j of the operation O i,j+1 is completed. The function endBeforeStart(Lu i,j,2 , Lu i,j+1,1 ) indicates that the loading task interval variable Lu i,j+1,1 can only start after the unloading task interval variable Lu i,j,2 is completed;

[0032] The constraint set (5) represents forming an alternative interval variable modLU i,j,l,k from the two alternative interval variables LuT i,j,k and mod i,j,k in chronological order. The function span(modLU i,j,k , append(LuT i,j,l,k , mod i,j,k )) indicates that the alternative interval variable modLU i,j,k involves all current intervals in the set {LuT i,j,l,k , mod i,j,k}. The start time of modLU i,j,k is the minimum start time of the alternative interval variables in the set {LuT i,j,l,k , mod i,j,k}, and the end time of modLU i,j,k is the maximum end time of the alternative interval variables in the set {LuT i,j,1,k , mod i,j,k};

[0033] The constraint set (6) indicates that an operation can only be processed on one machine. The function presenceOf(modLU i,j,k ) represents the number of alternative interval variables modLU i,j in which the operation O i,j,k exists;

[0034] The constraint set (7) indicates that at the same time, machine k can only process one operation. The function noOverlap(mchs k ) represents that all existing alternative interval variables modLU i,j,k do not overlap;

[0035] The constraint set (8) indicates that at the same time, robot r can only perform one loading or unloading task. The function noOverlap(robots r ) represents that all existing alternative interval variables LuT i,j,l,k do not overlap;

[0036] The constraint set (9) indicates that the operations processed on machine k must be in sequence. The function noOverlap(mchs' k ) represents that all existing alternative interval variables mod i,j,k and LuT i,j,l,k do not overlap with each other;

[0037] The constraint set (10) indicates that for each operation of workpiece i, the start time of processing operation O i,j cannot be before the end time of the loading task of operation O i,j . The function endBeforeStart(Lu i,j,1 ,Ops i,j ) represents that the start time of the interval variable Ops i,j is not earlier than the end time of the interval variable Lu i,j,1 ;

[0038] The constraint set (11) indicates that for each operation of workpiece i, the start time of the unloading task of operation O i,j cannot be before the end time of the processing of operation O i,j . The function endBeforeStart(Ops i,j ,Lu i,j,2 ) represents that the start time of the interval variable Lu i,j,2 is not less than the end time of the interval variable Ops i,j .

[0039] A flexible job shop scheduling optimization method with robot constraints provided by the present invention aims to minimize the makespan. Compared with the prior art, it has the following positive effects.

[0040] (1) The present invention proposes a novel hybrid algorithm, namely an evolutionary algorithm assisted by a constraint programming model considering a deep Q-network (EA-DQN-CP), which combines the evolutionary algorithm assisted by a deep Q-network (EA-DQN) and a constraint programming (CP) model. First, EA-DQN is used to efficiently obtain high-quality solutions, and then the CP model is used to further optimize and expand the solution space to improve the quality of the solutions, so as to obtain solutions with a smaller makespan; among them, after the population is updated, it is used as the result of EA-DQN, and after CP-assisted optimization, it is used as the result of EA-DQN-CP;

[0041] (2) In the present invention, an evolution-guided population and a knowledge-driven population are respectively constructed. The evolution-guided population realizes the overall optimization of the population through individual competition, self-evolution and co-evolution; the knowledge-driven population reduces the risk of falling into local optima through individual pairing and DQN evolution; at the same time, six search operators are designed, and their advantages are comprehensively utilized to minimize the makespan of the obtained solutions;

[0042] (3) The present invention adopts a CP model applicable to the flexible job-shop scheduling problem with robot constraints. Compared with the MILP model, the CP model can explore the solution space more comprehensively, consider various constraint conditions in the problem more comprehensively, and handle the complex relationships of job-shop scheduling more effectively;

[0043] In summary, the present invention effectively solves the flexible job-shop scheduling problem with robot constraints. By designing the EA-DQN-CP algorithm, that is, an evolutionary algorithm assisted by a constraint programming model considering a deep Q-network, the operation sequence of workpieces, machine selection and the loading and unloading task sequence of robots are reasonably arranged, which has the positive effect of improving the utilization rate of machines and thus enhancing the resource utilization efficiency of the entire workshop production. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] Figure 1 is the implementation flowchart of the present invention;

[0045] Figure 2 is an example diagram of the operation sequence vector and machine selection vector of an individual of the present invention;

[0046] Figure 3 is the evolution process diagram of the evolution-guided population of the present invention;

[0047] Figure 4 is the evolution process diagram of the knowledge-driven population of the present invention;

[0048] Figure 5 is the connection mechanism diagram of the CP model and EA-DQN of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0049] As Figure 1 shown, the optimization method for flexible job shop scheduling with robot constraint provided by the present invention is mainly realized through the following process.

[0050] Step 1: Initialize parameters, set the size N of the evolutionary guiding population p1 , the size N of the knowledge-driven population p2 and the total running time t.

[0051] Step 2: Initialize the population, randomly generate the initial population, including the evolutionary guiding population and the knowledge-driven population. Specifically, the implementation process of population initialization is to initialize individuals in a loop. For the evolutionary guiding population, iterate from 0 to N p1 , and for the knowledge-driven population, iterate from 0 to N p2 . Create an individual in each iteration; an individual consists of two vectors, namely the operation sequencing vector and the machine selection vector. An example diagram of the operation sequencing vector and the machine selection vector of an individual is as Figure 2 shown, O i,j represents the jth operation of workpiece i. The digital sequence on the operation sequencing vector represents the processing order of the operations. For example, the first number 1 represents the first operation O 1,1 of workpiece 1, the second number 2 represents the first operation O 2,1 of workpiece 2, the third number 3 represents the first operation O 3,1 of workpiece 3, the fourth number 1 represents the second operation O 1,2 of workpiece 1. The number on the machine selection vector represents the machine selected for each operation to perform processing. For example, the first number 2 represents that the first operation O 1,1 of workpiece 1 is processed on machine 2, the second number 4 represents that the second operation O 1,2 of workpiece 1 is processed on machine 4, the third number 3 represents that the first operation O 2,1 of workpiece 2 is processed on machine 3, and the fourth number 3 represents that the second operation O 2,2 of workpiece 2 is processed on machine 3. Initialize the operation sequencing vector. The length of the operation sequencing vector is the total number of operations. The operations in the operation sequencing vector are randomly generated within the range of [0, n - 1], where n is the total number of workpieces, and the number of times each workpiece appears in the operation sequencing vector is the same as the number of operations contained in the workpiece; Initialize the machine selection vector. The length of the machine selection vector is the total number of operations. The machines in the machine selection vector are randomly generated within the range of [0, M - 1], where M is the total number of machines. If the processing time of the operation on the selected machine is 0, then the machine in the machine selection vector is randomly generated within the range of [0, M - 1] again until the processing time of the operation on the selected machine is not 0; After completing the individual initialization, the generated N p1The individuals of the quantity are added to the evolution-guided population, and the generated N p2 quantity of individuals are added to the knowledge-driven population.

[0052] Step 3, population evolution. The evolution-guided population is evolved using the individual competition strategy, self-evolution, and co-evolution, and the knowledge-driven population is evolved using the individual pairing strategy and DQN evolution. Specifically, the individual competition strategy is to classify the individuals in the evolution-guided population according to the makespan, divide the evolution-guided population into a winner population and a loser population, and the sizes of the winner population and the loser population are N p1 / 2. Sort the individuals in the evolution-guided population in ascending order of the makespan, and assign the first N p1 / 2 individuals to the winner population, and the last N p1 / 2 individuals to the loser population; each individual in the winner population randomly uses one of the swap operator, inversion operator, and reassignment operator for self-evolution. Among them, the swap operator and the inversion operator are applied to the operation sequence vector, and the reassignment operator is applied to the machine selection vector; the winner population and the loser population co-evolve by using the crossover operator. The crossover operator is the operation method for the winner population and the loser population to co-evolve. The crossover operator includes the priority operation crossover operator and the uniform crossover operator. Randomly select one individual from the winner population and the loser population respectively. The operation sequence vectors of the two selected individuals use the priority operation crossover operator, and the machine selection vectors use the uniform crossover operator. Each individual's operation sequence vector and machine selection vector each perform one crossover operation until all individuals complete the crossover process. The evolution process diagram of the evolution-guided population is as Figure 3 shown. Specifically, the operation steps of the swap operator, inversion operator, reassignment operator, priority operation crossover operator, and uniform crossover operator are as follows:

[0053] The operation process of the swap operator is to randomly select two different positions rand1 and rand2 from the operation sequence vector of the individual, and swap the operations at the selected positions rand1 and rand2;

[0054] The operation process of the inversion operator is to randomly select two different positions rand1 and rand2 from the operation sequence vector of the individual, where rand1 is at least 3 operation intervals before rand2, reverse the operation sequence between positions rand1 and rand2 in the operation sequence vector, find the midpoint position (rand1 + rand2) / 2 of the inversion interval, and successively swap the operations symmetric to the midpoint position of the inversion interval;

[0055] The operation process of the reallocation operator is to randomly select a position in the machine selection vector, and then randomly select a machine from the set of selectable machines corresponding to the process at the selected position to replace the original machine;

[0056] The operation process of the priority process crossover operator is to obtain the process sorting vectors of individual pop1 and individual pop2, where the process sorting vector is represented as a process sequence. Randomly generate a number num between [1, n - 1], where n represents the total number of workpieces. Generate a workpiece set I0 of size num, and randomly select num different workpieces from all workpieces to fill into the workpiece set I0. Traverse each position of the process sequences of pop1 and pop2. If processes belonging to the workpiece set I0 are found, then exchange the corresponding processes in pop1 and pop2 in turn;

[0057] The operation process of the uniform crossover operator is to obtain the machine selection vectors of individual pop1 and individual pop2, where the machine selection vector is represented as a machine sequence. Generate a number set B of size N, where N represents the total number of processes. Randomly fill 0 or 1 at each position in the number set B. 0 and 1 are flags used to determine whether the machines at the corresponding positions in the machine sequences of pop1 and pop2 are exchanged, where 0 represents exchange and 1 represents non - exchange. Perform N iterations. Traverse each position of the machine sequences of pop1 and pop2 in order from the first position to the last position, and synchronously traverse the numbers at the corresponding positions in the number set B. If the number at the current position in the number set B is 0, then exchange the machines at the current traversed position in the machine sequences of pop1 and pop2;

[0058] The individual pairing strategy is to generate all pairs of paired individuals from the knowledge - driven population. A pair of paired individuals consists of two different individuals. Combine all pairs of individuals to form a paired population. Apply DQN evolution to the paired population. DQN selects a search operator that minimizes the makespan based on the combined information of the process sorting vector and the machine selection vector of the pairs of individuals in the current paired population. The search operator is the operation method of DQN evolution. The search operators include the swap operator, the reverse operator, the reallocation operator, the job - based crossover operator, the two - point crossover operator, and the multi - point crossover operator. Among them, the swap operator, the reverse operator, and the job - based crossover operator are applied to the process sorting vector, and the reallocation operator, the two - point crossover operator, and the multi - point crossover operator are applied to the machine selection vector. The evolutionary process diagram of the knowledge - driven population is as Figure 4 shown. Specifically, the operation steps of the job - based crossover operator, the two - point crossover operator, and the multi - point crossover operator are as follows:

[0059] The operation process of the job-based crossover operator is as follows: obtain the operation sequence vectors of individuals pop1 and pop2, where the operation sequence vector is represented as an operation sequence. Initialize list C1 and list C2. List C1 is used to store the operation sequence of pop1 after crossover, and list C2 is used to store the operation sequence of pop2 after crossover. Randomly divide all workpieces into two different sets, denoted as workpiece set I1 and workpiece set I2. Traverse each position of the operation sequences of pop1 and pop2. If the current operation of pop1 belongs to I1, copy this operation to the corresponding position in list C1. If the current operation of pop2 belongs to I2, copy this operation to the corresponding position in list C2. For the operations in pop2 that do not belong to I1, copy them in the order in pop2 to the unoccupied positions in list C1 in turn. For the operations in pop1 that do not belong to I2, copy them in the order in pop1 to the unoccupied positions in list C2 in turn. Assign the operation sequence obtained after crossover in list C1 to pop1, and assign the operation sequence obtained after crossover in list C2 to pop2;

[0060] The operation process of the two-point crossover operator is as follows: obtain the machine selection vectors of individuals pop1 and pop2, where the machine selection vector is represented as a machine sequence. Initialize list C1 and list C2. C1 is used to store the machine sequence of pop1 after crossover, and C2 is used to store the machine sequence of pop2 after crossover. Randomly generate positions rand1 and rand2 on the machine sequence, where position rand1 is at least 1 machine interval ahead of position rand2. Copy the machines in the machine sequence interval [rand1, rand2] of pop1 to the corresponding positions in list C1, and copy the machines in the machine sequence interval [rand1, rand2] of pop2 to the corresponding positions in list C2. Copy the machines in the machine sequence intervals [0, rand1] and [rand2, N - 1] of pop1 to the corresponding positions in list C2, and copy the machines in the machine sequence intervals [0, rand1] and [rand2, N - 1] of pop2 to the corresponding positions in list C1. N represents the total number of operations. Assign the machine sequence obtained after crossover in list C1 to pop1, and assign the machine sequence obtained after crossover in list C2 to pop2;

[0061] The operation process of the multi-point crossover operator is as follows: obtain the machine selection vectors of individuals pop1 and pop2, where the machine selection vector is represented as a machine sequence. Randomly generate a number num between [0, N - 1], where N represents the total number of operations. Perform num machine exchanges between pop1 and pop2. Each time, randomly select a position of a machine and exchange the machines at the selected positions in the machine sequences of pop1 and pop2.

[0062] Step 4, population update. Combine the evolved evolution-guided population and knowledge-driven population into one population, use the combined population to update the evolution-guided population and knowledge-driven population, and take the updated population as the result after EA-DQN. Specifically, combine the evolved evolution-guided population and knowledge-driven population into one population, sort the individuals in the combined population in ascending order of the makespan; clear all individuals in the evolution-guided population and knowledge-driven population; add the first N p1 individuals in the combined population to the evolution-guided population in sequence, and add the first N p2 individuals in the combined population to the knowledge-driven population in sequence.

[0063] Step 5, CP-assisted optimization. If the optimization condition is met, construct a CP model, use the individual with the minimum makespan after population update as the initial solution in the CP model, and further optimize it using the global search ability of the CP model. Take the result after CP-assisted optimization as the result of EA-DQN-CP. If the optimization condition is not met, return to Step 3. The connection mechanism diagram of the CP model and EA-DQN is as Figure 5 shown. Among them, the optimization condition is that the running time after population update is equal to half of the total running time t. The CP model includes the following constraint sets,

[0064]

[0065] Among them, the variables of the CP model include: i represents the workpiece index; I represents the set of all workpieces; n i represents the number of operations of workpiece i; j represents the operation index; J i represents the operation set of workpiece i; l represents the index of the loading or unloading task; L represents the set of loading and unloading tasks; k represents the machine index; K represents the set of all machines; r represents the robot index; R represents the set of all robots; n represents the total number of workpieces; N represents the total number of operations; O i,j represents the j-th operation of workpiece i; K i,j represents the set of machines that can process operation O i,j ; C' max is the continuous decision variable of the makespan, is the interval variable of the unloading task of the n i -th operation of workpiece i; Ops i,j is the interval variable of operation O i,j ; mod i,j,k is the optional interval variable for operation O i,j to be processed on machine k; Lu i,j,l is the interval variable of operation O i,jInterval variable for loading or unloading tasks. When l = 1, it represents a loading task; when l = 2, it represents an unloading task, LuT i,j,l,k is for operation O i,j Optional interval variable for loading or unloading tasks processed on machine k; Lu i,j,2 is for operation O i,j Interval variable for the unloading task of operation O, Lu i,j+1,1 is for operation O i,j+1 Interval variable for the loading task of operation O; modLU i,j,k is the integrated interval variable for loading or unloading tasks of operation O i,j and the optional interval variable processed on machine k; mchs k is the machine sequence decision variable, including the allocated optional interval variable modLU i,j,k ; robots r is the robot sequence decision variable, including the allocated optional interval variable LuT i,j,l,k ; mchs' k is the machine sequence decision variable, including the allocated optional interval variable modLU i,j,k and LuT i,j,l,k ; Lu i,j,1 is for operation O i,j Interval variable for the loading task of operation O; Lu i,j,2 is for operation O i,j Interval variable for the unloading task of operation O;

[0066] Constraint set (1) indicates that the goal is to minimize the makespan C' max , and the function returns the end time of the interval variable ;

[0067] Constraint set (2) indicates that operation O i,j can only be processed on one eligible machine k ∈ K i,j , and the function alternative(Ops i,j , mod i,j,k ) indicates that only one optional interval variable mod i,j can be selected in each interval variable Ops i,j,k ;

[0068] Constraint set (3) indicates that the loading or unloading task l of operation O i,j can only be processed on one eligible machine k ∈ K i,j , and the function alternative(Lu i,j,l , LuT i,j,l,k ) indicates that only one optional interval variable LuT i,j,l can be selected in each interval variable Lu i,j,l,k;

[0069] The constraint set (4) indicates that for each operation of workpiece i, only after the unloading task of the previous operation O i,j+1 is completed, can the loading task of operation O i,j start. The function endBeforeStart(Lu i,j+1 , Lu i,j,2 ) indicates that the loading task interval variable Lu i,j+1,1 can only start after the unloading task interval variable Lu i,j+1,1 is completed; i,j,2

[0070] The constraint set (5) indicates that two optional interval variables, LuT i,j,l,k and mod i,j,k , form an optional interval variable modLU i,j,k in chronological order. The function span(modLU i,j,k , append(LuT i,j,l,k , mod i,j,k )) indicates that the optional interval variable modLU i,j,k covers all current intervals in the set {LuT i,j,l,k , mod i,j,k}. The start time of modLU i,j,k is the minimum start time of the optional interval variables in the set {LuT i,j,l,k , mod i,j,k}, and the end time of modLU i,j,k is the maximum end time of the optional interval variables in the set {LuT i,j,1,k , mod i,j,k};

[0071] The constraint set (6) indicates that an operation can only be processed on one machine. The function presenceOf(modLU i,j,k ) indicates the number of optional interval variables modLU i,j in which operation O i,j,k exists;

[0072] The constraint set (7) indicates that machine k can only process one operation at a time. The function noOverlap(mchs k ) indicates that all existing optional interval variables modLU i,j,k do not overlap;

[0073] The constraint set (8) indicates that robot r can only perform one loading or unloading task at a time. The function noOverlap(robots r ) indicates that all existing optional interval variables LuT i,j,l,k do not overlap.​

[0074] The constraint set (9) indicates that the operations processed on machine k must be carried out in sequence. The function noOverlap(mchs' k ) indicates that all existing alternative interval variables mod i,j,k and LuT i,j,l,k do not overlap with each other;

[0075] The constraint set (10) indicates that for each operation of workpiece i, the start time of operation O i,j cannot be before the end time of the loading task of operation O i,j . The function endBeforeStart(LU i,j,1 , Ops i,j ) indicates that the start time of the interval variable Ops i,j is not earlier than the end time of the interval variable Lu i,j,1 ;

[0076] The constraint set (11) indicates that for each operation of workpiece i, the start time of the unloading task of operation O i,j cannot be before the end time of the processing of operation O i,j . The function endBeforeStart(Ops i,j , Lu i,j,2 ) indicates that the start time of the interval variable Lu i,j,2 is not less than the end time of the interval variable Ops i,j .

[0077] Step 6, termination condition check. If the termination condition is met, output the final solution. Among them, the termination condition is that the running time after CP-assisted optimization is equal to the total running time t.

[0078] Next, the present invention will be further described through a specific example.

[0079] The present invention runs on a computer equipped with Core TM i7-12700 processor and NVIDIA T600 GPU. It is coded using Python in the PyCharm 2024.1.1 environment. The CP and CPLEX solvers are provided by IBM CPLEX Studio IDE 12.7.1. The total running time t is set to 2N seconds (N is the total number of operations in the corresponding instance), and all comparison algorithms are executed 10 times on each instance.

[0080] Based on the commonly used benchmark instances MFJS01 - MFJS10 and MK01 - MK10 in FJSP, the instances with robot constraints added are named RMFJS01 - RMFJS10 and RMK01 - RMK10. Each instance contains two robots, and each robot is responsible for half of the machines. The loading and unloading task time is set to 5s. To verify the effectiveness of the present invention in a large - scale production environment, the number of workpieces in the instances RMFJS01 - RMFJS10 and RMK01 - RMK10 is tripled to create new instances RLMFJS01 - RLMFJS10 and RLMK01 - RLMK10.

[0081] First, verify the effectiveness of the CP model. The comparison results between the existing mixed - integer linear programming model (MILP model) and the constraint programming model (CP model) are shown in Table 1:

[0082] Table 1 Comparison results of the mixed - integer linear programming model and the constraint programming model

[0083]

[0084]

[0085] In Table 1, the number of binary decision variables, continuous decision variables, and constraints are represented by "NB", "NC", and "NCT" respectively. Additionally, "NV" represents the number of interval decision variables in the CP model. "Gap" represents the optimal gap, and a value of 0 indicates that the solution with the minimum makespan has been found. "Cmax" represents the solution found within the time limit, and "Time" represents the CPU time. Specifically, if the solution with the minimum makespan is obtained, then "Time" does not exceed the time limit; otherwise, it is equal to the time limit.

[0086] According to Table 1, as the instance scale increases, the values of NB, NC, and NTC in the MILP model, as well as the values of NV and NCT in the CP model, increase significantly. The MILP model obtained the solutions with the minimum makespan for RMFJS01 - RMFJS06, and feasible solutions for RMFJS07 - RMFJS10 and RLMFJS01 - RLMFJS05. Due to the relatively large scale of other instances, the MILP model could not find feasible solutions within the specified time. The CP model also obtained the solutions with the minimum makespan for RMFJS01 - 06 and was faster than the MILP model. For the remaining instances, the CP model obtained solutions with a smaller makespan than the MILP model. In summary, the CP model is superior to the MILP model.

[0087] To prove the effectiveness of the CP-assisted optimization method of the present invention, the evolutionary algorithm considering the deep Q-network assisted by the constraint programming model proposed in the present invention (EA-DQN-CP) and the evolutionary algorithm assisted by the deep Q-network (EA-DQN) were compared. The comparison results are shown in Table 2 as follows:

[0088] Table 2 Comparison Results between EA-DQN and EA-DQN-CP

[0089]

[0090]

[0091] For the EA-DQN-CP of the present invention, the optimal configurations of eight important parameters were determined through experiments. These parameters include the evolutionary guiding population size N p1 , the knowledge-driven population size N p2 , the discount factor γ, the learning rate lr, the exploration rate ε, the target Q-network update frequency q, the experience replay buffer size D, and the batch size BS. The present invention executed each parameter configuration 10 times on the RMK10 instances, and the optimal parameter configuration was determined according to the experimental results as follows: N p1 = 500, N p2 = 10, γ = 0.9, lr = 0.1, ε = 0.95, q = 15, D = 512, and BS = 32.

[0092] As shown in Table 2, "Best" represents the minimum value of the maximum completion time for each instance repeated 10 times, "AVG" represents the average value of the maximum completion time for each instance repeated 10 times, and "Mean" represents the average value of each column. Among the 40 instances, for the Best and AVG metrics, EA-DQN-CP is better than EA-DQN, indicating a significant difference between EA-DQN and EA-DQN-CP. In summary, the CP-assisted optimization method enhances the search ability of EA-DQN. By combining EA-DQN and the CP model, EA-DQN-CP utilizes the advantages of EA-DQN and the CP model and achieves superior performance.

[0093] The CP model, EA-DQN, and EA-DQN-CP methods proposed in the present invention were compared with the existing literature algorithms IGA (improved genetic algorithm) and QABC (Q-learning-based artificial bee colony algorithm). The comparison results are shown in Table 3 as follows:

[0094] Table 3 Comparison Results of IGA, QABC, CP, EA-DQN, and EA-DQN-CP

[0095]

[0096]

[0097] For QABC, the population size, iteration limit, learning rate, and discount factor are set to 80, 20, 0.8, and 0.1, respectively. For IGA, the population size is 300, the crossover probability is 0.8, the mutation probability is 0.1, and the diversity check generation is 300. In Table 3, "LB" represents the result with the minimum makespan in the algorithm, and "ALB" represents the result with the minimum average makespan in the algorithm. As shown in Table 3, among 40 instances, EA-DQN obtained 1 minimum value in Best. CP obtained 21 minimum values in Best and 22 minimum values in AVG. EA-DQN-CP obtained 36 minimum values in Best and 35 minimum values in AVG. It can be seen that for the Best and AVG metrics, the CP model, EA-DQN, and EA-DQN-CP methods proposed in the present invention are superior to the existing literature algorithms QABC and IGA.

[0098] In summary, the CP model, EA-DQN, and EA-DQN-CP are effective methods for solving FJSP-RC. The CP model explores the complete solution space through its advanced search techniques. EA-DQN utilizes the advantages of EA and DQN algorithms to achieve learning and evolution. EA-DQN-CP comprehensively utilizes the advantages of the CP model, EA, and DQN algorithms, thus producing excellent performance.

Claims

1. A flexible job shop scheduling optimization method with robot constraints, characterized in that, It includes the following steps. Step 1: Initialize parameters and set the evolutionary guidance population size N p1 , knowledge-driven population size N p2 and total running time t; Step 2, population initialization, randomly generate the initial population, including the evolution-guided population and the knowledge-driven population; among them, the implementation process of population initialization is to initialize individuals in a loop, including the evolution-guided population iterating from 0 to N p1 and the knowledge-driven population iterating from 0 to N p2 for iteration, and create an individual in each iteration; an individual consists of two vectors, namely the operation sequencing vector and the machine selection vector; the operation sequencing vector is initialized, the length of the operation sequencing vector is the total number of operations, and the operations in the operation sequencing vector are randomly generated within the range of [0, n - 1], where n is the total number of workpieces, and the number of times each workpiece appears in the operation sequencing vector is the same as the number of operations contained in the workpiece; the machine selection vector is initialized, the length of the machine selection vector is the total number of operations, and the machines in the machine selection vector are randomly generated within the range of [0, M - 1], where M is the total number of machines. If the processing time of the operation on the selected machine is 0, the machines in the machine selection vector are randomly generated again within the range of [0, M - 1] until the processing time of the operation on the selected machine is not 0; after completing the individual initialization, the N p1 number of individuals generated are added to the evolution-guided population, and the N p2 number of individuals generated are added to the knowledge-driven population; Step 3, population evolution. Use individual competition strategy, self-evolution, and co-evolution to evolve the evolution-guided population, and use individual pairing strategy and DQN evolution to evolve the knowledge-driven population. Among them, the individual competition strategy is to classify the individuals in the evolution-guided population according to the makespan, divide the evolution-guided population into a winner population and a loser population, and the sizes of the winner population and the loser population are N p1 / 2. Sort the individuals in the evolution-guided population in ascending order of makespan, and assign the first N p1 / 2 individuals to the winner population, and the last N p1 / 2 individuals to the loser population. Each individual in the winner population randomly uses one of the exchange operator, inversion operator, and reassignment operator for self-evolution. Among them, the exchange operator and the inversion operator are applied to the operation sequencing vector, and the reassignment operator is applied to the machine selection vector. The winner population and the loser population co-evolve by using the crossover operator. The crossover operator includes the priority operation crossover operator and the uniform crossover operator. Randomly select one individual from the winner population and the loser population respectively. The operation sequencing vectors of the two selected individuals use the priority operation crossover operator, and the machine selection vectors use the uniform crossover operator. Each individual's operation sequencing vector and machine selection vector each perform one crossover operation until all individuals complete the crossover process; The operation steps of the swap operator, reverse operator, reassignment operator, precedence operation crossover operator, and uniform crossover operator are as follows. The operation process of the swap operator is to randomly select two different positions rand1 and rand2 from the operation sequence vector of the individual, and swap the operations at the selected positions rand1 and rand2. The operation process of the reverse operator is to randomly select two different positions rand1 and rand2 from the operation sequence vector of the individual, where rand1 is at least 3 operation intervals before rand2, reverse the operation sequence between positions rand1 and rand2 in the operation sequence vector, find the midpoint position (rand1 + rand2) / 2 of the reverse interval, and successively swap the operations symmetric with respect to the midpoint position of the reverse interval. The operation process of the reassignment operator is to randomly select a position in the machine selection vector, and randomly select a machine from the set of available machines corresponding to the operation at the selected position to replace the original machine. The operation process of the precedence operation crossover operator is to obtain the operation sequence vectors of individuals pop1 and pop2, where the operation sequence vector is represented as an operation sequence. Randomly generate a number num between [1, n - 1], where n represents the total number of workpieces, generate a workpiece set I0 of size num, and randomly select num different workpieces from all workpieces to fill the workpiece set I0. Traverse each position of the operation sequences of pop1 and pop2. If an operation belonging to the workpiece set I0 is found at both positions, then successively swap the corresponding operations in pop1 and pop2. The operation process of the uniform crossover operator is to obtain the machine selection vectors of individuals pop1 and pop2, where the machine selection vector is represented as a machine sequence. Generate a number set B of size N, where N represents the total number of operations. Randomly fill 0 or 1 at each position in the number set B. 0 and 1 are flags used to determine whether the machines at the corresponding positions in the machine sequences of pop1 and pop2 are swapped, where 0 represents swap and 1 represents no swap. Perform N iterations. Traverse each position of the machine sequences of pop1 and pop2 in order from the first position to the last position, and synchronously traverse the number at the corresponding position in the number set B. If the number at the current position in the number set B is 0, then swap the machines at the current traversed position in the machine sequences of pop1 and pop2. The individual pairing strategy is to generate all pairs of individuals that are paired with each other from the knowledge-driven population. The pairs of individuals that are paired with each other consist of two different individuals. Combine all pairs of individuals to form a paired population. Apply DQN evolution to the paired population. DQN selects a search operator that minimizes the makespan based on the combined information of the process sequencing vector and the machine selection vector of the individual pairs in the current paired population. The search operators include swap operator, inversion operator, reassignment operator, job-based crossover operator, two-point crossover operator, and multi-point crossover operator. Among them, the swap operator, inversion operator, and job-based crossover operator are applied to the process sequencing vector, and the reassignment operator, two-point crossover operator, and multi-point crossover operator are applied to the machine selection vector; Step 4, population update: Combine the evolved evolution-guided population and the knowledge-driven population into one population, and use the combined population to update the evolution-guided population and the knowledge-driven population; Step 5, CP-assisted optimization: If the optimization condition is met, construct a CP model, use the individual with the minimum makespan after population update as the initial solution in the CP model, and further optimize using the global search ability of the CP model. If the optimization condition is not met, return to Step 3. The optimization condition is that the running time after population update is equal to half of the total running time t; Step 6, termination condition check: If the termination condition is met, output the final solution. The termination condition is that the running time after CP-assisted optimization is equal to the total running time t.

2. A flexible job shop scheduling optimization method with robot constraints according to claim 1, characterized in that The operation steps of the job-based crossover operator, two-point crossover operator, and multi-point crossover operator are as follows: The operation process of the job-based crossover operator is to obtain the process sequencing vectors of individual pop1 and individual pop2, where the process sequencing vector is represented as a process sequence. Initialize list C1 and list C2. List C1 is used to store the process sequence of pop1 after crossover, and list C2 is used to store the process sequence of pop2 after crossover. Randomly divide all workpieces into two different sets, denoted as workpiece set I1 and workpiece set I2. Traverse each position of the process sequences of pop1 and pop2. If the current process of pop1 belongs to I1, copy this process to the corresponding position in list C1. If the current process of pop2 belongs to I2, copy this process to the corresponding position in list C2. For the processes in pop2 that do not belong to I1, copy them to the unoccupied positions in list C1 in the order in pop2. For the processes in pop1 that do not belong to I2, copy them to the unoccupied positions in list C2 in the order in pop1. Assign the process sequence obtained after crossover in list C1 to pop1, and assign the process sequence obtained after crossover in list C2 to pop2; The operation process of the two-point crossover operator is as follows: obtain the machine selection vectors of individual pop1 and individual pop2, where the machine selection vector is represented as a machine sequence, initialize list C1 and list C2. C1 is used to store the machine sequence of pop1 after crossover, and C2 is used to store the machine sequence of pop2 after crossover. Randomly generate positions rand1 and rand2 on the machine sequence, where position rand1 is at least 1 machine interval ahead of position rand2. Copy the machines in the machine sequence interval [rand1, rand2] of pop1 to the corresponding positions in list C1, and copy the machines in the machine sequence interval [rand1, rand2] of pop2 to the corresponding positions in list C2. Copy the machines in the machine sequence intervals [0, rand1] and [rand2, N - 1] of pop1 to the corresponding positions in list C2, and copy the machines in the machine sequence intervals [0, rand1] and [rand2, N - 1] of pop2 to the corresponding positions in list C1. N represents the total number of processes. Assign the machine sequence obtained after crossover in list C1 to pop1, and assign the machine sequence obtained after crossover in list C2 to pop2; The operation process of the multi-point crossover operator is as follows: obtain the machine selection vectors of individual pop1 and individual pop2, where the machine selection vector is represented as a machine sequence. Randomly generate a number num between [0, N - 1], where N represents the total number of processes. Pop1 and pop2 perform num machine exchanges. Each time, randomly select a position of a machine and exchange the machines at the selected positions in the machine sequences of pop1 and pop2.

3. A flexible job shop scheduling optimization method with robot constraint according to claim 2, characterized in that, The process of population update is as follows: combine the evolved evolutionary guidance population and the knowledge-driven population into one population, and sort the individuals in the combined population in ascending order according to the makespan; clear all individuals in the evolutionary guidance population and the knowledge-driven population; add the first N p1 individuals in the combined population to the evolutionary guidance population in sequence, and add the first N p2 individuals in the combined population to the knowledge-driven population in sequence.

4. A flexible job shop scheduling optimization method with robot constraint according to claim 3, characterized in that The CP model contains the following constraint sets, The variables of the CP model include: i represents the workpiece index; I represents the set of all workpieces; n i represents the number of operations of workpiece i; j represents the operation index; J i represents the set of operations of workpiece i; l represents the index of loading or unloading tasks; L represents the set of loading and unloading tasks; k represents the machine index; K represents the set of all machines; r represents the robot index; R represents the set of all robots; n represents the total number of workpieces; N represents the total number of operations; O i,j represents the j-th operation of workpiece i; K i,j represents the set of machines that can process operation O i,j ; C' max is the continuous decision variable for the makespan, is the interval variable for the unloading task of the n i -th operation of workpiece i; Ops i,j is the interval variable for operation O i,j ; mod i,j,k is the alternative interval variable for operation O i,j processed on machine k; Lu i,j,l is the interval variable for the loading or unloading task of operation O i,j , which represents the loading task when l = 1 and the unloading task when l = 2, LuT i,j,l,k is the alternative interval variable for the loading or unloading task of operation O i,j processed on machine k; Lu i,j,2 is the interval variable for the unloading task of operation O i,j ; Lu i,j+1,1 is the interval variable for the loading task of operation O i,j+1 ; modLU i,j,k is the integrated interval variable of the loading or unloading task of operation O i,j and the alternative interval variable processed on machine k; mchs k is the machine sequence decision variable, including the alternative interval variable modLU i,j,k ; robots r is the robot sequence decision variable, including the alternative interval variable LuT i,j,l,k ; mchs' k is the machine sequence decision variable, including the alternative interval variables modLU i,j,k and LuT i,j,l,k ; Lu i,j,1 is the interval variable for the loading task of operation O i,j ; Lu i,j,2 is the interval variable for the unloading task of operation O i,j ; The constraint set (1) indicates that the goal is to minimize the makespan C' max , the function returns the end time of the interval variable ; The constraint set (2) represents the operation O i,j can only be processed on one eligible machine k ∈ K i,j The function alternative(Ops i,j , mod i,j,k ) means that only one alternative interval variable mod i,j can be selected in each interval variable Ops i,j,k ; The constraint set (3) represents that the loading or unloading task l of process O i,j can only be processed on a qualified machine k ∈ K i,j . The function alternative(Lu i,j,l , LuT i,j,l,k ) means that only one alternative interval variable LuT i,j,l can be selected in each interval variable Lu i,j,l,k ; The constraint set (4) indicates that for each operation of workpiece i, only after the unloading task of the previous operation O i,j+1 is completed can the loading task of operation O i,j begin. The function endBeforeStart(Lu i,j+1 , Lu i,j,2 , Lu i,j+1,1 ) indicates that the loading task interval variable Lu i,j+1,1 can only start after the unloading task interval variable Lu i,j,2 is completed; The constraint set (5) represents forming an optional interval variable modLU i,j,l,k and mod i,j,k from two optional interval variables in chronological order i,j,k , and the function span(modLU i,j,k , append(LuT i,j,l,k , mod i,i,k )) represents that the optional interval variable modLU i,j,k involves all current intervals in the set {LuT i,j,l,k , mod i,j,k}, the start time of modLU i,j,k is the minimum start time of the optional interval variables in the set {LuT i,j,l,k , mod i,j,k}, and the end time of modLU i,j,k is the maximum end time of the optional interval variables in the set {LuT i,j,1,k , mod i,j,k}; The constraint set (6) indicates that an operation can only be processed on one machine. The function presenceOf(modLU i,j,k ) represents the optional interval variable modLU i,j in which the operation O i,j,k exists; The constraint set (7) represents that the machine k can only process one operation at a time, and the function noOverlap(mchs k ) represents that all existing alternative interval variables modLU i,j,k do not overlap; The constraint set (8) indicates that the robot r can only perform one loading or unloading task at the same time. The function noOverlap(robots r ) indicates that all existing optional interval variables LuT i,j,l,k do not overlap; The constraint set (9) indicates that the operations processed on machine k must be carried out in sequence. The function noOverlap(mchs' k ) indicates that all existing alternative interval variables mod i,j,k and LuT i,j,l,k do not overlap with each other; The constraint set (10) represents that for each operation of workpiece i, the start time of operation O i,j cannot be before the end of the loading task of operation O i,j . The function endBeforeStart(Lu i,j,1 , Ops i,j ) represents that the start time of the interval variable Ops i,j is not earlier than the end time of the interval variable Lu i,j,1 ; The constraint set (11) represents that for each operation of workpiece i, the start time of the unloading task of operation O i,j cannot be before the end time of operation O i,j . The function endBeforeStart(Ops i,j , Lu i,j,2 ) represents that the start time of the interval variable Lu i,j,2 is not less than the end time of the interval variable Ops i,j .

Citation Information

Patent Citations

  • Coevolution multi-objective differential evolution method

    CN110598863A

  • Optimization method for flexible job shop scheduling problem considering adjustment time

    CN119228072A