LOS (again)
Moderators: hgm, Rebel, chrisw
-
- Posts: 1971
- Joined: Wed Jul 13, 2011 9:04 pm
- Location: Madrid, Spain.
Expansion of Ciarrochi's table.
Hello!
Ciarrochi's table is well known for engine testers and/or engine programmers, but I see a drawback in it... the maximum number of games supported is only 1000. I add more results generated by my slightly modified Fortran 95 programme Minimum_score_for_no_regression (I called this modified version Expansion_of_Ciarrochi_s_table. I know I am too original with the names of my programmes... just kidding).
I did a rewrite of my Fortran programmes that calculate standard deviation of matches between two engines: they calculate now sample standard deviations (just replace n in the denominator by (n - 1)). When I computed LOS tables I used the non-sample standard deviation and I realize that if I use sample standard deviations, the results I obtain are a little more approximated to true values IMHO, whatever they are... be quiet, Ed: differences are so small with high number of games, maybe 0.01% or 0.02% at maximum! So I think that LOS tables that I generated some months ago, which you kindly host in your site are enough for the purpose I generated them (getting a rough idea). Maybe it is worth to be hosted somewhere... are you there, Ed? I think it would be a nice complement to LOS tables.
Here is the source code of Expansion_of_Ciarrochi_s_table:
I maintained the assumption of 32% of draws, the same as Ciarrochi. Please bear in mind that my results are approximations, although good ones. I randomly checked some values and all of them match with the ones given by Minimum_score_for_no_regression (it is logical given the fact that Expansion_of_Ciarrochi_s_table is almost a clone), but I always get very reliable results, so I think that these two programmes are free of bugs.
The calculation and print of results were really fast: around 41 ms for a cut-off of 5% (LOS = 95%), 52 ms for a cut-off of 1% (LOS = 99%) and 48 ms for a cut-off of 0.1% (LOS = 99.9%). Anyway, I think the programme is far from being well optimized but I do not care about it.
The output of this programme is a notepad with two columns: number of games (from 2000 to 100000 in steps of 1000) and the minimum score (rounded up to 0.0001%). I merged the three output notepads for getting a more readable format. Please remember that I input a draw ratio of 32%:
Corrections will be welcome because I am not perfect, as expected!
Regards from Spain.
Ajedrecista.
Ciarrochi's table is well known for engine testers and/or engine programmers, but I see a drawback in it... the maximum number of games supported is only 1000. I add more results generated by my slightly modified Fortran 95 programme Minimum_score_for_no_regression (I called this modified version Expansion_of_Ciarrochi_s_table. I know I am too original with the names of my programmes... just kidding).
I did a rewrite of my Fortran programmes that calculate standard deviation of matches between two engines: they calculate now sample standard deviations (just replace n in the denominator by (n - 1)). When I computed LOS tables I used the non-sample standard deviation and I realize that if I use sample standard deviations, the results I obtain are a little more approximated to true values IMHO, whatever they are... be quiet, Ed: differences are so small with high number of games, maybe 0.01% or 0.02% at maximum! So I think that LOS tables that I generated some months ago, which you kindly host in your site are enough for the purpose I generated them (getting a rough idea). Maybe it is worth to be hosted somewhere... are you there, Ed? I think it would be a nice complement to LOS tables.
Here is the source code of Expansion_of_Ciarrochi_s_table:
Code: Select all
! Programme for add more data to Ciarrochi's table.
program Expansion_of_Ciarrochi_s_table
implicit none
character(len=*) :: F; parameter (F = '(I6,A,F7.4,A)')
integer, parameter :: partitions = 2000, iterations = 50
real(KIND=3) :: mu(0:5,0:1e5), sigma(0:5,0:1e5), draw_ratio, k, f_de_mu(0:4,0:1e5), derivative(0:4,0:1e5), d_mu(0:4,0:1e5)
real(KIND=3) :: a, b, LOS, function_a, function_b, function_k, h_a, h_b, h_k, S1, S2, S_a, S_b, S_k, x
real(KIND=3) :: start, finish, clock_rate, elapsed_time, h2_a, h2_b, h2_k, three_sqrt_of_two_pi
integer :: i, j, n
write(*,*)
write(*,'(A)') "Expansion_of_Ciarrochi's table, © 2013."
write(*,*)
write(*,'(A)') 'Write down the draw ratio (in percentage):'
write(*,*)
read(*,*) draw_ratio
write(*,*)
if ((draw_ratio < 0d0) .or. (draw_ratio > 1d2)) then
write(*,'(A)') 'Incorrect draw ratio.'
write(*,*)
write(*,'(A)') 'Please close and try again. Press Enter to exit.'
read(*,'()')
stop
end if
if (draw_ratio == 1d2) then
write(*,'(A)') 'The mathematical model used in Minimum_score_for_no_regression does not support a draw ratio of 100%'
write(*,*)
write(*,'(A)') 'Please close and try again. Press Enter to exit.'
read(*,'()')
stop
end if
write(*,*) 'Write down the likelihood of superiority (in percentage) between 75% and 99.9% (LOS will be rounded up to 0.01%):'
write(*,*)
read(*,*) LOS ! Likelihood of superiority.
write(*,*)
LOS = 1d-2*nint(1d2*LOS,KIND=3) ! Rounded up to 0.01%.
if ((LOS < 7.5d1) .or. (LOS > 9.99001d1)) then
write(*,'(A)') 'Minimum_score_for_no_regression will not work with a LOS value outside a range of 75% - 99.9%'
write(*,*)
write(*,'(A)') 'Please close and try again. Press Enter to exit.'
read(*,'()')
stop
end if
write(*,'(A)') 'Write down the clock rate of the CPU (in GHz), only for timing the elapsed time of the calculations:'
write(*,*)
read(*,*) clock_rate
if (clock_rate <= 0d0) then
write(*,'(A)') 'The clock rate must be a positive number.'
write(*,*)
write(*,'(A)') 'Please close and try again. Press Enter to exit.'
read(*,'()')
stop
end if
start = cpu_clock@() ! Start of the calculations.
! Approximation of the definite integral of the cumulative distribution function of a normal distribution by the composite Simpson's rule.
three_sqrt_of_two_pi = 3d0*sqrt(2d0*acos(-1d0))
if (LOS < 8d1) then ! It splits into smaller intervals for later doing less iterations; less time is consumed.
a = 6.744d-1; b = 8.417d-1
else if ((LOS >= 8d1) .and. (LOS < 8.5d1)) then
a = 8.416d-1; b = 1.0365d0
else if ((LOS >= 8.5d1) .and. (LOS < 8.75d1)) then
a = 1.0364d0; b = 1.1504d0
else if ((LOS >= 8.75d1) .and. (LOS < 9d-1)) then
a = 1.1503d0; b = 1.2816d0
else if ((LOS >= 9d-1) .and. (LOS < 9.25d1)) then
a = 1.2815d-1; b = 1.4396d0
else if ((LOS >= 9.25d1) .and. (LOS < 9.5d1)) then
a = 1.4395d0; b = 1.6449d0
else if ((LOS >= 9.5d1) .and. (LOS < 9.75d1)) then
a = 1.6448d0; b = 1.96d0
else if ((LOS >= 9.75d1) .and. (LOS < 9.9d1)) then
a = 1.9599d0; b = 2.5759d0
else if ((LOS >= 9.9d1) .and. (LOS < 9.975d1)) then
a = 2.5758d0; b = 2.8071d0
else if (LOS >= 9.975d1) then
a = 2.807d0; b = 3.0903d0
end if
S_a = 0d0
h_a = a/partitions
h2_a = h_a + h_a
x = -h_a
S1 = 0d0
do i = 1, partitions-1, 2
x = x + h2_a
S1 = S1 + exp(-5d-1*x*x)
end do
x = 0d0
S2 = 0d0
do i = 2, partitions-2, 2
x = x + h2_a
S2 = S2 + exp(-5d-1*x*x)
end do
S_a = 5d-1 + h_a*(1d0 + 4d0*S1 + 2d0*S2 + exp(-5d-1*a*a))/three_sqrt_of_two_pi ! This line prepares a one-sided test.
function_a = S_a - 1d-2*LOS
S_b = 0d0
h_b = b/partitions
h2_b = h_b + h_b
x = -h_b
S1 = 0d0
do i = 1, partitions-1, 2
x = x + h2_b
S1 = S1 + exp(-5d-1*x*x)
end do
x = 0d0
S2 = 0d0
do i = 2, partitions-2, 2
x = x + h2_b
S2 = S2 + exp(-5d-1*x*x)
end do
S_b = 5d-1 + h_b*(1d0 + 4d0*S1 + 2d0*S2 + exp(-5d-1*b*b))/three_sqrt_of_two_pi ! This line prepares a one-sided test.
function_b = S_b - 1d-2*LOS
do j = 1, iterations ! Solve the parameter k by Regula Falsi method:
k = a - (b - a)*function_a/(function_b - function_a)
! The following is the original:
! k = a + (b - a)*abs(function_a)/(abs(function_a) + abs(function_b))
! But given the fact that function_a < 0 and function_b > 0, the other form to calculate k requires less operations, so is faster.
S_k = 0d0
h_k = k/partitions
h2_k = h_k + h_k
x = -h_k
S1 = 0d0
do i = 1, partitions-1, 2
x = x + h2_k
S1 = S1 + exp(-5d-1*x*x)
end do
x = 0d0
S2 = 0d0
do i = 2, partitions-2, 2
x = x + h2_k
S2 = S2 + exp(-5d-1*x*x)
end do
S_k = 5d-1 + h_k*(1d0 + 4d0*S1 + 2d0*S2 + exp(-5d-1*k*k))/three_sqrt_of_two_pi ! This line prepares a one-sided test.
function_k = S_k - 1d-2*LOS
if (function_a*function_k < 0d0) then
b = k
function_b = function_k
else if (function_b*function_k < 0d0) then
a = k
function_a = function_k
end if
end do
do n = 2000, 100000, 1000
mu(0,n) = 5d-1 ! Initial value for start the iterations in Newton's method.
end do
do n = 2000, 100000, 1000
do i = 0, 4 ! Implementation of Newton's method for getting mu.
sigma(i,n) = sqrt((mu(i,n)*(1d0 - mu(i,n)) - 2.5d-3*draw_ratio)/(n - 1d0)) ! Sample standard deviation with (n - 1) in the denominator.
! The formula for calculating sigma was taken from this thread (first seen in post #22):
! http://immortalchess.net/forum/showthread.php?t=2237
! A detailed explanation of the expression for the standard deviation (sigma) is found in the section 3.2 of this PDF:
! http://centaur.reading.ac.uk/4549/1/2003b_ICGA_J_H_Self-Play_Statistical_Significance.pdf
f_de_mu(i,n) = mu(i,n) - k*sigma(i,n) - 5d-1
derivative(i,n) = 1d0 - 5d-1*(1d0 - 2d0*mu(i,n))*k/sqrt((n - 1d0)*(mu(i,n)*(1d0 - mu(i,n)) - 2.5d-3*draw_ratio))
d_mu(i,n) = -f_de_mu(i,n)/derivative(i,n)
mu(i+1,n) = mu(i,n) + d_mu(i,n)
if ((mu(i+1,n) < 5d-3*draw_ratio) .or. (mu(i+1,n) > 1d0 - 5d-3*draw_ratio)) then ! The score must be between these two bounds.
write(*,'(A)') 'The mathematical model used in Minimum_score_for_no_regression fails for at least one of these three reasons:'
write(*,*)
write(*,'(A)') 'a) It does not support such a low number of games.'
write(*,'(A)') 'b) It does not support such a high draw ratio.'
write(*,'(A)') 'c) It does not support such a high confidence level for the data of this match.'
write(*,*)
write(*,'(A)') 'Please close and try again. Press Enter to exit.'
read(*,'()')
stop
end if
end do
end do
open(unit=11,file='Results.txt',status='unknown',action='write')
do n = 2000, 100000, 1000
write(11,F) n, ' ', 1d-4*nint(1d6*mu(5,n),KIND=3), ' %'
end do
close(11)
finish = cpu_clock@() ! End of the calculations.
elapsed_time = 1d-6*(finish - start)/clock_rate ! Approximated elapsed time in milliseconds.
write(*,*)
write(*,'(A)') 'The calculations have been saved into Results.txt file.'
write(*,*)
write(*,'(A,I3,A)') 'Approximated total elapsed time: ', nint(elapsed_time,KIND=3), ' ms.'
end program Expansion_of_Ciarrochi_s_table
The calculation and print of results were really fast: around 41 ms for a cut-off of 5% (LOS = 95%), 52 ms for a cut-off of 1% (LOS = 99%) and 48 ms for a cut-off of 0.1% (LOS = 99.9%). Anyway, I think the programme is far from being well optimized but I do not care about it.
The output of this programme is a notepad with two columns: number of games (from 2000 to 100000 in steps of 1000) and the minimum score (rounded up to 0.0001%). I merged the three output notepads for getting a more readable format. Please remember that I input a draw ratio of 32%:
Code: Select all
Cut-off (alpha)
Games 5% 1% 0.1%
2000 51.5158 % 52.1424 % 51.5158 %
3000 51.2378 % 51.7499 % 51.2378 %
4000 51.0721 % 51.5158 % 51.0721 %
5000 50.9589 % 51.3559 % 50.9589 %
6000 50.8754 % 51.2378 % 50.8754 %
7000 50.8105 % 51.1461 % 50.8105 %
8000 50.7582 % 51.0721 % 50.7582 %
9000 50.7148 % 51.0108 % 50.7148 %
10000 50.6781 % 50.9590 % 50.6781 %
11000 50.6466 % 50.9144 % 50.6466 %
12000 50.6191 % 50.8754 % 50.6191 %
13000 50.5948 % 50.8411 % 50.5948 %
14000 50.5731 % 50.8105 % 50.5731 %
15000 50.5537 % 50.7831 % 50.5537 %
16000 50.5361 % 50.7582 % 50.5361 %
17000 50.5201 % 50.7356 % 50.5201 %
18000 50.5055 % 50.7148 % 50.5055 %
19000 50.4920 % 50.6958 % 50.4920 %
20000 50.4795 % 50.6782 % 50.4795 %
21000 50.4680 % 50.6618 % 50.4680 %
22000 50.4572 % 50.6466 % 50.4572 %
23000 50.4472 % 50.6324 % 50.4472 %
24000 50.4378 % 50.6191 % 50.4378 %
25000 50.4289 % 50.6066 % 50.4289 %
26000 50.4206 % 50.5948 % 50.4206 %
27000 50.4127 % 50.5837 % 50.4127 %
28000 50.4053 % 50.5732 % 50.4053 %
29000 50.3982 % 50.5632 % 50.3982 %
30000 50.3915 % 50.5537 % 50.3915 %
31000 50.3852 % 50.5447 % 50.3852 %
32000 50.3791 % 50.5362 % 50.3791 %
33000 50.3733 % 50.5280 % 50.3733 %
34000 50.3678 % 50.5202 % 50.3678 %
35000 50.3625 % 50.5127 % 50.3625 %
36000 50.3574 % 50.5055 % 50.3574 %
37000 50.3526 % 50.4986 % 50.3526 %
38000 50.3479 % 50.4920 % 50.3479 %
39000 50.3434 % 50.4857 % 50.3434 %
40000 50.3391 % 50.4796 % 50.3391 %
41000 50.3349 % 50.4737 % 50.3349 %
42000 50.3309 % 50.4680 % 50.3309 %
43000 50.3270 % 50.4625 % 50.3270 %
44000 50.3233 % 50.4572 % 50.3233 %
45000 50.3197 % 50.4521 % 50.3197 %
46000 50.3162 % 50.4472 % 50.3162 %
47000 50.3128 % 50.4424 % 50.3128 %
48000 50.3095 % 50.4378 % 50.3095 %
49000 50.3064 % 50.4333 % 50.3064 %
50000 50.3033 % 50.4289 % 50.3033 %
51000 50.3003 % 50.4247 % 50.3003 %
52000 50.2974 % 50.4206 % 50.2974 %
53000 50.2946 % 50.4166 % 50.2946 %
54000 50.2918 % 50.4127 % 50.2918 %
55000 50.2892 % 50.4090 % 50.2892 %
56000 50.2866 % 50.4053 % 50.2866 %
57000 50.2841 % 50.4017 % 50.2841 %
58000 50.2816 % 50.3983 % 50.2816 %
59000 50.2792 % 50.3949 % 50.2792 %
60000 50.2769 % 50.3916 % 50.2769 %
61000 50.2746 % 50.3883 % 50.2746 %
62000 50.2724 % 50.3852 % 50.2724 %
63000 50.2702 % 50.3821 % 50.2702 %
64000 50.2681 % 50.3791 % 50.2681 %
65000 50.2660 % 50.3762 % 50.2660 %
66000 50.2640 % 50.3733 % 50.2640 %
67000 50.2620 % 50.3706 % 50.2620 %
68000 50.2601 % 50.3678 % 50.2601 %
69000 50.2582 % 50.3651 % 50.2582 %
70000 50.2563 % 50.3625 % 50.2563 %
71000 50.2545 % 50.3600 % 50.2545 %
72000 50.2527 % 50.3575 % 50.2527 %
73000 50.2510 % 50.3550 % 50.2510 %
74000 50.2493 % 50.3526 % 50.2493 %
75000 50.2476 % 50.3502 % 50.2476 %
76000 50.2460 % 50.3479 % 50.2460 %
77000 50.2444 % 50.3457 % 50.2444 %
78000 50.2428 % 50.3434 % 50.2428 %
79000 50.2413 % 50.3413 % 50.2413 %
80000 50.2398 % 50.3391 % 50.2398 %
81000 50.2383 % 50.3370 % 50.2383 %
82000 50.2368 % 50.3350 % 50.2368 %
83000 50.2354 % 50.3329 % 50.2354 %
84000 50.2340 % 50.3309 % 50.2340 %
85000 50.2326 % 50.3290 % 50.2326 %
86000 50.2313 % 50.3271 % 50.2313 %
87000 50.2299 % 50.3252 % 50.2299 %
88000 50.2286 % 50.3233 % 50.2286 %
89000 50.2273 % 50.3215 % 50.2273 %
90000 50.2261 % 50.3197 % 50.2261 %
91000 50.2248 % 50.3180 % 50.2248 %
92000 50.2236 % 50.3162 % 50.2236 %
93000 50.2224 % 50.3145 % 50.2224 %
94000 50.2212 % 50.3128 % 50.2212 %
95000 50.2200 % 50.3112 % 50.2200 %
96000 50.2189 % 50.3096 % 50.2189 %
97000 50.2178 % 50.3080 % 50.2178 %
98000 50.2166 % 50.3064 % 50.2166 %
99000 50.2155 % 50.3048 % 50.2155 %
100000 50.2145 % 50.3033 % 50.2145 %
Regards from Spain.
Ajedrecista.
-
- Posts: 1971
- Joined: Wed Jul 13, 2011 9:04 pm
- Location: Madrid, Spain.
Re: Expansion of Ciarrochi's table.
Hi again:
I blew it and printed two times the second column. I will not have time to correct it until Friday. Sorry. Please do not copy the full code box because the last column is wrong.
Regards from Spain.
Ajedrecista.
I blew it and printed two times the second column. I will not have time to correct it until Friday. Sorry. Please do not copy the full code box because the last column is wrong.
Regards from Spain.
Ajedrecista.
-
- Posts: 1971
- Joined: Wed Jul 13, 2011 9:04 pm
- Location: Madrid, Spain.
Correct expansion of Ciarrochi's table.
Hello:
I hope that this expansion of Ciarrochi's table will be useful for someone.
Regards from Spain.
Ajedrecista.
Luckily, I was smart enough to copy and paste the code of my programme here. I generated the table again (it was generated without errors the first time) but I hope that the merge of numbers is correct this time. Please remember that I set the draw ratio to 32%:Ajedrecista wrote:Hi again:
I blew it and printed two times the second column. I will not have time to correct it until Friday. Sorry. Please do not copy the full code box because the last column is wrong.
Regards from Spain.
Ajedrecista.
Code: Select all
Cut-off (alpha)
Games 5% 1% 0.1%
2000 51.5158 % 52.1424 % 52.8430 %
3000 51.2378 % 51.7499 % 52.3229 %
4000 51.0721 % 51.5158 % 52.0124 %
5000 50.9589 % 51.3559 % 51.8004 %
6000 50.8754 % 51.2378 % 51.6437 %
7000 50.8105 % 51.1461 % 51.5220 %
8000 50.7582 % 51.0721 % 51.4238 %
9000 50.7148 % 51.0108 % 51.3424 %
10000 50.6781 % 50.9590 % 51.2736 %
11000 50.6466 % 50.9144 % 51.2144 %
12000 50.6191 % 50.8754 % 51.1627 %
13000 50.5948 % 50.8411 % 51.1171 %
14000 50.5731 % 50.8105 % 51.0765 %
15000 50.5537 % 50.7831 % 51.0400 %
16000 50.5361 % 50.7582 % 51.0070 %
17000 50.5201 % 50.7356 % 50.9770 %
18000 50.5055 % 50.7148 % 50.9495 %
19000 50.4920 % 50.6958 % 50.9241 %
20000 50.4795 % 50.6782 % 50.9008 %
21000 50.4680 % 50.6618 % 50.8791 %
22000 50.4572 % 50.6466 % 50.8589 %
23000 50.4472 % 50.6324 % 50.8400 %
24000 50.4378 % 50.6191 % 50.8223 %
25000 50.4289 % 50.6066 % 50.8057 %
26000 50.4206 % 50.5948 % 50.7901 %
27000 50.4127 % 50.5837 % 50.7753 %
28000 50.4053 % 50.5732 % 50.7613 %
29000 50.3982 % 50.5632 % 50.7481 %
30000 50.3915 % 50.5537 % 50.7355 %
31000 50.3852 % 50.5447 % 50.7236 %
32000 50.3791 % 50.5362 % 50.7122 %
33000 50.3733 % 50.5280 % 50.7013 %
34000 50.3678 % 50.5202 % 50.6909 %
35000 50.3625 % 50.5127 % 50.6810 %
36000 50.3574 % 50.5055 % 50.6714 %
37000 50.3526 % 50.4986 % 50.6623 %
38000 50.3479 % 50.4920 % 50.6535 %
39000 50.3434 % 50.4857 % 50.6451 %
40000 50.3391 % 50.4796 % 50.6370 %
41000 50.3349 % 50.4737 % 50.6292 %
42000 50.3309 % 50.4680 % 50.6217 %
43000 50.3270 % 50.4625 % 50.6144 %
44000 50.3233 % 50.4572 % 50.6074 %
45000 50.3197 % 50.4521 % 50.6006 %
46000 50.3162 % 50.4472 % 50.5940 %
47000 50.3128 % 50.4424 % 50.5877 %
48000 50.3095 % 50.4378 % 50.5815 %
49000 50.3064 % 50.4333 % 50.5755 %
50000 50.3033 % 50.4289 % 50.5698 %
51000 50.3003 % 50.4247 % 50.5641 %
52000 50.2974 % 50.4206 % 50.5587 %
53000 50.2946 % 50.4166 % 50.5534 %
54000 50.2918 % 50.4127 % 50.5483 %
55000 50.2892 % 50.4090 % 50.5433 %
56000 50.2866 % 50.4053 % 50.5384 %
57000 50.2841 % 50.4017 % 50.5336 %
58000 50.2816 % 50.3983 % 50.5290 %
59000 50.2792 % 50.3949 % 50.5245 %
60000 50.2769 % 50.3916 % 50.5201 %
61000 50.2746 % 50.3883 % 50.5158 %
62000 50.2724 % 50.3852 % 50.5117 %
63000 50.2702 % 50.3821 % 50.5076 %
64000 50.2681 % 50.3791 % 50.5036 %
65000 50.2660 % 50.3762 % 50.4997 %
66000 50.2640 % 50.3733 % 50.4959 %
67000 50.2620 % 50.3706 % 50.4922 %
68000 50.2601 % 50.3678 % 50.4886 %
69000 50.2582 % 50.3651 % 50.4850 %
70000 50.2563 % 50.3625 % 50.4815 %
71000 50.2545 % 50.3600 % 50.4781 %
72000 50.2527 % 50.3575 % 50.4748 %
73000 50.2510 % 50.3550 % 50.4716 %
74000 50.2493 % 50.3526 % 50.4684 %
75000 50.2476 % 50.3502 % 50.4652 %
76000 50.2460 % 50.3479 % 50.4622 %
77000 50.2444 % 50.3457 % 50.4591 %
78000 50.2428 % 50.3434 % 50.4562 %
79000 50.2413 % 50.3413 % 50.4533 %
80000 50.2398 % 50.3391 % 50.4505 %
81000 50.2383 % 50.3370 % 50.4477 %
82000 50.2368 % 50.3350 % 50.4449 %
83000 50.2354 % 50.3329 % 50.4422 %
84000 50.2340 % 50.3309 % 50.4396 %
85000 50.2326 % 50.3290 % 50.4370 %
86000 50.2313 % 50.3271 % 50.4345 %
87000 50.2299 % 50.3252 % 50.4320 %
88000 50.2286 % 50.3233 % 50.4295 %
89000 50.2273 % 50.3215 % 50.4271 %
90000 50.2261 % 50.3197 % 50.4247 %
91000 50.2248 % 50.3180 % 50.4224 %
92000 50.2236 % 50.3162 % 50.4201 %
93000 50.2224 % 50.3145 % 50.4178 %
94000 50.2212 % 50.3128 % 50.4156 %
95000 50.2200 % 50.3112 % 50.4134 %
96000 50.2189 % 50.3096 % 50.4112 %
97000 50.2178 % 50.3080 % 50.4091 %
98000 50.2166 % 50.3064 % 50.4070 %
99000 50.2155 % 50.3048 % 50.4049 %
100000 50.2145 % 50.3033 % 50.4029 %
Regards from Spain.
Ajedrecista.
-
- Posts: 10948
- Joined: Wed Jul 26, 2006 10:21 pm
- Full name: Kai Laskos
Re: Correct expansion of Ciarrochi's table.
In short:Ajedrecista wrote:Hello:
Luckily, I was smart enough to copy and paste the code of my programme here. I generated the table again (it was generated without errors the first time) but I hope that the merge of numbers is correct this time. Please remember that I set the draw ratio to 32%:Ajedrecista wrote:Hi again:
I blew it and printed two times the second column. I will not have time to correct it until Friday. Sorry. Please do not copy the full code box because the last column is wrong.
Regards from Spain.
Ajedrecista.
I hope that this expansion of Ciarrochi's table will be useful for someone.Code: Select all
Cut-off (alpha) Games 5% 1% 0.1% 2000 51.5158 % 52.1424 % 52.8430 % 3000 51.2378 % 51.7499 % 52.3229 % 4000 51.0721 % 51.5158 % 52.0124 % 99000 50.2155 % 50.3048 % 50.4049 % 100000 50.2145 % 50.3033 % 50.4029 %
Regards from Spain.
Ajedrecista.
Code: Select all
5% 50% + 68/sqrt(N)
1% 50% + 96/sqrt(N)
0.1% 50% + 127/sqrt(N)
Or, even more intuitive, if N1 and N2 are the number of points for each engine, with N=N1+N2, then
Code: Select all
5% (N1-N2) / sqrt(N) = 1.36
1% (N1-N2) / sqrt(N) = 1.92
0.1% (N1-N2) / sqrt(N) = 2.54
-
- Posts: 10948
- Joined: Wed Jul 26, 2006 10:21 pm
- Full name: Kai Laskos
Re: Correct expansion of Ciarrochi's table.
And as a rule of thumb, if N1 and N2 are the scores of each engine, with N1+N2=N, thenLaskos wrote:
In short:for 32% draws.Code: Select all
5% 50% + 68/sqrt(N) 1% 50% + 96/sqrt(N) 0.1% 50% + 127/sqrt(N)
Or, even more intuitive, if N1 and N2 are the number of points for each engine, with N=N1+N2, thenThis is for 32% draws, for higher number of draws the values are a bit smaller.Code: Select all
5% (N1-N2) / sqrt(N) = 1.36 1% (N1-N2) / sqrt(N) = 1.92 0.1% (N1-N2) / sqrt(N) = 2.54
if |N1-N2| / sqrt(N) reaches 1.3-1.4, we get LOS of 95%. If it reaches ~2, then LOS is above 99%.