qsearch (was alphabeta?)
On Tue, 9 Mar 2004, Noah Roberts wrote:
Most engines utilize a quiescence search. This search will continue
alpha beta to infinity or until a quiet position is reached. The search
always reaches a quiet position so infinity is only a theoretical bound.
Simple quiescence searches only look at captures. Slightly more
complicated ones look at checks. Really thorough quiescence searches
might look for "forced" moves that are not one of the other types -
moves where there is no other practical option (actually this falls into
singular extensions also).
Too complicated quiescence search is disadvantageous as it may cause a
"quiescence search explosion", meaning that there will be so much extra
hassle with it that the actual full-width search does not get deep enough.
That means that best programs limit severely the qsearch width in order to
get about next full width search sooner. The ways to do this a
- ordering qsearch moves so that captures with least valuable attacker and
most valuable victim are executed first, if attack boards are in use, then
captures to squares not in opponents attack boards would be also good
tries to do first.
- perhaps taking a risk and not running qsearch to infinity, but stopping
it to, say 6 plies, or not trying captures with more valuable attacker
than victim if victim stands on opponents attack board.