NAME
Vote::Count::Method::CondorcetVsIRV
VERSION 0.11
SYNOPSIS
use Vote::Count::Method::CondorcetVsIRV;
my $Election = Vote::Count::Method::CondorcetVsIRV->new( ... );
my $result = $Election->CondorcetVsIRV();
or
my $Election = Vote::Count->new( TieBreakMethod => 'approval' );
my $result = $Election->CondorcetVsIRV( relaxed => 1 );
equivalent to default:
my $result = $Election->CondorcetVsIRV( relaxed => 0, smithsetirv => 0 );
say $result->{'winner'};
$Election->WriteAllLogs();
Returns a HashRef with a key for winner.
Method Common Name: Condorcet vs IRV
Method Summary
Determine if the Condorcet Winner needed votes from the IRV winner, elect the Condorcet Winner if there was not a later harm violation, elect the IRV winner if there was.
The Relaxed Later Harm option will select the Condorcet Winner when their margin of victory over the IRV Winner is greater than the number of later votes they need from the IRV Winner to be a Condorcet Winner.
This is a Redacting Condorcet Method because it uses Ballots which have been redacted for Later Harm effect.
Method Description
The method looks for a Condorcet Winner, if there is none it uses IRV to find the winner. If there is a Condorcet Winner it uses standard IRV to find the IRV winner. When the two winners do not match, it copies the ballots and redacts the later choice from those ballots that indicated both. It then determines if one of the two choices is a Condorcet Winner, if not it determines if one of them would win IRV. If either choice is the winner with redacted ballots, they win. If neither wins, the Condorcet Winner dependended on a Later Harm effect against the IRV winner, and the IRV Winner is elected.
With Relaxed Later Harm, when neither choice wins the redacted ballots, takes the greatest loss by the Condorcet Winner in the redacted matrix and compares it to their margin of victory over the IRV winner. If the victory margin is greater the Condorcet Winner is elected.
It is optional to use Smith Set IRV for the case where there is no Condorcet Winner and for the redacted confirmation. Unfortunately, when there is a Condorcet Winner Smith Set IRV cannot be used to find the IRV Winner without temporarily dropping the Condorcet Winner, which would prevent them from confirming via IRV.
Criteria
Simplicity
This is a medium complexity method. It builds on simpler methods but has a significant number of steps and branches.
Later Harm
This method meets Later Harm with the default strict option.
The relaxed option allows a finite Later Harm effect.
Using the TCA Floor Rule and or Smith Set IRV add small Later Harm effects.
Condorcet Criteria
This method only meets Condorcet Loser, when the IRV winner is chosen of the Condorcet Winner, the winner is outside the Smith Set. Meets Condorcer Winner, Condorcet Loser, and Smith.
Consistency
Because this method chooses between the outcomes of two different methods, it inherits the consistency failings of both. It improves clone handling versus IRV, because in cases where the most supported clone loses IRV, it is often a Condorcet Winner. Likely there is overall improvement vs IRV.
Criticism and Response
Condorcet Vs IRV almost always picks the IRV Winner over the Condorcet Winner, on those occaisions that it does overturn IRV it should be considered a success.
The ability to allow an optional tolerance for Later Harm is unique and powerful. The importance of Later Harm is the incentive it creates for strategic voting. To obtain sincere ballots in an election that is likely to be close with more than two significant choices, the voters must percieve the risk of not ranking a supported choice to be greater than the later harm risk. The relaxed option creates a reasonable tolerance for later harm. Notably in the Burlington 2009 Mayor Election where disatisfaction with winner resulted in the repeal of IRV, the Later Harm effect was significant and Condorcet Vs IRV confirms the IRV winner, use of Condorcet Vs IRV would have shown why the IRV decision was correct.
There is a todo note in Vote::Count::Redact to add more options for pair redacting that would only apply redaction to the first choice, these options would slightly increase the frequency of confirming the Condorcet Winner.
Implementation
Details specific to this implementation.
The Tie Breaker is defaulted to (modified) Grand Junction for resolvability. Any Tie Breaker supported by Vote::Count::TieBreaker may be used, except that 'all' should not be used.
There are two other important options: relaxed and smithsetirv. Options may be added in the future to limit redaction to the first choice.
Function Name: CondorcetVsIRV
Runs the election, returns a hashref containing the winner, similar to how other Vote::Count Methods such as RunIRV behave.
LogTo, LogPath, LogBaseName, LogRedactedTo
The first three behave as normal Vote::Count::Log methods, except that the default is /tmp/condorcetvsirv.
LogRedactedTo defaults to appending _redacted into the log names for the redacted election, it can be overridden by setting a value (which should be /path/basename) like LogTo.
WriteLog WriteAllLogs
WriteLog behaves normally, there is a log set for the CondorcetVSIRV object as well as child logs for the Election and RedactedElection, each of which has a set of logs for PairMatrix as well. WriteAllLogs will write all of these logs.
BUG TRACKER
https://github.com/brainbuz/Vote-Count/issues
AUTHOR
John Karr (BRAINBUZ) brainbuz@cpan.org
CONTRIBUTORS
Copyright 2019 by John Karr (BRAINBUZ) brainbuz@cpan.org.
LICENSE
This module is released under the GNU Public License Version 3. See license file for details. For more information on this license visit http://fsf.org.