Author: Robert Hyatt
Date: 08:04:00 03/04/03
Go up one level in this thread
On March 04, 2003 at 05:04:55, Sune Fischer wrote: >>Note that I don't know of anyone extending when there is only one legal move. >>The >>original algorithm was "one legal reply to check" which means you are in check >>_and_ >>you have only one way out. > >Well _I_ want to extend in this case :) >Anyway, I don't think "original algorithm" necessarily means "optimal algorithm" >;) > >I think it is related to the re-capture and singular extensions, only problem is >how to actually "remember" the only move, on my movelist moves are deleted after >being searched... grrr what a drag. I'll bet that if you extend only on one legal move and not in check, it will only fire a dozen times during an entire game. One legal move is _very_ rare if you aren't in check. One "logical" move is a different matter. We played with an option "one sane reply" which is more general. Peter Gilgasch proposed it to me and I tried it in Cray Blitz. The idea is that often you have 2-3 ways out of check, but all but one lead to your getting mated. So you extend the one that doesn't get you mated so that you can see deeper to possibly see a mate there as well... It is pretty expensive to do this, however, and I didn't keep it very long because I was beginning to work on the singular extension code and it is a super-set of this kind of "one-sane-reply" extension. > >While on the subject, how does one detect singular moves? Singular as in deep blue? For a move on the PV, search the first move with the normal window a,b. Search the remaining moves with the window a-s, b-s where s is the "singular margin, I think I used 3/4 pawn or something similar as they did in DB. If all moves fail low, except for the first one obviously, then the first move is significantly better than the rest. But if one fails high, you have to test _it_ for singularity by seeing if it is "s" better than the original best move. For fail-high nodes the same idea but it is expensive. You fail high on move X. Normally you would exit _right now_ returning beta, but you first test all the other moves with the offset (downward) alpha/beta window, but you search to reduced depth to control the cost. If the rest of the moves fail low, the fail-high move is singular. Re-search it with a deeper search. There is another way to do "pseudo-singular" I can describe if you want... > >-S.
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.