Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Extensions

Author: Jeff GAZET

Date: 06:11:14 04/23/04

Go up one level in this thread


>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.

Thanks, i will only have on "++depth" at a ply. And thanks to other guys, i
understood about "--depth" in the move-loop.

I have another question about "singular reply extention", which applies when
there is only one move left for a side. As it happens (99%?) when the king is in
check, it the folowing code right ? can we add 2 times "++depth" ? This seems to
find MAT quickly but then i have a bug about "ply". The engine says "MAT0"
instead of "MAT5" for example.

int alphabeta(int depth, int alpha, int beta, bool DoNull)
	{
	if(depth<=0) {return quiesce(alpha,beta);}

	if(InCheck=in_check(g_side)) {++depth;}

	gen_move_list();

	// Singular Reply Extensions
	if(there_is_only_one_possible_move) {++depth;}

	for(each move)
		{
		if(!domove(gen_dat[i])) {continue;}
		eval=-alphabeta(depth-1,-beta,-alpha,true);
		undomove();

		if(eval>alpha) {...}
		}
	return alpha;
	}



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.