Class RankedChoiceVoting

java.lang.Object
com.tnsai.coordination.voting.RankedChoiceVoting

public final class RankedChoiceVoting extends Object
Tallies votes using instant-runoff (ranked-choice) voting. This is a pure logic class with no agent dependencies.

Algorithm:

  1. Count first-choice votes
  2. If any choice has majority, it wins
  3. Eliminate choice with fewest first-choice votes
  4. Redistribute eliminated choice's votes to next preference
  5. Repeat until majority or one choice remains
  • Method Details

    • tally

      public static VotingResult tally(List<Vote> votes, VotingConfig config)
      Tallies ranked-choice votes using instant-runoff.
      Parameters:
      votes - The ranked-choice votes to tally
      config - The voting configuration
      Returns:
      The voting result