g2o
Loading...
Searching...
No Matches
g2o::OptimizationAlgorithmDogleg Class Reference

Implementation of Powell's Dogleg Algorithm. More...

#include <optimization_algorithm_dogleg.h>

Inheritance diagram for g2o::OptimizationAlgorithmDogleg:
Collaboration diagram for g2o::OptimizationAlgorithmDogleg:

Public Types

enum  { STEP_UNDEFINED , STEP_SD , STEP_GN , STEP_DL }
 type of the step to take More...

Public Member Functions

 OptimizationAlgorithmDogleg (std::unique_ptr< BlockSolverBase > solver)
virtual ~OptimizationAlgorithmDogleg ()
virtual SolverResult solve (int iteration, bool online=false)
virtual void printVerbose (std::ostream &os) const
int lastStep () const
 return the type of the last step taken by the algorithm
double trustRegion () const
 return the diameter of the trust region
Public Member Functions inherited from g2o::OptimizationAlgorithmWithHessian
 OptimizationAlgorithmWithHessian (Solver &solver)
virtual ~OptimizationAlgorithmWithHessian ()
virtual bool init (bool online=false)
virtual bool computeMarginals (SparseBlockMatrix< MatrixX > &spinv, const std::vector< std::pair< int, int > > &blockIndices)
virtual bool buildLinearStructure ()
virtual void updateLinearSystem ()
virtual bool updateStructure (const std::vector< HyperGraph::Vertex * > &vset, const HyperGraph::EdgeSet &edges)
Solver & solver ()
 return the underlying solver used to solve the linear system
virtual void setWriteDebug (bool writeDebug)
virtual bool writeDebug () const
Public Member Functions inherited from g2o::OptimizationAlgorithm
 OptimizationAlgorithm ()
virtual ~OptimizationAlgorithm ()
const SparseOptimizer * optimizer () const
 return the optimizer operating on
SparseOptimizer * optimizer ()
void setOptimizer (SparseOptimizer *optimizer)
const PropertyMap & properties () const
 return the properties of the solver
bool updatePropertiesFromString (const std::string &propString)
void printProperties (std::ostream &os) const

Static Public Member Functions

static const char * stepType2Str (int stepType)
 convert the type into an integer

Protected Attributes

Property< int > * _maxTrialsAfterFailure
Property< double > * _userDeltaInit
Property< double > * _initialLambda
Property< double > * _lamdbaFactor
VectorX _hsd
 steepest decent step
VectorX _hdl
 final dogleg step
VectorX _auxVector
double _currentLambda
 the damping factor to force positive definite matrix
double _delta
 trust region
int _lastStep
 type of the step taken by the algorithm
bool _wasPDInAllIterations
int _lastNumTries
Protected Attributes inherited from g2o::OptimizationAlgorithmWithHessian
Solver & _solver
Property< bool > * _writeDebug
Protected Attributes inherited from g2o::OptimizationAlgorithm
SparseOptimizer * _optimizer
 the optimizer the solver is working on
PropertyMap _properties

Private Attributes

std::unique_ptr< BlockSolverBase > m_solver

Detailed Description

Implementation of Powell's Dogleg Algorithm.

Definition at line 42 of file optimization_algorithm_dogleg.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

type of the step to take

Enumerator
STEP_UNDEFINED 
STEP_SD 
STEP_GN 
STEP_DL 

Definition at line 46 of file optimization_algorithm_dogleg.h.

Constructor & Destructor Documentation

◆ OptimizationAlgorithmDogleg()

g2o::OptimizationAlgorithmDogleg::OptimizationAlgorithmDogleg ( std::unique_ptr< BlockSolverBase > solver)
explicit

◆ ~OptimizationAlgorithmDogleg()

g2o::OptimizationAlgorithmDogleg::~OptimizationAlgorithmDogleg ( )
virtual

Definition at line 61 of file optimization_algorithm_dogleg.cpp.

Member Function Documentation

◆ lastStep()

int g2o::OptimizationAlgorithmDogleg::lastStep ( ) const
inline

return the type of the last step taken by the algorithm

Definition at line 61 of file optimization_algorithm_dogleg.h.

References _lastStep.

◆ printVerbose()

void g2o::OptimizationAlgorithmDogleg::printVerbose ( std::ostream & os) const
virtual

