Improved Differential Evolution Algorithm for Flexible Job Shop Scheduling Problems

This research project aims to study and develop the differential evolution (DE) for use in solving the flexible job shop scheduling problem (FJSP). The development of algorithms were evaluated to find the solution and the best answer, and this was subsequently compared to the meta-heuristics from the literature review. For FJSP, by comparing the problem group with the makespan and the mean relative errors (MREs), it was found that for small-sized Kacem problems, value adjusting with “DE/rand/1” and exponential crossover at position 2. Moreover, value adjusting with “DE/best/2” and exponential crossover at position 2 gave an MRE of 3.25. For medium-sized Brandimarte problems, value adjusting with “DE/best/2” and exponential crossover at position 2 gave a mean relative error of 7.11. For large-sized Dauzere-Peres and Paulli problems, value adjusting with “DE/best/2” and exponential crossover at position 2 gave an MRE of 4.20. From the comparison of the DE results with other methods, it was found that the MRE was lower than that found by Girish and Jawahar with the particle swarm optimization (PSO) method (7.75), which the improved DE was 7.11. For large-sized problems, it was found that the MRE was lower than that found by Warisa (1ST-DE) method (5.08), for which the improved DE was 4.20. The results further showed that basic DE and improved DE with jump search are effective methods compared to the other meta-heuristic methods. Hence, they can be used to solve the FJSP.


Introduction
Nowadays, the goal of businesses and industry is to reduce costs, and this is affected by production scheduling. Efficient production scheduling can reduce production expenses and time, resulting in on-schedule delivery of goods to customers and a competitive advantage for the firm. The issues of production scheduling concern the sequencing and machine assignment for each order. Owing to the requirement of the modern manufacturing processes for greater flexibility, the job shop scheduling problem (JSP) is an important type of production scheduling; furthermore, the flexible job shop scheduling problem (FJSP) was developed from the classical JSP. Job operations are allocated to every given machine in the production process. It is possible to assign any job to more than one machine as per the machine's capability and, consequently, constructing an environment that is similar to the actual industry [1]. FJSP is an NP-Hard problem of the combinatorial optimization type, which has a complex solution. Applying a mathematical method to determine the exact algorithms for an optimal solution takes a moderate amount of time and wastes money; in particular, there is a big problem with the great number of variables and the limitations of the method. Metaheuristics are developed to solve FJSP to find a near optimal production schedule and to shorten the time required to solve the problem. algorithm, were employed. Li and Gao [9] studied an effective hybrid genetic algorithm and Tabu Search for flexible job shop scheduling problem. Luan et al. [10] studied improved whale algorithm for solving the flexible job shop scheduling problem and Li et al. [11] studied the hybrid artificial bee colony algorithm with a rescheduling strategy for solving the flexible job shop scheduling problems.

Flexible Job Shop Scheduling Problems by Using Differential Evolution Algorithm
Based on a study of the literature and research regarding the solutions to flexible job shop scheduling problems by using the differential evolution algorithm, Wisittipanich [12] proposed the application of adapted differential evolution algorithms to minimize the makespan in the FJSP. The modification of algorithms aimed to improve the efficiency of original DE by balancing its exploration and exploitation abilities to avoid the common problem of premature convergence. The first adapted DE was called the DE with subgroup strategy. In this algorithm, the population is divided into groups, and the population in each group employs different strategies to search for the new solution simultaneously in order to extract the strength of any strategy and compensate for the weakness of each strategy. This led to an increase in the overall performance efficiency. The second adapted DE was the DE with the switching strategy. This algorithm allowed the entire population to change searching strategies when there was no improvement to the solution. Thus, the chance of being trapped at a local optimum was decreased. The efficiency of two modified DEs was examined in solving an experimental problem and compared with the result of the original DE. The solutions provided by both modified DE algorithms were comparable or of a higher quality than the solutions from the original DE. Yuan and Xu [13] studied flexible job shop scheduling using hybrid differential evolution algorithms. Hybridization comprised the development of a mechanism to use the discrete differential evolution algorithm to solve the flexible job shop scheduling problem and second, enhancement of the local search ability in the DE framework. The objective was to find minimize the makespan. Bhaskara et al. [14] on the use of the differential evolution algorithm for the flexible job shop scheduling problem, applied the local search algorithm with the objective of minimizing the makespan.

