## 3 The Proposed HCDBAVNS Algorithm
### Encoding and Decoding Schemes
#### 3.2.2 Decoding Scheme  
The first-part bat position \(x_{i}^{1}\) is used to determine the supplier of a certain material of the products needed by the warehouse.  
(1) \(x_{ij}^{1}=1,2,\cdots,P\times L\) (\(1\leq j\leq W\)) represents the serial number of a certain material for the warehouse, so as to ensure that a certain material of the products needed by each warehouse is provided by only one supplier;  
(2) \(x_{ij}^{1}>P\) (\(1\leq j\leq W\)) splits \(x_{i}^{1}\) into \(S\) segments. From left to right, the segment \(s\) represents the set of materials provided by supplier \(s\) corresponding to the products needed by the warehouse, and \(s=1,2,\cdots,S\).  
The second-part bat position \(x_{i}^{2}\) is used to determine the manufacturer, making the products needed by the warehouse and the manufacturer's vehicle delivering the products.  
(1) \(x_{ij}^{2}\leq P\) (\(1\leq j\leq W^{\prime}\)) represents the serial number of the warehouse, so as to ensure that the products needed by each warehouse are made by only one manufacturer and delivered by the manufacturer's vehicle;  
(2) \(x_{ij}^{2}>P\) (\(1\leq j\leq W^{\prime}\)) splits \(x_{i}^{2}\) into \(\sum\limits_{m=1}^{M}n_{m}\) segments. From left to right, the segment \(\left[\sum\limits_{i=1}^{m-1}n_{i},\sum\limits_{i=1}^{m}n_{i}\right]\) represents the vehicle belonging to the manufacturer \(m\), and \(m=1,2,\cdots,M\). The \(n_{m}\) segments belonging to the manufacturer \(m\) represent the delivery path of vehicle \(k\) of the manufacturer \(m\) from left to right, and \(k=1,2,\cdots,n_{m}\).  
Since \(x_{i}^{1}\) determines the supplier of a certain material of the products needed by the warehouse, and \(x_{i}^{2}\) determines the manufacturer delivering the products needed by the warehouse, it is easy to determine the manufacturer processing a certain material provided by each supplier.  
First, the materials corresponding to the products needed by each warehouse are encoded, as shown in Figure 4. After confirming the serial number of each material corresponding to the products needed by the warehouse, the bat position can be encoded, as shown in Figure 5.  
In the first-part bat position, position components 12 and 11 act as supplier delimiters, dividing the first-part position into three segments, i.e., supplier 1 is responsible for providing materials 1, 3, 5, 10; supplier 2 is responsible for providing materials 2, 4, 6, 7; and supplier 3 is responsible for providing materials 8, 9.  
Figure 4: An instance for encoding the materials of products.  
In the second-part position, position components 6, 7, and 8 act as the manufacturer's vehicle delimiters, dividing the second-part bat position into four segments, i.e., vehicle 1 of manufacturer 1 is responsible for delivering the products of warehouses 1 and 2; vehicle 2 of manufacturer 1 is an empty vehicle (i.e., this vehicle is not used); vehicle 1 of manufacturer 2 is responsible for delivering the products of warehouses 3 and 4; and vehicle 2 of manufacturer 2 is responsible for delivering the products of warehouse 5.  
After determining the first-part and second-part bat positions, supplier 1 should deliver materials 1 and 3 to manufacturer 1, and materials 5 and 10 to manufacturer 2; supplier 2 should deliver materials 2 and 4 to manufacturer 1, and materials 6 and 7 to manufacturer 2; supplier 3 should deliver materials 8 and 9 to manufacturer 2. The delivery path after decoding is shown in Figure 6.