called by the optimizer if verbose. re-implement, if you want to print something

Reimplemented from g2o::OptimizationAlgorithm.

Definition at line 219 of file optimization_algorithm_dogleg.cpp.

References _currentLambda, _delta, _lastNumTries, _lastStep, _wasPDInAllIterations, and stepType2Str().

◆ solve()

OptimizationAlgorithm::SolverResult g2o::OptimizationAlgorithmDogleg::solve ( int iteration,
bool online = false )
virtual

◆ stepType2Str()

const char * g2o::OptimizationAlgorithmDogleg::stepType2Str ( int stepType)
static

convert the type into an integer

Definition at line 225 of file optimization_algorithm_dogleg.cpp.

References STEP_DL, STEP_GN, and STEP_SD.

Referenced by printVerbose().

◆ trustRegion()

double g2o::OptimizationAlgorithmDogleg::trustRegion ( ) const
inline

return the diameter of the trust region

Definition at line 63 of file optimization_algorithm_dogleg.h.

References _delta.

Member Data Documentation

◆ _auxVector

VectorX g2o::OptimizationAlgorithmDogleg::_auxVector
protected

auxiliary vector used to perform multiplications or other stuff

Definition at line 78 of file optimization_algorithm_dogleg.h.

Referenced by solve().

◆ _currentLambda

double g2o::OptimizationAlgorithmDogleg::_currentLambda
protected

the damping factor to force positive definite matrix

Definition at line 82 of file optimization_algorithm_dogleg.h.

Referenced by OptimizationAlgorithmDogleg(), printVerbose(), and solve().

◆ _delta

double g2o::OptimizationAlgorithmDogleg::_delta
protected

trust region

Definition at line 83 of file optimization_algorithm_dogleg.h.

Referenced by OptimizationAlgorithmDogleg(), printVerbose(), solve(), and trustRegion().

◆ _hdl

VectorX g2o::OptimizationAlgorithmDogleg::_hdl
protected

final dogleg step

Definition at line 77 of file optimization_algorithm_dogleg.h.

Referenced by solve().

◆ _hsd

VectorX g2o::OptimizationAlgorithmDogleg::_hsd
protected

steepest decent step

Definition at line 76 of file optimization_algorithm_dogleg.h.

Referenced by solve().

◆ _initialLambda

Property<double>* g2o::OptimizationAlgorithmDogleg::_initialLambda
protected

Definition at line 73 of file optimization_algorithm_dogleg.h.

Referenced by OptimizationAlgorithmDogleg(), and solve().

◆ _lamdbaFactor

Property<double>* g2o::OptimizationAlgorithmDogleg::_lamdbaFactor
protected

Definition at line 74 of file optimization_algorithm_dogleg.h.

Referenced by OptimizationAlgorithmDogleg(), and solve().

◆ _lastNumTries

int g2o::OptimizationAlgorithmDogleg::_lastNumTries
protected

◆ _lastStep

int g2o::OptimizationAlgorithmDogleg::_lastStep
protected

type of the step taken by the algorithm

Definition at line 84 of file optimization_algorithm_dogleg.h.

Referenced by lastStep(), OptimizationAlgorithmDogleg(), printVerbose(), and solve().

◆ _maxTrialsAfterFailure

Property<int>* g2o::OptimizationAlgorithmDogleg::_maxTrialsAfterFailure
protected

Definition at line 70 of file optimization_algorithm_dogleg.h.

Referenced by OptimizationAlgorithmDogleg(), and solve().

◆ _userDeltaInit

Property<double>* g2o::OptimizationAlgorithmDogleg::_userDeltaInit
protected

Definition at line 71 of file optimization_algorithm_dogleg.h.

Referenced by OptimizationAlgorithmDogleg(), and solve().

◆ _wasPDInAllIterations

bool g2o::OptimizationAlgorithmDogleg::_wasPDInAllIterations
protected

the matrix we solve was positive definite in all iterations -> if not apply damping

Definition at line 85 of file optimization_algorithm_dogleg.h.

Referenced by OptimizationAlgorithmDogleg(), printVerbose(), and solve().

◆ m_solver

std::unique_ptr<BlockSolverBase> g2o::OptimizationAlgorithmDogleg::m_solver
private

Definition at line 90 of file optimization_algorithm_dogleg.h.

Referenced by OptimizationAlgorithmDogleg().


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