# An Extended Flexible Job Shop Scheduling Model for Flight Deck Scheduling with Priority, Parallel Operations, and Sequence Flexibility

Authors: Lianfei Yu; Cheng Zhu; Jianmai Shi; Weiming Zhang
Journal: Scientific Programming
 (2017)

---

## Abstract

Efficient scheduling for the supporting operations of aircrafts in flight deck is critical to the aircraft carrier, and even several seconds’ improvement may lead to totally converse outcome of a battle. In the paper, we ameliorate the supporting operations of carrier-based aircrafts and investigate three simultaneous operation relationships during the supporting process, including precedence constraints, parallel operations, and sequence flexibility. Furthermore, multifunctional aircrafts have to take off synergistically and participate in a combat cooperatively. However, their takeoff order must be restrictively prioritized during the scheduling period accorded by certain operational regulations. To efficiently prioritize the takeoff order while minimizing the total time budget on the whole takeoff duration, we propose a novel mixed integer liner programming formulation (MILP) for the flight deck scheduling problem. Motivated by the hardness of MILP, we design an improved differential evolution algorithm combined with typical local search strategies to improve computational efficiency. We numerically compare the performance of our algorithm with the classical genetic algorithm and normal differential evolution algorithm and the results show that our algorithm obtains better scheduling schemes that can meet both the operational relations and the takeoff priority requirements.


---

## Body

## 1. Introduction

When the battle comes, carrier-based aircrafts have to take off wave by wave. The operation of the first wave of aircraft takeoff is usually the most complicated since several types of carrier-based aircrafts have to take off synergistically. Before taking off, each carrier-based aircraft requires certain supporting operations, for instance, inspection, charging, oiling, and weapon mount. Some operations can be performed simultaneously, including oiling and weapon mount. All aircrafts do not need to wait for their order since this class of operations can be processed by some different supporting groups at the same time. Nevertheless, some other operations cannot be processed at the same time. For instance, charging oxygen and oiling cannot be processed simultaneously due to the safety concern and thus aircrafts have to be processed one by one. Therefore, the latter class of supporting operations in turn affects the takeoff priority orders of aircrafts and it is important to schedule the supporting groups efficiently such that all carrier-based aircrafts take off in the minimal time horizon. The scheduling problem is usually called “deck scheduling,” which can be viewed as an extension of the Flexible Job Shop Scheduling Problem (FJSP) by incorporating some practical restrictions.Job Shop Scheduling Problem (JSP) falls in the classical group of combinatorial optimization problems and is well known to be NP-hard [1]. The Flexible Job Shop Scheduling Problem (FJSP) is an extension of the JSP [2]. However, traditional models of JSP and FJSP do not consider the typical features of the scheduling for the carrier-based aircrafts on the deck, including the following.First, in most JSP and FJSP models, they usually restrict the precedence of operations in each job but do not consider priorities of jobs, which means any job can be completed earlier than others. However, on the deck of the aircraft carrier, the first wave of carrier-based aircrafts may include helicopter, early warning aircraft, and fighter jets, and there are strictly takeoff orders for different carrier-based aircrafts. According to operational regulations, the helicopter must take off firstly, and then the early warning aircraft, fighter jets, which make it more difficult to schedule the supporting resources.Second, in most JSP and FJSP models, the precedence among operations of a job is predetermined and cannot be changed. In deck scheduling, some operations of a carrier-based aircraft can be processed before or after other operations, which will increase the scheduling flexibility. For example, on the deck of the aircraft carrier, the carrier-based aircraft needs to be charged oxygen and oiled, and it is permitted to charge oxygen first, then oil, or vice versa. But for safety, the two operations cannot be processed simultaneously.Third, the operations are processed one by one in most JSP and FJSP, but in the job of supporting carrier-based aircrafts, it will take a long time to charge oil and configure weapon sequentially. In order to save time, the two operations can be processed simultaneously.To the best of our knowledge, only few researches considered the three typical features above in a single scheduling problem. We address these challenges in terms of the extended FJSP (EFJSP) with priority, parallel operations, and sequence flexibility. Based on FJSP, we propose a novel MILP model for the problem. Nevertheless, when the typical restrictions are incorporated into the model, few existing algorithms in the literatures can solve it efficiently. Motivated by the hardness, we develop an improved differential evolution algorithm combined with typical local search strategies. By using some practical instances flight deck scheduling and random instances, we compare the performance of the proposed algorithm with the general genetic algorithm and differential evolution algorithm. Furthermore, we also analyze the impact of the local search strategies on the performance.


## 2. Literature Review

FJSP has been widely studied, but most of current literatures study the scheduling problem involving one or two of the above three features, which are priority, parallel operations, and sequence flexibility. Alvarez-Valdes et al. [3] introduced some operations which can be processed simultaneously in the glass production; a heuristic algorithm combining the priority rule with local search is proposed to minimize the optimization criteria, which is based on the earliest completion and delay penalty. Vilcot and Billaut [4] discussed the process characteristics of the printing industry, where each operation has at least one former operation, but only a subsequent operation, in a complete process, and some operations can be carried out at the same time. Özgüven et al. [5] introduced a relatively simple integer programming model, in which a job can choose a feasible routing from some reverse sets. However, once the process of the job is determined, no operations can be processed simultaneously. Birgin et al. [6] proposed a MILP model for an extended version of the FJSP, which allowed the precedence to be given by an arbitrary directed acyclic graph rather than a linear order among operations of a job, and compared with [5], the result showed the accuracy of the model. In the Birgin model [6], Birgin et al. [7] put forward the scheduling list algorithm to solve the problem, further extending to the filtered beam search method. The experiment results show that the efficiency and the effect of these two methods are very good.For the FJSP, each operation could be processed by some machines at different time. If the job has several kinds of processing routes, selecting one of them is called process planning. At first, the process planning is optimized in the case of sufficient resources, but the reality shows that this cannot fully utilize resources. Thus, Saygin and Kilic [8] established the integrated model combining process design with production scheduling, which included 5 stages: flexible process decomposition, machine tool selection, process optimization, scheduling, and rescheduling. There are some similar models such as two-level model [9], two-stage model [10], flexible process selection model [11], and mixed integer programming model [5]. However, in these studies, once the process route is selected, the order of operations is determined, and there is no essential difference with JSP and FJSP.There are also some researches on the flight deck scheduling; Ryan et al. [12] designed an interactive local and global decision supporting system named deck operation course of action planner for aircraft carrier deck scheduling. They applied the reverse reinforcement learning method [13] and strategy optimization based on queuing network [14] in aircraft adaptive multistage scheduling problem, and through deck operation simulation, the scheduling performance of the optimization based on integer linear programming model is compared with the traditional expert heuristic rules [15]. According to the difference of carrier-based aircraft support organization of different launch mode carrier-based aircraft needed, Wei et al. [16] introduced two carrier-based aircraft support scheduling models on the basis of reasoned supposition and propriety predigesting: carrier-based aircraft support scheduling model of wavily launching carrier-based aircraft on carrier [17] and rescheduling model of carrier-based aircraft support based on mission [18]. The two models are solved based on the FJSP theory and rescheduling theory, respectively. According to the constraint of supporting process for single-carrier aircraft, a multiobjective integrated supporting scheduling model of multicarrier aircrafts was established by Han et al. [19], in which some operations can be processed simultaneously.From the above reviews, it can be seen that most researches are concerned about one of the three features, and there are few researches which consider the three features simultaneously. Thus, the scheduling problem generated in the supporting process for carrier-based aircrafts is a new extension of the classical FJSP.The remainder of this paper is organized as follows. In Section3, some definitions will be proposed; the new model is formalized. In Section 4, the improved DE algorithms for the extension are illustrated in detail. The computational results and analysis are provided in Section 5. Finally, we conclude the paper in Section 6.


## 3. The Formulation of the EFJSP Model

