Class partition_probability

Inheritance Relationships

Base Types

  • public rmath::sigmoid

  • public rer::client< partition_probability >

Class Documentation

class partition_probability : public rmath::sigmoid, public rer::client<partition_probability>

Calculates the probability that a robot partitions its current task using the negative exponential distribution.

Reactivity is assumed to be > 0. Offset is assumed to be > 0.

Depends on:

  • The robot’s time estimates of how long it takes to complete each of the two subtasks, as well as an estimate of how long it takes to complete the unpartitioned task.

  • The reactivity parameter: how sensitive should controller be to abrupt changes in the estimates?

Used in Harwell:2018-partitioning, Harwell:2020a-demystify. Originally inspired by Pini2011b.

Public Functions

explicit partition_probability(const config::sigmoid_sel_config *config)

Initialize partitioning probability explicity with method + parameter values.

inline explicit partition_probability(const std::string &method)

Initialize partitioning probability with default values based on whatever the selected method is.

inline const std::string &method(void) const
double operator()(const time_estimate &task, const time_estimate &subtask1, const time_estimate &subtask2, rmath::rng *rng)

Public Static Attributes

static constexpr const double kDEFAULT_GAMMA = 1.0
static constexpr const double kDEFAULT_OFFSET = 1.0
static constexpr const double kDEFAULT_REACTIVITY = 1.5
static const std::string kMethodPini2011 = "pini2011"
static const std::string kMethodRandom = "random"