Author: Odd Gunnar Malin
Date: 16:40:17 04/28/02
Go up one level in this thread
On April 28, 2002 at 19:12:36, Uri Blass wrote: >On April 28, 2002 at 17:05:59, Odd Gunnar Malin wrote: > >>On April 28, 2002 at 16:26:18, Russell Reagan wrote: >> >>>I'm curious why a triangular array is needed when storing the PV. What is wrong >>>with having a regular array that stores the PV? In other words... >>> >>>move pv[MAX_PLY][MAX_PLY]; // <--- why do we need this? >>>move pv[MAX_PLY]; // <--- instead of just this? >>> >>>Since you only use pv[0][0], pv[0][1], pv[0][2], etc. I don't see why you can't >>>use a one demensional array to store the pv in. There must be some reason >>>because when I searched the net and the CCC archives everyone explained it using >>>a triangular array, but I can't seem to figure out why this is necessary. Anyone >>>know the reasoning here? >>> >>>Russell >> >>Hi. >> >>You don't know before the search return that it would be a new PV, so you (at >>least I do) have to save PV for all rootmoves or current plus best. >> >>pv[MAX_MOVE][MAX_PLY] >> >>I can imagine that other do it different :) > >Yes >Other do it different and I also found it as something that is not very easy to >understand. > >I will try to give some explaination. > >The idea of the triangular array is not to save pv for every root move but to >save every line that is candidate to be a pv. > Then its good I didn't study this :) I wanted PV for n best rootmove + I got a pv to put first in moveordering. (line command in my engine will print these under search). Alpha could be low if random is selected. eg. random 100 will always give root alpha=best-100. Then I select a random move among these with highest probability for the best move. Of course random 0 will give best play (default). We have all our goal. Odd Gunnar
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.