## 2 Methodology
### Backpropagation Network (BPN) Predictor  
After the classification is complete, the K-dimensional center for each cluster and the corresponding expected job cycle time is obtained. This information represents the overall behavior and relationship of the dataset. It is important to determine the number of clusters required to capture the most information from the dataset. With too few clusters, it is hard to identify the main features of the dataset. Meanwhile, with too many clusters, the locations of the cluster centers are easily affected by some isolated and noisy job records. Therefore, we test multiple clusters to identify the best combination of experimental parameters and numbers of clusters in the next section. Figure 4: Mutating one individual. For the cluster centers, the relationship between the independent variables (or attributes) and the corresponding job cycle time has been shown to be nonlinear [23]. As illustrated in Section 2, BPNs are well-known tools for fitting nonlinear relationships. In this sense, a BPN is a good choice for fitting the relationship and predicting the job cycle time [57; 58]. [PERSON] [59] emphasized that the results predicted by BPNs are accurate with relatively few errors because a BPN adjusts its weights in the output layer to model the training elements. A BPN compares its output with the actual values and propagates the error back through the network. This process is repeated until the error falls within the range of acceptance, whereupon the neural network has been trained successfully. However, determining suitable training and architectural parameters remains difficult. These parameters are usually determined either by trial and error or by pairwise comparisons. The main structure of our BPN is shown in Figure 6.  
Figure 5: Flowchart of FCM-based GA. Since there is no standard method to construct the BPNs for certain problems [20], we have tested several structures of BPNs on a trial-and-error basis. BPN has a stronger nonlinear mapping ability and flexible network structure. Additionally, the hidden layer may be one or more depending upon the complexity of the problem. More hidden layers might result in overfitting. In this sense, this study uses BPN with one hidden layer rather than ANN for fitting nonlinear relationships between the attribute values and job cycle time. Besides, one hidden layer is used for faster convergence without losing much quality. The BPN usually consists of at least three layers. Each layer contains many neurons, and the neurons in adjacent layers are interconnected by a set of weights. Here, the detailed configuration and training information of BPN are described as follows:  
(1) _Input layer_ There are \(G\) cluster centers, each with K attributes. Therefore, K neurons are set in the input layer. The \(G\) cluster centers with K attribute values and the expected job cycle time are normalized to fall within the interval \([0,\,1]\), indexed by \(\tau_{cb}\), according to  
\[\tau_{cb}=\frac{z_{cb}-\min(\
u_{RB})}{\max(\
u_{RB})-\min(\
u_{RB})}. \tag{12}\]  
(2) _Single hidden layer_ The hidden layer may be one or more depends upon the complexity of the problem. In this study, one hidden layer is used for faster convergence and avoiding overfitting without losing much quality. (3) _Output layer_ The predicted job cycle time is obtained in normalized form. (4) _Training method_ Gradient descent has been used as a training method in this study since it is the most commonly used. (5) _Activation/transformation function_ We use the following nonlinear sigmoid function [60] as the activation function:  
\[f(x)=\frac{1}{1+e^{-x}}, \tag{13}\]  
where \(x\) is a random variable. (6) _Learning rate_ (\(\pi\)): 0.01-1.0. (7) _Convergence criterion_ Many measures can be used to determine when to cease BPN training.