Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How to remember the principle variation in my program

Author: Hans Bogaards

Date: 04:36:53 08/26/03

Go up one level in this thread


On August 26, 2003 at 06:28:13, Tord Romstad wrote:

>>In my old program I first used a 2 dimensional array PV[MAXDEPTH][MAXDEPTH]
>>and stored the best move in PV[Depth][Depth] and copied the rest of the PV
>>from PV[Depth + ][Depth + X] to PV[Depth][Depth + 1]. This worked but was
>>very slow.
>
>This is what most people do, I think.  And there is no reason it should be
>slow.

The approach with the linked list was about 10% quicker, IIRC.

>The code should look something like this:
>
>PV[Depth][Depth] = new_best_move;
>for(i = Depth+1; i < PV_length[Depth+1]; i++)
>  PV[Depth][i] = PV[Depth+1][i];
>PV_length[Depth] = PV_length[Depth+1];
>
>I assume this is what you did?  I cannot imagine how this could slow down
>a program noticably ...

I'll try this approach again. I think that the problem was that I copied all
moves from Depth+1 to MAXDEPTH instead of PV_length.

>Good luck with your program!  I would recommend you to make it compatible
>to the xboard/Winboard protocol.  There is a big community of friendly
>Winboard enthusiasts who runs test tournaments between amateur engines
>of all strengths.

That is my plan. I might also implement the UCI protocol

If I ever manage to make a version of my program that is stable enough for
release and plays reasonable chess, I'll let you all know...

Before that I will probably need to ask many more questions.
--
Hans



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.