Previous topic

3.1.2.1. pyprox.forward_backward_dual

This Page

3.1.3.1. pyprox.admm

pyprox.admm(prox_fs, prox_g, K, x0, maxiter=100, theta=1, sigma=None, tau=None, full_output=0, retall=0, callback=None)

Minimize an optimization problem using the Preconditioned Alternating direction method of multipliers

This algorithm assumes that F, G are both “proximable” where the optimization objective reads:

F(K(x)) + G(x)

where K is a linear operator.

Parameters :

prox_fs : callable

should take two arguments : an ndarray and a float.

prox_g : callable

same as prox_f.

K : callable or ndarray

a linear operator

KS : callable or ndarray

the dual linear operator

x0 : ndarray

initial guess for the solution.

maxiter : int, optional

maximum number of iterations.

theta : float, optional

sigma : float, optional

parameters of the method. They should satisfy sigma * tay * norm(K)^2 < 1

full_output : bool, optional

non-zero to return all optional outputs.

retall : bool, optional

Return a list of results at each iteration if non-zero.

callback : callable, optional

An optional user-supplied function to call after each iteration. Called as callback(xk), where xk is the current parameter vector.

Returns :

xrec: ndarray :

fx: list :

References

A. Chambolle and T. Pock, A First-Order Primal-Dual Algorithm for Convex Problems with Applications to Imaging, JOURNAL OF MATHEMATICAL IMAGING AND VISION Volume 40, Number 1 (2011)