LiamM32 / Eurovision_Condorcet

A program to count votes for the Eurovision Song Contest using a redesigned voting system.
1 stars 2 forks source link

Collusion group detector #17

Open LiamM32 opened 1 year ago

LiamM32 commented 1 year ago

A collusion group (name pending) is a group of countries that all rank each-other above all entries outside the collusion group. The strength of a collusion group is the smallest ratio by which an entry from a group member beats an entry from outside the collusion group, according to the votes from one of the group member countries.

The collusion group detection algorithm may be applied only votes from a particular voting group (especially the jury votes), or may be based on each country's overall result from a mix of all voting groups.

The algorithm to determine each country's rankings of others may be either Schulze or Minimax margins.

This collusion detector can run after the contest results have been determined. It can be made to output a file with information on the collusion groups.

I would like there to be a setting to only count collusion groups that exist for multiple contests in a row, using pairwise information on multiple contests. In this case, the strength would be based on the smallest ratio or margin from either contest.

I have some ideas of how the algorithm may work. But I don't know what the most efficient algorithm would be.