Skip to main content
. 2024 Mar 12;26(3):250. doi: 10.3390/e26030250
Algorithm 2 Three-category-based Scheme (N,K,M)
  • procedure 

    PLACEMENT(W1,,WN)

  •   1:

    Apply Algorithm 1 MAN Uncoded Symmetric Placement Scheme (N,K,M,W[N])

  • end procedure 

     

  • procedure 

    DELIVERY(R,DR)

  •   2:

    r|DR|

  •   3:

    tKM/N

  •   4:

    Ne(DR) the number of distinct elements in DR

  •   5:

    for  k[K]R  do

  •   6:

    Uk{u1k,,uNe(DR)k}

  •   7:

    end for

  •   8:

    (i) For sub-files in the first category:

  •   9:

    T{𝒯[K]R:|𝒯|=t}

  • 10:

    for  𝒯T do

  • 11:

    for  n[N]  do

  • 12:

      Divide sub-file Wn,𝒯 into t disjoint sub-pieces (Wn,𝒯,a:a𝒯) with equal size

  • 13:

    end for

  • 14:

    for  a𝒯  do

  • 15:

      for  sUa  do

  • 16:

       User a transmit Xa1st,ds,𝒯=Wds,𝒯,a

  • 17:

      end for

  • 18:

    end for

  • 19:

    end for

  • 20:

    (ii) For sub-files in the second category:

  • 21:

    for  [max{1,t+rK},min{t1,r1}]  do

  • 22:

     Ɓ  {B^[K]R:|B^|=ti}

  • 23:

    for  B^ Ɓ  do

  • 24:

      for  BR:|B|=i  do

  • 25:

       for  n[N]  do

  • 26:

        Divide sub-file Wn,BB^ into ti disjoint sub-pieces (Wn,BB^,b:bB^) with equal size

  • 27:

       end for

  • 28:

      end for

  • 29:

      for  bB^  do

  • 30:

       for  B¯R:|B¯|=i+1  do

  • 31:

        if  B¯Ub==  then

  • 32:

         continue

  • 33:

        else

  • 34:

         User b transmits Xb2nd,dx,B^B¯{x}=xB¯Wdx,B^B¯{x},b

  • 35:

        end if

  • 36:

       end for

  • 37:

      end for

  • 38:

    end for

  • 39:

    end for

  • 40:

    (iii) For sub-files in the third category:

  • 41:

    𝒢  {G[K]:|G|=t}

  • 42:

    for  n[N]  do

  • 43:

    for  G 𝒢  do

  • 44:

      Divide sub-file Wn,G into t disjoint sub-pieces (Wn,G,i:iG) with equal size

  • 45:

    end for

  • 46:

    end for

  • 47:

    for  iR  do

  • 48:

    Ne(DR{i}) the number of distinct elements in DR{i}

  • 49:

    Ui{u1i,...,uNe(DR{i})i}

  • 50:

    for EiR{i}:|Ei|=t users do

  • 51:

      if  EiUi==  then

  • 52:

       continue

  • 53:

      else

  • 54:

       User i transmits YEii=kEiWdk,{Ei{i}}{k},i

  • 55:

      end if

  • 56:

    end for

  • 57:

    end for

  • end procedure