LOS (again)

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

John_F
Posts: 44
Joined: Wed Jan 27, 2010 2:58 pm

Re: LOS again.

Post by John_F »

Gracias, Jesús, for your help!
User avatar
Ajedrecista
Posts: 1968
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Expansion of Ciarrochi's table.

Post by Ajedrecista »

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:

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 (&#40;draw_ratio < 0d0&#41; .or. &#40;draw_ratio > 1d2&#41;)  then
  write&#40;*,'&#40;A&#41;') 'Incorrect draw ratio.'
  write&#40;*,*)
  write&#40;*,'&#40;A&#41;') 'Please close and try again. Press Enter to exit.'
  read&#40;*,'()')
  stop
end if

if &#40;draw_ratio == 1d2&#41; then
  write&#40;*,'&#40;A&#41;') 'The mathematical model used in Minimum_score_for_no_regression does not support a draw ratio of 100%'
  write&#40;*,*)
  write&#40;*,'&#40;A&#41;') 'Please close and try again. Press Enter to exit.'
  read&#40;*,'()')
  stop
end if

write&#40;*,*) 'Write down the likelihood of superiority &#40;in percentage&#41; between 75% and 99.9% &#40;LOS will be rounded up to 0.01%)&#58;'
write&#40;*,*)
read&#40;*,*) LOS  ! Likelihood of superiority.
write&#40;*,*)

LOS = 1d-2*nint&#40;1d2*LOS,KIND=3&#41;  ! Rounded up to 0.01%.

if (&#40;LOS < 7.5d1&#41; .or. &#40;LOS > 9.99001d1&#41;)  then
  write&#40;*,'&#40;A&#41;') 'Minimum_score_for_no_regression will not work with a LOS value outside a range of 75% - 99.9%'
  write&#40;*,*)
  write&#40;*,'&#40;A&#41;') 'Please close and try again. Press Enter to exit.'
  read&#40;*,'()')
  stop
end if

write&#40;*,'&#40;A&#41;') 'Write down the clock rate of the CPU &#40;in GHz&#41;, only for timing the elapsed time of the calculations&#58;'
write&#40;*,*)
read&#40;*,*) clock_rate
if &#40;clock_rate <= 0d0&#41; then
  write&#40;*,'&#40;A&#41;') 'The clock rate must be a positive number.'
  write&#40;*,*)
  write&#40;*,'&#40;A&#41;') 'Please close and try again. Press Enter to exit.'
  read&#40;*,'()')
  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&#40;2d0*acos&#40;-1d0&#41;)

if &#40;LOS < 8d1&#41; 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 (&#40;LOS >= 8d1&#41; .and. &#40;LOS < 8.5d1&#41;) then
  a = 8.416d-1; b = 1.0365d0
  else if (&#40;LOS >= 8.5d1&#41; .and. &#40;LOS < 8.75d1&#41;) then
  a = 1.0364d0; b = 1.1504d0
  else if (&#40;LOS >= 8.75d1&#41; .and. &#40;LOS < 9d-1&#41;) then
  a = 1.1503d0; b = 1.2816d0
  else if (&#40;LOS >= 9d-1&#41; .and. &#40;LOS < 9.25d1&#41;) then
  a = 1.2815d-1; b = 1.4396d0
  else if (&#40;LOS >= 9.25d1&#41; .and. &#40;LOS < 9.5d1&#41;) then
  a = 1.4395d0; b = 1.6449d0
  else if (&#40;LOS >= 9.5d1&#41; .and. &#40;LOS < 9.75d1&#41;) then
  a = 1.6448d0; b = 1.96d0
  else if (&#40;LOS >= 9.75d1&#41; .and. &#40;LOS < 9.9d1&#41;) then
  a = 1.9599d0; b = 2.5759d0
  else if (&#40;LOS >= 9.9d1&#41; .and. &#40;LOS < 9.975d1&#41;) then
  a = 2.5758d0; b = 2.8071d0
  else if &#40;LOS >= 9.975d1&#41; 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&#40;-5d-1*x*x&#41;
end do

x = 0d0
S2 = 0d0
do i = 2, partitions-2, 2
  x = x + h2_a
  S2 = S2 + exp&#40;-5d-1*x*x&#41;
end do

S_a = 5d-1 + h_a*&#40;1d0 + 4d0*S1 + 2d0*S2 + exp&#40;-5d-1*a*a&#41;)/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&#40;-5d-1*x*x&#41;
end do

x = 0d0
S2 = 0d0
do i = 2, partitions-2, 2
  x = x + h2_b
  S2 = S2 + exp&#40;-5d-1*x*x&#41;
end do

S_b = 5d-1 + h_b*&#40;1d0 + 4d0*S1 + 2d0*S2 + exp&#40;-5d-1*b*b&#41;)/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&#58;
  k = a - &#40;b - a&#41;*function_a/&#40;function_b - function_a&#41;
  ! The following is the original&#58;
  ! k = a + &#40;b - a&#41;*abs&#40;function_a&#41;/&#40;abs&#40;function_a&#41; + abs&#40;function_b&#41;)
  ! 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&#40;-5d-1*x*x&#41;
  end do

  x = 0d0
  S2 = 0d0
  do i = 2, partitions-2, 2
    x = x + h2_k
    S2 = S2 + exp&#40;-5d-1*x*x&#41;
  end do

  S_k = 5d-1 + h_k*&#40;1d0 + 4d0*S1 + 2d0*S2 + exp&#40;-5d-1*k*k&#41;)/three_sqrt_of_two_pi  ! This line prepares a one-sided test.
  function_k = S_k - 1d-2*LOS

  if &#40;function_a*function_k < 0d0&#41; then
    b = k
    function_b = function_k
  else if &#40;function_b*function_k < 0d0&#41; then
    a = k
    function_a = function_k
  end if
end do

do n = 2000, 100000, 1000
  mu&#40;0,n&#41; = 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&#40;i,n&#41; = sqrt&#40;&#40;mu&#40;i,n&#41;*&#40;1d0 - mu&#40;i,n&#41;) - 2.5d-3*draw_ratio&#41;/&#40;n - 1d0&#41;)  ! Sample standard deviation with &#40;n - 1&#41; in the denominator.
    ! The formula for calculating sigma was taken from this thread &#40;first seen in post #22&#41;&#58;
    ! http&#58;//immortalchess.net/forum/showthread.php?t=2237
    ! A detailed explanation of the expression for the standard deviation &#40;sigma&#41; is found in the section 3.2 of this PDF&#58;
    ! http&#58;//centaur.reading.ac.uk/4549/1/2003b_ICGA_J_H_Self-Play_Statistical_Significance.pdf
    f_de_mu&#40;i,n&#41; = mu&#40;i,n&#41; - k*sigma&#40;i,n&#41; - 5d-1
    derivative&#40;i,n&#41; = 1d0 - 5d-1*&#40;1d0 - 2d0*mu&#40;i,n&#41;)*k/sqrt&#40;&#40;n - 1d0&#41;*&#40;mu&#40;i,n&#41;*&#40;1d0 - mu&#40;i,n&#41;) - 2.5d-3*draw_ratio&#41;)
    d_mu&#40;i,n&#41; = -f_de_mu&#40;i,n&#41;/derivative&#40;i,n&#41;
    mu&#40;i+1,n&#41; = mu&#40;i,n&#41; + d_mu&#40;i,n&#41;
    if (&#40;mu&#40;i+1,n&#41; < 5d-3*draw_ratio&#41; .or. &#40;mu&#40;i+1,n&#41; > 1d0 - 5d-3*draw_ratio&#41;) then  ! The score must be between these two bounds.
      write&#40;*,'&#40;A&#41;') 'The mathematical model used in Minimum_score_for_no_regression fails for at least one of these three reasons&#58;'
      write&#40;*,*)
      write&#40;*,'&#40;A&#41;') 'a&#41; It does not support such a low number of games.'
      write&#40;*,'&#40;A&#41;') 'b&#41; It does not support such a high draw ratio.'
      write&#40;*,'&#40;A&#41;') 'c&#41; It does not support such a high confidence level for the data of this match.'
      write&#40;*,*)
      write&#40;*,'&#40;A&#41;') 'Please close and try again. Press Enter to exit.'
      read&#40;*,'()')
      stop
    end if
  end do
end do

open&#40;unit=11,file='Results.txt',status='unknown',action='write')
do n = 2000, 100000, 1000
  write&#40;11,F&#41; n, '   ', 1d-4*nint&#40;1d6*mu&#40;5,n&#41;,KIND=3&#41;, ' %'
end do
close&#40;11&#41;

finish = cpu_clock@()  ! End of the calculations.
elapsed_time = 1d-6*&#40;finish - start&#41;/clock_rate  ! Approximated elapsed time in milliseconds.

write&#40;*,*)
write&#40;*,'&#40;A&#41;') 'The calculations have been saved into Results.txt file.'
write&#40;*,*)
write&#40;*,'&#40;A,I3,A&#41;') 'Approximated total elapsed time&#58; ', nint&#40;elapsed_time,KIND=3&#41;, ' ms.'

end program 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%:

Code: Select all

                    Cut-off &#40;alpha&#41;
 
 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 %
Corrections will be welcome because I am not perfect, as expected! ;)

Regards from Spain.

Ajedrecista.
User avatar
Ajedrecista
Posts: 1968
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Expansion of Ciarrochi's table.

Post by Ajedrecista »

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.
User avatar
Ajedrecista
Posts: 1968
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Correct expansion of Ciarrochi's table.

Post by Ajedrecista »

Hello:
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.
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%:

Code: Select all

                    Cut-off &#40;alpha&#41;
 
 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 %
I hope that this expansion of Ciarrochi's table will be useful for someone.

Regards from Spain.

Ajedrecista.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Correct expansion of Ciarrochi's table.

Post by Laskos »

Ajedrecista wrote:Hello:
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.
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%:

Code: Select all

                    Cut-off &#40;alpha&#41;
 
 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 %
I hope that this expansion of Ciarrochi's table will be useful for someone.

Regards from Spain.

Ajedrecista.
In short:

Code: Select all

5%    50% + 68/sqrt&#40;N&#41;
1%    50% + 96/sqrt&#40;N&#41;
0.1%  50% + 127/sqrt&#40;N&#41;
for 32% draws.

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%    &#40;N1-N2&#41; / sqrt&#40;N&#41; = 1.36
1%    &#40;N1-N2&#41; / sqrt&#40;N&#41; = 1.92
0.1%  &#40;N1-N2&#41; / sqrt&#40;N&#41; = 2.54
This is for 32% draws, for higher number of draws the values are a bit smaller.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Correct expansion of Ciarrochi's table.

Post by Laskos »

Laskos wrote:
In short:

Code: Select all

5%    50% + 68/sqrt&#40;N&#41;
1%    50% + 96/sqrt&#40;N&#41;
0.1%  50% + 127/sqrt&#40;N&#41;
for 32% draws.

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%    &#40;N1-N2&#41; / sqrt&#40;N&#41; = 1.36
1%    &#40;N1-N2&#41; / sqrt&#40;N&#41; = 1.92
0.1%  &#40;N1-N2&#41; / sqrt&#40;N&#41; = 2.54
This is for 32% draws, for higher number of draws the values are a bit smaller.
And as a rule of thumb, if N1 and N2 are the scores of each engine, with N1+N2=N, then

if |N1-N2| / sqrt(N) reaches 1.3-1.4, we get LOS of 95%. If it reaches ~2, then LOS is above 99%.