Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Can a Programming Language Cause Engines to be Slow?

Author: Allen Lake

Date: 11:34:21 11/15/02

Go up one level in this thread


On November 13, 2002 at 15:09:14, Bob Durrett wrote:

>To be completely fair about it, you must admit that there is much in the
>present-day chess engine algorithms which is the same for every engine.  For
>example, there is all this lip service paid to "alpha-beta."
>
>My guess is that MOST, if not all, of the basic algorithm content of present day
>chess engines is the same from one engine to the next.  Correct me if I'm wrong.
>
>If you buy that, then you must admit that it's unfair talking about "using bad
>algorithms" versus "using good algorithms."  If all the chess engines are using
>essentially the same algorithms, then ALL chess engines will be using "good
>algorithms" [giving present-day algorithms the benefit of the doubt.]
>
>Differences between engines discussed here at CCC seem to me to differ in only
>two important ways:
>(1)  Coding skills of the programmers [some are experienced professionals], and
>(2)  Maturity of the programs.  [Crafty mature.  Russell's still unnamed.]
>
>My perception is that the basic algorithms used do not change significantly from
>one modern engine to the next, except as noted above.
>

It's probably more accurate to say that the basic _design_ of modern chess
engines do not change significantly from one to the next, rather than that the
basic algorithms don't change.  Engines may differ in their use of various types
of brute force search techniques or in the concrete implementation of such
techniques, and those differences, slight as they may be in some cases, account
for most of the variability in the results that those engines get in their play.

For example, given that elapsed time is an important factor in the game of
chess, an engine that finds ways to save time without compromising its quality
of play will probably have better results (match/game scores) than an engine
that does not contain those methods.  Remove elapsed time as a factor in the
game, and many of the techniques used today might lose some value to the engine
programmer.

Additionally, you can think of techniques such as opening books and endgame
tablebases as "pre-digested" searches.  The engine sees that the current board
position matches a position in either the opening book or the endgame tablebase
and it plays the recommended next move.  That recommendation is based on some
kind of predetermined evaluation (search), such as master analysis or master
play (for openings) or examination of all subsequent positions (endgame
tablebases).  Engine programmers can then take this information, convert it to a
format that the engine can read quickly, and program the engine to access this
information in real-time.  Once again, the ability (or lack thereof) to use this
information causes differences in the play of different engines.

For the past couple of decades, the pace of increase in computing power (i.e.
faster processors, more and faster memory, multi-processing, etc.) has rewarded
the developer of the brute-force engine design.  As machines get faster and have
more memory to use, searches go deeper and wider as needed in the same length of
time, which improves the apparent level of play.

At the risk of opening another large can of worms, what I think you are asking
this community to think about (in this post and others you've posted here
recently) is whether the current state-of-the-art in engine programming is on an
optimal track.  In short, are we beginning to reach the point of diminishing
returns in trying to improve brute-force search techiques and should we lessen
these improvement efforts in favor of a new programming paradigm for chess?

For what it's worth, I think that the next great leap forward in chess
programming (or game programming in general) is probably going to come from
someone who finds a new way to think about the game.  Once that new paradigm is
demonstrated and understood, the cycle will begin again -- incremental
improvements on known techniques, new derivative ideas, better and faster
hardware, etc.  And there won't be any doubt whether computers are stronger than
humans -- not that there is much doubt for 99 percent of us now ;)

Maybe not in my lifetime, but it will probably happen.



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.