Classes | Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
BFGS< FunctorType > Class Template Reference

#include <bfgs.h>

List of all members.

Classes

struct  Parameters

Public Types

typedef FunctorType::VectorType FVectorType
typedef Eigen::DenseIndex Index
typedef FunctorType::Scalar Scalar

Public Member Functions

 BFGS (FunctorType &_functor)
BFGSSpace::Status minimize (FVectorType &x)
BFGSSpace::Status minimizeInit (FVectorType &x)
BFGSSpace::Status minimizeOneStep (FVectorType &x)
void resetParameters (void)
BFGSSpace::Status testGradient (Scalar epsilon)

Public Attributes

Scalar f
FVectorType gradient
Parameters parameters

Private Member Functions

Scalar applyDF (Scalar alpha)
Scalar applyF (Scalar alpha)
void applyFDF (Scalar alpha, Scalar &f, Scalar &df)
void changeDirection ()
void checkExtremum (const Eigen::Matrix< Scalar, 4, 1 > &coefficients, Scalar x, Scalar &xmin, Scalar &fmin)
Scalar interpolate (Scalar a, Scalar fa, Scalar fpa, Scalar b, Scalar fb, Scalar fpb, Scalar xmin, Scalar xmax, int order)
BFGSSpace::Status lineSearch (Scalar rho, Scalar sigma, Scalar tau1, Scalar tau2, Scalar tau3, int order, Scalar alpha1, Scalar &alpha_new)
void moveTo (Scalar alpha)
BFGSoperator= (const BFGS &)
Scalar slope ()
void updatePosition (Scalar alpha, FVectorType &x, Scalar &f, FVectorType &g)

Private Attributes

Scalar delta_f
Scalar df_alpha
Scalar df_cache_key
FVectorType dg0
FVectorType dx
FVectorType dx0
Scalar f_alpha
Scalar f_cache_key
Scalar fp0
FunctorType & functor
FVectorType g0
Scalar g0norm
FVectorType g_alpha
Scalar g_cache_key
Index iter
FVectorType p
Scalar pnorm
FVectorType x0
FVectorType x_alpha
Scalar x_cache_key

Detailed Description

template<typename FunctorType>
class BFGS< FunctorType >

BFGS stands for Broyden–Fletcher–Goldfarb–Shanno (BFGS) method for solving unconstrained nonlinear optimization problems. For further details please visit: http://en.wikipedia.org/wiki/BFGS_method The method provided here is almost similar to the one provided by GSL. It reproduces Fletcher's original algorithm in Practical Methods of Optimization algorithms : 2.6.2 and 2.6.4 and uses the same politics in GSL with cubic interpolation whenever it is possible else falls to quadratic interpolation for alpha parameter.

Definition at line 114 of file bfgs.h.


Member Typedef Documentation

template<typename FunctorType>
typedef FunctorType::VectorType BFGS< FunctorType >::FVectorType

Definition at line 118 of file bfgs.h.

template<typename FunctorType>
typedef Eigen::DenseIndex BFGS< FunctorType >::Index

Definition at line 123 of file bfgs.h.

template<typename FunctorType>
typedef FunctorType::Scalar BFGS< FunctorType >::Scalar

Definition at line 117 of file bfgs.h.


Constructor & Destructor Documentation

template<typename FunctorType>
BFGS< FunctorType >::BFGS ( FunctorType &  _functor) [inline]

Definition at line 120 of file bfgs.h.


Member Function Documentation

template<typename FunctorType >
BFGS< FunctorType >::Scalar BFGS< FunctorType >::applyDF ( Scalar  alpha) [private]

Definition at line 227 of file bfgs.h.

template<typename FunctorType >
BFGS< FunctorType >::Scalar BFGS< FunctorType >::applyF ( Scalar  alpha) [private]

Definition at line 217 of file bfgs.h.

template<typename FunctorType >
void BFGS< FunctorType >::applyFDF ( Scalar  alpha,
Scalar f,
Scalar df 
) [private]

Definition at line 242 of file bfgs.h.

template<typename FunctorType >
void BFGS< FunctorType >::changeDirection ( ) [private]

