Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Q: Singular extensions

Author: Robert Hyatt

Date: 07:57:41 01/07/04

Go up one level in this thread


On January 06, 2004 at 17:36:05, José Carlos wrote:

>On January 06, 2004 at 16:24:07, Robert Hyatt wrote:
>
>>On January 06, 2004 at 14:58:38, Anthony Cozzie wrote:
>>
>>>On January 06, 2004 at 14:32:58, Slater Wold wrote:
>>>
>>>>On January 05, 2004 at 08:48:23, José Carlos wrote:
>>>>
>>>>>  Hi, I'd like to try singular extensions in my program. I've been trying to
>>>>>think about it and all my tries so far result in worse performance. After some
>>>>>web search I haven't been able to find anything but the general idea described.
>>>>>  Is there any good description somewhere? Some pseudo-code? I guess there must
>>>>>be something interesting in the archives but I can't download all of them.
>>>>>  Thanks in advance,
>>>>>
>>>>>  José C.
>>>>
>>>>SE and nullmove do not mix.  And that's straight from Hsu.  From speaking with
>>>>him (via e-mail), I gathered that this would be his approach using nullmove, and
>>>>I tried it in Crafty with very nominal success:
>>>
>>>they seem to work just fine in Ferret, arguably the strongest tactical program
>>>out there.
>>>
>>>anthony
>>
>>Yes, but Ferret is not using Hsu's Singular Extension algorithm.  not even
>>close.  Bruce is using a "SE approximation" that works very well, but it is
>>not to be confused with what Hsu defined as singular extensions.
>
>  Is this approximation similar to the one Bas describes in other post? If not,
>could you please describe (if you know) what is Bruce doing? I would like to
>implement Bas' idea, a small modificacion I figured out, and any other known
>approach, and then post the comparison here.
>
>  José C.

I believe it is similar.  I have an old "Singular()" function that I could
make available if you want to look at it.  Note that it "fits" Crafty, and
would obviously need changes for other programs, but the comments and basic
structure would be a starting point.  I'm not sure how well it works, but I
believe I have the code stuck away if anyone is interested...

Bob

BTW what this is is a piece of code you would call where appropriate.  It does
the singular-test search, and if it is convinced one move is better than the
rest by a wide margin, it returns that move, which your search function will
then have to recognize during the normal search, and extend it.  I probably
should put this into Crafty and make it a compile-time option, but I am not
sure how easy that would be with the SMP stuff that was done _after_ the
Singular() function was written.


>
>
>>I did the full DB implementation in Cray Blitz, and using non-recursive
>>null-move R=1, it seemed to work pretty well.  I have tried it more than
>>once in Crafty, and it simply did not work reasonably whatever I tried.  I've
>>not decided that it is hopeless, but I have not played with it further in at
>>least a couple of years now...  I came to the same conclusion that somehow,
>>null-move with bigger R values simply doesn't work very well.  You extend, but
>>null-move reduces the depth and things get lost in the middle.



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.