Algorithm 2 User Clustering Scheme for MIMO-NOMA with A Given Relative Weight |
-
1:
Assign the first S users of to S different clusters.
-
2:
Construct the utility function as (20) based on the given relative weight.
-
3:
forj=S + 1:K
do
-
4:
Sort multiple clusters based on user j’s preference.
-
5:
Denote the sorted sequence by .
-
6:
while do
-
7:
← the first cluster in .
-
8:
Insert user j to .
-
9:
← the number of the users in .
-
10:
if then
-
11:
Break.
-
12:
else
-
13:
for i = 1:M + 1 do
-
14:
Remove the i-th user from .
-
15:
Obtain the optimal beam vector for cluster by Algorithm 1.
-
16:
← the sum rate of the users in .
-
17:
Insert the removed user to its original position.
-
18:
end for
-
19:
the position of the maximum in .
-
20:
the index of the -th user in .
-
21:
Remove the -th user from .
-
22:
end if
-
23:
if then
-
24:
Remove cluster from .
-
25:
else
-
26:
Break.
-
27:
end if
-
28:
end while
-
29:
end for
|