neuroevolution_stats (faber_neuroevolution v1.2.4)

View Source

Statistics calculation for neuroevolution.

This module provides utility functions for calculating population statistics such as average, min, max fitness, and standard deviation.

Summary

Functions

Calculate average fitness of a population.

Calculate standard deviation of fitness.

Find maximum fitness in a population.

Find minimum fitness in a population.

Generate a summary of population statistics.

Types

fitness/0

-type fitness() :: float() | undefined.

generation/0

-type generation() :: non_neg_integer().

genome/0

-type genome() ::
          #genome{connection_genes ::
                      [#connection_gene{innovation :: pos_integer() | undefined,
                                        from_id :: term(),
                                        to_id :: term(),
                                        weight :: float(),
                                        enabled :: boolean()}],
                  input_count :: non_neg_integer(),
                  hidden_count :: non_neg_integer(),
                  output_count :: non_neg_integer()}.

individual/0

-type individual() ::
          #individual{id :: individual_id(),
                      network :: network(),
                      genome :: genome() | undefined,
                      parent1_id :: individual_id() | undefined,
                      parent2_id :: individual_id() | undefined,
                      fitness :: fitness(),
                      metrics :: metrics(),
                      generation_born :: generation(),
                      birth_evaluation :: non_neg_integer(),
                      max_age :: pos_integer(),
                      is_survivor :: boolean(),
                      is_offspring :: boolean()}.

individual_id/0

-type individual_id() :: term().

metrics/0

-type metrics() :: map().

network/0

-type network() :: term().

Functions

avg_fitness(Population)

-spec avg_fitness(Population) -> AvgFitness when Population :: [individual()], AvgFitness :: float().

Calculate average fitness of a population.

fitness_std_dev(Population)

-spec fitness_std_dev(Population) -> StdDev when Population :: [individual()], StdDev :: float().

Calculate standard deviation of fitness.

max_fitness(Population)

-spec max_fitness(Population) -> MaxFitness when Population :: [individual()], MaxFitness :: float().

Find maximum fitness in a population.

min_fitness(Population)

-spec min_fitness(Population) -> MinFitness when Population :: [individual()], MinFitness :: float().

Find minimum fitness in a population.

population_summary(Population)

-spec population_summary(Population) -> Summary when Population :: [individual()], Summary :: map().

Generate a summary of population statistics.

Uses tweann_nif:fitness_stats/1 for NIF-accelerated computation of min, max, mean, and std_dev in a single pass when available.