pyproximal.optimization.cls_primal.LinearizedADMM¶
- class pyproximal.optimization.cls_primal.LinearizedADMM(callbacks: Callbacks = None)[source]¶
Linearized Alternating Direction Method of Multipliers
Solves the following minimization problem using Linearized Alternating Direction Method of Multipliers:
\[\mathbf{x} = \argmin_\mathbf{x} f(\mathbf{x}) + g(\mathbf{A}\mathbf{x})\]where \(f(\mathbf{x})\) and \(g(\mathbf{x})\) are any convex function that has a known proximal operator and \(\mathbf{A}\) is a linear operator.
Notes
The Linearized-ADMM algorithm can be expressed by the following recursion [1]:
\[\begin{split}\mathbf{x}^{k+1} = \prox_{\mu f}(\mathbf{x}^{k} - \frac{\mu}{\tau} \mathbf{A}^H(\mathbf{A} \mathbf{x}^k - \mathbf{z}^k + \mathbf{u}^k))\\ \mathbf{z}^{k+1} = \prox_{\tau g}(\mathbf{A} \mathbf{x}^{k+1} + \mathbf{u}^k)\\ \mathbf{u}^{k+1} = \mathbf{u}^{k} + \mathbf{A}\mathbf{x}^{k+1} - \mathbf{z}^{k+1}\end{split}\][1]N., Parikh, “Proximal Algorithms”, Foundations and Trends in Optimization. 2013.
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(proxf, proxg, A, x0, tau, mu[, z0, ...])Setup solver
solve(proxf, proxg, A, x0, tau, mu[, z0, ...])Run entire solver
step(x, z[, show])Run one step of solver