Require: hyperparameters $\gamma$, $\beta$
Require: initial \({}^{j}_{i}y^{(0)},\; {}^{i}_{j}y^{(0)} \;\; \forall\; j \in {}^{i}N,\; {}^{i}\lambda^{(0)},\; {}^{i}s^{(0)} \;\; \forall\; i \in M\)
\(k \leftarrow 0\)
repeat
\(l \leftarrow 0\)
repeat
for every \(i \in M\) in parallel do
\[\begin{aligned}
{}^{i}d^{(k,\,l+1)} \leftarrow{} & \argmin_{{}^{i}d \;\in\; {}^{i}\mathcal{D}} \;\; {}^{i}v_f\!\left({}^{i}r\right) \\
& + \sum_{j \in {}^{i}N} \left(
\left({}^{i}_{j}\lambda^{i}\right)^{(k)\,T}
{}^{i}_{j}c_c^{i}\!\left({}^{i}d,\; {}^{i}_{j}y\right)
+ \left\|\left({}^{i}_{j}s^{i}\right)^{(k)} \circ {}^{i}_{j}c_c^{i}\!\left({}^{i}d,\; {}^{i}_{j}y\right)\right\|_{2}^{2}
\right. \\
& \left. \quad\quad +
\left({}^{j}_{i}\lambda^{i}\right)^{(k)\,T}
{}^{j}_{i}c_c^{i}\!\left({}^{i}d,\; {}^{j}_{i}y\right)
+ \left\|\left({}^{j}_{i}s^{i}\right)^{(k)} \circ {}^{j}_{i}c_c^{i}\!\left({}^{i}d,\; {}^{j}_{i}y\right)\right\|_{2}^{2}
\right) \\
& \text{s.t.} \;\; {}^{i}v_g\!\left({}^{i}r\right) \leq 0, \\
& \phantom{\text{s.t.}} \;\; {}^{i}v_h\!\left({}^{i}r\right) = 0.
\end{aligned}\]
Copy \({}^{i}_{j}H\!\left({}^{i}r\right),\; {}^{j}_{i}h,\; {}^{i}_{j}z,\; {}^{j}_{i}\lambda^{i},\; {}^{i}_{j}\lambda^{i},\; {}^{j}_{i}s^{i},\; {}^{i}_{j}s^{i}\) to interface storage \(i \leftrightarrow j \;\; \forall\; j \in {}^{i}N\)
end for
for every \(i \in M\) in parallel do
Copy \({}^{j}_{i}H\!\left({}^{j}r\right),\; {}^{i}_{j}h,\; {}^{j}_{i}z,\; {}^{i}_{j}\lambda^{j},\; {}^{j}_{i}\lambda^{j},\; {}^{i}_{j}s^{j},\; {}^{j}_{i}s^{j}\) from interface storage \(i \leftrightarrow j \;\; \forall\; j \in {}^{i}N\)
\[\begin{aligned}
{}^{i}_{j}y^{(k,\,l+1)} \leftarrow \Biggl(
& - \frac{1}{2}\left(\left({}^{i}_{j}\lambda^{i}\right)^{(k)} + \left({}^{i}_{j}\lambda^{j}\right)^{(k)}\right)
+ \left(\left({}^{i}_{j}s^{i}\right)^{(k)} \circ \left({}^{i}_{j}s^{i}\right)^{(k)}\right) \circ
\begin{bmatrix}
{}^{i}_{j}H\!\left({}^{i}r\right) \\
{}^{i}_{j}z
\end{bmatrix} \\
& + \left(\left({}^{i}_{j}s^{j}\right)^{(k)} \circ \left({}^{i}_{j}s^{j}\right)^{(k)}\right) \circ
\begin{bmatrix}
{}^{i}_{j}h \\
{}^{j}_{i}z
\end{bmatrix}
\Biggr) \\
& \oslash \left(\left({}^{i}_{j}s^{i}\right)^{(k)} \circ \left({}^{i}_{j}s^{i}\right)^{(k)} + \left({}^{i}_{j}s^{j}\right)^{(k)} \circ \left({}^{i}_{j}s^{j}\right)^{(k)}\right) \;\;\; \forall\; j \in {}^{i}N
\end{aligned}\]
\[\begin{aligned}
{}^{j}_{i}y^{(k,\,l+1)} \leftarrow \Biggl(
& - \frac{1}{2}\left(\left({}^{j}_{i}\lambda^{j}\right)^{(k)} + \left({}^{j}_{i}\lambda^{i}\right)^{(k)}\right)
+ \left(\left({}^{j}_{i}s^{j}\right)^{(k)} \circ \left({}^{j}_{i}s^{j}\right)^{(k)}\right) \circ
\begin{bmatrix}
{}^{j}_{i}H\!\left({}^{j}r\right) \\
{}^{j}_{i}z
\end{bmatrix} \\
& + \left(\left({}^{j}_{i}s^{i}\right)^{(k)} \circ \left({}^{j}_{i}s^{i}\right)^{(k)}\right) \circ
\begin{bmatrix}
{}^{j}_{i}h \\
{}^{i}_{j}z
\end{bmatrix}
\Biggr) \\
& \oslash \left(\left({}^{j}_{i}s^{j}\right)^{(k)} \circ \left({}^{j}_{i}s^{j}\right)^{(k)} + \left({}^{j}_{i}s^{i}\right)^{(k)} \circ \left({}^{j}_{i}s^{i}\right)^{(k)}\right) \;\;\; \forall\; j \in {}^{i}N
\end{aligned}\]
end for
Compute innerloop convergence criterion (e.g., [1, 2, 13])
\(l \leftarrow l + 1\)
until innerloop convergence criterion is met
\({}^{i}d^{(k+1)},\; {}^{i}_{j}y^{(k+1)} \leftarrow {}^{i}d^{(k,\,l)},\; {}^{i}_{j}y^{(k,\,l)} \;\; \forall\; j \in {}^{i}N,\; i \in M\)
for every \(i \in M\) do
\[\begin{aligned}
\left({}^{i}_{j}c_c^{i}\right)^{(k+1)} &\leftarrow
{}^{i}_{j}y^{(k+1)} -
\begin{bmatrix}
{}^{i}_{j}H\!\left({}^{i}r\right) \\
{}^{i}_{j}S_{z}\,{}^{i}d^{(k+1)}
\end{bmatrix}, \\[0.5em]
\left({}^{j}_{i}c_c^{i}\right)^{(k+1)} &\leftarrow
{}^{j}_{i}y^{(k+1)} -
\begin{bmatrix}
{}^{j}_{i}S_{h}\,{}^{i}d^{(k+1)} \\
{}^{i}_{j}S_{z}\,{}^{i}d^{(k+1)}
\end{bmatrix}
\end{aligned}\]
\[\begin{aligned}
\left({}^{i}_{j}\lambda^{i}\right)^{(k+1)} &\leftarrow \operatorname{DualUpdate}\!\left(
\left({}^{i}_{j}\lambda^{i}\right)^{(k)},\;
\left({}^{i}_{j}s^{i}\right)^{(k)},\;
\left({}^{i}_{j}c_c^{i}\right)^{(k+1)}
\right) \quad \forall\; j \in {}^{i}N \\
\left({}^{j}_{i}\lambda^{i}\right)^{(k+1)} &\leftarrow \operatorname{DualUpdate}\!\left(
\left({}^{j}_{i}\lambda^{i}\right)^{(k)},\;
\left({}^{j}_{i}s^{i}\right)^{(k)},\;
\left({}^{j}_{i}c_c^{i}\right)^{(k+1)}
\right) \quad \forall\; j \in {}^{i}N \\[0.5em]
\left({}^{i}_{j}s^{i}\right)^{(k+1)} &\leftarrow \operatorname{PenaltyUpdate}\!\left(
\beta,\; \gamma,\;
\left({}^{i}_{j}s^{i}\right)^{(k)},\;
\left({}^{i}_{j}c_c^{i}\right)^{(k+1)},\;
\left({}^{i}_{j}c_c^{i}\right)^{(k)}
\right) \quad \forall\; j \in {}^{i}N \\
\left({}^{j}_{i}s^{i}\right)^{(k+1)} &\leftarrow \operatorname{PenaltyUpdate}\!\left(
\beta,\; \gamma,\;
\left({}^{j}_{i}s^{i}\right)^{(k)},\;
\left({}^{j}_{i}c_c^{i}\right)^{(k+1)},\;
\left({}^{j}_{i}c_c^{i}\right)^{(k)}
\right) \quad \forall\; j \in {}^{i}N
\end{aligned}\]
end for
Compute outerloop convergence criterion (e.g., [1, 2])
\(k \leftarrow k + 1\)
until outerloop convergence criterion is met
return \(\left\{{}^{i}d^{(k)}\right\}_{i \in M}\)