PaGMO
1.1.5
|
Wrapper for NLopt's Method of Moving Asymptotes algorithm. More...
#include <nlopt_mma.h>
Public Member Functions | |
nlopt_mma (int=100, const double &=1E-6, const double &=1E-6) | |
Constructor. More... | |
base_ptr | clone () const |
Clone method. More... | |
std::string | get_name () const |
Algorithm name. | |
Public Member Functions inherited from pagmo::algorithm::base | |
base () | |
Default constructor. More... | |
virtual | ~base () |
Trivial destructor. More... | |
std::string | human_readable () const |
Return human readable representation of the algorithm. More... | |
void | set_screen_output (const bool p) |
Setter-Getter for protected m_screen_output data. More... | |
bool | get_screen_output () const |
Gets screen output. More... | |
void | reset_rngs (const unsigned int) const |
Resets the seed of the internal rngs using a user-provided seed. More... | |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
Protected Member Functions inherited from pagmo::algorithm::base_nlopt | |
base_nlopt (nlopt::algorithm, bool, bool, int, const double &, const double &) | |
Constructor. More... | |
void | evolve (population &) const |
Evolve method. More... | |
std::string | human_readable_extra () const |
Extra information in human readable format. More... | |
Protected Attributes inherited from pagmo::algorithm::base_nlopt | |
nlopt::opt | m_opt |
NLOPT optimization method. | |
const std::size_t | m_max_iter |
Maximum number of iterations. | |
const double | m_ftol |
Tolerance on the fitness function variation (stopping criteria) | |
const double | m_xtol |
Tolerance on the decision_vector variation function (stopping criteria) | |
Protected Attributes inherited from pagmo::algorithm::base | |
bool | m_screen_output |
Indicates to the derived class whether to print stuff on screen. | |
rng_double | m_drng |
Random number generator for double-precision floating point values. | |
rng_uint32 | m_urng |
Random number generator for unsigned integer values. | |
unsigned int | m_fevals |
A counter for the number of function evaluations. | |
Wrapper for NLopt's Method of Moving Asymptotes algorithm.
From NLopt's documentation:
This is an improved variant of the original MMA algorithm published by Svanberg in 1987, which has become popular for topology optimization. (Note: "globally convergent" does not mean that this algorithm converges to the global optimum; it means that it is guaranteed to converge to some local minimum from any feasible starting point.) At each point x, MMA forms a local approximation using the gradient of f and the constraint functions, plus a quadratic "penalty" term to make the approximations "conservative" (upper bounds for the exact functions). The precise approximation MMA forms is difficult to describe in a few words, because it includes nonlinear terms consisting of a poles at some distance from x (outside of the current trust region), almost a kind of Pade approximant. .
The inclusion in PaGMO required to write central difference code for the automated, numercal evaluation of gradients. the rest was left unchaged
This algorithm is a single-objective continuous minimiser that supports box constraints.
Definition at line 59 of file nlopt_mma.h.
pagmo::algorithm::nlopt_mma::nlopt_mma | ( | int | max_iter = 100 , |
const double & | ftol = 1E-6 , |
||
const double & | xtol = 1E-6 |
||
) |
Constructor.
Definition at line 36 of file nlopt_mma.cpp.
|
virtual |
Clone method.
Provided that the derived algorithm implements properly the copy constructor, virtually all implementations of this method will look like this:
return base_ptr(new derived_algorithm(*this));
@return algorithm::base_ptr to a copy of this.
Implements pagmo::algorithm::base.
Definition at line 38 of file nlopt_mma.cpp.