I am currently trying to work out a problem with a voting system for a local club. Competitions are held frequently and the current system works as such:
- Everbody who enters the competition gets to vote
- Everybody gets 3 votes; first second and third
- First is worth 3 points, second is 2 and third is 1
- After all votes are submitted the points are added up those with the most points win (currently top 6)
- You cannot give any vote for yourself
The problem we have is that there are sometimes situations where one or more members are unavailable to cast votes. This is gives them an unfair advantage.
E.g. Members A, B, C and D enter. D does not vote. This means that A, B and C must spread their votes out among the other 2 voters plus D which means that every voter must vote for D whereas the other 3 contestants do not have the same advantage.
I ran some simulations and for 10 contestants and 1 non-voter, the non-voter scores an average of 6 points and the others score an average of about 5.3.
Intuitively the advantage for the non-voters decreases as the total number of contestants increases.
We have considered a couple of solutions, such as taking 1 point off the total of the non-voters, or spreading the number of votes the non-voters would have had evenly across the rest of the contestants.
Neither of these seem very elegant and I am sure there is a mathematical solution to this that depends on the number of contestants and number of non-voters.
Is there a way to keep the voting fair under the above system?