Differential Evolution Algorithm for Solving Other Problems
The differential evolution algorithm is perceived as a modern method. It has become a favorable method to employ in various areas including operational research problems, such as application in the blocking flow shop scheduling problems to reduce production time [15]. Furthermore, in was applied in job shop production. Zhang et al. [16] adapted this method to deal with the job shop problem in order to minimize the total tardiness. For applications in the supply chain management problem, in particular, for the vehicle routing problem in the supply chain, the relevant studies have been carried out with different objectives and constraints under various conditions. For example, Cao and Lai [17] adapted the method to the open vehicle routing problem with fuzzy demands to reduce the total traveled distance. Lai and Cao [18] applied the method to solve the VRP with pickups and deliveries and time windows aimed at minimizing the total traveled distance. Xu and Wen [19] employed the DE in the unidirectional logistics distribution vehicle routing problem with no time windows and achieved the shortest total distance. By adapting DE with the agricultural management problem,  Figure 1 shows the general pattern of flexible job shop scheduling problem systems, which consist of a system with C work stations. In each work station, there will be a number of identical parallel machines. Each work station has its own specific route and can choose to perform the tasks assigned to one of the parallel machines and can be at the same work station. Considering the complexity of the model, the model of the flexible job shop scheduling problem systems that allows for recursive operation is the most redundant model.

Flexible Job Shop Scheduling Problem Pattern and Mathematical Model
We only focused on the FJSP in this study, and the details of the problem are as follows:

Flexible Job Shop Scheduling Problem (FJSP)
This production system is similar to the job shop scheduling problem but with more flexibility. As an explanation, any job includes a specific operation that can be processed by 1 or more machines owing to the various capabilities of the individual machine. As shown in Table 1, there are 3 jobs, each with a different set of operations. Every operation is allowed to select any machine from a given set, for example, in job 2, operation 1 can be performed on 2 machines, with M2 processing 10 time units and M3 processing 7 time units, while M1 shows "-", referring to an inability to operate.  Figure 1 shows the general pattern of flexible job shop scheduling problem systems, which consist of a system with C work stations. In each work station, there will be a number of identical parallel machines. Each work station has its own specific route and can choose to perform the tasks assigned to one of the parallel machines and can be at the same work station. Considering the complexity of the model, the model of the flexible job shop scheduling problem systems that allows for recursive operation is the most redundant model.  To measure the production scheduling efficiency, there are various effective evaluations based on the production characteristics such as determining the minimization of the makespan (C max ), the number of tardy jobs, and the maximum lateness. This paper employed the minimized makespan (C max ) for evaluation in accordance with Equation (1). While C1, C2, . . . , C p are possible solutions to produce scheduling, the solution resulting in the longest processing time was selected. Moreover, Z refers to the objective of production scheduling-to achieve the lowest value-as described in Equation (1). Figure 2 shows a sample of solutions from the total processing time of entire jobs: Minimize Z = f (C 1 , C 2 , . . . , C p ).
(1) To measure the production scheduling efficiency, there are various effective evaluations based on the production characteristics such as determining the minimization of the makespan (Cmax), the number of tardy jobs, and the maximum lateness. This paper employed the minimized makespan (Cmax) for evaluation in accordance with Equation (1). While C1, C2, …, Cp are possible solutions to produce scheduling, the solution resulting in the longest processing time was selected. Moreover, Z refers to the objective of production scheduling-to achieve the lowest value-as described in Equation (1). Figure 2 shows a sample of solutions from the total processing time of entire jobs: Minimize Z = f (C1, C2, …, Cp).
(1) The relative error is the difference between the measured and actual values, and it is generally expressed as a percentage (%). When the measured value is proximate to the actual value, this indicates high correctness or accuracy. The relative error is calculated using Equation (2), as follows; %Relative Error: RE = × 100 (2) where Cmin is the optimal solution to the algorithm, and BKS is the best known solution.

