PaGMO  1.1.5
Public Member Functions | Friends
pagmo::algorithm::nlopt_mma Class Reference

Wrapper for NLopt's Method of Moving Asymptotes algorithm. More...

#include <nlopt_mma.h>

Inheritance diagram for pagmo::algorithm::nlopt_mma:
Inheritance graph
[legend]

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.
 

Detailed Description

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.

See also
http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms#MMA_.28Method_of_Moving_Asymptotes.29
Author
Dario Izzo (dario.nosp@m..izz.nosp@m.o@goo.nosp@m.glem.nosp@m.ail.c.nosp@m.om)

Definition at line 59 of file nlopt_mma.h.

Constructor & Destructor Documentation

pagmo::algorithm::nlopt_mma::nlopt_mma ( int  max_iter = 100,
const double &  ftol = 1E-6,
const double &  xtol = 1E-6 
)

Constructor.

See also
pagmo::algorithm::base_nlopt::base_nlopt()

Definition at line 36 of file nlopt_mma.cpp.

Member Function Documentation

base_ptr pagmo::algorithm::nlopt_mma::clone ( ) const
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.


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