Skip to main content
. 2013 Jul 8;13(7):8750–8770. doi: 10.3390/s130708750

Algorithm 1 Distributed matrix completion algorithm for recognition, on the ith processing node.

Input: Initial portion of the data matrix for the ith node, Di = D0i, and parameter, λ.
Output: ith portion of the completed matrix, Di
 ℒi0, = 0, μk > 0, ρ = 1.1, Ei0 = 0
while not converged do
  1. Fix all other variables and update Dik+1=argminDi1μkDik*+12Dik(D0i+Eikikμk)F2
  by:
    Jik=Di0Eik+μk-1ik
   ci(k) = JikT Jik
   Send ci(k) to all the neighbors, Inline graphic,
   Receive all cj(k)s from the neighbors, Inline graphic,
   ci(k) = ci(k) + Inline graphic(k) ΣjInline graphic(cj(k) − ci(k))
   (V, 1Np2, VT) = svd(ci(k))
   Ui = Jik−1
   Dik+1= Ui Inline graphicτ[Σ] VT
  2. Fix all other variables and update
   EXik+1=argminEXi1μkf(EXik)+12EXik(D0Xi+DXik+1ikμk)F2
  3. Fix all other variables and update
   EYik+1=argminEYi1μkg(EYik)+12EYik(D0Yi+DYik+1ikμk)F2
  4. Set the Eik=[EYikTEXikT0T]T,
  5. Update the multiplier, ℒi:
ik+1 = ℒik + μk(Dik+1Di0Eik+1)
  7. Update parameter, μk+1, as: μk+1= min(ρμk, 1010) and k = k + 1.
  8. Check the convergence condition:
(DikD0iEik → 0)
end while