Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Limited singular extensions. Anybody tried?

Author: Bas Hamstra

Date: 15:33:15 05/18/01

Go up one level in this thread


How does this modified version compare to the original Crafty in terms of
tactical abilities? Does it solve more tactics? Or less? Have you tried it with
and without nullmove? And?

Curious,
Bas.


On May 18, 2001 at 12:52:25, Gian-Carlo Pascutto wrote:

>On May 18, 2001 at 11:26:43, Miguel A. Ballicora wrote:
>
>>I am toying with the possibility to include (and learn about) some sort of
>>singular extensions in my program. I haven’t read any paper about that, just
>>the explanations given in this forum and long time ago in r.g.c.c.
>>Intuitively, the overhead would be huge and will hardly justify the benefits.
>>Now, the question is, has anybody ever try to implement a limited version of
>>singular extensions?
>
>I have done a full implementation of Singular Extensions for Crafty 18.9,
>based on the JICCA papers and comments from Robert.
>
>I am quite interested in how your implementation works, especially when
>dealing with some of the nastier cases (like fail-low on a fail-high
>singular move etc...)
>
>My code is freely available on request.
>
>>Like, triggering the algorithm only in certain positions or circumstances?
>>(there might be many possibilities to try, like there is an attack, evaluation
>>is unstable, mate threats, checks etc. etc.)
>
>How are you going to trigger the algorithm reliably? Mate threats and
>checks should already be extended without SE. 'An attack' is a too limited
>classification.
>
>When you check whether the evaluation is unstable, you are going to have
>to use quiescent searches to determine this. The actual evaluation is
>never stable in a real search tree. Doing those Qsearches is already
>going to add a lot of overhead.
>
>The idea of SE is to pick up things going on that are not detectable by
>static criteria. If you can come up with a reliable algorithm to trigger the
>check for SE, then you have made that same check pretty useless.
>
>>I just started to try and I found that my first try solved one problem much
>>faster.
>
>One problem...but how many were worse? My implementation has an overhead
>of nearly 2 ply. In the LCT2 which I used that lost many other solutions.
>
>>Did anybody try anything like it? Comments? Suggestions?
>
>I added two 'tricks' to my implementation:
>
>a) when you detect that several moves were singular but failed low
>after being extended, something interesting must be going on, and
>instead of continuing to extend/check/fail we just extend _everything_
>at this node. This is sort of a worst-case elimination.
>
>b) We can assume Crafty's 1st move is best in 92% of the attempts, and
>the best move is one of the first 5 in 99% of the attempts. If we do not
>get a move that disproves the singularity of the fail-high move within
>the first 5 moves we test, we assume it is singular and do not check the
>remainder.
>
>--
>GCP



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.