EECSR: Energy-efficiency cooperative SWIPT routing algorithm | |
---|---|
Input: | |
   \(G(\mathcal {K}, E),Source, Sink, R^{\min }, P^{\max }, \text {CSI of network}.\) | |
Output: | |
   \(\overline{\varvec{\mathcal {T}}}^{*}\): optimal routing policy; | |
   \(\overline{\varvec{\mathcal {P}}}^{*}, \overline{\varvec{\rho }}^{*}, \overline{\varvec{\mathcal {S}}}^{*}\): optimal resource allocation policy for | |
                  each hop in the selected path. | |
1: Â Â Â Initialization: \(\bar{S} \leftarrow \emptyset\), \(Q \leftarrow \mathcal {K}\), \(E_{\text{ Sink }}^{\text{ Req }} \leftarrow 0\), \(EEcost_{\text{ sink }} \leftarrow 0\), \(U_{T P(\text{ sink})} \leftarrow 0\), \(U_{(\sin k)} \leftarrow \infty\), | |
                        all \(t_{i j} \leftarrow 0, i, j \in \mathcal {K}\) | |
2: Â Â Â for i in \(\mathcal {K}\) do | |
3: Â Â Â Â Â Â \(Next_{i} \leftarrow \mathrm {NULL}\), \(E_{i}^{\text{ Req }} \leftarrow \infty\), \(EEcost_{i} \leftarrow \infty\), \(U_{T P(i)} \leftarrow \infty\), Â Â Â \(U_{(i)} \leftarrow 0\) | |
4: Â Â Â end for | |
5: Â Â Â while \(Q \ne \emptyset\) do | |
6: Â Â Â Â Â Â \(cluster \; head \; node\; j \leftarrow \; MIN\)-EEcost(Q) | |
7: Â Â Â Â Â Â \(\bar{S} \leftarrow \bar{S} \cup \{j\}\) | |
8: Â Â Â Â Â Â for each input edge \(CoLink_{ij} \in E\) do | |
9: Â Â Â Â Â Â Â Â Â if \(EEcost_{i}>EEcost_{j}\) and \(E_{i j}^{\max } \ge E_{j}^{R e q}\) then | |
10: Â Â Â Â Â Â Â Â Â Â Â Â Solve the resource allocation subproblem in \(CoLink_{ij}\) with \(E_{i}^{\text{ Req }}\) to obtain | |
               allocation policies \(\{\varvec{\mathcal {P}}, \varvec{\rho }, \varvec{\mathcal {S}} \}\) and the minimum \(EEcost_{(i j)}\) | |
11: Â Â Â Â Â Â Â Â Â Â Â Â Calculate the new routing metrics for node i : \(EE {\text {cost}}_{i}^{\prime },\; U_{T P(i)}^{\prime },\; U_{(i)}^{\prime }\) | |
12: Â Â Â Â Â Â Â Â Â Â Â Â if \(EE {\text {cost}}_{i} < EEcost_{i}\) then | |
13: Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â cluster head i selects j and update routing metrics, \(E_{i}^{\text{ Req }}\) and \(Next_{i}\) | |
14: Â Â Â Â Â Â Â Â Â Â Â Â end if | |
15: Â Â Â Â Â Â Â Â Â end if | |
16: Â Â Â Â Â Â end for | |
17: Â Â Â end while |