Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How does Chessbase show multiple lines of analysis?

Author: Robert Hyatt

Date: 08:31:07 02/09/00

Go up one level in this thread


On February 08, 2000 at 13:22:29, Pete R. wrote:

>Multiple execution threads??  One thing that always strikes me is how easy it is
>to find forcing lines by using this feature, and via short searches one can find
>lines in a short time, based on the program's analysis, that are impossible for
>the program to find in a reasonable time from the root position.  In other words
>the only human intervention is to note how big the difference is between the
>preferred move and the next best moves, and prune lines accordingly.  In this
>way the major candidates are obvious and forcing and semi-forcing lines are
>trivially easy to follow.  Couldn't this be automated??  In theory alpha-beta
>does this, right?  But the reality is that programs tend to suck at finding deep
>forcing and nearly-forced lines, and it would take a dozen hours to get to a
>deep enough ply to find what you can find in a minute of noodling around with
>this feature.


There are two ways to do this, but only one is _right_.

1.  You search all legal moves to a fixed depth, and save the best move/PV and
remove it from the list of legal moves.  Search what is left to the same depth,
which will find the second-best move (since the best was removed).  Remove this
and continue until all moves are searched, or until you get enough good moves to
stop.

This is horrendously expensive.  No program would attempt this during a game.  I
do this in the annotate code for crafty, since that is done 'offline' and the
extra time is not important.

2.  As you search, and change your mind, you save the old PVs as well as the
new one.  If, during the current search, you get a PV for the first move, and
then change to a new best move, both PVs are useful as are the scores.  Of
course, there might be another move that is better than the first, but worse
than the second, and alpha/beta won't pick it up.

Any other attempt is simply broken, as alpha/beta is incapable of finding the
second-best move, since it usually stops after searching only the best move at
any ply and then failing high.

Bob



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.