Dominance Axioms¶
Pareto Dominance¶
- pref_voting.dominance_axioms.has_pareto_dominance_violation(edata, vm, verbose=False, strong_Pareto=False)[source]¶
Returns True if some winner according to vm is Pareto dominated (there is a candidate that is unanimously preferred to the winner).
If strong_Pareto is True, then a candidate A is dominated if there is a candidate B such that some voter prefers B to A and no voter prefers A to B.
- Parameters:
edata (Profile, ProfileWithTies) – the election data.
vm (VotingMethod) – A voting method to test.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)
- pref_voting.dominance_axioms.find_all_pareto_dominance_violations(edata, vm, verbose=False, strong_Pareto=False)[source]¶
Returns all Pareto-dominated winners.
If strong_Pareto is True, then a candidate A is dominated if there is a candidate B such that some voter prefers B to A and no voter prefers A to B.
- Parameters:
edata (Profile, ProfileWithTies) – the election data.
vm (VotingMethod) – A voting method to test.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
A list of tuples of candidates (w, c) where w is a winner according to vm and Pareto dominated by c (and the empty list if there are none).
- Return type:
pareto_dominated_winners
Condorcet Winner¶
- pref_voting.dominance_axioms.has_condorcet_winner_violation(edata, vm, only_resolute=False, verbose=False)[source]¶
Returns True if there is a Condorcet winner in edata (a candidate that is majority preferred to every other candidate) that is not the unique winner according to vm.
- Parameters:
edata (Profile, ProfileWithTies, MajorityGraph, or MarginGraph) – the election data.
vm (VotingMethod) – A voting method to test.
only_resolute (bool, default=False) – If True, only consider profiles in which there is a unique winner according to vm
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)
- pref_voting.dominance_axioms.find_condorcet_winner_violation(edata, vm, only_resolute=False, verbose=False)[source]¶
Returns the Condorcet winner that is not the unique winner according to vm.
- Parameters:
edata (Profile, ProfileWithTies, MajorityGraph, or MarginGraph) – the election data.
vm (VotingMethod) – A voting method to test.
only_resolute (bool, default=False) – If True, only consider profiles in which there is a unique winner according to vm.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)
Condorcet Loser¶
- pref_voting.dominance_axioms.has_condorcet_loser_violation(edata, vm, verbose=False)[source]¶
Returns True if there is a winner according to vm that is a Condorcet loser (a candidate that loses head-to-head to every other candidate).
- Parameters:
edata (Profile, ProfileWithTies, MajorityGraph, or MarginGraph) – the election data.
vm (VotingMethod) – A voting method to test.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)
- pref_voting.dominance_axioms.find_condorcet_loser_violation(edata, vm, verbose=False)[source]¶
Returns the Condorcet loser (a candidate that loses head-to-head to every other candidate) who is a winner according to vm.
- Parameters:
edata (Profile, ProfileWithTies, MajorityGraph, or MarginGraph) – the election data.
vm (VotingMethod) – A voting method to test.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)
Smith Criterion¶
- pref_voting.dominance_axioms.has_smith_violation(edata, vm, verbose=False)[source]¶
Returns True if there is a winner according to vm that is not in the Smith set (the smallest set of candidates such that every candidate in the set is majority preferred to every candidate outside the set).
- Parameters:
edata (Profile, ProfileWithTies, MajorityGraph, or MarginGraph) – the election data.
vm (VotingMethod) – A voting method to test.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)
- pref_voting.dominance_axioms.find_all_smith_violations(edata, vm, verbose=False)[source]¶
Returns the winners according to vm that are not in the Smith set (the smallest set of candidates such that every candidate in the set is majority preferred to every candidate outside the set).
- Parameters:
edata (Profile, ProfileWithTies, MajorityGraph, or MarginGraph) – the election data.
vm (VotingMethod) – A voting method to test.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)
Schwartz Criterion¶
- pref_voting.dominance_axioms.has_schwartz_violation(edata, vm, verbose=False)[source]¶
Returns True if there is a winner according to vm that is not in the Schwartz set (the set of all candidates x such that if y can reach x in the transitive closer of the majority relation, then x can reach y in the transitive closer of the majority relation.).
- Parameters:
edata (Profile, ProfileWithTies, MajorityGraph, or MarginGraph) – the election data.
vm (VotingMethod) – A voting method to test.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)
- pref_voting.dominance_axioms.find_all_schwartz_violations(edata, vm, verbose=False)[source]¶
Returns the winners according to vm that are not in the Schwartz set (the set of all candidates x such that if y can reach x in the transitive closer of the majority relation, then x can reach y in the transitive closer of the majority relation).
- Parameters:
edata (Profile, ProfileWithTies, MajorityGraph, or MarginGraph) – the election data.
vm (VotingMethod) – A voting method to test.
verbose (bool, default=False) – If a violation is found, display the violation.
- Returns:
Returns True if there is a violation and False otherwise.
- Return type:
Result of the test (bool)