|
|
|
|
|
|
|
|
|
|
|
|
|
|
Daniel
Experienced Roboteer
Joined: 30 Aug 2005
Posts: 2729
Location: Gold Coast
|
Ummmmmm, yes
Basically think about it being your chances of beating another robot. You should expect Bender to beat all the other robots, which is why its at the top. But a new robot is an unknown. It might be good or it might be bad, so it starts of with an average score.
Actually I'm too tired to think up a proper explanation
I've been thinking about changing the calculation to take into account the number of fights a robot has been in. If a new robot fights fights an average veteran that as been in 20 fights, for example a new robot draws Black and White for its first ever fight, then you should expect Black and White to be more likely to win. So I want to change the multiplier depending on the defferance between the number of fights that have been fought byt the two robots. Currently the constant it 27, so if Black and White wins it would get 13.5 and the the other robot would lose 13.5. I want to change that so Black and White would get 10 if it wins, but if the new robot wins it would get 17
The current equations are:
New score for Winner = Old score + (K * (1-M))
New score for Loser = Old score - (K * (1-M))
Where K = a constant 27
and M = 1 / (1 + 10 ^ ((Loser score - Winner Score)/400))
An example would be Bender vs Avenger
If Bender won
K = 27
M = 1 / (1 + 10 ^ ((1201.488034 - 1362.621143)/400))
= 0.7166 (eg. Bender has a 71.66% chance of winning that fight)
Bender's new score = 1362.621143 + (27 * (1 - 0.7166)) = 1370.2735
Avenger's new score = 1201.488034 - (27 * (1 - 0.7166)) = 1193.836234
If Avenger won
M = 27
M = 1 / (1 + 10 ^ ((1362.621143 - 1201.488034) / 400))
= 0.2834
Avenger's new score = 1201.488034 + (27 * (1 - 0.2834)) = 1220.8357
Bender's new score = 1362.621143 - (27 * (1 - 0.2834)) = 1343.2729
You'll notice that Avenger gets a lot more points for winning then Bender did. This is because it went against the predicted 72% chance of Avenger winning and so Avenger "deserved" the bigger score.
Now I want to change the K factor depending on the number of fights a robot has been in.
K = 27 - ((number of fight for the winner - number of fights for the loser) / 4)
If i use the above examples
Bender has been in 24 fights
Avenger has been in 4 fights
If Bender won
K = 27 - ((24 - 4) / 4) = 22
M = 1 / (1 + 10 ^ ((1201.488034 - 1362.621143)/400))
= 0.7166
Bender's new score = 1362.621143 + (22 * (1 - 0.7166)) = 1368.8559
Avenger's new score = 1201.488034 - (22 * (1 - 0.7166)) = 1195.2532
If Avenger won
M = 27 - ((4 - 24) / 4) = 32
M = 1 / (1 + 10 ^ ((1362.621143 - 1201.488034) / 400))
= 0.2834
Avenger's new score = 1201.488034 + (32 * (1 - 0.2834)) = 1224.4192
Bender's new score = 1362.621143 - (32 * (1 - 0.2834)) = 1339.6899
This gives Avenger even more points because it was effectivly a Newbie beating Veteran, and so "deserves" a bit more
Ok, maybe that doesn't mean much to people. I should use the Black and White vs Newbie example
Black and White wins
Old System:
Black and Whites old score = 1202.685199
- New Score = 1216.0826
Newbie old score = 1200
- New Score = 1186.6026
New System:
Black and White's old score = 1202.585199
- New Score = 1213.0054
Newbie's old score = 1200
- New Score = 1189.5798
ok, maybe still doesn't mean much. Probably effect historical scores more where a couple of robots have 60+ fights. But it'll give me a chance to rewrite the tables again since it is so slow to work on and bogs the computer down so much.
It'll be interesting moving 75 competitions, 191 robots and 1161 fights across.
|
Mon May 17, 2010 10:05 am |
|
|
|