Skip to main content
. 2022 Sep 12;24(9):1284. doi: 10.3390/e24091284
Algorithm 4 Coded sI-ADMM (csI-ADMM)
  • 1:

    initialize: {z1=xi1=yi1=0|i∈N}, batch size M¯;

  • 2:

    Local Data Allocation:

  • 3:

    foragenti∈Ndo

  • 4:

        divide Di labeled data based on repetition schemes in [34] and denote each partition as ξi,j,j∈Ki;

  • 5:

        for ECNj∈Ki do

  • 6:

            allocate ξi,j to ECN j;

  • 7:

            partition ξi,j examples into multiple batches with each size (Si+1)M¯/Ki;

  • 8:

        end for

  • 9:

    end for

  • 10:

    Updating Process:

  • 11:

    fork=1,2,…do

  • 12:

        Steps of Active Agent i=ik=(k−1)modN+1:

  • 13:

        run steps 13–14 of Algorithm 3

  • 14:

        ECN j∈Ki computes gradient in parallel:

  • 15:

          run step 16 of Algorithm 3

  • 16:
          select batch
    Ii,jk=mmod⌊|ξi,j|·Ki/(Si+1)M¯⌋; (18)
  • 17:

          update gi,j via encoding function pencj(·);

  • 18:

          transmit gi,j to the connected agent;

  • 19:

        until the Ri-th fast responded message is received;

  • 20:

        update gradient via decoding function qdeci(·);

  • 21:

        run steps 22–26 of Algorithm 3;

  • 22:

    end for