pyproximal.optimization.cls_primaldual.AdaptivePrimalDual¶
- class pyproximal.optimization.cls_primaldual.AdaptivePrimalDual(callbacks: Callbacks = None)[source]¶
Adaptive Primal-dual algorithm
Solves the minimization problem in
pyproximal.optimization.primaldual.PrimalDualusing an adaptive version of the first-order primal-dual algorithm of [1]. The main advantage of this method is that step sizes \(\tau\) and \(\mu\) are changing through iterations, improving the overall speed of convergence of the algorithm.Notes
The Adative Primal-dual algorithm shares the the same iterations of the original
pyproximal.optimization.cls_primaldual.PrimalDualsolver. The main difference lies in the fact that the step sizestauandmuare adaptively changed at each iteration leading to faster converge.Changes are applied by tracking the norm of the primal and dual residuals. When their mutual ratio increases beyond a certain treshold
deltathe step lenghts are updated to balance the minimization and maximization part of the overall optimization process.[1]T., Goldstein, M., Li, X., Yuan, E., Esser, R., Baraniuk, “Adaptive Primal-Dual Hybrid Gradient Methods for Saddle-Point Problems”, ArXiv, 2013.
Methods
__init__([callbacks])callback(x, *args, **kwargs)Callback routine
finalize([nbar, show])Finalize solver
memory_usage()Compute memory usage of the solver
run(x, y[, niter, show, itershow])Run solver
setup(proxf, proxg, A, x0, tau, mu[, alpha, ...])Setup solver
solve(proxf, proxg, A, x0, tau, mu[, alpha, ...])Run entire solver
step(x, y[, show])Run one step of solver