## 3 Proposed Scheme
### Metaheuristic-tabu Search Algorithm  
The metaheuristic-tabu search algorithm is an optimization algorithm, which maintains a short term memory of the definite changes of the existent search procedure within a specific region. Thus, it prevents nullification of the definite changes in the next search steps and controls the embedded heuristic technique. In addition, this algorithm can reduce interference from cellular users to D2D users while reusing uplink cellular resources. The pseudo code of the metaheuristic-tabu search algorithm is given in Algorithm 2. The metaheuristic-tabu search starts with an initial viable solution and solves the optimization problem by managing the neighborhood exploration heuristic. Then, a tabu list is initialized with this initial solution. The tabu list is dynamic in nature and is used to browse the solution space efficiently, thus it prevents the cycling of search steps. If the tabu list is very long, then all moves will become forbidden. On the other hand, if the tabu list is very short, then the search mechanism ends up examining a local optimum. ```
Initialization C: The set of cellular users \(D\): The set of D2D users \(G\): The



proposed metaheuristic-tabu search algorithm is presented in Algorithm 2. The tabu list structure considered in the proposed scheme followed the first-in-first-out (FIFO) mechanism. ```
Initialization \(E\): The number of iterations \(A\): The initial solution % generate initial solution and stored in a temporary location \(\text{COST}_{best}\leftarrow\text{COST}(A)\) \(B\gets A\) % consider the initial solution as the best solution \(L_{T}\leftarrow\varnothing\) % initialization of TABULIST Search for an optimal solution from the valid move while TABUSEARCH() do\(V_{move}\leftarrow\)\(\{i\in E\}\), \(V_{move}\
otin L_{T}\) % find a valid move with an iteration if\(V_{move}\
eq\varnothing\)then\(C\gets V_{move}\) % obtained a solution from the valid move \(L_{T}\leftrightarrow C\) | \(L_{T}\leftarrow C\) % exchanging or replacing new solution for all elements of TABULIST CHECK {COST(C\({}^{\prime}\)) \(\leq\) COST(C\({}^{\prime}\))} % select best solution among \(C^{\prime}\) and \(C^{\prime}\)  UPDATE TABULIST(\(A^{\prime}\)) if COST(\(A\), \(A^{\prime}\)) \(<\) COST\({}_{best}\) then\(B\)\(\leftarrow\)\(A^{\prime}\)  COST\({}_{best}\) \(\leftarrow\) COST(\(A^{\prime}\)) \(A\)\(\leftarrow\)\(A^{\prime}\) return\(B\)  end if end
```

**Algorithm 2** Metaheuristic-tabu search algorithm

## 4 [PERSON]'s Fairness Index

A fairness distribution of resources is an important basis in designing cellular networks, where two or more devices must share the same sub-channel resource. In this section, we introduce [PERSON]'s fairness index to analyze the fair distribution of resources among M-D2D groups [24]. In the proposed scheme, while allocating a sub-channel resource to the M-D2D group, the receivers in the group should attain an aggregate throughput, \(T_{g^{deg}}\). Therefore, in order to analyze the fair distribution of sub-channel resources, we introduce [PERSON]'s fairness index (_IFI_) for the system as follows:

\[JFI=\ \frac{\left|\sum_{g^{deg}=1}^{N_{G}}T_{g^{deg}}\right|^{2}}{N_{G}\cdot \sum_{g^{deg}=1}^{N_



## 5 Performance Discussion

In this section, we present simulation parameters and several simulation results to verify the performance of the proposed resource sharing scheme. ### Simulation Environment

We consider a multi-cell cellular network in which the available resources are allocated to the cellular users and there is no interference between the cellular users. The main simulation parameters are listed in Table 2. The path loss model for cellular users and D2D users are considered to be in the line of sight (LOS) model. In the proposed scheme, all the users are uniformly placed in a cell and each simulation result is analyzed by averaging over a large number of iterations. The proposed algorithm for M-D2D communications has been implemented in Matlab using Monte-Carlo simulation.