## 5 Proposed MOEA/D-AMSF Algorithm
### Joint Routing and Core Coding Scheme  
Many existing studies, such as [10; 12; 18], encode routing and core into two independent populations, which are used in a co-evolutionary algorithm, resulting in a time-consuming solution. We assume that there are core switching devices at all nodes of a network, i.e., each connection request is allowed to select different cores on all links of the candidate path. Therefore, the core number index to be selected for each request depends on the path it has chosen, making it impossible for the core and routing to be encoded separately. Accordingly, the routing and core are jointly encoded. Each gene on the chromosome is composed of two layers: one layer represents the routing scheme, and the other layer denotes the core selection scheme. Thus, a single chromosome accurately expresses a solution to this complex problem. The solution space encoded in this way is discrete and is beneficial to the global convergence of solutions. The path lengths selected for different requests may be different, and each individual in the routing population may have a different path for the same source-destination request. Therefore, the length of the core gene components (CGCs) is variable. To reduce the design difficulty of evolution operators, we adopt a fixed-length integer coding scheme based on the path length by taking advantage of the characteristics of routing and core in MCF-EONs. For the details of the coding scheme, Figure 7 shows the relevant gene, chromosome and population, respectively. Note that Gene\({}_{1}\) represents the routing and core scheme of the connection request \(r_{1}\) from node \(I\) to node \(6\), and those of other requests are similar. As shown in Figure 7b, all genes form a chromosome to denote a feasible routing and core solution to the RSCA problem. Each of the \(|R|\) lines represents an allocation scheme for one request. Each column in Figure 7c represents one chromosome, and all chromosomes constitute a population with a total of \(N\) (population size) columns. Here, we take Gene\({}_{1}\) as an example to explain the composition and meaning of each gene. As can be seen from Figure 7a, the gene code for each request consists of two layers or fields used for the routing scheme and core scheme, respectively. We see that a gene of routing has only one component while a core gene consists of two subfields with several components, valid core gene components (VCGCs) and unused core gene components (UCGCs). Since the KSPs between any two nodes are calculated in advance, the value  
Figure 7: Coding schemes of gene, chromosome, and population. (**a**) gene coding scheme; (**b**) chromosome coding scheme; (**c**) population coding scheme. range of each routing gene component is 1 through \(K\). For the current request, such a value denotes the selected path index in the set in which all of its KSPs are prearranged in ascending order. For example, index 2 indicates that the request \(r_{1}\) selects the second shortest path: 1\(\rightarrow\)3\(\rightarrow\)5\(\rightarrow\)6. Each gene component in the second layer represents the core selection scheme on the path just selected. The number of CGCs is the maximum hops of all candidate paths for all connection requests in a network. The link \(l_{j}\) in the figure denotes the \(j\)-th link of the candidate path, instead of the actual link index of the physical network. Based on the selected path, the number of VCGCs is determined. For example, if the number of links in the selected second shortest path for \(r_{1}\) is three, then the VCGCs length equals three. As shown in the figure, the first three numbers in CGCs are valid, ranging from 1 to 1\(\subset\)1. The value of each CGC indicates the core index selected by the current connection request, where the core index is numbered in advance. However, we set the value of each UCGC to 0 if the connection request does not pass through the relevant link.