Author: Robert Hyatt
Date: 10:09:55 03/26/01
Go up one level in this thread
On March 26, 2001 at 11:10:16, Colin Frayn wrote: >On March 25, 2001 at 03:51:02, Pham Minh Tri wrote: > >>I am wondering why we do not search checking moves (moves check opponent king >>but do not capture) in qsearch function. I think they are not ?quiescence? and >>should be searched as capture moves. Does anyone try them? > >In ColChess I always tested Checking moves and also pawn pushes to the 7th/8th >rank as part of the quiescence search. I found that this improved my tactical >performance quite noticeably. Of course, it isn't wise to do this to infinite >depth, but instead I introduced the idea of a 'wide' quiescence search, above >which I test all captures, checks and pawn pushes. Below this depth I test only >captures. Also, above this depth I generate all replies to checking positions >and do not allow stand-pat moves. > >The depth of the wide-qsearch is generally a base value (0 or 1) plus an extra >ply or two depending on how volatile the position is, and has recently been. >e.g. I add on one ply (up to max. 3) for each checking position in the tree >leading up to the qsearch. > >Cheers, >Colin I did something like this in Cray Blitz and early versions of Crafty. IE I had three parts of the tree search that were defined by three different search procedures: 1. Search(). Does just what you would think. Looks at all moves, extends the depth as needed, etc. 2. Threat(). This took checking moves, plus dangerous-looking pawn pushes, and perhaps a few other rare exceptions, and examined only those moves. The depth here was severely limited, to (typically) no more than 4 plies, although this part of the search _could_ extend and have this continue to work. At any point the side to move was "in check" then a normal full-width search was done. 3. Quiesce(). Just captures, normally, but if the right situation came up, it would follow checks. The rule was that it would not follow a check in the q-search unless it was possible it led to a forced mate. This was defined as "is the side being checked 'in check' at every quiescence ply? If not, stand- pat option would break a forced checkmate. If the answer was 'yes' then I would continue to follow checking moves in the q-search and when in check after such a checking move, a full-width search was done to see if it was mate. It is complicated, as you can see. I haven't done it in several years and have not seen any bad effects. And without those 'bad effects' I much prefer simple code over the more complicated option.
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.