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.