PaGMO
1.1.5
|
Wrapper for NLopt's Augmented Lagrangian algorithm. More...
#include <nlopt_aug_lag.h>
Public Member Functions | |
nlopt_aug_lag (int=1, int=100, const double &=1E-6, const double &=1E-6, 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. | |
void | set_local (size_t) const |
Set the local optimizer. | |
std::string | human_readable_extra () const |
Extra information in human readable format. More... | |
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... | |
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 Augmented Lagrangian algorithm.
From NLopt's documentation:
This method combines the objective function and the nonlinear inequality/equality constraints (if any) in to a single function: essentially, the objective plus a "penalty" for any violated constraints. This modified objective function is then passed to another optimization algorithm with no nonlinear constraints [the auxiliary algorithm]. If the constraints are violated by the solution of this sub-problem, then the size of the penalties is increased and the process is repeated; eventually, the process must converge to the desired solution (if it exists).
The inclusion in PaGMO required to give a fixed choice forthe auxiliary algorithms as nlopt interface is too different from pagmo's to allow pagmo algorithm being passed as auxiliaries.
This algorithm is a single-objective continuous minimiser that supports any type of constraints
Definition at line 56 of file nlopt_aug_lag.h.
pagmo::algorithm::nlopt_aug_lag::nlopt_aug_lag | ( | int | aux_algo_id = 1 , |
int | max_iter = 100 , |
||
const double & | ftol = 1E-6 , |
||
const double & | xtol = 1E-6 , |
||
int | aux_max_iter = 100 , |
||
const double & | aux_ftol = 1E-6 , |
||
const double & | aux_xtol = 1E-6 |
||
) |
Constructor.
Allows to specify some of the parameters of the IPOPT solver. The algorithm stopping criteria will be 1) if the number of iteration exceeds max_iter 2) the three tolerances are met
[in] | aux_algo_id | Auxiliary algorithm (1=SPBLX, 2=COBYLA, 3=BOBYQA, 4=LBFGS) |
[in] | max_iter | stop-criteria (number of iterations) |
[in] | ftol | stop-criteria (absolute on the obj-fun) |
[in] | xtol | stop-criteria (absolute on the chromosome) |
[in] | aux_max_iter | stop-criteria for the auxiliary algorithm (number of iterations) |
[in] | aux_ftol | stop-criteria for the auxiliary algorithm (number of iterations) |
[in] | aux_xtol | stop-criteria for the auxiliary algorithm (number of iterations) |
value_error | if max_iter or tolerances are negative |
Definition at line 48 of file nlopt_aug_lag.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 57 of file nlopt_aug_lag.cpp.
|
virtual |
Extra information in human readable format.
Default implementation returns an empty string.
Reimplemented from pagmo::algorithm::base_nlopt.
Definition at line 86 of file nlopt_aug_lag.cpp.