summaryrefslogtreecommitdiffstats
path: root/ml/dlib/dlib/optimization/optimization_bobyqa_abstract.h
diff options
context:
space:
mode:
Diffstat (limited to 'ml/dlib/dlib/optimization/optimization_bobyqa_abstract.h')
-rw-r--r--ml/dlib/dlib/optimization/optimization_bobyqa_abstract.h120
1 files changed, 0 insertions, 120 deletions
diff --git a/ml/dlib/dlib/optimization/optimization_bobyqa_abstract.h b/ml/dlib/dlib/optimization/optimization_bobyqa_abstract.h
deleted file mode 100644
index 46f9436af..000000000
--- a/ml/dlib/dlib/optimization/optimization_bobyqa_abstract.h
+++ /dev/null
@@ -1,120 +0,0 @@
-// Copyright (C) 2009 Davis E. King (davis@dlib.net)
-// License: Boost Software License See LICENSE.txt for the full license.
-#undef DLIB_OPTIMIZATIOn_BOBYQA_ABSTRACT_Hh_
-#ifdef DLIB_OPTIMIZATIOn_BOBYQA_ABSTRACT_Hh_
-
-#include "../matrix.h"
-
-// ----------------------------------------------------------------------------------------
-
-/*
- This file defines the dlib interface to the BOBYQA software developed by M.J.D Powell.
- BOBYQA is a method for optimizing a function in the absence of derivative information.
- Powell described it as a method that seeks the least value of a function of many
- variables, by applying a trust region method that forms quadratic models by
- interpolation. There is usually some freedom in the interpolation conditions,
- which is taken up by minimizing the Frobenius norm of the change to the second
- derivative of the model, beginning with the zero matrix. The values of the variables
- are constrained by upper and lower bounds.
-
-
- The following paper, published in 2009 by Powell, describes the
- detailed working of the BOBYQA algorithm.
-
- The BOBYQA algorithm for bound constrained optimization
- without derivatives by M.J.D. Powell
-*/
-
-// ----------------------------------------------------------------------------------------
-
-namespace dlib
-{
- class bobyqa_failure : public error;
- /*!
- This is the exception class used by the functions defined in this file.
- !*/
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename funct,
- typename T,
- typename U
- >
- double find_min_bobyqa (
- const funct& f,
- T& x,
- long npt,
- const U& x_lower,
- const U& x_upper,
- const double rho_begin,
- const double rho_end,
- const long max_f_evals
- );
- /*!
- requires
- - f(x) must be a valid expression that evaluates to a double
- - is_col_vector(x) == true
- - is_col_vector(x_lower) == true
- - is_col_vector(x_upper) == true
- - x.size() == x_lower.size() == x_upper.size()
- - x.size() > 1
- - x.size() + 2 <= npt <= (x.size()+1)*(x.size()+2)/2
- - 0 < rho_end < rho_begin
- - min(x_upper - x_lower) > 2*rho_begin
- (i.e. the lower and upper bounds on each x element must be larger than 2*rho_begin)
- - 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)
- - max_f_evals > 1
- ensures
- - Performs a constrained minimization of the function f() starting from
- the initial point x.
- - The BOBYQA algorithm uses a number of interpolating points to perform its
- work. The npt argument controls how many points get used. Typically,
- a good value to use is 2*x.size()+1.
- - #x == the value of x (within the bounds defined by x_lower and x_upper) that
- was found to minimize f(). More precisely:
- - min(#x - x_lower) >= 0 && min(x_upper - #x) >= 0
- - returns f(#x).
- - rho_begin and rho_end are used as the initial and final values of a trust
- region radius. Typically, rho_begin should be about one tenth of the greatest
- expected change to a variable, while rho_end should indicate the accuracy that
- is required in the final values of the variables.
- throws
- - bobyqa_failure
- This exception is thrown if the algorithm is unable to make progress towards
- solving the problem. This may occur because the algorithm detects excessive
- numerical errors or because max_f_evals of f() have occurred without reaching
- convergence.
- !*/
-
-// ----------------------------------------------------------------------------------------
-
- template <
- typename funct,
- typename T,
- typename U
- >
- double find_max_bobyqa (
- const funct& f,
- T& x,
- long npt,
- const U& x_lower,
- const U& x_upper,
- const double rho_begin,
- const double rho_end,
- const long max_f_evals
- );
- /*!
- This function is identical to the find_min_bobyqa() routine defined above
- except that it negates the f() function before performing optimization.
- Thus this function will attempt to find the maximizer of f() rather than
- the minimizer.
- !*/
-
-// ----------------------------------------------------------------------------------------
-
-}
-
-#endif // DLIB_OPTIMIZATIOn_BOBYQA_ABSTRACT_Hh_
-