## 5 Proposed MOEA/D-AMSF Algorithm
### Adaptive Evolutionary Operators
#### 5.4.1 Adaptive Single-Point Crossover Operator  
In this paper, single-point crossover is adopted since it is necessary to ensure that the change of core index on different links cannot be significant in the early search stage. Otherwise, evolution does not have a basic guiding direction, and some better solutions will be missed. After the solutions have evolved to a certain extent, some more complex strategies will be specially designed to make genes on the chromosome mutate with a higher probability at a time in the evolution iteration, which is helpful for enabling the algorithm to jump out of the local search and to generate global optimal solutions.  
Figure 8 shows the principle of single-point crossover based on the proposed coding scheme. For each subproblem \(i\), the following operations are performed: the random number \(P_{r}\) in (0, 1) is first generated and then we compare it with the crossover probability \(P_{c}\); If \(P_{r}\) is less than \(P_{c}\), two distinct individuals \(y_{1}\) and \(y_{2}\) are selected from the neighborhood B(\(i\)) of \(i\) as the crossover parents. Then, a gene component site is randomly selected on \(y_{1}\) and \(y_{2}\) as the crossover point. Notice that each gene \(Gene_{i}\) in Figure 7a includes two fields of routing and core, and both fields of a gene need to be regarded as a whole. As shown in Figure 8, the genes located to the right site in \(y_{1}\) and \(y_{2}\) are interchanged to produce two offspring \(y_{1}^{c}\) and \(y_{2}^{c}\). If \(P_{r}\) is not less than \(P_{c}\), no crossover operation will be performed.  
Figure 8: Single-point crossover under the proposed coding scheme.  
To accelerate algorithm convergence and improve population diversity, \(P_{c}\), shown in Equation (17) is adaptively adjusted according to the current generation counter \(i\).  
\[P_{c}=P_{c}^{min}+(P_{c}^{max}-P_{c}^{min})\times i/G_{max} \tag{17}\]  
We see that \(P_{c}\) depends on the preset minimum crossover probability \(P_{c}^{min}\), maximum crossover probability \(P_{c}^{max}\), and maximum evolutionary generations \(G_{max}\). In the early search stage, \(P_{c}\) stays small, and the individuals change to a small extent as evolution iterates, preserving the better individuals. While in the later search stage, the solution may fall into the local optimum, i.e., it has not changed much within several generations. Therefore, a larger \(P_{c}\) is needed to make the algorithm jump out of the local search, so as to generate new solutions and accelerate the algorithm convergence. The adaptive setting of \(P_{c}\) will help the algorithm achieve a better balance between global exploitation and local exploration.  
Algorithm 2 shows the specific flow of the proposed adaptive single-point crossover. For each subproblem, the crossover probability is first calculated in terms of Equation (17), and the crossover operation is then performed according to the principle described above. The symbol \(y_{k}(i,j)\) (\(k=1\),\(2\)) denotes the \(j\)-th gene on the chromosome for subproblem \(i\).  
```
Input:\(B(t)\): the set of neighbors for subproblem \(i\), \(P_{c}^{\leftarrow}\): minimum crossover probability, \(P_{c}^{\leftarrow}\): maximum crossover probability Output: offspring \(y_{c}^{j}\) and \(y_{c}^{j}\) obtained by the crossover operator
01  Compute \(P_{c}\) based on the Equation (17);
02 if\(rand(0,1)\leq P_{c}\)
03  Two different individuals \(y_{1}\) and \(y_{2}\) are selected randomly from \(B(i)\);
04  An integer _site_ is generated randomly in [1, \(|R|\)];
05  for\(j=1\) to _site_do \(y_{c}^{j}\) (\(i,j\)) = \(y_{1}\) (\(i,j\));
07 \(y_{c}^{j}\) (\(i,j\)) = \(y_{2}\) (\(i,j\));
08 endfor
09 for\(j=site+1\) to \(|R|\)do \(y_{c}^{j}\) (\(i,j\)) = \(y_{2}\) (\(i,j\));
11 \(y_{c}^{j}\) (\(i,j\)) = \(y_{1}\) (\(i,j\));
12 endfor
13 endif
```  
**Algorithm 2** adaptive single-point crossover operator