The deck scheduling for carrier-based aircrafts is to schedule a number of supporting groups to complete the operations for preparing the aircrafts well and let them take off as soon as possible. There are usually a set of operations to be completed before the carrier-based aircraft can take off, such as inspection, charging, oiling, and weapon mount. Each operation must be conducted by one supporting group selected from a set of candidate ones whose efficiency is different. There are also operational rules which restrict the sequence of taking off for different types of aircrafts; for instance, the helicopter must take off before all the other aircrafts. Further, the sequence of some operations can be exchanged. For example, charging oxygen is allowed to be processed before or after oiling, but not at the same time. The scheduling can be decomposed into two subproblems: the sequencing subproblem which determines a sequence for all operations and the routing subproblem that selects a suitable supporting group for each operation. The objective is to find a scheduling that minimizes the makespan.We can see that the EFJSP is more complex than the FJSP: First, in the EFJSP, different jobs have different priority, and the final operation of the job with higher priority must be completed earlier than others with lower priority. Second, some operations of a job can be processed simultaneously, such as operations 1 and 2 in Figure1. Third, some operations of a job can be processed by exchanging their preference order, in Figure 1, where operations 4 and 5 can be swapped.Figure 1
The process of a simple job. The nodes mean the operations of job, the line with arrow represents the precedence constraint between operations, and the dash line with arrow is the alternative route of job.Some definitions will be proposed based on these features which have been mentioned previously.Definition 1 (job).
All the supporting operations of a carrier-based aircraft are considered as a job.Definition 2 (priority).
When many jobs need to be done, the more important job should be completed earlier. However, for the job with higher priority, it does not mean that each operation has to be finished earlier than others; in order to make good use of the supporting groups, it is only required that the final operation must be finished earlier than others with lower priority.Definition 3 (parallel operations).
There are no precedent relations among some operations in a job, which can be processed simultaneously.Definition 4 (sequence flexibility).
This means that there are two operations in a job; they are neighbors and can change their precedent constraint but cannot be processed simultaneously.Because the EFJSP is more complex than the FJSP, thus it is also NP-hard. In detail, the following assumptions are made in the paper:(1)
All the supporting groups are available at time 0.(2)
All the jobs can be processed at time 0.(3)
Only one operation can be processed by a supporting group at a time.(4)
Each operation must be completed without interruption once it starts.(5)
The precedence of some operations for a job is predefined and cannot be changed; some can exchange their preference orders.(6)
The setting up time of supporting groups and transferring time of operations are negligible.The following indices, sets, and parameters are used in the new model:i,i′: indices for jobsj,j′: indices for operationsk: indices for supporting groupsn: number of jobsmi: number of operations in job iM: set of supporting groupsOij: operation j of job iMij: set of supporting groups on which operation Oij can be processed, Mij⊆MPij: immediate job predecessor of operation OijTijk: processing time if operation Oij is to be performed by supporting group kL: a very large positive numberDecision Variables S i j: starting time of operation Oij C i j: completion time of operation Oij Y i j k: 1 if supporting group k is assigned to operation Oij; 0, otherwise X i j i ′ j ′ k: 1 if operation Oij is scheduled before operation Oi′j′ where both operations are processed by supporting group k; 0, otherwise Z i: 1 if operation j is processed before operation j′ in job i; 0 if operation j′ is processed before operation j in job iThe EFJSP is formulated into a MILP. The mathematical model is as follows:(1)min⁡Cmax=min⁡max⁡Cimi,(2)Cij=Sij+∑k∈MijTijk∗Yijk,(3)∑k∈MijYijk=1,(4)max⁡Cih≤Sij,h∈Pij,(5)Xiji′j′k+Xi′j′ijk≤Yijk,i≠i′,(6)Xiji′j′k+Xi′j′ijk≤Yi′j′k,i≠i′,(7)Xiji′j′k+Xi′j′ijk≥1-1-Yi′j′kL-1-YijkL,i≠i′,(8)Sij≥Ci′j′+1-∑k∈MijXi′j′ijkL,i≠i′.If the priority of i is higher than i′, then (9)Cimi≤Ci′mi′,(10)Cij-Sij′Zi+Cij′-Sij1-Zi≥0,j≠j′,(11)Sij≥0,(12)Xiji′j′k∈0,1,(13)Yijk∈0,1,(14)Zi∈0,1,(15)i,i′=1,…,n;j=1,…,mi;j′=1,…,mi′;k∈Mij.The makespan is the objective function of the problem. Constraint (2) makes sure that operation is not interrupted. Constraint (3) guarantees that an operation is processed by one supporting group. Constraint (4) describes the operation precedence constraints. Constraints (5)–(8) ensure that operations cannot be processed by the same supporting group at the same time. Constraint (9) shows jobs with higher priority should be completed earlier than others with lower priority. Constraint (10) allows some operations to exchange precedence order, but the operations will not be processed simultaneously.Comparing with the FJSP model, the EFJSP model includes more constraints, such as constraint (4), parallel operation; constraint (9), priority; and constraint (10), sequence flexibility.


## 4. Proposed Improved DE for the EFJSP Model

For the FJSP, when the number of jobs is small, some exact algorithms can be employed to solve it, for example, brand-and-bound [20–23], mathematical programming [24–26], and Lagrangian relaxation [27–30]. But when the number of jobs rises, it is difficult to find an optimal solution in a short time. Many researchers have heuristic methods to solve the FJSP, such as genetic algorithm (GA) [31–34], ant colony algorithm [35], particle swarm optimization [36], tabu search [37], leapfrog algorithm [38], bee colony algorithm [39], differential evolution (DE) algorithm [40–44], and memetic algorithms [45, 46]. Some literatures study the combinations of a variety of algorithms or an algorithm with local search to obtain better performance, such as differential evolution algorithm combining with genetic algorithm [47], particle swarm optimization combining with simulated annealing [48], and tabu search combining with local search [49]. But these algorithms cannot solve the EFJSP model directly, and new improved algorithms should be explored.DE is an optimization algorithm proposed by Storn and Price [50] for solving Chebyshev polynomials, which encodes the chromosome with floating-point vector in continuous space. DE algorithm is an intelligent optimization method based on population, which searches the entire population space with the help of the disturbance formatting by individual difference, and seeks the optimal solution of the problem through the greedy competition mechanism. The DE algorithm has less controlled parameters and is easy to understand and implement. Due to its high reliability, robustness, and good performance, DE has been widely used in optimization area. There have been some works using DE algorithm to solve FJSP and JSP [40–44], which show the advantages of the DE algorithm compared with other algorithms. The EFJSP problem is an extension of FJSP, and we made some improvement on DE by integrating some local research strategies to solve our problem more efficiently. The basic framework of DE is just as presented in Figure 2.Figure 2
The flow of basic DE.


### 4.1. Encoding

The EFJSP model can be decomposed into two subproblems: sequencing and routing. Thus, a chromosome contains two parts; more specifically, the first part (part 1) is the sequencing that determines an operation order within a job and an operation sequence of all jobs; the second part (part 2) is the routing that assigns each operation to an appropriate supporting group. Some works [51, 52] have been done in the method of sequencing and routing.


#### 4.1.1. Operation Sequence

The number of all operations is calculated asd=∑i=1nmi. Let a number (ranging from 1) denote the ID of each operation, and a smaller value of ID means a higher priority in a job.An example of EFJSP is shown in Table1 as an illustration, the precedent constraints of operations in job 1 are shown in Figure 1, and the precedent constraints of operations in job 2 and job 3 are liner. In Table 1, there are 3 supporting groups: G1, G2, and G3. Each entry of the input table denotes the processing time of that operation on the corresponding supporting group. The tag “—” means that a supporting group cannot process the corresponding operation. The ID in Table 2 denotes the instances in Table 1.Table 1
Jobs and optional supporting groups.
Job Operation G 1 G 2 G 3 1 O 11 2 3 — O 12 5 6 7 O 13 — — 4 O 14 6 — 8 O 15 — 10 — O 16 3 5 —  2 O 21 5 — 7 O 22 — 7 6  3 O 31 4 3 — O 32 7 6 5Table 2
ID number assigned to operations.
Operation O 11 O 12 O 13 O 14 O 15 O 16 O 21 O 22 O 31 O 32  ID 1 2 3 4 5 6 7 8 9 10Part 1 code can be generated by the IDs listed randomly; the length of part 1 isd. Take the instances in Table 1 as an example, and suppose there is a random operation sequence: part 1 = [8,2,1,3,5,4,9,6,7,10], and O22(8) is the immediate precedent operation of O21(7); it is obvious that the sequence breaks the precedent constraint in job 2; as a result, part 1 code should be changed as [7,2,1,3,5,4,9,6,8,10].


#### 4.1.2. Supporting Group Assignment

Following the operation sequencing, each operation should select a supporting group in its alternative supporting group set. Take the instances in Table1 as an example, and suppose part 1 is [7,2,1,3,5,4,9,6,8,10], and number “7” denotes the operation O21, which can be processed by G1 or G3; if the operation O21 is processed by G3, then the corresponding gene is “2” in part 2. A possible supporting group assignment is shown in Table 3. A chromosome is composed of part 1 and part 2.Table 3
Instructions to the encoding of assigning supporting groups.
Part 1 7 2 1 3 5 4 9 6 8 10  Operation O 21 O 12 O 11 O 13 O 15 O 14 O 31 O 16 O 22 O 32  Groups G 1 G 1 G 1 G 3 G 2 G 1 G 1 G 1 G 2 G 1 G 3 G 2 G 2   G 3 G 2 G 2 G 3 G 2 G 3        G 3  Assigned G 3 G 3 G 1 G 3 G 2 G 3 G 2 G 2 G 2 G 1  Part 2 2 3 1 1 1 2 2 2 1 1


#### 4.1.3. The IDs of Job with Higher Priority

In the EFJSP model, some jobs have higher priorities, which must be finished earlier; as a result, the IDs should be assigned to the jobs with higher priority first. Chromosomes which cannot satisfy the rule should be abandoned.


### 4.2. Decoding

#### 4.2.1. Decoding the Chromosome to an Active Scheduling

Decoding is to convert the chromosome into a feasible solution; there are mainly three decoding methods: active scheduling, semiactive scheduling, and nondelay scheduling. Some works [53, 54] have found that the optimal scheduling to achieve the goal of makespan is an active scheduling; thus, we decode the chromosome to an active scheduling here. The steps are shown as follows.Step 1.
Set upnumber=1.Step 2.
Take thenumberth gene in part 1 and convert it into the operation Oij; then select the numberth gene in part 2 and convert it into supporting group k; the processing time is Tijk which operation Oij processed by the supporting group k.Step 3.
If the operationOij is the first one to be processed by the supporting group k, Sij=max⁡CiPij; otherwise we should find all the idle time intervals [TSk,TEk] in the supporting group k.Step 4.
If the length of the idle time interval is bigger thanTijk according to (16), the operation Oij should be inserted into the interval; otherwise, it should be allocated in the end of the supporting group k.(16)Sij=max⁡max⁡CiPij,TSk,Sij+Tijk≤TEk.Step 5.
Repeat Steps 2 to 4 until all operations of part 1 have been processed.


### 4.3. Initial Population

Population initialization is crucial since it can affect the speed of the algorithm’s convergence and the quality of the solution. In this part, we present a method to assign each operation to a suitable supporting group. The method focuses on the processing time and workload of supporting groups, namely, the global assignment, which is an improved one of the work [52]; the steps are as follows.Step 1.
Create a new array to record the working time of each supporting group; initial values are set as 0.Step 2.
Follow the order sequentially; take an operation from part 1.Step 3.
Add the processing time of each alternative supporting group to the corresponding location in the array; then the corresponding supporting group with the shortest time will be selected for the operation; if there are several supporting groups with the same minimum time, the one with the least processing time should be selected.Step 4.
The order of the selected supporting group in the alternative supporting group set will be added to the corresponding gene bit of part 2.Step 5.
In the array, modify the total working time of the selected supporting group, and leave the others unchanged.Step 6.
Continue from part 1, and repeat Steps 3 to 6 until all operations are processed.


### 4.4. Mutation

For the mutation, DE is not suitable for discrete problems; the following two methods are applied: POX (Precedence Operation Crossover, POX) [55] and MPX (Multiple Point Crossover, MPX) [56]. The POX inherits the characteristics of operation sequence from parent chromosomes to child chromosomes; the MPX transits the features of supporting group assignment from parent chromosomes to child chromosomes.


