Reputation: 6307
I'm implementing a website that hosts fitness competitions, and I need a good way to generate a "score" or "rank".
Competitions consist of a team of one or more athletes/contestants from a given gym challenging the same number of contestants from one or more other gyms. There isn't any limit to the number of gyms that can enter the competition - there could potentially be over one hundred gyms that enter the competition. Points are assigned to each team based on various factors: time, reps, heaviest lift, etc.
Attributing a score to each team within a single competition is the easy part; things get a little more interesting when we try to generate a ranking for each gym based on their history of competitions. Intuitively, a team that places 1st amongst 10 other gyms in a competition should rank higher than a team that places 1st among 5 other gyms from a different competition.
I'm having trouble coming up with an intuitive, fair ranking mechanism. Any concrete ideas or suggestions on perhaps a family of ranking algorithms would be appreciated.
Upvotes: 4
Views: 4238
Reputation: 41
Check out TrueSkill used in Halo to rank players. http://research.microsoft.com/en-us/projects/trueskill/details.aspx ELO only deals with 1v1 whereas TrueSkill can deal with teams of 1 or more players and multiple teams.
There are also online calculators if you don't want to code anything. If you want code examples, the original is available in F#, Jeff Moser re-coded it in C# and recently PHP. Google "Jeff Moser Computing skill"
Upvotes: 4
Reputation: 1628
If you see the competition as gym. Maybe the fair rank depends on their muscle which surely relies on how many exercise they have done and how regular it is. Of course some variable from 'before' and 'after' exercising must be taken. In a brief, calculate the effectiveness of the exercise they do.
Normally, when exercise x is done 40 times, one can increase his muscle 5 points
Mr. A does exercise x 30 times and got 4 muscle. Hence Score for Mr. A = (4 / 30 ) / (5 / 40)
The total score is the sum of another exercise done by Mr. A. Total = Score(x) + Score(y) + Score(z)
This is fair enough since the actual result is compared directly to expected result. This can also prevents a stronger person taking an easy exercise. Since, you know, Arnold Schwarzenegger can't increase his muscle using 1 kg dumbell.
Of course the unit (muscle) may vary depends on the exercise.
Upvotes: 1