Author: Peter Fendrich
Date: 16:29:25 01/26/99
Go up one level in this thread
On January 26, 1999 at 19:04:13, Christophe Theron wrote: >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 Risky or not, depends on what conditions you have. Also what kind of program. With a "dumb" Quiescense and "hard" conditions it doesn't have to be too risky. With a smarter Qs using things like extended matefinder or tactical moves other than captures, razoring and futility pruning could be a disaster... //Peter
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.