## 4 The Proposed Approach: DIRECT-NSGA-II
### DIRECT-NSGA-II Algorithm  
Algorithm 3 presents the main procedure of the DIRECT-NSGA-II algorithm. The DIRECT-NSGA-II consists of four parts: parameter setting, initialization, optimization, and verification. Initially, the design space is set, and an initial population is built. Next, during the process of optimization, the population is sorted based on the non-domination of the objective function values. Each individual is assigned a rank equal to its non-domination level. Then, the binary tournament selection, recombination, mutation, and repair operators are used to create a new offspring population. Finally, the DIRECT-NSGA-II verifies whether each individual obtained from the process of optimization meets performance requirements. The individuals that do not satisfy the performance requirements are removed from the last generation. In the optimization phase, the DIRECT algorithm is employed with a relatively small maximum number of iterations for computing the objective function value. In contrast, during the verification phase, the DIRECT algorithm with a relatively large maximum number of iterations is adopted. This setting reduces the computation time while ensuring that each box-shaped solution space (individual) obtained in the last generation meets performance requirements, namely, that each box-shaped solution space obtained by the DIRECT-NSGA-II is a feasible box-shaped solution space. ```
Step 0 Parameter setting: Set the population size popsize, the maximum generation genmax, the crossover probability \(p_{c}\), and the mutation probability \(p_{m}\). Step 1 Initialization: 1.1 Set the lower and upper bounds of the design space, \(\mathbf{x}^{l}=(x^{l}_{1},\ldots,x^{l}_{m})\) and \(\mathbf{x}^{u}=(x^{u}_{1},\ldots,x^{u}_{m})\), and the threshold level \(f^{l}_{i}\), \(i=1,\ldots,p\). 1.2 Set the generation counter \(t=0\); randomly generate an initial population \(\mathcal{P}_{0}\) with a population size of popsize. 1.3 Calculate the objective function values of each individual in \(\mathcal{P}_{0}\) by the DIRECT algorithm. More specifically, for the \(j\)th individual \((x^{\text{low}}_{j},x^{\text{up}}_{j})\) in \(\mathcal{P}_{0}\), calculate the value of \(f^{*}_{i}(x^{\text{low}}_{j},x^{\text{up}}_{j})\) by Algorithm 2 with the maximum iteration number \(K_{\text{max}}=\lfloor 50\ln 2m\rfloor\) and denote it by \(f_{\min,i}(x^{\text{low}}_{j},x^{\text{up}}_{j})\), \(i=1,\ldots,p\), \(j=1,\ldots,\text{popsize}\). 1.4 Identify the non-dominated fronts \(\mathcal{F}_{1},\mathcal{F}_{2},\ldots,\mathcal{F}_{k}\) in \(\mathcal{P}_{0}\). Step 2 Optimization: 2.1 Mating selection: 2.1 Conduct binary tournament selection with replacement on \(\mathcal{P}_{t}\) to select parents for genetic operator processing. 2.2 Variation: 2.2 Apply crossover and mutation operators to the paired parents with probabilities \(p_{c}\) and \(p_{m}\), respectively. Then, use the repair operator to generate the offspring population \(\mathcal{Q}_{t}\). 2.3 Evaluation: 2.3 Calculate the objective function values of each individual in \(\mathcal{Q}_{t}\) by the DIRECT algorithm. Note that for the \(j\)th individual \((x^{\text{low}}_{j},x^{\text{up}}_{j})\) in \(\mathcal{Q}_{t}\), the value of the objective function \(f^{*}_{i}(x^{\text{low}}_{j},x^{\text{up}}_{j})\) is evaluated by Algorithm 2 with the maximum iteration number \(K_{\text{max}}=\lfloor 50\ln 2m\rfloor\) and is denoted by \(f_{\min,i}(x^{\text{low}}_{j},x^{\text{up}}_{j})\), \(i=1,\ldots,p,j=1,\ldots,\lfloor\mathcal{Q}_{t}\rfloor\). 2.4 Dominance ranking: 2.4 Combine populations \(\mathcal{P}_{t}\) and \(\mathcal{Q}_{t}\) to form \(\mathcal{F}\). Identify the non-dominated fronts \(\mathcal{F}_{1},\mathcal{F}_{2},\ldots,\mathcal{F}_{k}\) within \(\mathcal{F}\).