RandTauVectorUniform

class poisson_approval.RandTauVectorUniform(ballots=None, d_ballot_fixed_share=None, **kwargs)[source]

A random factory of tau-vectors (TauVector) following the uniform distribution.

Parameters
  • ballots (iterable, optional) – These ballots (e.g. 'a', 'ab') will have a variable share. Default: all allowed ballots.

  • d_ballot_fixed_share (dict, optional) – A dictionary. For each entry ballot: fixed_share, this ballot will have at least this fixed share. The total must be lower or equal to 1.

  • kwargs – These additional arguments will be passed directly to TauVector.

Examples

Basic usage:

>>> initialize_random_seeds()
>>> rand_tau = RandTauVectorUniform()
>>> tau = rand_tau()
>>> print(tau)
<a: 0.4236547993389047, ab: 0.12122838365799216, ac: 0.0039303209304278885, b: 0.05394987214431912, bc: 0.1124259903007756, c: 0.2848106336275805> ==> a

If the voting rule is not approval, only the relevant ballots are used:

>>> initialize_random_seeds()
>>> rand_tau = RandTauVectorUniform(voting_rule=PLURALITY)
>>> tau = rand_tau()
>>> print(tau)
<a: 0.5488135039273248, b: 0.16637586244509472, c: 0.2848106336275805> ==> a (Plurality)

Using the optional parameters:

>>> rand_tau = RandTauVectorUniform(
...     ballots=['b', 'bc'], d_ballot_fixed_share={'a': 0.5},
...     symbolic=True)
>>> tau = rand_tau()
>>> print(tau)
<a: 0.5, b: 0.30138168803582194, bc: 0.19861831196417806> ==> a, b

For more examples, cf. RandSimplexUniform.