## 3 SATLD for MGSS Considering Waiting Time
### Simulated Annealing Algorithm with Tabu List and Start Time Decision
The purpose of downlink planning is to ensure that the downlink requirements are met while reducing the total wait time for each request. Therefore, downlink requests need toThe input of SATLD includes downlink request set \(R\), ground station set \(G\), satellite set \(S\), access window set \(A\), maximum number of iterations \(Max\_Iter\), tabu list length \(L_{t}\). First, an initial solution is obtained by using the initialization function _initial_. Additionally, the _waitingTime_, _satisfiedNumber_ of the initial solution is calculated by fitness calculation function \(fitval\).Update \(\mathcal{S}\) using neighborhood search based on tabu list \(neighborTL\). Compare the \(\mathcal{S}\) with \(\mathcal{S}^{\prime}\), and update based on Metropolis guidelines. The length of the solution is equal to the number of downlink requests, and each request solution position represents the downlink ground station number of the corresponding request. The initial solution will greatly affect the optimization performance of SATLD. Therefore, we propose three initialization criteria. For request \(r\), the corresponding satellite number is \(sat_{r}\), and the arrival time of the task request \(r\) is \(tArrival\). For all the ground stations with access window to \(sat_{r}\), the ground station set \(\mathcal{G}_{n}^{r},n\in G\). 1. The access window conflict time is the least;
2. The ground station \(\mathcal{G}_{n}^{r}\) has the longest access window time for \(sat_{r}\);
3. The start time of access window between ground station \(\mathcal{G}_{n}^{r}\) and \(sat_{r}\) has the smallest difference with \(tArrival\). ```
Input: access window set \(A^{\prime}\), request \(r\), ground station number \(g\), the specific start time of request \(y_{r}\) Output: updated access window set \(A^{\prime}\)
1\(gsNumber\gets g\);
2\(\mathcal{A}\leftarrow\mathit{all\,AccessWindowForGS}(gsNumber)\);
3\(st\gets y_{r}\);
4\(et\gets y_{r}+tDur_{r}\);
5 fora in \(\mathcal{A}\)do
6 if\(tBeg_{a}>st\) and \(tEnd_{a}\leq\mathit{et}\)then
7\(A^{\prime}\leftarrow\{a^{\prime}|a^{\prime}\in A^{\prime}\cap a^{\prime}\
otin a\}\);
8
9 end if
10 if\(tBeg_{a}<st\) and \(st\geq tEnd_{a}\leq\mathit{et}\)then
11\(tBeg_{a}^{\prime}=tBega_{a}\);
12\(tEng_{a}^{\prime}=st\);
13\(a\gets a^{\prime}\);
14
15 end if
16 if\(tEnd_{a}>et\) and \(st\geq tBeg_{a}\leq\mathit{et}\)then
17\(tBeg_{a}^{\prime}=et\);
18\(tEng_{a}^{\prime}=tEnd_{a}\);
19\(a\gets a^{\prime}\);
20
21 end if
22 if\(tBeg_{a}\geq st\) and \(tEnd_{a}\leq\mathit{et}\)then
23\(tBeg_{a}^{\prime}=st\);
24\(tEng_{a}^{\prime}=tBega_{a}\);
25\(a\gets a^{\prime}\);
26\(tBeg_{a^{\prime}}=et\);
27\(tEng_{a^{\prime}}=tEnd_{a}\);
28\(A^{\prime}\gets A^{\prime}+a^{*}\);
29
30 end if
31
32 end for
```  
**Algorithm 2**Access window update for DSA-RT and DSA-AT
In \(fitval\), the specific start time and fitness of each request will be determined by FCFS-based and SJF-based simultaneously. Additionally, use the greedy strategy to determine the final execution time. In \(neighborTL\), tabu list is used to explore the solution neighborhood to improve the optimization efficiency. The algorithm maintains a tabu list queue of with length \(L_{t}\), records the change of solution in each iteration, and checks whether the current neighborhood appears in \(TL\). If it appears, the corresponding element in \(TL\) will be moved to the end of the queue. If the current neighborhood does not appear in \(TL\), it will be push to \(TL\), and \(TL\) will delete the first element of the queue. ```
Input: Downlink request set \(R\), Ground station set \(G\), Satellite set \(S\), Access window set \(A\).