douglas_rachford_pd¶
- odl.solvers.nonsmooth.douglas_rachford.douglas_rachford_pd(x, f, g, L, niter, tau=None, sigma=None, callback=None, **kwargs)[source]¶
Douglas-Rachford primal-dual splitting algorithm.
Minimizes the sum of several convex functions composed with linear operators:
min_x f(x) + sum_i g_i(L_i x)
where
f
,g_i
are convex functions,L_i
are linearOperator
's.Can also be used to solve the more general problem:
min_x f(x) + sum_i (g_i @ l_i)(L_i x)
where
l_i
are convex functions and@
is the infimal convolution:(g @ l)(x) = inf_y g(y) + l(x - y)
For references on the algorithm, see algorithm 3.1 in [BH2013].
- Parameters:
- x
LinearSpaceElement
Initial point, updated in-place.
- f
Functional
proximal factory
for the functionf
.- gsequence of
Functional
's Sequence of of the functions
g_i
. Needs to haveg[i].convex_conj.proximal
.- Lsequence of
Operator
's Sequence of
Operator
's with as many elements asg
.- niterint
Number of iterations.
- taufloat, optional
Step size parameter for
f
. Default: Sufficient for convergence, seedouglas_rachford_pd_stepsize
.- sigmasequence of floats, optional
Step size parameters for the
g_i
's. Default: Sufficient for convergence, seedouglas_rachford_pd_stepsize
.- callbackcallable, optional
Function called with the current iterate after each iteration.
- x
- Other Parameters:
- lsequence of
Functional
's, optional Sequence of of the functions
l_i
. Needs to havel[i].convex_conj.proximal
. If omitted, the simpler problem withoutl_i
will be considered.- lamfloat or callable, optional
Overrelaxation step size. If callable, it should take an index (starting at zero) and return the corresponding step size.
- lsequence of
See also
odl.solvers.nonsmooth.primal_dual_hybrid_gradient.pdhg
Solver for similar problems.
odl.solvers.nonsmooth.forward_backward.forward_backward_pd
Solver for similar problems which can additionaly handle a differentiable term.
Notes
The mathematical problem to solve is
where , , are proper, convex and lower semicontinuous and are linear operators. The infimal convolution is defined by
The simplified problem,
can be obtained by setting
To guarantee convergence, the parameters , and need to satisfy
The parameter needs to satisfy and if it is given as a function it needs to satisfy
References
[BH2013] Bot, R I, and Hendrich, C. A Douglas-Rachford type primal-dual method for solving inclusions with mixtures of composite and parallel-sum type monotone operators. SIAM Journal on Optimization, 23.4 (2013), pp 2541--2565.