gtsam
Loading...
Searching...
No Matches
NonlinearConjugateGradientOptimizer.h File Reference

Simple non-linear optimizer that solves using non-preconditioned CG. More...

Go to the source code of this file.

Classes

class  gtsam::NonlinearConjugateGradientOptimizer
 An implementation of the nonlinear CG method using the template below. More...

Namespaces

namespace  gtsam
 Global functions in a separate testing namespace.

Enumerations

enum class  DirectionMethod { FletcherReeves , PolakRibiere , HestenesStiefel , DaiYuan }

Functions

template<typename Gradient>
double gtsam::FletcherReeves (const Gradient &currentGradient, const Gradient &prevGradient)
 Fletcher-Reeves formula for computing β, the direction of steepest descent.
template<typename Gradient>
double gtsam::PolakRibiere (const Gradient &currentGradient, const Gradient &prevGradient)
 Polak-Ribiere formula for computing β, the direction of steepest descent.
template<typename Gradient>
double gtsam::HestenesStiefel (const Gradient &currentGradient, const Gradient &prevGradient, const Gradient &direction)
 The Hestenes-Stiefel formula for computing β, the direction of steepest descent.
template<typename Gradient>
double gtsam::DaiYuan (const Gradient &currentGradient, const Gradient &prevGradient, const Gradient &direction)
 The Dai-Yuan formula for computing β, the direction of steepest descent.
template<class S, class V, class W>
double gtsam::lineSearch (const S &system, const V currentValues, const W &gradient)
 Implement the golden-section line search algorithm.
template<class S, class V>
std::tuple< V, int > gtsam::nonlinearConjugateGradient (const S &system, const V &initial, const NonlinearOptimizerParams &params, const bool singleIteration, const DirectionMethod &directionMethod=DirectionMethod::PolakRibiere, const bool gradientDescent=false)
 Implement the nonlinear conjugate gradient method using the Polak-Ribiere formula suggested in http://en.wikipedia.org/wiki/Nonlinear_conjugate_gradient_method.

Detailed Description

Simple non-linear optimizer that solves using non-preconditioned CG.

Author
Yong-Dian Jian
Date
June 11, 2012