Author: Tord Romstad
Date: 03:20:14 04/23/04
Go up one level in this thread
On April 23, 2004 at 03:37:38, Jeff GAZET wrote: >Good morning, > >i'm trying to add extensions to my engine. I'm using a classical alphabeta >function : >int alphabeta(int depth, int alpha, int beta) >depth is dicreased 1 by 1 : >eval=-alphabeta(depth-1,-beta,-alpha); > >At the beginning at the function alphabeta(), if king is incheck, i do >++depth. This works fine. > >In the main move loop, if do a ++depth on a promoting move, juste before >calling -alphabeta... the engine searches for ever when the first promoting >move is found. Then, if i add "if depth<1" or <2, i don't see any >improvment. Two points: 1. Extending all promotions is probably not a good idea. 2. Be *very* careful about extending by more than one ply at the same node. From what you write above, it appears that you add one ply to the search depth at the beginning of the search function if the side to move is in check, and make additional extensions to individual moves inside your main move loop. This is very dangerous, and can easily cause search explosions. >I don't understand how engines like GnuChess can write : depth+=DEPTH when >extending. >(DEPTH is 12). I don't know GnuChess, but I guess it uses fractional extensions, and that one ply is equal to 12 units. Tord
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.