Class sym::GncOptimizer#

template<typename BaseOptimizerType>
class GncOptimizer : public BaseOptimizerType#

Subclass of Optimizer for using Graduated Non-Convexity (GNC)

Assumes the convexity of the cost function is controlled by a hyperparameter mu. When mu == 0 the cost function should be convex and as mu goes to 1 the cost function should smoothly transition to a robust cost.

Public Types

using BaseOptimizer = BaseOptimizerType#
using Scalar = typename BaseOptimizer::Scalar#

Public Functions

template<typename ...OptimizerArgs>
inline GncOptimizer(const optimizer_params_t &optimizer_params, const optimizer_gnc_params_t &gnc_params, const Key &gnc_mu_key, OptimizerArgs&&... args)#

Constructor that copies in factors and keys

virtual ~GncOptimizer() = default#
inline void Optimize(Values<Scalar> &values, int num_iterations, bool populate_best_linearization, typename BaseOptimizer::Stats &stats) override#