Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Rybka's analysis is scanty

Author: Tord Romstad

Date: 03:33:42 12/10/05

Go up one level in this thread


Hi Vasik,

I agree that full PVs shouldn't be very important to the end user.  If a
correspondence player pays lots of attention to the moves late in the PV,
he is probably not using the program in a very effective way.

On the other hand, I have sometimes found full PVs useful when trying
to improve my program.  When the search returns some really strange
score, I like to be able to easily find the exact position my program
misevaluated.

On December 10, 2005 at 05:24:19, Vasik Rajlich wrote:

>3) What I call "key variations". A PV is the variation which gives you the root
>score. A KV is a variation which best explains the difference between the
>analysis of an engine at two iterations, and captures tactical themes much
>better. I have a formal definition for this, and KVs may soon be part of some
>UCI extensions which are under consideration.

This sounds very similar to Johan Melin's "Critical Variations".  Right now I
cannot find Johan's description of the idea except in a cached page at Google,
which is poorly formatted and somewhat hard to read.  I have tried to beautify
it below:

     One cute feature in KnightDreamer 3.0 is the critical variations(CV).
     Most programs only give the principal variation(PV) at each iteration.
     That is what is considered best play by both sides according to that
     iteration.

     The critical variation is used when there is a disagreement between
     two iterations. The two iterations gets to play the moves of the side
     which they think is better(relative to what the other iteration scores
     it as). The moves from the previous iteration are stored in the
     transposition table, and this wastes memory, which is one reason
     most programs don’t do this. Another problem is that in long
     searches entries in the transposition table can be overwritten, so
     only partial CVs can be retrieved.

     CVs can be very helpful when writing a chess engine. It helps you
     understand what the engine needs to see to solve a tactical problem,
     such as when null moves delay a tactical finding.

     Example:
[D]rn3rk1/4bppp/1q2p3/p2pP3/8/1PN2B1P/P4PP1/2RQ1RK1 w - - bm Bxd5; id "ECM.961";


     On iteration 5 KD doesn’t find the right move and gets an even
     score. On iteration 6 it finds the move with a score of more than
     a pawn. But the PV begins with: Bxd5 Ra7, so black doesn’t
     recapture. What happens if black recaptures? Iteration 5 thought
     the recapture worked, so for building the CV we let iteration 6
     take the white pieces and iteration 5 the black:

     CV: Bxd5 exd5? Nxd5 Qd8? Rc8! Qd7 Rc7! None

     In this case, the last position seen by iteration 5 when it decided
     “good for black”, black has no move that avoids losing a bishop,
     and that is seen by iteration 6. Moves marked ‘!’ were not found
     by iteration 5. Moves marked ‘?’ were chosen by iteration 5 but
     rejected by iteration 6. (These markers can often be very silly.)

(End of quote).

Is this the same as your "Key variations", or is your idea something
different or more general?

Your other ideas are all very interesting.  Keep up the good work.

Tord



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.