Skip to main content

Table 6 Algorithm to jointly obtain the set of information and harvesting users \(\mathcal {U}_{I}, \mathcal {U}_{E}\)

From: User grouping and resource allocation in multiuser MIMO systems under SWIPT

1: Set \(\mathcal {U}_{I} = \emptyset, Q_{i}\ge 0\), and \(\omega _{i}>0, \, \forall i \in \mathcal {U}_{T}\)

2: Find \(i_{1} = \arg \max _{\forall i \in \mathcal {U}^{S}_{I}} \max _{\mathbf {S}_{i}}\omega _{i}\log \det \left (\mathbf {I} + \mathbf {H}_{i}\mathbf {S}_{i}\mathbf {H}_{i}^{H}\right)\)

subject to Tr(Si)≤PT,Si≽0

3: Set \(f_{\text {temp}} = \omega _{i_{1}}\log \det (\mathbf {I} + \mathbf {H}_{i_{1}}\mathbf {S}_{i_{1}}\mathbf {H}_{i_{1}}^{H})\)

4: Set \(\mathcal {U}_{I} \leftarrow \mathcal {U}_{I} \cup \{i_{1}\}, \,\, \mathcal {U}^{S}_{I} \leftarrow \mathcal {U}^{S}_{I} \setminus \{i_{1}\}\)

5: Evaluate \(m_{j} = \text {Tr}(\mathbf {H}_{j}\mathbf {S}^{\star }_{i_{1}}\mathbf {H}_{j}) - Q_{j},\,\,\forall j \in \mathcal {U}^{S}_{E}\)

6: Find the k users with highest value of mj. Put them in set \(\mathcal {H}\)

7: Set \(\mathcal {U}_{E} \leftarrow \mathcal {U}_{E} \cup \mathcal {H}, \,\, \mathcal {U}^{S}_{E} \leftarrow \mathcal {U}^{S}_{E} \setminus \mathcal {H}, \mathcal {H} = \emptyset \)

8: for j=2 to U

9: for every \(i \in \mathcal {U}^{S}_{I}\)

10: Let \(\mathcal {U}^{(i)}_{I} = \mathcal {U}_{I} \cup \{i\}\)

11: Solve (13), and obtain \(R^{\star }_{m}, \,\mathbf {S}^{\star }_{m},\, \forall m\in \mathcal {U}^{(i)}_{I}\)

12: Compute \(f_{i} = \sum \nolimits _{m\in \mathcal {U}^{(i)}_{I}} \omega _{m}R^{\star }_{m}\)

13: end for

14: Let \(i_{j} = \arg \max _{i \in \mathcal {U}^{S}_{I}} f_{i}\)

15: if\(f_{i_{j}} < f_{\text {temp}} \longrightarrow \), go to 23 (break for)

16: else

17: \(\mathcal {U_{I}} \leftarrow \mathcal {U}_{I} \cup \{i_{j}\}, \,\, \mathcal {U}^{S}_{I} \leftarrow \mathcal {U}^{S}_{I} \setminus \{i_{j}\}\)

18: Let \(\phantom {\dot {i}\!}f_{\text {temp}} = f_{i_{j}}\)

19: end if

20: Evaluate \(m_{j} = \text {Tr}(\mathbf {H}_{j}\sum \nolimits _{i\in \mathcal {U}_{I}}\mathbf {S}^{\star }_{i}\mathbf {H}_{j}) - Q_{j},\,\,\forall j \in \mathcal {U}^{S}_{E}\)

21: Find the k users with highest value of mj. Put them in set \(\mathcal {H}\)

22: Set \(\mathcal {U}_{E} \leftarrow \mathcal {U}_{E} \cup \mathcal {H}, \,\, \mathcal {U}^{S}_{E} \leftarrow \mathcal {U}^{S}_{E} \setminus \mathcal {H}, \mathcal {H} = \emptyset \)

23: end for