Author: Uri Blass
Date: 03:19:47 02/21/02
Go up one level in this thread
On February 21, 2002 at 04:59:12, Sune Fischer wrote: >On February 21, 2002 at 00:18:09, Uri Blass wrote: > >>On February 20, 2002 at 19:18:51, Vincent Diepeveen wrote: >>>>no no i do not mean hashtable. i mean ARRAY with hashcodes >>> >>>all you have to do is: >>> >>> for f=current move to 1 f = f -2; >>> if( hashcode[f] == currenthash ) >>> return(drawscore); >> >>The question is if there is no small risk of wrong repetition detection. >>In my program wrong repetition detection can happen only because of bugs and in >>this case I guess that hashcode[f] is some compression of the position to 32 >>or 64 bit number and it may be the same for different positions. >> >>I guess that in the case of 64 bit number the risk is practically 0. >> >>Uri > >There is no risk to the above method, it works perfectly if you use 64 bit. > >I talked to Bruce Moreland about this, it seems *safer* and easier than what he >proposes at http://www.seanet.com/~brucemo/topics/repetition.htm > >He replyed, that he was worried that it would be too slow to do a O(N) search at >every node. The hashing method requires only a few lookups. >However, rep. detec. is not needed in qsearch and most of the time the search >will break quickly because last or previous move was not a "reversible" move >(you should add a break statement to that code Vincent:). > >Bruce did suggest there could be a problem in the endgame if you get close to >the 50 move rule, then you will be doing a O(50) linear search at every node!! > >-S. O(50) is not so big and it is not going to happen in every node in the search(even in that case I believe that the difference in speed is not more than 10%). A lot of these positions are dead draw and you do not need to worry about them. Uri
This page took 0.01 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.