Author: Nagendra Singh Tomar
Date: 04:37:32 10/31/02
Go up one level in this thread
On October 31, 2002 at 07:26:50, Severi Salminen wrote: >>I am afraid its not like that. "pv_length[ply]=ply" clause is there because, if >>the current node contrbutes to the PV length, it will be only of length 'ply', >>this will increase if this node gets a PV from some child node (which is done >>inside UPDATE_PV). So IOW pv_length[ply]=ply has got significance ONLY for leaf >>nodes. For other nodes anyway it gets ovwewritten inside UPDATE_PV as soon as we >>get a child with score>alpha. So if we have a way of knowing that a node is a >>leaf node then we can do "pv_length[ply]=ply" only for child nodes. For other >>nodes it will be copied from the child having score>alpha. >>So in a depth=4 search (after doing depth=1,2,3 searches) the moment we enter >>the root node (ply==0) we do 'pv_length[ply]=ply' pv_length[0] becomes 0. >>I hope I am clear this time !! > >Everything is correct. When you enter root node in depth==4 search, you _must >not_ set pv_length[Ply]=Ply (that is pv_length[0]=0). In root node we _allways_ >have a valid PV (expect at the 1st iteration) which we can and must use at the >next iteration. That is the reason for your problem. So add the next if >statement. > >if(ply) > pv_length[ply]=ply; > >That prevents pv_length[0] from deleting. Or write a totally separate >roosearch() function. That is the preferred approach. > >Severi Correct !! tomar
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.