pyproximal.optimization.cls_primal.ADMML2ΒΆ

class pyproximal.optimization.cls_primal.ADMML2(callbacks: Callbacks = None)[source]ΒΆ

Alternating Direction Method of Multipliers for L2 misfit term

Solves the following minimization problem using Alternating Direction Method of Multipliers:

\[\begin{split}\mathbf{x},\mathbf{z} = \argmin_{\mathbf{x},\mathbf{z}} \frac{1}{2}||\mathbf{Op}\mathbf{x} - \mathbf{b}||_2^2 + g(\mathbf{z}) \\ s.t. \; \mathbf{Ax}=\mathbf{z}\end{split}\]

where \(g(\mathbf{z})\) is any convex function that has a known proximal operator.

See also

ADMM

ADMM

LinearizedADMM

Linearized ADMM

Notes

The ADMM algorithm with L2 misfit term can be expressed by the following recursion [1]:

\[\begin{split}\mathbf{x}^{k+1} = \argmin_{\mathbf{x}} \frac{1}{2}||\mathbf{Op}\mathbf{x} - \mathbf{b}||_2^2 + \frac{1}{2\tau} ||\mathbf{Ax} - \mathbf{z}^k + \mathbf{u}^k||_2^2\\ \mathbf{z}^{k+1} = \prox_{\tau g}(\mathbf{Ax}^{k+1} + \mathbf{u}^{k})\\ \mathbf{u}^{k+1} = \mathbf{u}^{k} + \mathbf{Ax}^{k+1} - \mathbf{z}^{k+1}\end{split}\]
[1]

S. Boyd, N. Parikh, E. Chu, B. Peleato, and J. Eckstein. 2011. Distributed optimization and statistical learning via the alternating direction method of multipliers. Foundations and Trends in Machine Learning, 3 (1), 1-122. https://doi.org/10.1561/2200000016.

Methods

__init__([callbacks])

callback(x, *args, **kwargs)

Callback routine

finalize([nbar, show])

Finalize solver

memory_usage()

Compute memory usage of the solver

run(x, z[, niter, show, itershow])

Run solver

setup(proxg, Op, b, A, x0, tau[, z0, ...])

Setup solver

solve(proxg, Op, b, A, x0, tau[, z0, ...])

Run entire solver

step(x, z[, show])

Run one step of solver