Next Article in Journal
Orientable Vertex Transitive Embeddings of Complete Graphs Kp2
Previous Article in Journal
A New Class of Exact Filled Penalty Function Based on the Hyperbolic Tangent Function and Its Global Optimization Algorithm
Previous Article in Special Issue
Generalized Convexity via Clarke Subdifferential of Interval Mappings and Its Optimization Applications
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Differential Evolution Flexible Integrated Assembly Production Distribution Scheduling (DE-FIAPDS)

by
Anak Agung Ayu Putri Ardyanti
1,2,
Zhiqiang Xie
1,* and
Henokh Lugo Hariyanto
3
1
School of Computer Science, Harbin University of Science and Technology, Harbin 150080, China
2
Faculty of Information Technology and Design, Primakara University, Bali 80226, Indonesia
3
Department of Electrical Engineering, Informatics, and Business, Institut Teknologi Kalimantan, Balikpapan 76127, Indonesia
*
Author to whom correspondence should be addressed.
Axioms 2026, 15(8), 566; https://doi.org/10.3390/axioms15080566
Submission received: 31 May 2026 / Revised: 14 July 2026 / Accepted: 19 July 2026 / Published: 30 July 2026
(This article belongs to the Special Issue Advances and Applications in Mathematical Modeling and Optimization)

Abstract

This study addresses the gap in research on distributed integrated scheduling for complex products by presenting a tree-structured framework enhanced with Differential Evolutionary Flexible Integrated Assembly Production Distribution Scheduling (DE-FIAPDS). The algorithm’s effectiveness is demonstrated by validating standard benchmark problems and custom-generated test cases. Using Taguchi’s method and comparative analysis, we developed GA and DE heuristic evolutionary algorithms for the scheduling problem. Over the course of 30 independent replications, applied to 100 randomly generated instances, the DE-FIAPDS algorithm was observed to produce an average final-generation makespan. We calculate the time complexity of the basic DE by combining these additional steps with the basic DE time complexity, such as forward conversion, backward conversion and local search, which can be expressed as O ( G max · N pop · ( d + n op log n op ) ) , where G max is the maximum number of generations, N pop is the number of individuals in the given population, d is the dimension of the problem, and n op is the the number of operations in FIAPDS. The proposed DE-FIAPDS gives the same results as GA-FIAPDS, although in some instances they differ by a huge difference in makespan. On the other hand, its computing time was 100 times quicker.

1. Introduction

