PaGMO
1.1.5
|
TandEM problem. More...
#include <tandem.h>
Public Member Functions | |
tandem (const int problemid=6, const double tof_=-1) | |
Constructor. More... | |
base_ptr | clone () const |
Clone method. | |
std::string | pretty (const std::vector< double > &x) const |
Outputs a stream of the trajectory data. More... | |
std::string | get_name () const |
Get problem's name. More... | |
Public Member Functions inherited from pagmo::problem::base | |
base (int, int=0, int=1, int=0, int=0, const double &=0) | |
Constructor from global dimension, integer dimension, fitness dimension, global constraints dimension, inequality constraints dimension and constraints tolerance. More... | |
base (int, int, int, int, int, const std::vector< double > &) | |
Constructor from global dimension, integer dimension, fitness dimension, global constraints dimension, inequality constraints dimension and constraints tolerance. More... | |
base (const double &, const double &, int, int=0, int=1, int=0, int=0, const double &=0) | |
Constructor from values for lower and upper bounds, global dimension, integer dimension, fitness dimension, global constraints dimension, inequality constraints dimension and constraints tolerance. More... | |
base (const decision_vector &, const decision_vector &, int=0, int=1, int=0, int=0, const double &=0) | |
Constructor from upper/lower bounds, integer dimension, fitness dimension, global constraints dimension, inequality constraints dimension and constraints tolerance. More... | |
template<std::size_t N> | |
base (const double(&v1)[N], const double(&v2)[N], int ni=0, int nf=1, int nc=0, int nic=0, const double &c_tol=0) | |
Constructor from raw arrays, integer dimension, fitness dimension, global constraints dimension, inequality constraints dimension and constraints tolerance. More... | |
template<class Iterator1 , class Iterator2 > | |
base (Iterator1 start1, Iterator1 end1, Iterator2 start2, Iterator2 end2, int ni=0, int nf=1, int nc=0, int nic=0, const double &c_tol=0) | |
Constructor from iterators, integer dimension, fitness dimension, global constraints dimension, inequality constraints dimension and constraints tolerance. More... | |
virtual | ~base () |
Trivial destructor. More... | |
std::string | human_readable () const |
Return human readable representation of the problem. More... | |
virtual std::string | human_readable_extra () const |
Extra information in human readable format. More... | |
bool | operator== (const base &) const |
Equality operator. More... | |
bool | operator!= (const base &) const |
Inequality operator. More... | |
bool | is_compatible (const base &) const |
Compatibility operator. More... | |
bool | compare_x (const decision_vector &, const decision_vector &) const |
Compare decision vectors. More... | |
bool | verify_x (const decision_vector &) const |
Verify compatibility of decision vector x with problem. More... | |
bool | compare_fc (const fitness_vector &, const constraint_vector &, const fitness_vector &, const constraint_vector &) const |
Simultaneous fitness-constraint comparison. More... | |
virtual void | pre_evolution (population &) const |
Pre-evolution hook. More... | |
virtual void | post_evolution (population &) const |
Post-evolution hook. More... | |
const decision_vector & | get_lb () const |
Lower bounds getter. More... | |
const decision_vector & | get_ub () const |
Upper bounds getter. More... | |
void | set_bounds (const decision_vector &, const decision_vector &) |
Bounds setter from pagmo::decision_vector. More... | |
template<class Iterator1 , class Iterator2 > | |
void | set_bounds (Iterator1 start1, Iterator1 end1, Iterator2 start2, Iterator2 end2) |
Bounds setter from iterators. More... | |
template<std::size_t N> | |
void | set_bounds (const double(&v1)[N], const double(&v2)[N]) |
Bounds setter from raw arrays. More... | |
void | set_bounds (const double &, const double &) |
Set bounds to specified values. More... | |
void | set_bounds (int, const double &, const double &) |
Set bounds to specified values. More... | |
void | set_lb (const decision_vector &) |
Set lower bounds from pagmo::decision_vector. More... | |
void | set_lb (int, const double &) |
Set specific lower bound to value. More... | |
void | set_lb (const double &) |
Set all lower bounds to value. More... | |
template<class Iterator > | |
void | set_lb (Iterator start, Iterator end) |
Lower bounds setter from iterators. More... | |
template<std::size_t N> | |
void | set_lb (const double(&v)[N]) |
Lower bounds setter from raw array. More... | |
void | set_ub (const decision_vector &) |
Set upper bounds from pagmo::decision_vector. More... | |
void | set_ub (int, const double &) |
Set specific upper bound to value. More... | |
void | set_ub (const double &) |
Set all upper bounds to value. More... | |
template<class Iterator > | |
void | set_ub (Iterator start, Iterator end) |
Upper bounds setter from iterators. More... | |
template<std::size_t N> | |
void | set_ub (const double(&v)[N]) |
Upper bounds setter from raw array. More... | |
unsigned int | get_fevals () const |
Return number of function evaluations. More... | |
unsigned int | get_cevals () const |
Return number of constraints function evaluations. More... | |
size_type | get_dimension () const |
Return global dimension. More... | |
size_type | get_i_dimension () const |
Return integer dimension. More... | |
f_size_type | get_f_dimension () const |
Return fitness dimension. More... | |
c_size_type | get_c_dimension () const |
Return global constraints dimension. More... | |
c_size_type | get_ic_dimension () const |
Return inequality constraints dimension. More... | |
const std::vector< double > & | get_c_tol () const |
Return constraints tolerance. More... | |
double | get_diameter () const |
Get the diameter of the problem. More... | |
constraint_vector | compute_constraints (const decision_vector &) const |
Compute constraints and return constraint vector. More... | |
void | compute_constraints (constraint_vector &, const decision_vector &) const |
Compute constraints and write them into contraint vector. More... | |
bool | compare_constraints (const constraint_vector &, const constraint_vector &) const |
Compare constraint vectors. More... | |
bool | test_constraint (const constraint_vector &, const c_size_type &) const |
Test i-th constraint of c (using tolerance information). More... | |
bool | feasibility_x (const decision_vector &) const |
Test feasibility of decision vector. More... | |
bool | feasibility_c (const constraint_vector &) const |
Test feasibility of constraint vector. More... | |
fitness_vector | objfun (const decision_vector &) const |
Return fitness of pagmo::decision_vector. More... | |
void | objfun (fitness_vector &, const decision_vector &) const |
Write fitness of pagmo::decision_vector into pagmo::fitness_vector. More... | |
bool | compare_fitness (const fitness_vector &, const fitness_vector &) const |
Compare fitness vectors. More... | |
void | reset_caches () const |
Reset internal caches. More... | |
const std::vector< constraint_vector > & | get_best_c (void) const |
Get the best known constraint vector. More... | |
const std::vector< decision_vector > & | get_best_x (void) const |
Get the best known decision vector. More... | |
const std::vector< fitness_vector > & | get_best_f (void) const |
Get the best known fitness vector. More... | |
void | set_best_x (const std::vector< decision_vector > &) |
Sets the best known decision vectors. More... | |
Protected Member Functions | |
void | objfun_impl (fitness_vector &, const decision_vector &) const |
Implementation of the objective function. | |
void | set_sparsity (int &, std::vector< int > &, std::vector< int > &) const |
Implementation of the sparsity structure. More... | |
Protected Member Functions inherited from pagmo::problem::base | |
virtual bool | equality_operator_extra (const base &) const |
Extra requirements for equality. More... | |
virtual bool | compare_fc_impl (const fitness_vector &, const constraint_vector &, const fitness_vector &, const constraint_vector &) const |
Implementation of simultaneous fitness-constraint comparison. More... | |
void | estimate_sparsity (const decision_vector &, int &lenG, std::vector< int > &iGfun, std::vector< int > &jGvar) const |
Heuristics to estimate the sparsity pattern of the problem. More... | |
void | estimate_sparsity (int &lenG, std::vector< int > &iGfun, std::vector< int > &jGvar) const |
Heuristics to estimate the sparsity pattern of the problem. More... | |
virtual void | compute_constraints_impl (constraint_vector &, const decision_vector &) const |
Implementation of constraint computation. More... | |
virtual bool | compare_constraints_impl (const constraint_vector &, const constraint_vector &) const |
Implementation of constraint vector comparison. More... | |
virtual bool | compare_fitness_impl (const fitness_vector &, const fitness_vector &) const |
Implementation of fitness vectors comparison. More... | |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
Public Types inherited from pagmo::problem::base | |
typedef decision_vector::size_type | size_type |
Problem's size type: the same as pagmo::decision_vector's size type. | |
typedef fitness_vector::size_type | f_size_type |
Fitness' size type: the same as pagmo::fitness_vector's size type. | |
typedef constraint_vector::size_type | c_size_type |
Constraints' size type: the same as pagmo::constraint_vector's size type. | |
Static Public Attributes inherited from pagmo::problem::base | |
static const std::size_t | cache_capacity = 5 |
Capacity of the internal caches. | |
TandEM problem.
TandEM primary goals are to understand the atmosphere, surface and interior, to determine the chemistry, and to derive constraints on the origin and evolution of Titan and of the saturnian system as a whole, with an emphasis on Enceladus.
TandEM had been proposed as an L-class candidate mission for the Cosmic Vision 2015-2025 programme in response to the Call for Proposals issued by ESA in March 2007, and has been one of the mission concepts selected by the SSAC in October 2007 for an Assessment study. The SSAC had decided that an Outer Planet mission should be one of the L-class mission candidates for the first slice of the Cosmic Vision plan, and recommended that both TandEM and Laplace (a mission to the Jupiter system) concepts should be studied initially, with a decision on which one to pursue to take place following a better definition of the mission's characteristics.
In early February 2009 ESA and NASA jointly announced that the Europa-Jupiter System Mission, or Laplace (see problem::laplace), would be the candidate for the first L mission.
We transcribe here TandEM interplanetary trajectory transfer problem as an MGA-DSM problem and we allow to instanciate 25 different types, depending on the fly-by sequence adopted. The mission data are taken from those used by a joint ESA/NASA working group that performed, together with industrial partners a preliminary trajectory design for the TandEM mission during the first months of 2008. Please refer to http://www.esa.int/gsp/ACT/inf/op/globopt/TandEM.htm to select the proper instance. A default choice is 6, which corrsponds to an EVEES fly-by sequence. The possibility of adding one additional constraint on the time-of-flight is given. If such a constraint is specified the components x[4]-x[7] are no longer time of flights but they represent the percentage of the remaining time of flight to be used in one leg. Thus the linear constraint on the time of flight is automatically transformed into a box constraint.
The problem is transcribed as an MGA-DSM problem allowing one chemical manouvre per trajectory leg. The objective function is defined as where is the final spacecraft mass. The problem is also part of the Global Trajectory Optimization database (GTOP)
tandem is a box constrained single objective, continuous optimization problem of dimension 18.
pagmo::problem::tandem::tandem | ( | const int | probid = 6 , |
const double | tof_ = -1 |
||
) |
Constructor.
Instantiates one of the possible TandEM problems
[in] | probid | This is an integer number from 1 to 24 encoding the fly-by sequence to be used (default is EVEES). Check http://www.esa.int/gsp/ACT/inf/op/globopt/TandEM.htm for more information |
[in] | tof_ | (in years) This is a number setting the constraint on the total time of flight (10 from the GTOP database). If -1 (default) an unconstrained problem is instantiated |
Definition at line 71 of file tandem.cpp.
|
virtual |
Get problem's name.
Default implementation will return the problem's mangled C++ name.
Reimplemented from pagmo::problem::base.
Definition at line 256 of file tandem.cpp.
std::string pagmo::problem::tandem::pretty | ( | const std::vector< double > & | x | ) | const |
Outputs a stream of the trajectory data.
While the chromosome contains all necessary information to describe a trajectory, mission analysits often require a different set of data to understand a trajectory. This method outputs a stream with information on the trajectory that is otherwise 'hidden' in the chromosome
[in] | x | chromosome representing the trajectory in the optimization process |
Definition at line 177 of file tandem.cpp.
|
protectedvirtual |
Implementation of the sparsity structure.
This implementation does not make use of problem::base::estimate_sparsity as the numerical difficulties introduced by the objective function definition through a logarithm makes automated detection unreliable (e.g. also SNOPT algorithm fails). Clearly, as the problem is box constrained no sarsity is present.
Reimplemented from pagmo::problem::base.
Definition at line 244 of file tandem.cpp.