## 3 The Proposed HCDBAVNS Algorithm
### Variable Neighborhood Search Strategy  
The local search is a supplement to intelligent algorithms, and it can enhance the search capability of the algorithm [28]. Therefore, this paper introduces 2-Opt search, 0-1 search and 1-1 search, and proposes a VNS strategy [29]. In order to avoid excessive disturbance to the search direction, it is stipulated in this strategy that when one part of the bat position changes in the process of local optimization, the other part of bat position remains unchanged. The specific steps of VNS are as follows:  
Step 1: 2-Opt search. 2-Opt search is carried out on the delivery path of a manufacturer's vehicle, until the vehicle's delivery path cannot be further improved.  
Step 2: 0-1 search. For the first-part bat position, a material point of one supplier is inserted into that of another supplier to form a new bat position. If the new bat position is better, then the new bat position is accepted, and 0-1 search for this part of bat position is repeated until no longer updated after \(L\) times. For the second-part bat position, a warehouse point of one manufacturer's vehicle is inserted into that of another manufacturer's vehicle, and 2-Opt search is performed on the two vehicles, respectively, to form a new bat position. If the new bat position is better, then the new bat position is accepted, and 0-1 search for this part of bat position is repeated until no longer updated after \(L\) times.  
Step 3: 1-1 search. It is similar to the 0-1 search. The difference lies in that 0-1 search is the insertion of points, while 1-1 search is the exchange of two points.  
The VNS in this paper just exchanges the order of the components of bat position according to certain rules. The obtained bat position still conforms to the encoding definition of the bat position in Section 3.1, and a complete VRPCSC path can be obtained by decoding. The pseudocode of HCDBAVNS is shown as Algorithm 1.  
Figure 7: Flowchart of the fitness comparison based on vectorial mechanism.  
```
0: Parameter value;
0: The global best position \(x_{*}\) of bat and its fitness \(G_{*}\)
1: Chaos Initialization Strategy is used to generate the bat population;
2: Calculate the fitness \(G_{i}\) of bat \(i\) by the fitness function, then the optimal global position of bats \(x_{*}\) and \(G_{*}\) are initialized, \(i=1,2,\cdots,Q\).
3: T = 0;
4:while\(T<N_{\text{max}}\) (the maximal number of iterations) do
5:for\(i=1\) to \(Q\)do
6: Update operations of bat position, velocity, and frequency are used to generate \(x_{i}^{new}\), \(v_{i}^{new}\) and \(f_{i}^{new}\), respectively. Then, \(v_{i}=v_{i}^{new}\), \(f_{i}=f_{i}^{new}\).
7:if\(R_{i}<rand()\)then
8: Bat variation operation is used to generate \(x_{i}^{new}\).
9:endif
10: Variable neighborhood search strategy is used to find the best bat position \(x_{i}^{pbest}\) in the neighborhood of \(x_{i}^{new}\).
11:if\(G_{i}^{pbest}<G_{i}\) and \(A_{i}>rand()\)then
12: (1) \(x_{i}=x_{i}^{pbest}\), and updating \(A_{i}\) through updated operations of loudness and pulse emission rate.
13:endif
14:if\(G_{i}^{pbest}<G_{*}\)then
15: (2) \(x_{*}=x_{i}^{pbest}\) and \(G_{*}=G_{i}^{pbest}\).
16:endif
17:endfor
18:\(N=N+1\).
19:endwhile
```  
**Algorithm 1** HCDBAVNS