#### 4.4.1. POX

Precedence operation crossover is the process to cross the operation sequence in the parent chromosomes, and the supporting group assignments are reserved to the child chromosomes. The process is as follows.First, the set of jobs1,…,n is divided into two random complementary and nonempty sets: S1, S2.Second, all the operations of jobs in setS1 with their assigned supporting groups are copied from “Parent 1” chromosome to “Child 1” chromosome, and all the operations of jobs in set S1 with their assigned supporting groups are copied from “Parent 2” chromosome to “Child 2” chromosome.Third, all the operations of jobs in setS2 with their assigned supporting groups are copied from “Parent 2” chromosome to “Child 1” chromosome, and all the operations of jobs in set S2 with their assigned supporting groups are copied from “Parent 1” chromosome to “Child 2” chromosome.Taking Table1 as an example, the process of POX is shown in Figure 3.Figure 3
The process of POX.


#### 4.4.2. MPX

Multiple point crossover is the process to cross the supporting group assignment in the parent chromosomes, and the operation sequence is reserved to the child chromosomes. The process is as follows.First, an integer setR01 containing 0 and 1 is randomly generated, the length of which is equal to the half-length of chromosomes.Second, the operations and their assigned supporting groups whose positions correspond to 0 in setR01 are copied from “Parent 1” chromosome to “Child 1” chromosome.Third, selecting the operations in “Parent 1” chromosome whose positions correspond to 1 in setR01, these operations and assigned supporting groups in “Parent 2” chromosome are copied to “Child 1” chromosome.Similarly, for the “Child 2” chromosome, the operations and their assigned supporting groups whose positions correspond to 0 in setR01 are copied from “Parent 2” chromosome. Then, selecting the operations in “Parent 2” chromosome whose positions correspond to 1 in set R01, these operations and assigned supporting groups in “Parent 1” chromosome are copied to “Child 2” chromosome. Taking Table 1 as an example, the process of MPX is shown in Figure 4.Figure 4
The process of MPX.The mutation of chromosome is performed by(17)Vig=F⊗GF⊗GXr2g,Xr3g,Xr1g,where r1≠r2≠r3≠i, Xr2g is the r2th chromosome in the gth population, Vig is the ith chromosome in the gth mutated population, F is scale factor, and ⊗ is cross symbol; the calculation of (17) is composed of two parts: (18) and (19).(18)Yig=F⊗GXr2g,Xr3g=GXr2g,Xr3g,rand<FXr2g,otherwise.Equation (18) denotes the difference vector between two parent chromosomes; rand is a random number between 0 and 1. When sequencing the operations, G(Xr2g,Xr3g) will be crossed in the POX way. When assigning the supporting groups, G(Xr2g,Xr3g) will be crossed in the MPX way.(19)Vig=F⊗GYr2g,Yr3g=GYig,Xr1g,rand<FYig,otherwise.Equation (19) denotes the process that parent chromosomes cross with difference vector. We compute G(Yig,Xr1g) using the way in G(Xr2g,Xr3g).


### 4.5. Crossover

After mutation, the crossover operator is applied to generate the trial vectorUijg as follows:(20)Uijg=Vijg,rand<CRXijg,otherwise,where CR∈[0,1] is a crossover parameter to control the diversity of the population, rand denotes a random number between 0 and 1, and the process of crossover is shown in Figure 5. When we obtain Uijg, some work needs to be done for the deduplication and completion of solution. The construction of new chromosomes should guarantee the priority of some certain operations.Figure 5
An illustration example of the crossover.


### 4.6. Selection

The selection operator is used to decide whether the trial vectorUig is the member of the population for the next generation, which can be described as(21)Xig+1=Uig,fUig<fXigXig,otherwise,where f(·) is the objective function to be minimized. Therefore, the trial vector Uig will replace the corresponding target vector Xig in the next generation if its objective function value is not greater than that of the target vector; otherwise, the target vector remains in the population.


### 4.7. Local Search Algorithm

In this part, a local search algorithm based on neighborhood structure is proposed to improve the scheduling. And the neighborhood structure is based on the critical path in the disjunctive graph, which is a kind of representation for the scheduling.


#### 4.7.1. Disjunctive Graph

Disjunctive graphG=(N,A,E) [25] is an important formulation of FJSP, where N denotes a set of all the nodes, and each node represents an operation in the EFJSP (including dummy starting and terminating operations); A represents the conjunctive arcs connecting two adjacent operations within a job, and the direction represents the processing order between the two connected operations; E denotes all disjunctive arcs connecting two adjacent operations which are processed by the same supporting group and their directions display the processing order. The processed time of each operation is generally labeled on the corresponding node and regarded as the node’s weight. In Figure 6, O11, O32 are processed by the supporting group G1, and O15, O31, O16, and O22 are executed successively by the supporting group G2, and O21, O12, O13, and O14 are performed by the supporting group G3.Figure 6
The disjunctive graph. The nodes mean the operations, the solid lines represent the workflow between operations in a job, and the dash lines show the workflow in a supporting group.A scheduling of the EFJSP is feasible, if there are no cyclic paths in its corresponding disjunctive graph. If a disjunctive graph is acyclic, the longest path between the starting nodeS and the ending node E is called a critical path, whose length is defined as the makespan of the scheduling. Operations on the critical path are critical operations. For example, the disjunctive graph illustrated in Figure 6 is a feasible scheduling as it is acyclic, its critical path is S→O21→O12→O13→O15→O14→O16→O22→E, and the makespan is 48. Here, we define L(u,v) as the longest path from node u to node v.


#### 4.7.2. Neighborhood Structures

Neighborhood structure is key to the local search, which can guide the search of algorithm effectively and avoid the blind search. The neighborhood structure of JSP is designed to make good use of the idle time in supporting groups. For the FJSP, another factor should be considered, which is the assignment of the supporting groups. For the EFJSP, the priority of jobs, parallel operations, and the flexibility of operation order will influence the neighborhood structure. Therefore, a new local search algorithm will be introduced based on the work [57]. Since the critical path defines the makespan of the scheduling, so only the critical operations should be used to search for idle time in the alternative supporting group set and implement the local search.The following notations are used in the local search algorithm:w: critical operationJP(w): set of immediate precedent operations of wJS(w): set of immediate succeeding operations of wsE(w): the earliest starting time of wcE(w): the earliest completing time of wsL(w): the latest starting time of wcL(w): the latest completing time of wThe idle time in the alternative supporting groups ofw can be divided into two types: (1) the idle time in current supporting group which processed w and (2) the idle time in other supporting groups which are in the alternative supporting group set of w. Therefore, the move of w is also two types: (1) in current supporting group and (2) in other alternative supporting groups. Each type of idle time corresponds to a kind of local search.The first-level local search is the moving in the current supporting group.It is known that each operation inJP(w) must be finished before the starting of w, and w must be finished before the starting of each operation in JS(w). The biggest time interval of the processing w is [max⁡(cE(JP(w))),min⁡(sL(JS(w)))].Suppose operationsx and y are neighbors, processed by the same supporting group with w. The biggest idle time interval between x and y is [cE(x),sL(y)]; if the intersection of sets [cE(x),sL(y)] and [max⁡cEJPw,min⁡(sL(JS(w)))] is not empty, it is possible to decrease makespan by inserting w between x and y. So the condition to move w in the current supporting group is (22) [33]:(22)cEx,sLy∩max⁡cEJPw,min⁡sLJsw≠0.The second-level local search is the moving to the other alternative supporting group.Similarly, operationsx, y are neighbors; processed by the supporting group k, which does not process w. Twk is the processing time if w is processed by k. If the intersection of sets between [cE(x),sL(y)] and [max⁡cEJPw,min⁡(sL(JS(w)))] is bigger than Twk, then it is possible to decrease the makespan by inserting w between x and y. Therefore, the condition to move w to the other supporting group k is [33](23)cEx,sLy∩max⁡cEJPw,min⁡sLJsw>Twk.The scheduling may not be feasible after moving the critical operations; it is important to find the conditions that can guarantee the feasibility of the scheduling when we are moving the critical operations. The work [58] proposed two rules to make sure the scheduling of FJSP is feasible when moving critical operations; we will improve these rules for the EFJSP model.


#### 4.7.3. Rules for Moving Operation within the Current Supporting Group

Theorem 5.
For a feasible scheduling of an EFJSP model, operationsu, v are processed by the same supporting group and u is precedent to v; if one of the following conditions is satisfied, then when u becomes the immediate succeeding operation of v, the scheduling is still feasible: (1) u is the final operation of job, and the set JSu is empty; (2) ∀u′∈JSu, Lv,E≥Lu′,E, and v∉JS(u), the set JS(u) is nonempty; (3) if u and v are the operations of a job, they can be swapped.
The proof of (1) and (2) can be referred to in [58]. Under condition (3), when operations u and v are swapped, which do not influence other operations, the job still can be processed, so the scheduling is feasible.Theorem 6.
For a feasible scheduling of an EFJSP model, operationsu, v are processed by the same supporting group and u is precedent to v; if one of the following conditions is satisfied, then when v becomes the immediate precedent operation of u, the scheduling is still feasible: (1) v is the first operation of job, and the set JP(v) is empty; (2) ∀v′∈JP(v), L(0,u)+Tu≥L(0,v′+Tv′), and u∉JP(v), the set JP(v) is nonempty; (3) if u and v are the operations of a job, they can be swapped.
The proof of (1) and (2) can be seen in [58] and the proof of (3) is the same as Theorem 5.


#### 4.7.4. Rules for Moving Operation to the Other Supporting Groups

Theorem 7.
For a feasible scheduling of an EFJSP model, operationsx, y are neighbors, processed by the same supporting group, and x is the immediate precedent operation of y; the supporting group is the alternative supporting group of w, which will be inserted between x and y; if the two following conditions are met simultaneously, then the scheduling is still feasible: (1) w is the final operation of job, and the set JS(w) is empty, or ∀w′∈JS(w), L(x,E)≥L(w′,E), and x∉JS(u), the set JS(w) is nonempty; (2) w is the first operation of job, and the set JP(w) is empty, or ∀w′∈JP(w), L(0,y)+Ty≥L(0,w′+Tw′), and y∉JP(w), the set JP(w) is nonempty.
The proof can be referred to in [58].


