Skip to main content

Fitness

Trait Fitness 

Source
pub trait Fitness: Send + Sync {
    type Genome: EvolutionaryGenome;
    type Value: FitnessValue;

    // Required method
    fn evaluate(&self, genome: &Self::Genome) -> Self::Value;

    // Provided methods
    fn as_log_likelihood(&self, genome: &Self::Genome, temperature: f64) -> f64 { ... }
    fn gradient(&self, _genome: &Self::Genome) -> Option<Vec<f64>> { ... }
}
Expand description

Fitness evaluation trait

Defines how to evaluate the fitness of a genome.

Required Associated Types§

Source

type Genome: EvolutionaryGenome

The genome type being evaluated

Source

type Value: FitnessValue

The fitness value type

Required Methods§

Source

fn evaluate(&self, genome: &Self::Genome) -> Self::Value

Evaluate fitness (higher = better by convention)

Provided Methods§

Source

fn as_log_likelihood(&self, genome: &Self::Genome, temperature: f64) -> f64

Convert fitness to log-likelihood for probabilistic selection

Uses Boltzmann distribution: P(x) ∝ exp(f(x) / T)

Source

fn gradient(&self, _genome: &Self::Genome) -> Option<Vec<f64>>

Optional: Provide gradient for gradient-assisted mutation

Implementors§