## 4 Solution Approach
### Pre-Screening Strategy  
As one kind of heuristic algorithm, NSGA-II generates the individuals more casually and evaluates all solutions of each generation. Although the heuristic principles jointly guarantee that each individual is translated into a feasible solution, the algorithm still has the chance to generate obviously worse solutions. As the majority of computing time of the whole algorithm is occupied with evaluating solutions through simulation, we decided to propose a pre-screening strategy to eliminate the mentioned solutions of each generation during the calculation. Thus, a pre-screening strategy here should have two abilities: 1 to identify the same solutions between two generations; 2 to roughly estimate the quality of each solution.  
Firstly, since the coding system is priority-based, it may be not suitable to check if two individuals are identical or not directly based on their codes. So, the solutions from two neighbor generations will be compared after the decoding stage. The solutions are compared in pairs with their four key elements: configuration information array (CI), station information array (SI), operation information matrix (OI), and buffer allocation array (BA). To further reduce the computing effort, the comparison between OI matrix can be replaced by the array of total machining time at all stations \(\text{MTM(s)}\), where \(\text{s}=1\ldots\text{S}\).  
The other proposal of the strategy was to roughly estimate the production rate or some other quality-related factors of the solutions before their evaluation through simulation, and then decide whether the solution is worth further evaluation through the simulation. Therefore, it was necessary to find a proper pre-screening objective function to evaluate the solutions. As discussed in the previous section, the deviation of allocation time provides the intrinsic quality of balancing that is independent of the manufacturing resources of the solution. Apparently, it is also suitable for pre-screening solutions with different levels of investment cost in each population. In addition, as SQ has already been obtained during the decoding stage, reusing it here would of course save the computational time of the algorithm. Therefore, the sum of the square of the time deviation (SQ) in Equation (9) was also used as the evaluation criteria to roughly estimate the quality of all individuals from each population.  
After the evaluation of all solutions, a threshold function was introduced to make the decision on whether each solution should be eliminated before its simulation. In fact, the mechanism here is quite similar to the common optimizing direction when solving TLBP separately. The only difference is that TLBP uses this method to find the optimal solution and make the final decision, while we introduced it as a threshold to eliminate obviously worse solutions, thus avoiding the further search for BAP solutions in the invalid solution space.  
Starting from the population in the initial generation (G\({}_{0}\)), the default threshold (TR\({}_{0}\)) is set as a maximum value that allows all or most solutions from the initial population (Pop\({}_{0}\)) to have the chances to be evaluated through simulation. Then, the maximum value of SQ among the population Pop\({}_{\text{n}}\) of the current generation \(\text{G}_{\text{n}}\) is used to define the threshold (TR\({}_{n+1}\)) for the population Pop\({}_{n+1}\) of the next generation (G\({}_{n+1}\)). Therefore, the threshold can be calculated in Equation (27), where n stands for the generation, N\({}_{\text{gen}}\) is the total number of generations, and N\({}_{\text{plan}}\) is the population size:  
\[\text{TR}_{\text{n}}=\left\{\begin{matrix}\text{TR}_{0}&\text{n}=0\\ \text{max}_{1\leq i\leq\text{N}_{\text{plan}}}(\text{SQ}_{\text{n}-1}(\text{i }))&1\leq\text{n}\leq\text{N}_{\text{gen}}\end{matrix}\right. \tag{27}\]