Computer Chess Club Archives


Search

Terms

Messages

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

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.