copt.fmin_DavisYin¶
-
copt.
fmin_DavisYin
(fun, fun_deriv, g_prox, h_prox, y0, alpha=1.0, beta=1.0, tol=1e-06, max_iter=1000, g_prox_args=(), h_prox_args=(), verbose=0, callback=None, backtracking=True, step_size=None, max_iter_backtracking=100, backtracking_factor=0.4)[source]¶ Davis-Yin three operator splitting method.
This algorithm can solve problems of the form
minimize_x f(x) + alpha * g(x) + beta * h(x)where f is a smooth function and g is a (possibly non-smooth) function for which the proximal operator is known.
Parameters: - fun (callable) – f(x) returns the value of f at x.
- fun_deriv (callable or None) – f_prime(x) returns the gradient of f.
- g_prox (callable or None) – g_prox(x, alpha, *args) returns the proximal operator of g at xa with parameter alpha. Extra arguments can be passed by g_prox_args.
- y0 (array-like) – Initial guess
- backtracking (boolean) – Whether to perform backtracking (i.e. line-search) to estimate the step size.
- max_iter (int) – Maximum number of iterations.
- verbose (int) – Verbosity level, from 0 (no output) to 2 (output on each iteration)
- step_size (float) – Starting value for the line-search procedure.
- callback (callable) – callback function (optional).
Returns: res – The optimization result represented as a
scipy.optimize.OptimizeResult
object. Important attributes are:x
the solution array,success
a Boolean flag indicating if the optimizer exited successfully andmessage
which describes the cause of the termination. See scipy.optimize.OptimizeResult for a description of other attributes.Return type: OptimizeResult
References
Davis, Damek, and Wotao Yin. “A three-operator splitting scheme and its optimization applications.” arXiv preprint arXiv:1504.01032 (2015) https://arxiv.org/abs/1504.01032
Pedregosa, Fabian. “On the convergence rate of the three operator splitting scheme.” arXiv preprint arXiv:1610.07830 (2016) https://arxiv.org/abs/1610.07830