Criteria

RankChoiceVoting.CondorcetLoserType
CondorcetLoser <: Condorcet

A Condorcet loser criterion object. The Condorcet loser criterion states that a voting system cannot selected acandiate who loses all pairwise comparisons cannot be selected.

source
RankChoiceVoting.count_violationsMethod
count_violations(system::VotingSystem, criterion::CondorcetLoser, rankings::Ranks; _...)

Counts the number of violations of the Condorcet loser criterion for a given voting system. The count is either 0 or 1.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::CondorcetLoser: condorcet criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.satisfiesMethod
satisfies(system::VotingSystem, criterion::CondorcetLoser, rankings::Ranks; _...)

Tests whether a voting system satisfies the Condorcet loser criterion.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::CondorcetLoser: condorcet loser criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.CondorcetWinnerType
CondorcetWinner <: Criterion

A Condorcet winner criterion object. The Condorcet criterion states that a candiate who wins all pairwise elections must also win the election using a given voting system.

source
RankChoiceVoting.count_violationsMethod
count_violations(system::VotingSystem, criterion::CondorcetWinner, rankings::Ranks; _...)

Counts the number of violations of the Condorcet for a given voting system. The count is either 0 or 1.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::CondorcetWinner: condorcet criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.satisfiesMethod
satisfies(system::VotingSystem, criterion::CondorcetWinner, rankings::Ranks; _...)

Tests whether a voting system satisfies the Condorcet winner criterion.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::CondorcetWinner: condorcet criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.ConsistencyType

Consistency <: Criterion

A Consistency criterion object. According to the consistency criterion, if the votes are split into disjoint subsets, and the same candidate wins each subset, the system must select the same winner for the whole set of votes.

source
RankChoiceVoting.count_violationsMethod
count_violations(system::VotingSystem, criterion::Consistency, rankings::Ranks; n_reps=1000, _...)

Uses Monte Carlo simulation to count the number of violations of the consistency criterion for a given voting system.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::Consistency: condorcet criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks

Keywords

  • n_reps: number of Monte Carlo simulations to perform
source
RankChoiceVoting.satisfiesMethod
satisfies(system::VotingSystem, criterion::Consistency, rankings::Ranks; n_max=1000, _...)

Uses Monte Carlo simulation to test whether a voting system satisfies the Consistency criterion.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::Consistency: consistency criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks

Keywords

  • n_reps: maximum Monte Carlo simulations to perform
source
RankChoiceVoting.IIAType

IIA <: Criterion

An object representing the independence of irrelevant alternatives IIA criterion. According to the IIA criterion, the winner of an election should not depend on the presence or absence of less prefered candidates. Although there are several variations in the implimentation of IIA, RankChoiceVoting.jl tests for violations of IIA by removing subsets of lossing candidates.

source
RankChoiceVoting.count_violationsMethod
count_violations(system::VotingSystem, criterion::IIA, rankings::Ranks; _...)

Counts the number of violations of the IIA of Irrelevant alternatives criterion. There are several ways to test this criterion. Currently, it is tested by removing subsets of losing candidates and testing whether the winner changes. The function checks all possible combinations of subsets. Other methods could add and/or subtract candidates and test whether the rank order changes. The current method is less strict compared to alternative methods.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::IIA: IIA criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.satisfiesMethod
satisfies(::Fails, system::VotingSystem, criterion::IIA, rankings::Ranks;  _...)

Tests whether a voting system satisfies the IIA of Irrelevant alternatives criterion. There are several ways to test this criterion. Currently, it is tested by removing subsets of losing candidates and testing whether the winner changes. The function checks all possible combinations of subsets until the first violation is encountered. Other methods could add and/or subtract candidates and test whether the rank order changes. The current method is less strict compared to alternative methods.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::IIA: IIA criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.MajorityType
Majority <: Criterion

An object for the fairness criterion, majority. A voting system satisfies the majority criterion if it elects the candidate who recieves more than 50% first preferences.

source
RankChoiceVoting.count_violationsMethod
count_violations(system::VotingSystem, criterion::Majority, rankings::Ranks; _...)

Counts the number of violations of the majority criterion for a given voting system.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::Majority: majority criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.satisfiesMethod
satisfies(system::VotingSystem, criterion::Majority, rankings::Ranks; _...)

Tests whether a voting system satisfies the majority criterion.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::Majority: majority criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.MonotonicityType
Monotonicity <: Criterion

An object for the fairness criterion monotonicity. A voting system that satisfies the monotonicity criterion cannot elect a different candidate by increasing votes (without otherwise changing the rank order) of a candidate who would otherwise win. In other words, redistributing more votes to the winner (without otherwise changing the rank order), should not prevent the winner from winning.

source
RankChoiceVoting.count_violationsMethod
count_violations(system::VotingSystem, criteria::Monotonicity, rankings::Ranks; n_reps=1000, _...)

Uses Monte Carlo simulation to counts the number of violations of the monotonicity criterion for a given voting system.

Arguments

  • system::VotingSystem: a voting system object
  • criteria::Monotonicity: condorcet criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks

Keywords

  • n_reps=1000: maximum number of Monte Carlo simulations to perform
source
RankChoiceVoting.satisfiesMethod
satisfies(::Fails, system::VotingSystem, criteria::Monotonicity, rankings::Ranks; n_reps=1000, _...)

Uses Monte Carlo simulation to tests whether a voting system satisfies the monotonicity criterion.

Arguments

  • system::VotingSystem: a voting system object
  • criteria::Monotonicity: monotonicity criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks

Keywords

  • n_reps=1000: maximum number of Monte Carlo simulations to perform while searching

for a violation

source
RankChoiceVoting.ReversalSymmetryType
ReversalSymmetry <: Criterion

An object for the fairness criterion reversal symmetry. According to the reversal systemetry criterion, a winner of an election cannot win if each voter's rankings are reversed.

source
RankChoiceVoting.count_violationsMethod
count_violations(system::VotingSystem, criterion::ReversalSymmetry, rankings::Ranks; _...)

Counts the number of violations of the reversal symmetry criterion for a given voting system. The number of violations is either 0 or 1.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::ReversalSymmetry: reversal symmetry criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source
RankChoiceVoting.satisfiesMethod
satisfies(system::VotingSystem, criterion::ReversalSymmetry, rankings::Ranks; _...)

Tests whether a voting system satisfies the reversal symmetry criterion.

Arguments

  • system::VotingSystem: a voting system object
  • criterion::ReversalSymmetry: condorcet criterion object
  • rankings::Ranks: a rank choice voting object consisting of rank counts and unique ranks
source