sigpy.alg.ADMM¶
-
class
sigpy.alg.
ADMM
(minL_x, minL_z, x, z, u, A, B, c, max_iter=30)[source]¶ Alternating Direction Method of Multipliers.
Consider the equality constrained problem:
\[\min_{x: A x + B z = c} f(x) + g(z)\]And perform the following update steps:
\[\begin{split}x = \text{argmin}_{x} L_\mu(x, z, u)\\ z = \text{argmin}_{z} L_\mu(x, z, u)\\ u = u + A x + B z - c\end{split}\]where \(L(x, u, v, \mu)\): is the augmented Lagrangian function:
\[L_\rho(x, z, u) = f(x) + g(z) + \frac{\rho}{2}\|A x + B z - c + u\|_2^2\]Parameters: - minL_x (function) – a function that minimizes L w.r.t. x.
- minL_z (function) – a function that minimizes L w.r.t. z.
- x (array) – primal variable 1.
- z (array) – primal variable 2.
- u (array) – scaled dual variable.
- max_iter (int) – maximum number of iterations.
-
__init__
(minL_x, minL_z, x, z, u, A, B, c, max_iter=30)[source]¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
(minL_x, minL_z, x, z, u, A, B, c[, …])Initialize self. done
()Return whether the algorithm is done. update
()Perform one update step.