#### 4.7.5. Local Search Algorithm

With the three theorems, the scheduling obtained after moving the critical operations is feasible. The detailed procedure to obtain acceptable scheduling from the neighborhood structure is described in Algorithm1.Algorithm 1:The local search algorithm.
Find a critical pathS→CO1→CO2→⋯→COw→E in a scheduling for  i=1 to w  do Get the alternative supporting group setCM1 of critical operation COi for  j=1 to length(CM1)  do Find the setlocationj of positions where COi can move into supporting group j for  k=1 to length(locationj)  do if  j is the current supporting group processing COi and the condition (22) is satisfied then move operationCOi into position k, return the new scheduling; end if if  j is not the current supporting group processing COi and the condition (23) is satisfied  then move operationCOi into position k, return the new scheduling; end if end for end for end for


### 4.8. Improved DE with Local Search

The improved DE with local search is depicted as follows.Step 1.
Set the size of the populationNP, scale factor F, crossover probability CR, and maximum number of generations Gmax.Step 2.
Initialize the population, when assigning supporting groups, the number of chromosomes selecting the supporting group is0.8∗NP with the method of the global assignment, and the others select their supporting groups randomly.Step 3.
Evaluate each chromosome.Step 4 (mutation).
GenerateNP donor vectors Vig, i=1,…,NP.Step 5 (crossover).
GenerateNP trial vectors Uig, i=1,…,NP.Step 6 (selection).
DetermineNP target vectors Xig+1, i=1,…,NP, by one-to-one selection operator for the next generation.Step 7 (local search).
Choose the chromosome whose makespan is the biggest one inXig+1, i=1,…,NP, perform the local search to the chromosome, and if a new chromosome is found whose makespan is smaller than that one, then it will be replaced by the new chromosome.Step 8.
IfG<Gmax, then repeat Steps 4 to 7; otherwise, stop.


## 4.1. Encoding

The EFJSP model can be decomposed into two subproblems: sequencing and routing. Thus, a chromosome contains two parts; more specifically, the first part (part 1) is the sequencing that determines an operation order within a job and an operation sequence of all jobs; the second part (part 2) is the routing that assigns each operation to an appropriate supporting group. Some works [51, 52] have been done in the method of sequencing and routing.


### 4.1.1. Operation Sequence

The number of all operations is calculated asd=∑i=1nmi. Let a number (ranging from 1) denote the ID of each operation, and a smaller value of ID means a higher priority in a job.An example of EFJSP is shown in Table1 as an illustration, the precedent constraints of operations in job 1 are shown in Figure 1, and the precedent constraints of operations in job 2 and job 3 are liner. In Table 1, there are 3 supporting groups: G1, G2, and G3. Each entry of the input table denotes the processing time of that operation on the corresponding supporting group. The tag “—” means that a supporting group cannot process the corresponding operation. The ID in Table 2 denotes the instances in Table 1.Table 1
Jobs and optional supporting groups.
Job Operation G 1 G 2 G 3 1 O 11 2 3 — O 12 5 6 7 O 13 — — 4 O 14 6 — 8 O 15 — 10 — O 16 3 5 —  2 O 21 5 — 7 O 22 — 7 6  3 O 31 4 3 — O 32 7 6 5Table 2
ID number assigned to operations.
Operation O 11 O 12 O 13 O 14 O 15 O 16 O 21 O 22 O 31 O 32  ID 1 2 3 4 5 6 7 8 9 10Part 1 code can be generated by the IDs listed randomly; the length of part 1 isd. Take the instances in Table 1 as an example, and suppose there is a random operation sequence: part 1 = [8,2,1,3,5,4,9,6,7,10], and O22(8) is the immediate precedent operation of O21(7); it is obvious that the sequence breaks the precedent constraint in job 2; as a result, part 1 code should be changed as [7,2,1,3,5,4,9,6,8,10].


### 4.1.2. Supporting Group Assignment

Following the operation sequencing, each operation should select a supporting group in its alternative supporting group set. Take the instances in Table1 as an example, and suppose part 1 is [7,2,1,3,5,4,9,6,8,10], and number “7” denotes the operation O21, which can be processed by G1 or G3; if the operation O21 is processed by G3, then the corresponding gene is “2” in part 2. A possible supporting group assignment is shown in Table 3. A chromosome is composed of part 1 and part 2.Table 3
Instructions to the encoding of assigning supporting groups.
Part 1 7 2 1 3 5 4 9 6 8 10  Operation O 21 O 12 O 11 O 13 O 15 O 14 O 31 O 16 O 22 O 32  Groups G 1 G 1 G 1 G 3 G 2 G 1 G 1 G 1 G 2 G 1 G 3 G 2 G 2   G 3 G 2 G 2 G 3 G 2 G 3        G 3  Assigned G 3 G 3 G 1 G 3 G 2 G 3 G 2 G 2 G 2 G 1  Part 2 2 3 1 1 1 2 2 2 1 1


### 4.1.3. The IDs of Job with Higher Priority

In the EFJSP model, some jobs have higher priorities, which must be finished earlier; as a result, the IDs should be assigned to the jobs with higher priority first. Chromosomes which cannot satisfy the rule should be abandoned.


## 4.1.1. Operation Sequence

The number of all operations is calculated asd=∑i=1nmi. Let a number (ranging from 1) denote the ID of each operation, and a smaller value of ID means a higher priority in a job.An example of EFJSP is shown in Table1 as an illustration, the precedent constraints of operations in job 1 are shown in Figure 1, and the precedent constraints of operations in job 2 and job 3 are liner. In Table 1, there are 3 supporting groups: G1, G2, and G3. Each entry of the input table denotes the processing time of that operation on the corresponding supporting group. The tag “—” means that a supporting group cannot process the corresponding operation. The ID in Table 2 denotes the instances in Table 1.Table 1
Jobs and optional supporting groups.
Job Operation G 1 G 2 G 3 1 O 11 2 3 — O 12 5 6 7 O 13 — — 4 O 14 6 — 8 O 15 — 10 — O 16 3 5 —  2 O 21 5 — 7 O 22 — 7 6  3 O 31 4 3 — O 32 7 6 5Table 2
ID number assigned to operations.
Operation O 11 O 12 O 13 O 14 O 15 O 16 O 21 O 22 O 31 O 32  ID 1 2 3 4 5 6 7 8 9 10Part 1 code can be generated by the IDs listed randomly; the length of part 1 isd. Take the instances in Table 1 as an example, and suppose there is a random operation sequence: part 1 = [8,2,1,3,5,4,9,6,7,10], and O22(8) is the immediate precedent operation of O21(7); it is obvious that the sequence breaks the precedent constraint in job 2; as a result, part 1 code should be changed as [7,2,1,3,5,4,9,6,8,10].


## 4.1.2. Supporting Group Assignment

Following the operation sequencing, each operation should select a supporting group in its alternative supporting group set. Take the instances in Table1 as an example, and suppose part 1 is [7,2,1,3,5,4,9,6,8,10], and number “7” denotes the operation O21, which can be processed by G1 or G3; if the operation O21 is processed by G3, then the corresponding gene is “2” in part 2. A possible supporting group assignment is shown in Table 3. A chromosome is composed of part 1 and part 2.Table 3
Instructions to the encoding of assigning supporting groups.
Part 1 7 2 1 3 5 4 9 6 8 10  Operation O 21 O 12 O 11 O 13 O 15 O 14 O 31 O 16 O 22 O 32  Groups G 1 G 1 G 1 G 3 G 2 G 1 G 1 G 1 G 2 G 1 G 3 G 2 G 2   G 3 G 2 G 2 G 3 G 2 G 3        G 3  Assigned G 3 G 3 G 1 G 3 G 2 G 3 G 2 G 2 G 2 G 1  Part 2 2 3 1 1 1 2 2 2 1 1


## 4.1.3. The IDs of Job with Higher Priority

In the EFJSP model, some jobs have higher priorities, which must be finished earlier; as a result, the IDs should be assigned to the jobs with higher priority first. Chromosomes which cannot satisfy the rule should be abandoned.


## 4.2. Decoding

### 4.2.1. Decoding the Chromosome to an Active Scheduling

Decoding is to convert the chromosome into a feasible solution; there are mainly three decoding methods: active scheduling, semiactive scheduling, and nondelay scheduling. Some works [53, 54] have found that the optimal scheduling to achieve the goal of makespan is an active scheduling; thus, we decode the chromosome to an active scheduling here. The steps are shown as follows.Step 1.
Set upnumber=1.Step 2.
Take thenumberth gene in part 1 and convert it into the operation Oij; then select the numberth gene in part 2 and convert it into supporting group k; the processing time is Tijk which operation Oij processed by the supporting group k.Step 3.
If the operationOij is the first one to be processed by the supporting group k, Sij=max⁡CiPij; otherwise we should find all the idle time intervals [TSk,TEk] in the supporting group k.Step 4.
If the length of the idle time interval is bigger thanTijk according to (16), the operation Oij should be inserted into the interval; otherwise, it should be allocated in the end of the supporting group k.(16)Sij=max⁡max⁡CiPij,TSk,Sij+Tijk≤TEk.Step 5.
Repeat Steps 2 to 4 until all operations of part 1 have been processed.


## 4.2.1. Decoding the Chromosome to an Active Scheduling

Decoding is to convert the chromosome into a feasible solution; there are mainly three decoding methods: active scheduling, semiactive scheduling, and nondelay scheduling. Some works [53, 54] have found that the optimal scheduling to achieve the goal of makespan is an active scheduling; thus, we decode the chromosome to an active scheduling here. The steps are shown as follows.Step 1.
Set upnumber=1.Step 2.
Take thenumberth gene in part 1 and convert it into the operation Oij; then select the numberth gene in part 2 and convert it into supporting group k; the processing time is Tijk which operation Oij processed by the supporting group k.Step 3.
If the operationOij is the first one to be processed by the supporting group k, Sij=max⁡CiPij; otherwise we should find all the idle time intervals [TSk,TEk] in the supporting group k.Step 4.
If the length of the idle time interval is bigger thanTijk according to (16), the operation Oij should be inserted into the interval; otherwise, it should be allocated in the end of the supporting group k.(16)Sij=max⁡max⁡CiPij,TSk,Sij+Tijk≤TEk.Step 5.
Repeat Steps 2 to 4 until all operations of part 1 have been processed.