Mathematical Model of the Flexible Job Shop Scheduling Problem
The mathematical model of the FJSP, proposed by Kanate [4], includes many relevant binary variables, which are as follows:  The relative error is the difference between the measured and actual values, and it is generally expressed as a percentage (%). When the measured value is proximate to the actual value, this indicates high correctness or accuracy. The relative error is calculated using Equation (2), as follows; where C min is the optimal solution to the algorithm, and BKS is the best known solution.

Mathematical Model of the Flexible Job Shop Scheduling Problem
The mathematical model of the FJSP, proposed by Kanate [4], includes many relevant binary variables, which are as follows:

Parameter
M Mathematically large real number P i,j,h Processing time for operation h of job j on machine i O i,j,h Operation h of job j on machine i a i,j,h Constant to define if job j at operation h is able to be processed by i-equal to 1 for the ability to process and 0 for the inability to process

C max
Makespan t j,h Start time of the processing operation h of job j on any machine f j,h Finish time of the processing operation h of job j on any machine y i,j,h Binary variable equal to 1 while processing operation h of job j on machine i X i,j,h,k,l Binary decision variable equal to 1 while processing operation h of job j on machine O i,j,h , which comes before operation l of job k on machine i O i,k,l .
The mathematical model of the flexible job shop scheduling problem can be written as: Equation (3) is a target equation to produce the minimum makespan, in order to reduce the production time, contributing to lower costs and product delivery time. Next, Equations (4) and (5) restrict the order based on the priority order in which each job is processed (precedence constraint). Equation (6) imposes a constraint on the makespan, whereby all job operations must be finished in a time less than or equal to the makespan. For Equation (7), only machines available for processing can be selected. Equation (8) is used to ensure that each machine can process, at most, one job at a time. Constrained by Equation (9), any job operation can be assigned to process on one machine only. Equations (10) and (11) create the sequence of job priority on machine i-Equation (10) selects the predecessor job and Equation (11) selects the next job. Equation (12) is the constraint that ensures that each job operation cannot be processed before its release time on machine i. Subsequently, Equations (13) and (14) restrict the start and finish times of every job to positive real numbers. Furthermore, Equations (15) and (16) specify y i,j,h and x i,j,h,k,l as binary variables.

