#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: