#include <alpaqa/inner/directions/panoc-direction-update.hpp>
template<Config Conf>
struct alpaqa::PANOCDirection< Conf >
This class outlines the interface for direction providers used by PANOC-like algorithms.
Definition at line 13 of file panoc-direction-update.hpp.
|
| void | initialize (const Problem &problem, crvec y, crvec Σ, real_t γ_0, crvec x_0, crvec x̂_0, crvec p_0, crvec grad_ψx_0)=delete |
| | Initialize the direction provider.
|
| |
| bool | has_initial_direction () const =delete |
| | Return whether a direction is available on the very first iteration, before the first call to update.
|
| |
| bool | update (real_t γₖ, real_t γₙₑₓₜ, crvec xₖ, crvec xₙₑₓₜ, crvec pₖ, crvec pₙₑₓₜ, crvec grad_ψxₖ, crvec grad_ψxₙₑₓₜ)=delete |
| | Update the direction provider when accepting the next iterate.
|
| |
| bool | apply (real_t γₖ, crvec xₖ, crvec x̂ₖ, crvec pₖ, crvec grad_ψxₖ, rvec qₖ) const =delete |
| | Apply the direction estimation in the current point.
|
| |
| void | changed_γ (real_t γₖ, real_t old_γₖ)=delete |
| | Called when the PANOC step size changes.
|
| |
| void | reset ()=delete |
| | Called when using the direction failed.
|
| |
| std::string | get_name () const =delete |
| | Get a human-readable name for this direction provider.
|
| |
◆ Problem
◆ initialize()
Initialize the direction provider.
- Parameters
-
| [in] | problem | Problem description. |
| [in] | y | Lagrange multipliers. |
| [in] | Σ | Penalty factors. |
| [in] | γ_0 | Initial step size. |
| [in] | x_0 | Initial iterate. |
| [in] | x̂_0 | Result of proximal gradient step in x_0. |
| [in] | p_0 | Proximal gradient step in x_0. |
| [in] | grad_ψx_0 | Gradient of the objective in x_0. |
The references problem, y and Σ are guaranteed to remain valid for subsequent calls to update, apply, changed_γ and reset.
◆ has_initial_direction()
| bool has_initial_direction |
( |
| ) |
const |
|
delete |
Return whether a direction is available on the very first iteration, before the first call to update.
◆ update()
Update the direction provider when accepting the next iterate.
- Parameters
-
| [in] | γₖ | Current step size. |
| [in] | γₙₑₓₜ | Step size for the next iterate. |
| [in] | xₖ | Current iterate. |
| [in] | xₙₑₓₜ | Next iterate. |
| [in] | pₖ | Proximal gradient step in the current iterate. |
| [in] | pₙₑₓₜ | Proximal gradient step in the next iterate. |
| [in] | grad_ψxₖ | Gradient of the objective in the current iterate. |
| [in] | grad_ψxₙₑₓₜ | Gradient of the objective in the next iterate. |
◆ apply()
Apply the direction estimation in the current point.
- Parameters
-
| [in] | γₖ | Current step size. |
| [in] | xₖ | Current iterate. |
| [in] | x̂ₖ | Result of proximal gradient step in xₖ. |
| [in] | pₖ | Proximal gradient step in xₖ. |
| [in] | grad_ψxₖ | Gradient of the objective at xₖ. |
| [out] | qₖ | Resulting step. |
◆ changed_γ()
Called when the PANOC step size changes.
◆ reset()
Called when using the direction failed.
A possible behavior could be to flush the buffers, hopefully yielding a better direction on the next iteration.
◆ get_name()
| std::string get_name |
( |
| ) |
const |
|
delete |
Get a human-readable name for this direction provider.
The documentation for this struct was generated from the following file: