PPXA - Parallel Proximal algorithm

Usage

sol = ppxa(x_0, F, param);
sol = ppxa(x_0, F);
[sol, infos] = ppxa(...);

Input parameters

x_0 Starting point of the algorithm
F Array of function to minimize
param Optional parameter

Output parameters

sol Solution
info Structure summarizing informations at convergence

Description

ppxa, derived from the Douglas-Rachford algorithm, solves

\begin{equation*} sol = \min_x \sum_i W_i f_i(x) \end{equation*}

for x in \(R^N\), where x is the variable and x_0 is the starting point.

F is a cellarray of structures representing functions. All of them should contains at least two fields. F{ii}.eval to evaluate the function and F{ii}.prox to compute the proximal operator of the function.

param a Matlab structure containing solver paremeters. See the function solvep for more information. Additionally it contains those aditional fields:

  • param.W : the weight (all equal by default)
  • param.lambda: is the weight of the update term. It is kind of a timestep for the proximal operators. (Warning it should not be confused with gamma, the time step for gradient descent part). By default it is set to 0.99. Do not change this parameter unless you know what you do.

References:

P. Combettes and J. Pesquet. Proximal splitting methods in signal processing. Fixed-Point Algorithms for Inverse Problems in Science and Engineering, pages 185--212, 2011.