## 2 Methods
### Task Scheduling Model
#### 2.1.3 Multi-Objective Task Scheduling Based on Task Publisher  
When the task publisher uses the crowdsourcing model to conduct large-scale public remote sensing data collection, the collection is released on a crowdsourcing platform. It is necessary to select different scheduling strategies according to the needs of different remote sensing data to determine the matching between tasks and nodes. Three task scheduling strategies, namely, the time limit priority, energy priority, and cost priority, are common scheduling strategies. Time-limited task scheduling is activated for particularly urgent task assignments. For normalized task assignments without time requirements, energy and cost constraint task scheduling can be utilized. Suppose m collection nodes are \(P=\{P_{1},\ P_{2},\ \ldots P_{m}\}\); the resources available for each collection node are represented as \(P_{i}=\{Mips_{i},\ Energy_{i},\ Cost_{i}\}\), among which \(Mips_{i}\) represents the execution speed of node \(i\) in node set \(W\) for a certain type of task, \(Energy_{i}\) represents the energy consumption of node \(i\) per unit time, and \(Cost_{i}\) represents the cost of executing unit tasks for node \(i\). The expression \(B[i][j]\) represents the matching relationship between task \(i(i=1,2,\ldots,n)\) and node \(j(j=1,2,\ldots,m)\), and the assignment of \(B[i][j]\) is shown in Equation (2):  
\[B[i][j]=\left\{ \begin{array}{cc}0&\text{Task $i$ is not assigned to node $j$}\\ 1&\text{Task $i$ is assigned to node $j$}\end{array} \right. \tag{2}\]  
In Equation (2), the expression \(B[i][j]\) represents the task execution matrix and is defined in Equation (3):  
\[B= \begin{bmatrix}B[1][1]&\cdots&B[1][m]\\ \vdots&\ddots&\vdots\\ B[n][1]&\cdots&B[n][m]\end{bmatrix}  \tag{3}\]  
In Equation (3), each row represents a collection task, and each column represents a node resource. When \(\sum_{j=1}^{m}B[i][j]=1\), it indicates that a task can only be assigned to one node. Considering the large amount of public remote sensing data, the large data capacity, and the different execution speeds of different collection nodes for different types of tasks, the execution time of each task is determined by the length of the task assigned to the node and the execution speed of the node. For task set \(T=\{t_{1},t_{2},\ldots,t_{n}\}\), the purpose of dynamic task scheduling in this paper is to find an optimal task scheduling scheme to assign all tasks to the corresponding collection nodes in order to make the total task completion time the shortest. Since the execution speed of different tasks on the node is different, the execution speed of the task on the node can be represented using the execution time matrix in Equation (4):  
\[ExecuteTime= \begin{bmatrix}Time_{11}&Time_{12}&\cdots&Time_{1m}\\ Time_{21}&Time_{22}&\cdots&Time_{2m}\\ \vdots&\vdots&\ddots&\vdots\\ Time_{n1}&Time_{n2}&\cdots&Time_{nm}\end{bmatrix}  \tag{4}\]  
In Equation (4), the symbol \(Time_{ij}(1\leq i\leq n,1\leq j\leq m)\) represents the execution time of task \(i\) on node \(j\), and its calculation equation can be expressed in Equation (5):  
\[Time_{ij}=\frac{Length_{i}}{Mips_{j}} \tag{5}\]  
The symbol \(Length_{i}\) represents the task length of task \(i\), and \(Mips_{j}\) represents the execution speed of collection node \(j\). When all tasks are distributed and executed, the tasks are executed independently and in parallel on each node. Therefore, the total execution time of the task set is expressed as (6):  
\[SumTime=max\{\sum_{i=1}^{n}B[i][j]\times Time[i,j](1\leq j\leq m)\} \tag{6}\]  
When all tasks in task set \(T\) have been executed, if all nodes obtain tasks at the same time, and the total task execution time is determined by the node with the slowest execution speed, the optimization goal of task scheduling is to find an optimal task allocation scheme to minimize \(SumTime\). Due to the differences in the machine configuration of each task execution node, there must be a difference in the energy consumption per unit time when the task is executed.