Singular Extensions

Discussion of chess software programming and technical issues.

Moderator: Ras

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Singular Extensions

Post by bob »

Daniel Shawul wrote:Maybe you would like to try larger depths with lmr and other pruning? At depth 6 I had too much slow down..but that was for scheme (5).
Also there is question of testing at the appropriate tc to get the effect for larger depths.
I do not see any particular reason why this (SE) would be more effective at longer time controls than at shorter ones. Very much like the LMR discussion from a week or two back where the time control really has little effect on what LMR does to the Elo of a program. Typically I would actually expect pruning and extensions to be _more_ effective at shallow depths because they are making a greater difference in overall average depth there (compared to the opponent). When you say "at depth 6..." that seems backward to me. This number I was referring to was "remaining depth required before allowing a SE test to be done." Which means, as this number grows, the number of SE tests goes down. In fact, you can turn it off entirely with a big enough number... So maybe either I misunderstood your comment or you misunderstood my terminology???
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Singular Extensions

Post by Daniel Shawul »

When you say "at depth 6..." that seems backward to me.
I meant depthleft ofcourse (last 6 plies no SE), otherwise it wouldn't make sense to avoid SE at depth=6 only ? Like the common depth restriction method used for splitting in SMP, LMR etc. Maybe I misunderstood you..
I do not see any particular reason why this (SE) would be more effective at longer time controls than at shorter ones
It is not like that. If you try singular extension at depthleft = 8 (like I do now), and use a TC controls like 40/30 (like I do now), you might not get many SE extensions to make conclusions.
I actually did the test at fast time controls at that setup. Some people here suggested I use longer TC and hence my suggestion ..
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Singular Extensions

Post by bob »

Daniel Shawul wrote:
When you say "at depth 6..." that seems backward to me.
I meant depthleft ofcourse (last 6 plies no SE), otherwise it wouldn't make sense to avoid SE at depth=6 only ? Like the common depth restriction method used for splitting in SMP, LMR etc. Maybe I misunderstood you..
I do not see any particular reason why this (SE) would be more effective at longer time controls than at shorter ones
It is not like that. If you try singular extension at depthleft = 8 (like I do now), and use a TC controls like 40/30 (like I do now), you might not get many SE extensions to make conclusions.
I actually did the test at fast time controls at that setup. Some people here suggested I use longer TC and hence my suggestion ..
I always run a longer t/c sanity test, if I find something that at least looks interesting. So far I am up to depth=5, and the rating is climbing a bit each time depth goes up. I started off a bit low (2) but I suspect my original test (4) was also a bit low. I am up to 5 now and it is getting real close to normal version. 4 was about the best 10+ years ago, but not so good today it seems. Going all the way thru 10 unless I see a bad down-turn as it continues to increase the depth value.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Singular Extensions

Post by bob »

hgm wrote:
bob wrote:I suspect that the basic idea of SE is going to be a good one. But the key is going to be limiting this so that the effect is to see more useful stuff, not blow the tree up so that we see less. I seem to recall another exception was to not do SE on a move that captures the piece moved in the previous ply, for the same reason. You hang a piece, I rip it, I don't need an extra ply to see that this is a good idea. :)
I think the idea of SE is that when a refutation of a certain line is based on a single cut-move (or worse, a sequence of such moves), you take an unacceptable risk by relying on it: if on deeper search the position you end up in turns sour, no reasonable plan B exists, and you are in deep ****. So you want to guar against that by already doing the deeper search in advance, so that it is less likely you will get an unpleasant surprise.

Grabbing a hanging piece does not really fit that picture. It is likely a very profitable undertaking, of course, but even if deeper search reveals the piece was poisoned, no harm is done if you have alternative moves that also bring you above beta. Even if they are less profitable.

So it is not really the difference between the best move and the second best that begs for the extension, but the fact that you have only one move that brings you above (or very near) beta. If he hangs a Queen, and _not_ taking the Queen gets me checkmated, then taking it might still be worth the extension.
The "offset" is still relatively important. Suppose all your scores are right around beta, but just below, and one is just above, purely because beta just happens to be in the right place. Extending such moves blows the search up, and focuses more computational effort on a move that is not significantly better than the others. This can hide important things by reducing the overall depth you can reach.

I think the key is that you get into trouble if the singular move fails, and it is the only move that holds the score high enough to avoid losing. In that case, you want to be sure it really "holds" things.

Unfortunately, it seems that only Hsu's approach really addresses all of this, as the rest are using significantly reduced depths to measure singularity. You are trying to decide if a move is a "critical" move due to some deep tactic, and depending on a very shallow search to expose this tactic. I suppose that before I am done with this stuff, I am going to have to re-implement "real singular extensions" as I did in Cray Blitz. Was, unfortunately, not a trivial effort.

