Optimist  0.0.0
A C++ library for optimization
Loading...
Searching...
No Matches
Optimist::Optimizer::PatternSearch< Real, N > Class Template Reference

Class container for the Hooke and Jeeves Pattern Search algorithm. More...

#include <PatternSearch.hh>

Inherits Optimist::Optimizer::Optimizer< Real, N, PatternSearch< Real, N >, true >.

Public Types

using Simplex = std::vector<Vector>
Public Types inherited from Optimist::Optimizer::Optimizer< Real, N, PatternSearch< Real, N >, true >
using Scalar
using Input
using Output
Public Types inherited from Optimist::SolverBase< Real, TypeTrait< Real >::Scalar, N >
using InputTrait
using OutputTrait
using Scalar
using FirstDerivative
using SecondDerivative

Public Member Functions

 PatternSearch ()
constexpr std::string name_impl () const
void set_max_num_stagnation (integer nstg)
void search ()
void best_nearby ()
template<typename FunctionLambda>
bool solve_impl (FunctionLambda &&function, const Vector &x_ini, Vector &x_sol)
Public Member Functions inherited from Optimist::Optimizer::Optimizer< Real, N, PatternSearch< Real, N >, true >
 Optimizer ()
constexpr std::string name () const
Integer gradient_evaluations () const
Integer max_gradient_evaluations () const
Integer hessian_evaluations () const
Integer max_hessian_evaluations () const
Public Member Functions inherited from Optimist::SolverBase< Real, TypeTrait< Real >::Scalar, N >
 SolverBase ()
void reset_bounds (const Integer n=InputTrait::IsDynamic ? 0 :InputTrait::Dimension)
const Real & lower_bound () const
const Real & upper_bound () const
void bounds (const Real &t_lower_bound, const Real &t_upper_bound)
constexpr Integer input_dimension () const
constexpr Integer output_dimension () const
Integer function_evaluations () const
void max_function_evaluations (const Integer t_max_function_evaluations)
Integer iterations () const
Integer max_iterations () const
Scalar alpha () const
Integer relaxations () const
Integer max_relaxations () const
Scalar tolerance () const
void verbose_mode (bool t_verbose)
void enable_verbose_mode ()
void disable_verbose_mode ()
void damped_mode (bool t_damped)
void enable_damped_mode ()
void disable_damped_mode ()
std::string task () const
bool converged () const
std::ostream & ostream () const
bool solve (FunctionLambda &&function, const Real &x_ini, Real &x_sol)
bool rootfind (const FunctionBase< FunctionInput, FunctionOutput, DerivedFunction > &function, const Real &x_ini, Real &x_sol)
bool optimize (const FunctionBase< FunctionInput, FunctionOutput, DerivedFunction > &function, const Real &x_ini, Real &x_sol)
constexpr std::string name () const

Static Public Attributes

static constexpr bool RequiresFunction {true}
static constexpr bool RequiresFirstDerivative {false}
static constexpr bool RequiresSecondDerivative {false}
Static Public Attributes inherited from Optimist::Optimizer::Optimizer< Real, N, PatternSearch< Real, N >, true >
static constexpr bool IsRootFinder
static constexpr bool IsOptimizer

Private Attributes

Real m_rho {0.9}
Real m_h {0.1}
bool m_stencil_failure {false}

Additional Inherited Members

