Author: Alvaro Jose Povoa Cardoso
Date: 10:40:14 08/09/01
Go up one level in this thread
On August 09, 2001 at 10:39:00, Robert Hyatt wrote: >On August 09, 2001 at 09:31:02, Alvaro Jose Povoa Cardoso wrote: > >>Since you are undertaking the Gerbil educational project, I would like to ask >>you if you could implement Enhanced Transposition Cuttofs (ETC) in Gerbil with a >>switch so that it can be turned on/off. >>I know ETC doesn't give much in chess but I would like to experiment in >>checkers. >>My inplementation is working but it is not elegant at all. >>Since we are dealing with the other player I avoided some complications >>by creating a special version of Hashprobe() wich returns a score and by use of >>an additonal flag informs me if there was a cutoff at the next ply. >>So, and using 'crafty language' I do the following: >> >>for every move at this ply: >> >>Makemove >> >>Score = >>-ETC_HashProbe(tree,ply+1,depth-INCPLY,ChangeSide(wtm),-beta,-alpha,&cutoff) >> >>Unmakemove >> >>if (cutoff) { >> if (Score >= beta) { >> return (Score); >> } >>} >> >> >>Best regards, >>Alvaro Cardoso > > > >That is not the right way to do it. I did it like that for testing, but it was >actually a loss for me, because MakeMove() does a lot of work in Crafty. I >first wanted to see if the tree would shrink by any significant amount. If it >did, I would then write a special hash probe function that would only do the >hash signature update extracted from MakeMove() which would be much more >efficient. However, I found no appreciable tree size reduction and therefore >gave up without going that far. > >In things like this, the first goal is to shrink the tree. If you can do that >then you work trying to make the new code as fast as possible. If the new stuff >doesn't shrink the tree, then making it faster is worthless... I'm still in the testing phase and I saw an important tree size reduction (i'm programming checkers 8x8). For example, in one test without ETC I got 186M nodes, the same test with ETC I got 165M nodes. My program makes use of bitboards (32bit) and my MakeMove() is very very fast. My UnmakeMove() is even faster, that is why I'm considering ETC. But since it's the first time I'm doing it I'm asking support from the masters. When I got it right the I'll right a special purpose version of MakeMove() to speed up things. Thank you, Alvaro Cardoso
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.