election-methods@mailman.electorama.com

Technical discussion of election methods

View all threads

Implementation of STV with same/duplicate/tied preference/ranking?

PZ
Peter Zbornik
Wed, Jun 1, 2016 4:53 PM

Dear all,

do any one of you know of any implemenation or software package, which
deals with tied/same preferences, i.e. a ballot where two candidates have
the same preference.

Example: Candidates A, B, C, D, E
Ballots:
1: A=B>C>D>E
1: A>B>C>D>E
1: A>B=C=D>E

The first and the last ballots give the same preference to two candidates.

In "standard" STV, where we only follow the number of "first" preferences.
after "deleting" elected and eliminated candidates from the ballot, the
same preference can be resolved during the count by
a) splitting the tied first preferences into n ballots, each with weight
1/n, where n is the number of candidates which at the current stage in the
count are all most prefered on the ballot. Each of these ballots will have
a different candidate most preferred and the rest with tied second
preference.

Example: let's return to the example above. We elect two seats: at this
point in the count A is elected, none is eliminated. On the last ballot of
the three ballots above thus B, C and D are tied and all most preferred.
We thus split the ballot into n=3 ballot, each with weight 1/3 of the
original weight, with a different candidate most preferred and the rest
tied:
Thus the ballot 1: A>B=C=D>E, is at this point in the count, after the
election of A, treated as three ballots:
1/3 B>C=D>E
1/3 C>B=D>E
1/3 D>B=C>E
Thus we resolve the tie by simply adding 1/3 of the to the (currently)
"first" preferences of B, C and D in the count.

This is the only computationally efficient way to resolve ties in STV as
far as i know.

Does anyone of you know of any implementation of the algoritm above?
It seems to be a useful feature, when the voter does not want to be forced
to prefer one candidate over another.

I discussed this issue on the EM list several years ago.
No implementation was then available, so I give this a try now again.

Best regards

Peter Zbornik

Dear all, do any one of you know of any implemenation or software package, which deals with tied/same preferences, i.e. a ballot where two candidates have the same preference. Example: Candidates A, B, C, D, E Ballots: 1: A=B>C>D>E 1: A>B>C>D>E 1: A>B=C=D>E The first and the last ballots give the same preference to two candidates. In "standard" STV, where we only follow the number of "first" preferences. after "deleting" elected and eliminated candidates from the ballot, the same preference can be resolved during the count by a) splitting the tied first preferences into n ballots, each with weight 1/n, where n is the number of candidates which at the current stage in the count are all most prefered on the ballot. Each of these ballots will have a different candidate most preferred and the rest with tied second preference. Example: let's return to the example above. We elect two seats: at this point in the count A is elected, none is eliminated. On the last ballot of the three ballots above thus B, C and D are tied and all most preferred. We thus split the ballot into n=3 ballot, each with weight 1/3 of the original weight, with a different candidate most preferred and the rest tied: Thus the ballot 1: A>B=C=D>E, is at this point in the count, after the election of A, treated as three ballots: 1/3 B>C=D>E 1/3 C>B=D>E 1/3 D>B=C>E Thus we resolve the tie by simply adding 1/3 of the to the (currently) "first" preferences of B, C and D in the count. This is the only computationally efficient way to resolve ties in STV as far as i know. Does anyone of you know of any implementation of the algoritm above? It seems to be a useful feature, when the voter does not want to be forced to prefer one candidate over another. I discussed this issue on the EM list several years ago. No implementation was then available, so I give this a try now again. Best regards Peter Zbornik
BO
Brian Olson
Wed, Jun 1, 2016 5:28 PM

Yes, my C implementation of STV does this.

https://bitbucket.org/bodhisnarkva/voteutil/
https://bitbucket.org/bodhisnarkva/voteutil/src/185ebbd922685d9fffe221df4a0ded6d6bdaea83/c/STV.c

... but not my Java implementation, so, I've been a little inconsistent I
guess. But I do think it's right to split a voter's vote temporarily when
they have a tie for first place. Probably one of them will fall out in some
round, or maybe they both get elected, yay?

On Wed, Jun 1, 2016 at 12:53 PM, Peter Zbornik pzbornik@gmail.com wrote:

Dear all,

do any one of you know of any implemenation or software package, which
deals with tied/same preferences, i.e. a ballot where two candidates have
the same preference.

Example: Candidates A, B, C, D, E
Ballots:
1: A=B>C>D>E
1: A>B>C>D>E
1: A>B=C=D>E

The first and the last ballots give the same preference to two candidates.

