alpaqa 1.0.0a10
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 14 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 [2], 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

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 29 of file structured-lbfgs.hpp.

Member Data Documentation

◆ hessian_vec_factor

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 [2], scaled by this parameter.

Set it to zero to leave out that term.

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

◆ hessian_vec_finite_differences

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 23 of file structured-lbfgs.hpp.

◆ full_augmented_hessian

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