Author: frank phillips
Date: 08:15:03 07/16/98
Thanks to those who responded yet again to my request for help. I found the major bug (I hope) causing the program to be so slow and thought I better ‘own up’ just in case it might help some other newbie. My program now does 6 ply in 4 seconds and 7 ply in 30 seconds from the opening position on my K6-233 - without much evaluation of course. Your comments helped me step back from the detail I have been struggling with and identify the problem, which was a full width search at ply[0]. To begin with, I developed the program without the search to make sure that the move generator, makemove, unmakemove and in-check detection worked. So to start with it effectively played a one move look-ahead game by calling a function ComputerMove( ) and scoring the position at one move ahead for all legal moves then choosing the best. When this was working I added a Negamax and Quiescent search, but the function ComputerMove( ) was still making each and every ply[0] move before calling Negamax. I shifted ply[0] down to Negamax and the speed increased dramatically presumably becuase of the alpha-beta cut-offs. The key was investigating how may nodes the program took to reach each successive depth as Tom Kerrigan suggested. Now I can work on some of the techniques (killer move, null move, hash) you suggested. What a wonderful place this is, where a complete novice can get help and encouragement from the experts.
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.