Author: José Carlos
Date: 05:38:57 07/12/02
Go up one level in this thread
On July 12, 2002 at 08:32:18, Richard Pijl wrote: >On July 12, 2002 at 08:08:20, Vladimir Medvedev wrote: > >>How to handle position repetitions during search? >> >>I use the following method: >> >>(pseudo-code) >> >>int CountSearchRepetitions[MAXSIZE]; >>int CountHistoryRepetitions[MAXSIZE]; >> >>int AlphaBeta(Position pos, int alpha, int beta) >>{ >> if( current_ply > 0 && CountHistoryRepetitions[ pos.GetHash() % MAXSIZE ]>0 >>) >> { >> return min( 0, beta ); >> } >> >> if( CountSearchRepetitions[ pos.GetHash() % MAXSIZE ] > 1 ) >> { >> return min( 0, beta ); >> } >> >> while( get_next_move() ) >> { >> pos.MakeMove(); >> SearchRepetition[ pos.GetHash() % MAXSIZE ] ++; >> int eval = - AlphaBeta( pos, -beta, -alpha ); >> SearchRepetition[ pos.GetHash() % MAXSIZE ] --; >> pos.UnmakeMove(); >> >> ........ >> >> } >>} >> >>Is this correct? Shouldn't I return 0 instead min(0, beta)? >>Is it good to add repetitions in game history to repetitions on the current >>branch? > >- You will get many false repetitions as you are mapping many hashkeys on a >single value ( by % MAXSIZE) >- Do you take side-to-move, castling rights and the en-passant indicator in your >hashkey? If not, that's another source of error Now that you mention it, I have en-passant and castling rights in my hash key by I think _I_ have a source of error here, because neither en-passant or castle rights should be counted for the 3rd repetition. AFAIK, it's only the position of the pieces and side to move that matters. >- returning min (0,beta) looks fine although in practice it probably doesn't >matter much. >- Game history should be counted, but make sure you do not evaluate repetitions >in the rootnode as you need a move to be played ... Not if your opponent has made a move such that there's a 3 times repeated position on the board. In that case, you can simply claim the draw. José C. >Richard
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.