Author: Dann Corbit
Date: 16:41:01 12/22/05
Go up one level in this thread
On December 22, 2005 at 19:36:03, Stuart Cracraft wrote: >On December 22, 2005 at 19:30:50, Dann Corbit wrote: > >>On December 22, 2005 at 19:20:15, Stuart Cracraft wrote: >> >>>On December 22, 2005 at 18:18:02, Stuart Cracraft wrote: >>> >>>>The only selectivity of which I am aware is progressive, >>>>narrowing of # of moves searched at each ply as the tree >>>>deepens - disadvantages can include throwing out good moves. >>>>Requires lots of knowledge and sophisticated evaluation >>>>to avoid that and even then it does. We're back in the A. >>>>vs. B arena. This is 40+ year-old concept from looking >>>>at MacHack. >>>> >>>>But about 20-25 years ago, selectivity of a different sort >>>>(I think) started making its rounds. I remember Larry Kaufman >>>>and John Stanback talking about it quite a bit and saying >>>>they'd get somewhat deeper searches and improved results >>>>even though it was ostensibly less accurate. >>>> >>>>So I want to ask EXACTLY how you are implementing selectivity >>>>in your program. >>>> >>>>I threw together something and it did far poorer in a tactical >>>>suite - so obviously my conception of selectivity is poor itself. >>>> >>>>I seek enlightenment from the august programmer members of this >>>>board in "What is selectivity?" >>>> >>>>Stuart >>> >>>I am discounting null move search, extensions, and reductions. >>> >>>I am interested in other types of selective. >>> >>>Are there any that work? >> >>Did you read Ernst Heinz's book: >>"Scalable Search in Computer Chess" >> >>He has something he describes as AEL pruning that is clearly selective >>searching. >>The "A" stands for Adaptive Null Move, so that part does not fit your criteria. >> >>For NULL MOVE reductions he uses 3 plys reduction sometimes and 2 plies >>reduction sometimes according to the formula: >>/* The formula below is from Ernst A. Heinz's book "Scalable Search in Computer >>Chess" >> * It comes from pages 35-37 and is described elsewhere in the book. >> * This method is called 'Adaptive Null Move Pruning' with R(adapt) = 3(6)~2. >> * In English, the NULL move depth reduction is equal to two ply by default. >> * However, if either (a) both sides have fewer than 3 pieces and the current >>depth >> * is 8 ply or more or (b) at least one side has greater than 2 pieces and the >>current >> * depth is 6 ply or more then increase the depth reduction to 3 full ply. */ >> return TWOPLY + ((depth) > ((6*ONEPLY) + (((cwp < 3 && cbp < 3) ? TWOPLY : >>0))) ? ONEPLY : 0); >> >>The E stands for Extended Futility Pruning >>And the L stands for Limited Razoring. >> >>Here is a paper that talks about that part of it: >>http://digilander.libero.it/gargamellachess/papers/AEL%20pruning.zip > >Yes, I implemented something near to this and compared it with what I have >and didn't see a startling improvement. I wonder how many rating points >Ernst feels its worth. It did not seem to make a big difference when implemented in Crafty either (GCP did a version of it). For DarkThought, it clearly lowered the branching factor. I guess that results may depend greatly on what you are already doing in your chess engine.
This page took 0.01 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.