In "standard" STV, where we only follow the number of "first" preferences.
after "deleting" elected and eliminated candidates from the ballot, the
same preference can be resolved during the count by
a) splitting the tied first preferences into n ballots, each with weight
1/n, where n is the number of candidates which at the current stage in the
count are all most prefered on the ballot. Each of these ballots will have
a different candidate most preferred and the rest with tied second
preference.

Example: let's return to the example above. We elect two seats: at this
point in the count A is elected, none is eliminated. On the last ballot of
the three ballots above thus B, C and D are tied and all most preferred.
We thus split the ballot into n=3 ballot, each with weight 1/3 of the
original weight, with a different candidate most preferred and the rest
tied:
Thus the ballot 1: A>B=C=D>E, is at this point in the count, after the
election of A, treated as three ballots:
1/3 B>C=D>E
1/3 C>B=D>E
1/3 D>B=C>E
Thus we resolve the tie by simply adding 1/3 of the to the (currently)
"first" preferences of B, C and D in the count.

This is the only computationally efficient way to resolve ties in STV as
far as i know.

Does anyone of you know of any implementation of the algoritm above?
It seems to be a useful feature, when the voter does not want to be forced
to prefer one candidate over another.

I discussed this issue on the EM list several years ago.
No implementation was then available, so I give this a try now again.

Best regards

Peter Zbornik


Election-Methods mailing list - see http://electorama.com/em for list info

Yes, my C implementation of STV does this. https://bitbucket.org/bodhisnarkva/voteutil/ https://bitbucket.org/bodhisnarkva/voteutil/src/185ebbd922685d9fffe221df4a0ded6d6bdaea83/c/STV.c ... but not my Java implementation, so, I've been a little inconsistent I guess. But I do think it's right to split a voter's vote temporarily when they have a tie for first place. Probably one of them will fall out in some round, or maybe they both get elected, yay? On Wed, Jun 1, 2016 at 12:53 PM, Peter Zbornik <pzbornik@gmail.com> wrote: > Dear all, > > do any one of you know of any implemenation or software package, which > deals with tied/same preferences, i.e. a ballot where two candidates have > the same preference. > > Example: Candidates A, B, C, D, E > Ballots: > 1: A=B>C>D>E > 1: A>B>C>D>E > 1: A>B=C=D>E > > The first and the last ballots give the same preference to two candidates. > > In "standard" STV, where we only follow the number of "first" preferences. > after "deleting" elected and eliminated candidates from the ballot, the > same preference can be resolved during the count by > a) splitting the tied first preferences into n ballots, each with weight > 1/n, where n is the number of candidates which at the current stage in the > count are all most prefered on the ballot. Each of these ballots will have > a different candidate most preferred and the rest with tied second > preference. > > Example: let's return to the example above. We elect two seats: at this > point in the count A is elected, none is eliminated. On the last ballot of > the three ballots above thus B, C and D are tied and all most preferred. > We thus split the ballot into n=3 ballot, each with weight 1/3 of the > original weight, with a different candidate most preferred and the rest > tied: > Thus the ballot 1: A>B=C=D>E, is at this point in the count, after the > election of A, treated as three ballots: > 1/3 B>C=D>E > 1/3 C>B=D>E > 1/3 D>B=C>E > Thus we resolve the tie by simply adding 1/3 of the to the (currently) > "first" preferences of B, C and D in the count. > > This is the only computationally efficient way to resolve ties in STV as > far as i know. > > Does anyone of you know of any implementation of the algoritm above? > It seems to be a useful feature, when the voter does not want to be forced > to prefer one candidate over another. > > I discussed this issue on the EM list several years ago. > No implementation was then available, so I give this a try now again. > > Best regards > > Peter Zbornik > > ---- > Election-Methods mailing list - see http://electorama.com/em for list info > >
RB
robert bristow-johnson
Wed, Jun 1, 2016 8:03 PM

---------------------------- Original Message ----------------------------

Subject: [EM] Implementation of STV with same/duplicate/tied preference/ranking?

From: "Peter Zbornik" pzbornik@gmail.com

Date: Wed, June 1, 2016 12:53 pm

To: "EM" election-methods@lists.electorama.com


do any one of you know of any implementation or software package, which

deals with tied/same preferences, i.e. a ballot where two candidates have

the same preference.

Example: Candidates A, B, C, D, E

Ballots:

1: A=B>C>D>E

1: A>B>C>D>E

1: A>B=C=D>E

The first and the last ballots give the same preference to two candidates.

In "standard" STV, where we only follow the number of "first" preferences.