Efficient scheduling is crucial in today’s manufacturing industry to minimize production costs, maximize resource utilization, and improve overall production effectiveness. According to Pinedo [1], scheduling problems often arise when there is a mismatch between effective utilization of manufacturing resources and optimization of production goals and cost efficiency. The scheduling problem is strongly Non-deterministic Polynomial (NP-hard), which means that it is at least as difficult as the hardest problems in the class of Non-deterministic Polynomial, for which no known polynomial-time algorithm can provide an exact solution [2].
Traditionally, in many scheduling problems, to produce items on several machines, they need to be scheduled independently. Specifically, in the integrated scheduling problems, we built all components from the given times using a tree-like structure. In this kind of structure, they processed the leaves on the tree first before the items were assembled into a specific component according to a hierarchical assembly structure. Moreover, integrated scheduling problems are divided into two main stages: processing and assembly. These two stages tend to lengthen the manufacturing cycles, increase production costs, and also increase processing time.
Destouet et al. [3] carried out survey research on scheduling that aligns with the transition from Industry 4.0 to Industry 5.0, following advancements in AI, IoT, and optimization concepts, divided into research problems. Mraihi et al. [4] reviewed modern manufacturing, adding to the busy machines and ineffective prioritization problem. The study by Wang et al. [5] involves systematically arranging production tasks in line with pre-set plans and market requirements. Ardyanti et al. [6] classified research about Integrated Scheduling Problems (ISPs), such as Planning Scheduling [7,8,9], ISP for Manufacturing [10,11,12,13,14,15,16], Production and Distribution [17,18,19,20,21], Assembly Job Shop Scheduling [22,23,24,25], Control and Robotics [26], Supply Chain [27], Logistics [28,29], Security Systems [30], Energy and Carbon [31,32], and Health [33,34,35,36].
Although the ISP extends job shop scheduling problems, the present study focuses on a scheduling optimization problem in flexible machine and multi-factory environments. The proposed approach employs a remaining-work probability selection coding strategy to minimize the maximum product manufacturing completion time. As described by Xie et al. [37], the integrated scheduling problem (ISP) approach, also known as the flexible integrated scheduling problem (FISP), uses the Artificial Bee Colony Algorithm. Gao et al. [38,39] represented process constraints using tree-structured relationships. Yuan et al. [40] proposed a three-chain method for complex product manufacturing with priority constraints on flexible machines and flexible factories. To ensure the feasibility, quality, and heterogeneity of the initial population, an encoding strategy grounded in a remaining-work probability selection mechanism is proposed. In addition, two dedicated methods are developed for the crossover and mutation operators to handle specific cases of forward and backward conversion of flexible machines and factories, each ensuring the correctness and admissibility of the offspring chromosomes produced. To further strengthen the algorithm’s search performance, a machine-oriented search strategy is introduced. In addition, a straightforward and practical decoding procedure is provided. The feasibility and effectiveness of the proposed algorithm are confirmed through comprehensive experimental evaluation. This section specifically examines production allocation among up to five factories, with the Differential Evolution Algorithm adopted as the underlying optimization technique, having been established as the superior method at the IEEE World CEC 2025 (https://attend.ieee.org/wcci-2026/ieee-cec-2025/ accessed on 3 April 2026), and used Python Numba for fast machine code (http://numba.pydata.org/ accessed on 3 April 2026) [41,42,43].
The organizational structure of this paper is delineated as follows. Section 2 is rigorously formulated for the Integrated Scheduling Problem (ISP). For this research, we considered complex products, flexible machines and factories, as shown in in Figure 1. From Figure 1, our framework is a tree-structured framework where every node and leaf node describes an assembly process performed under flexible machine and factory settings. Then, Section 3 is about basic Differential Evolutionary (DE). Section 4 systematically describes Differential Evolutionary Flexible Integrated Assembly Production Distribution Scheduling (DE-FIAPDS), comprising the encoding mechanism grounded in remaining work quantities, two independent crossovers, selection with a local search strategy, the associated decoding procedure, and mutation operators based on forward and backward conversion strategies to maintain consistency with Differential Evolution (DE). Section 5 is the experimental setup of two comparative studies designed to rigorously evaluate algorithm performance. Section 6 presents the results. Section 7 synthesizes the summary and suggests avenues for future investigation.

2. Problem Formulation

As shown in Figure 2, consider n op operations from a tree-structured complex product, the manufacturing workload of which is collaboratively distributed across n fac factories, or equivalently, processing centers. Without loss of generality, each factory is assumed to house a uniform number of machines, denoted by n mac . To formally govern the admissible processing sequences among the constituent operations, a priority constraint set C is defined to be C = { ( O i , O j ) O i , O j O } , where the set O is the set of all operations O i . If  ( O i , O j ) C , operation O i is the immediate predecessor of O j , which means that O i must be finished before operation O j is processed. For each operation O i , define two variables that represent starting time s i and completion time c i . When the operation O i is processed in factory f at machine m, we define x i m f and set it to 1, otherwise 0. The subscript sequence of x i m f follows the convention that we first need to place the operation at an available machine in any factory. For each immediate predecessor of O j that has the same machine and factory placement at O j , we define the variable y i j , where O i is one of the immediate predecessor operations. If we set y i j = 1 , it means O j is proccessed after O i ; otherwise, we set y i j = 0 . The factory set F is defined as F = { f f { 0 , 1 , 2 , , n fac 1 } } , and the machine set M is defined as M = { m m { 0 , 1 , 2 , , n mac 1 } } . Because not all machines are available to all operations, we define the set of available machines A M i for each operation O i . We also assume that the set of all machines M can be found in any factory. We also define p i m as the processing duration required for operation O i on machine m. The distance from the first factory to the second factory f a and f b is defined as D f a , f b . We also define z i j , which has the same characteristic as y i j , but it is specified to include the traversing time when bringing all the products after processing all immediate predecessors O i of the operation O j to the factory where O j is placed. The scheduling objective is to minimize the total completion time of the product. Accordingly, the problem investigated in this study is formally formulated as follows.
minimize C max = max i ( c i )
subject to
f F m A M i x i m f = 1 , i = 0 , , n op 1
p i = f F m A M i x i m f p i m , i = 0 , , n op 1
s i max { j | ( O j , O i ) C } c j + z j i D f j , f i , i = 0 , , n op 1
c i = s i + p i , i = 0 , , n op 1
y i j + y j i x i m f + x j m f 1 , i , j = 0 , , n op 1 i j m A M i A M j f F
s j s i + p i ( 1 y i j ) L + z i j D f i , f j , i , j = 0 , , n op 1 i j
s i 0 , i = 0 , , n op 1
In the above problem, c i is the completion time defined by operation O i . C max is the maximum of all possible c i . In constraint Equation (2), we set every operation only in one factory and one available machine. As shown in Equation (3), p i is processing time in operation O i after we have assigned that operation to a specific machine and factory. We set the constraint for the starting time of each operation, where its starting time must be initiated after all its immediate predecessors have been completed, as shown in Equation (4). The variable D f i , f j is the distance (in unit time) for bringing the product after operation O i from factory f i to be processed by operation O j in factory f j . In Equation (5), we have to make sure that c i satisfies the total processing time for its operation, where the starting time is s i . The constraint in Equation (6) is a constraint to avoid any overlap between two operations O i and O j for any operation O i that is an immediate predecessor of O j at machine m and factory f. The constraint in Equation (7) is a constraint that the starting time for any operation O j that is not an immediate predecessor of O i can be started earlier than O i by setting a specific large constant L. Based on the last constraint in Equation (8), we have to make sure that the starting point is never negative. Every operation has an opportunity to start.
For realistic conditions, we need to define the following assumptions:
1.
Operations must not be interrupted while processing on the equipment. Once the operation commences, it cannot be halted until its completion.
2.
Every machine only processes one operator at a time.
3.
Any operation may be executed on one of the accessible machines.
4.
A prior tight-predecessor on the same machine is preferred.
5.
Preceding predecessors are favored for allocation to the machine and factory. For any operation, it cannot start until all its predecessors are finished.
6.
No loss of equipment. This presumes that no equipment will sustain damage or require repair throughout the execution of all procedures.
7.
No loss of time. We disregard the temporal expenses associated with component supply and equipment initialization, meaning that the release time for each step is zero.
8.
Prior information knowledge about the processing time in each operation. We know prior to the execution of the procedure the equipment required and the necessary processing duration.
For example, here we present the input data for 18 assembly operations in a tree-like structure in Figure 3 that will be assigned to up to four machines and five different factories. In that case, we also show the one possible solution to our problem using a tri-chain encoding in Figure 4. To store the tree-like structure of the hierarchical assembly operation, we use a simple array that stores the successors of each operation as in Table 1.
In the above example, we also need to know the available machines of each operation, which have been collected in Table 2. We assume that all factories have the same type of machines. It means that for each operation and its corresponding available machines, we can put that operation in any factory. The more complicated problem can be handled by restricting these to available factories for each machine. We leave this to our future work.

3. Basic DE

For this section, we follow the description of DE from [44]. Essentially, DE modifies the real-valued vector taken as a sample in a way that differs from the other two random vectors. After that, it performs another vector manipulation and checks if the vectors will have the minimum value. Before we can start DE, we need to determine the control parameters. The parameters comprise the mutation scale factor ( F scale ), population size ( N pop ), and the crossover probability ( C r ). Identifying an effective parameter configuration enhances the algorithm’s capability to converge toward the global optimum or a near-optimal region at an accelerated rate.
We represent the subsequent generations in DE as g = 0 , 1 , , G max . In the current population generation, the i-th vector is expressed as:
X i , g = x 1 , i , g , x 2 , i , g , , x d , i , g T
where d is a vector dimension. The first population ( g = 0 ) of vectors is often created randomly to maximize coverage of the confined search space. Consequently, the j-th element of the i-th vector can be represented as
x j , i , 0 = x j , min + x j , max x j , min U ( 0 , 1 )
where a random variable U ( 0 , 1 ) represents a real number distributed uniformly between 0 and 1. The lower and upper bounds ( x j , min , x j , max ) are determined by the problems. After we initialize the initial population X i , g , we can use these vectors to perform mutation.

3.1. Mutation Basic DE

During the evolutionary process, a perturbation that is applied to an individual might be considered to be part of the mutation. A candidate vector that is drawn from the current generation is identified as the target vector in the DE. An example of a mutant vector is produced by the mutation operator. V i , g = [ v 1 , i , g , v 2 , i , g , , v d , i , g ] T . It is widely recognized that various mutation strategies are available for the DE. This work adheres to the DE/best/1. The term “best” means that we select the best individuals from the population after we perform mutation on all individuals. The last term “1” means that we use only one difference to update a vector. This update can be written explicitly as
V i , g = X best , g + F scale X r 1 , g X r 2 , g
In the above update, we define r 1 and r 2 as two unique random integers drawn from { 1 , 2 , , N pop } for each individual in each generation. The individual vector X best , g represents the vector that, within the population at the time of generation g, achieves the highest fitness value (that is, the value of the minimum objective function in the context of a minimization issue). The scaling factor F scale is a real-valued constant defined over the interval [0, 2], typically taking a value less than 1. The mutation operator in DE differs substantially from that employed in classical GA. In contrast to the marginal perturbations characteristic of GA mutation, DE mutation is performed through a linear combination of individual vectors. Upon completing the mutation operation for each individual vector, the crossover operation is subsequently applied.

3.2. Crossover Basic DE

The crossover illustrates a standard instance of information sharing among individuals. The crossover operator vector U i , g = [ u 1 , i , g , u 2 , i , g , , u d , i , g ] T , by mixing components from X i , g and its associated V i , g mutated vector. The formulation to perform crossover is conceived by these conditional transformations:
u j , i , g = v j , i , g , if U ( 0 , 1 ) C r or j = q x j , i , g , otherwise
where j = q . We are able to use an integer that has been chosen at random from within the interval from [ 1 , d ] , ensuring U i , g inherits a minimum of one element from the altered vector V i , g . The real-valued constant defined over the interval [ 0 , 1 ] has a crossover probability C r .

3.3. Selection Basic DE

The selection of the operator is the fundamental task of determining if the vector U i , G substitutes the existing individual in the future generation, which can be expressed as:
X i , g + 1 = U i , g , if f ( U i , g ) f ( X i , g ) X i , g , otherwise
In this context, f ( X ) denotes the objective function, where f operates on a designated vector X . In the aforementioned equation, we advance the individual vector X i , g if the newly generated vector U i , g demonstrates a superior minimum compared to the minimum of the objective function associated with X i , g . These procedures of mutation, crossover, and selection are repeated until we have convergent solution vector X i , g .

4. DE for FIAPDS

We apply DE to our problem FIAPDS; we call it DE-FIAPDS. This algorithm was developed from  [40]. We use the principle of DE in the new problem and also develop the new local search. Our local search is simpler to implement than in [40]. To start the DE, we have to prepare the initial real-valued vector X i , g , which we call a chromosome. These vectors will be converted back and forth to what is called the “three-vector code”; see Figure 5. Specifically, the proposed DE-FIAPDS can be explained in the following steps (see Figure 6).
First, set up the size of the population or the number of symbols as ( N pop ), then the ( C r ) crossover probability, the ( F scale ) mutation scale factor, and ( G max ) maximum number of generations. Second, initialize the population and set g = 0 . Third, evaluate each chromosome with the given objective function f, and label the best individual with X b e s t , g . Fourth is the mutation phase. We generate N pop vectors V i , g by employing the mutation operator outlined in Equation (11). Fifth is the crossover phase; generate N pop vectors U i , g , according to the crossover condition transformation given in Equation (12). Sixth is vector U i , g for the local search. The seventh step is the selection phase. Evaluate each of the N pop to find the best candidate vectors X i , g + 1 , by comparing the objective value of three vector codes U i , g and against that of the current vector X i , g , described in Equation (13). Then, add the generation counter by setting g g + 1 . In the eighth step, recalculate these new chromosomes’ X i , g ’s again to find the X b e s t , g . In the ninth step, if G < G max , proceed to Step 4; if not, halt the procedure and return X b e s t , g .
The proposed DE-FIAPDS integrates global exploration via evolutionary mechanisms with local exploitation through a dedicated local search algorithm, where local search is applied to the three-vector code of the chromosome U i , g (or [ O i , g , M i , g , F i , g ] ; see Figure 5) rather than the chromosome X i , g . Implementing DE FIAPDS requires addressing two key components: chromosome evaluation and local search application. For evaluation, a real-valued chromosome is first transformed into a discrete three-vector code representation via forward conversion. Read Section 4.3 for further explanation. This three-vector code is then decoded into a stacked Gantt chart of all factories, as shown in Figure 7.

4.1. Initialization of Chromosome

In our proposed DE, each candidate solution i is encoded as a d-dimensional real-valued vector X i , g = [ x 1 , i , g , x 2 , i , g , x d , i , g ] T where d is set to 3 n op and g is the index for the generation. To simultaneously address sequencing decisions, machine assignment, and factory assignment, X i , g is partitioned into three equal sub-vectors:
  • The first segment, X i , g ( 1 ) = [ x 1 , i , g , x 2 , i , g , , x n op , i , g ] T , encodes machine operation sequencing.
  • The second segment, X i , g ( 2 ) = [ x n op + 1 , i , g , x n op + 2 , i , g , , x 2 n op , i , g ] T , represents the assignment of all operations to their available machines.
  • The last segment X i , g ( 3 ) = [ x 2 n op + 1 , i , g , x 2 n op + 2 , i , g , , x 3 n op , i , g ] is for the factory assignment.
Similar to the basic DE, each element x j , i , g in the initial population is generated through uniform random sampling. Individual chromosomes are initialized according to Equation (10), with lower and upper bounds set to x j , min = δ and x j , max = δ for all j = 1 , 2 , , 3 n op .

4.2. Decoding Three-Vector Code

The proposed DE-FIAPDS employs a deterministic decoding mechanism to calculate the three-vector code X i , g ( three - vec ) into a feasible schedule. We cannot immediately decode a chromosome represented by real-valued vectors into makespan because the chromosome does not explicitly represent the assignment of operations to machines and factories. Section 4.3 will further elucidate the process of converting that chromosome into its three-vector coding form. Now we want to explain Algorithm 1, which decodes from the three-vector code into makespan.
Algorithm 1 decoding(), Decoding three-vector code X i , g
Input: 
X i , g ( three - vec ) , p j m , Tree op , n fac , n mac , D f i , f j
Output: 
t end , op , t start , op - mac
  1:
Get O i , g , M i , g , F i , g from X i , g ( three - vec )
  2:
Initialize t start , idle with 0 n fac × n mac
  3:
Initialize t end , idle with ( 1 ) n fac × n mac
  4:
Initialize t end , op with 0 ( n op + 1 ) × 3
  5:
Initialize t start , op - mac with ( 1 ) n op × 3
  6:
for  j { 0 , , n op 1 }  do
  7:
   Get m = M i , g [ j ] and f = F i , g [ j ]
  8:
   Get t start = t start , idle [ f 1 , m 1 ] and t end = t end , idle [ f 1 , m 1 ]
  9:
   Get all predecessors of O j , O pred ( O j ) and calculate n pred = | O pred ( O j ) |
10:
   Initialize t end , pred with ( 0 ) n pred × 3
11:
   if  n pred > 0  then
12:
     Initialize t max , end , pred with 0
13:
     Initialize M end , pred with 0 n pred × 1
14:
     Initialize F end , pred with 0 n pred × 1
15:
     for  k { 0 , , n pred 1 }  do
16:
        Find the index for the position of O k in O i , g
17:
        Update M end , pred [ k ] M i , g [ ]
18:
        Update F end , pred [ k ] F i , g [ ]
19:
        Calculate t end , pred t start , op - mac [ O k , 0 ] + p j k
20:
        if  t max , end , pred < t end , pred  then
21:
          Update t max , end , pred t end , pred
22:
        end if
23:
     end for
24:
     if  t end 1  then
25:
         t max , end , pred max ( t max , end , pred , t end )
26:
     end if
27:
     Find the factories in which t max , end , pred happened
28:
     Calculate t start , op - mac by adding travel time from D f i , f j
29:
   else                                                                                                    ▹ No predecessor
30:
     if  t end = 1  then
31:
         t start , op - mac t start
32:
     else
33:
         t start , op - mac t end
34:
     end if
35:
   end if
36:
   Update t end , op and t start , op - mac
37:
   Update t start , idle and t end , idle
38:
end for
39:
Sort t end , op with bubble sort
Algorithm 1 actually does not calculate makespan directly, but we can infer the makespan from the maximum of t end , op . We also return the second output t start , op - mac to be used for plotting purposes of the Gantt chart; see Figure 7. The general idea of Algorithm 1 is to record the feasibility of placing operation O j in a given machine m, and factory f. After we put into position all the predecessors of O j , which is denoted by O ( O j ) , we calculate the starting time for O j . This is can be done by maintaining two variables t start , idle , t end , idle . These two variables keep all the feasible starting and end times on each machine for all factories.

4.3. Forward and Backward Conversion

4.3.1. Forward Conversion

This section process alters a chromosome, originally encoded as a continuous real-valued vector X i , g , into a three-vector code X i , g ( three - vec ) = [ O i , g , M i , g , F i , g ] . This procedure is divided into three stages: RepairPermute ( ) (3) and two stages of AssignForwConvers ( ) (4) for machine and factory assignment; see Algorithm 2.
In the first stage, the sub-vector X i , g ( 1 ) = [ x 1 , i , g , x 2 , i , g , , x n op , i , g ] T is associated with the operation vector code O i , g while also taking into assembly operation derived from Tree op . The configuration of variable Tree op is illustrated in Figure 3. To execute this conversion, the Largest Position Value rule ( LPV _ rule ( ) ) is first employed to generate a permutation of operations. The general idea is to sort the values of X i , g ( 1 ) in descending order, and use those new position indices as the position of operation O j in O i , g . To avoid any conflict with the assembly operation order from Tree op , we apply RepairPermute ( ) by swapping incorrect assembly operation order. We use the fact that for the order, all the operations to the left of an operation O j are the predecessors. No predecessors of O j are to the right of O j . This procedure is implemented in Algorithm 3.
Algorithm 2 forw_convers(), Transform chromosome X i , g into three-vector code
Input: 
X i , g , L vec , F vec , M arr , O M arr , F arr , O F arr , δ , Tree op
Output: 
X i , g ( three - vec )
1:
Get the segments X i , g ( 1 ) , X i , g ( 2 ) , X i , g ( 3 )
2:
O i , g RepairPermute LPV _ rule X i , g ( 1 ) , Tree op                                   ▹ See Algorithm 3
3:
M i , g AssignForwConvers X i , g ( 2 ) , L vec , M arr , O M arr , O i , g , δ                   ▹ See Algorithm 4
4:
F i , g AssignForwConvers X , g ( 3 ) , F vec , F arr , O F arr , O i , g , δ
5:
X i , g ( three - vec ) O i , g , M i , g , F i , g
In the second stage, the sub-vector X i , g ( 2 ) = [ x n op + 1 , i , g , x n op + 2 , i , g , , x 2 n op , i , g ] T is transformed into machine assignment vector code M i , g . To facilitate this mapping, we define three auxiliary arrays:
1.
L vec = [ 1 , 2 , , n op ] T , where each element j represents the quantity of operational j machines available.
2.
M arr is the concatenation of all available machines for all operations in one-dimensional array.
3.
O M arr is the starting index to get available machines in M arr . We use this in conjunction with L vec .
These three auxiliary arrays are the consequence of using a non-ragged array in our implementation. The ragged array is a two-dimensional array where the second axis (column) has different lengths for each row in the first axis.
In the third stage, the sub-vector X i , g ( 3 ) = [ x 2 n op + 1 , i , g , x 2 n op + 2 , i , g , , x 3 n op , i , g ] is mapping into factory assignment vector code F i , g . We perform this mapping with the same procedure as we map X i , g ( 2 ) into the machine assignment vector. Here, we define three auxiliary variables for the factory assignments to be F vec , F arr , and  O F arr . These three auxiliary arrays will be used altogether with X i , g ( 3 ) in AssignForwConvers ( ) ; see Algorithm 4.
Algorithm 3 RepairPermute()
Input: 
X i , g ( sub - sort ) , Tree ops
Output: 
O i , g
  1:
Initialize O i , g ( orig ) X i , g ( sub - sort )
  2:
Initialize O i , g X i , g ( sub - sort )
  3:
for  j { 0 , , n op }   do
  4:
    O j all successors of O j
  5:
   Initialize ShiftLeft j
  6:
   for  k { j 1 , , 0 }  do
  7:
     if  O i , g [ k ] O j  then
  8:
         ShiftLeft k
  9:
     end if
10:
   end for
11:
    MovedSlices O i , g [ ShiftLeft : j ]
12:
    O i , g [ ShiftLeft + 1 : j + 1 ] MovedSlices
13:
    O i , g [ ShiftLeft ] j
14:
end for
Algorithm 4 AssignForwConvers()
Input: 
X i , g ( sub ) , A vec , A arr , O A arr , O i , g , δ
Output: 
A i , g
1:
Get n op from X i , g ( sub )
2:
Initialize A i , g with 0 n op × 1
3:
arr round 1 δ A vec 1 X i , g ( sub ) + δ + 1 1
4:
for  j { 0 , , n op 1 }  do
5:
    op O i , g [ j ]
6:
    O i , g [ j ] A arr [ O A arr [ op ] + arr [ op ] ]
7:
end for

4.3.2. Assignment Forward Conversion

From forw _ convers ( ) of Algorithm 2, the procedure of machine and factory assignment is undertaken by AssignForwConvers ( ) . The idea is to transform the real interval [ δ , δ ] in which X i , g ( 2 ) and X i , g ( 3 ) are present into the discrete interval of available machine or factory [ 1 , a j ] . Here we have a j ( three - vec ) = j (for machine assignment) or a j ( three - vec ) = f j (for factory assignment). Those two variables j and f j are the number of available machines and factories of operation O j , respectively. This procedure is formalized by the equation below:
a j ( three - vec ) = round 1 2 δ ( a j 1 ) ( x j , i , g + δ ) + 1 , j = 1 , 2 , , n op
where round ( x ) means the function rounds x to the nearest integer. We have to note that this procedure is not invertible. It means we cannot restore the value of X i , g ( 2 ) and X i , g ( 3 ) from M i , g and F i , g , respectively. In Equation (14), we set δ = 1 , and the division by zero never happens.

4.3.3. Backward Conversion

In the backward conversion, we transform back from three-vector code into a chromosome. This procedure is divided into three stages, the same as for the forward conversion. For the first stage, we use the pairs of O i , g 1 , which is a vector code of the operation arrangement, and X i , g 1 ( 1 ) , which is a real vector of X i , g 1 , at the position indices [ 0 , n op 1 ] . Then we will have X i , g ( three - vec ) after we perform local search in Figure 6; we use the notation X i , g 1 ( three - vec ) = U i , g and X i , g ( three - vec ) = U i , g l c ). Based on this new arrangement of the three-vector code X i , g three - vec , we arrange the position of X i , g 1 such that it has a new index position. We do not change the value, as we know that the local search only performs permutations on the operation vector code O i , g 1 .
In stages two and three, we apply the inverse of AssignForwConers ( ) , the procedure called AssignBackConvers ( ) , to M i , g and F i , g . This procedure gives us X i , g ( 2 ) and X i , g ( 3 ) . After we have performed all three stages above, we concatenate all the real vectors X i , g ( 1 ) , X i , g ( 2 ) and X i , g ( 3 ) into the chromosome X i , g . All these three stages are implemented in Algorithm 5.
Algorithm 5 back_convers(), Transform back three-vector code into its chromosome X i , g
Input: 
X i , g ( three - vec ) , X i , g 1 ( three - vec ) , X i , g 1 , L vec , F vec , M arr , O M arr , F arr , O F arr , δ , U ( 0 , 1 )
Output: 
X i , g
  1:
