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.