gtsam  3.2.1
gtsam
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GaussNewtonOptimizer.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2 
3  * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4  * Atlanta, Georgia 30332-0415
5  * All Rights Reserved
6  * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7 
8  * See LICENSE for the license information
9 
10  * -------------------------------------------------------------------------- */
11 
19 #pragma once
20 
22 
23 namespace gtsam {
24 
25 class GaussNewtonOptimizer;
26 
30 class GTSAM_EXPORT GaussNewtonParams : public NonlinearOptimizerParams {
31 };
32 
33 class GTSAM_EXPORT GaussNewtonState : public NonlinearOptimizerState {
34 protected:
35  GaussNewtonState(const NonlinearFactorGraph& graph, const Values& values, unsigned int iterations = 0) :
36  NonlinearOptimizerState(graph, values, iterations) {}
37 
38  friend class GaussNewtonOptimizer;
39 };
40 
44 class GTSAM_EXPORT GaussNewtonOptimizer : public NonlinearOptimizer {
45 
46 protected:
47  GaussNewtonParams params_;
48  GaussNewtonState state_;
49 
50 public:
53 
62  GaussNewtonOptimizer(const NonlinearFactorGraph& graph, const Values& initialValues,
63  const GaussNewtonParams& params = GaussNewtonParams()) :
64  NonlinearOptimizer(graph), params_(ensureHasOrdering(params, graph)), state_(graph, initialValues) {}
65 
73  GaussNewtonOptimizer(const NonlinearFactorGraph& graph, const Values& initialValues, const Ordering& ordering) :
74  NonlinearOptimizer(graph), state_(graph, initialValues) {
75  params_.ordering = ordering; }
76 
78 
81 
83  virtual ~GaussNewtonOptimizer() {}
84 
89  virtual void iterate();
90 
92  const GaussNewtonParams& params() const { return params_; }
93 
95  GaussNewtonParams& params() { return params_; }
96 
98  const GaussNewtonState& state() const { return state_; }
99 
101  GaussNewtonState& state() { return state_; }
102 
104 
105 protected:
107  virtual const NonlinearOptimizerParams& _params() const { return params_; }
108 
110  virtual const NonlinearOptimizerState& _state() const { return state_; }
111 
113  GaussNewtonParams ensureHasOrdering(GaussNewtonParams params, const NonlinearFactorGraph& graph) const;
114 
115 };
116 
117 }
virtual const NonlinearOptimizerParams & _params() const
Access the parameters (base class version)
Definition: GaussNewtonOptimizer.h:107
virtual ~GaussNewtonOptimizer()
Virtual destructor.
Definition: GaussNewtonOptimizer.h:83
const GaussNewtonState & state() const
Read-only access the last state.
Definition: GaussNewtonOptimizer.h:98
GaussNewtonOptimizer(const NonlinearFactorGraph &graph, const Values &initialValues, const Ordering &ordering)
Standard constructor, requires a nonlinear factor graph, initial variable assignments, and optimization parameters.
Definition: GaussNewtonOptimizer.h:73
GaussNewtonParams & params()
Read/write access the parameters.
Definition: GaussNewtonOptimizer.h:95
The common parameters for Nonlinear optimizers.
Definition: NonlinearOptimizerParams.h:33
const GaussNewtonParams & params() const
Read-only access the parameters.
Definition: GaussNewtonOptimizer.h:92
A non-templated config holding any types of Manifold-group elements.
Definition: Values.h:75
Definition: GaussNewtonOptimizer.h:33
This class performs Gauss-Newton nonlinear optimization.
Definition: GaussNewtonOptimizer.h:44
virtual const NonlinearOptimizerState & _state() const
Access the state (base class version)
Definition: GaussNewtonOptimizer.h:110
This is the abstract interface for classes that can optimize for the maximum-likelihood estimate of a...
Definition: NonlinearOptimizer.h:134
GaussNewtonOptimizer(const NonlinearFactorGraph &graph, const Values &initialValues, const GaussNewtonParams &params=GaussNewtonParams())
Standard constructor, requires a nonlinear factor graph, initial variable assignments, and optimization parameters.
Definition: GaussNewtonOptimizer.h:62
A non-linear factor graph is a graph of non-Gaussian, i.e.
Definition: NonlinearFactorGraph.h:69
GaussNewtonState & state()
Read/write access the last state.
Definition: GaussNewtonOptimizer.h:101
Parameters for Gauss-Newton optimization, inherits from NonlinearOptimizationParams.
Definition: GaussNewtonOptimizer.h:30
Base class and parameters for nonlinear optimization algorithms.
Definition: Ordering.h:30
Base class for a nonlinear optimization state, including the current estimate of the variable values...
Definition: NonlinearOptimizer.h:35