Get n op from X i , g ( three - vec )
  2:
Get the segments O i , g 1 , M i , g 1 , F i , g 1 from X i , g 1 ( three - vec )
  3:
Get the segments O i , g , M i , g , F i , g from X i , g ( three - vec )
  4:
X i , g 1 ( 1 ) X i , g 1 [ 0 : n op ]
  5:
Initialize X i , g with 0 1 × n op
  6:
for  j { 0 , , n op 1 }  do
  7:
   Find k where O i , g 1 [ k ] = O i , g [ j ]
  8:
   Update X i , g [ j ] X i , g 1 [ k ]
  9:
end for
10:
Get orderedIdx which is the indices to order O i , g
11:
X i , g ( 2 ) AssignBackConvers M i , g [ orderedIdx ] , L vec , M arr , O M arr , δ , U ( 0 , 1 )
12:
X i , g ( 3 ) AssignBackConvers F i , g [ orderedIdx ] , F vec , F arr , O F arr , δ , U ( 0 , 1 )
13:
X i , g X i , g ( 1 ) , X i , g ( 2 ) , X i , g ( 3 )

4.3.4. Assignment Backward Conversion

This procedure is only applied to machine assignment and factory assignment vector code, M i , g and F i , g , respectively. We also use the same auxiliary vectors: L vec , M arr , and  O M arr for machine assignment, and  F vec , F arr , and O F arr for factory assignment, as we have defined in forward conversion.
In Equation (15), we express the inversion of Equation (14) for j = 1 , , n op . Remember that Equation (15) contains division by zero when a j ( three - vec ) = 1 . To avoid this division by zero, we generate a random number between δ and δ .
A j , i , g = 2 δ a j ( three - vec ) 1 ( a j ( three - vec ) 1 ) δ , a j ( three - vec ) 1 U ( δ , δ ) , a j ( three - vec ) = 1
The variable A j , i , g is a placeholder for X i , g ( 2 ) and X i , g ( 3 ) . We implement this backward conversion assignment in Algorithm 6.
Algorithm 6 AssignBackConvers()
Input: 
A i , g , A vec , A arr , O A arr , δ , U ( 0 , 1 )
Output: 
X i , g ( sub )
  1:
Get n op from A i , g
  2:
idxAvec the indices where A vec > 1
  3:
X i , g ( sub ) U ( δ , δ )
  4:
for  j idxAvec  do
  5:
    startIdx O A arr [ j ]
  6:
    endIdx startIdx + A vec [ j ]
  7:
    Anum A arr [ startIdx : endIdx ]
  8:
    normVec the indices where A i , g [ j ] = Anum
  9:
    X i , g ( sub ) [ j ] 2 δ A vec [ j ] 1 normVec δ
10:
end for

4.4. Local Search

To improve the solution or chromosome X i , g , we use local search for the three-vector code after we apply crossover. In the original DE, this procedure is not included. We adopt this local search from [40]. The idea is straightforward; we only replace machine and factory assignment in vector code M i , g and F i , g , respectively, from the possible machine and factory assignments in the given operation O j . To decide which arrangement has a better solution, we use their makespan by applying decoding ( ) to both three-vector codes (see Equation (16)).
To reduce the search space when searching the best makespan, we only replace the machine assignment and factory assignment for the operation in the critical operations. These critical operations are the operations that mostly control the makespan. Changing the non-critical operation to a different machine or factory will not influence the makespan significantly. We can see this clearly from Figure 7. Local search is performed multiple times on backward and forward conversions and selections inside local search to get the makespan of the chromosome. Here we do not perform multiple backward and forward conversions. We applied our forward and backward conversion during local search only. This will reduce the running time of our program. For these detail steps above, please refer to Algorithm 7.

4.5. Selection

The selection operator governs the survival of individuals into the subsequent generation, which is represented by Equation (13). There are many variables involved in this procedure (see Algorithm 8), because we need to know which chromosome corresponds to the three-vector code. Forward conversion is not a bi-objective function; that way, performing forward and subsequently backward conversion will not restore the same chromosome.
When calculating the objective of the chromosome of the current generation X i , g and the chromosome after local search U i , g , we have to perform forward conversion. Since we have a pair for each chromosome and its corresponding three-vector code, we do not recalculate the forward conversion to get the three-vector code.
We only use forward conversion after we check that the backward conversion of U i , g ( ls , three - vec ) does not have any value outside the domain of chromosome [ δ , δ ] . In Equation (16) is an illustration of how we calculate the objective functions due to forward conversion.
f ( X i , G ) = Makespan ( Forw ( X i , G ) three - vector code ) f ( U i , G ( ls ) ) = Makespan ( Forw ( U i , G ( ls ) ) three - vector code )
Algorithm 7 ls_makespan(), Apply local search to three-vector code
Input: 
X i , g ( three - vec ) , p j m , Π j , Tree op , n mac , n fac , D f i , f j , U ( 0 , 1 )
Output: 
X i , g ( ls , three - vec ) , makespan i , g ( ls )
  1:
( t end , op , t start , op - mac ) decoding X i , g ( three - vec ) , p j m , Tree op , n fac , n mac , D f i , f j
  2:
Find all the leftmost operations, O leftmost in the Gantt chart with t start , op - mac
  3:
Intialize totalGap maximum time of t end , op                    ▹ any large number also works
  4:
Initialize O crit { }
  5:
for  O j O leftmost   do
  6:
   Find the critical path O crit , j from O j to the rooted operation O 0
  7:
   Calculate totalGap j of O crit
  8:
   if  totalGap j < totalGap  then
  9:
     Update totalGap totalGap j
10:
     Update O crit O crit , j
11:
   end if
12:
end for
13:
Initialize X i , g ( ls , three - vec ) X i , g ( three - vec )
14:
for  O j O crit  do
15:
   Use different feasible machines (m) and factories ( f ) of O j from Π j to calculate totalGap j
16:
   if  totalGap j < totalGap  then
17:
     Update totalGap totalGap j
18:
     Update X i , g ( ls , three - vec ) with machine m and factory f
19:
   end if
20:
end for
21:
Rearange the position of O crit randomly among other operations in X i , g ( ls , three - vec )
22:
t end , op , t start , op - mac decoding X i , g ( ls , three - vec ) , p j m , Tree op , n fac , n mac , D f i , f j
23:
makespan i , g ( ls ) maximum time of t end , op

4.6. Time Complexity

According to [45], the time complexity of the basic DE is O ( G max · N pop · d ) , where G max is the maximum number of generations, N pop is the population size, and d is the dimension of the problem. In our proposed DE-FIAPDS, we have additional steps for forward and backward conversion, as well as local search. The time complexity of these additional steps can be analyzed as follows:
1.
Forward Conversion: The forward conversion involves sorting the operation vector and assigning machines and factories. The sorting step has a time complexity of O ( n op log n op ) , while the assignment steps have a time complexity of O ( n op ) . Therefore, the overall time complexity for forward conversion is O ( n op log n op ) .
2.
Backward Conversion: The backward conversion involves rearranging the operation vector and assigning machines and factories back to the chromosome. Similar to forward conversion, the time complexity for backward conversion is also O ( n op log n op ) .
3.
Local Search: The local search involves evaluating the makespan for critical operations, which can be done in O ( n op ) time. However, since we perform local search for each individual in the population, the overall time complexity for local search is O ( N pop · n op ) .
Algorithm 8 selection(), Apply selection to two vectors U i , g and X i , g
Input: 
X i , g , X i , g ( three - vec ) , U i , g , U i , g ( three - vec ) , U i , g ( ls , three - vec ) , makespan i , g ( ls ) , p j m , Tree op , L vec , F vec , M arr , O M arr , F arr , O F arr , n op , n mac , n fac , D f i , f j , δ , U ( 0 , 1 )
Output: 
X i , g ( final ) , X i , g ( three - vec , final ) , makespan i , g ( final )
  1:
