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

#include <alpaqa/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

bool hessian_vec = true
 Set this option to true to include the Hessian-vector product \( \nabla^2_{x_\mathcal{J}x_\mathcal{K}}\psi(x) q_\mathcal{K} \) from equation 12b in [2], false to leave out that term.
 
bool hessian_vec_finite_differences = true
 If hessian_vec is true, set this option to true to approximate that term using finite differences instead of using AD.
 
bool full_augmented_hessian = true
 If both hessian_vec and hessian_vec_finite_differences are 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 27 of file structured-lbfgs.hpp.

Member Data Documentation

◆ hessian_vec

bool hessian_vec = true

Set this option to true to include the Hessian-vector product \( \nabla^2_{x_\mathcal{J}x_\mathcal{K}}\psi(x) q_\mathcal{K} \) from equation 12b in [2], false to leave out that term.

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

◆ hessian_vec_finite_differences

bool hessian_vec_finite_differences = true

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

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

◆ full_augmented_hessian

bool full_augmented_hessian = true

If both hessian_vec and hessian_vec_finite_differences are 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 26 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: