36 #ifndef _SIMULATOR_HPP_
37 #define _SIMULATOR_HPP_
40 #include "PopulationConfigGenerator.hpp"
41 #include "PopulationData.hpp"
42 #include "FitnessFunction.hpp"
43 #include "MutationGenerator.hpp"
44 #include "Reporter.hpp"
45 #include "VariantIndicator.hpp"
52 class VariantIndicator;
53 typedef shared_ptr<VariantIndicator> VariantIndicatorPtr;
55 typedef shared_ptr<Reporter> ReporterPtr;
56 typedef std::vector<ReporterPtr> ReporterPtrs;
95 std::string output_directory;
100 PopulationConfigGeneratorPtr population_config_generator;
101 RecombinationPositionGeneratorPtr recombination_position_generator;
102 VariantIndicatorPtr variant_indicator;
103 QuantitativeTraitPtrs quantitative_traits;
104 FitnessFunctionPtr fitness_function;
105 MutationGeneratorPtr mutation_generator;
106 ReporterPtrs reporters;
112 virtual std::string class_name()
const {
return "SimulatorConfig";}
113 virtual Parameters parameters()
const;
114 virtual void configure(
const Parameters& parameters,
const Registry& registry);
115 void write_child_configurations(std::ostream& os, std::set<std::string>& ids_written)
const;
119 typedef shared_ptr<SimulatorConfig> SimulatorConfigPtr;
127 void simulate_single_generation();
136 size_t current_generation_index_;
137 PopulationPtrsPtr current_populations_;
138 PopulationDatasPtr current_population_datas_;
143 typedef shared_ptr<Simulator> SimulatorPtr;
146 #endif // _SIMULATOR_HPP_