votesim.votesystems.condcalcs¶
Functions for calculating Condorcetrelated voting methods
Contents
Class Summary¶

Pairwise vote information 

Condorcet calculations for winnerloser pairs in headtohead matchups. 
Special votepairs exception for condorcet methods 
Function Summary¶

Calculate condorcet winner from ranked data if winner exists. 

General purpose condorcet winner checker for multiple winners. 

Check if there is a condorcet cycle. 

Calculate total votes for a candidate against another candidate given ranked voter data. 

Get headtohead votes for a candidate against another candidate given scored voter data 

Compute smith set. 
Module Classes¶
VoteMatrix¶

class
votesim.votesystems.condcalcs.
VoteMatrix
(ranks=None, matrix=None)¶ Pairwise vote information
 Parameters
ranks (array shape (a, b)) – Ranking data
matrix (array shape (b, b)) – Headtohead vote matrix
Method/Attribute Summary¶
Number of candidates 

array shaped (a, 3) WinLoss candidate pairs 

VoteMatrix.
matrix
()¶

VoteMatrix.
cnum
()¶ Number of candidates

VoteMatrix.
margin_matrix
()¶

VoteMatrix.
pairs
()¶ array shaped (a, 3) WinLoss candidate pairs
column 0 = winning candidate
column 1 = losing candidate
column 2 = margin of victory
column 3 = votes for winner
VotePairs¶

class
votesim.votesystems.condcalcs.
VotePairs
(pairs)¶ Condorcet calculations for winnerloser pairs in headtohead matchups.
Method/Attribute Summary¶
winner loser pairs 

winners 

losers 

Find Condorcet losers in pairs that lose all all other pairs 

Find Condorcet winners in pairs 

Return copy of VotePairs 


Remove candidates from the pairs 
Prune condorcet losers out of the pairs list 

Prune condorcet winners out of the pairs list 

Determine whether pairs have a Condorcet cycle 

VotePairs.
pairs
()¶ array shape (a, 2) : winner loser pairs

VotePairs.
winners
()¶ array shape (a,) : winners

VotePairs.
losers
()¶ array shape (a,) : losers

VotePairs.
condorcet_losers
()¶ Find Condorcet losers in pairs that lose all all other pairs

VotePairs.
condorcet_winners
()¶ Find Condorcet winners in pairs

VotePairs.
copy
()¶ Return copy of VotePairs

VotePairs.
remove_candidate
(ilist)¶ Remove candidates from the pairs

VotePairs.
prune_losers
()¶ Prune condorcet losers out of the pairs list
 Returns
out – New pruned pairs
 Return type
 Raises
VotePairsError – Raised if no Condorcet losers can be pruned.

VotePairs.
prune_winners
()¶ Prune condorcet winners out of the pairs list

VotePairs.
has_cycle
()¶ Determine whether pairs have a Condorcet cycle
Module Functions¶
condorcet_check_one¶

votesim.votesystems.condcalcs.
condorcet_check_one
(ranks=None, scores=None)¶ Calculate condorcet winner from ranked data if winner exists. Partial election method; function does not handle outcomes when condorcet winner is not found.
 Parameters
ranks (array shaped (a, b)) –
Election voter rankings, from [1 to b]. Data composed of candidate rankings, with
Voters as the rows
Candidates as the columns.
Use 0 to specify unranked (and therefore not to be counted) ballots.
a : number of voters dimension. Voters assign ranks for each candidate.
 bnumber of candidates. A score is assigned for each candidate
from 0 to b1.
 Returns
out –
Index location of condorcet winner.
Return 1 if no condorcet winner found.
 Return type
int
condorcet_winners_check¶

votesim.votesystems.condcalcs.
condorcet_winners_check
(ranks=None, matrix=None, pairs=None, numwin=1, full_ranking=False)¶ General purpose condorcet winner checker for multiple winners. This check does not resolve cycles.
 Parameters
ranks (array shaped (a, b)) –
Election voter rankings, from [1 to b]. Data composed of candidate rankings, with
Voters as the rows
Candidates as the columns.
Use 0 to specify unranked (and therefore not to be counted) ballots.
a : number of voters dimension. Voters assign ranks for each candidate.
 bnumber of candidates. A score is assigned for each candidate
from 0 to b1.
matrix (array shaped (b, b)) – Win minus Loss margin matrix
pairs (array shaped (c, 3)) –
WinLoss candidate pairs
column 0 = winning candidate
column 1 = losing candidate
column 2 = margin of victory
column 3 = votes for winner
full_ranking (bool (default False)) – If True evaluate entire ranking of candidates for score output
 Returns
winners (array of shape(d,)) –
 Index locations of each winner.
b = numwin if no ties detected
b > 1 if ties are detected.
winners is empty if Condorcet cycle detected
ties (array of shape (e,)) – Index locations of ties
scores (array of shape (b,)) – Rankings of all candidates
has_cycle¶

votesim.votesystems.condcalcs.
has_cycle
(pairs)¶ Check if there is a condorcet cycle.
 Parameters
pairs (array shaped (a, 3)) –
WinLoss candidate pairs
column 0 = winning candidate
column 1 = losing candidate
column 2 = margin of victory
column 3 = votes for winner
 Returns
out – True if cycle detected. False otherwise
 Return type
bool
pairwise_rank_matrix¶

votesim.votesystems.condcalcs.
pairwise_rank_matrix
(ranks)¶ Calculate total votes for a candidate against another candidate given ranked voter data.
 Parameters
ranks (array shaped (a, b)) –
Election voter rankings, from [1 to b]. Data composed of candidate rankings, with
Voters as the rows
Candidates as the columns.
Use 0 to specify unranked (and therefore not to be counted) ballots.
a : number of voters dimension. Voters assign ranks for each candidate.
 bnumber of candidates. A score is assigned for each candidate
from 0 to b1.
 Returns
out – Vote matrix V[i,j]
Total votes for candidate i against candidate j
 Return type
array shaped (b, b,)
pairwise_scored_matrix¶

votesim.votesystems.condcalcs.
pairwise_scored_matrix
(scores)¶ Get headtohead votes for a candidate against another candidate given scored voter data
 Parameters
scores (array shaped (a, b)) –
Election voter scores, 0 to max. Data of candidate ratings for each voter, with
a Voters represented as each rows
b Candidates represented as each column.
 Returns
out – Vote matrix V[i,j]
Total wins for candidate i against candidate j
 Return type
array shaped (b, b,)
smith_set¶

votesim.votesystems.condcalcs.
smith_set
(ranks=None, vm=None, wl=None)¶ Compute smith set. Based on StackOverflow code.
From https://stackoverflow.com/questions/55518900/seekingpseudocodeforcalculatingthesmithandschwartzset Retrieved Dec 28, 2019
 Parameters
ranks (array shaped (a, b)) –
Election voter rankings, from [1 to b]. Data composed of candidate rankings, with
Voters as the rows
Candidates as the columns.
Use 0 to specify unranked (and therefore not to be counted) ballots.
a : number of voters dimension. Voters assign ranks for each candidate.
 bnumber of candidates. A score is assigned for each candidate
from 0 to b1.
vm (array shaped (b, b)) – Votes matrix in favor of ith row candidate against jth column candidate
wl (array shaped (b, b)) – Win minus Loss matrix
 Returns
out – Candidate indices of smith set
 Return type
set