after "deleting" elected and eliminated candidates from the ballot, the

same preference can be resolved during the count by

a) splitting the tied first preferences into n ballots, each with weight

1/n, where n is the number of candidates which at the current stage in the

count are all most preferred on the ballot. Each of these ballots will have

a different candidate most preferred and the rest with tied second

preference.

Example: let's return to the example above. We elect two seats: at this

point in the count A is elected, none is eliminated. On the last ballot of

the three ballots above thus B, C and D are tied and all most preferred.

We thus split the ballot into n=3 ballot, each with weight 1/3 of the

original weight, with a different candidate most preferred and the rest

tied:

Thus the ballot 1: A>B=C=D>E, is at this point in the count, after the

election of A, treated as three ballots:

1/3 B>C=D>E

1/3 C>B=D>E

1/3 D>B=C>E

Thus we resolve the tie by simply adding 1/3 of the to the (currently)

"first" preferences of B, C and D in the count.

This is the only computationally efficient way to resolve ties in STV as

far as i know.

Does anyone of you know of any implementation of the algorithm above?

It seems to be a useful feature, when the voter does not want to be forced

to prefer one candidate over another.


i can tell you that when we had IRV in Burlington Vermont 7 years ago, that the voter was forced to do that. �equal ranking of candidates resulted in a spoiled ballot for that particular race (which, for us, was only the mayoral
race).

--
r b-j � � � � � � � � �rbj@audioimagination.com
"Imagination is more important than knowledge."

---------------------------- Original Message ---------------------------- Subject: [EM] Implementation of STV with same/duplicate/tied preference/ranking? From: "Peter Zbornik" <pzbornik@gmail.com> Date: Wed, June 1, 2016 12:53 pm To: "EM" <election-methods@lists.electorama.com> -------------------------------------------------------------------------- > do any one of you know of any implementation or software package, which > deals with tied/same preferences, i.e. a ballot where two candidates have > the same preference. > > Example: Candidates A, B, C, D, E > Ballots: > 1: A=B>C>D>E > 1: A>B>C>D>E > 1: A>B=C=D>E > > The first and the last ballots give the same preference to two candidates. > > In "standard" STV, where we only follow the number of "first" preferences. > after "deleting" elected and eliminated candidates from the ballot, the > same preference can be resolved during the count by > a) splitting the tied first preferences into n ballots, each with weight > 1/n, where n is the number of candidates which at the current stage in the > count are all most preferred on the ballot. Each of these ballots will have > a different candidate most preferred and the rest with tied second > preference. > > Example: let's return to the example above. We elect two seats: at this > point in the count A is elected, none is eliminated. On the last ballot of > the three ballots above thus B, C and D are tied and all most preferred. > We thus split the ballot into n=3 ballot, each with weight 1/3 of the > original weight, with a different candidate most preferred and the rest > tied: > Thus the ballot 1: A>B=C=D>E, is at this point in the count, after the > election of A, treated as three ballots: > 1/3 B>C=D>E > 1/3 C>B=D>E > 1/3 D>B=C>E > Thus we resolve the tie by simply adding 1/3 of the to the (currently) > "first" preferences of B, C and D in the count. > > This is the only computationally efficient way to resolve ties in STV as > far as i know. > > Does anyone of you know of any implementation of the algorithm above? > It seems to be a useful feature, when the voter does not want to be forced > to prefer one candidate over another. � i can tell you that when we had IRV in Burlington Vermont 7 years ago, that the voter *was* forced to do that. �equal ranking of candidates resulted in a spoiled ballot for that particular race (which, for us, was only the mayoral race). -- r b-j � � � � � � � � �rbj@audioimagination.com "Imagination is more important than knowledge."
PZ
Peter Zbornik
Thu, Jun 2, 2016 11:06 AM

Hi Brian,

thanks for the links. I'll have a look and let you know, iin case I will
use it or have questions.

Peter

On 1 June 2016 at 19:28, Brian Olson bql@bolson.org wrote:

Yes, my C implementation of STV does this.

https://bitbucket.org/bodhisnarkva/voteutil/

https://bitbucket.org/bodhisnarkva/voteutil/src/185ebbd922685d9fffe221df4a0ded6d6bdaea83/c/STV.c

... but not my Java implementation, so, I've been a little inconsistent I
guess. But I do think it's right to split a voter's vote temporarily when
they have a tie for first place. Probably one of them will fall out in some
round, or maybe they both get elected, yay?

On Wed, Jun 1, 2016 at 12:53 PM, Peter Zbornik pzbornik@gmail.com wrote:

Dear all,

do any one of you know of any implemenation or software package, which
deals with tied/same preferences, i.e. a ballot where two candidates have
the same preference.

Example: Candidates A, B, C, D, E
Ballots:
1: A=B>C>D>E
1: A>B>C>D>E
1: A>B=C=D>E

The first and the last ballots give the same preference to two candidates.

In "standard" STV, where we only follow the number of "first"
preferences. after "deleting" elected and eliminated candidates from the
ballot, the same preference can be resolved during the count by
a) splitting the tied first preferences into n ballots, each with weight
1/n, where n is the number of candidates which at the current stage in the
count are all most prefered on the ballot. Each of these ballots will have
a different candidate most preferred and the rest with tied second
preference.

Example: let's return to the example above. We elect two seats: at this
point in the count A is elected, none is eliminated. On the last ballot of
the three ballots above thus B, C and D are tied and all most preferred.
We thus split the ballot into n=3 ballot, each with weight 1/3 of the
original weight, with a different candidate most preferred and the rest
tied:
Thus the ballot 1: A>B=C=D>E, is at this point in the count, after the
election of A, treated as three ballots:
1/3 B>C=D>E
1/3 C>B=D>E
1/3 D>B=C>E
Thus we resolve the tie by simply adding 1/3 of the to the (currently)
"first" preferences of B, C and D in the count.

This is the only computationally efficient way to resolve ties in STV as
far as i know.

Does anyone of you know of any implementation of the algoritm above?
It seems to be a useful feature, when the voter does not want to be
forced to prefer one candidate over another.

I discussed this issue on the EM list several years ago.
No implementation was then available, so I give this a try now again.

Best regards

Peter Zbornik


Election-Methods mailing list - see http://electorama.com/em for list
info

Hi Brian, thanks for the links. I'll have a look and let you know, iin case I will use it or have questions. Peter On 1 June 2016 at 19:28, Brian Olson <bql@bolson.org> wrote: > Yes, my C implementation of STV does this. > > https://bitbucket.org/bodhisnarkva/voteutil/ > > https://bitbucket.org/bodhisnarkva/voteutil/src/185ebbd922685d9fffe221df4a0ded6d6bdaea83/c/STV.c > > ... but not my Java implementation, so, I've been a little inconsistent I > guess. But I do think it's right to split a voter's vote temporarily when > they have a tie for first place. Probably one of them will fall out in some > round, or maybe they both get elected, yay? > > > On Wed, Jun 1, 2016 at 12:53 PM, Peter Zbornik <pzbornik@gmail.com> wrote: > >> Dear all, >> >> do any one of you know of any implemenation or software package, which >> deals with tied/same preferences, i.e. a ballot where two candidates have >> the same preference. >> >> Example: Candidates A, B, C, D, E >> Ballots: >> 1: A=B>C>D>E >> 1: A>B>C>D>E >> 1: A>B=C=D>E >> >> The first and the last ballots give the same preference to two candidates. >> >> In "standard" STV, where we only follow the number of "first" >> preferences. after "deleting" elected and eliminated candidates from the >> ballot, the same preference can be resolved during the count by >> a) splitting the tied first preferences into n ballots, each with weight >> 1/n, where n is the number of candidates which at the current stage in the >> count are all most prefered on the ballot. Each of these ballots will have >> a different candidate most preferred and the rest with tied second >> preference. >> >> Example: let's return to the example above. We elect two seats: at this >> point in the count A is elected, none is eliminated. On the last ballot of >> the three ballots above thus B, C and D are tied and all most preferred. >> We thus split the ballot into n=3 ballot, each with weight 1/3 of the >> original weight, with a different candidate most preferred and the rest >> tied: >> Thus the ballot 1: A>B=C=D>E, is at this point in the count, after the >> election of A, treated as three ballots: >> 1/3 B>C=D>E >> 1/3 C>B=D>E >> 1/3 D>B=C>E >> Thus we resolve the tie by simply adding 1/3 of the to the (currently) >> "first" preferences of B, C and D in the count. >> >> This is the only computationally efficient way to resolve ties in STV as >> far as i know. >> >> Does anyone of you know of any implementation of the algoritm above? >> It seems to be a useful feature, when the voter does not want to be >> forced to prefer one candidate over another. >> >> I discussed this issue on the EM list several years ago. >> No implementation was then available, so I give this a try now again. >> >> Best regards >> >> Peter Zbornik >> >> ---- >> Election-Methods mailing list - see http://electorama.com/em for list >> info >> >> >