Computer Chess Club Archives


Search

Terms

Messages

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

Author: Bob Durrett

Date: 14:24:53 11/13/02

Go up one level in this thread


On November 13, 2002 at 16:05:37, Dann Corbit wrote:

>On November 13, 2002 at 15:09:14, Bob Durrett wrote:
>[snip]
>>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."
>
>There are huge differences in alpha-beta algorithms, depending on different
>pruning techniques, mostly.  PVS and NegaScout are two major variations, but
>that does not tell the whole story.  There are many variants on null move
>techniques (such as double null move and variable depth reduction).  There are
>various move ordering techniques in use.  This may sound trivial and unimportant
>but it can double the search depth.

Maybe this deserves a separate thread?  The question this raises is whether or
not algorithm differences are what distinguish the different modern chess
engines.  Engines of comparable maturity and written by programmers of
comparable programming skills might be compared to see how much the engines
differ in terms of the implemented algorithms.  That way, the maturity and
programming skill issues could be factored out, so to speak.

>
>>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.
>
>You're wrong.

I'm willing to accept that.  After all, I am not a chess engine
programmer/developer, I'm a chess engine user and advocate.

However, I do not yet see reason to believe that I am wrong about my
perceptions.  That which I perceive to be true may be false (& visa versa), but
the existence and current state of my perceptions is as I have stated them to
be, as far as I can tell.  [Like everybody else, I have self-awareness and
self-perceptions, neither of which are infallible.]  However, your comments are
making me change my perceptions.  [I feel a shift in the works. : ) ]  I hope I
am making sense.

>Elo range is from 1000 to 2600.

Could that not be explained primarily by the fact that some of the engines are
relatively immature whereas others are quite mature?  I would expect also that
full-time programmers with years of programming experience would do quite a bit
better than people just starting out in chess engine programming.  Not always,
but in most cases.  In other words, the process of going from algorithm to
source code might involve some skill and produce a few errors affecting engine
performance, too.  Right?  So, how much of the performance does one attribute to
algorithm selection, and how much to coding?

>
>>If you buy that, then you must admit that it's unfair talking about "using bad
>>algorithms" versus "using good algorithms."
>
>What about new algorithms that nobody has thought of yet?  There may be some
>surprises in store.  There are still lots of choices to make for algorithms.

That sounds truly exciting. Everybody here probably feels the same about that.
A breakthrough may be just around the corner!  Look at all the surprises of the
last couple of centuries.  Who will come up with the new big advancement in
chess engine algorithms?  Maybe someone right here at CCC!

>
>>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.]
>
>If all engines were using the same algorithms, they would be at about the same
>strenght.  Why then, do chess engines vary in playing strength by many orders of
>magnitude?

Maybe, primarily, program maturity and programming skills, as suggested above?

>
>>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.
>
>I don't think you have a good handle on it.

I can accept that too.  But I do desire to get a good handle on it.  That's why
I posted this bulletin.

>Sure, everyone uses *some* form of
>alpha-beta.  But that is like saying that all cars run on tires and gas and are
>therefore of the same speed.

Hmmm.  I thought we ALL drove slightly above the speed limit. : )

>
>
>>[Hope I didn't insult anybody.  I didn't mean to.  : ) ]
>>
>>Bob D.
>>
>>>But you can cost yourself 50 ELO or so with a
>>>slower choice (e.g. Java, VB.NET, and other interpreted languages are simply not
>>>going to be as fast, despite all the protests of the prognosticators)
>>>
>>>On the other hand, if you are more comfortable in one of these langauges, you
>>>will probably write your best possible engine by using one of them.
>>
>>Yes, that does sound like the wise choice.  You always want to do your best.
>>
>>Bob D.



This page took 0.01 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.