Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Extensions

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.