Source code for embedded_voting.truth.truth_generator_uniform
import numpy as np
from embedded_voting.truth.truth_generator import TruthGenerator
[docs]class TruthGeneratorUniform(TruthGenerator):
"""
A uniform generator for the ground truth ("true value") of each candidate.
The true value of each candidate is independent and uniform in [`minimum_value`, `maximum_value`].
Parameters
----------
minimum_value : Number
The minimum true value of a candidate.
maximum_value : Number
The maximum true value of a candidate.
Examples
--------
>>> np.random.seed(42)
>>> truth_generator = TruthGeneratorUniform(minimum_value=10, maximum_value=20)
>>> truth_generator(n_candidates=3)
array([17.73956049, 14.3887844 , 18.5859792 ])
"""
def __init__(self, minimum_value=10, maximum_value=20, seed=42):
self.minimum_value = minimum_value
self.maximum_value = maximum_value
self.rng = np.random.default_rng(seed)
def __call__(self, n_candidates):
return (
self.minimum_value
+ self.rng.random(n_candidates) * (self.maximum_value - self.minimum_value)
)