I was wrong... it looked suspicious to me when I wrote it (this is why I added 'if I am not wrong' because I was not totally sure) but I had not got pencil and paper with me at that moment. The correct thing is that k*µ*(1 - µ) is µ*D/2 or (1 - µ)*D/2, depending if µ > 0.5 or µ < 0.5, respectively. As I said before, the number 2 can be discarded of calculations.Ajedrecista wrote: In fact, k*µ*(1 - µ) can be µ*D/[2*(1 - µ)] or (1 - µ)*D/(2*µ) if I am not wrong. You can remove the number 2 for doing less calculations.
I thought a little more this morning trying to simplify the calculations even more. I came up with a trick that avoids to take care if µ < 0.5 or µ > 0.5:
Code: Select all
a = 0.5 + |µ - 0.5| >= 0.5 (the other option is a' = 0.5 - |µ - 0.5| =< 0.5).
a = max.(µ, 1 - µ); a' = min.(µ, 1 - µ).
(Factor of comparison) = c = a*D (the other option is c' = (a')*D).
One must be consistent and use c or c' with all the engines and not mix c and c'. Please note that I got rid of the number 2 because it is only a constant.
Code: Select all
µ_i: score of the i-th engine.
D_i: draw ratio of the i-th engine.
c_i = (0.5 + |µ_i - 0.5|)*D_i
(c')_i = (0.5 - |µ_i - 0.5|)*D_i
Do not forget to use only c_i or (c')_i and avoid to calculate some c_i and some (c')_i in the same Round Robin tournament.
Again, do not mix c_i and (c')_i in comparisons between different Round Robin tournaments.
Regards from Spain.
Ajedrecista.