Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: singular extension

Author: Robert Hyatt

Date: 08:21:32 09/16/04

Go up one level in this thread


On September 16, 2004 at 10:06:46, martin fierz wrote:

>On September 16, 2004 at 09:53:14, Robert Hyatt wrote:
>
>[snip]
>
>ok,ok, i believe you. i just never saw anybody here saying it worked for them,
>but i distinctly remembered people saying it didn't work for them.

Correct both ways for me.  I reported more than once that it looked
significantly better in Cray Blitz, but that tests with Crafty never produced
results that looked better than crafty without SE.  I don't know whether the
null-move R=3 stuff hurt the SE detection code or not, although I did speculate
that it was possible since CB used null-move R=1, non-recursive, rather than the
aggressive way we do it today...


>
>>Bruce has reported _lots_ of test data here in CCC.  Including ECM results with
>>and without, etc...
>
>but... do you really believe a tactical test set like ECM is the right way to
>test SE? and what about the question pham already posted:

That wasn't the only tests.  Bruce mentioned several times that he noticed that
with SE, the program played a bit more "steadily" in tactical positions, and
that against programs without SE, he would usually be going along when "BAM"
(his words) SE would find a deep tactic and end the game...

He once said "this is a stupendous extension" although I believe that later he
became "less than stupendous" when looking at real games rather than tactical
test positions.  But he did use real game data, and went so far as to play lots
of Crafty vs Ferret games where I turned book learning off and set the width to
1 so he could play crafty the same opening with and without SE...


>
>in http://www.brucemo.com/compchess/programming/extensions.htm#singular
>bruce wrote the stuff below in 2001 - not very enthusiastic about SE if you ask
>me! i probably based my anti-SE-bias in part on this without remembering where i
>had it from, i read bruce's pages a long time ago.
>
>cheers
>  martin
>
>
>"Singular extension
>This extension is the search heuristic centerpiece of Deep Thought, the
>strongest computer chess player of the 1980's, and precursor to Deep Blue.
>
>The idea is that if one move is significantly better than all of the other moves
>(a singular move), it should be extended.
>
>This can be interpreted as a more general case of the recapture and single
>response extensions.  It encompasses these, but also can be used in cases where
>the singular move is not a recapture and where the side making the move isn't in
>check.
>
>I don't know why it worked in DT, but it seems to me that this is a loss-seeking
>extension.

The question is, did he write that before or after _he_ chose to implement the
"cheapo version" and then actually keep it in his program because it seemed to
help at times, and didn't seem to hurt...  That is a positive gain, although it
is one of those probably impossible-to-quaitify-how-much-better gains we get
here and there.


>
>I have never seen anyone claim in an article to be able to get good results with
>this extension, so for academic purposes I think this is unproven.  I've played
>with it myself and had some success in getting it to solve tactical problems
>faster.
>
>The down side is that you get less general-case depth when you use this, because
>you have to do extra searches to test for singularity."


You can also find a version of this from Chrilly Donninger in the ICCA paper
where he talked about null-move threat-detection.  Same sort of idea.  If one
move fails high, but a null-move fails low with a lowered window, that one
fail-high move is holding off some sort of threat (it is singularly good) and
should be searched deeper.  Nimzo used this for years...   Yet another variation
(in implementation details) of the same basic idea...

Other "variations" include recaptures (which are often singular),
one-legal-reply to check extensions (trivially singular) and checks.  And the
main reason check extensions are good is not to find deep mates, but to avoid
letting a check serve to push a threat beyond the search horizon.  IE a check is
often "singular" as it serves to push some bad event over the horizon, and
extending checks reduces this problem significantly.  Good passed pawn pushes
are similar.  In fact, _every_ extension we do is loosely based on the idea of
"this move is significantly better than other alternatives and we need to search
it deeper to see what is really going on to be sure this is true..."

And remember, in DB, they even had a modified version of SE that didn't just
extend when only one move was best, it also extended (less) if there were two
moves that appeared to be better than the rest by some margin...

Clearly adding SE will produce more for a program that has no extensions,
because it will subsume the functions of many existing extension ideas.  And
clearly good implementations of the usual extensions will get pretty close to
the level of SE...





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.