StrategyTwelve

class poisson_approval.StrategyTwelve(d_ranking_ballot, d_weak_order_ballot=None, profile=None, voting_rule=None)[source]

A strategy profile for a 12-type profile.

Parameters
  • d_ranking_ballot (dict) –

    Keys are rankings and values are strategies, e.g. 'abc': 'ab'. A strategy can be a valid ballot (e.g. 'a' or 'ab' when the ranking is 'abc'), UTILITY_DEPENDENT or '' if the behavior of these voters is not specified in the strategy. Cf. ProfileTwelve.

    In the case of Plurality, the valid ballots for voters 'abc' are 'a' and 'b'. In the case of Anti-plurality, their valid ballots are 'ab' (vote against c) and 'ac' (vote against b).

  • d_weak_order_ballot (dict) – Key: weak order. Value: strategy. A strategy can be a valid ballot, SPLIT or '' if the behavior of these voters is not specified in the strategy. This is useful in two cases only: for “haters” (e.g. 'a~b>c') in Plurality, and for “lovers” (e.g. 'a>b~c') in Anti-Plurality. In all other cases, voters with a weak order have a dominant strategy and they automatically use it. About 'SPLIT': for example, in Plurality, 'a~b>c': SPLIT means that half of voters with weak order abc cast a ballot for a, and the other half for b.

  • profile (Profile, optional) – The “context” in which the strategy is used.

  • voting_rule (str) – The voting rule. Possible values are APPROVAL, PLURALITY and ANTI_PLURALITY. Default: the same voting rule as profile if a profile is specified, APPROVAL otherwise.

Examples

>>> strategy = StrategyTwelve({'abc': 'utility-dependent', 'bac': 'b'})
>>> strategy
StrategyTwelve({'abc': 'utility-dependent', 'bac': 'b'})
>>> print(strategy)
<abc: utility-dependent, bac: b>
>>> strategy.abc
'utility-dependent'
>>> strategy.a_bc
'a'
>>> strategy.ab_c
'ab'
property a_bc

Strategy of voters with type a_bc.

Type

str

property a_cb

Strategy of voters with type a_cb.

Type

str

property ab_c

Strategy of voters with type ab_c.

Type

str

property abc

Strategy of voters with ranking abc.

Type

str

property ac_b

Strategy of voters with type ac_b.

Type

str

property acb

Strategy of voters with ranking acb.

Type

str

property b_ac

Strategy of voters with type b_ac.

Type

str

property b_ca

Strategy of voters with type b_ca.

Type

str

property ba_c

Strategy of voters with type ba_c.

Type

str

property bac

Strategy of voters with ranking bac.

Type

str

property bc_a

Strategy of voters with type bc_a.

Type

str

property bca

Strategy of voters with ranking bca.

Type

str

property c_ab

Strategy of voters with type c_ab.

Type

str

property c_ba

Strategy of voters with type c_ba.

Type

str

property ca_b

Strategy of voters with type ca_b.

Type

str

property cab

Strategy of voters with ranking cab.

Type

str

property cb_a

Strategy of voters with type cb_a.

Type

str

property cba

Strategy of voters with ranking cba.

Type

str

property d_ranking_best_response

Defined when a profile is given. Cf. TauVector.d_ranking_best_response.

deepcopy_with_attached_profile(profile)

Deep copy with an attached profile.

Parameters

profile (Profile) – The new attached profile.

Returns

A deep copy of this strategy, with profile attached to it.

Return type

Strategy

property duo_ab

Defined when a profile is given. Cf. TauVector.duo_ab.

property duo_ac

Defined when a profile is given. Cf. TauVector.duo_ac.

property duo_ba

Defined when a profile is given. Cf. TauVector.duo_ba.

property duo_bc

Defined when a profile is given. Cf. TauVector.duo_bc.

property duo_ca

Defined when a profile is given. Cf. TauVector.duo_ca.

property duo_cb

Defined when a profile is given. Cf. TauVector.duo_cb.

property is_equilibrium

Whether this strategy is an equilibrium (in the context of the given profile). Cf. Profile.is_equilibrium().

Type

EquilibriumStatus

property pivot_strict_ab

Defined when a profile is given. Cf. TauVector.pivot_strict_ab.

property pivot_strict_ac

Defined when a profile is given. Cf. TauVector.pivot_strict_ac.

property pivot_strict_ba

