## 4 Performance Evaluation  
### Simulation Model  
This section describes the performance evaluation results for the proposed scheme. We implement a simulation by Python. The simulation consists of three layers: node, cell, and data layer. The node layer defines a node class for configuration of each node. It manages the information of specific nodes, such as modes of the node, locations, powers, and channels including calculating experienced interference, SINR, and throughputs. The cell layer manages the nodes in perspective of cells. In the cell layer, distribution of nodes is controlled, and cell-throughput is calculated. Finally, the data layer collects the outputs from each distribution of nodes, and arranges the data to be easy to make graphs. The simulation environment is Python 3.6 on Anaconda 4.3.1, which is a mathematical library for Python. It operates on Window 10 Pro (Microsoft, Redmond, WA, USA). The system consists of i7-6700K CPU and 32 GB memory, but the simulation does not require this high-spec system.  
Computational complexity of the framework is determined by the number of devices. Interference should be considered with only the devices in the same numbered zones. It means that when a device in zone A1 is the target device, A2, B2 and C2 devices are not necessary to be considered. Additionally, the devices in the same zone are also not necessary to be considered. However, they are comparatively small to estimate computational complexity. Therefore, the computational complexity of the proposed scheme can be described as \(O(\frac{n(K_{CF}\cup K_{D2D})}{2})\). It is the same for both cellular and D2D links.  
We compare the performance of the proposed scheme with the semi-static scheme, where each link has a dedicated frequency. The simulator for the performance evaluation assumes a three-tier cell environment. Table 4 shows the simulation parameters and values. The path loss model is the NLOS Winner II B5f model for urban areas [51; 52]. The carrier frequency is assumed to 2 GHz. In the simulation, it is assumed that there are 2, 4 and 10 sensors in each zone. It means that there are 12, 24 and 60 sensors in a cell, respectively. In addition, we assume that 50% of sensors use the cellular link and the remaining 50% use the D2D link. Thus, the number of sensors that are connected to the cellular link per zone is 1, 2 and 5, respectively. Since one cell is composed of six zones, each cell has 6, 12 and 30 cellular links. Each experiment is conducted 1000 times and the results are averaged for the Monte Carlo method.  
\begin{table}
\begin{tabular}{c c} \hline \hline
**Parameter** & **Value** \\ \hline \multirow{2}{*}{Macro cell structure} & Hexagonal grid 3-tier \\ \cline{2-3}  & 19 cell sites \\ \hline Center frequency & 2.0 GHz \\ \hline System bandwidth & 10 MHz \\ \hline \multirow{2}{*}{The number of sensors} & 12/24/60 of 50\% cellular sensor, \\ \cline{2-3}  & 50\% D2D sensor \\ \hline Cell radius & R = 866 m \\ \hline Inter-distance sensors & 10 m \(\leq\) distance \(\leq\) 50 m \\ \hline Resource allocation & 1 Resource block (RB) per a sensor \\ \hline Noise figure & \(-147\) dBm\(/\)Hz \\ \hline Path loss model: & \multirow{2}{*}{\(23.5\log_{10}(distance(m))+57+23\log_{10}(f/5)\)} \\ \cline{1-1} Winner II B5f & & \\ \hline \hline \end{tabular}
\end{table}
Table 4: Simulation parameters.