BTW this sort of works both ways. If you only have one good move to hold off some threat, you are interested in seeing if the bottom falls out later, but sometimes you discover that the move is actually better than you think when you follow it a little deeper... Rather than holding off some threat, the move itself is a threat to the opponent.
yoshiharu
Posts: 56
Joined: Sat Nov 11, 2006 11:14 pm

Re: Singular Extensions

Post by yoshiharu »

I might have missed this, so I ask: what margin(s) are you using for the singularity test? Is it constant or does it depend on remaining depth?

Cheers, Mauro
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Singular Extensions

Post by bob »

yoshiharu wrote:I might have missed this, so I ask: what margin(s) are you using for the singularity test? Is it constant or does it depend on remaining depth?

Cheers, Mauro
I have tried several fixed, from one pawn down to 0.1 pawns. I have tried an alternative that uses different margins for different depths, even trying scaling in both directions (more depth = wider margin and then more depth = smaller margin). So far I have gotten just a touch past the break-even point, but only barely (3-4 elo at best).

I was not a real fan of this idea when I tried it years ago, as I don't like the idea of a "random singular move". And that's what this turns into since you have to first have a hash hit, which means the position/move has to survive thru millions of other nodes with potential overwriting. And it means you won't ever do a singular test at a new position you have not searched previously which also seems flawed compared to Hsu's approach. But I am still testing this to exhaust all ideas I have come up with, and will then move on to other approaches to SE that seem more rational. Might try a quick run with stockfish 1.8 and run with and without this extension to see what it is getting, as well, before moving on.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Singular Extensions

Post by bob »

I've given up on this particular idea. I have started a stockfish round robin using 1.8 and 1.8 with SE disabled. So far:

Code: Select all

Stockfish 1.8 64bit      2845   12   12  2786   81%  2555   21% 
Stockfish 1.8noSE 64bit  2840   12   12  2841   81%  2554   22% 
This is a 6 opponent round-robin so the two 1.8's do play each other, but they also play 4 other opponents as well. The +5 elo for ttSE (trans table sing ext) is almost exactly mirroring my results. I'm going to let it run to completion to drive the error bar down, but it is clear that the two are _very_ close. Which makes sense, IMHO, since I do not see how this type of SE really offers anything.

update:

Code: Select all

Stockfish 1.8 64bit      2846   11   11  3176   82%  2552   21% 
Stockfish 1.8noSE 64bit  2841   11   11  3208   82%  2553   21% 
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: Singular Extensions

Post by mcostalba »

bob wrote:I've given up on this particular idea. I have started a stockfish round robin using 1.8 and 1.8 with SE disabled. So far:

Code: Select all

Stockfish 1.8 64bit      2845   12   12  2786   81%  2555   21% 
Stockfish 1.8noSE 64bit  2840   12   12  2841   81%  2554   22% 
Ok, then start increasing TC until you find something better then this.

If even at longer TC you don't find something good then you'd better call an exorcist to bless your cluster :-)
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Singular Extensions

Post by bob »

mcostalba wrote:
bob wrote:I've given up on this particular idea. I have started a stockfish round robin using 1.8 and 1.8 with SE disabled. So far:

Code: Select all

Stockfish 1.8 64bit      2845   12   12  2786   81%  2555   21% 
Stockfish 1.8noSE 64bit  2840   12   12  2841   81%  2554   22% 
Ok, then start increasing TC until you find something better then this.

If even at longer TC you don't find something good then you'd better call an exorcist to bless your cluster :-)
Or you had better re-evaluate your testing methodology. :)

I do not believe this is any more related to depth than LMR was when Itested it a few weeks back. In fact, if SE works at all, it works best at shallow depths where it makes the most difference, IMHO.

Remember, this is not SF vs SFnoSE, this is SF and SFnoSE in a round-robin with 4 other opponents as well, so that A vs A' distortion is not nearly as big as it can be with just A playing A'...

Code: Select all

Stockfish 1.8 64bit      2844    7    7  9385   82%  2551   21% 
Stockfish 1.8noSE 64bit  2842    7    7  9435   82%  2551   21% 
This is at 5+5 time control, playing about 700 games at a time (using both clusters which are idle). If I don't get the next SE test ready soon enough, I might try the 10+10 I tried for the LMR tests. If that isn't long enough, nothing is going to help.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Singular Extensions

Post by Daniel Shawul »

Don't forget to bring down the error bar to 1 elo until Marco gets convinced :)

I am now trying to use my old guns [single reply and recapture extensions and mate threat]
with full depth increment at upper parts of the tree. I excluded those from my SE test so
maybe that was where the benefit comes from. Seems interesting so far..