Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Can someone explain (simply) how to detect singularity?

Author: Vincent Diepeveen

Date: 08:55:52 09/03/01

Go up one level in this thread


On September 01, 2001 at 23:52:19, Robert Hyatt wrote:

>On September 01, 2001 at 10:57:12, Steve Maughan wrote:
>
>>Vincent,
>>
>>>You are entirely right Ed, i have singular extensions inside diep now
>>>and play with them turned on tournaments now. first tournament i played
>>>with them turned on was back in 1994 the dutch open championship,
>>>but my implementation sucked bigtime there. Then in paderborn 2001 i
>>>used a better implementation with big reduction factor (R=3) and
>>>also in combination with other extensions.
>>
>>How do you implement SE?  Or how did the DB/DT team do it?  Are there any online
>>papers?  I've heard that SE must be dynamic so how does one detect if a move is
>>singular?  Are you doing some reduced depth search (R=3) prior to the proper
>>search?  What bounds?
>>
>>Thanks,
>>
>>Steve Maughan
>
>The "complete" way to do it is as follows:
>
>On a PV move, you search the first move and get the score.  You search the
>remainder of the moves with the window alpha-N, beta-N, where N is somewhere
>around 1/2 a pawn or whatever singular margin you want to use.  If all the moves
>fail low, then you know the first move is at least 1/2 pawn better than all
>the rest, which means it is singular.  Of course, if one of the other (not the
>first move) fails high, you have some work to do to determine if it is
>singularly better than all the rest, including the first one.
>
>On a fail-high move, you have to search the remainder of the moves, rather than
>just stopping the search.  Again using an offset window, but with a shallower
>depth than normal.  If the fail-high move proves to be singular, or the best
>PV move proves to be singular, it is re-searched to 1 ply deeper.
>
>It is complex and it takes some search overhead. There is another way that is
>cheaper but significantly less accurate...

Exactly,

There are zillions of ways to do singularity testing.
I see SE as a limited form of threat extensoins. Threat extensions
extend way more and way better, but the overhead usually is too big for me.

In diep i have done it the hard way and i detect in principle all
singular moves. Both PV singular, alfa singular, and Fail high singular.

For testsets especially Fail High singular works great, but it's directly
also the most expensive form of testing. That's why i use R=3 for that,
R=2 would cause me to search 2 ply less deeply.

The biggest win from singular extensions when talking about testsets
is the captures which they extend. Basically extending *all* stupid
captures near the opponent king is giving a lot. Extending singular
captures are giving the most for diep (i do not have recapture
extensions for example) to solve tricks.

Suppose there is a forced capturing line, after which there is a threat
to mate (like position 2 in nolot) then you directly see after those
captures and interesting checks still the mate threat.

With mate-threat extensions turned on i find Rxc5 at depth==7, with
singular extensions i need more, but still find it reasonably quick.

Of course getting a huge score quickly!

Something DIEP also hardly does is extending a check. Now
with SE taking care of doing the singular checks, this means of course
a huge increase in tactical strength!

Currently i have turned off recapture extensions and matethread
extensoins. The impact of turning off matethread extensions onto
testsets is really hundreds of rating points, even SE catches
those positions hardly and only gives a relative impact there!

Best regards,
Vincent





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.