Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Interpreting my analysis of the Fine 70 position.

Author: Stuart Cracraft

Date: 17:18:02 07/11/04

Go up one level in this thread


On July 11, 2004 at 19:29:50, Dieter Buerssner wrote:

>On July 11, 2004 at 19:13:53, Stuart Cracraft wrote:
>
>>I was using something like that but picked up this from Knuth
>>by way of GNU & Crafty (and, I suspect, Bob Hyatt)... The question is
>>will this suffice for the new 64-bit machines becoming more commonplace
>>amongst computer chess programs...
>
>It will most probably run on all modern machines. To make it really portable (to
>old machines, that don't have 32-bit ints, or new machines that may have longer
>than 32-bit ints, see my suggestions in the code)
>
>>unsigned int Rand32 (void)
>unsigned long Rand32 (void)
>
>>/***************************************************************************
>>*
>> *
>> *  A 32 bit random number generator.  An implementation in C of the
>> *  algorithm given by Knuth, the art of computer programming, vol. 2,
>> *  pp. 26-27.  We use e=32, so we have to evaluate y(n) = y(n-24) + y(n-55)
>> *  mod 2^32, which is implicitly done by unsigned arithmetic.
>> *
>>
>>***************************************************************************/
>>{
>>/*
>> *  Random numbers from Mathematica 2.0
>> *  SeedRandom = 1;
>> *  Table[Random[Integer, {0, 2^32 - 1}]
>> */
>>   static unsigned int x[55] =
>
>static unsigned long x[55] =
>
>
>>   {
>>        1410651636UL,
>>        3012776752UL,
>>        3497475623UL,
>>        2892145026UL,
>>        1571949714UL,
>>        3253082284UL,
>>        3489895018UL,
>>        387949491UL,
>>        2597396737UL,
>>        1981903553UL,
>>        3160251843UL,
>>        129444464UL,
>>        1851443344UL,
>>        4156445905UL,
>>        224604922UL,
>>        1455067070UL,
>>        3953493484UL,
>>        1460937157UL,
>>        2528362617UL,
>>        317430674UL,
>>        3229354360UL,
>>        117491133UL,
>>        832845075UL,
>>        1961600170UL,
>>        1321557429UL,
>>        747750121UL,
>>        545747446UL,
>>        810476036UL,
>>        503334515UL,
>>        4088144633UL,
>>        2824216555UL,
>>        3738252341UL,
>>        3493754131UL,
>>        3672533954UL,
>>        29494241UL,
>>        1180928407UL,
>>        4213624418UL,
>>        33062851UL,
>>        3221315737UL,
>>        1145213552UL,
>>        2957984897UL,
>>        4078668503UL,
>>        2262661702UL,
>>        65478801UL,
>>        2527208841UL,
>>        1960622036UL,
>>        315685891UL,
>>        1196037864UL,
>>        804614524UL,
>>        1421733266UL,
>>        2017105031UL,
>>        3882325900UL,
>>        810735053UL,
>>        384606609UL,
>>        2393861397UL
>>   };
>>   static int init = true;
>>   static unsigned int y[55];
>
>   static unsigned long y[55];
>
>>   static int j, k;
>>   unsigned int ul;
>
>unsigned long ul;
>
>>   if (init)
>>   {
>>      int i;
>>      init = false;
>>      for (i = 0; i < 55; i++)
>>         y[i] = x[i];
>>      j = 24 - 1;
>>      k = 55 - 1;
>>   }
>>   ul = (y[k] += y[j]);
>
>  y[k] += y[j];
>  ul = (y[k] &= 0xffffffff);
>
>
>>   if (--j < 0) j = 55 - 1;
>>   if (--k < 0) k = 55 - 1;
>>   return (ul);
>>}
>
>Above changes assume, that efficiency is no issue (it ain't in chess engines).
>If it is, one might want to use environment specific types, instead of unsigned
>long. Also doing something different about the init and the "local" y table.
>
>Don't use this for serious simulations, without really knowing what you are
>doing. Above PRNG (an additive lagged Fibonacci PRNG, from my memory Knuth
>suggested subtraction instead of addition for this. But it won't really matter.)
>has very serious flaws, and fails some simple tests for randomness. For Zorbrist
>hashing there will be no problem.
>
>Regards,
>Dieter

Good point. No true randomness, just Zobrist-capable...

I guess one might want a similar randomness for the program to pick amongst
equally similar moves +- a few evaluation points.

No nuclear simulations here.

Stuart




This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.