Author: Russell Reagan
Date: 22:52:18 04/05/02
I was sitting around the house tonight thinking about computer chess, as often happens, and I began to think about why certain programs are better than others. I began by thinking that most programs use *basically* the same algorithms, with their own small tweaks here and there. So on equal hardware, some programs might get a few extra NPS here and there, but it doesn't seem like one program would be able to gain a significant advantage over another strong program from out searching it. I would guess that everyone uses some form of alpha-beta or "enhanced" alpha-beta like PVS, null move, transposition table, and so on...all the basics that anyone with a strong program knows about. So we all know the basic algorithms and hueristics, and yet we still have wide ranges in program strength. This led me to ponder three possible reasons for this, which I will present in the form of questions to you. Do the top programs make use of some methods that the general computer chess hobbyist does not know about? Any "secrets", or any significant improvements upon a well known technique? Secondly, what is the margin of difference that actually makes a difference? For example, if program A is optimized to the hilt, gaining a few thousand NPS over program B (or even more), is that really worth anything in terms of playing strength? Maybe a +0.05 pawns for program A or some equally trivial "advantage", or is it? Basically, how much better/faster/deeper does the program have to search to gain a realistic advantage over another program? Small advantages in speed due to one program being more optimized than another, IMO, would not be enough to make one program significantly stronger than another. Maybe a half a point out of many many games. But then again others here would probably know better than I, so speak up :) Last, and possibly the most obvious of my possible reasons for this, is to wonder if the strength differences in programs lie in the most mysterious part of any chess program, the evaluation function. This seems to be the area where there is little or no standardization of algorithms, and also the area allowing for the most creativity. So do we have a winner...the evaluation function? Still on the topic of the evaluation function, there are two possible reasons for evaluation functions causing differences in playing strength. As I see it, you could have a better evaluation function, leading to a stronger program. that's option one. Option two, you could have very similar evaluation functions, but one is highly optimized and executes much faster than another, leading to a stronger program. And of course, if anyone else has any other ideas I'd love to hear them. I don't ask for any specifics from anyone if you've got some "secret" method that makes your program significantly stronger (but you are more than welcome to tell us ;), but I'd be very interested in learning that there are more secrets out there to be discovered. Seems like an interesting topic to me. Perhaps determining the key point in this large battleground we fight upon is the key that determines a world class commercial program from a good amateur program. Russell
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.