Defined when a profile is given. Cf. TauVector.pivot_strict_ba.

property pivot_strict_bc

Defined when a profile is given. Cf. TauVector.pivot_strict_bc.

property pivot_strict_ca

Defined when a profile is given. Cf. TauVector.pivot_strict_ca.

property pivot_strict_cb

Defined when a profile is given. Cf. TauVector.pivot_strict_cb.

property pivot_tij_abc

Defined when a profile is given. Cf. TauVector.pivot_tij_abc.

property pivot_tij_acb

Defined when a profile is given. Cf. TauVector.pivot_tij_acb.

property pivot_tij_bac

Defined when a profile is given. Cf. TauVector.pivot_tij_bac.

property pivot_tij_bca

Defined when a profile is given. Cf. TauVector.pivot_tij_bca.

property pivot_tij_cab

Defined when a profile is given. Cf. TauVector.pivot_tij_cab.

property pivot_tij_cba

Defined when a profile is given. Cf. TauVector.pivot_tij_cba.

property pivot_tjk_abc

Defined when a profile is given. Cf. TauVector.pivot_tjk_abc.

property pivot_tjk_acb

Defined when a profile is given. Cf. TauVector.pivot_tjk_acb.

property pivot_tjk_bac

Defined when a profile is given. Cf. TauVector.pivot_tjk_bac.

property pivot_tjk_bca

Defined when a profile is given. Cf. TauVector.pivot_tjk_bca.

property pivot_tjk_cab

Defined when a profile is given. Cf. TauVector.pivot_tjk_cab.

property pivot_tjk_cba

Defined when a profile is given. Cf. TauVector.pivot_tjk_cba.

property pivot_weak_ab

Defined when a profile is given. Cf. TauVector.pivot_weak_ab.

property pivot_weak_ac

Defined when a profile is given. Cf. TauVector.pivot_weak_ac.

property pivot_weak_ba

Defined when a profile is given. Cf. TauVector.pivot_weak_ba.

property pivot_weak_bc

Defined when a profile is given. Cf. TauVector.pivot_weak_bc.

property pivot_weak_ca

Defined when a profile is given. Cf. TauVector.pivot_weak_ca.

property pivot_weak_cb

Defined when a profile is given. Cf. TauVector.pivot_weak_cb.

print_all_pivots()

Defined when a profile is given. Cf. TauVector.print_all_pivots().

print_weak_pivots()

Defined when a profile is given. Cf. TauVector.print_weak_pivots().

property scores

Defined when a profile is given. Cf. TauVector.scores.

property share_double_votes

Defined when a profile is given. Cf. TauVector.share_double_votes.

property share_sincere

Share of voters that happen to cast a sincere ballot (in the context of the given profile).

Cf. ProfileCardinal.share_sincere(). This is defined only for a ProfileCardinal.

Type

Number

property share_sincere_among_strategic_voters

Share of strategic voters that happen to cast a sincere ballot (in the context of the given profile).

Cf. ProfileCardinal.share_sincere_among_strategic_voters(). This is defined only for a ProfileCardinal.

Type

Number

property share_single_votes

Defined when a profile is given. Cf. TauVector.share_single_votes.

property tau

The tau-vector associated to this strategy (in the context of the given profile). Cf. Profile.tau().

Type

TauVector

property trio

Defined when a profile is given. Cf. TauVector.trio.

property trio_1t_a

Defined when a profile is given. Cf. TauVector.trio_1t_a.

property trio_1t_b

Defined when a profile is given. Cf. TauVector.trio_1t_b.

property trio_1t_c

Defined when a profile is given. Cf. TauVector.trio_1t_c.

property trio_2t_ab

Defined when a profile is given. Cf. TauVector.trio_2t_ab.

property trio_2t_ac

Defined when a profile is given. Cf. TauVector.trio_2t_ac.

property trio_2t_ba

Defined when a profile is given. Cf. TauVector.trio_2t_ba.

property trio_2t_bc

Defined when a profile is given. Cf. TauVector.trio_2t_bc.

property trio_2t_ca

Defined when a profile is given. Cf. TauVector.trio_2t_ca.

property trio_2t_cb

Defined when a profile is given. Cf. TauVector.trio_2t_cb.

property winners

Defined when a profile is given. Cf. TauVector.winners.

property τ

The tau-vector (alternate notation). Cf. Profile.τ().

Type

TauVector