# Modeling and Evolutionary Optimization on Multilevel Production Scheduling: A Case Study

Authors: Ruifeng Shi; Chunxia Shangguan; Hong Zhou
Journal: Applied Computational Intelligence and Soft Computing
 (2010)

---

## Abstract

Multilevel production scheduling problem is a typical combinatorial
optimization problem in a manufacturing system, which is
traditionally modeled as several hierarchical sublevel problems and optimized
at each level, respectively. An integrated model, which can cope
with the whole multilevel scheduling information simultaneously, is proposed
in this paper, and a specific evolutionary algorithm is designed
to solve the integrated model with a twin-screw coding strategy. In order
to evaluate the performance of the new algorithm, a real 3-level production
scheduling problem is employed for case study, and two typical
metaheuristic algorithms, a genetic algorithm (GA) and a simulated
annealing (SA), are also employed for comparison study. Experimental
simulation results show that our proposed modeling and optimization
method has outperformed the other ones.


---

## Body

## 1. Introduction

Multi-level production scheduling problem is a typical combinatorial optimization problem in manufacturing system, which is traditionally modeled as several hierarchical sublevel problems, and solved by single-level scheduling methods level by level [1–4]. As we know, the trends of manufacturing system development are increasing the competitivity of the company, promoting the customers’ service level, integrating the global manufacturing information, and processing flexible task flows in a more efficient way [5, 6]. In order to cope with these trends, researchers need to optimize plant operations and total activities from suppliers to customers and help manufacturers to find their ways in global optimization and support the needs of manufacturing at the same time. Along with all these scenarios, problem modeling and its optimization techniques play important roles in achieving these goals [7–10].Generally speaking, multi-level production scheduling problem (MLPS) is one kind of hierarchical production planning problem, which considers a set of jobs on given machines with predefined sequence, while discarding to cope with a lot size problem [11–13]. Jobs in an MLPS problem belong to different product levels, and the higher level product cannot begin its process operation until all its subproducts in the lower level are finished. The general way to solve an MLPS problem is decomposing the entire problem into several sublevel problems according to its product level structure and optimize these subproblems within each level [14]. The product level structure of a typical MLPS problem can be illustrated as in Figure 1, in which job 1 belongs to level 1; jobs 2, 3 belong to level 2; jobs 4, 5, 6, 7, 8 belong to level 3. Besides, the process operation precedence between adjacent levels is as follows: job 2 (level 2) cannot begin its process operation, until all its sub-jobs 4, 5 (level 3) are finished; job 1 (level 1) cannot begin its process operation, until all its subjobs 2, 3 (level 2) are finished.Figure 1
An example of hierarchical structure of MLPS problem.


## 2. Related Works

During the past decades, some researches have tried their efforts to demonstrate that a hierarchical production planning technique is the most efficient way in solving a multistage, multilevel production planning problem [15–17], while other researchers believed in that a monolithic/integrated method is better than a hierarchical one. These researchers proposed many integrated multi-level production planning models for various problems and obtained some exciting conclusions. But most of them are focused on coping a scheduling problem with a lot sizing problem simultaneously; few attention is taken on the MLPS described as in Figure 1. The reason may lied in the fact that a batch production module plays a major role in most manufacturing companies during the past decades, but a small batch, multiclass production module becomes more and more popular in current factories, especially in some high technological industries. This leads researchers to find more efficient models and optimization techniques to solve the MLPS in recent years [18–20].Since the occurrence of modern heuristic optimization algorithms, like evolutionary algorithm (EA), simulated annealing (SA), coevolutionary algorithm (COEA), ant colony (AC), and particle swarm optimization (PSO), and so forth, solving a large scale MLPS with an integrated model becomes possible within an acceptable computational cost. More and more attentions are attracted to solve this NP complete (or NP-Hard) problem with an integrated model, and various problem-dependent heuristic algorithms are proposed to enhance the efficiency of the algorithms, among which evolutionary algorithm is the most attractive/preferred one [21–23].Usually, an evolutionary algorithm is designed to solve a single-level scheduling problem, and an MLPS integrated model can be solved with a hierarchical looped EA, in which precedence prerequisite information can be satisfied with transferring the ready time and release time between adjacent levels. The result is greatly improved by contrast to a hierarchical technique. But the computational cost with this scheme may grow rapidly as the problem scale is increasing. Besides, the optimality of the final result is doubted by many classical optimization mathematicians. This leads researchers turning to new gene expression and evolving strategies to overcome those drawbacks.In the following sections, Section3 builds up a general integrate 3-level production scheduling optimization model. Section 4 proposes a twin-screw-coded hybrid evolutionary algorithm to solve the integrated model. Section 5 employs a real 3-level production scheduling case study to evaluate the performance of the proposed modeling and optimization technique, and Section 6 gives the conclusion of this study and highlights some perspectives for future study.


## 3. Mathematical Integrated Model for a Typical Three-level Production Scheduling Problem

