alpaqa 1.0.0a19
Nonconvex constrained optimization
Loading...
Searching...
No Matches
Public Types | Public Attributes | List of all members
StructuredLBFGSDirectionParams< Conf > Struct Template Reference

#include <alpaqa/inner/directions/panoc/structured-lbfgs.hpp>

Detailed Description

template<Config Conf>
struct alpaqa::StructuredLBFGSDirectionParams< Conf >

Parameters for the StructuredLBFGSDirection class.

Definition at line 15 of file structured-lbfgs.hpp.

+ Collaboration diagram for StructuredLBFGSDirectionParams< Conf >:

Public Types

enum  FailurePolicy { FallbackToProjectedGradient , UseScaledLBFGSInput }
 

Public Attributes

real_t hessian_vec_factor = 0
 Set this option to a nonzero value to include the Hessian-vector product \( \nabla^2_{x_\mathcal{J}x_\mathcal{K}}\psi(x) q_\mathcal{K} \) from equation 12b in [4], scaled by this parameter.
 
bool hessian_vec_finite_differences = true
 If hessian_vec_factor is nonzero, set this option to true to approximate that term using finite differences instead of using AD.
 
bool full_augmented_hessian = true
 If hessian_vec_factor is nonzero and hessian_vec_finite_differences is true, set this option to true to compute the exact Hessian of the augmented Lagrangian, false to approximate it using the Hessian of the Lagrangian.
 
enum alpaqa::StructuredLBFGSDirectionParams::FailurePolicy failure_policy = FallbackToProjectedGradient
 What to do when L-BFGS failed (e.g.
 

Member Enumeration Documentation

◆ FailurePolicy

template<Config Conf>
enum FailurePolicy
Enumerator
FallbackToProjectedGradient 

If L-BFGS fails, propagate the failure and tell PANOC that no accelerated step is available, causing it to accept the projected gradient step instead.

UseScaledLBFGSInput 

If L-BFGS fails, return \( q_\mathcal{J} = -\gamma\nabla_{x_\mathcal{J}}\psi(x^k) -\gamma\nabla^2_{x_\mathcal{J}x_\mathcal{K}}\psi(x) q_\mathcal{K} \) as the accelerated step (effectively approximating \( \nabla_{x_\mathcal{J}x_\mathcal{J}} \approx \gamma I \)).

Definition at line 32 of file structured-lbfgs.hpp.

Member Data Documentation

◆ hessian_vec_factor

template<Config Conf>
real_t hessian_vec_factor = 0

Set this option to a nonzero value to include the Hessian-vector product \( \nabla^2_{x_\mathcal{J}x_\mathcal{K}}\psi(x) q_\mathcal{K} \) from equation 12b in [4], scaled by this parameter.

Set it to zero to leave out that term (this usually only slightly increases the number of iterations, and eliminates one Hessian-vector product per iteration, improving the overall runtime).

Definition at line 23 of file structured-lbfgs.hpp.

◆ hessian_vec_finite_differences

template<Config Conf>
bool hessian_vec_finite_differences = true

If hessian_vec_factor is nonzero, set this option to true to approximate that term using finite differences instead of using AD.

Definition at line 26 of file structured-lbfgs.hpp.

◆ full_augmented_hessian

template<Config Conf>
bool full_augmented_hessian = true

If hessian_vec_factor is nonzero and hessian_vec_finite_differences is true, set this option to true to compute the exact Hessian of the augmented Lagrangian, false to approximate it using the Hessian of the Lagrangian.

Definition at line 31 of file structured-lbfgs.hpp.

◆ failure_policy

What to do when L-BFGS failed (e.g.

if there were no pairs (s, y) with positive curvature).


The documentation for this struct was generated from the following file: