Skip to main content
. 2022 Feb 2;22(3):1129. doi: 10.3390/s22031129
Algorithm 2 User Clustering Scheme for MIMO-NOMA with A Given Relative Weight
  • 1:

    Assign the first S users of U 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 Ωj.

  • 6:

       while Ωj Ø do

  • 7:

         nj← the first cluster in Ωj.

  • 8:

         Insert user j to Unj.

  • 9:

         NUM← the number of the users in Unj.

  • 10:

         if NUMM then

  • 11:

            Break.

  • 12:

         else

  • 13:

            for i = 1:M + 1 do

  • 14:

              Remove the i-th user from Unj.

  • 15:

              Obtain the optimal beam vector for cluster nj by Algorithm 1.

  • 16:

              εi← the sum rate of the users in Unj.

  • 17:

              Insert the removed user to its original position.

  • 18:

            end for

  • 19:

            i˜ the position of the maximum in [ε1,ε2,,εM+1].

  • 20:

            x the index of the i˜-th user in Unj.

  • 21:

            Remove the i˜-th user from Unj.

  • 22:

         end if

  • 23:

         if x=j then

  • 24:

            Remove cluster nj from Ωj.

  • 25:

         else

  • 26:

            Break.

  • 27:

         end if

  • 28:

       end while

  • 29:

    end for