Ultra 0.9.4
Loading...
Searching...
No Matches
ultra::analyzer< I, F > Class Template Reference

#include <analyzer.h>

Public Member Functions

template<LayeredPopulation P, Evaluator E>
 analyzer (const P &, const E &)
void add (const I &, const F &, population_uid)
void clear ()
group_stat< I, F > overall_group_stat () const
distribution< double > age_dist () const
auto crossover_types () const
distribution< F > fit_dist () const
distribution< double > length_dist () const
const distribution< double > & age_dist (population_uid) const
const auto & crossover_types (population_uid) const
const distribution< F > & fit_dist (population_uid) const
const distribution< double > & length_dist (population_uid) const
template<Population P>
const distribution< double > & age_dist (const P &) const
template<Population P>
const auto & crossover_types (const P &) const
template<Population P>
const distribution< F > & fit_dist (const P &) const
template<Population P>
const distribution< double > & length_dist (const P &) const
bool is_valid () const
template<LayeredPopulation P, Evaluator E>
 analyzer (const P &pop, const E &eva)
template<Population P>
const auto & crossover_types (const P &g) const
template<Population P>
const distribution< double > & age_dist (const P &g) const
template<Population P>
const distribution< F > & fit_dist (const P &g) const
template<Population P>
const distribution< double > & length_dist (const P &g) const

Detailed Description

template<Individual I, Fitness F>
class ultra::analyzer< I, F >

Analyzer takes a statistics snapshot of a population.

Procedure:

  1. the population set should be loaded adding one individual at time (analyzer::add method);
  2. statistics can be checked calling specific methods.

You can get information about:

Constructor & Destructor Documentation

◆ analyzer() [1/2]

template<Individual I, Fitness F>
template<LayeredPopulation P, Evaluator E>
ultra::analyzer< I, F >::analyzer ( const P & pop,
const E & eva )
explicit

Calculates statistics about a layered population.

Parameters
[in]popthe layered population

◆ analyzer() [2/2]

template<Individual I, Fitness F>
template<LayeredPopulation P, Evaluator E>
ultra::analyzer< I, F >::analyzer ( const P & pop,
const E & eva )

Calculates statistics about a layered population.

Parameters
[in]popthe layered population

Member Function Documentation

◆ add()

template<Individual I, Fitness F>
void analyzer::add ( const I & ind,
const F & f,
population_uid uid )

Adds a new individual to the pool used to calculate statistics.

Parameters
[in]indnew individual
[in]ffitness of the new individual
[in]uida group of the population

The optional uid parameter is used to split information.

◆ age_dist() [1/4]

template<Individual I, Fitness F>
distribution< double > analyzer::age_dist ( ) const
nodiscard
Returns
statistics about the age distribution of the individuals (entire population)

◆ age_dist() [2/4]

template<Individual I, Fitness F>
template<Population P>
const distribution< double > & ultra::analyzer< I, F >::age_dist ( const P & g) const
nodiscard
Parameters
[in]ga population / subpopulation
Returns
statistics about the age distribution of individuals in group g

◆ age_dist() [3/4]

template<Individual I, Fitness F>
template<Population P>
const distribution< double > & ultra::analyzer< I, F >::age_dist ( const P & g) const
Parameters
[in]ga population / subpopulation
Returns
statistics about the age distribution of individuals in group g

◆ age_dist() [4/4]

template<Individual I, Fitness F>
const distribution< double > & analyzer::age_dist ( population_uid g) const
nodiscard
Parameters
[in]gthe UID of a population / subpopulation
Returns
statistics about the age distribution of individuals in group g

◆ clear()

template<Individual I, Fitness F>
void analyzer::clear ( )

Resets gathered statics.

◆ crossover_types() [1/4]

template<Individual I, Fitness F>
auto analyzer::crossover_types ( ) const
nodiscard
Returns
statistics about the crossover operators. The .empty() method of the returned value can be true

◆ crossover_types() [2/4]

template<Individual I, Fitness F>
template<Population P>
const auto & ultra::analyzer< I, F >::crossover_types ( const P & g) const
nodiscard
Parameters
[in]ga population / subpopulation
Returns
statistics about the crossover operators used in group g

◆ crossover_types() [3/4]

template<Individual I, Fitness F>
template<Population P>
const auto & ultra::analyzer< I, F >::crossover_types ( const P & g) const
Parameters
[in]ga population / subpopulation
Returns
statistics about the crossover operators used in group g

◆ crossover_types() [4/4]

template<Individual I, Fitness F>
const auto & analyzer::crossover_types ( population_uid g) const
nodiscard
Parameters
[in]gthe UID of a population / subpopulation
Returns
statistics about the crossover operators used in group g

◆ fit_dist() [1/4]

template<Individual I, Fitness F>
distribution< F > analyzer::fit_dist ( ) const
nodiscard
Returns
statistics about the fitness distribution of the individuals (entire population)

◆ fit_dist() [2/4]

template<Individual I, Fitness F>
template<Population P>
const distribution< F > & ultra::analyzer< I, F >::fit_dist ( const P & g) const
nodiscard
Parameters
[in]ga population / subpopulation
Returns
statistics about the fitness distribution of individuals in group g

◆ fit_dist() [3/4]

template<Individual I, Fitness F>
template<Population P>
const distribution< F > & ultra::analyzer< I, F >::fit_dist ( const P & g) const
Parameters
[in]ga population / subpopulation
Returns
statistics about the fitness distribution of individuals in group g

◆ fit_dist() [4/4]

template<Individual I, Fitness F>
const distribution< F > & analyzer::fit_dist ( population_uid g) const
nodiscard
Parameters
[in]gthe UID of a population / subpopulation
Returns
statistics about the fitness distribution of individuals in group g

◆ is_valid()

template<Individual I, Fitness F>
bool analyzer::is_valid ( ) const
nodiscard
Returns
true if the object passes the internal consistency check

◆ length_dist() [1/4]

template<Individual I, Fitness F>
distribution< double > analyzer::length_dist ( ) const
nodiscard
Returns
statistic about the length distribution of the individuals (entire population)

◆ length_dist() [2/4]

template<Individual I, Fitness F>
template<Population P>
const distribution< double > & ultra::analyzer< I, F >::length_dist ( const P & g) const
nodiscard
Parameters
[in]ga population / subpopulation
Returns
statistics about the length distribution of individuals in group g

◆ length_dist() [3/4]

template<Individual I, Fitness F>
template<Population P>
const distribution< double > & ultra::analyzer< I, F >::length_dist ( const P & g) const
Parameters
[in]ga population / subpopulation
Returns
statistics about the length distribution of individuals in group g

◆ length_dist() [4/4]

template<Individual I, Fitness F>
const distribution< double > & analyzer::length_dist ( population_uid g) const
nodiscard
Parameters
[in]gthe UID a population / subpopulation
Returns
statistics about the length distribution of individuals in group g

◆ overall_group_stat()

template<Individual I, Fitness F>
group_stat< I, F > analyzer::overall_group_stat ( ) const
nodiscard
Returns
aggregate group_stat considering every subgroup of the population

The documentation for this class was generated from the following files: