# Energy-Efficient Opportunistic Routing Algorithm for Post-Disaster Mine Internet of Things Networks
## 4 Proposed DEOR Algorithm
### Selection of Relay Node
This is because when the communication radius \(r\) of nodes is fixed, the larger the distance between the sender \(n_{i}\) and its neighbor \(n_{j}\) is, the shorter the routing path toward the sink becomes, thereby reducing the energy consumption for routing packets. The transmission distance \(d_{i,j}\) between \(n_{i}\) and \(n_{j}\) is represented by Formula (13). The variable \(d_{i,j}\) is normalized to \(\overline{d}_{i,j}\) by Formula (14), where \(\overline{d}_{i,j}\in[1,2]\). Then, the distribution of transmission distance \(\overline{d}_{i,j}\) is obtained by using the mass function expressed as Formula (15). \[d_{i,j}=\sqrt{\left(x_{i}-x_{j}\right)^{2}+\left(y_{i}-y_{j}\right)^{2}} \tag{13}\]  
\[\overline{d}_{i,j}=\frac{d_{i,j}+r}{r} \tag{14}\]  
Figure 4: (**a**) The direction angle \(\theta_{i,j}\) from \(n_{i}\) to \(n_{j}\) with respect to the location of the sink. (**b**) The transmission distance \(d_{i,j}\) from \(n_{i}\) to \(n_{j}\). \[\widetilde{d}_{i,j}=\frac{e^{(\widetilde{d}_{i,j})^{\kappa_{d}}}}{\sum_{k=0}^{c_ {i}}{\widetilde{Q}_{i,k}}} \tag{15}\]  
where \(\alpha_{d}(\alpha_{d}\geq 0)\) is the control parameter of the transmission distance factor. Note that a larger \(\alpha_{d}\) indicates the greater probability distribution for forwarders that are closer to the sink to be selected as relay nodes. Furthermore, some network nodes can deplete energy earlier than other nodes due to undertaking more packet forwarding in data transmission. In order to balance the load of network nodes, the energy attribute of nodes is also considered in our work to give higher priority to forwarders with greater residual energy. For a forwarder \(n_{j}\) of the sender \(n_{i}\), the residual energy \(\varepsilon_{i,j}\) is normalized to \(\overline{\varepsilon}_{i,j}\) by Formula (16). Then, the distribution of remaining energy \(\widetilde{\varepsilon}_{i,j}\) is obtained by using the mass function expressed as Formula (17). \[\overline{\varepsilon}_{i,j}=\frac{\varepsilon_{i,j}+e_{\text{ini}}}{e_{\text{ ini}}} \tag{16}\]  
\[\widetilde{\varepsilon}_{i,j}=\frac{e^{(\widetilde{e}_{i,j})^{\kappa_{e}}}}{ \sum_{k=0}^{c_{i}}{e^{(\widetilde{e}_{i,k})^{\kappa_{e}}}}} \tag{17}\]  
where \(e_{\text{ini}}\) is the initial energy of \(n_{j}\) and \(\alpha_{e}(\alpha_{e}\geq 0)\) is the control parameter of the energy factor. Note that a larger \(\alpha_{e}\) indicates the greater probability distribution for forwarders that have greater remaining energy to be selected as relay nodes. Based on the above analysis, we define the routing quality of \(n_{i}\)'s forwarder \(n_{j}\) as the product of the directional angle factor \(\widetilde{\theta}_{i,j}\), the transmission distance factor \(\widetilde{d}_{i,j}\), and the residual energy factor \(\overline{\varepsilon}_{i,j}\), which is expressed as \(\widetilde{Q}_{i,j}\) in Formula (18). Then, it is normalized to \(\overline{Q}_{i,j}\) by Formula (19). \[\theta_{i,j}=\arccos\frac{\overrightarrow{a}\cdot\overrightarrow{c}}{ \left|\overrightarrow{a}\right|\left|\cdot\right|\left|\overrightarrow{c} \right|} \tag{10}\]0  
\[\theta_{i,j}=\arccos\frac{\overrightarrow{a}\cdot\overrightarrow{c}}{ \left|\overrightarrow{a}\right|\left|\cdot\right|\left|\overrightarrow{c} \right|} \tag{10}\]1  
According to Formula (19), we can deduce that the forwarder with higher routing quality \(\overline{Q}_{i,j}\) has a higher chance of being selected as a relay node. Note that these three factors are controlled by three control parameters \(\alpha_{\theta}\), \(\alpha_{d}\), and \(\alpha_{e}\), respectively, such that increasing the value of any control parameter will enhance the impact of the corresponding indicator. Normally, the control parameters are set to \(\alpha_{\theta}=\alpha_{d}=\alpha_{e}=1\). Once the CFS of the sender is determined, the number of packet replicas needs to be limited by the collaboration of candidate forwarders, ensuring that only one forwarder is selected as the relay node to forward packets.