General Differential Evolution Algorithm
The general differential evolution algorithm has general procedures [25], as shown in Figure 3.  The procedures of the differential evolution algorithm consist of (1) the initial population, and (2) mutation to generate mutant vector by differentiating a dimension of the vector. The calculation for mutating a vector's dimensions is shown in Equation (17): where m is the number of vectors of each generation, n is vector dimension, G is the iteration round, such as round 1, 2, or 3, and r1, r2, and r3 are 3 random vectors. F is the scaling factor, where , , is a mutant vector for vector m at vector dimension n in iteration round G. Moreover, , , is firstly the random target vector at dimension n in iteration round G.
, , and , , are, respectively, the second and third random target vectors. Thus, the mutant vector of vector m at dimension n in round G equals the value of target vector r1 at dimension n round G plus scaling factor F times the difference between target vectors r2 and r3.
where , , is the trial vector of vector m at dimension n in round G, is a random real number between [0, 1] of vector m at dimension n, CR refers to the crossover rate, Dm is the dimension of vector m. Furthermore, denotes a random integer number of vector m in the range [1, N], where N is the vector size. Consequently, the value of trial vector m in dimension n in iteration round G equals the mutant vector when there is a random number of vector m at dimension n that is less than CR; in other words, equals Dm. (4) The formula for selecting a target vector for the next round described in Equation (19). To solve the equation for the minimum target value (minimization), the less than or equal to sign is used: where, , , is the target vector m at dimension n in round G + 1, where the vector with a better fitness function value is selected in comparison with the value of the target vector and trial vector in round G. The procedures of the differential evolution algorithm consist of (1) the initial population, and (2) mutation to generate mutant vector by differentiating a dimension of the vector. The calculation for mutating a vector's dimensions is shown in Equation (17): where m is the number of vectors of each generation, n is vector dimension, G is the iteration round, such as round 1, 2, or 3, and r1, r2, and r3 are 3 random vectors. F is the scaling factor, where V m,n,G is a mutant vector for vector m at vector dimension n in iteration round G. Moreover, X r1,n,G is firstly the random target vector at dimension n in iteration round G. X r2,n,G and X r3,n,G are, respectively, the second and third random target vectors. Thus, the mutant vector of vector m at dimension n in round G equals the value of target vector r1 at dimension n round G plus scaling factor F times the difference between target vectors r2 and r3.
(3) Recombination of the trial vector is generated by exchanging vector dimensions. The equation employed for generating a trial vector is Equation (18): where U m,n,G is the trial vector of vector m at dimension n in round G, rand mn is a random real number between [0, 1] of vector m at dimension n, CR refers to the crossover rate, D m is the dimension of vector m. Furthermore, D m rand denotes a random integer number of vector m in the range [1, N], where N is the vector size. Consequently, the value of trial vector m in dimension n in iteration round G equals the mutant vector when there is a random number of vector m at dimension n that is less than CR; in other words, D m rand equals D m . (4) The formula for selecting a target vector for the next round described in Equation (19). To solve the equation for the minimum target value (minimization), the less than or equal to sign is used: where, X m,n,G+1 is the target vector m at dimension n in round G + 1, where the vector with a better fitness function value is selected in comparison with the value of the target vector and trial vector in round G.

