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.


How should the simulation stop ?

The number of threads to use to speed up calculation.

All the populations for the simulation. Contains all individuals for the simulation.

The total run time for the simulation. This will be calculated once the stimulation has finished.

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.


impl<T: Individual + Send + Sync + Clone> Simulation<T>

This implements the the functions run, print_fitness and update_results (private) for the struct Simulation.

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.

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.