Class convergence_metrics

Inheritance Relationships

Base Type

  • public rmetrics::base_metrics

Derived Type

Class Documentation

class convergence_metrics : public virtual rmetrics::base_metrics

Defines the metrics to be collected at the ensemble level in order to calculate the swarm’s convergence in various ways. Measures adapted from:

  • Szabo2014 (robot interaction degree)

  • Turgut2008 (angular order, velocity)

  • Turgut2008/Balch2000 (positional entropy)

Metrics are collected every timestep.

Subclassed by cosm::convergence::convergence_calculator

Public Types

using conv_status_t = std::tuple<double, double, bool>

Status returned by each convergence measure. Positions:

0 - Raw value of convergence measure, for sanity checks. 1 - Normalized value of convergence measure. 2 - Does the measure currently indicate convergence?

Public Functions

convergence_metrics(void) = default
virtual conv_status_t swarm_angular_order(void) const = 0

Return the conv_status_t for the angular order of the swarm. See angular_order for the calculation/input variables.

virtual double swarm_conv_epsilon(void) const = 0

Return the current convergence epsilon (threshold) for the swarm (can be static or vary in time). Captured here to make graph generation much easier in SIERRA.

virtual conv_status_t swarm_interactivity(void) const = 0

Return the conv_status_t for the interaction degree of the swarm. See interactivity for the calculation/input variables.

virtual conv_status_t swarm_positional_entropy(void) const = 0

Return the conv_status_t for the positional entropy of the swarm. See positional_entropy for the calculation/input variables.

virtual conv_status_t swarm_task_dist_entropy(void) const = 0

Return the conv_status_t for the task distribution entropy of the swarm. See task_dist_entropy for the calculation/input variables.

virtual conv_status_t swarm_velocity(void) const = 0

Return the conv_status_t for the velocity of the swarm. See velocity for the calculation/input variables.