Procedure of FJSP by Using Differential Evolution Algorithm
The procedure of FJSP uses the general differential evolution algorithm. The values used in the calculation must be set. The variables are as follows: Iterate = round, NP = number in population, F = scaling factor, and CR = crossover rate. In this problem's calculation, these suitable variables were set from the experiment as Iterate = 1, NP = 5, F = 0.8, and CR = 0.8. The general differential evolution algorithm "DE/rand/1" and binomial crossover were used in the calculation. 4.1.1. Calculation Using the General Differential Evolution Algorithm DE/rand/1 and Binomial Crossover The flexible job shop scheduling problem in Table 2 provides the details of the processing time on each machine. By explanation, Row 1 indicates the numbers of jobs and machines, including 4 jobs and 5 machines. Row 2 shows the data on job 1, comprising 3 operations. In operation 1, there are 5 available machines, which are machine 1 with a processing time of 2, machine 2 with a processing time of 5, machine 3 with a processing time of 4, machine 4 with a processing time of 1, and machine 5 with a processing time of 2. Operation 2 includes machine 1 with a processing time of 5, machine 2 with a processing time of 4, machine 3 with a processing time of 5, machine 4 with a processing time of 7, and machine 5 with a processing time of 5. Furthermore, operation 3 has machine 1 with a processing time of 4, machine 2 with a processing time of 5, machine 3 with a processing time of 5, machine 4 with a processing time of 4, and machine 5 with a processing time of 5.
Rows 3-5 show the data on jobs 2-4. The processing time of each operation can be likewise described, as shown in row 2, and put into categories, as shown in Table 3. Table 2. Sample problems of Kacem et al. [26,27].  To improve the solution to round 1, the following procedure is completed: Step 1: Generate the initial population The initial population is randomized from a number between [0, 1], where the dimension or position (D) equals the number of operations (12), and the number of populations (P; 5) results in the target vector of a sample, as shown in Table 4. Step 2: Differentiation of a dimension or mutation Three vectors, r 1 , r 2 , and r 3 , are randomly picked from the total population equal to 5 in order to generate a mutant vector of the entire 5 target vectors. As indicated by the sample problems, the randomized vectors (r 1 , r 2 , r 3 ) from target vector 1 consist of vectors 2, 5, and 3. The other concerned target vectors are demonstrated in Table 5. Calculation of the mutant vector (V m,n,G ) can be performed by substituting the randomized vector into Equation (20). Thus, the mutant vectors of sample problems are presented in Table 6.
V m,n,G = X r1,n,G + F(X r2,n,G − X r3,n,G ) (20) Step 3: Crossover The number in the range [0, 1] at the target vector position is randomly picked and is comparative to the crossover rate (CR) predefined for the crossover. Table 7 shows the random numbers for the crossover. Subsequently, the trial vector is calculated with Equation (21). In comparison, if a random number is less than or equal to CR = 0.8, the mutant vector in the same position will be selected as the obtained trial vector of that position. For differential cases, the target vector in the same position is the answer to the trial vector of the concerned position. Table 8 shows the obtained trial vectors. Step 4: Fitness Evaluation To decode the value of each dimension, the values are sorted based on the rank order value (ROV) in ascending order. Furthermore, the values are positioned in accordance with the vector order, as described in Table 9. As a consequence of the sequencing machine operation, the machine with the earliest completion time is selected. If the machine operation consumes time equally, selection becomes random. This is described in Table 10 and illustrated by the Gantt chart in Figure 4.   Step 5: Selection By comparing the fitness factor values of target vectors (Table 11) with the fitness factor values of the trial vectors (Table 12), the better vectors are selected as the target values for the next round. This is shown in Table 13.  Step 5: Selection By comparing the fitness factor values of target vectors (Table 11) with the fitness factor values of the trial vectors (Table 12), the better vectors are selected as the target values for the next round. This is shown in Table 13. (1) The improved DE was developed by applying four mutation equations [28], DE/rand-to-best/1/bin, DE/rand/2/bin, DE/rand/1/exp 2 position, and DE/best/2/exp 2 position, as seen in Equations (22), (23), (24), and (25), as follows: V m,n,G = X r1,n,G + F1(X r2,n,G − X r3,n,G ) + F2 X best,n,G − X r1,n,G V m,n,G = X r1,n,G + F(X r2,n,G − X r3,n,G + X r4,n,G − X r5,n,G ) V m,n,G = X r1,n,G + F(X r2,n,G − X r3,n,G + X r4,n,G − X r5,n,G ) V m,n,G = X best,n,G + F(X r2,n,G − X r3,n,G + X r4,n,G − X r5,n,G ) Let r1, r2, r3, r4, and r5 denote the vectors which are randomly selected from a set of target vectors j, which represents the best vector found so far in the algorithm. F is a predefined integer parameter (scaling factor). In the proposed heuristics, F is set to 2; i is the vector number which ranges from 1 to NP, and j is the position of a vector which runs from 1 to D.
(2) The improved DE was developed by applying one crossover or recombination equation at exponential crossover position 2, as seen in Equation (26) [29], as follows: U i,j,G = V i, j,G when j ≤ rand i,1 and j ≥ rand i,2 X i,j,G when rand i,1 < j < rand i,2 As the predefined parameters in the proposed heuristics, let randb i be a random number between 0 and 1 and let CR be the recombination probability. randb i , randb i,1 , and randb i,2 are random integer numbers which represent the position of a vector; these random numbers range from 1 to D.
On the basis of the explanations in steps 1-4, the improved DE is shown in Algorithm 1.

Algorithm 1.
Pseudo-code of the improved DE for the FJSP Setup the initial DE parameter Do while from first iteration to final iteration Do while from first DE to final DE Setup the initial parameters: job, operation, machine, processing time, operation sequence, machine assignment. Do while from first task to final task Find the start/following task where the fitness is the makespan of the data instances Input the scaling factor, crossover rate, NP, job assignment, machine assignment, and local search to data list Produce the four mutation equations: V m,n,G = X r1,n,G + F1 X r2,n,G − X r3,n,G + F2 X best,n,G − X r1,n,G V m,n,G = X r1,n,G + F X r2,n,G − X r3,n,G + X r4,n,G − X r5,n,G V m,n,G = X r1,n,G + F X r2,n,G − X r3,n,G + X r4,n,G − X r5,n,G V m,n,G = X best,n,G + F X r2,n,G − X r3,n,G + X r4,n,G − X r5,n,G Developed by applying the two crossover or recombination equations: U i,j,G = V i,j,G when j ≤ rand i,1 and j ≥ rand i,2 X i,j,G when rand i,1 < j < rand i,2 .
Produce the new target vector (selection/process): U m,n,G if f U m,n,G ≤ f X m,n,G X m,n,G , else .

End do End do
Select the best solution from all DEs in the iteration End do Show/select the best solution from all DEs in all iterations

Procedure of FJSP by the Using Local Search with the Jump Search
The flexible job shop scheduling problem points to the optimal target of the minimum makespan. Considering the pathway of any latest complete operation, it denotes the critical pathway for flexible job shop scheduling. As shown in Figures 5 and 6, the critical pathway is

Procedure of FJSP by the Using Local Search with the Jump Search
The flexible job shop scheduling problem points to the optimal target of the minimum makespan. Considering the pathway of any latest complete operation, it denotes the critical pathway for flexible job shop scheduling. As shown in Figures 5 and 6, the critical pathway is S  O2,1  O4,1  O4,2  O4,3  O2,2  O2,3  O2,4  T.   Figure 6 reveal the critical pathway for flexible job shop scheduling. This pathway is able to determine solutions using the local search and jump search methods through an algorithm that identifies target values from the sorted critical pathway by thoroughly checking any operation on the critical pathway. In Figure 6, operation O2,1 is checked for possible intervention by a predecessor under these circumstances and priorities with a lower processing time and compatibility with an operating machine. Accordingly, operations are checked in the following consecutive order O4,1  O4,2  O4,3  O2,2  O2,3  O2,4. Then, the fitness value is calculated in each round until completion of a set number of iterations.

Analysis of the Results from the Experiment on DE for Solving FJSP
To solve the flexible job shop scheduling problem, the Matlab program running on a personal computer (Core i5, 2.5 GHz, 8.00 GB RAM, Windows 7 operating system) was applied. It was developed by metaheuristic algorithms for the solutions focusing on the makespan.
Calculation factors were derived from the experiment based on optimization and relevant research. The findings were as follows: NP = 150, Iterate = 200, F = 2, CR = 0.8, number of iterated local search = 500 rounds. Moreover, the operation sequence that gave priority to operating the most remaining operations as well as machine assignment by choosing a machine with the minimum workload (MWL) were determined.

Procedure of FJSP by the Using Local Search with the Jump Search
The flexible job shop scheduling problem points to the optimal target of the minimum makespan. Considering the pathway of any latest complete operation, it denotes the critical pathway for flexible job shop scheduling. As shown in Figures 5 and 6, the critical pathway is S  O2,1  O4,1  O4,2  O4,3  O2,2  O2,3  O2,4  T.   Figure 6 reveal the critical pathway for flexible job shop scheduling. This pathway is able to determine solutions using the local search and jump search methods through an algorithm that identifies target values from the sorted critical pathway by thoroughly checking any operation on the critical pathway. In Figure 6, operation O2,1 is checked for possible intervention by a predecessor under these circumstances and priorities with a lower processing time and compatibility with an operating machine. Accordingly, operations are checked in the following consecutive order O4,1  O4,2  O4,3  O2,2  O2,3  O2,4. Then, the fitness value is calculated in each round until completion of a set number of iterations.

