[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