25 #ifndef PAGMO_ALGORITHM_IPOPT_H
26 #define PAGMO_ALGORITHM_IPOPT_H
28 #include "../config.h"
29 #include "../population.h"
30 #include "../serialization.h"
33 #include <coin/IpIpoptApplication.hpp>
37 namespace pagmo {
namespace algorithm {
63 ipopt(
const int &max_iter = 100,
64 const double &constr_viol_tol = 1e-8,
65 const double &dual_inf_tol = 1e-8,
66 const double &compl_inf_tol = 1e-8,
67 const bool &nlp_scaling_method =
true,
68 const double &obj_scaling_factor = 1.0,
69 const double &mu_init = 0.1
73 std::string get_name()
const;
76 std::string human_readable_extra()
const;
79 friend class boost::serialization::access;
80 template <
class Archive>
81 void serialize(Archive &ar,
const unsigned int)
83 ar & boost::serialization::base_object<base>(*this);
84 ar &
const_cast<int &
>(m_max_iter);
85 ar &
const_cast<double &
>(m_constr_viol_tol);
86 ar &
const_cast<double &
>(m_dual_inf_tol);
87 ar &
const_cast<double &
>(m_compl_inf_tol);
88 ar &
const_cast<bool &
>(m_nlp_scaling_method);
89 ar &
const_cast<double &
>(m_obj_scaling_factor);
90 ar &
const_cast<double &
>(m_mu_init);
93 const double m_constr_viol_tol;
94 const double m_dual_inf_tol;
95 const double m_compl_inf_tol;
96 const bool m_nlp_scaling_method;
97 const double m_obj_scaling_factor;
98 const double m_mu_init;
boost::shared_ptr< base > base_ptr
Alias for shared pointer to base algorithm.
Wrapper for the IPOPT solver.