Open Shop Scheduling Problem (OSSP) is a combinatorial optimization problem for more than two machines and n jobs. Open Shop Scheduling Problem is another kind of scheduling problem along with flow shop and job shop scheduling problems. The open shop scheduling problem involves scheduling of jobs, where the sequence of the operations of each job can be arbitrarily chosen and need not be same. This means that the operations of the jobs can be performed in any sequence. In the absence of sequences for the jobs, for a given set of jobs, finding different parameters like maximum completion time Cmax becomes highly difficult and complex. One can use complete enumeration method or branch and bound method to solve this problem optimally for small and medium size problems. The large size problems of open shop problem with more than two machines and with n jobs can be solved by either a heuristic or meta-heuristics such as genetic algorithm, simulated annealing algorithm, etc. to obtain very near optimal solution. The performance of the genetic algorithm is affected by crossover operator performed between two parent chromosomes. Hence, this paper explores various crossover operators used, while using evolutionary based genetic algorithm to solve open shop scheduling problems. It further attempts to propose a new crossover operator using three chromosomes.
Flow shop scheduling problem, job shop scheduling problem and open shop scheduling problem differed in the way of operations in each job need to be processed on “m” machines [
Let “m” be a set of machines, where processing on each machine represents an operation and “n” is the number of jobs with m operations that need to be processed on m machines. Each machine can process only one job at a time and each job can be processed only on one machine at a time. The objective is to complete the processing of all the jobs in such a way that the total time taken to complete all the jobs is minimized. This is called as makespan or maximum completion time (Cmax). In this paper, Genetic Algorithm is considered to arrive at a sequence that provides near-optimal solution.
Genetic Algorithm has the following important steps [
1. Generate initial population of N chromosomes.
2. Evaluate the fitness function f(x) for each chromosome x in the population.
3. Sort the population by the objective function (fitness function) value in the desirable order depending on the type of objective function (maximization means descending order and minimization means in ascending order).
4. Copy a percentage of population to form a subpopulation.
5. Then randomly select two parent chromosomes from the subpopulation and perform crossover to produce their offspring.
6. Perform mutation in each of the offspring for a given probability.
7. Repeat the process till a specified number of generations is completed.
8. Finally identify the chromosome in the larger population which has the best fitness function value for implementation.
Crossover operator is an important stage in the Genetic Algorithm (GA), which involves mating of the selected chromosomes to produce child chromosomes with better fitness which in turn becomes parent chromosomes in the next generation. More than 60% of research papers consider minimization of maximum completion time or Cmax as the objective function for the open shop scheduling problem, while the remaining papers consider the average completion time or total completion time, multi-criteria objective or to minimize the tardiness or earliness as the objective function.
The selection of an appropriate crossover operator for research work based on GA is highly significant step to reduce the maximum completion time Cmax. This paper tries to make an attempt to describe various crossover operators used by various researchers to minimize the maximum completion time. This paper is organized as follows: Section 2 provides an overview of literature concerning GA with an objective of minimizing Cmax for an OSSP. The literature review covers various research works using different crossover operators. Section 3 describes various methods of encoding chromosome before performing crossover of chromosomes. It further explains decoding of the encoded chromosome. Section 4 discusses various crossover operators with a proper illustration. Section 5 deals with the new crossover operator proposed by the authors of the paper. Section 6 demonstrates the use of proposed new crossover operator by considering an instance and summarizes the result finally.
Anand and Panneerselvam [
Zobolas et al. [
Ching-Fang Liaw [
Several researchers used different types of crossover operators and encoding operators that served their purposes and objectives. There are situations, where certain chromosome encoding operator cannot be used. Binary encoding operator cannot be used to represent the chromosome for open shop scheduling problems. This paper tries to understand and explore different encoding and crossover operators. It also proposes a new crossover operator called Three-chromosome Juggling crossover operator.
Encoding of a chromosome or a string is an important stage in GA. This involves the process of representing the information contained in the problem in the form of an appropriate chromosome or string. Binary encoding is highly used encoding method. Binary encoding for OSSP is not an appropriate and feasible encoding method.
The different encoding methods applied to the open shop scheduling problem with 4 machines and four jobs are presented below.
This is the simplest way to encode chromosome for an OSSP but difficult to decode. For the problem size of 4 machines and 4 jobs (4 × 4), each job has four operations and the total number of operations irrespective of the jobs is 16. The operation numbers from 1 to 16 irrespective of the jobs are shown in
The sixteen operations are assigned randomly to sixteen gene positions as shown in
The genes of the chromosome can be decoded as shown in
Machine 1 | Machine 2 | Machine 3 | Machine 4 | |
---|---|---|---|---|
Job 1 | 1 | 2 | 3 | 4 |
Job 2 | 5 | 6 | 7 | 8 |
Job 3 | 9 | 10 | 11 | 12 |
Job 4 | 13 | 14 | 15 | 16 |
Job | Sequence of genes |
---|---|
1 | 2 ? 3 ? 4 ? 1 |
2 | 6 ? 5 ? 7 ? 8 |
3 | 10 ? 11 ? 9 ? 12 |
4 | 15 ? 16 ? 14 ? 13 |
12) are listed as per order of appearance of them in the chromosome as shown against the job 3 in
The sequence of operations for each job is decoded as shown in
The chromosome can be decoded as shown below.
First the two-digit genes of the job 1 which appear from left to right of the chromosome are written in the same order against the job 1 in
Now, the decoding of the genes of each job shown
This is same as the two-digit permutation encoding except in the way of representation as shown in
Job | Sequence of genes | Sequence of operations |
---|---|---|
1 | 2 (Machine 2) ? 3 (Machine 3) ? 4 (Machine 4) ? 1 (Machine 1) | 2 ? 3 ? 4 ? 1 |
2 | 6 [6 ? 4 = 2 (Machine 2)] ? 5 [5 ? 4 = 1 (Machine 1)] ? 7 [7 ? 4 = 3 (Machine 3)] ? 8 [8 ? 4 = 4 (Machine 4)] | 2 ? 1 ? 3 ? 4 |
3 | 10 [10 ? 8 = 2 (Machine 2)] ? 11 [11 ? 8 = 3 (Machine 3)] ? 9 [9 ? 8 = 1 (Machine 1)] ? 12 [12 ? 8 = 4 (Machine 4)] | 2 ? 3 ? 1 ? 4 |
4 | 15 [15 ? 12 = 3 (Machine 3)] ? 16 [16 ? 12 = 4 (Machine 4)] ? 14 [14 ? 12 = 2 (Machine 2)] ? 13 [13 ? 12 = 1 (Machine 1)] | 3? 4 ? 2 ? 1 |
Machine 1 | Machine 2 | Machine 3 | Machine 4 | |
---|---|---|---|---|
Job 1 | 11 | 12 | 13 | 14 |
Job 2 | 21 | 22 | 23 | 24 |
Job 3 | 31 | 32 | 33 | 34 |
Job 4 | 41 | 42 | 43 | 44 |
Job | Sequence of genes |
---|---|
1 | 12 ? 14 ? 11 ? 13 |
2 | 24 ? 22 ? 23 ? 21 |
3 | 32 ? 31 ? 34 ? 33 |
4 | 44 ? 43 ? 41 ? 42 |
Job | Sequence of operations |
---|---|
1 | 2 ? 4 ? 1 ? 3 |
2 | 4 ? 2 ? 3 ? 1 |
3 | 2 ? 1 ? 4 ? 3 |
4 | 4 ? 3 ? 1 ? 2 |
Machine 1 | Machine 2 | Machine 3 | Machine 4 | |
---|---|---|---|---|
Job 1 | O11 | O12 | O13 | O14 |
Job 2 | O21 | O22 | O23 | O24 |
Job 3 | O31 | O32 | O33 | O34 |
Job 4 | O41 | O42 | O43 | O44 |
In this encoding method, the numbers do not explicitly mention the job on particular machine, but implicitly convey which job to be run on which machine as shown in
The chromosome is divided into four equal parts as shown in
The decoding of the genes of the chromosome shown in
1. In the first part of the chromosome, the very first job number is 2. Hence, 1 is entered in the row 2 under the gene position of the column for Machine 1.
2. Then randomly select an unassigned operation (operation number) of the job 2 and assign it to the machine 1.
3. Next, from the same part, the second job is 3. So, the gene position 2 is entered in the row 3 under the gene position of the column for Machine 1.
4. Then randomly select an unassigned operation (operation number) of the job 3 and assign it to the machine 1.
5. The next job is 1 at the gene position 3 of the part 1 of the chromosome. So, the gene position 3 is entered in the row 1 under the gene position of the column for Machine 1.
6. Then randomly select an unassigned operation (operation number) of the job 1 and assign it to the machine 1.
7. Next, the gene position 4 which contains the job 4. So, the gene position 4 is entered in the row 4 under the gene position of the column for Machine 1.
8. Then randomly select an unassigned operation number of the job 4 and assign it to the machine 1.
In the same way, the decoding of the genes for the rest of the machines can be carried out. The final decoded sequence of the operations of the jobs based on
Crossover operator is an important step in genetic algorithm, where the parent chromosomes are taken in pair and their genes are exchanged in certain order to obtain off spring. These offspring become next generation
Job | Machine 1 | Machine 2 | Machine 3 | Machine 4 | ||||
---|---|---|---|---|---|---|---|---|
Gene position | Operation | Gene position | Operation | Gene position | Operation | Gene position | Operation | |
1 | 3 | 4 | 1 | 3 | 2 | 1 | 3 | 2 |
2 | 1 | 2 | 4 | 1 | 1 | 4 | 4 | 3 |
3 | 2 | 1 | 3 | 2 | 4 | 3 | 2 | 4 |
4 | 4 | 3 | 2 | 4 | 3 | 2 | 1 | 1 |
Job | Sequence of operations |
---|---|
1 | 4 ? 3 ? 1 ? 2 |
2 | 2 ? 1 ? 4 ? 3 |
3 | 1 ? 2 ? 3 ? 4 |
4 | 3 ? 4 ? 2 ? 1 |
parent chromosomes [
・ One-point Crossover
・ Two-point Crossover
・ Linear Order Crossover (LOX)
・ Cycle Crossover
・ Position-based Crossover
・ Order-based Crossover
・ Partially Mapped Crossover (PMX) pcxd.
The steps of one-point crossover method are listed below.
a) Mark one point in the chromosome to create two substrings of genes in Parent Chromosome 1 (PC1) as shown in
b) Copy the substring 1 from PC1 to Offspring 1 (OF1) as it is. At the same time cancel the corresponding genes in PC2, which are shown with grey boxes in
c) The non-grey cells are copied to OF1 in linear order to fill substring 2 of OF1 as shown in
The steps of two-point crossover method are listed below.
a) Mark two points randomly in the chromosome to create three substrings of genes, viz. Substring 1, Substring 2 and Substring 3 as shown in
b) Copy the Substring 2 from Parent Chromosome 1 (PC1) to Offspring 1 (OF1) as it is. At the same time cancel the corresponding genes in PC2 as shown with grey boxes in
c) Start filling from the left side of the substring 3 of OF1 with genes starting from non-grey cells of substring 3 of PC2 and then substring 1 and substring 2 in cyclic order. The non-grey cell after the second cut point of PC2 will be the first gene after the second cut point of OF1 to be filled and so on as shown in
The steps of linear order cross over method are presented below.
a) Mark two points randomly to create three substrings, Substring 1, Substring 2 and Substring 3of genes as shown in
b) Copy the Substring 2 from Parent Chromosome 1 (PC1) to Offspring 1 (OF1) as it is. At the same time cancel the corresponding genes in PC2 as shown with grey boxes in
c) The non-grey cells are copied to OF1 in linear order (from left to right) to fill the Substring 1 and Substring 3 of OF1 as shown in
The steps of cyclic crossover method are presented below:
a) From the two parent chromosomes PC1 and PC2 and find a cycle starting from first gene of PC1 as shown in
O44 → O33 → O32 → O21 → O22 → O43 → O11 → O31 → O42 → O41 → O44
Here, the cycle begins with O44 reaches O33 and then O32 and so on till it ends with O44 again.
b) Mark the genes in grey colour that form the cycle in both parent chromosomes PC1 and PC2 as shown in
c) Copy the non-grey cells of PC2 to non-grey cells of PC1 to get the first offspring OF1 as shown in
d) Copy the non-grey cells of PC1 to non-grey cells of PC2 to get the second offspring OF2 as shown in
The working logic of position based crossover method is presented below.
a) Randomly select some genes, which are marked with grey cells in PC1 and copy them to OF1 as it is as shown in
b) Mark the selected genes of PC1 in PC2 with grey cells.
c) Copy the non-grey cells of PC2 onto non-grey cells of OF1 in linear order (from left to right) as shown in
The crossover method is a slight modification of the position-based crossover operator. The steps of this method are presented below.
a) Randomly select some genes, which are as marked with grey cells, from PC1 and mark the corresponding genes in PC2with grey cells as shown in
b) Copy the non-grey cells of PC2 onto OF1 as it is.
c) Fill the balance cells of OF1 with the genes, which are marked with grey colour in PC1 in linear order (from left to right).
The steps of the partially mapped crossover method are listed below.
a) Mark two points on PC1 and PC2 that will create three substrings, viz. Substring 1, Substring 2 and Substring 3, as shown in
b) Copy Substring 1 and Substring 3 of PC1 to OF1 and Substring 2 of PC2 to OF1.
c) This will result in duplicity of genes O12, O23, O13, and O44. These genes appear twice in OF1. To escape from duplicity, we partially map the genes in Substring 2 of PC1 and PC2. This is equivalent to find the union of the genes in the substring 2 of PC1 and the genes in the substring 2 of PC2.
O12 can be replaced by O32; O23can be replaced by O43; O13 can be replaced by O33 and O44 can be replaced by O34.
d) This will yield legal OF1 without any duplicity as shown in
The three chromosome juggling crossover (TCJC) operator is classified into TCJC forward and TCJC backward.
Three-chromosome Juggling Crossover (TCJC Forward) Operator can be used for chromosomes which are encoded using two-digit encoding or two-digit subscripts encoding methods. This TCJC operator works as follows:
a) Let there be three parent chromosomes, which are labelled as two odd chromosomes (PC1 and PC3) and
one even chromosome (PC2) in the first pick of three chromosomes from the population of chromosomes as shown in the ovals in
b) For the first offspring OF1, use the subscripts of 3rd parent chromosome PC3. If the sum of the subscripts of third chromosome is even, pick the first available gene from left of chromosome PC2 (even chromosome) and contribute it to OF1. Then cancel the gene in both the chromosomes (PC1 and PC2) to avoid duplicity. If the sum of the subscripts of third chromosome PC3 is odd, then pick the first available gene from left of the chromosome PC1 (odd chromosome) and contribute to OF1.Then cancel the gene in both the chromosomes (PC1 and PC2) to avoid duplicity. These are explained using respective conditions as follows.
For all Oij of third chromosome PC3:
If i + j = even, pick first available gene from left of the chromosome PC2 (even chromosome),
If i + j = odd, pick first available gene from left of the chromosomePC1 (odd chromosome).
The implementation of these steps for each of the genes of the chromosome PC3 is explained below.
i) First gene in third chromosome is O11. Since the sum of subscripts of this gene is even, pick the first available gene from left of the even chromosome PC2 and place it as the first gene of the offspring OF1.
ii) Cancel the gene O11 in both the chromosomes (PC1 and PC2) to indicate that this gene has already been selected for OF1 as shown in
iii) Starting from the second gene of the odd chromosome PC3 onwards, continue to perform Step i and Step ii.
iv) To get Offspring 2 (OF2) from the same set of chromosomes PC1, PC2 and PC3, juggle the chromosomes such that sum of subscripts of PC1 will decide the gene to be picked from PC2 (even chromosome) or PC3 (odd chromosome). The process of obtaining OF2 is shown in
v) Two offspring OF1 and OF2 are generated from first three parent chromosomes PC1, PC2 and PC3. Next two offspring OF3 and OF4 will be obtained by juggling PC2, PC3 and PC4 and ignoring PC1 and so on.
Three-chromosome Juggling Crossover (TCJC backward) Operator can be used for chromosomes which are
encoded using two-digit encoding or two-digit subscripts encoding methods. This TCJC backward operator works as follows:
a) Let there be three parent chromosomes, which are labelled as two odd chromosomes (PC1 and PC3) and one even chromosome (PC2) in the first pick of three chromosomes from the population of chromosomes as shown in the ovals in
b) For the first offspring OF1, use the subscripts of 3rd parent chromosome PC3. If the sum of the subscripts of third chromosome is even, pick the first available gene from right of chromosome PC2 (even chromosome) and contribute it to OF1. Then cancel the gene in both the chromosomes (PC1 and PC2) to avoid duplicity. If the sum of the subscripts of third chromosome PC3 is odd, then pick the first available gene from right of the chromosome PC1 (odd chromosome) and contribute to OF1.Then cancel the gene in both the chromosomes (PC1 and PC2) to avoid duplicity. These are explained using respective conditions as follows.
For all Oij of third chromosome PC3:
If i + j = even, pick first available gene from right of the chromosome PC2 (even chromosome),
If i + j = odd, pick first available gene from right of the chromosomePC1 (odd chromosome).
The implementation of these steps for each of the genes of the chromosome PC3 is explained below.
i) First gene in third chromosome is O11. Since, the sum of subscripts is even, pick the first available gene from right of the even chromosome PC2 and place it as the first gene of the Offspring OF1.
ii) Cancel the gene O11 in both the chromosomes (PC1 and PC2) to indicate that this gene has already been selected for OF1 as shown in
iii) Starting from the second gene of the odd chromosome PC3 onwards, continue to perform Step i and Step ii.
iv) To get Offspring 2 (OF2) from the same set of chromosomes PC1, PC2 and PC3, juggle the chromosomes such that sum of subscripts of PC1 will decide the gene to be picked from PC2 (even chromosome) or PC3 (odd chromosome). The process of obtaining OF2 is shown in
v) Two offspring OF1 and OF2 are generated from first three parent chromosomes PC1, PC2 and PC3. Next two offspring OF3 and OF4 will be obtained by juggling PC2, PC3 and PC4 and ignoring PC1 and so on.
This section presents the workings of TCJC forward and TCJC backward operators using numerical examples.
Consider an open shop scheduling problem with 4 jobs and 4 machines as shown in
Let the parent chromosome PC1 be as shown in
Now, consider another chromosome known as parent chromosome PC2 as shown in
The determination of offspring 1 (OF1) using Three-Chromosome Juggling Crossover Operator―Forward operator applied to PC1, PC2 and PC3 is shown in
The determination of offspring 2 (OF2) using Three-Chromosome Juggling Crossover Operator―Forward operator applied to PC1, PC2 and PC3 is shown in
Job1 | Job2 | Job3 | Job4 | |
---|---|---|---|---|
Machine 1 | 85 | 23 | 39 | 55 |
Machine 2 | 85 | 74 | 56 | 78 |
Machine 3 | 3 | 96 | 92 | 11 |
Machine 4 | 67 | 45 | 70 | 75 |
Notation | Machine | Job | Processing time | Start Time | Finish Time |
---|---|---|---|---|---|
O44 | 4 | 4 | 75 | 0 | 75 |
O12 | 1 | 2 | 23 | 0 | 23 |
O24 | 2 | 4 | 78 | 75 | 153 |
O42 | 4 | 2 | 45 | 75 | 120 |
O14 | 1 | 4 | 55 | 153 | 208 |
O32 | 3 | 2 | 96 | 120 | 216 |
O31 | 3 | 1 | 3 | 216 | 219 |
O43 | 4 | 3 | 70 | 120 | 190 |
O33 | 3 | 3 | 92 | 219 | 311 |
O11 | 1 | 1 | 85 | 219 | 304 |
O34 | 3 | 4 | 11 | 311 | 322 |
O21 | 2 | 1 | 85 | 304 | 389 |
O41 | 4 | 1 | 67 | 389 | 456 |
O13 | 1 | 3 | 39 | 311 | 350 |
O23 | 2 | 3 | 56 | 389 | 445 |
O22 | 2 | 2 | 74 | 445 | 519 |
Two more off-springs can be obtained by using TCJC operator operating from backward direction. Let them be OF1 and OF2. The off-spring 1 (OF1) is generated as shown in
The demonstration has considered only 3 chromosomes. The results show that the makespan values are different for different for different chromosomes as well as for different offspring. It is important to note that at least 20 × m × n number of chromosomes should be randomly chosen as the initial population, where ‘m’ is number of machines and “n” is number of jobs. A sample of three chromosomes will form a set as shown in the demonstration to produce 4 off-springs.
This paper covers important crossover operators with the perspective of solving open shop scheduling problem to minimize makespan. One of the objectives of this paper was to develop a new crossover operator. This paper limits to providing a conceptual framework of newly developed crossover operator namely Three Chromosome
Juggling Crossover Forward Operator and Three Chromosome Juggling Crossover Backward Operator and not providing any numerical work to compare different crossover operators to select the best one. This paper provides an insight into a new type of crossover operator that can be used while applying genetic algorithm to solve open shop scheduling problem to minimize makespan.
The research paper makes an attempt but limits to propose the new crossover operator for only the Open Shop Scheduling problems. This limitation provides an opportunity to try for Job Shop and Flow Shop Scheduling problems too.
Ellur Anand,Ramasamy Panneerselvam, (2016) A Study of Crossover Operators for Genetic Algorithm and Proposal of a New Crossover Operator to Solve Open Shop Scheduling Problem. American Journal of Industrial and Business Management,06,774-789. doi: 10.4236/ajibm.2016.66071