Author: Adam Oellermann
Date: 08:24:11 08/09/01
Go up one level in this thread
On August 09, 2001 at 00:28:54, Scott Smedley wrote: >Hi All, > >I've just implemented a transposition table in my chess program >(affectionately known as DaRK KNiGHT) & the first thing I realised >is that I have no way of detecting perpetual check, repetitive >position draws & the like. > >So my question is: > >How can a program recognise/handle the 3rd occurance of a position if >it's using a transposition table? > >The score for a position in the transposition table may or may not >be based on draw-by-repetition terminal nodes in its search path. >Actually, now that I think about it a litte more, this begs a more >quintessential question: > >How do I avoid using an inaccurate score in a transposition table >due to potential draw-by-repetition terminal nodes in the search path? > >SCoTT! :) I implemented a very cheesy scheme in Blikskottel after it became clear that it was often drawing easy wins by repetition. All it does is this: - At the root, after recursing to find the value of a move, search through the positions since the last non-reversible move. - If the move generates a hash value which matches one of the positions since the last non-reversible move, you have a repetition. - If you have a repetition, assign the move leading to the repetition a score of 0. Now I know that this is not 100% accurate and all that, but it has stopped Blikskottel from drawing by repetition in last games. It is also very easy to implement, and extra cheap as you only have to do the test at the root. Now, my only problem is to get Blikskottel into those won positions... - Adam
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.