Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: how to back up the PV with minimal work.

Author: Robert Hyatt

Date: 10:05:02 01/20/04

Go up one level in this thread


On January 20, 2004 at 12:55:58, Sune Fischer wrote:

>On January 20, 2004 at 11:55:20, Robert Hyatt wrote:
>>
>>OK.  Multiply the above by 100x and turn that into times.  It takes how long
>>to copy a complete cache line from memory to cache and back?  That is 32 words
>>which is longer than _most_ PVs.  Do that 100 times you can't even measure it
>>over the rest of the search expense.  :)
>
>You are not adressing the other issues, the termination stuff and the added
>code.
>It's not the copy-cost that mainly keeps me from doing it.

I gave you _exactly_ the code from within Crafty.  One store, two calls
to memcpy() (and one of those could be a store in fact).  I don't have any
"termination stuff" at all in Crafty.  When I start a new PV, I store the
ply for the last move.  That's all I need.


>
>>>The fundamental principle in chess programming is never to do any work that is
>>>not needed.
>>>That's why I think it is a bit silly to update a PV a few hundred times (in
>>>particular in qsearch) and then only print it out the last one.
>>>
>>>If you need the pv for search related things I can understand, but if you only
>>>want it to look at it then it is nothing more than eye-candy.
>>
>>Sorry, but we disagree.  A chess engine has more than one function.  If all it
>>did was play chess, then I'd get rid of the PV myself although I might change
>>my mind based on move ordering.  IE at the end of an iteration I stuff the PV
>>into the hash to make sure there are no "fishy" moves left there, and not doing
>>that will impact the search space a bit.
>
>Doesn't that worry you then, that you have to do this at all?

yes.  But you miss the point.  You don't do this.  But you should.  Because
I have found that without the "stuffing the PV" code, my search gets a bit
bigger.  If I don't "stuff the PV" I am using the _same_ information you are
using, namely residual hash information, and I know that it is going to have a
bogus best move here and there for the reasons already given.

If I retrieved the PV from the hash, I would find what is in the hash, yet
my "stuff the PV" code has shown that what is there is not so good, and is
often incomplete as well...

>
>It might be an indication something isn't optimal if your hash is losing
>important entries that easily.

Somehow that is doubtful.  Hashing is not exactly rocket science.  My code
is open for all to examine, of course...



>
>>But a chess engine does other things.  IE analyze positions and give scores and
>>PVs for the moves.  Who would want an annotated game that just suggested a move
>>and score, with no indication of why the move played was bad or the move
>>suggested was good?
>
>I'm not sure you will care for my opinion on the value of computer annotated
>games :)

That's your choice.  I have found it _very_ useful.  Particularly when you are
looking for tactical mistakes, where the computer is very good at finding them
and the PV is very good in illustrating why the move was bad.

>
>Speaking as a chess player, I think there are better ways to analyze a position
>than to look at a PV.
>
>Just consider how often the it fails to guess the right ponder move, that's like
>40% of the time perhaps?
>Now what's the probability it can guess the 3rd move correctly?

in forcing lines, the ponder percent is near 100%.  That is the point.  In
places where we are talking about positional judgement only, then the PV may
or may not be useful at all.  But for debugging, it certainly is always an
important tool.

>
>It turns into nonsense real fast, so for a serious player it can't be of much
>value.

A _lot_ of "serious" players use the PV output.  I hope nobody treats it
as 100% accurate unless the position is tactical in nature.  But then the
best move of the  programs is hardly 100% accurate so that is a sort of
circular argument.  If it has flaws, don't use it...  It has flaws, so don't
use it, repeat...

>
>>And, again, what about debugging?
>
>Right, nothing debugs the hash better :)
>
>-S.



This page took 0.01 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.