Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Selectivity: What is it and how best implemented?

Author: Stuart Cracraft

Date: 16:36:03 12/22/05

Go up one level in this thread


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.



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.