memega 0.1.0

genetic algorithm library
Documentation
use crate::cfg::{Cfg, Crossover, Mutation, Niching, Species, Survival};

pub mod ackley;
pub mod func;
pub mod griewank;
pub mod knapsack;
pub mod rastrigin;
pub mod target_string;

#[must_use]
pub fn all_cfg() -> Cfg {
    Cfg::new(100)
        .with_mutation(Mutation::Adaptive)
        .with_crossover(Crossover::Adaptive)
        .with_survival(Survival::SpeciesTopProportion(0.1))
        .with_species(Species::TargetNumber(10))
        .with_niching(Niching::SpeciesSharedFitness)
}

#[must_use]
pub fn none_cfg() -> Cfg {
    Cfg::new(100)
        .with_mutation(Mutation::Fixed(vec![0.9, 0.1]))
        .with_crossover(Crossover::Fixed(vec![0.3, 0.7]))
}