## 4.3. Initial Population

Population initialization is crucial since it can affect the speed of the algorithm’s convergence and the quality of the solution. In this part, we present a method to assign each operation to a suitable supporting group. The method focuses on the processing time and workload of supporting groups, namely, the global assignment, which is an improved one of the work [52]; the steps are as follows.Step 1.
Create a new array to record the working time of each supporting group; initial values are set as 0.Step 2.
Follow the order sequentially; take an operation from part 1.Step 3.
Add the processing time of each alternative supporting group to the corresponding location in the array; then the corresponding supporting group with the shortest time will be selected for the operation; if there are several supporting groups with the same minimum time, the one with the least processing time should be selected.Step 4.
The order of the selected supporting group in the alternative supporting group set will be added to the corresponding gene bit of part 2.Step 5.
In the array, modify the total working time of the selected supporting group, and leave the others unchanged.Step 6.
Continue from part 1, and repeat Steps 3 to 6 until all operations are processed.


## 4.4. Mutation

For the mutation, DE is not suitable for discrete problems; the following two methods are applied: POX (Precedence Operation Crossover, POX) [55] and MPX (Multiple Point Crossover, MPX) [56]. The POX inherits the characteristics of operation sequence from parent chromosomes to child chromosomes; the MPX transits the features of supporting group assignment from parent chromosomes to child chromosomes.


### 4.4.1. POX

Precedence operation crossover is the process to cross the operation sequence in the parent chromosomes, and the supporting group assignments are reserved to the child chromosomes. The process is as follows.First, the set of jobs1,…,n is divided into two random complementary and nonempty sets: S1, S2.Second, all the operations of jobs in setS1 with their assigned supporting groups are copied from “Parent 1” chromosome to “Child 1” chromosome, and all the operations of jobs in set S1 with their assigned supporting groups are copied from “Parent 2” chromosome to “Child 2” chromosome.Third, all the operations of jobs in setS2 with their assigned supporting groups are copied from “Parent 2” chromosome to “Child 1” chromosome, and all the operations of jobs in set S2 with their assigned supporting groups are copied from “Parent 1” chromosome to “Child 2” chromosome.Taking Table1 as an example, the process of POX is shown in Figure 3.Figure 3
The process of POX.


### 4.4.2. MPX

Multiple point crossover is the process to cross the supporting group assignment in the parent chromosomes, and the operation sequence is reserved to the child chromosomes. The process is as follows.First, an integer setR01 containing 0 and 1 is randomly generated, the length of which is equal to the half-length of chromosomes.Second, the operations and their assigned supporting groups whose positions correspond to 0 in setR01 are copied from “Parent 1” chromosome to “Child 1” chromosome.Third, selecting the operations in “Parent 1” chromosome whose positions correspond to 1 in setR01, these operations and assigned supporting groups in “Parent 2” chromosome are copied to “Child 1” chromosome.Similarly, for the “Child 2” chromosome, the operations and their assigned supporting groups whose positions correspond to 0 in setR01 are copied from “Parent 2” chromosome. Then, selecting the operations in “Parent 2” chromosome whose positions correspond to 1 in set R01, these operations and assigned supporting groups in “Parent 1” chromosome are copied to “Child 2” chromosome. Taking Table 1 as an example, the process of MPX is shown in Figure 4.Figure 4
The process of MPX.The mutation of chromosome is performed by(17)Vig=F⊗GF⊗GXr2g,Xr3g,Xr1g,where r1≠r2≠r3≠i, Xr2g is the r2th chromosome in the gth population, Vig is the ith chromosome in the gth mutated population, F is scale factor, and ⊗ is cross symbol; the calculation of (17) is composed of two parts: (18) and (19).(18)Yig=F⊗GXr2g,Xr3g=GXr2g,Xr3g,rand<FXr2g,otherwise.Equation (18) denotes the difference vector between two parent chromosomes; rand is a random number between 0 and 1. When sequencing the operations, G(Xr2g,Xr3g) will be crossed in the POX way. When assigning the supporting groups, G(Xr2g,Xr3g) will be crossed in the MPX way.(19)Vig=F⊗GYr2g,Yr3g=GYig,Xr1g,rand<FYig,otherwise.Equation (19) denotes the process that parent chromosomes cross with difference vector. We compute G(Yig,Xr1g) using the way in G(Xr2g,Xr3g).


## 4.4.1. POX

Precedence operation crossover is the process to cross the operation sequence in the parent chromosomes, and the supporting group assignments are reserved to the child chromosomes. The process is as follows.First, the set of jobs1,…,n is divided into two random complementary and nonempty sets: S1, S2.Second, all the operations of jobs in setS1 with their assigned supporting groups are copied from “Parent 1” chromosome to “Child 1” chromosome, and all the operations of jobs in set S1 with their assigned supporting groups are copied from “Parent 2” chromosome to “Child 2” chromosome.Third, all the operations of jobs in setS2 with their assigned supporting groups are copied from “Parent 2” chromosome to “Child 1” chromosome, and all the operations of jobs in set S2 with their assigned supporting groups are copied from “Parent 1” chromosome to “Child 2” chromosome.Taking Table1 as an example, the process of POX is shown in Figure 3.Figure 3
The process of POX.


## 4.4.2. MPX

Multiple point crossover is the process to cross the supporting group assignment in the parent chromosomes, and the operation sequence is reserved to the child chromosomes. The process is as follows.First, an integer setR01 containing 0 and 1 is randomly generated, the length of which is equal to the half-length of chromosomes.Second, the operations and their assigned supporting groups whose positions correspond to 0 in setR01 are copied from “Parent 1” chromosome to “Child 1” chromosome.Third, selecting the operations in “Parent 1” chromosome whose positions correspond to 1 in setR01, these operations and assigned supporting groups in “Parent 2” chromosome are copied to “Child 1” chromosome.Similarly, for the “Child 2” chromosome, the operations and their assigned supporting groups whose positions correspond to 0 in setR01 are copied from “Parent 2” chromosome. Then, selecting the operations in “Parent 2” chromosome whose positions correspond to 1 in set R01, these operations and assigned supporting groups in “Parent 1” chromosome are copied to “Child 2” chromosome. Taking Table 1 as an example, the process of MPX is shown in Figure 4.Figure 4
The process of MPX.The mutation of chromosome is performed by(17)Vig=F⊗GF⊗GXr2g,Xr3g,Xr1g,where r1≠r2≠r3≠i, Xr2g is the r2th chromosome in the gth population, Vig is the ith chromosome in the gth mutated population, F is scale factor, and ⊗ is cross symbol; the calculation of (17) is composed of two parts: (18) and (19).(18)Yig=F⊗GXr2g,Xr3g=GXr2g,Xr3g,rand<FXr2g,otherwise.Equation (18) denotes the difference vector between two parent chromosomes; rand is a random number between 0 and 1. When sequencing the operations, G(Xr2g,Xr3g) will be crossed in the POX way. When assigning the supporting groups, G(Xr2g,Xr3g) will be crossed in the MPX way.(19)Vig=F⊗GYr2g,Yr3g=GYig,Xr1g,rand<FYig,otherwise.Equation (19) denotes the process that parent chromosomes cross with difference vector. We compute G(Yig,Xr1g) using the way in G(Xr2g,Xr3g).


## 4.5. Crossover

After mutation, the crossover operator is applied to generate the trial vectorUijg as follows:(20)Uijg=Vijg,rand<CRXijg,otherwise,where CR∈[0,1] is a crossover parameter to control the diversity of the population, rand denotes a random number between 0 and 1, and the process of crossover is shown in Figure 5. When we obtain Uijg, some work needs to be done for the deduplication and completion of solution. The construction of new chromosomes should guarantee the priority of some certain operations.Figure 5
An illustration example of the crossover.


## 4.6. Selection

The selection operator is used to decide whether the trial vectorUig is the member of the population for the next generation, which can be described as(21)Xig+1=Uig,fUig<fXigXig,otherwise,where f(·) is the objective function to be minimized. Therefore, the trial vector Uig will replace the corresponding target vector Xig in the next generation if its objective function value is not greater than that of the target vector; otherwise, the target vector remains in the population.


## 4.7. Local Search Algorithm

In this part, a local search algorithm based on neighborhood structure is proposed to improve the scheduling. And the neighborhood structure is based on the critical path in the disjunctive graph, which is a kind of representation for the scheduling.


### 4.7.1. Disjunctive Graph

Disjunctive graphG=(N,A,E) [25] is an important formulation of FJSP, where N denotes a set of all the nodes, and each node represents an operation in the EFJSP (including dummy starting and terminating operations); A represents the conjunctive arcs connecting two adjacent operations within a job, and the direction represents the processing order between the two connected operations; E denotes all disjunctive arcs connecting two adjacent operations which are processed by the same supporting group and their directions display the processing order. The processed time of each operation is generally labeled on the corresponding node and regarded as the node’s weight. In Figure 6, O11, O32 are processed by the supporting group G1, and O15, O31, O16, and O22 are executed successively by the supporting group G2, and O21, O12, O13, and O14 are performed by the supporting group G3.Figure 6
The disjunctive graph. The nodes mean the operations, the solid lines represent the workflow between operations in a job, and the dash lines show the workflow in a supporting group.A scheduling of the EFJSP is feasible, if there are no cyclic paths in its corresponding disjunctive graph. If a disjunctive graph is acyclic, the longest path between the starting nodeS and the ending node E is called a critical path, whose length is defined as the makespan of the scheduling. Operations on the critical path are critical operations. For example, the disjunctive graph illustrated in Figure 6 is a feasible scheduling as it is acyclic, its critical path is S→O21→O12→O13→O15→O14→O16→O22→E, and the makespan is 48. Here, we define L(u,v) as the longest path from node u to node v.


### 4.7.2. Neighborhood Structures

