## 3 Preliminaries and Definitions
### Definition of JRors
#### 4.1.2 Proposed BSSA Algorithm  
SSA has wide applicability and can solve continuous or discrete optimization problems. The load allocation problem we are going to solve is also a discrete optimization problem, this problem requires finding a set of binary schemes for power allocation that maximizes the fairness of the whole system. When we decide to allocate or not to allocate a certain workload to a particular base station, this is represented by 1 or 0. If this decision variable is represented using binary, it can be better adapted to the characteristics of the problem and the problem complexity can be reduced, to improve the performance of the algorithm. Therefore, we introduce binary coding into SSA, as in BSSA.  
The pseudo-code for the key parts of the BSSA algorithm is reported in Algorithm 2. The fval_BSSA is the optimal fitness value, i.e., the maximum welfare value for searching for load assignments using BSSA. BSSA uses the pseudo-code of the binary modified procedure for Algorithm 2.  
```
Input: user_profile_na_min, na_max, max_Iter, N Output: fval_BSSA Initialize parameters 1: \(lb\gets 0\) 2: ub \(\gets 1\) 3: \(\textit{thres}\leftarrow 0.5\) 4: max_Iter \(\leftarrow\) 600 5: \(\textit{conflict}\gets 0\) 6: \(\textit{dim}\leftarrow\text{length(user\_profile)}\) 7: \(\mathcal{Q}\leftarrow\) 0.7 8: \(\textit{betal}\leftarrow-2+4\times\text{rand()}\) 9: \(\textit{betal2}\leftarrow-1+2\times\text{rand()}\) 10: \(\textit{nallit}\leftarrow\text{round(na\_min+(na\_max-na\_min)\times rand())}\) 11: \(\textit{while}\leftarrow\text{max\_Iter}\)do
13: fori \(\leftarrow\) 1 to N do
14: Calculate fitness fit(i) using JRORS function
15: Negate fit(i)
16: if fit(i) > fitF then
17: Set \(\text{Xf}\) = X(i,) and fitF = fit(i)
18: End if
19: End for
20: Update X as Leader Salp or Follower Salp
21: Set \(\text{curve(t)}\leftarrow\text{fitF}\)
22: Increment t
23:End while
24: Convert binary positions to feature subsets
25: Determine Sf, Nf based on Xf
26: Calculate sFeat from user_profile and Sf
27:return fval_BSSA\(\leftarrow\) fitF
```  
**Algorithm 2**BSSA  
According to Algorithm 2, the detailed steps of BSSA are as follows:  
1. Initialize the population. Within the upper bound 1 and lower bound 0 of the search space, a salp swarm of size N \(\times\) D whose position is binary is randomly initialized;
2. Calculate the initial fitness. According to Equation (1), the fitness values of N salps in the JRORS problem are calculated;
3. Choose food. The salp swarm is sorted according to the fitness value, and the position of the salp swarm with the best fitness in the first place is set as the current food position;
4. Choose leaders and followers. After the food location is selected, there are N \(-1\) remaining salps in the group, and according to the ranking of the salp groups, the salps in the first half are regarded as leaders and the rest as followers;
5. Location update. First, the position of the leader is updated according to Equation (7), and then the position of the follower is updated according to Equation (8);
6. Calculate the fitness. Compute the fitness of the updated population. The updated fitness value of each individual salp sheath is compared with the fitness value of the current food. If the fitness value of the updated salp sheath is higher than that of the food, the salp sheath position with the higher fitness value is taken as the new food position;Repeat steps 4-6 until a certain number of iterations is reached, and the current food position is output as the estimated position of the target.