Author: Hans Bogaards
Date: 03:00:51 08/26/03
Hello Everybody, I'll introduce myself briefly: I am Hans Bogaards from the Netherlands. A couple of years ago I wrote a chess playing program called Joshua. It never reached such a state that I played tournaments with it or released it to the public. The project ground to a hold mostly due to the demands of graduating. Lately I've become interested again in Chess and Computer Chess, so I've started with a rewrite of my program. But I can't seem to find The solution to one (simple) problem: How do I remember the PV during the search. 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. Later I used a linked list with as extra parameter a pointer to the end of the variation. This was still a bit slow, but esp. very cumbersome to keep all the administration in the right order. It also made my code hard to read. I have the feeling that there must be some very simple way to preserve the PV, but I've looked at the source-code of GNU Chess 4.0 and of Crafty, but I dont understand how the PV structure/code work in both these programs... One solution I know is to only use the transposition table for the best move, but when I tried that in my old program it made the search tree quite a bit larger... What kind of structure do you use in your programs? (if you are willing to share...) Am I missing sometimes simple here? Hope you can help me... -- Greetings 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.