Protected Member Functions inherited from Optimist::Optimizer::Optimizer< Real, N, PatternSearch< Real, N >, true >
bool evaluate_gradient (GradientLambda &&gradient, const Input &x, FirstDerivative &out)
bool evaluate_hessian (HessianLambda &&hessian, const Input &x, SecondDerivative &out)
bool solve (FunctionLambda &&function, const Input &x_ini, Output &x_sol)
Protected Member Functions inherited from Optimist::SolverBase< Real, TypeTrait< Real >::Scalar, N >
Integer first_derivative_evaluations () const
Integer max_first_derivative_evaluations () const
Integer second_derivative_evaluations () const
Integer max_second_derivative_evaluations () const
void reset_counters ()
bool evaluate_function (FunctionLambda &&function, const Real &x, TypeTrait< Real >::Scalar &out)
bool evaluate_first_derivative (FirstDerivativeLambda &&function, const Real &x, FirstDerivative &out)
bool evaluate_second_derivative (SecondDerivativeLambda &&function, const Real &x, SecondDerivative &out)
bool damp (FunctionLambda &&function, const Real &x_old, const Real &function_old, const Real &step_old, Real &x_new, Real &function_new, Real &step_new)
void header ()
void bottom ()
void info (Scalar residuals, const std::string &notes="-")
Protected Attributes inherited from Optimist::SolverBase< Real, TypeTrait< Real >::Scalar, N >
Real m_lower_bound
Real m_upper_bound
Integer m_function_evaluations
Integer m_first_derivative_evaluations
Integer m_second_derivative_evaluations
Integer m_max_function_evaluations
Integer m_max_first_derivative_evaluations
Integer m_max_second_derivative_evaluations
Integer m_iterations
Integer m_max_iterations
Scalar m_alpha
Integer m_relaxations
Integer m_max_relaxations
Scalar m_tolerance
bool m_verbose
bool m_damped
std::ostream * m_ostream
std::string m_task
bool m_converged

Detailed Description

template<typename Real, Integer N>
class Optimist::Optimizer::PatternSearch< Real, N >
Template Parameters
RealScalar number type.
NDimension of the root-finding problem.

Member Typedef Documentation

◆ Simplex

template<typename Real, Integer N>
using Optimist::Optimizer::PatternSearch< Real, N >::Simplex = std::vector<Vector>

Constructor & Destructor Documentation

◆ PatternSearch()

template<typename Real, Integer N>
Optimist::Optimizer::PatternSearch< Real, N >::PatternSearch ( )
inline

Class constructor for the PatternSearch solver.

Member Function Documentation

◆ best_nearby()

template<typename Real, Integer N>
void Optimist::Optimizer::PatternSearch< Real, N >::best_nearby ( )
inline

◆ name_impl()

template<typename Real, Integer N>
std::string Optimist::Optimizer::PatternSearch< Real, N >::name_impl ( ) const
inlineconstexpr

Get the Nelder-Mead's solver name.

Returns
The Nelder-Mead's solver name.

◆ search()

template<typename Real, Integer N>
void Optimist::Optimizer::PatternSearch< Real, N >::search ( )
inline

◆ set_max_num_stagnation()

template<typename Real, Integer N>
void Optimist::Optimizer::PatternSearch< Real, N >::set_max_num_stagnation ( integer nstg)
inline

◆ solve_impl()

template<typename Real, Integer N>
template<typename FunctionLambda>
bool Optimist::Optimizer::PatternSearch< Real, N >::solve_impl ( FunctionLambda && function,
const Vector & x_ini,
Vector & x_sol )
inline

Solve the nonlinear system of equations \( \mathbf{f}(\mathbf{x}) = 0 \), with \(\mathbf{f}: \mathbb{R}^n \rightarrow \mathbb{R}^n \).

Template Parameters
FunctionLambdaFunction lambda type.
Parameters
[in]functionFunction lambda.
[in]x_iniInitialization point.
[out]x_solSolution point.
Returns
The convergence boolean flag.

Member Data Documentation

◆ m_h

template<typename Real, Integer N>
Real Optimist::Optimizer::PatternSearch< Real, N >::m_h {0.1}
private

◆ m_rho

template<typename Real, Integer N>
Real Optimist::Optimizer::PatternSearch< Real, N >::m_rho {0.9}
private

◆ m_stencil_failure

template<typename Real, Integer N>
bool Optimist::Optimizer::PatternSearch< Real, N >::m_stencil_failure {false}
private

◆ RequiresFirstDerivative

template<typename Real, Integer N>
bool Optimist::Optimizer::PatternSearch< Real, N >::RequiresFirstDerivative {false}
staticconstexpr

◆ RequiresFunction

template<typename Real, Integer N>
bool Optimist::Optimizer::PatternSearch< Real, N >::RequiresFunction {true}
staticconstexpr

◆ RequiresSecondDerivative

template<typename Real, Integer N>
bool Optimist::Optimizer::PatternSearch< Real, N >::RequiresSecondDerivative {false}
staticconstexpr

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