X i , g ( final ) back _ convers ( U i , g ( ls , three - vec ) , U i , g ( three - vec ) , U i , g , L vec , F vec , M arr , O M arr , F arr , O F arr , δ , U ( 0 , 1 )
  2:
for  j { 0 , , 3 n op 1 }  do                 ▹avoid gene to be outside the range ( δ , δ )
  3:
    gene X i , g ( final ) [ j ]
  4:
   if  gene > δ  then
  5:
      X i , g ( final ) [ j ] δ
  6:
   else if  gene < δ  then
  7:
      X i , g ( final ) [ j ] δ
  8:
   end if
  9:
end for
10:
X i , g ( three - vec , final ) forw _ convers X i , g ( final ) , L vec , F vec , M arr , O M arr , F arr , O F arr , δ , Tree op
11:
t end , op , t start , op - mac decoding X i , g ( three - vec , final ) , p j m , Tree op , n fac , n mac , D f i , f j
12:
Initialize makespan i , g ( final ) maximum time of t end , op
13:
if  makespan i , g ( final ) > makespan i , g ( ls )  then
14:
   Update makespan i , g ( final ) makespan i , g ( ls )
15:
else
16:
   Revert X i , g ( final ) X i , g
17:
   Revert X i , g ( three - vec , final ) X i , g ( three - vec )
18:
end if
Combining these additional steps with the basic DE time complexity, the overall time complexity of DE-FIAPDS can be expressed as:
O ( G max · N pop · d + G max · N pop · n op log n op + G max · N pop · n op ) = O ( G max · N pop · ( d + n op log n op ) )

5. Experimental Setup

Although a considerable number of benchmark sets exist for traditional job shop scheduling problems, no existing benchmark applicable to the DE-FIAPDS of tree-structured products has been shown to date, to the best of the authors’ knowledge. In order to evaluate the effectiveness of the proposed algorithm, a two-phase experimental approach is implemented. The initial stage involves identifying the optimal numerical parameter configurations for our algorithm. This can be accomplished by applying Taguchi’s method. In the second stage, we generated several instances to see the statistical behavior of our DE implementation compared to GA.

5.1. Algorithm Configuration and System Specification

For the purpose of the second stage, we generated one hundred instances of problems for testing our DE implementation. We adopted the same mechanism from [38] to generate these one hundred instances of problems. There are many free parameters that can be chosen freely to generate each instance within a given range for each of the following: the factory number n fac [ 2 , 5 ] , the operation number n op [ 50 , 100 ] , the machine number n mac [ 4 , 8 ] , the tree structure of assembly operation height [ 2 , n op / 2 ] , and the processing time p i k [ 1 , 20 ] . The range of values in the distance between factories is D f i , f j [ 1 , 4 ] . All algorithms are implemented in Python 3.12.7 with a Miniconda 3 environment and executed on the server: Genuine Intel® Xeon @2.30 GHz® Gold 5118 CPU 256 cores, Linux Operating System. Every algorithm was run 30 times independently for every instance. The program is structured in a script one hundred instance . py that extensively uses Numba 0.61.2, a Python library, to speed up the running time by translating Python and NumPy into fast machine code via LLVM [46]. The program runs in parallel 3000 times (30 runs × 100 instances). Because we can run in parallel, we used 100 processor cores, which means 30 times for a single batch. In a single batch, we run 100 programs.

5.2. Parameter Settings

Initially, we must determine the parameters for the proposed algorithm utilizing the Taguchi experimental design process [47]. For this purpose, we select the case of I 82 _ 5 _ 5 that has n op = 82 operations, a maximum of 5 available machines and 5 available factories. The algorithm is governed by five key control parameters, namely N pop for population size, F scale for mutation scale factor, G max for the maximum number of generations, and C r for crossover probability. Each control factor was examined across four distinct levels, and the corresponding parameter configurations are recorded in Table 3. For each control parameter configuration, the proposed algorithm was executed independently across 30 runs to ensure statistical robustness, with the mean makespan serving as the primary performance indicator. The corresponding Taguchi experimental design and the resulting observations are systematically presented in Table 3 and Table 4. Moreover, the impact of specific parameters on algorithm performance is visually represented in Figure 8, where the average makespan is calculated at the end of generation.
From Table 4 and Figure 8, we can order our rank of primary parameters based on their ranges of influencing average makespan, and explain their behavior. The most primary parameter influencing the algorithm is the mutation scale factor F scale . This parameter has a large range of influence on average makespan. The second important parameter is G max , the maximum number of generations in local iterations. If the size is excessively large, the execution time of the algorithm will increase significantly. The subsequent parameter pertains to the crossover probability C r . Increasing this parameter will trigger more crossover mechanisms, as we observe from Figure 8. A trend exists towards achieving a minimal average makespan, with the population size N sample exerting the least influence on the algorithm’s performance. If N sample is inadequately small, it does not sufficiently characterize the distribution of the solutions. If N sample is excessively large, the execution time of the algorithm will increase significantly. We can see in Figure 8 that there is no benefit to using a larger number of individuals since it does not improve the average makespan. The parameters of DE presented in this study are established as follows: N sample = 4 n op , G max = 60 , C r = 0.9 , F scale = 0.2 .

6. Results

6.1. Initial Testing for a Single Instance

For the preliminary result, we tried n op = 18 and 82 (we only show results in this article for 18 operations; see Figure 9). We have achieved convergence for all individuals to a stable makespan after 40 generations. In Figure 9, we also keep track of the average makespan over the number of individuals ( N sample ) for three categories: (a) in the starting stage before each generation, (b) after mutation and crossover operators, and (c) after local search and selection operator. We found that these mutation and crossover operators are aggressive to explore more search space, as we can see in the beginning of each generation that they increase dramatically and tend to be stable after generation 20. Local search and selection do not improve the average makespan significantly after generation 10.

6.2. Comparison of DE-FIAPDS with Existing Algorithm

In 30 independent runs of the aforementioned algorithms on 100 randomly generated cases, our algorithm DE achieved both the average and minimum makespan, as illustrated in Figure 10. That figure shows the average makespan at the last generation and over 30 runs; the mean of this quantity over all 100 instances (including its standard deviation) for GA-FIAPDS is 106.10 (44.39) and for DE-FIAPDS it is 156.60 (59.23). The minimum average makespan for GA-FIAPDS is 36, and for DE-FIAPDS it is 46. This minimum average makespan occurred in instance 83 with n op = 52 , n mac = 6 , and n fac = 3 .
We are sorting 100 instances of data according to their critical path timespan. The critical path timespan is the total maximum processing time i p i m along the longest path in process priority starting from the deepest children operation to root operation (see Figure 3). We only select the first found on the longest path even though there might be multiple longest paths. Doing that kind of sorting, we can see clearly the trend of implementation for DE-FIAPDS and GA-FIAPDS. Figure 11 shows a comparison between our DE-FIAPDS and GA-FIAPDS for their average makespan and computational time. DE-FIAPDS is faster in calculating the solutions.
In Figure 11, we can order approximately for every 100 instances according to their critical path timespan. We found that as the problem becomes bigger, DE-FIAPDS tends to increase its computational time. In GA-FIAPDS, we barely see any trend for this computational time, but the difference in computational time between these two algorithms is in order of approximately 100.
In Figure 12, we sort our results of 100 instances based on their search spaces ( n op × n mac × n fac ). The results using this sorting of problems are very clear: upward trends in computational time between GA-FIAPDS and DE-FIAPDS.
In Figure 13, we see the difference in minimum makespan between GA-FIAPDS and DE-FIAPDS. From that graph, we can see the distribution is right-skewed, with a few upper-range examples. Large disparities between the two approaches are rare, since the ranges over 50 have low representation (6, 1, and 6 cases for 51–60, 61–70, and m ≥ 71, respectively). We can suggest that GA-FIAPDS and DE-FIAPDS approaches often yield similar minimum values. Following these findings, the subsequent stage in enhancing DE is to optimize the local search and augment the complexity to get more robust outcomes.
Both results in Figure 14 and Figure 15, which are the average and minimum computational time of the proposed DE-FIAPDS, are assessed against the GA-FIAPDS across 100 instances. As shown in the figure, every instance recorded a speed-up factor of at least 4×, with the majority falling within the [16, 32)× range (31 instances), followed by [8, 16)× (28 instances) and [32, 64)× (16 instances). Remarkably, no instance was observed where the GA-FIAPDS matched or surpassed the computational speed of DE-FIAPDS, confirming the algorithm’s consistent superiority. These results suggest that DE-FIAPDS offers a substantial reduction in computational time compared to GA-FIAPDS, making it a highly practical choice for solving large-scale optimization problems efficiently.

7. Conclusions and Future Research

From the scheduling problem FIAPDS that we have defined, we have implemented two heuristic evolutionary algorithms: DE-FIAPDS and GA-FIAPDS. We compute the average and minimum makespan for all 100 different instances. We found that for all 30 different independent executions, the algorithm converges to the same minimum makespan.
In Figure 13, the DE-FIAPDS and GA-FIAPDS approaches often yield similar minimum values; considerable variation exists across the dataset, with most divergences remaining within moderate bounds. In the future, the local search should be optimized and complexity added to DE-FIAPDS to make this algorithm faster and help it find the best minimum makespan. Overall, the performance of both algorithms was similar, but the computational time of DE-FIAPDS is much faster (around 100 times faster than GA-FIAPDS). If we take a look at the minimum makespan over 30 runs, these algorithms actually produce approximately the same result.
This study evaluates two algorithms for scenarios involving flexible machines with a constraint of several available machines and flexible factories where local search demands additional time, reducing its efficiency. We implement all the algorithms using standard Python libraries: NumPy and Numba. There is another implementation of this type of algorithm in Python: Pymoo. This module is not very easy to adopt for solving our problem, and that Python library does not support Numba. In future research, it is necessary to improve the implementation to utilize a GPU or even a parallel programming technique.

Author Contributions

Conceptualization, Z.X. and A.A.A.P.A.; methodology, Z.X. and A.A.A.P.A.; software, A.A.A.P.A. and H.L.H.; validation, Z.X. and A.A.A.P.A.; formal analysis, Z.X. and A.A.A.P.A.; investigation, Z.X.; resources, Z.X.; data curation, Z.X. and A.A.A.P.A. and H.L.H.; writing—original draft preparation, Z.X., A.A.A.P.A. and H.L.H.; writing—review and editing, Z.X., A.A.A.P.A. and H.L.H.; visualization supervision, Z.X.; project administration, A.A.A.P.A. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Data Availability Statement

Available at GitHub repository: (https://github.com/putriardyanti accessed on 18 July 2026).

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Pinedo, M.L. Scheduling: Theory, Algorithms, and Systems; Springer International Publishing: Cham, Switzerland, 2022. [Google Scholar] [CrossRef]
  2. Taillard, E. Benchmarks for basic scheduling problems. Eur. J. Oper. Res. 1993, 64, 278–285. [Google Scholar] [CrossRef]
  3. Destouet, C.; Tlahig, H.; Bettayeb, B.; Mazari, B. Flexible job shop scheduling problem under Industry 5.0: A survey on human reintegration, environmental consideration and resilience improvement. J. Manuf. Syst. 2023, 67, 155–173. [Google Scholar] [CrossRef]
  4. Mraihi, T.; Driss, O.B.; EL-Haouzi, H.B. Distributed Permutation Flow Shop Scheduling Problem with Worker flexibility: Review, trends and model proposition. Expert Syst. Appl. 2024, 238, 121947. [Google Scholar] [CrossRef]
  5. Wang, B.; Zhou, H.; Li, X.; Yang, G.; Zheng, P.; Song, C.; Yuan, Y.; Wuest, T.; Yang, H.; Wang, L. Human Digital Twin in the context of Industry 5.0. Robot. Comput.-Integr. Manuf. 2024, 85, 102626. [Google Scholar] [CrossRef]
  6. Putri Ardyanti, A.A.A.; Xie, Z.; Karnyoto, A.S.; Pardamean, B.; Estiyanti, N.M. Mapping the Scientific Landscape of Integrated Scheduling Towards Industry 5.0 with A Bibliometric Analysis. In Procedia Computer Science; Vagan, S., Feng, L., Dong, R., Eds.; Elsevier B.V.: Amsterdam, The Netherlands, 2025; Volume 253, pp. 84–93. [Google Scholar] [CrossRef]
  7. Yang, Y.; Zhu, X.; Haghani, A. Multiple Equipment Integrated Scheduling and Storage Space Allocation in Rail–Water Intermodal Container Terminals Considering Energy Efficiency. Transp. Res. Rec. 2019, 2673, 199–209. [Google Scholar] [CrossRef]
  8. Chansombat, S.; Pongcharoen, P.; Hicks, C. A mixed-integer linear programming model for integrated production and preventive maintenance scheduling in the capital goods industry. Int. J. Prod. Res. 2019, 57, 61–82. [Google Scholar] [CrossRef]
  9. Mallikarjuna, K.; Veeranna, V.; Reddy, K.H. A new meta-heuristics for optimum design of loop layout in flexible manufacturing system with integrated scheduling. Int. J. Adv. Manuf. Technol. 2016, 84, 1841–1860. [Google Scholar] [CrossRef]
  10. Yang, D.; Xie, Z.; Zhang, C. Multi-flexible integrated scheduling algorithm for multi-flexible integrated scheduling problem with setup times. Math. Biosci. Eng. 2023, 20, 9781–9817. [Google Scholar] [CrossRef] [PubMed]
  11. Lu, J.; Xu, L.; Jin, J.; Shao, Y. A Mixed Algorithm for Integrated Scheduling Optimization in AS/RS and Hybrid Flowshop. Energies 2022, 15, 7558. [Google Scholar] [CrossRef]
  12. Li, X.; Lu, J.; Yang, C.; Wang, J. Research of Flexible Assembly Job-Shop Batch-Scheduling Problem Based on Improved Artificial Bee Colony. Front. Bioeng. Biotechnol. 2022, 10, 909548. [Google Scholar] [CrossRef] [PubMed]
  13. Zhang, X.; Xie, Z.; Shao, X.; Xia, Y. An integrated scheduling method for personalized products with no-wait constraints. Int. J. Adv. Manuf. Technol. 2022, 122, 279–290. [Google Scholar] [CrossRef]
  14. Gao, Y.; Xie, Z.; Yu, X. A hybrid algorithm for integrated scheduling problem of complex products with tree structure. Multimed. Tools Appl. 2020, 79, 32285–32304. [Google Scholar] [CrossRef]
  15. Cheng, B.Y.; Leung, J.Y.T.; Li, K. Integrated scheduling of production and distribution to minimize total cost using an improved ant colony optimization method. Comput. Ind. Eng. 2015, 83, 217–225. [Google Scholar] [CrossRef]
  16. Zhang, S.; Wang, S. Flexible assembly job-shop scheduling with sequence-dependent setup times and part sharing in a dynamic environment: Constraint programming model, mixed-integer programming model, and dispatching rules. IEEE Trans. Eng. Manag. 2018, 65, 487–504. [Google Scholar] [CrossRef]
  17. Wang, D.Y.; Grunder, O.; El Moudni, A. Integrated scheduling of production and distribution operations: A review. Int. J. Ind. Syst. Eng. 2015, 19, 94–122. [Google Scholar] [CrossRef]
  18. Cheng, B.Y.; Leung, J.Y.T.; Li, K. Integrated scheduling on a batch machine to minimize production, inventory and distribution costs. Eur. J. Oper. Res. 2017, 258, 104–112. [Google Scholar] [CrossRef]
  19. Jia, Z.H.; Huo, S.Y.; Li, K.; Chen, H.P. Integrated scheduling on parallel batch processing machines with non-identical capacities. Eng. Optim. 2020, 52, 715–730. [Google Scholar] [CrossRef]
  20. He, Z.; Guo, Z.; Wang, J. Integrated scheduling of production and distribution operations in a global MTO supply chain. Enterp. Inf. Syst. 2019, 13, 490–514. [Google Scholar] [CrossRef]
  21. Low, C.; Li, R.K.; Chang, C.M. Integrated scheduling of production and delivery with time windows. Int. J. Prod. Res. 2013, 51, 897–909. [Google Scholar] [CrossRef]
  22. Wan, X.Q.; Yan, H.S. Integrated scheduling and self-reconfiguration for assembly job shop in knowledgeable manufacturing. Int. J. Prod. Res. 2015, 53, 1746–1760. [Google Scholar] [CrossRef]
  23. Yabo, L.; Yang, W.; Feng, Z. Optimization Algorithm for Balancing and Sequencing Mixed Assembly Line; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2014; pp. 422–431. [Google Scholar] [CrossRef]
  24. Du, H.; Liu, D.; Zhang, M.H. A hybrid algorithm based on particle swarm optimization and artificial immune for an assembly job shop scheduling problem. Math. Probl. Eng. 2016, 2016, 3938679. [Google Scholar] [CrossRef]
  25. Lei, Q.; Guo, W.; Song, Y. Integrated scheduling algorithm based on an operation relationship matrix table for tree-structured products. Int. J. Prod. Res. 2018, 56, 5437–5456. [Google Scholar] [CrossRef]
  26. Zheng, Y.; Xu, M.; Wang, Z.; Xiao, Y. A Genetic Algorithm for Integrated Scheduling of Container Handling Systems at Container Terminals from a Low-Carbon Operations Perspective. Sustainability 2023, 15, 6035. [Google Scholar] [CrossRef]
  27. Zeng, M.; Sadeghzadeh, K.; Xiong, T. A three-echelon based sustainable supply chain scheduling decision-making framework under the blockchain environment. Int. J. Prod. Res. 2023, 61, 4951–4971. [Google Scholar] [CrossRef]
  28. Qiu, F.; Geng, N.; Wang, H. An improved memetic algorithm for integrated production scheduling and vehicle routing decisions. Comput. Oper. Res. 2023, 152, 106127. [Google Scholar] [CrossRef]
  29. Berghman, L.; Kergosien, Y.; Billaut, J.C. A review on integrated scheduling and outbound vehicle routing problems. Eur. J. Oper. Res. 2023, 311, 1–23. [Google Scholar] [CrossRef]
  30. Huang, S.; Zhou, C.; Xiong, N.; Yang, S.H.; Qin, Y.; Zhang, Q. A general real-time control approach of intrusion response for industrial automation systems. IEEE Trans. Syst. Man Cybern. Syst. 2016, 46, 1021–1035. [Google Scholar] [CrossRef]
  31. Tan, W.; Yuan, X.; Wang, J.; Xu, H.; Wu, L. Multi-objective teaching–learning-based optimization algorithm for carbon-efficient integrated scheduling of distributed production and distribution considering shared transportation resource. J. Clean. Prod. 2023, 406, 137061. [Google Scholar] [CrossRef]
  32. Wang, J.; Yao, S.; Sheng, J.; Yang, H. Minimizing total carbon emissions in an integrated machine scheduling and vehicle routing problem. J. Clean. Prod. 2019, 229, 1004–1017. [Google Scholar] [CrossRef]
  33. Zhai, S.; Riess, A.; Reinhart, G. Formulation and solution for the predictive maintenance integrated job shop scheduling problem. In Proceedings of the IEEE International Conference on Prognostics and Health Management (ICPHM), San Francisco, CA, USA, 17–20 June 2019. [Google Scholar] [CrossRef]
  34. Ladj, A.; Tayeb, F.B.S.; Varnier, C. Tailored Genetic Algorithm for Scheduling Jobs and Predictive Maintenance in a Permutation Flowshop. In Proceedings of the IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), Torino, Italy, 4–7 September 2018; pp. 524–531. [Google Scholar] [CrossRef]
  35. Yadav, N.; Tanksale, A. An integrated routing and scheduling problem for home healthcare delivery with limited person-to-person contact. Eur. J. Oper. Res. 2022, 303, 1100–1125. [Google Scholar] [CrossRef]
  36. Di Martinelly, C.; Duenas, A.; Pham, D. Integration of operating room advance scheduling and allocation scheduling while considering the resource constraints: A multiobjective genetic algorithm approach. In Proceedings of the ILS—Information Systems, Logistics and Supply Chain, Proceedings, INSA Lyon, Villeurbanne, France, 8–11 July 2018; pp. 714–724. [Google Scholar]
  37. Xie, Z.; Yang, D.; Ma, M.; Yu, X. An improved artificial bee colony algorithm for the flexible integrated scheduling problem using networked devices collaboration. Int. J. Coop. Inf. Syst. 2020, 29, 2040003. [Google Scholar] [CrossRef]
  38. Gao, Y.; Xie, Z.; Yang, D.; Yu, X. Flexible integrated scheduling algorithm based on remaining work probability selection coding. Expert Syst. 2021, 38, e12683. [Google Scholar] [CrossRef]
  39. Gao, Y.; Xie, Z.; Jia, Q.; Yu, X. An Effective Memetic Algorithm for the Distributed Integrated Scheduling of Tree-Structured Products. Int. J. Coop. Inf. Syst. 2021, 30, 2150001. [Google Scholar] [CrossRef]
  40. Yuan, Y.; Xu, H. Flexible job shop scheduling using hybrid differential evolution algorithms. Comput. Ind. Eng. 2013, 65, 246–260. [Google Scholar] [CrossRef]
  41. Kailasa, S.; Wang, T.; Barba, L.A.; Betcke, T. PyExaFMM: An exercise in designing high-performance software with Python and Numba. Comput. Sci. Eng. 2023, 24, 77–84. [Google Scholar] [CrossRef]
  42. Ye, F.; Zhao, J.; Shirako, J.; Sarkar, V. Concrete Type Inference for Code Optimization using Machine Learning with SMT Solving. Proc. Program. Lang. 2023, 7, 773–800. [Google Scholar] [CrossRef]
  43. Bartlett, J.; Uchytil, C.; Storti, D. High-Productivity Parallelism With Python Plus Packages (But Without a Cluster). Comput. Sci. Eng. 2021, 23, 38–46. [Google Scholar] [CrossRef]
  44. Storn, R.; Price, K. Differential Evolution—A Simple and Efficient Heuristic for global Optimization over Continuous Spaces. J. Glob. Optim. 1997, 11, 341–359. [Google Scholar] [CrossRef]
  45. Opara, K.R.; Arabas, J. Differential Evolution: A survey of theoretical analyses. Swarm Evol. Comput. 2019, 44, 546–558. [Google Scholar] [CrossRef]
  46. Lam, S.K.; Pitrou, A.; Seibert, S. Numba: A LLVM-based Python JIT compiler. In Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC, New York, NY, USA, 15 November 2015; LLVM ’15. [Google Scholar] [CrossRef]
  47. Montgomery, D.C. Design and Analysis of Experiments, 10th ed.; Wiley: Hoboken, NJ, USA, 2020. [Google Scholar]
Figure 1. A sample for complex product.
Figure 1. A sample for complex product.
Axioms 15 00566 g001
Figure 2. The diagram of assembly operations, factory assignment (including machine assignment in each factory). All the distances are measured in unit time.
Figure 2. The diagram of assembly operations, factory assignment (including machine assignment in each factory). All the distances are measured in unit time.
Axioms 15 00566 g002
Figure 3. Hierarchical assembly operation in the form of a tree-like structure.
Figure 3. Hierarchical assembly operation in the form of a tree-like structure.
Axioms 15 00566 g003
Figure 4. A tri-chain of one possible solution to FIAPDS. To get the first row (operation chain), every immediate predecessor of an operation O i must be put before (on the left side) the position of that operation. With this rule, we always end up having the root operation O 0 at the last position (right) of a tri-chain. For the second row (machine chain), we can assign any available machine for each operation. For the third row (factory chain), we can assign any factory for each operation.
Figure 4. A tri-chain of one possible solution to FIAPDS. To get the first row (operation chain), every immediate predecessor of an operation O i must be put before (on the left side) the position of that operation. With this rule, we always end up having the root operation O 0 at the last position (right) of a tri-chain. For the second row (machine chain), we can assign any available machine for each operation. For the third row (factory chain), we can assign any factory for each operation.
Axioms 15 00566 g004
Figure 5. Representing the problem in real-valued vector X i , g and connecting into three-vector code ( O i , g , M i , g , and F i , g ). In the bottom part, we mentioned a tri-chain variable that represents the assignment of each operation to machine and factory. In that image, we have 18 operations, four machines, and five factories. The transformation between real-valued vectors X i , g and three-vector code will be explained in a later section.
Figure 5. Representing the problem in real-valued vector X i , g and connecting into three-vector code ( O i , g , M i , g , and F i , g ). In the bottom part, we mentioned a tri-chain variable that represents the assignment of each operation to machine and factory. In that image, we have 18 operations, four machines, and five factories. The transformation between real-valued vectors X i , g and three-vector code will be explained in a later section.
Axioms 15 00566 g005
Figure 6. Main stage DE-FIAPDS.
Figure 6. Main stage DE-FIAPDS.
Axioms 15 00566 g006
Figure 7. Gantt chart of five factories after decoding of three-vector code. The vertical dashed lines are visual aids to show D f i , f j (the distance between factories, in unit time). The blue rectangles in some operations show the sequence of critical operations. The red dashed line means the makespan.
Figure 7. Gantt chart of five factories after decoding of three-vector code. The vertical dashed lines are visual aids to show D f i , f j (the distance between factories, in unit time). The blue rectangles in some operations show the sequence of critical operations. The red dashed line means the makespan.
Axioms 15 00566 g007
Figure 8. All average makespan in the Taguchi method for all four parameters N sample , G max , C r , and F scale . We set this parameter with the factor level of 3-4-4-1 for 100 instances.
Figure 8. All average makespan in the Taguchi method for all four parameters N sample , G max , C r , and F scale . We set this parameter with the factor level of 3-4-4-1 for 100 instances.
Axioms 15 00566 g008
Figure 9. An evolution of makespan for a single run of 18 operations with up to four available machines and five machines. (Top left): the evolution of makespan for all individuals is drawn by the blue circle. The red line is the average makespan over these individuals. (Middle left): Comparison of average makespan for all three categories (at starting generation, after mutation and crossover, and after local search and selection). (Bottom left): The difference in average makespan between (mutation + crossover) and at starting generation. (Right): A Gantt chart for the best solution of FIAPDS with 18 operations.
Figure 9. An evolution of makespan for a single run of 18 operations with up to four available machines and five machines. (Top left): the evolution of makespan for all individuals is drawn by the blue circle. The red line is the average makespan over these individuals. (Middle left): Comparison of average makespan for all three categories (at starting generation, after mutation and crossover, and after local search and selection). (Bottom left): The difference in average makespan between (mutation + crossover) and at starting generation. (Right): A Gantt chart for the best solution of FIAPDS with 18 operations.
Axioms 15 00566 g009
Figure 10. Average and minimum makespan comparison between DE-FIAPDS and GA-FIAPDS. Dashed line with circle is for minimum makespan, and solid line with disk is for average makespan.
Figure 10. Average and minimum makespan comparison between DE-FIAPDS and GA-FIAPDS. Dashed line with circle is for minimum makespan, and solid line with disk is for average makespan.
Axioms 15 00566 g010
Figure 11. The makespan and computational time of DE compared with GA when we sort the 100 instances based on critical path timespan. In the middle plot, we add a dashed vertical line to indicate the instances that have the same minimum makespan over the population.
Figure 11. The makespan and computational time of DE compared with GA when we sort the 100 instances based on critical path timespan. In the middle plot, we add a dashed vertical line to indicate the instances that have the same minimum makespan over the population.
Axioms 15 00566 g011
Figure 12. The makespan and computational time of DE compared with GA when we sort the 100 instances based on the search space ( n op × n mac × n fac ). In the middle plot, we add a dashed vertical line to indicate the instances that have the same minimum makespan over the population.
Figure 12. The makespan and computational time of DE compared with GA when we sort the 100 instances based on the search space ( n op × n mac × n fac ). In the middle plot, we add a dashed vertical line to indicate the instances that have the same minimum makespan over the population.
Axioms 15 00566 g012
Figure 13. The difference in minimum makespan between DE and GA. We clearly observe that DE can achieve the same results on its minimum makespan over population compared to GA.
Figure 13. The difference in minimum makespan between DE and GA. We clearly observe that DE can achieve the same results on its minimum makespan over population compared to GA.
Axioms 15 00566 g013
Figure 14. The average computational time of DE compared with GA when we sort the 100 instances based on computational time speedup.
Figure 14. The average computational time of DE compared with GA when we sort the 100 instances based on computational time speedup.
Axioms 15 00566 g014
Figure 15. The minimum computational time of DE compared with GA when we sort the 100 instances based on computational time speedup.
Figure 15. The minimum computational time of DE compared with GA when we sort the 100 instances based on computational time speedup.
Axioms 15 00566 g015
Table 1. Representing the number of immediate predecessors for each operation O j in the tree-like structure. The root operation O 0 has no immediate predecessor, so we set it to negative one.
Table 1. Representing the number of immediate predecessors for each operation O j in the tree-like structure. The root operation O 0 has no immediate predecessor, so we set it to negative one.
O j 01234567891011121314151617
Tree op 1 0001122234467791013
Table 2. (a) An example of machine assignment for 18 assembly operations. The processing time number for operation p i m for O i and machine m. There are some machines that have no processing time, which represents an unavailable machine for the given operation. (b) An example of transfer time between two factories. These travel times are symmetric (Factory 1 to Factory 2 is the same as Factory 2 to Factory 1).
Table 2. (a) An example of machine assignment for 18 assembly operations. The processing time number for operation p i m for O i and machine m. There are some machines that have no processing time, which represents an unavailable machine for the given operation. (b) An example of transfer time between two factories. These travel times are symmetric (Factory 1 to Factory 2 is the same as Factory 2 to Factory 1).
(a)
Operation m = 0 m = 1 m = 2 m = 3
O 0 97-5
O 1 4-75
O 2 74-6
O 3 7-34
O 4 75-7
O 5 9-67
O 6 6-9-
O 7 879-
O 8 --48
O 9 32-4
O 10 4-3-
O 11 976-
O 12 3-2-
O 13 6--5
O 14 -7-6
O 15 8--7
O 16 4-2-
O 17 -4-6
(b)
Start FactoryEnd FactoryTime
101
202
211
301
313
322
402
411
421
432
Table 3. Our range of primary parameters N sample , G max , C r , and F scale in the Taguchi method. Here we use I 82 _ 5 _ 5 with n op = 82 operations, maximum of 5 available machines and 5 available factories.
Table 3. Our range of primary parameters N sample , G max , C r , and F scale in the Taguchi method. Here we use I 82 _ 5 _ 5 with n op = 82 operations, maximum of 5 available machines and 5 available factories.
ParametersFactor Level
1234
N sample 2 n op 3 n op 4 n op 5 n op
G max 30405060
C r 0.30.50.70.9
F scale 0.20.81.51.8
Table 4. Taguchi orthogonal array and experimental results.
Table 4. Taguchi orthogonal array and experimental results.
Exp.Factor LevelsAverage
N sample G max C r F scale Makespan
11111169.0
21222241.1
31333251.5
41444251.1
52123260.2
62214264.4
72341180.2
82432234.2
93134257.9
103243245.2
113312236.7
123421168.8
134142236.1
144231174.1
154324248.9
164413248.9
K 1 913.7923.4919.2692.3
K 2 939.0925.2919.4948.5
K 3 908.5917.3917.71005.8
K 4 908.0903.0912.61022.3
k 1 228.4230.9229.8173.1
k 2 234.8231.3229.9237.1
k 3 227.1229.3229.4251.5
k 4 227.0225.8228.2255.6
Range7.85.61.782.5
Rank4231
Note: Ki = sum of makespan values at level i; ki = Ki/4 = average response; range = max(ki) − min(ki); lower rank indicates greater factor influence.
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Ardyanti, A.A.A.P.; Xie, Z.; Hariyanto, H.L. Differential Evolution Flexible Integrated Assembly Production Distribution Scheduling (DE-FIAPDS). Axioms 2026, 15, 566. https://doi.org/10.3390/axioms15080566

AMA Style

Ardyanti AAAP, Xie Z, Hariyanto HL. Differential Evolution Flexible Integrated Assembly Production Distribution Scheduling (DE-FIAPDS). Axioms. 2026; 15(8):566. https://doi.org/10.3390/axioms15080566

Chicago/Turabian Style

Ardyanti, Anak Agung Ayu Putri, Zhiqiang Xie, and Henokh Lugo Hariyanto. 2026. "Differential Evolution Flexible Integrated Assembly Production Distribution Scheduling (DE-FIAPDS)" Axioms 15, no. 8: 566. https://doi.org/10.3390/axioms15080566

APA Style

Ardyanti, A. A. A. P., Xie, Z., & Hariyanto, H. L. (2026). Differential Evolution Flexible Integrated Assembly Production Distribution Scheduling (DE-FIAPDS). Axioms, 15(8), 566. https://doi.org/10.3390/axioms15080566

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop