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

Wrapper for NLopt's Augmented Lagrangian algorithm. More...

#include <nlopt_aug_lag.h>

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

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.
 

Detailed Description

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

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

Definition at line 56 of file nlopt_aug_lag.h.

Constructor & Destructor Documentation

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

Parameters
[in]aux_algo_idAuxiliary algorithm (1=SPBLX, 2=COBYLA, 3=BOBYQA, 4=LBFGS)
[in]max_iterstop-criteria (number of iterations)
[in]ftolstop-criteria (absolute on the obj-fun)
[in]xtolstop-criteria (absolute on the chromosome)
[in]aux_max_iterstop-criteria for the auxiliary algorithm (number of iterations)
[in]aux_ftolstop-criteria for the auxiliary algorithm (number of iterations)
[in]aux_xtolstop-criteria for the auxiliary algorithm (number of iterations)
Exceptions
value_errorif max_iter or tolerances are negative
See also
pagmo::algorithm::base_nlopt::base_nlopt()

Definition at line 48 of file nlopt_aug_lag.cpp.

Member Function Documentation

base_ptr pagmo::algorithm::nlopt_aug_lag::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 57 of file nlopt_aug_lag.cpp.

std::string pagmo::algorithm::nlopt_aug_lag::human_readable_extra ( ) const
virtual

Extra information in human readable format.

Default implementation returns an empty string.

Returns
string containing algorithm specific human readable representation of the algorithm.

Reimplemented from pagmo::algorithm::base_nlopt.

Definition at line 86 of file nlopt_aug_lag.cpp.


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