Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: PV array

Author: Nagendra Singh Tomar

Date: 04:16:27 10/10/02

Go up one level in this thread


In ur example; you should note that when we are searching for the opponent's
best reply for d4 we always have alpha and beta (calculated till the first
subtree e5 is fully evaluated)in hand. If we find any of the opponent's reply to
be better than e5 (and asusming that e4 was THE best move), the score of the
reply WILL be more than the beta set by e4 hence it will fail-high and we will
not update PV. IF at any point in time we get a move that lies between alpha and
beta we know that the move lies on the PV based on the tree calculation till
that time.
IOW if at any point in ply 'x+1' we update the PV, this updation WILL percolate
all the way upto the top, updating the PV moves of all the plies <= x.

beta is there to say that the opponent has got means to stop u from playing a
move, so score>beta cannot lie on PV. For a move for which alpha < score < beta,
the opponent has got no means to stop us from playing this move.

regds
tomar

On October 10, 2002 at 06:40:50, Dieter Buerssner wrote:

>On October 10, 2002 at 06:20:31, Nagendra Singh Tomar wrote:
>
>>No, not really.
>>I have got a single one-dim array that is part of the singleton ChessBoard
>>structure.
>>If a move at ply 'x' is found to be lying on the PV (score > alpha) then I
>>simply do "PV[x] = this_move" without caring to copy the remaining PV from the
>>deeper plies, because they would have already added it to the PV array at
>>appropriate place in the PV array. So by the time I reach ply 'x' after
>>returning from ply 'x+1' I am sure that the part of the PV starting from 'x+1'
>>is already in place. I just add this ply's contribution to the PV.
>>Doing this when i reach the root, all the moves in the PV will be stored in the
>>one dimensional PV array.
>>
>>What do u say ?
>
>If I understand you correctly, this should give wrong PVs, which may even
>include illegal moves.
>
>Assume a 2 ply search from the start position. You start with e4 (which shall
>"win" here). The PV shall be e4 e5. As the second move you try d4, which will
>not give a better score. But after d4 you search for a best move for the
>opponent. Now this best move will overwrite the e5 in the above PV. That you
>don't update the first ply in the PV does not matter - the tail will be
>destroyed. Having a local copy in the search, or a two dimensional array will
>get rid of this problem.
>
>Regards,
>Dieter



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.