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

Wrapper for NLopt's Augmented Lagrangian algorithm (using penalties only for the equalities) More...

#include <nlopt_aug_lag_eq.h>

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

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.
 

Detailed Description

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

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 58 of file nlopt_aug_lag_eq.h.

Constructor & Destructor Documentation

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

Parameters
[in]aux_algo_idAuxiliary algorithm (1=COBYLA, 2=MMA)
[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 49 of file nlopt_aug_lag_eq.cpp.

Member Function Documentation

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

std::string pagmo::algorithm::nlopt_aug_lag_eq::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 81 of file nlopt_aug_lag_eq.cpp.


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