## 4 The Proposed AC-NSGA-III Algorithm
### Operator Design
#### 4.2.1 IRC Coding
The positions filtered by this restriction rule are the actual insertable positions. Figure 7 shows an example of IRC, which includes three orders involving restaurant nodes 1, 2, and 3 (denoted as M1, M2, and M3) and customer nodes 1, 2, and 3 (denoted as C1, C2, and C3). \(x=(2,1,3)\); \(y=\left[ \begin{array}{cc}5,7,5\\ 3,5,8\end{array} \right]\). In the encoding, the process starts with

restaurant node 2 (M2) and customer node 2 (C2) associated with the first order, forming the path M2-C2. Then, according to the value 5 in \(y^{1}\), the total number of available insertion positions is 2, 5% 2 = 1, so restaurant node M1 is inserted into the first available position. The visit sequence after insertion is M2-M1-C2. Next, according to the value 5 in \(y^{2}\), customer node C1 associated with order 1 is inserted. Based on constraint 8, restaurant node 1 must be visited before customer node 1, so the total number of available insertion positions is 2. 5 mod 2 = 1, so customer node C1 is inserted into the first available position. The visit sequence after insertion is M2-M1-C1-C2. Finally, according to the value 5 in \(y^{1}\), restaurant node M3 associated with order 3 is inserted. Since M3 and M2 correspond to the same actual pick-up location, they are merged for pick-up. Similarly, C3 is inserted following the same principle, and thus the complete delivery and pick-up route for all orders is formed. #### 4.2.2 Initial Population

The population size is \(N\); the initial population \(P_{0}\) is generated randomly. \(x\) is a randomly generated sequence. Every random positive integer in \(y^{1}\), \(y^{2}\) is not greater than \(|At|-1\). #### 4.2.3 Non-Dominant Hierarchical Ranking of Population

Non-dominated sorting effectively distinguishes individuals' relative advantages in multi-objective optimization, aiding in the selection and retention of high-quality individuals, thereby maintaining population diversity and evolutionary effectiveness. Multi-objective optimization algorithms generate selection pressure through population sorting, encouraging the population to continuously approach the Pareto front [32; 33]. #### 4.2.4 Reference Point Evaluation System

In order to evaluate the population diversity, the reference point selection method of NSGA-III is adopted [34]. #### 4.2.5 Binary Tournament Selection

Two individuals from the population are randomly selected to compete. If the non-dominant ranks of them are different, the low-ranking individual is selected to be put into the mating pool. Otherwise, the individual whose associated reference points have a smaller number of niches is select to be put into the mating pool. The selection is repeated \(N\) times. #### 4.2.6 OBX and SBX Mixed Crossover

For \(x\), order-based crossover (OBX) is used, ensuring that no elements are missing after crossover, with a crossover probability of \(P_{c}\). It is shown in Figure 8. In order to better deal with the sparsity of individual space in the process of dealing with multi-objective

Figure 7: Decoding structure and insertion restriction rules. #### 4.2.7 Mutation Operator

Exchange mutation is adopted for \(x\). When an exchange mutation is applied to chromosomes based on a binary or integer, two genes are randomly selected. Then, their values are exchanged. When the random number is less than the given mutation rate \(P_{m}\), chromosome mutation occurs [36]. Non-uniform variation was adopted for \(y^{1}\), \(y^{2}\). The original gene value was randomly distributed. The result was taken as the new gene value. After every locus is calculated with the same probability, it is equivalent to the entire solution vector making a slight change in the solution space. In the operation of a non-uniform mutation from \(X=x_{1}x_{2}x_{3}\ldots x_{k}\ldots x_{1}\) to \(Xt=x_{1}x_{2}x_{3}\ldots x_{t}\ldots x_{1}\), if the value range of mutation point \(x_{k}\) is \(\left[U_{\min}^{k},U_{\max}^{k}\right]\), the new gene value \(x_{k}\) will be determined by (28), where \(t\) is the current iteration number. \[x_{k}=\left\{