59 lines
2.3 KiB
C++
59 lines
2.3 KiB
C++
// Copyright (C) 2016 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
#undef DLIB_fIND_OPTIMAL_PARAMETERS_ABSTRACT_Hh_
|
|
#ifdef DLIB_fIND_OPTIMAL_PARAMETERS_ABSTRACT_Hh_
|
|
|
|
#include "../matrix.h"
|
|
|
|
namespace dlib
|
|
{
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
template <
|
|
typename funct
|
|
>
|
|
double find_optimal_parameters (
|
|
double initial_search_radius,
|
|
double eps,
|
|
const unsigned int max_f_evals,
|
|
matrix<double,0,1>& x,
|
|
const matrix<double,0,1>& x_lower,
|
|
const matrix<double,0,1>& x_upper,
|
|
const funct& f
|
|
);
|
|
/*!
|
|
requires
|
|
- f(x) must be a valid expression that evaluates to a double
|
|
- x.size() == x_lower.size() == x_upper.size()
|
|
- x.size() > 0
|
|
- 0 < eps < initial_search_radius
|
|
- max_f_evals > 1
|
|
- min(x_upper - x_lower) > 0
|
|
- min(x - x_lower) >= 0 && min(x_upper - x) >= 0
|
|
(i.e. the given x should be within the bounds defined by x_lower and x_upper)
|
|
ensures
|
|
- Performs a constrained minimization of the function f() starting from
|
|
the initial point x.
|
|
- This function does not require derivatives of f(). Instead, it uses
|
|
derivative free methods to find the best setting of x. In particular, it
|
|
will begin by searching within a sphere of radius initial_search_radius
|
|
around x and will continue searching until either f() has been called
|
|
max_f_evals times or the search area has been shrunk to less than eps radius.
|
|
- #x == the value of x (within the bounds defined by x_lower and x_upper) that
|
|
was found to minimize f(). More precisely, it will always be true that:
|
|
- min(#x - x_lower) >= 0 && min(x_upper - #x) >= 0
|
|
- returns f(#x).
|
|
throws
|
|
- No exception is thrown for executing max_f_evals iterations. This function
|
|
will simply output the best x it has seen if it runs out of iterations.
|
|
!*/
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
#endif // DLIB_fIND_OPTIMAL_PARAMETERS_ABSTRACT_Hh_
|
|
|
|
|