Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: search reductions?

Author: Sune Fischer

Date: 06:51:28 11/17/03

Go up one level in this thread


On November 17, 2003 at 08:25:09, Tord Romstad wrote:

>On November 17, 2003 at 07:30:59, Daniel Shawul wrote:
>
>>you are right,i meant deeper? Do you know any good place sir?
>>i have found rebel's programming
>>topics(http://members.home.nl/matador/chess840.htm) but you know
>>they evaluate each node of the tree,which is quite costy for my program.
>
>Without evaluating interior nodes, how are you going to do any static
>forward pruning or reductions at all?
>
>>Also I tried to reduce the search depth by 1, if score + margin < alpha
>>for depths greater than 3.
>
>Techniques like this seem to be very common (even in strong programs like
>Rebel), but I am becoming more and more convinced that they are
>fundamentally unsound.  The problem is that you may encounter the same
>position somewhere else in the search tree where the value of alpha is
>different.  When you look up the old search results in the hash table,
>you get a search inconsistency.

It is quite hard to get this working, although I think there is something sound
in the idea.
E.g. it makes little sense to try a big sacrifice 1 or 2 plies before qsearch,
probably you don't have enough depth left to see the rewards (of a semi-long
tactical line).
Likewise if you are far below alpha close to the leaf it takes something drastic
_right now_ to pull the score up, anything else isn't worth trying.

However there must be lots of exceptions one needs to handle here if this is to
work properly, for me it just creates instability and lots of expensive
fail-high researching.


>IMHO, it is a sounder idea to base forward pruning, extension and reduction
>decisions on how each move affects the different components of the evaluation
>function.  As an example, you could consider the following idea:
>
>In a position where one of the pieces for the side to move is hanging,
>reduce all moves which satisfies all of the following criterions:
>
>1. The move is not a capture.
>2. The move is not a check.
>3. The move does not defend the hanging piece, nor bring the hanging
>   piece into safety.
>4. The move does not threaten any of the enemy pieces.
>5. The move does not increase the pressure on the opponent's king.
>6. The move does not increase the passed pawn evaluation (for instance
>   by advancing a passed pawn, or by supporting an unblocked advanced
>   passed pawn by a rook or a king).

Yes I've also been toying with that (of course!:).

I'm not sure you need a full eval to do this though, most often you just need
eval of a square/the moved piece rather than eval of the full board.

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