## 3 Solution Approach
### Re-Optimization Stage and VNS-TA Algorithm
#### 3.2.2 Shaking Process  
The improved neighborhood structures are used sequentially to perform neighborhood transformation operation on the better initial scheme of the input. This study designs five improved neighborhood structures. The design principle is to extensively explore the neighborhood solution space within a limited number of neighborhood structures and a limited running time. Therefore, on the one hand, transformation randomness is added to the neighborhood structures. On the other hand, the shaking ideas of several traditional neighborhood search operators are learned to increase the transformation types. In addition, to further improve the global search ability of the algorithm, the infeasible neighborhood solution is retained after the shaking process [42]. At the same time, the node sequence of the infeasible neighborhood solution is adjusted and recovered according to the capacity limit constraints, etc. In other words, the infeasible neighborhood solution is transformed into a feasible neighborhood solution on the basis of preserving the original path sequence. Due to space limitations, this process will not be elaborated here, and additional details were provided in a previous study [42]. The specific design ideas and steps for the five improved neighborhood structures are as follows. 1. Integrated-\(k\)-opt neighborhood. The integrated-\(k\)-opt neighborhood is designed based on the idea of the \(k\)-opt operator. The \(k\)-opt operator process is as follows: arbitrarily remove \(k\) different arcs on the current path, add \(k\) new arcs to reconnect to form new paths and, finally, generate \((k-1)!2^{k-1}\) new solutions. The steps for the integrated-\(k\)-opt neighborhood are as follows. * Step 1 Randomly generate an integer from 2 to 6 and assign it to \(k\); that is, randomly select a transformation. * Step 2 Determine the value of \(k\), randomly select \(k\) different client nodes on \(q\) to form sequence \(i\) and sort the client nodes in ascending order to obtain a new node sequence \(t\), where \(q\) is the original path sequence. * Step 3 Assign the original path sequence \(q\) to \(newq\). * Step 4 Flip all nodes between \(t(1)\) and \(t(2)\) on \(q\) and assign them to all nodes between \(t(1)\) and \(t(2)\) on \(newq\). * Step 5 When \(k>2\), \(j\) loops from 2 to \(k-1\) and executes the following statements. * Step 5.1 Flip all nodes between \(t(j)+1\) and \(t(j+1)\) on \(newq\) and assign them to all nodes between \(t(j)+1\) and \(t(j+1)\) on \(newq\). * Step 6 Output \(newq\). 2. Integrated-cross-exchange neighborhood and integrated-icross-exchange neighborhood. The integrated-cross-exchange neighborhood and integrated-icross-exchange neighborhood are designed based on the ideas of swap, cross-exchange, icross-exchange and three-point operators. The swap operator process is as follows: two different nodes (or node fragments) on the path are randomly selected for exchange. The cross-exchange operator process is as follows: two node fragments are placed in one another's position without changing direction. The icross-exchange operator process is as follows: the two node fragments to be exchanged are flipped and placed in one another's position. The three-point procedure is as follows: a single node and two adjacent nodes on the path are selected for exchange. Note that the steps of the integrated-icross-exchange neighborhood are nearly identical to those of the integrated-cross-exchange neighborhood, except for the action of changing the direction of the node fragment before the exchange. The steps for the integrated-cross-exchange neighborhood are as follows. * Step 1 Obtain the number \(n\) of all client nodes of path \(q\) and assign the original path sequence \(q\) to the new path sequence \(newq\). * Step 2 Randomly select two different client nodes in \(q\) and assign the nodes to \(i_{1}\) and \(i_{2}\) according to the position order, where \(i_{1}\) and \(i_{2}\) represent the anchor points of two nodes (or node fragments) to be exchanged.