genetic_algorithm 0.27.1

A genetic algorithm implementation
Documentation
use genetic_algorithm::allele::Allele;
use genetic_algorithm::chromosome::Chromosome;
use genetic_algorithm::fitness::FitnessValue;
use genetic_algorithm::population::Population;

#[allow(dead_code)]
pub fn chromosome<T>(chromosome: &Chromosome<T>) -> Vec<T>
where
    T: Clone + Allele,
{
    chromosome.genes.clone()
}

#[allow(dead_code)]
pub fn chromosome_with_fitness_score<T>(
    chromosome: &Chromosome<T>,
) -> (Vec<T>, Option<FitnessValue>)
where
    T: Clone + Allele,
{
    (chromosome.genes.clone(), chromosome.fitness_score())
}
#[allow(dead_code)]
pub fn chromosome_with_age<T>(chromosome: &Chromosome<T>) -> (Vec<T>, usize)
where
    T: Clone + Allele,
{
    (chromosome.genes.clone(), chromosome.age())
}

#[allow(dead_code)]
pub fn chromosomes<T>(chromosomes: &[Chromosome<T>]) -> Vec<Vec<T>>
where
    T: Clone + Allele,
{
    chromosomes.iter().map(chromosome).collect()
}

#[allow(dead_code)]
pub fn chromosomes_with_fitness_score<T>(
    chromosomes: &[Chromosome<T>],
) -> Vec<(Vec<T>, Option<FitnessValue>)>
where
    T: Clone + Allele,
{
    chromosomes
        .iter()
        .map(chromosome_with_fitness_score)
        .collect()
}
#[allow(dead_code)]
pub fn chromosomes_with_age<T>(chromosomes: &[Chromosome<T>]) -> Vec<(Vec<T>, usize)>
where
    T: Clone + Allele,
{
    chromosomes.iter().map(chromosome_with_age).collect()
}

#[allow(dead_code)]
pub fn population<T>(population: &Population<T>) -> Vec<Vec<T>>
where
    T: Clone + Allele,
{
    population.chromosomes.iter().map(chromosome).collect()
}

#[allow(dead_code)]
pub fn population_with_fitness_scores<T>(
    population: &Population<T>,
) -> Vec<(Vec<T>, Option<FitnessValue>)>
where
    T: Clone + Allele,
{
    population
        .chromosomes
        .iter()
        .map(chromosome_with_fitness_score)
        .collect()
}
#[allow(dead_code)]
pub fn population_with_age<T>(population: &Population<T>) -> Vec<(Vec<T>, usize)>
where
    T: Clone + Allele,
{
    population
        .chromosomes
        .iter()
        .map(chromosome_with_age)
        .collect()
}