PaGMO  1.1.5
nlopt_aug_lag_eq.h
1 /*****************************************************************************
2  * Copyright (C) 2004-2015 The PaGMO development team, *
3  * Advanced Concepts Team (ACT), European Space Agency (ESA) *
4  * *
5  * https://github.com/esa/pagmo *
6  * *
7  * act@esa.int *
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  * This program is distributed in the hope that it will be useful, *
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
17  * GNU General Public License for more details. *
18  * *
19  * You should have received a copy of the GNU General Public License *
20  * along with this program; if not, write to the *
21  * Free Software Foundation, Inc., *
22  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
23  *****************************************************************************/
24 
25 #ifndef PAGMO_ALGORITHM_NLOPT_AUG_LAG_EQ_H
26 #define PAGMO_ALGORITHM_NLOPT_AUG_LAG_EQ_H
27 
28 #include <string>
29 
30 #include "../config.h"
31 #include "../serialization.h"
32 #include "base_nlopt.h"
33 
34 namespace pagmo { namespace algorithm {
35 
37 
58 class __PAGMO_VISIBLE nlopt_aug_lag_eq: public base_nlopt
59 {
60  public:
61  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);
62  base_ptr clone() const;
63  std::string get_name() const;
64  void set_local(size_t) const;
65  std::string human_readable_extra() const;
66  private:
67  friend class boost::serialization::access;
68  template <class Archive>
69  void serialize(Archive &ar, const unsigned int)
70  {
71  ar & boost::serialization::base_object<base_nlopt>(*this);
72  ar & m_aux_algo_id;
73  ar & const_cast<std::size_t &>(m_aux_max_iter);
74  ar & const_cast<double &>(m_aux_ftol);
75  ar & const_cast<double &>(m_aux_xtol);
76  }
77  int m_aux_algo_id;
78  const std::size_t m_aux_max_iter;
79  const double m_aux_ftol;
80  const double m_aux_xtol;
81 };
82 
83 }}
84 
85 BOOST_CLASS_EXPORT_KEY(pagmo::algorithm::nlopt_aug_lag_eq)
86 
87 #endif
boost::shared_ptr< base > base_ptr
Alias for shared pointer to base algorithm.
Root PaGMO namespace.
Wrapper for NLopt's Augmented Lagrangian algorithm (using penalties only for the equalities) ...
Base class for wrapping NLopt's algorithms.
Definition: base_nlopt.h:58