## 5 MADPSO Method Design
### General Procedure of MADPSO  
The main process of MADPSO based on INSGA-III is shown as the pseudocode of Algorithm 1, which includes the following steps:  
* Step 1: Initialize population. Based on the input system parameters (system component coordinates, capacity of the picking station, container coordinates, containers' dependent orders set, etc.), as well as the corresponding problem parameters (pallet-picking tasks set, the used picking station numbers, available AGV quantities, etc.), \(Size_{p}\) individuals are generated randomly to form the initial population \(P_{0}\).
* Step 2: Generate offspring by crossover operator. \(Size_{p}\) individuals are generated by performing the crossover operator designed in this paper on the current parent population \(P_{t}\) to form an offspring population \(Q_{t}\).
* Step 3: Merge to generate a mixed population. Combine the parent population \(Q_{t}\) obtained in the previous step and the offspring population \(P_{t}\) into a new population \(R_{t}\), which can be expressed as \(R_{t}=P_{t}\cup Q_{t}\).  
* Step 4: Perform mutation operators. Perform mutation operations on each individual in the mixed offspring \(R_{t}\) to update \(R_{t}\).
* Step 5: Perform non-dominated sorting on \(R_{t}\). Calculate the fitness function of each individual in \(R_{t}\) and non-dominated sort \(R_{t}\) based on it, thereby marking the dominance level \(\{F_{1},F_{2},\cdots,F_{L}\}\) of each individual.
* Step 6: Select the next-generation population \(P_{t+1}\) from \(R_{t}\). Starting from the \(F_{1}\) layer, individuals are selected from \(R_{t}\) layer by layer and placed in the next-generation population \(P_{t+1}\) according to the dominance level, which continues until the number of individuals \(n_{i}\) in the \(F_{i}\) layer is greater than the remaining demand individuals \(n_{re}\) of the next-generation population. Afterwards, select \(n_{re}\) individuals closest to the nearest reference point from the \(F_{i}\) layer to thereby make up for the missing individuals in \(P_{t+1}\).
* Step 7: Perform decision-support sorting operator on \(P_{t+1}\). Sort the individuals in \(P_{t+1}\) by the TOPSIS method and label the most prioritized individual among them.
* Step 8: Repeat Step 2-Step 7 until the predetermined number of iterations \(Size_{g}\) is reached and output the individuals in the \(F_{1}\) layer of the last-generation population as the Pareto solution set. At the same time, output the decision-support solution labeled by the TOPSIS operator.  
```
Input: system parameters (system component coordinates, capacity of the picking station, container coordinates, containers' dependent orders set, etc.), problem parameters (pallet-picking tasks set, the used picking station numbers, available AGV quantities, etc.), population size \(Size_{p}\), maximum number of iterations \(Size_{g}\). Output: Pareto solution set \(\{s_{1},s_{2},s_{3},\cdots\}\), decision-support solution \(sr\).
1. Initial population \(P_{t}\), \(t=0\)
2. While\(t<Size_{g}\)do
3. \(Q_{t}=Crossover(P_{t})\)
4. \(R_{t}=P_{t}\cup Q_{t}\)
5. \(R_{t}=Mutation(R_{t})\)
6. \(F=FastNonDominatedSort(R_{t})\)
7. \(P_{t+1}=\varnothing\), Temp\(P_{t+1}=\varnothing\), and \(i=1\)
8. while\(card(Temp_{t+1})\leq Size_{p}\)do
9. \(P_{t+1}=P_{t+1}\cup Temp_{t+1}\)
10. \(Temp_{t+1}=Temp_{t+1}\cup F_{i}\)
11. \(i=i+1\)
12. endwhile
13. \(n_{re}=Size_{p}-card(P_{t+1})\)
14. \(P_{t+1}=P_{t+1}\cup select(F_{t},n_{re})\)
15. \((P_{t+1},s_{t})=TOPSIS(P_{t+1})\)
16. \(t=t+1\)
17. endwhile Get the set \(F_{1}\) of \(P_{t}\) as the Pareto solution set Return\(\{\textbf{s}_{1},\textbf{s}_{2},\textbf{s}_{3},\cdots\}\), sr
```  
**Algorithm 1**MADPSO method general procedure