Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question about Qsearch

Author: Frank Schneider

Date: 06:45:24 03/24/99

Go up one level in this thread


On March 24, 1999 at 09:30:19, Inmann Werner wrote:

>Hello.
>
>My question sure is a little dumb, but anyway....
>
>When in Qsearch a check occurs, and the opponent can not come out of the check
>(cause he only tries capture moves!) a position is evaluated to be mate,
>although this is not right.
>I am worried about this, but looking at the play of my program, it seems to
>never occur.
>In normal search, when a check comes, I extend. I also extend on the way to the
>Qsearch. But if I am really in Qsearch I seem to ignore the problem.
>
>Is it a problem or am I seeing Ghosts?
>
>Werner

Hi Werner,

may be a problem, I think (I never tried not searching quiet moves when in
check). What Gromit does is described in the old Kraas/Schruefer-book and
works like this:
when in check
- search all captures. if one causes a cutoff - good
- after searching all captures and before searching the first
  quiet move (excerpt from Gromits code):
           /* These checks are performed after the last capturemove.
               During the quiescence we assume that only captures
               (or selected quiet moves) can improve the evaluationscore.
               Therefore there are new cutoffs after searching all of them.
               1. If a capture got a better score than the evaluation
                  (quiet moves are not better than the evaluation)
               2. If the evaluationscore is < alpha
                  (quiet moves will be < alpha too)
               3. if a quiet move is > evaluation
                  (see 1.)
             */
        {
            if (best>=evscore)
            {
                goto done; // 1. a capture was good enough
            }

            if (evscore<=alpha)
            {
                best = evscore; // best=alpha?
                goto done; // 2. no quiet move will be better than evscore
            }

            if (evscore<beta)
            {
                beta=evscore; // else lower beta so that a cutoff occurs as
// soon as a quiet move is as good as the evaluation.
            }
        }
... go on searching quiet moves


Hope that helps

Frank



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.