Analysis of the Results from the Experiment on DE for Solving FJSP
To solve the flexible job shop scheduling problem, the Matlab program running on a personal computer (Core i5, 2.5 GHz, 8.00 GB RAM, Windows 7 operating system) was applied. It was developed by metaheuristic algorithms for the solutions focusing on the makespan.
Calculation factors were derived from the experiment based on optimization and relevant research. The findings were as follows: NP = 150, Iterate = 200, F = 2, CR = 0.8, number of iterated local search = 500 rounds. Moreover, the operation sequence that gave priority to operating the most remaining operations as well as machine assignment by choosing a machine with the minimum workload (MWL) were determined.  Figure 6 reveal the critical pathway for flexible job shop scheduling. This pathway is able to determine solutions using the local search and jump search methods through an algorithm that identifies target values from the sorted critical pathway by thoroughly checking any operation on the critical pathway. In Figure 6, operation O 2,1 is checked for possible intervention by a predecessor under these circumstances and priorities with a lower processing time and compatibility with an operating machine. Accordingly, operations are checked in the following consecutive order O 4,1 → O 4,2 → O 4,3 → O 2,2 → O 2,3 → O 2,4 . Then, the fitness value is calculated in each round until completion of a set number of iterations.

Analysis of the Results from the Experiment on DE for Solving FJSP
To solve the flexible job shop scheduling problem, the Matlab program running on a personal computer (Core i5, 2.5 GHz, 8.00 GB RAM, Windows 7 operating system) was applied. It was developed by metaheuristic algorithms for the solutions focusing on the makespan.
Calculation factors were derived from the experiment based on optimization and relevant research. The findings were as follows: NP = 150, Iterate = 200, F = 2, CR = 0.8, number of iterated local search = 500 rounds. Moreover, the operation sequence that gave priority to operating the most remaining operations as well as machine assignment by choosing a machine with the minimum workload (MWL) were determined.

Results of Solving the Flexible Job Shop Scheduling Problem with Sample Problems from Kacem et al.
The results of solving the flexible job shop scheduling problem with sample problems from Kacem et al. [26,27] are shown in Table 14, and a Gantt chart of solutions to problem K01 is shown in Figure 7. Table 14. Summary of solving the flexible job shop scheduling problem with sample problems from Kacem et al. [26,27]. In Table 14, the result of solving the flexible job shop scheduling problem with small size problems [26,27] is revealed. The solutions optimizing differential evolution algorithms that provide the most optimal solutions are a combination of DE/rand/1 and exponential position 2 as well as a combination of DE/best/2 and exponential position 2, resulting in a makespan of 11. These solutions are illustrated in the Gantt chart in Figure 7 for problem K01. A further finding is that the lowest MRE is 3.25.  In Table 14, the result of solving the flexible job shop scheduling problem with small size problems [26,27] is revealed. The solutions optimizing differential evolution algorithms that provide the most optimal solutions are a combination of DE/rand/1 and exponential position 2 as well as a combination of DE/best/2 and exponential position 2, resulting in a makespan of 11. These solutions are illustrated in the Gantt chart in Figure 7 for problem K01. A further finding is that the lowest MRE is 3.25.

Results of Solving the Flexible Job Shop Scheduling Problem with Sample Problems of Brandimarte
The results of solving the flexible job shop scheduling problem with the sample problems of Brandimarte [30] can be found in Table 15 and the Gantt chart of solutions for problem Mk1 ( Figure  8).

Results of Solving the Flexible Job Shop Scheduling Problem with Sample Problems of Brandimarte
The results of solving the flexible job shop scheduling problem with the sample problems of Brandimarte [30] can be found in Table 15 and the Gantt chart of solutions for problem Mk1 (Figure 8).  Table 15 shows the results of solving the flexible job shop scheduling problem for medium size problems using the sample problems of Brandimarte [30]. The solution optimizing the differential evolution algorithm that provides the most optimal solution is DE/best/2 combined with exponential position 2 and DE/rand/1 combined with exponential position 2, which results in a makespan of 40 and 204. This value is equal to the BKS value of the data set from sample Mk1 and Mk3. Furthermore, the lowest MRE value obtained is 7.11, as shown in the Gantt chart in Figure 8.  Table 15 shows the results of solving the flexible job shop scheduling problem for medium size problems using the sample problems of Brandimarte [30]. The solution optimizing the differential evolution algorithm that provides the most optimal solution is DE/best/2 combined with exponential position 2 and DE/rand/1 combined with exponential position 2, which results in a makespan of 40 and 204. This value is equal to the BKS value of the data set from sample Mk1 and Mk3. Furthermore, the lowest MRE value obtained is 7.11, as shown in the Gantt chart in Figure 8.