Definition at line 282 of file bfgs.h.

template<typename FunctorType >
void BFGS< FunctorType >::checkExtremum ( const Eigen::Matrix< Scalar, 4, 1 > &  coefficients,
Scalar  x,
Scalar xmin,
Scalar fmin 
) [private]

Definition at line 197 of file bfgs.h.

template<typename FunctorType >
BFGS< FunctorType >::Scalar BFGS< FunctorType >::interpolate ( Scalar  a,
Scalar  fa,
Scalar  fpa,
Scalar  b,
Scalar  fb,
Scalar  fpb,
Scalar  xmin,
Scalar  xmax,
int  order 
) [private]

Definition at line 426 of file bfgs.h.

template<typename FunctorType >
BFGSSpace::Status BFGS< FunctorType >::lineSearch ( Scalar  rho,
Scalar  sigma,
Scalar  tau1,
Scalar  tau2,
Scalar  tau3,
int  order,
Scalar  alpha1,
Scalar alpha_new 
) [private]

Definition at line 508 of file bfgs.h.

template<typename FunctorType >
BFGSSpace::Status BFGS< FunctorType >::minimize ( FVectorType x)

Definition at line 294 of file bfgs.h.

template<typename FunctorType >
BFGSSpace::Status BFGS< FunctorType >::minimizeInit ( FVectorType x)

Definition at line 305 of file bfgs.h.

template<typename FunctorType >
BFGSSpace::Status BFGS< FunctorType >::minimizeOneStep ( FVectorType x)

Definition at line 332 of file bfgs.h.

template<typename FunctorType >
void BFGS< FunctorType >::moveTo ( Scalar  alpha) [private]

Definition at line 204 of file bfgs.h.

template<typename FunctorType>
BFGS& BFGS< FunctorType >::operator= ( const BFGS< FunctorType > &  ) [private]
template<typename FunctorType>
void BFGS< FunctorType >::resetParameters ( void  ) [inline]

Definition at line 153 of file bfgs.h.

template<typename FunctorType >
BFGS< FunctorType >::Scalar BFGS< FunctorType >::slope ( ) [private]

Definition at line 211 of file bfgs.h.

template<typename FunctorType >
BFGSSpace::Status BFGS< FunctorType >::testGradient ( Scalar  epsilon)

Definition at line 412 of file bfgs.h.

template<typename FunctorType >
void BFGS< FunctorType >::updatePosition ( Scalar  alpha,
FVectorType x,
Scalar f,
FVectorType g 
) [private]

Definition at line 269 of file bfgs.h.


Member Data Documentation

template<typename FunctorType>
Scalar BFGS< FunctorType >::delta_f [private]

Definition at line 176 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::df_alpha [private]

Definition at line 181 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::df_cache_key [private]

Definition at line 187 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::dg0 [private]

Definition at line 177 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::dx [private]

Definition at line 177 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::dx0 [private]

Definition at line 177 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::f

Definition at line 156 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::f_alpha [private]

Definition at line 180 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::f_cache_key [private]

Definition at line 186 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::fp0 [private]

Definition at line 176 of file bfgs.h.

template<typename FunctorType>
FunctorType& BFGS< FunctorType >::functor [private]

Definition at line 192 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::g0 [private]

Definition at line 177 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::g0norm [private]

Definition at line 178 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::g_alpha [private]

Definition at line 183 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::g_cache_key [private]

Definition at line 189 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::gradient

Definition at line 157 of file bfgs.h.

template<typename FunctorType>
Index BFGS< FunctorType >::iter [private]

Definition at line 191 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::p [private]

Definition at line 177 of file bfgs.h.

template<typename FunctorType>
Parameters BFGS< FunctorType >::parameters

Definition at line 155 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::pnorm [private]

Definition at line 178 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::x0 [private]

Definition at line 177 of file bfgs.h.

template<typename FunctorType>
FVectorType BFGS< FunctorType >::x_alpha [private]

Definition at line 182 of file bfgs.h.

template<typename FunctorType>
Scalar BFGS< FunctorType >::x_cache_key [private]

Definition at line 188 of file bfgs.h.


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


pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:38:49