Author: Steve Timson
Date: 22:25:05 03/12/02
Go up one level in this thread
On March 12, 2002 at 19:48:59, Peter McKenzie wrote: >On March 12, 2002 at 19:05:17, Scott Gasch wrote: > >> >>There is something to be said about having an true expert consult on your >>evaluation knowledge -- it's helpful, to a point. The problem with experts is >>they can always show you a counterexample and tend to focus on the exceptions >>rather than the rule. > >This is an interesting observation > I have noticed something similar from talking to strong players about programming. I find that often the way to improve my program is to make it better on the average. That is, if a short-cut can be taken that makes it smarter most of the time, but stupider very rarely, the result is often quite worth it (some forms of pruning come to mind). A strong player often seems to be much more horrified by an occasional glimpse of stupidity, missing the fact that overall the program is winning more games. Of course, this horror might be justified if the flaw is expoitable, but in general this sort of 'optimizing' has helped chester's strength quite a bit. >> >>An expert programmer who knows the rules of chess can create a strong engine a >>lot more easily than an expert chessplayer who knows a how to program. Taking >>the engine from strong to very strong requires chess insight, true, but that can >>be gained in many ways, I find. > I agree that chess knowledge helps, but, as Scott said, a lot of that is avialable in books. I am terrible at chess, but by now I have read quite a few books on all phases of the game, seeking to improve my engine. The only place I really notice my weakness is when watching the rare game where I cannot understand the reason for the loss. However, even as a very weak chess player, this happens extremely rarely. Almost always it is something that is obvious to someone who has read a few books on chess, but might suck OTB. I think this process of watching your program play and analyzing reasons for the loss is extremely important - but it certainly doesn't require master skill, just some knowledge and diligence. >I agree. I am no doubt a weaker chess player than I was 10 years ago but my >knowledge of chess is at least as good. Chess knowledge is of course different >to chess playing ability. > >I am a better programmer than I was 10 years ago, and overall the balance adds >up to being a better chess programmer. > >Of course there are other factors that are at least as important as programming >ability and chess knowledge, testing methodology springs to mind. > Testing methodology is absolutely huge in my experience. Chester is the second chess program I have written. The first was strong, but reached a glass ceiling pretty quickly. There were just too many minor bugs. It eventually led to me shelving it, because it was a complicated mess. In writing chester I focused heavily on testing, simplicity and bulletproofing everything I could in testable stages. I have a verify routine for everything I could possibly create one for. Each feature (e.g. testing if a move is valid), has a stress test mode where results are checked through computation in alternate forms, etc. Many classical debugging tactics simply don't work when you are dealing with a pruned search tree that is 15 plies deep and contains thousands of nodes. Getting around this is pretty important I think. Another simple thing I have found quite helpful is having a debug set of positions that I know the nodes to ply for, given a current code state. I actually code the values in and have a test mode where I can quickly fire off an 8 ply search in a dozen positions or so, verifying these counts. When I am working on things like optimizing, I run this test over and over for each step making sure node counts haven't changed. If I make a change that alters the search or eval, then I check it carefully and update the numbers afterward. Anyway, it has helped me quite a bit. Sorry to have run off on a tangent... :) - Steve >cheers, >Peter > >> >>Scott
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.