Struct darwin_rs::simulation::Simulation
[−]
[src]
pub struct Simulation<T: Individual + Send + Sync> { pub type_of_simulation: SimulationType, pub num_of_threads: usize, pub habitat: Vec<Population<T>>, pub total_time_in_ms: f64, pub simulation_result: SimulationResult<T>, pub share_fittest: bool, }
The Simulation
type. Contains all the information / configuration for the simulation to run.
Use the SimulationBuilder
in order to create a simulation.
Fields
type_of_simulation: SimulationType
How should the simulation stop ?
num_of_threads: usize
The number of threads to use to speed up calculation.
habitat: Vec<Population<T>>
All the populations for the simulation. Contains all individuals for the simulation.
total_time_in_ms: f64
The total run time for the simulation. This will be calculated once the stimulation has finished.
simulation_result: SimulationResult<T>
The result of the simulation: improvement_factor
, original_fitness
and a vector of
fittest individuals.
If this feature is enabled, then the most fittest individual of all populations is shared between all the populations.
Methods
impl<T: Individual + Send + Sync + Clone> Simulation<T>
[src]
This implements the the functions run
, print_fitness
and update_results
(private)
for the struct Simulation
.
fn run(&mut self)
This actually runs the simulation.
Depending on the type of simulation (EndIteration
, EndFactor
or EndFitness
)
the iteration loop will check for the stop condition accordingly.
fn print_fitness(&self)
This is a helper function that the user can call after the simulation stops in order to see all the fitness values for all the individuals that participated to the overall improvement.