Previous topic

3.1.1.1. pyprox.douglas_rachford

Next topic

3.1.2.1. pyprox.forward_backward_dual

This Page

3.1.1.2. pyprox.forward_backward

pyprox.forward_backward(prox_f, grad_g, x0, L, maxiter=1000, method='fb', fbdamping=1.8, full_output=0, retall=0, callback=None)

Minimize the sum of two functions using the Forward-backward splitting. scheme.

This algorithm assumes that F, G is “proximable” and L has a L-Lipschitz gradient where the optimization objective reads:

F(x) + G(x)
Parameters :

prox_f : callable

should take two arguments : an ndarray and a float.

grad_g : callable

same as prox_f.

x0 : ndarray

initial guess for the solution.

L : float

Module of Lipschitz of nabla G.

maxiter : int, optional

maximum number of iterations.

method : string, optional,

can be ‘fb’, ‘fista’ or ‘nesterov’

fbdamping : float, optional

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

P. L. Combettes and V. R. Wajs, Signal recovery by proximal forward-backward splitting, Multiscale Model. Simul., 4 (2005), pp. 1168-1200