Neighborhood structure is key to the local search, which can guide the search of algorithm effectively and avoid the blind search. The neighborhood structure of JSP is designed to make good use of the idle time in supporting groups. For the FJSP, another factor should be considered, which is the assignment of the supporting groups. For the EFJSP, the priority of jobs, parallel operations, and the flexibility of operation order will influence the neighborhood structure. Therefore, a new local search algorithm will be introduced based on the work [57]. Since the critical path defines the makespan of the scheduling, so only the critical operations should be used to search for idle time in the alternative supporting group set and implement the local search.The following notations are used in the local search algorithm:w: critical operationJP(w): set of immediate precedent operations of wJS(w): set of immediate succeeding operations of wsE(w): the earliest starting time of wcE(w): the earliest completing time of wsL(w): the latest starting time of wcL(w): the latest completing time of wThe idle time in the alternative supporting groups ofw can be divided into two types: (1) the idle time in current supporting group which processed w and (2) the idle time in other supporting groups which are in the alternative supporting group set of w. Therefore, the move of w is also two types: (1) in current supporting group and (2) in other alternative supporting groups. Each type of idle time corresponds to a kind of local search.The first-level local search is the moving in the current supporting group.It is known that each operation inJP(w) must be finished before the starting of w, and w must be finished before the starting of each operation in JS(w). The biggest time interval of the processing w is [max⁡(cE(JP(w))),min⁡(sL(JS(w)))].Suppose operationsx and y are neighbors, processed by the same supporting group with w. The biggest idle time interval between x and y is [cE(x),sL(y)]; if the intersection of sets [cE(x),sL(y)] and [max⁡cEJPw,min⁡(sL(JS(w)))] is not empty, it is possible to decrease makespan by inserting w between x and y. So the condition to move w in the current supporting group is (22) [33]:(22)cEx,sLy∩max⁡cEJPw,min⁡sLJsw≠0.The second-level local search is the moving to the other alternative supporting group.Similarly, operationsx, y are neighbors; processed by the supporting group k, which does not process w. Twk is the processing time if w is processed by k. If the intersection of sets between [cE(x),sL(y)] and [max⁡cEJPw,min⁡(sL(JS(w)))] is bigger than Twk, then it is possible to decrease the makespan by inserting w between x and y. Therefore, the condition to move w to the other supporting group k is [33](23)cEx,sLy∩max⁡cEJPw,min⁡sLJsw>Twk.The scheduling may not be feasible after moving the critical operations; it is important to find the conditions that can guarantee the feasibility of the scheduling when we are moving the critical operations. The work [58] proposed two rules to make sure the scheduling of FJSP is feasible when moving critical operations; we will improve these rules for the EFJSP model.


### 4.7.3. Rules for Moving Operation within the Current Supporting Group

Theorem 5.
For a feasible scheduling of an EFJSP model, operationsu, v are processed by the same supporting group and u is precedent to v; if one of the following conditions is satisfied, then when u becomes the immediate succeeding operation of v, the scheduling is still feasible: (1) u is the final operation of job, and the set JSu is empty; (2) ∀u′∈JSu, Lv,E≥Lu′,E, and v∉JS(u), the set JS(u) is nonempty; (3) if u and v are the operations of a job, they can be swapped.
The proof of (1) and (2) can be referred to in [58]. Under condition (3), when operations u and v are swapped, which do not influence other operations, the job still can be processed, so the scheduling is feasible.Theorem 6.
For a feasible scheduling of an EFJSP model, operationsu, v are processed by the same supporting group and u is precedent to v; if one of the following conditions is satisfied, then when v becomes the immediate precedent operation of u, the scheduling is still feasible: (1) v is the first operation of job, and the set JP(v) is empty; (2) ∀v′∈JP(v), L(0,u)+Tu≥L(0,v′+Tv′), and u∉JP(v), the set JP(v) is nonempty; (3) if u and v are the operations of a job, they can be swapped.
The proof of (1) and (2) can be seen in [58] and the proof of (3) is the same as Theorem 5.


### 4.7.4. Rules for Moving Operation to the Other Supporting Groups

Theorem 7.
For a feasible scheduling of an EFJSP model, operationsx, y are neighbors, processed by the same supporting group, and x is the immediate precedent operation of y; the supporting group is the alternative supporting group of w, which will be inserted between x and y; if the two following conditions are met simultaneously, then the scheduling is still feasible: (1) w is the final operation of job, and the set JS(w) is empty, or ∀w′∈JS(w), L(x,E)≥L(w′,E), and x∉JS(u), the set JS(w) is nonempty; (2) w is the first operation of job, and the set JP(w) is empty, or ∀w′∈JP(w), L(0,y)+Ty≥L(0,w′+Tw′), and y∉JP(w), the set JP(w) is nonempty.
The proof can be referred to in [58].


### 4.7.5. Local Search Algorithm

With the three theorems, the scheduling obtained after moving the critical operations is feasible. The detailed procedure to obtain acceptable scheduling from the neighborhood structure is described in Algorithm1.Algorithm 1:The local search algorithm.
Find a critical pathS→CO1→CO2→⋯→COw→E in a scheduling for  i=1 to w  do Get the alternative supporting group setCM1 of critical operation COi for  j=1 to length(CM1)  do Find the setlocationj of positions where COi can move into supporting group j for  k=1 to length(locationj)  do if  j is the current supporting group processing COi and the condition (22) is satisfied then move operationCOi into position k, return the new scheduling; end if if  j is not the current supporting group processing COi and the condition (23) is satisfied  then move operationCOi into position k, return the new scheduling; end if end for end for end for


## 4.7.1. Disjunctive Graph

Disjunctive graphG=(N,A,E) [25] is an important formulation of FJSP, where N denotes a set of all the nodes, and each node represents an operation in the EFJSP (including dummy starting and terminating operations); A represents the conjunctive arcs connecting two adjacent operations within a job, and the direction represents the processing order between the two connected operations; E denotes all disjunctive arcs connecting two adjacent operations which are processed by the same supporting group and their directions display the processing order. The processed time of each operation is generally labeled on the corresponding node and regarded as the node’s weight. In Figure 6, O11, O32 are processed by the supporting group G1, and O15, O31, O16, and O22 are executed successively by the supporting group G2, and O21, O12, O13, and O14 are performed by the supporting group G3.Figure 6
The disjunctive graph. The nodes mean the operations, the solid lines represent the workflow between operations in a job, and the dash lines show the workflow in a supporting group.A scheduling of the EFJSP is feasible, if there are no cyclic paths in its corresponding disjunctive graph. If a disjunctive graph is acyclic, the longest path between the starting nodeS and the ending node E is called a critical path, whose length is defined as the makespan of the scheduling. Operations on the critical path are critical operations. For example, the disjunctive graph illustrated in Figure 6 is a feasible scheduling as it is acyclic, its critical path is S→O21→O12→O13→O15→O14→O16→O22→E, and the makespan is 48. Here, we define L(u,v) as the longest path from node u to node v.


## 4.7.2. Neighborhood Structures

Neighborhood structure is key to the local search, which can guide the search of algorithm effectively and avoid the blind search. The neighborhood structure of JSP is designed to make good use of the idle time in supporting groups. For the FJSP, another factor should be considered, which is the assignment of the supporting groups. For the EFJSP, the priority of jobs, parallel operations, and the flexibility of operation order will influence the neighborhood structure. Therefore, a new local search algorithm will be introduced based on the work [57]. Since the critical path defines the makespan of the scheduling, so only the critical operations should be used to search for idle time in the alternative supporting group set and implement the local search.The following notations are used in the local search algorithm:w: critical operationJP(w): set of immediate precedent operations of wJS(w): set of immediate succeeding operations of wsE(w): the earliest starting time of wcE(w): the earliest completing time of wsL(w): the latest starting time of wcL(w): the latest completing time of wThe idle time in the alternative supporting groups ofw can be divided into two types: (1) the idle time in current supporting group which processed w and (2) the idle time in other supporting groups which are in the alternative supporting group set of w. Therefore, the move of w is also two types: (1) in current supporting group and (2) in other alternative supporting groups. Each type of idle time corresponds to a kind of local search.The first-level local search is the moving in the current supporting group.It is known that each operation inJP(w) must be finished before the starting of w, and w must be finished before the starting of each operation in JS(w). The biggest time interval of the processing w is [max⁡(cE(JP(w))),min⁡(sL(JS(w)))].Suppose operationsx and y are neighbors, processed by the same supporting group with w. The biggest idle time interval between x and y is [cE(x),sL(y)]; if the intersection of sets [cE(x),sL(y)] and [max⁡cEJPw,min⁡(sL(JS(w)))] is not empty, it is possible to decrease makespan by inserting w between x and y. So the condition to move w in the current supporting group is (22) [33]:(22)cEx,sLy∩max⁡cEJPw,min⁡sLJsw≠0.The second-level local search is the moving to the other alternative supporting group.Similarly, operationsx, y are neighbors; processed by the supporting group k, which does not process w. Twk is the processing time if w is processed by k. If the intersection of sets between [cE(x),sL(y)] and [max⁡cEJPw,min⁡(sL(JS(w)))] is bigger than Twk, then it is possible to decrease the makespan by inserting w between x and y. Therefore, the condition to move w to the other supporting group k is [33](23)cEx,sLy∩max⁡cEJPw,min⁡sLJsw>Twk.The scheduling may not be feasible after moving the critical operations; it is important to find the conditions that can guarantee the feasibility of the scheduling when we are moving the critical operations. The work [58] proposed two rules to make sure the scheduling of FJSP is feasible when moving critical operations; we will improve these rules for the EFJSP model.


## 4.7.3. Rules for Moving Operation within the Current Supporting Group

