25 #ifndef PAGMO_PROBLEM_MGA_1DSM_ALPHA_H
26 #define PAGMO_PROBLEM_MGA_1DSM_ALPHA_H
29 #include <keplerian_toolbox/planet/jpl_low_precision.h>
30 #include <keplerian_toolbox/epoch.h>
32 #include "../config.h"
33 #include "../serialization.h"
39 namespace pagmo{
namespace problem {
69 mga_1dsm_alpha(
const std::vector<kep_toolbox::planet::planet_ptr> = construct_default_sequence(),
70 const kep_toolbox::epoch t0_l = kep_toolbox::epoch(0),
const kep_toolbox::epoch t0_r = kep_toolbox::epoch(1000),
71 const double tof_l = 1.0*365.25,
const double tof_u = 5.0*365.25,
72 const double vinf_l = 0.5,
const double vinf_u = 2.5,
73 const bool mo =
false,
const bool add_vinf_dep =
false,
const bool add_vinf_arr =
true);
77 std::string get_name()
const;
78 std::string pretty(
const std::vector<double> &x)
const;
79 void set_tof(
const double,
const double);
80 void set_launch_window(
const kep_toolbox::epoch&,
const kep_toolbox::epoch&);
81 void set_vinf(
const double);
82 std::vector<kep_toolbox::planet::planet_ptr> get_sequence()
const;
83 std::vector<double> get_tof()
const;
86 std::string human_readable_extra()
const;
88 static const std::vector<kep_toolbox::planet::planet_ptr> construct_default_sequence() {
89 std::vector<kep_toolbox::planet::planet_ptr> retval;
90 retval.push_back(kep_toolbox::planet::jpl_lp(
"earth").clone());
91 retval.push_back(kep_toolbox::planet::jpl_lp(
"venus").clone());
92 retval.push_back(kep_toolbox::planet::jpl_lp(
"earth").clone());
96 friend class boost::serialization::access;
97 template <
class Archive>
98 void serialize(Archive &ar,
const unsigned int)
100 ar & boost::serialization::base_object<base>(*this);
102 ar &
const_cast<size_t &
>(m_n_legs);
106 std::vector<kep_toolbox::planet::planet_ptr> m_seq;
107 const size_t m_n_legs;
115 #endif // PAGMO_PROBLEM_MGA_1DSM_ALPHA_H
boost::shared_ptr< base > base_ptr
Alias for shared pointer to base problem.
std::vector< double > decision_vector
Decision vector type.
A generic MGA-1DSM Problem.
std::vector< double > fitness_vector
Fitness vector type.