[EM] RCV ballot truncation, branched off: Easy fix to Alaska's ranked-choice voting

Richard, the VoteFair guy electionmethods at votefair.org
Sat Nov 12 17:01:56 PST 2022


(I'm creating a new thread title because Forest is using the previous 
title for a different purpose.)


On 11/11/2022 5:26 PM, Colin Champion wrote:
 > Does anyone know why this truncation is imposed?

I suspect it's because the director of the FairVote organization (Rob 
Richie) doesn't realize it's easy to count multiple marks in the same 
"choice" column.  He may be thinking that since he hasn't seen it done 
that it can't be done.

Or he might assume the only way to do it would involve fractions or 
decimal numbers.  Yet of course that's not needed.

Here's a simple way to explain how to count multiple marks in the same 
"choice" column without using fractions or decimal numbers:

When the counting reaches two ballots that top-rank the same two 
remaining candidates, one of those two ballots is transferred to one of 
the two candidates, and the other ballot is transferred to the other 
candidate.  This approach also works with a larger number of top-ranked 
candidates.

The following code demonstrates the details of how this counting is done.

https://github.com/cpsolver/VoteFair-ranking-cpp/blob/master/rcipe_stv.cpp

Here are some relevant comments from this code:

//  For all these calculations, ballots on which a
//  voter marks more than one candidate at the
//  same preference level are counted instead of
//  being discarded.
//
//  When shared preference levels are encountered,
//  the ballots are transfered in "whole" numbers,
//  not by splitting a ballot into fractional or
//  decimal portions.  For example, during a
//  counting cycle, if there are two ballots that
//  rank candidates numbered 1 and 2 at the same
//  highest ranking level, one of the ballots will
//  transfer to candidate 1 and the other ballot
//  will transfer to candidate 2.

If you care about the algorithm, you can think of it this way:  A ballot 
that's transferred to candidate 1 goes into array position 1, ..., a 
ballot for candidate 12 goes into array position 12, a ballot equally 
marked for both candidate 11 and candidate 12 goes into array position 
1112, a ballot equally marked for candidates 7, 14, and 23 goes into 
array position 071423, etc.  (The sequence of candidate numbers in the 
encoded number has to be consistent.)

In the real code, instead of multiplying by 100 for each offset, a 
smaller number is used.  On this basis, as I recall, a 16-bit integer 
can hold up to five equal-ranked candidates.  If there are more than 
five, that voter deserves to have their ballot ignored until only five 
of their equal-ranked candidates remain (after elimination).

(Earlier we had a discussion in which we concluded that even though IRV 
data is not precinct summable, it can be compressed and transmitted so 
fast that there is no excuse for claiming the extra marks would take too 
long to upload to the central counting location.)

It continues to surprise me that the FairVote-promoted "RCV" (IRV and 
STV) certified software is so primitive.

For example, that software discards a ballot the moment the counting 
detects multiple marks in the same choice column -- even if all but one 
of those marks are for candidates who have already been eliminated!

FairVote terminology refers to an "overvote" as if it's a voter mistake 
to mark multiple candidates at the same choice level.

Yet ranking multiple candidates at the same choice level is NOT a voter 
mistake!!!  It's a software designer's mistake!

Let's fix it for the benefit of the many more voters who will soon be 
marking ranked choice ballots.

It's much easier to "teach" software to count any ballot marking pattern 
than to teach voters to constrain their marks to what some poorly 
designed, primitive software is capable of counting.

Richard Fobes


On 11/11/2022 5:26 PM, Colin Champion wrote:
> On 11/11/2022 20:49, Forest Simmons wrote:
>>
>> Since almost all RCV implementations limit the number of candidates 
>> that can be ranked on a ballot, the simplest decent  RCV method is ... 
>> Elect the uncovered candidate that is unranked on the fewest ballot
>>
> Does anyone know why this truncation is imposed? If it’s to limit the 
> amount of work needed to count the ballots, wouldn’t it make sense for 
> Condorcet supporters to advocate a method which was countable in linear 
> time? In practice this would presumably be Sequential Pairwise 
> Elimination with an FPTP pre-ranking. If you insist on a quadratic time 
> method and accept the corollary of ballot truncation, I don’t imagine it 
> will work very well. Or am I missing something?
> 
> CJC
> ----
> Election-Methods mailing list - see https://electorama.com/em for list info


More information about the Election-Methods mailing list