Theorem 5.
For a feasible scheduling of an EFJSP model, operationsu, v are processed by the same supporting group and u is precedent to v; if one of the following conditions is satisfied, then when u becomes the immediate succeeding operation of v, the scheduling is still feasible: (1) u is the final operation of job, and the set JSu is empty; (2) ∀u′∈JSu, Lv,E≥Lu′,E, and v∉JS(u), the set JS(u) is nonempty; (3) if u and v are the operations of a job, they can be swapped.
The proof of (1) and (2) can be referred to in [58]. Under condition (3), when operations u and v are swapped, which do not influence other operations, the job still can be processed, so the scheduling is feasible.Theorem 6.
For a feasible scheduling of an EFJSP model, operationsu, v are processed by the same supporting group and u is precedent to v; if one of the following conditions is satisfied, then when v becomes the immediate precedent operation of u, the scheduling is still feasible: (1) v is the first operation of job, and the set JP(v) is empty; (2) ∀v′∈JP(v), L(0,u)+Tu≥L(0,v′+Tv′), and u∉JP(v), the set JP(v) is nonempty; (3) if u and v are the operations of a job, they can be swapped.
The proof of (1) and (2) can be seen in [58] and the proof of (3) is the same as Theorem 5.


## 4.7.4. Rules for Moving Operation to the Other Supporting Groups

Theorem 7.
For a feasible scheduling of an EFJSP model, operationsx, y are neighbors, processed by the same supporting group, and x is the immediate precedent operation of y; the supporting group is the alternative supporting group of w, which will be inserted between x and y; if the two following conditions are met simultaneously, then the scheduling is still feasible: (1) w is the final operation of job, and the set JS(w) is empty, or ∀w′∈JS(w), L(x,E)≥L(w′,E), and x∉JS(u), the set JS(w) is nonempty; (2) w is the first operation of job, and the set JP(w) is empty, or ∀w′∈JP(w), L(0,y)+Ty≥L(0,w′+Tw′), and y∉JP(w), the set JP(w) is nonempty.
The proof can be referred to in [58].


## 4.7.5. Local Search Algorithm

With the three theorems, the scheduling obtained after moving the critical operations is feasible. The detailed procedure to obtain acceptable scheduling from the neighborhood structure is described in Algorithm1.Algorithm 1:The local search algorithm.
Find a critical pathS→CO1→CO2→⋯→COw→E in a scheduling for  i=1 to w  do Get the alternative supporting group setCM1 of critical operation COi for  j=1 to length(CM1)  do Find the setlocationj of positions where COi can move into supporting group j for  k=1 to length(locationj)  do if  j is the current supporting group processing COi and the condition (22) is satisfied then move operationCOi into position k, return the new scheduling; end if if  j is not the current supporting group processing COi and the condition (23) is satisfied  then move operationCOi into position k, return the new scheduling; end if end for end for end for


## 4.8. Improved DE with Local Search

The improved DE with local search is depicted as follows.Step 1.
Set the size of the populationNP, scale factor F, crossover probability CR, and maximum number of generations Gmax.Step 2.
Initialize the population, when assigning supporting groups, the number of chromosomes selecting the supporting group is0.8∗NP with the method of the global assignment, and the others select their supporting groups randomly.Step 3.
Evaluate each chromosome.Step 4 (mutation).
GenerateNP donor vectors Vig, i=1,…,NP.Step 5 (crossover).
GenerateNP trial vectors Uig, i=1,…,NP.Step 6 (selection).
DetermineNP target vectors Xig+1, i=1,…,NP, by one-to-one selection operator for the next generation.Step 7 (local search).
Choose the chromosome whose makespan is the biggest one inXig+1, i=1,…,NP, perform the local search to the chromosome, and if a new chromosome is found whose makespan is smaller than that one, then it will be replaced by the new chromosome.Step 8.
IfG<Gmax, then repeat Steps 4 to 7; otherwise, stop.


## 5. Experiment Design and Computational Results Analysis

In order to analyze the performance of the improved differential evolution algorithm with local search strategies (IDE&LS) proposed in Section4, we test the algorithm through some practical instances from flight deck scheduling. All the instances are also solved by the general genetic algorithm (GA), differential evolution (DE) algorithm, and improved differential evolution (IDE) algorithm without local search strategies; their computational results are compared with that of the proposed algorithm. In the encodings of GA and DE, the supporting group is selected randomly, and the chromosome is not decoded to an active scheduling.


### 5.1. Experiment Design

All the methods are implemented in MATLAB 2013(a) on 2.50 GHz Intel Core i5-3210m CPU, 4 GB of RAM, Windows 7.0. There are five instances based on the flight deck scheduling. In each instance, there are 5 types of carrier-based aircrafts considered, which include a helicopter (number 1), a warning airplane (number 2), an escort fighter (number 3), an antisubmarine aircraft (number 4), and some attack fighters. In different instances, the amounts of attack fighters are different.Instance 1.
There are four attack fighters (numbers 5–8).Instance 2.
There are six attack fighters (numbers 5–10).Instance 3.
There are eight attack fighters (numbers 5–12).Instance 4.
There are ten attack fighters (numbers 5–14).Instance 5.
There are twelve attack fighters (numbers 5–16).The order of taking off is helicopter, warning airplane, escort fighter, antisubmarine aircraft, and attack fighters. The supporting operations of a carrier-based aircraft are shown in Figure7; there are 12 operations (A–L, numbers 1–12) to support a carrier-based aircraft, but some carrier-based aircrafts are different; for example, the helicopter and warning airplane are without weapon mount, and the helicopter does not need to catapult.Figure 7
The supporting process of a carrier-based aircraft.There are 30 supporting groups; operations that each supporting group can process and processing time (in minutes) are shown in Table4.Table 4
Supporting group and its supporting operation and supporting time.
Supporting group (Operation, time) Supporting group (Operation, time) 1 (A, 2) 16 (G, 2) 2 (A, 3) 17 (H, 1) 3 (B, 2) 18 (H, 2) 4 (B, 2) 19 (I, 13) 5 (C, 3) 20 (I, 14) 6 (C, 2) 21 (I, 15) 7 (D, 4) 22 (I, 16) 8 (D, 5) 23 (J, 3) 9 (E, 11) 24 (J, 4) 10 (E, 12) 25 (K, 6) 11 (E, 10) 26 (K, 7) 12 (E, 11) 27 (L, 2) 13 (F, 7) 28 (L, 3) 14 (F, 8) 29 (L, 4) 15 (G, 4) 30 (L, 5)Different population sizes and iterations are tested, and computational results showed that all algorithms converge fast when population sizeNP=100, and iterations Gmax=400. For other parameters of the algorithms, [59] presents some experiential value for the crossover probability, mutation probability, and GGAP for the GA, and [60] suggests the value of scale factor and crossover probability in most cases for the DE. Based on their studies, we conducted some sensitivity analysis on the value of the parameters, which help us find their suitable value in our problem.Figure8 presents the computational results for the IDE&LS to solve Instance 3, when the value of scale factor F varies from 0.1 to 0.9. The makespan is the average value for results of 100 times’ run of the algorithm. It can be seen that the best solution is obtained when F=0.5. Figure 9 presents the results when the value of CR changes from 0.1 to 0.95, and we can see that the best solution is obtained at CR=0.9. Similarly, we estimate the value for other parameters. Thus, for DE, IDE, and IDE&LS, we set NP=100, F=0.5, CR=0.9, and Gmax=400, while for GA, we set NP=100, px=0.8, pm=0.06, GGAP=0.9, and Gmax=400.Figure 8
The average makespan whenCR=0.9; F changes from 0.1 to 0.9.Figure 9
The average makespan whenF=0.5; CR changes from 0.1 to 0.95.


### 5.2. Experimental Results and Analysis

Each method is run 100 times in each instance; calculating the average results, the experiment results are shown in Table5, and the “makespan” is the object (in minutes).Table 5
The average makespan of each method and relevantp value.
Instance GA DE IDE IDE&LS 1 52.7 5 ∗ ( 0.00 ) 51.9 0 ∗ ( 0.01 ) 51.15 50.95 2 62.0 5 ∗ ( 0.00 ) 61.9 5 ∗ ( 0.00 ) 59.25 58.80 3 72.0 5 ∗ ( 0.00 ) 70.5 5 ∗ ( 0.00 ) 67.40 66.50 4 81.4 5 ∗ ( 0.00 ) 79.3 0 ∗ ( 0.00 ) 75.70 74.85 5 92.1 5 ∗ ( 0.00 ) 87.5 5 ∗ ( 0.00 ) 83.4 0 ∗ ( 0.00 ) 81.10Table5 summaries the average performance of four methods in five experimental instances. The best results are presented in bold. The statistically significant improvements of the best result over competitors are indicated with asterisks ∗ (two-samplet-test at the default 0.05 significance level), followed by p value in brackets [61]. As we can see from Table 5, IDE&LS always get the lowest average value and statistically better than GA and DE in all settings. Compared with the state-of-the-art IDE, IDE&LS (81.10) still have statistically lower value than IDE (83.40) in the fifth case. These results demonstrate the benefit of the proposed method in this paper.For Instance5, one experimental result of each method is selected randomly from 100 and its convergence curve is shown in Figure 10.Figure 10
The convergence curves of the four methods in Instance5.From the above computational results, we can see that the IDE&LS can obtain much better solutions than GA, DE, and IDE without local search, and also it converges much faster than other methods in the same number of iterations. That is because in the initializing process of the IDE&LS, we utilized some heuristic strategies to generate better and feasible chromosomes, which increase the search efficiency in the beginning of the algorithm. Further, the local search strategies integrated in the method help to improve the quality of chromosomes of each generation, which increase the search quality.In the military operation, the scheduling plans of supporting groups for different situations are usually made before the beginning of the battle, and the commanders concern more on the optimality of the plan. Thus, in the above analysis, we compared the average makespan of the algorithms while ignoring the computing time. Our computational experiments show that, even for the largest scale instance, the computing time of IDE&LS is not over 11 minutes, which is reasonable and can satisfy the requirement of military operation.


### 5.3. A Feasible Scheduling Scheme