Results of Solving the Flexible Job Shop Scheduling Problem with Sample Problems of Dauzere-Peres and Paulli
The results of solving the flexible job shop scheduling problem with the sample problems of Dauzere-Peres and Paulli [31] can be found in Table 16.  Table 16 shows the results of solving the flexible job shop scheduling problem for large size problems using the sample problems of Dauzere-Peres and Paulli [31]. The solution optimizing the differential evolution algorithm that provides the best solution is DE/best/2 combined with exponential position 2, which results in a makespan of 2610. When compared with the other DE algorithm, it obtained the lowest value that is 4.20.

Results of Solving the Flexible Job Shop Scheduling Problem with Sample Problems of Brandimarte
A comparison of the differential evolution algorithm with other metaheuristic algorithms, GA and PSO, for the 10 comparative sample problems of Brandimarte [30] is given in Table 17.   Table 17 shows the comparative results for solving the flexible job shop scheduling problem using the differential evolution algorithm versus various dimension-optimizing algorithms. The value of mean of relative error (MRE) is lower than the value obtained by Girish and Jawahar [33] with PSO (7.75), while the improved DE has a value of 7.11. The work by Chen et al. [32] showed a value of 2.08 with the, while DE provided a greater value of 7.11. However, some problems, including Mk1 and Mk3, resulted in an equally good makespan in comparison with the BKS value of the data set.

Results of Solving the Flexible Job Shop Scheduling Problem with Sample Problems of Dauzere-Peres and Paulli
A comparison of the differential evolution algorithm with other metaheuristic algorithms, 1ST-DE, for the 5 comparative sample problems of Dauzere-Peres and Paulli [31] is given in Table 18.   Table 18 shows the comparative results for solving the flexible job shop scheduling problem using the differential evolution algorithm versus various dimension-optimizing algorithms. The value of mean of relative error (MRE) is lower than the value obtained by Wisittipanich [12] with 1ST-DE (5.08), while the improved DE has a value of 4.20. From the computational results, we can see that the improved DE algorithms with jump search are effective methods when compare with the basic DE and some meta-heuristic method.

Conclusions and Suggestions
This section presents the conclusions of this study. The differential evolution algorithm was used to solve the flexible job shop scheduling problem and optimize the dimensions. Among sample problems, the makespan and the BKS value of the data set were compared and the mean of relative error (MRE) was calculated. The sample problems of Kacem et al. were used as examples of small-sized problems. The dimensions were optimized by using "DE/rand/1" combined with exponential crossover position 2, as well as "DE/best/2" combined with exponential crossover position 2, which resulted in the minimum MRE value of 3.25. The sample problems of Brandimarte were used as examples of medium-sized problems. The dimensions were optimized with the combination of "DE/best/2" and exponential crossover position 2, providing a minimized MRE value of 7.11. Furthermore, the sample problems of Dauzere-Peres and Paulli were used as examples of large-sized problems. The dimensions were optimized with the combination of "DE/best/2" and exponential crossover position 2, providing a minimized MRE value of 4.20. Hence, the improved differential evolution in this research was able to solve the flexible job shop scheduling problem.
The DE algorithm proposed in this study can be applied to solve problems in the manufacturing industry in Thailand, such as mold and die manufacturing, the flexible job shop scheduling problem of the work center (FJSSPWC), or flexible job shop scheduling problem with preventive maintenance of the machine.
Author Contributions: P.S. designed the algorithm, summarized the computation, wrote the conclusions, and validated the algorithm; N.K. and P.K. gathered data and validated the algorithm.