RandStrategyOrdinalUniform
- class poisson_approval.RandStrategyOrdinalUniform(profile=None, voting_rule=None, d_ranking_fixed_strategy=None)[source]
A random factory of ordinal strategies (
StrategyOrdinal
) following the uniform distribution.- Parameters
profile (Profile, optional) – The attached profile.
voting_rule (str, optional) – The voting rule. Possible values are
APPROVAL
,PLURALITY
andANTI_PLURALITY
. Default: the same voting rule as profile if a profile is specified,APPROVAL
otherwise.d_ranking_fixed_strategy (dict) – Key: ranking. Value: fixed strategy. Cf. examples below.
Examples
Basic usage:
>>> initialize_random_seeds() >>> rand_strategy = RandStrategyOrdinalUniform() >>> strategy = rand_strategy() >>> print(strategy) <abc: ab, acb: ac, bac: b, bca: bc, cab: ac, cba: bc>
Specify a profile:
>>> from poisson_approval import ProfileOrdinal >>> profile = ProfileOrdinal({'abc': 0.75, 'bac': 0.25}) >>> rand_strategy = RandStrategyOrdinalUniform(profile=profile) >>> strategy = rand_strategy() >>> print(strategy) <abc: ab, bac: ab> ==> a, b
Specify some fixed strategies:
>>> rand_strategy = RandStrategyOrdinalUniform( ... d_ranking_fixed_strategy={'abc': 'a', 'acb': 'a', 'bac': 'b', 'bca': 'b'}) >>> print(rand_strategy()) <abc: a, acb: a, bac: b, bca: b, cab: ac, cba: c> >>> print(rand_strategy()) <abc: a, acb: a, bac: b, bca: b, cab: ac, cba: bc> >>> print(rand_strategy()) <abc: a, acb: a, bac: b, bca: b, cab: ac, cba: c> >>> print(rand_strategy()) <abc: a, acb: a, bac: b, bca: b, cab: ac, cba: bc> >>> print(rand_strategy()) <abc: a, acb: a, bac: b, bca: b, cab: c, cba: c>