In order to check the priority, parallel operation, and sequence flexibility, a scheduling Gantt chart of Instance5 is generated by IDE&LS; as shown in Figure 11, the vertical axis represents the number of the supporting group, the horizontal axis represents the processing time, the first or first two digits of the digital representation are the number of carrier-based aircraft, and the latter two represent the number of operation: for example, “507” indicates operation 7 (operation G) of the carrier-based aircraft 5 and “1203” indicates operation 3 (operation C) of the carrier-based aircraft 12.Figure 11
The scheduling of Instance5 by IDE&LS.The results in Figure11 show the following:(1)
There are some vertical lines, which mean the carrier-based aircrafts have no operations: for example, “112” indicates that number 1 carrier-based aircraft has no operation 12 (operation G), which is in line with the reality: the helicopter does not need catapult to take off.(2)
Departure time (operation G) is sorted according to helicopter (number 1), warning airplane (number 2), escort fighter (number 3), antisubmarine aircraft (number 4), and fighters (numbers 5–12), because fighters have same priorities, so anyone of which is allowed to take off firstly.(3)
In the maintenance of each carrier-based aircraft, there are some operations being processed simultaneously.(4)
For carrier-based aircrafts with higher priorities, not all the operations of them must be finished earlier than those with lower priorities, as long as the last operation can be completed earlier. For example, the helicopter (number 1) should take off first, then warning airplane (number 2), but in Figure11, operation A of warning airplane is processed earlier than helicopter.(5)
Operation 4 (operation D) is processed before operation 5 (operation E) for some carrier-based aircrafts, such as numbers 2, 6, 8, 12, 13, and 14; the others are opposite. In conclusion, the scheduling is feasible.


## 5.1. Experiment Design

All the methods are implemented in MATLAB 2013(a) on 2.50 GHz Intel Core i5-3210m CPU, 4 GB of RAM, Windows 7.0. There are five instances based on the flight deck scheduling. In each instance, there are 5 types of carrier-based aircrafts considered, which include a helicopter (number 1), a warning airplane (number 2), an escort fighter (number 3), an antisubmarine aircraft (number 4), and some attack fighters. In different instances, the amounts of attack fighters are different.Instance 1.
There are four attack fighters (numbers 5–8).Instance 2.
There are six attack fighters (numbers 5–10).Instance 3.
There are eight attack fighters (numbers 5–12).Instance 4.
There are ten attack fighters (numbers 5–14).Instance 5.
There are twelve attack fighters (numbers 5–16).The order of taking off is helicopter, warning airplane, escort fighter, antisubmarine aircraft, and attack fighters. The supporting operations of a carrier-based aircraft are shown in Figure7; there are 12 operations (A–L, numbers 1–12) to support a carrier-based aircraft, but some carrier-based aircrafts are different; for example, the helicopter and warning airplane are without weapon mount, and the helicopter does not need to catapult.Figure 7
The supporting process of a carrier-based aircraft.There are 30 supporting groups; operations that each supporting group can process and processing time (in minutes) are shown in Table4.Table 4
Supporting group and its supporting operation and supporting time.
Supporting group (Operation, time) Supporting group (Operation, time) 1 (A, 2) 16 (G, 2) 2 (A, 3) 17 (H, 1) 3 (B, 2) 18 (H, 2) 4 (B, 2) 19 (I, 13) 5 (C, 3) 20 (I, 14) 6 (C, 2) 21 (I, 15) 7 (D, 4) 22 (I, 16) 8 (D, 5) 23 (J, 3) 9 (E, 11) 24 (J, 4) 10 (E, 12) 25 (K, 6) 11 (E, 10) 26 (K, 7) 12 (E, 11) 27 (L, 2) 13 (F, 7) 28 (L, 3) 14 (F, 8) 29 (L, 4) 15 (G, 4) 30 (L, 5)Different population sizes and iterations are tested, and computational results showed that all algorithms converge fast when population sizeNP=100, and iterations Gmax=400. For other parameters of the algorithms, [59] presents some experiential value for the crossover probability, mutation probability, and GGAP for the GA, and [60] suggests the value of scale factor and crossover probability in most cases for the DE. Based on their studies, we conducted some sensitivity analysis on the value of the parameters, which help us find their suitable value in our problem.Figure8 presents the computational results for the IDE&LS to solve Instance 3, when the value of scale factor F varies from 0.1 to 0.9. The makespan is the average value for results of 100 times’ run of the algorithm. It can be seen that the best solution is obtained when F=0.5. Figure 9 presents the results when the value of CR changes from 0.1 to 0.95, and we can see that the best solution is obtained at CR=0.9. Similarly, we estimate the value for other parameters. Thus, for DE, IDE, and IDE&LS, we set NP=100, F=0.5, CR=0.9, and Gmax=400, while for GA, we set NP=100, px=0.8, pm=0.06, GGAP=0.9, and Gmax=400.Figure 8
The average makespan whenCR=0.9; F changes from 0.1 to 0.9.Figure 9
The average makespan whenF=0.5; CR changes from 0.1 to 0.95.


## 5.2. Experimental Results and Analysis

Each method is run 100 times in each instance; calculating the average results, the experiment results are shown in Table5, and the “makespan” is the object (in minutes).Table 5
The average makespan of each method and relevantp value.
Instance GA DE IDE IDE&LS 1 52.7 5 ∗ ( 0.00 ) 51.9 0 ∗ ( 0.01 ) 51.15 50.95 2 62.0 5 ∗ ( 0.00 ) 61.9 5 ∗ ( 0.00 ) 59.25 58.80 3 72.0 5 ∗ ( 0.00 ) 70.5 5 ∗ ( 0.00 ) 67.40 66.50 4 81.4 5 ∗ ( 0.00 ) 79.3 0 ∗ ( 0.00 ) 75.70 74.85 5 92.1 5 ∗ ( 0.00 ) 87.5 5 ∗ ( 0.00 ) 83.4 0 ∗ ( 0.00 ) 81.10Table5 summaries the average performance of four methods in five experimental instances. The best results are presented in bold. The statistically significant improvements of the best result over competitors are indicated with asterisks ∗ (two-samplet-test at the default 0.05 significance level), followed by p value in brackets [61]. As we can see from Table 5, IDE&LS always get the lowest average value and statistically better than GA and DE in all settings. Compared with the state-of-the-art IDE, IDE&LS (81.10) still have statistically lower value than IDE (83.40) in the fifth case. These results demonstrate the benefit of the proposed method in this paper.For Instance5, one experimental result of each method is selected randomly from 100 and its convergence curve is shown in Figure 10.Figure 10
The convergence curves of the four methods in Instance5.From the above computational results, we can see that the IDE&LS can obtain much better solutions than GA, DE, and IDE without local search, and also it converges much faster than other methods in the same number of iterations. That is because in the initializing process of the IDE&LS, we utilized some heuristic strategies to generate better and feasible chromosomes, which increase the search efficiency in the beginning of the algorithm. Further, the local search strategies integrated in the method help to improve the quality of chromosomes of each generation, which increase the search quality.In the military operation, the scheduling plans of supporting groups for different situations are usually made before the beginning of the battle, and the commanders concern more on the optimality of the plan. Thus, in the above analysis, we compared the average makespan of the algorithms while ignoring the computing time. Our computational experiments show that, even for the largest scale instance, the computing time of IDE&LS is not over 11 minutes, which is reasonable and can satisfy the requirement of military operation.


## 5.3. A Feasible Scheduling Scheme

In order to check the priority, parallel operation, and sequence flexibility, a scheduling Gantt chart of Instance5 is generated by IDE&LS; as shown in Figure 11, the vertical axis represents the number of the supporting group, the horizontal axis represents the processing time, the first or first two digits of the digital representation are the number of carrier-based aircraft, and the latter two represent the number of operation: for example, “507” indicates operation 7 (operation G) of the carrier-based aircraft 5 and “1203” indicates operation 3 (operation C) of the carrier-based aircraft 12.Figure 11
The scheduling of Instance5 by IDE&LS.The results in Figure11 show the following:(1)
There are some vertical lines, which mean the carrier-based aircrafts have no operations: for example, “112” indicates that number 1 carrier-based aircraft has no operation 12 (operation G), which is in line with the reality: the helicopter does not need catapult to take off.(2)
Departure time (operation G) is sorted according to helicopter (number 1), warning airplane (number 2), escort fighter (number 3), antisubmarine aircraft (number 4), and fighters (numbers 5–12), because fighters have same priorities, so anyone of which is allowed to take off firstly.(3)
In the maintenance of each carrier-based aircraft, there are some operations being processed simultaneously.(4)
For carrier-based aircrafts with higher priorities, not all the operations of them must be finished earlier than those with lower priorities, as long as the last operation can be completed earlier. For example, the helicopter (number 1) should take off first, then warning airplane (number 2), but in Figure11, operation A of warning airplane is processed earlier than helicopter.(5)
Operation 4 (operation D) is processed before operation 5 (operation E) for some carrier-based aircrafts, such as numbers 2, 6, 8, 12, 13, and 14; the others are opposite. In conclusion, the scheduling is feasible.


## 6. Conclusions

In this paper, we investigated a complex scheduling problem drawn from the deck scheduling of supporting operations for carrier-based aircrafts, where precedence constraints, parallel operations, and sequence flexibility should be considered. Such scheduling problem also commonly appears in production and maintenance of huge items, like aircraft, ship, and its engine. An EFJSP model is established to formulate the scheduling problem, and an improved differential evolution algorithm was proposed to solve the problem. Firstly, the codes were initialized with the shortest time and load balancing strategy, in which the random generation and the priority strategies are also integrated. Secondly, the decoding was done in the way of activity scheduling, reflecting the parallel, flexible features of the operations, and the combination of POX cross and MOX cross was used to make chromosomes mutation. Instances based on practical deck scheduling are utilized to test the proposed model and algorithm. Computational results show that our solution approach can present better solutions in reasonable computational time.Besides the typical flight deck scheduling problem, the approach developed in this paper can also be extended to other classes of huge item production and maintenance scheduling problems, such as aircraft, ship, and its engine.The problem studied in the paper is a new one, and we solve it by improving the differential evolution algorithm. However, many other algorithms may be improved and used to solve the deck scheduling problem, such as ant colony algorithm, particle swarm optimization, leapfrog algorithm, and bee colony algorithm. Thus, it is an important extension to work on the improvement of these algorithms to make them able to solve the proposed deck scheduling problem and compare with the IDE algorithm in this paper, which may help find more efficient algorithms in future.



---

*Source: 2463252-2017-02-13.xml*