36 #ifndef _POPULATIONCONFIGGENERATOR_HPP_
37 #define _POPULATIONCONFIGGENERATOR_HPP_
40 #include "Population.hpp"
41 #include "Configurable.hpp"
42 #include "Trajectory.hpp"
43 #include "shared_ptr.hpp"
70 virtual size_t generation_count()
const {
return generation_count_;}
71 virtual size_t population_count()
const {
return population_count_;}
72 virtual unsigned int id_offset_step()
const {
return id_offset_step_;}
73 virtual size_t chromosome_pair_count()
const {
return chromosome_pair_count_;}
74 virtual const std::vector<unsigned int>& chromosome_lengths()
const {
return chromosome_lengths_;}
76 virtual Population::Configs population_configs(
size_t generation_index)
const = 0;
78 unsigned int min_unused_id()
const;
82 virtual std::string class_name()
const;
83 virtual Parameters parameters()
const;
84 virtual void configure(
const Parameters& parameters,
const Registry& registry);
92 size_t generation_count_;
93 size_t population_count_;
94 unsigned int id_offset_step_;
95 size_t chromosome_pair_count_;
96 std::vector<unsigned int> chromosome_lengths_;
100 typedef shared_ptr<PopulationConfigGenerator> PopulationConfigGeneratorPtr;
125 virtual size_t generation_count()
const;
126 virtual Population::Configs population_configs(
size_t generation_index)
const;
130 virtual std::string class_name()
const {
return "PopulationConfigGenerator_File";}
131 virtual Parameters parameters()
const;
132 virtual void configure(
const Parameters& parameters,
const Registry& registry);
136 std::string filename_;
137 std::vector<Population::Configs> population_configs_;
179 virtual Population::Configs population_configs(
size_t generation_index)
const;
183 virtual std::string class_name()
const {
return "PopulationConfigGenerator_ConstantSize";}
184 virtual Parameters parameters()
const;
185 virtual void configure(
const Parameters& parameters,
const Registry& registry);
188 size_t population_size_;
199 size_t population_index_from;
200 size_t population_index_to;
201 TrajectoryPtr trajectory;
205 std::string configuration()
const;
209 typedef std::vector<MigrationRateTrajectoryInfo> MigrationRateTrajectoryInfos;
230 virtual Population::Configs population_configs(
size_t generation_index)
const;
234 virtual Parameters parameters()
const;
235 virtual void configure(
const Parameters& parameters,
const Registry& registry);
236 virtual void write_child_configurations(std::ostream& os, std::set<std::string>& ids_written)
const;
240 TrajectoryPtr population_size_trajectory_;
241 TrajectoryPtr migration_rate_trajectory_default_;
242 MigrationRateTrajectoryInfos migration_rate_trajectory_infos_;
244 typedef std::vector<TrajectoryPtrs> MigrationRateTrajectories;
245 MigrationRateTrajectories migration_rate_trajectories_;
247 virtual void initialize_default_trajectories() = 0;
251 void initialize_trajectories();
294 virtual std::string class_name()
const {
return "PopulationConfigGenerator_LinearSteppingStone";}
298 virtual void initialize_default_trajectories();
340 virtual std::string class_name()
const {
return "PopulationConfigGenerator_Island";}
344 virtual void initialize_default_trajectories();
348 #endif // _POPULATIONCONFIGGENERATOR_HPP_