## 2 Methods
### Optimization Algorithm Design  
The model mentioned above is a type of multi-objective programming model. Many scholars currently use the linear weighting sum method to convert multi-objective problemsinto single-objective ones for solving. However, this method can only produce one solution at a time, and cannot provide diversified scheme choices according to decision-makers' preferences. This method's weight setting is subject to subjective human influence, which is not highly scientific. On the other hand, the success of the NSGA-II algorithm has shown the benefits of non-dominated sorting in multi-objective optimization [19]. As a result, this paper uses this method to develop a multi-objective, improved brainstorming optimization algorithm based on Pareto dominance (MIBSO) to solve the MVTARPSDPTW problem. Algorithm 1 displays the pseudo-code for MIBSO, and Figure 2 illustrates the MIBSO algorithm flow. ``` Inputs: x, y, customer, dist, cap, v, demands, p_demands, demands_V, p_demands_V, V_max, a, b, s, v_num, E, L, N, Max_distance, \(\alpha\), \(\beta\), cluster_num, p_replace, p_one, p_two, p_one_center, p_two_center, NIND, MAXGEN; Outputs: best_Obj, best_Population;
1 Initialization
2 gen=1
3 whilegen\(<\)=MAXGEN
4 Obj\(\leftarrow\)normalize_Obj(...)
5\(\left\{ \begin{array}{l}\text{for i =1:cluster\_num}\\ \text{do calculate the number of individuals in the current cluster}\\ \text{for j-1:cluster\_row(i)}\\ \text{do calculate the obj of the individual j in the current cluster}\end{array} \right\}\) K-means clustering
6 end for
7 sort individuals by fitness value
8 end for
9 order_cluster\(\leftarrow\)replace_center(...)
10 population\(\leftarrow\)update_population(...)
11\(\left\{\begin{array}{l}\text{forlying}\leftarrow\text{select(...)}\\ \text{offspring}\leftarrow\text{LocalSearch(...)



maximum of K drones are allowed to deliver, then MIBSO solves the MVTARPSDPTW problem by representing the individual as a random arrangement of 1-(N + K\(-\)1). #### 2.2.2 Elite Retention Strategy

Merge the parent population and child population to generate population_1, and generate a new parent population, population_2, from population_1 according to the following rules: (1) According to the order of Pareto rank from low to high, the whole layer population was put into the parent population population_2 until the individuals in a particular layer could not all be put into the parent population population_2. (2) The individuals in this layer were successfully placed into the parent population population_2 according to the crowding degree from large to small until the parent population population_2 was filled. #### 2.2.3 Local Search Operation

Based on standard BSO, the \"destroy\" and \"repair\" ideas in the LNS algorithm are introduced. The local search operation is carried out on the individuals whose objective function value is in the top 50% of the population obtained after the update operation to obtain more optimal individuals and update the population in a better direction. The destruction operator removes several related demand points according to Formula (33). \[R(i,j)=\frac{1}{c^{\prime}_{ij}+V_{ij}} \tag{33}\]

\[c^{\prime}_{ij}=\frac{c_{ij}}{\max c_{ij}} \tag{34}\]

\[\left[rand^{D}\times|S|\right],rand\in(0,1) \tag{35}\]

Figure 3: The coding adopted by MIBSO to solve the MVTARPSDPTW problem. Figure 2: Algorithm flowchart of MIBSO. where \(c^{\prime}_{ij}\) is the standardized value of \(c_{ij}\), \(c_{ij}\) is the Euclidean distance between \(i\) and \(j\), and \(V_{ij}\) is whether \(i\) and \(j\) are on the same path, and if they are on the same path, it is 0, otherwise it is 1. \(|S|\) is the number of demand points in set \(S\). As can be seen from the above formula, the larger \(R(i,j)\), the more significant the correlation between demand points \(i\) and \(j\).