Skip to main content
. 2023 Feb 13;23(4):2116. doi: 10.3390/s23042116
Algorithm 2 Maximum-Weighted Clique Beam Scheduling Algorithm.
  • Require:

    G=(V,E), W={w1,w2,,wN}.

  • Ensure:

    Qm.

  • 1:

    Initialize:

  • 2:

    Let Qk = Ø, k{1,2,,K1};

  • 3:

    Let QK={vK};

  • 4:

    Let WQk=0,k{1,2,,K1};

  • 5:

    Let WQK=wK;

  • 6:

    Let Qm=QK;

  • 7:

    Let max=WQK

  • 8:

    Let Sk={vk,vk+1,,vK},k{1,2,,K};

  • 9:

    Scheduling:

  • 10:

    fork=K1:1do

  • 11:

       if {vk}Qk+1 is also a clique then

  • 12:

         Qk=Qk+1{vk};

  • 13:

         WQk=WQk+1+wk;

  • 14:

       else

  • 15:

         Qk={vk};

  • 16:

         WQk=wk;

  • 17:

         Sk=SkN(vk)

  • 18:

         if Sk = then

  • 19:

            if WQk>max then

  • 20:

              Qm=Qk;

  • 21:

              max=WQk;

  • 22:

              mc=k;

  • 23:

            end if

  • 24:

            return;

  • 25:

         end if

  • 26:

         while Sk do

  • 27:

            j=min{j|vjSk};

  • 28:

            Qk=Qk{vj};

  • 29:

            WQk=WQk+wj;

  • 30:

            Sk=(Sk{vj})K(vj);

  • 31:

            if Sk= then

  • 32:

              if WQk>max then

  • 33:

                 Qm=Qk;

  • 34:

                 max=WQk;

  • 35:

                 mc=k;

  • 36:

              end if

  • 37:

            end if

  • 38:

         end while

  • 39:

         if mck then

  • 40:

            Qk=Qk+1;

  • 41:

            WQk=WQk+1;

  • 42:

         end if

  • 43:

       end if

  • 44:

    end for

  • 45:

    if|Qm|>J then

  • 46:

       Qm=Qm(1:J);

  • 47:

    else

  • 48:

       return;

  • 49:

    end if