Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Razoring?

Author: Christophe Theron

Date: 16:04:13 01/26/99

Go up one level in this thread


On January 26, 1999 at 14:47:35, Eugene Nalimov wrote:

>On January 26, 1999 at 14:28:57, Christophe Theron wrote:
>
>>On January 26, 1999 at 14:02:27, Peter McKenzie wrote:
>>
>>>On January 26, 1999 at 11:56:50, Steve Maughan wrote:
>>>
>>>>I've heard of this technique but am not sure exactly what it is.  Could someone
>>>>please explain it?
>>>
>>>Here is what I call razoring:
>>>
>>>Lets say we are doing a search to depth N, that means that at depth (N+1) we go
>>>into the quiescence search, meaning the side to move has the option of standing
>>>pat (setting alpha to the static score) or making a capture move.
>>>
>>>At depth N, if you have a really bad position and make a harmless move, the
>>>opponent will be able to make a cutoff at depth N+1 just by standing pat.  With
>>>razoring, you try to avoid searching those 'harmless' moves.  My implementation
>>>just goes straight to the quiescence search at depth N if the score is below
>>>alpha by at least 2 pawns.  The reasoning being that a positional move that
>>>isn't a capture probably won't be able to raise the score by 2 pawns.
>>
>>
>>What you are describing is called "futility pruning". Razoring is something
>>different, much more risky.
>>
>>
>>    Christophe
>
>I beleive that "futility pruning" is just a special case of
>"razoring". I used to think that "razoring" is forward pruning
>where you decide to ignore some moves based on static
>evaluation of the position (as opposed to null move, where you
>first search with a lesser depth, and other similar ideas).
>
>If I'm correct, than "futility pruning" is just a "razoring"
>when depth=1. And it's much safer than other variants of
>"razoring", or at least safer when you cannot spend thousands
>lines of code for more detailed position analysis before
>performing "razoring".
>
>Eugene


I think you are not correct.

Futility pruning is the name of the pruning you do based on static evaluation at
"depth=1" (1 ply before the horizon). The idea is: "if I'm already in a bad
position near the horizon, I'd better go into QSearch right now, no use to try
the non-capture moves". It's not very risky.

"Extended futility pruning" applies the same idea at depth greater than 1 (2
plies or more before the horizon). It is very risky.

You can find a good description of futility and extended futility pruning in the
ICCA Journal (not the latest, but the one before I think), it's a paper by Ernst
Heinz.

Razoring involves a depth reduction. You don't just prune the line based on the
static evaluation, you just reduce the remaining depth to search from that
point. It is applied at depth=2. Razoring is risky, but less than extended
futility.

I think Bob uses it in Crafty (he used it the last time I checked Crafty
sources, that was version 9.x).

These techniques are suspect, because they generally weaken the "tactical"
abilities of your program. The tradeoff is that they may help your "positional"
depth and understanding. But you'd better run serious tests before deciding to
keep them or not.


    Christophe



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.