PaGMO
1.1.5
|
Wrapper for NLopt's Augmented Lagrangian algorithm (using penalties only for the equalities) More...
#include <nlopt_aug_lag_eq.h>
Public Member Functions | |
nlopt_aug_lag_eq (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 (using penalties only for the equalities)
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 version of the augmented lagrangian delegates to the auxiliary algorithm the inequality contraints handling
This algorithm is a single-objective continuous minimiser that supports any type of constraints
Definition at line 58 of file nlopt_aug_lag_eq.h.
pagmo::algorithm::nlopt_aug_lag_eq::nlopt_aug_lag_eq | ( | 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=COBYLA, 2=MMA) |
[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 49 of file nlopt_aug_lag_eq.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 58 of file nlopt_aug_lag_eq.cpp.
|
virtual |
Extra information in human readable format.
Default implementation returns an empty string.
Reimplemented from pagmo::algorithm::base_nlopt.
Definition at line 81 of file nlopt_aug_lag_eq.cpp.