In general, a multi-level production scheduling problem (Figure1) can be described as follows: a final product consists of several (n) assemblies, each assembly consists of some (n(ij)(i=1,2,…,n)) subassemblies, and each subassembly consists of several (n(ij)(i=1,2,…,n;j=1,2,…,n(ij))) parts,…. All the jobs, including assemblies, subassemblies, and parts, should be processed through m(i), m(ij), and m(ijk) operational sequences with given orders, where m(i)(i=1,2,…,n) represents the maximum operation number of assembly (i), m(ij)(i=1,2,…,n;j=1,2,…,n(i)) represents the maximum operation number of subassembly (ij), and m(ijk)(i=1,2,…,n;j=1,2,…,n(i),k=1,2,…,n(ij)) represents the maximum operation number of part (ijk). Besides, one assembly cannot begin its process operation until all of its subassemblies are finished and assembled into the assembly. The final product is assembled by the assemblies. Generally,min{makespan} is considered as the optimization objective. In this section, an integrated 3-level MLPS model is built up, which can be stated as (1)–(24): (1)minf=min{Cmax}=min{max{C(i)}}(2)s.t.t[a](i)S≥t[a](ij)S+p[a](ij);a=1,2,…,m(i);i=1,2,…,n;j=1,2,…,n(i);(3)t[a](ij)S≥t[a](ijk)S+p[a](ijk);a=1,2,…,m(ij);i=1,2,…,n;j=1,2,…,n(i);k=1,2,…,n(ij);(4)t[a](i)S+p[a](i)≤t[b](i)S+M·(1-q[a][b](i));a,b=1,2,…,m(i);i=1,2,…,n;(5)t[a](ij)S+p[a](ij)≤t[b](ij)S+M·(1-q[a][b](ij));a,b=1,2,…,m(ij);i=1,2,…,n;j=1,2,…,n(i);(6)t[a](ijk)S+p[a](ijk)≤t[b](ijk)S+M·(1-q[a][b](ijk));a,b=1,2,…,m(ijk);i=1,2,…,n;j=1,2,…,n(i);k=1,2,…,n(ij);(7)t[g](i)S+p[g](i)≤t[g](j)S+M·(1-q[g]((i)(j)));g=1,2,…,m(i);i,j=1,2,…,n;(8)t[g](ij)S+p[g](ij)≤t[g](ik)S+M·(1-q[g]((ij)(ik)));g=1,2,…,m(ij);i=1,2,…,nj,k=1,2,…,n(i);(9)t[g](ijk)S+p[g](ijk)≤t[g](ijl)S+M·(1-q[g]((ijk)(ijl)));g=1,2,…,m(ijk);i=1,2,…,n;j=1,2,…,n(i);k,l=1,2,…,n(ij);(10)t[g](i)S+p[g](i)≤t[g](jk)S+M·(1-x[g]((i)(jk)));i,j=1,2,…,n;k=1,2,…,n(i);g∈{1,2,…,m(i)}∩{1,2,…,m(jk)};(11)t[g](jk)S+p[g](jk)≤t[g](i)S+M·(1-x[g]((jk)(i)));i,j=1,2,…,n;k=1,2,…,n(i);g∈{1,2,…,m(i)}∩{1,2,…,m(jk)};(12)t[g](i)S+p[g](i)≤t[g](jkl)S+M·(1-x[g]((i)(jkl)));i,j=1,2,…,n;k=1,2,…,n(i);l=1,2,…,n(jk);g∈{1,2,…,m(i)}∩{1,2,…,m(jkl)};(13)t[g](jkl)S+p[g](jkl)≤t[g](i)S+M·(1-x[g]((jkl)(i)));i,j=1,2,…,n;k=1,2,…,n(i);l=1,2,…,n(jk);g∈{1,2,…,m(i)}∩{1,2,…,m(jkl)};(14)t[g](ij)S+p[g](ij)≤t[g](kls)S+M·(1-x[g]((ij)(kls)));i,k=1,2,…,n;j,l=1,2,…,n(i);s=1,2,…,n(ij);g∈{1,2,…,m(ij)}∩{1,2,…,m(kls)};(15)t[g](kls)S+p[g](kls)≤t[g](ij)S+M·(1-x[g]((kls)(ij)));i,k=1,2,…,n;j,l=1,2,…,n(i);s=1,2,…,n(ij);g∈{1,2,…,m(ij)}∩{1,2,…,m(kls)};(16)t[a](i)S≥0;a=1,2,…,m(i);i=1,2,…,n;(17)t[a](ij)S≥0;a=1,2,…,m(ij);i=1,2,…,n;j=1,2,…,n(i);(18)t[a](ijk)S≥0;a=1,2,…,m(ijk);i=1,2,…,n;j=1,2,…,n(i);k=1,2,…,n(ij);(19)x[g]((i)(j))+x[g]((j)(i))=1,wherex[g]((i)(j))=0or1;g=1,2,…,m(i);i,j=1,2,…,n;(20)x[g]((ij)(ik))+x[g]((ik)(ij))=1,wherex[g]((ij)(ik))=0or1;g=1,2,…,m(ij);i=1,2,…,n;j,k=1,2,…,n(i);(21)x[g]((ijk)(ijl))+x[g]((ijl)(ijk))=1,wherex[g]((ijk)(ijl))=0or1;g=1,2,…,m(ijk);i=1,2,…,n;j=1,2,…,n(i);k,l=1,2,…,n(ij);(22)x[g]((i)(jk))+x[g]((jk)(i))=1(i)≠(j),wherex[g]((i)(jk))=0or1;i,j=1,2,…,n;k=1,2,…,n(i);g∈{1,2,…,m(i)}∩{1,2,…,m(jk)};(23)x[g]((i)(jkl))+x[g]((jkl)(i))=1(i)≠(j),wherex[g]((i)(jkl))=0or1;i,j=1,2,…,n;k=1,2,…,n(i);l=1,2,…,n(jk);g∈{1,2,…,m(i)}∩{1,2,…,m(jkl)};(24)x[g]((ij)(kls))+x[g]((kls)(ij))=1(ij)≠(kl),wherex[g]((ij)(kls))=0or1;i,k=1,2,…,n;j,l=1,2,…,n(i);s=1,2,…,n(ij);g∈{1,2,…,m(ij)}∩{1,2,…,m(kls)}.The definition of the parameters in the model is as follows.FS represents the feasible solution set; o[a](i) represents the ath operation of job assembly (i), o[a](ij) represents the ath operation of job subassembly (ij); o[a](ijk) represents the ath operation of job part (ijk); p[a](i) represents the operation time of o[a](i); p[a](ij) represents the operation time of o[a](ij); p[a](ijk) represents the operation time of o[a](ijk); M is an infinite positive multiply factor: (25)q[a][b](i)={1,iftheoperationofassembly(i)onmachine[b]isexactlyafteritsoperationonmachine[a],0,otherwise,q[a][b](ij)={1,iftheoperationofsubassembly(ij)onmachine[b]isexactlyafteritsoperationonmachine[a],0,otherwise,q[a][b](ijk)={1,iftheoperationofpart(ijk)onmachine[b]isexactlyafteritsoperationonmachine[a],0,otherwise.The definition of the decision variables in the model is as follows.t[a](i)S represents the start time of operation o[a](i), t[a](ij)S represents the start time of operation o[a](ij), t[a](ijk)S represents the start time of operation o[a](ijk) and C(i) represents the end time of assembly (i); thus we have (26)C(i)=maxa∈1,2,…,m(i)(t[a](i)S+p[a](i)),
and the 0-1 programming variables are defined as(27)x[g](i)(j)={1,iftheimmediatesuccessiveoperationofassembly(i)onmachine[g]is(j),0,otherwise,x[g](ij)(ik)={1,iftheimmediatesuccessiveoperationofsubassembly(ij)onmachine[g]is(ik),0,otherwise,x[g](ijk)(ijl)={1,iftheimmediatesuccessiveoperationofpart(ijk)onmachine[g]is(ijl),0,otherwise,x[g](i)(jk)={1,iftheimmediatesuccessiveoperationofassembly(i)onmachine[g]issubassembly(jk),0,otherwise,x[g](jk)(i)={1,iftheimmediatesuccessiveoperationofsubassembly(jk)onmachine[g]isassembly(i),0,otherwise,x[g](i)(jkl)={1,iftheimmediatesuccessiveoperationofassembly(i)onmachine[g]ispart(jkl),0,otherwise,x[g](jkl)(i)={1,iftheimmediatesuccessiveoperationofpart(ijk)onmachine[g]isassembly(i),0,otherwise,x[g](ij)(kls)={1,iftheimmediatesuccessiveoperationofsubassembly(ij)onmachine[g]ispart(kls),0,otherwise,x[g](kls)(ij)={1,iftheimmediatesuccessiveoperationofpart(kls)onmachine[g]issubassembly(ij),0,otherwise.The physical explanation for the model (shown as (1)–(24)) is as follows.Equation (1) gives the optimization objective as makespan; (2) constrains that the start time of an assembly must be later than the completion time of all its subassemblies; (3) constrains that the start time of a subassembly must be later than the completion time of all its parts; (4) defines the precedence relationship of assembly (i)’s two successive operations o[a](i) and o[b](i); that is, the start time of operation o[b](i) must be later than the end time of operation o[a](i) if q[a][b](i)=1, and vice versa; (5) defines the precedence relationship between subassembly (ij)’s two successive operation o[a](ij) and o[b](ij); (6) defines the precedence relationship between part (ijk)’s two successive operation o[a](ijk) and o[b](ijk); (7)–(15) define that there can only process at most one job on machine [g] at one time; (16)–(18) constrain the start time of each operation as a non-negative variable; (19)–(21) define the constraints between each related-pair of decision variables in each level to guarantee the feasibility of the solution; (22)–(24) define the constraints between each pair of decision variables in different levels.


## 4. Twin-Screw-Coded Evolutionary Algorithm for Multilevel Production Scheduling Optimization

Since the computational complexity of the multi-level production scheduling problem is very high, it is hard to solve it with current existing optimization methods efficiently (either the precise methods or the problem-dependent heuristic algorithms). In order to overcome the drawbacks of current existing methods, a twin-screw-coded evolutionary algorithm is proposed in this paper, which encodes a possible multi-level scheduling scheme in a twin-screw chromosome, and a metaheuristic-based population gap for elitist exchange and local search is employed to enhance the convergence of the algorithm.A typical 3-level MLPS example is shown in Figure2, which includes two assembles (1,7), five subassemblies (1’s subassemblies include 2, 3; 7’s subassemblies include 8, 9, 10) and nine parts (2’s parts are 4, 5; 3’s part is 6; 8’s parts are 11, 12, 13; 9’s part is 14; 10’s parts are 15, 16). The hierarchical process precedence relationship between the jobs can be easily told from the figure, in which the process scheduling optimization covers all 3-levels’ jobs at the same time.Figure 2
Example of a 3-level production scheduling problem.


### 4.1. Gene Expression: Twin-Screw Coding

Current existing evolutionary coding can only express one single level’s scheduling information; it is hard to employ them to express a multi-level production scheduling information with one chromosome. Hence, we propose an operation-based twin-screw coding strategy to solve this problem: we define each job number with an implicit subsidiary coding (subcoding) to label its level information and construct a twin-screw module to express the hierarchy of the scheduling scheme. Assume that, in the example of Figure2, each job in {3,7,12} has two operations, respectively, job 5 has three operations, and all the other jobs have only one operation, which is a typical mixed flexible job shop problem. A feasible solution for this problem can be coded as a twin-screw gene (shown as Figure 3), in which the italic gene in the second row shows the level of the job above it. Thus, we can construct a feasible chromosome for the 3-level job process scheduling problem with the twin-screwed gene expression.Figure 3
The feasible gene expression for a three-level shop scheduling solution.In order to guarantee the feasibility of a twin-screw-coded chromosome, a specifically designed decoding strategy (shown as Figure4) is employed to cope with this issue. We employ the example mentioned above to illustrate the process of our proposed decoding method, in which process scheduling information is obtained from lower level to the higher one. The genotype codes of a chromosome are scanned from the beginning to the end; those operations that labeled with a “3” as its implicit twin-code (in the second line) are Recognized as part level’s jobs and labeled to phenotype; after a round-robin scan, all the jobs belonging to the part level are kicked off from the original chromosome, a second round scan is taken to label the subassembly level, and then the assembly level, until all the levels’ operations are labeled and the whole chromosome is decoded to a complete 3-level job scheduling solution with phenotype status.Figure 4
A decoding example.In the decoding process (Figure4), o51 represents the first operation of job 5; o4 represents the operation of job 4. The final decoded solution of the above example is as follows:(i)
part level:o15, o51, o12, o4, o16, o52, o14, o11, o12, o13, o06, o53;(ii)
subassembly level:o31, o2, o32, o8, o9, o10;(iii)
assembly level:o1, o71, o72.In order to promote the decoding efficiency, an object-oriented data structure is designed to fulfill this task (Figure5). The principle of designing the data structure and some variable abbreviations are noted as the follows.Figure 5
The data structure for decoding process.(1) A chromosome composes three parts: twin-screw codes for sequence and “level” information, job-related information, and machine-related information.(2) “GENE_i” represents the twin-screw coding structure of a chromosome; “JobNr” represents the job number (the number of each job is equal to its operation number); The initial “Flag” of job “i” indicates the production level, which job “i” belongs to.During the decoding process, when all the operations of one subjob of job “i” are finished, we add “Job_i”’s “FinishedSubJobs” by (1): when the value is equal to “i”’s “TotalSubJobs”, that means all the subjobs of “i” have been finished we turn the “Flag” of “i” from 1 to 0 under this circumstance, and return the scan pointer into the beginning of the twin-screw, and rescan the left operations.(3) “OperationInfo” records the start time and end time of each job.(4) “TotalOperNr”, “TotalSubJobs”, and “SubJobNr” are the initial status of the jobs; these information can be obtained from the configuration document.(5) “Mach_i” records the job sequences at machine “i”; these pieces of information are employed to verify the validity of a solution, and to make preparation data for Gantt graph, while not participating the decoding process.


### 4.2. Evolutionary Operators: Crossover and Mutation

In order to guarantee the feasibility and validity of the chromosome during the population evolution, we propose improved crossover and mutation operators for the twin-screw-coded chromosome based on previous work in permutation scheduling problem studies (see [22]). The principle of designing the evolutionary operators is similar to that of PMX crossover and swap mutation operators (see [22]), which can be illustrated by examples shown in Figures 6 and 7.Figure 6
The crossover operator: an example.Figure 7
The mutation operator: an example.Crossover operator for a twin-screw-coded chromosome is as follows.Step 1.
Randomly generate two cutting pointsc1, c2 (assume c1<c2) on the two parents chromosome chrom1, chrom2.Step 2.
Exchange the partial chromosome betweenc1 and c2 (not only the process sequence information but also the “level” information) to get the two proto-children, shown as P1′ and P2′ in Figure 6.Step 3.
Scan and eliminate the existing elements ofP1′ from parent 1 and P2′ from parent 2 to determine the mapping relationship between two mapping sections. After the mapping operation, we get two subsidiary partial mapping information as the P1′′, P2′′ shown in Figure 6.Step 4.
Legalize the offspring with the mapping relationship information, and obtain two feasible offspring children (offspring1 and offspring2 in Figure 6).Please note that the whole crossover process is guided and dominated by the sequence information, but not the “level” information. Because in our proposed twin-screw-coded chromosome, each bit of “level” information is bound strength with a corresponding operation information, it does not make any sense except in the decoding process.Mutation operator for twin-screw-coded chromosome is as follows.Step 1.
Randomly generate two mutate pointsm1, m2 on the parent chromosome to be mutated.Step 2.
Swap the two position’s sequence and “level” information to generate a legal offspring child (as shown in Figure7).


### 4.3. Population Reconstruction with Elitism Strategy

In our previous work, we have proposed an escalating evolutionary structure (shown in Figure8), which has outperformed several other modern heuristic algorithms with applications to flow shop scheduling problems under the similar computational cost. In order to solve the integrated MLPS model efficiently, we introduce the escalating strategy into the twin-screw-coded EA to enhance its convergence performance. The brief idea of escalating strategy can be explained as follows.Figure 8
Flowchart of the Twin-screw Coded Evolutionary Algorithm (TCEA) for MLPS.A population evolves from a random beginning status, the probability of an individual to bring its offspring lies on its fitness. After some generations’ evolution, the population may keep in evolving with no progress further more in some successive generations; then the elitist individual (the best one in the population from the beginning to current generation) is kept and introduced into a new population directly, and all the other individuals of the new population are generated randomly (reconstruction/reinitialization). Thus, the new population continues the evolution process until the stop criterion is satisfied.The escalation process implies two meanings: (1), the elitist individual will be introduced into the new population directly; (2), other individuals of the new population will be generated randomly, where (1) makes it possible to utilize the previous level’s search information, and (2) is designed to keep the population diversity, which helps the algorithm escaping from premature.


## 4.1. Gene Expression: Twin-Screw Coding

Current existing evolutionary coding can only express one single level’s scheduling information; it is hard to employ them to express a multi-level production scheduling information with one chromosome. Hence, we propose an operation-based twin-screw coding strategy to solve this problem: we define each job number with an implicit subsidiary coding (subcoding) to label its level information and construct a twin-screw module to express the hierarchy of the scheduling scheme. Assume that, in the example of Figure2, each job in {3,7,12} has two operations, respectively, job 5 has three operations, and all the other jobs have only one operation, which is a typical mixed flexible job shop problem. A feasible solution for this problem can be coded as a twin-screw gene (shown as Figure 3), in which the italic gene in the second row shows the level of the job above it. Thus, we can construct a feasible chromosome for the 3-level job process scheduling problem with the twin-screwed gene expression.Figure 3
The feasible gene expression for a three-level shop scheduling solution.In order to guarantee the feasibility of a twin-screw-coded chromosome, a specifically designed decoding strategy (shown as Figure4) is employed to cope with this issue. We employ the example mentioned above to illustrate the process of our proposed decoding method, in which process scheduling information is obtained from lower level to the higher one. The genotype codes of a chromosome are scanned from the beginning to the end; those operations that labeled with a “3” as its implicit twin-code (in the second line) are Recognized as part level’s jobs and labeled to phenotype; after a round-robin scan, all the jobs belonging to the part level are kicked off from the original chromosome, a second round scan is taken to label the subassembly level, and then the assembly level, until all the levels’ operations are labeled and the whole chromosome is decoded to a complete 3-level job scheduling solution with phenotype status.Figure 4
A decoding example.In the decoding process (Figure4), o51 represents the first operation of job 5; o4 represents the operation of job 4. The final decoded solution of the above example is as follows:(i)
part level:o15, o51, o12, o4, o16, o52, o14, o11, o12, o13, o06, o53;(ii)
subassembly level:o31, o2, o32, o8, o9, o10;(iii)
assembly level:o1, o71, o72.In order to promote the decoding efficiency, an object-oriented data structure is designed to fulfill this task (Figure5). The principle of designing the data structure and some variable abbreviations are noted as the follows.Figure 5
The data structure for decoding process.(1) A chromosome composes three parts: twin-screw codes for sequence and “level” information, job-related information, and machine-related information.(2) “GENE_i” represents the twin-screw coding structure of a chromosome; “JobNr” represents the job number (the number of each job is equal to its operation number); The initial “Flag” of job “i” indicates the production level, which job “i” belongs to.During the decoding process, when all the operations of one subjob of job “i” are finished, we add “Job_i”’s “FinishedSubJobs” by (1): when the value is equal to “i”’s “TotalSubJobs”, that means all the subjobs of “i” have been finished we turn the “Flag” of “i” from 1 to 0 under this circumstance, and return the scan pointer into the beginning of the twin-screw, and rescan the left operations.(3) “OperationInfo” records the start time and end time of each job.(4) “TotalOperNr”, “TotalSubJobs”, and “SubJobNr” are the initial status of the jobs; these information can be obtained from the configuration document.(5) “Mach_i” records the job sequences at machine “i”; these pieces of information are employed to verify the validity of a solution, and to make preparation data for Gantt graph, while not participating the decoding process.


## 4.2. Evolutionary Operators: Crossover and Mutation

In order to guarantee the feasibility and validity of the chromosome during the population evolution, we propose improved crossover and mutation operators for the twin-screw-coded chromosome based on previous work in permutation scheduling problem studies (see [22]). The principle of designing the evolutionary operators is similar to that of PMX crossover and swap mutation operators (see [22]), which can be illustrated by examples shown in Figures 6 and 7.Figure 6
The crossover operator: an example.Figure 7
The mutation operator: an example.Crossover operator for a twin-screw-coded chromosome is as follows.Step 1.
Randomly generate two cutting pointsc1, c2 (assume c1<c2) on the two parents chromosome chrom1, chrom2.Step 2.
Exchange the partial chromosome betweenc1 and c2 (not only the process sequence information but also the “level” information) to get the two proto-children, shown as P1′ and P2′ in Figure 6.Step 3.
Scan and eliminate the existing elements ofP1′ from parent 1 and P2′ from parent 2 to determine the mapping relationship between two mapping sections. After the mapping operation, we get two subsidiary partial mapping information as the P1′′, P2′′ shown in Figure 6.Step 4.
Legalize the offspring with the mapping relationship information, and obtain two feasible offspring children (offspring1 and offspring2 in Figure 6).Please note that the whole crossover process is guided and dominated by the sequence information, but not the “level” information. Because in our proposed twin-screw-coded chromosome, each bit of “level” information is bound strength with a corresponding operation information, it does not make any sense except in the decoding process.Mutation operator for twin-screw-coded chromosome is as follows.Step 1.
Randomly generate two mutate pointsm1, m2 on the parent chromosome to be mutated.Step 2.
Swap the two position’s sequence and “level” information to generate a legal offspring child (as shown in Figure7).


## 4.3. Population Reconstruction with Elitism Strategy

In our previous work, we have proposed an escalating evolutionary structure (shown in Figure8), which has outperformed several other modern heuristic algorithms with applications to flow shop scheduling problems under the similar computational cost. In order to solve the integrated MLPS model efficiently, we introduce the escalating strategy into the twin-screw-coded EA to enhance its convergence performance. The brief idea of escalating strategy can be explained as follows.Figure 8
Flowchart of the Twin-screw Coded Evolutionary Algorithm (TCEA) for MLPS.A population evolves from a random beginning status, the probability of an individual to bring its offspring lies on its fitness. After some generations’ evolution, the population may keep in evolving with no progress further more in some successive generations; then the elitist individual (the best one in the population from the beginning to current generation) is kept and introduced into a new population directly, and all the other individuals of the new population are generated randomly (reconstruction/reinitialization). Thus, the new population continues the evolution process until the stop criterion is satisfied.The escalation process implies two meanings: (1), the elitist individual will be introduced into the new population directly; (2), other individuals of the new population will be generated randomly, where (1) makes it possible to utilize the previous level’s search information, and (2) is designed to keep the population diversity, which helps the algorithm escaping from premature.


## 5. Case Study

### 5.1. Problem Description

In order to evaluate the performance of our proposed modeling and optimization technique, a 3-level production scheduling problem from one of Chinese famous satellite production factory is employed for case study. All the processing information has been necessarily deposed with pre-declassification need beforehand.The hierarchical product structure of the problem is similar to the model described as (1)–(24): product 0–0 consists of 3 assemblies, each assembly consists of 4, 3, 2 subassemblies, respectively, and each subassembly consists of some given number of parts. The job of a higher level could begin its process operation only if all its sub-products are finished and are assembled. The process information includes technical constraints within levels and between levels, process time, and predefined operational sequence between jobs. The hierarchical logic relationship of the problem can be highlighted as shown in Figure 9.Figure 9
Problem description.Figure 10
Statistical results of 3-level MLPS with TCEA, GA, and SA.Table1 gives the detail process information of the problem. There are some complementary comments to the problem.Table 1
The raw data of case study problem.
Oper.1Oper.2Oper.3Oper.4JobNrmachinetimemachinetimemachinetimemachinetime⋯11–1O116O47.1O116DM38⋯11–2O18RM5.3O37PM10⋯11–3O220DM44.8O211.2PM80⋯11–4RM3.3O30.4PM4.6O18⋯11–5O210.4DM44.2O116O212⋯11–6O25DM14RM2O18⋯11–7O220DM56RM33.2O32⋯11–0RM31O720.3O116PM12⋯12–1RM29DM20O18RM22⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12–5O77RM11O18O612⋯12–0RM27O21213–1O18O419.5RM21.2O42⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13–8O721RM33O18O622⋯13–0RM36OM54PM21O5814–1RM9O960O56⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14–9O22.4O18DM12.4O32⋯14–0O29O25O18O26⋯1–0O382O214RM61O324⋯21–1O727.2O710.4O164O6144⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21–9RM1152OM768PM768O5384⋯21–0O3208RM136DM84O532⋯22–1RM61.5DM170O140DM720⋯22–2RM19DM60O116DM248⋯22–0O323RM5423–1O118.5DM5.2O18O97⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯23–8O118.5DM5.2O18O97⋯23–0O343DM44O342–0O384DM20O932DM88⋯31–1O24.6RM4DM6.4O33⋯31–2O28O18O23.3DM16⋯31–3O28OM4.4O58O30.5⋯31–0O232OM58O18O228⋯32–1O220OM12O39.3⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32–5O44DM1O3132–0O25.2O25.2RM116O136⋯3–0O1340DM52O380–0O332OM81O323OM68⋯(1) The O1–O13 in Table 1 represent the process operations on those machines, whose process ability can be greatly increased with a bit costs and the workloads on them can be considered as light as possible. So the capability of these machines can be considered as infinite. These machines include common low-precise manufacturing machines, like lathe, planer, grinder, and so forth.While the workloads on the other kind of machines are obviously heavy, not only the fixed expensive purchasing costs but also the expensive unit time process costs on them are much higher than the common ones. There are 4 units of such machines in the factory that we investigated, whose name can be listed as Rough Milling machine (RM), Precise Milling machine (PM), Digital Milling machine (DM), and Other Milling machine (OM), respectively.(2) The definition of job numbers (JobNr) in Table 1 is as follows.(i)
11–01 represents the 01 part of subassembly 11;(ii)
11–0 is the label for subassembly 11;(iii)
1–0 is the label for assembly 1;(iv)
0–0 is the label of the final product.After analyzing the process information, we make two assumptions to deduce the computational complexity of the raw problem, in which only the most “expensive” and “crowed” machines are specifically treated, while we neglect the scheduling planing on those “cheap” or “loosely required” machines.Assumption (Machine Scarce/Nonscarce Assumption).
As we know, a satellite product requires more precision than a civil product; its large size and highly precision quality leads to the need of high-performance milling machines in many operations. We discriminately treat the operations that need to be operated on milling machines with those operations that need to be operated on other machines and call the operations on these two kind of machines asScarce machine operations and nonscarce machine operations. Consecutive operations on nonscarce machines can be combined into “Dummy Operations”.
The adjacent operations onnonscarce machines can be combined as one operation time, and the new combined operation can be considered as operations that have no constraints on machine availability; we only take its operation time into account but neglect the operation’s machine information.Assumption (Machine Specification Assumption).
As different machines for the same type of task in the satellite factory take different costs, the milling operations are allocated to different machines according to its precision requirements, which aims at strengthening the economic profit of the whole. After the hypothesis of dummy operation and machine operation specialization, we focus our effort on the scheduling of scarce machines, which can help us avoid to waste time on insignificant operations or wasting costly machines on simple or nonprecise operations; thus can we possibly obtain a better solution in a given time.


### 5.2. Data Preprocessing

There are 4 milling machines (RM/PM/DM/OM) in the factory. Since the operations on these milling machines are the bottle neck of the scheduling problem, we allocate the milling operations to these machines with regard to each machine’s operational precision and cost.(i)
Rough milling operations are allocated to the machine “RM”.(ii)
Precise milling operations are allocated to the machine “PM”.(iii)
Digital milling operations are allocated to the machine “DM”.(iv)
Other milling operations are allocated to the machine “OM”.All the other nonmilling operations are considered as “dummy operations” (as mentioned in Section5.1). After we combined the “dummy operations”, we get the new modified process data of the problem (shown in Table 2).Table 2
The modified data of case study problem.
Level 1: the part levelJobNrdummachtimedummachtimedummachtime⋯11–0132.1DM3826NS011–028RM5.37PM108DM80⋯11–0320DM44.811.2PM804.8NS0⋯11–040RM3.30.4PM4.68PM23⋯11–0510.4DM44.228PM804.4NS0⋯11–065DM140RM211.5DM8⋯11–0720DM560RM33.214DM32⋯12–010RM290DM208RM22⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12–057RM1120PM521DM19⋯13–0127.5RM21.22PM1118.4NS0⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13–0821RM3330PM5213DM19⋯14–010RM966NS0⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14–0910.4DM12.42NS021–01245.6PM41610.4DM152⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21–090RM11520OM7680PM768⋯22–010RM61.50DM17040DM720⋯22–020RM190DM6016DM248⋯23–018.5DM5.219.5DM138DM32⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯23–088.5DM5.219.5DM138DM32⋯31–014.6RM40DM6.43NS0⋯31–0219.3DM162.5NS031–038DM4.48.5NS032–0120OM129.3NS0⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32–054DM11NS0Level 2: the subassembly levelJobNrdummachtimedummachtimedummachtime⋯11–00RM3136.3PM1216NS0⋯12–00RM2712NS013–00RM360OM540PM21⋯14–029DM2921–0208RM1360DM8432NS0⋯22–023RM5423–043DM444NS031–032OM5836OM608OM12⋯32–010.4RM11623NS0Level 3: the assembly level (including the final product)JobNrdummachtimedummachtimedummachtime⋯1–096RM6124NS02–084DM2032DM8816NS0⋯3–040DM528NS00–032OM8123OM68


### 5.3. Comparison Study Algorithms and Parameters Setting

In order to evaluate the performance of our proposed TCEA with its application to MLPS, we employ two basic metaheuristic algorithms, GA (Genetic Algorithm), and SA (Simulated Annealing) as comparison algorithms for case study.In order to obtain the best performance of TCEA, parameters experiment has been taken to search the best parameters combination. The experiment is designed with the following guidance rules [21].(i)
Population size (POP_SIZE) varies from 100 to 500, skip rule 100.(ii)
Evolutionary generation varies from 100 to 500, skip rule 100.(iii)
Crossover probability varies from 0.3 to 0.9, skip rule 0.1.(iv)
Mutation probability varies from 0.01 to 0.1, skip rule 0.01.(v)
Population escalation gap varies from 10 to 1, skip rule 1.(vi)
Elitist local search step varies from 10 to 50, skip rule 10.After the parameters experiment, we set the parameters of TCEA as in Table3. In order to compare the performance of TCEA with that of GA and SA in a fair circumstance, we make the similar parameters experiments for GA and SA, respectively, in which the total CPU time consumption is kept in the same level as TCEAs. After the experiments, we can set the parameters of TCEA, GA, and SA as in Table 3. Since the twin-screw coding strategy is a general encoding strategy designed for MLPS problems, we employ the coding strategy in all the three algorithms.Table 3
Parameters setting for 3-level MLPS study case.
pop_sizemax_gensPcPmnLTCEA200200×50.90.120GA20010000.90.1T0TfinalβnLSA10000.10.99950


### 5.4. Results Analysis

Since all the algorithms that we study are metaheuristic algorithms, we run each algorithm for 20 independent times to collect their statistical results. With parameters set in Table3, we get the optimization results as in Table 4 and figure 10, in which the average result of TCEA outperforms that of GA and SA:Table 4
Statistical optimization results of the 3-level MLPS with TCEA, GA and SA.
Algorithmsavg.Makespanmax.Makespanmin.Makespandev.MakespanTCEA5612.4563255983.86GA5691.2570456688.61SA5788.55814576811.26The average makespan of product 0–0 obtained by our TCEA is 5612.4, and the results of GA and SA are 5691.2 and 5788.5, respectively; all these metaheuristic algorithms outperformed current technique in the factory (6580).However, the computational cost of TCEA (about 270s) is a bit longer than that of GA (about 250s) and SA (about 190s) in the same experiment environment (all the experiments are taken in a CPU Pentium IV-3.2 G, 1 G Ram PC platform).In general, the statistical results show the outstanding performance of our TCEA by contrast to that of GA and SA to cope with an MLPS problem.Figures11 and 12 show two typical solutions derived from TCEA and GA, respectively.Figure 11
A typical solution of 3-level MLPS with TCEA.Figure 12
A typical solution of 3-level MLPS with GA.


## 5.1. Problem Description

In order to evaluate the performance of our proposed modeling and optimization technique, a 3-level production scheduling problem from one of Chinese famous satellite production factory is employed for case study. All the processing information has been necessarily deposed with pre-declassification need beforehand.The hierarchical product structure of the problem is similar to the model described as (1)–(24): product 0–0 consists of 3 assemblies, each assembly consists of 4, 3, 2 subassemblies, respectively, and each subassembly consists of some given number of parts. The job of a higher level could begin its process operation only if all its sub-products are finished and are assembled. The process information includes technical constraints within levels and between levels, process time, and predefined operational sequence between jobs. The hierarchical logic relationship of the problem can be highlighted as shown in Figure 9.Figure 9
Problem description.Figure 10
Statistical results of 3-level MLPS with TCEA, GA, and SA.Table1 gives the detail process information of the problem. There are some complementary comments to the problem.Table 1
The raw data of case study problem.
Oper.1Oper.2Oper.3Oper.4JobNrmachinetimemachinetimemachinetimemachinetime⋯11–1O116O47.1O116DM38⋯11–2O18RM5.3O37PM10⋯11–3O220DM44.8O211.2PM80⋯11–4RM3.3O30.4PM4.6O18⋯11–5O210.4DM44.2O116O212⋯11–6O25DM14RM2O18⋯11–7O220DM56RM33.2O32⋯11–0RM31O720.3O116PM12⋯12–1RM29DM20O18RM22⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12–5O77RM11O18O612⋯12–0RM27O21213–1O18O419.5RM21.2O42⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13–8O721RM33O18O622⋯13–0RM36OM54PM21O5814–1RM9O960O56⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14–9O22.4O18DM12.4O32⋯14–0O29O25O18O26⋯1–0O382O214RM61O324⋯21–1O727.2O710.4O164O6144⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21–9RM1152OM768PM768O5384⋯21–0O3208RM136DM84O532⋯22–1RM61.5DM170O140DM720⋯22–2RM19DM60O116DM248⋯22–0O323RM5423–1O118.5DM5.2O18O97⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯23–8O118.5DM5.2O18O97⋯23–0O343DM44O342–0O384DM20O932DM88⋯31–1O24.6RM4DM6.4O33⋯31–2O28O18O23.3DM16⋯31–3O28OM4.4O58O30.5⋯31–0O232OM58O18O228⋯32–1O220OM12O39.3⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32–5O44DM1O3132–0O25.2O25.2RM116O136⋯3–0O1340DM52O380–0O332OM81O323OM68⋯(1) The O1–O13 in Table 1 represent the process operations on those machines, whose process ability can be greatly increased with a bit costs and the workloads on them can be considered as light as possible. So the capability of these machines can be considered as infinite. These machines include common low-precise manufacturing machines, like lathe, planer, grinder, and so forth.While the workloads on the other kind of machines are obviously heavy, not only the fixed expensive purchasing costs but also the expensive unit time process costs on them are much higher than the common ones. There are 4 units of such machines in the factory that we investigated, whose name can be listed as Rough Milling machine (RM), Precise Milling machine (PM), Digital Milling machine (DM), and Other Milling machine (OM), respectively.(2) The definition of job numbers (JobNr) in Table 1 is as follows.(i)
11–01 represents the 01 part of subassembly 11;(ii)
11–0 is the label for subassembly 11;(iii)
1–0 is the label for assembly 1;(iv)
0–0 is the label of the final product.After analyzing the process information, we make two assumptions to deduce the computational complexity of the raw problem, in which only the most “expensive” and “crowed” machines are specifically treated, while we neglect the scheduling planing on those “cheap” or “loosely required” machines.Assumption (Machine Scarce/Nonscarce Assumption).
As we know, a satellite product requires more precision than a civil product; its large size and highly precision quality leads to the need of high-performance milling machines in many operations. We discriminately treat the operations that need to be operated on milling machines with those operations that need to be operated on other machines and call the operations on these two kind of machines asScarce machine operations and nonscarce machine operations. Consecutive operations on nonscarce machines can be combined into “Dummy Operations”.
The adjacent operations onnonscarce machines can be combined as one operation time, and the new combined operation can be considered as operations that have no constraints on machine availability; we only take its operation time into account but neglect the operation’s machine information.Assumption (Machine Specification Assumption).
As different machines for the same type of task in the satellite factory take different costs, the milling operations are allocated to different machines according to its precision requirements, which aims at strengthening the economic profit of the whole. After the hypothesis of dummy operation and machine operation specialization, we focus our effort on the scheduling of scarce machines, which can help us avoid to waste time on insignificant operations or wasting costly machines on simple or nonprecise operations; thus can we possibly obtain a better solution in a given time.


## 5.2. Data Preprocessing

There are 4 milling machines (RM/PM/DM/OM) in the factory. Since the operations on these milling machines are the bottle neck of the scheduling problem, we allocate the milling operations to these machines with regard to each machine’s operational precision and cost.(i)
Rough milling operations are allocated to the machine “RM”.(ii)
Precise milling operations are allocated to the machine “PM”.(iii)
Digital milling operations are allocated to the machine “DM”.(iv)
Other milling operations are allocated to the machine “OM”.All the other nonmilling operations are considered as “dummy operations” (as mentioned in Section5.1). After we combined the “dummy operations”, we get the new modified process data of the problem (shown in Table 2).Table 2
The modified data of case study problem.
Level 1: the part levelJobNrdummachtimedummachtimedummachtime⋯11–0132.1DM3826NS011–028RM5.37PM108DM80⋯11–0320DM44.811.2PM804.8NS0⋯11–040RM3.30.4PM4.68PM23⋯11–0510.4DM44.228PM804.4NS0⋯11–065DM140RM211.5DM8⋯11–0720DM560RM33.214DM32⋯12–010RM290DM208RM22⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12–057RM1120PM521DM19⋯13–0127.5RM21.22PM1118.4NS0⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13–0821RM3330PM5213DM19⋯14–010RM966NS0⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14–0910.4DM12.42NS021–01245.6PM41610.4DM152⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21–090RM11520OM7680PM768⋯22–010RM61.50DM17040DM720⋯22–020RM190DM6016DM248⋯23–018.5DM5.219.5DM138DM32⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯23–088.5DM5.219.5DM138DM32⋯31–014.6RM40DM6.43NS0⋯31–0219.3DM162.5NS031–038DM4.48.5NS032–0120OM129.3NS0⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32–054DM11NS0Level 2: the subassembly levelJobNrdummachtimedummachtimedummachtime⋯11–00RM3136.3PM1216NS0⋯12–00RM2712NS013–00RM360OM540PM21⋯14–029DM2921–0208RM1360DM8432NS0⋯22–023RM5423–043DM444NS031–032OM5836OM608OM12⋯32–010.4RM11623NS0Level 3: the assembly level (including the final product)JobNrdummachtimedummachtimedummachtime⋯1–096RM6124NS02–084DM2032DM8816NS0⋯3–040DM528NS00–032OM8123OM68


## 5.3. Comparison Study Algorithms and Parameters Setting

In order to evaluate the performance of our proposed TCEA with its application to MLPS, we employ two basic metaheuristic algorithms, GA (Genetic Algorithm), and SA (Simulated Annealing) as comparison algorithms for case study.In order to obtain the best performance of TCEA, parameters experiment has been taken to search the best parameters combination. The experiment is designed with the following guidance rules [21].(i)
Population size (POP_SIZE) varies from 100 to 500, skip rule 100.(ii)
Evolutionary generation varies from 100 to 500, skip rule 100.(iii)
Crossover probability varies from 0.3 to 0.9, skip rule 0.1.(iv)
Mutation probability varies from 0.01 to 0.1, skip rule 0.01.(v)
Population escalation gap varies from 10 to 1, skip rule 1.(vi)
Elitist local search step varies from 10 to 50, skip rule 10.After the parameters experiment, we set the parameters of TCEA as in Table3. In order to compare the performance of TCEA with that of GA and SA in a fair circumstance, we make the similar parameters experiments for GA and SA, respectively, in which the total CPU time consumption is kept in the same level as TCEAs. After the experiments, we can set the parameters of TCEA, GA, and SA as in Table 3. Since the twin-screw coding strategy is a general encoding strategy designed for MLPS problems, we employ the coding strategy in all the three algorithms.Table 3
Parameters setting for 3-level MLPS study case.
pop_sizemax_gensPcPmnLTCEA200200×50.90.120GA20010000.90.1T0TfinalβnLSA10000.10.99950


## 5.4. Results Analysis

Since all the algorithms that we study are metaheuristic algorithms, we run each algorithm for 20 independent times to collect their statistical results. With parameters set in Table3, we get the optimization results as in Table 4 and figure 10, in which the average result of TCEA outperforms that of GA and SA:Table 4
Statistical optimization results of the 3-level MLPS with TCEA, GA and SA.
Algorithmsavg.Makespanmax.Makespanmin.Makespandev.MakespanTCEA5612.4563255983.86GA5691.2570456688.61SA5788.55814576811.26The average makespan of product 0–0 obtained by our TCEA is 5612.4, and the results of GA and SA are 5691.2 and 5788.5, respectively; all these metaheuristic algorithms outperformed current technique in the factory (6580).However, the computational cost of TCEA (about 270s) is a bit longer than that of GA (about 250s) and SA (about 190s) in the same experiment environment (all the experiments are taken in a CPU Pentium IV-3.2 G, 1 G Ram PC platform).In general, the statistical results show the outstanding performance of our TCEA by contrast to that of GA and SA to cope with an MLPS problem.Figures11 and 12 show two typical solutions derived from TCEA and GA, respectively.Figure 11
A typical solution of 3-level MLPS with TCEA.Figure 12
A typical solution of 3-level MLPS with GA.


## 6. Conclusion

A twin-screw-coded evolutionary algorithm (TCEA), which is motivated by solving a typical multi-level production scheduling problem (MLPS), is put forward in this paper. The principle of the new algorithm is introduced; besides, a real 3-level satellite part’s case study has revealed the superiority of TCEA by contrast to GA and SA, which further demonstrates the effectiveness and practicability of our integrated model and optimization technique in solving such complex production scheduling problems. As we know, MLPS is a complex NP-hard problem; this work just shows the preliminary result of our project. Further research has been taken, in which multiobjective MLPS problem modeling and optimization technique has been taken into consideration.



---

*Source: 781598-2010-07-25.xml*