Author: Russell Reagan
Date: 23:11:40 06/03/02
I've always heard, better algorithms will beat the fastest code using a less efficient algorithm any day (IE MinMax vs. Alpha-Beta). My question is, when do you stop working on algorithmic type stuff and start working solely on adding knowledge to your program, and focus solely on the evaluation function? Or is there a even point at which you stop working on things like search and only focus on evaluation? To me, it seems like there is only so much you can do in terms of improving the searching methods, improving the efficiency of various other functions that are used often (is square attacked, make move, generate legal moves, etc.). Do you ever reach a point where the only thing left to significantly improve is the evaluation function? If someone could advise a good plan for what to work on, kind of a step by step thing, I would love to see what others think of this process. Maybe a sort of "basics" check list, like Alpha-beta, transposition table, null move, etc. I'm nearing the point at which my engine will be working, and I'm reaching the "what next?" stage. An example of what I'm thinking is "I've implemented alpha-beta. What am I supposed to do to improve the alpha-beta algorithm?" Perhaps I'm misunderstanding what people mean when they talk about "improving algorithms" instead of "optimizing". I'm kind of looking for some general advice as to what to do after the engine is successfully up and running, playing without any major known bugs. Do I take a step back and work on improving those often used functions, or do I move ahead and begin implementing new things like null move? Thanks in advance for all of your comments and advice. Russell
This page took 0.02 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.