Computer Chess Club Archives


Search

Terms

Messages

Subject: Where lies the difference in strength?

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.