Computer Chess Club Archives




Subject: Re: not using nullmove?

Author: Christophe Theron

Date: 11:13:05 02/15/04

Go up one level in this thread

On February 15, 2004 at 12:32:55, Tord Romstad wrote:

>On February 14, 2004 at 13:16:15, Christophe Theron wrote:
>>What I have always tried to do is to hide the details of what's inside Chess
>>Tiger (in order to protect my work a little bit) but still explain what my
>>methodology (or work philosophy) was (in order to somehow give back to the
>>I think it's important to have strong guidelines in your work. Some of them come
>>from your knowledge of information processing in general (be careful not to
>>create bugs, don't waste resources, never trust Microsoft...), and some of them
>>are specific to the domain of chess programming and took me years to figure out.
>>For example:
>>* don't compute something in advance if you are not sure you will use it,
>>because chances are that you will get a cutoff before you need it (remember it's
>>just a guideline - sometimes you can break this rule).
>>* you need a very accurate way of measuring progress, or you will not make
>>progress at all.
>Yes.  Measuring progress is the biggest problem of all, once your engine has
>reached a certain level.  I am very frustrated and confused about the strength
>of my latest development versions right now.  I have three different versions,
>and version A beats version B, version B beats version C, and version C beats
>version A.  In all cases, the winning margins are clearly statistically
>I have no idea which version is the strongest, of course.
>>* Any change can make your program significantly weaker. You need to test your
>>changes (with the method you have built) very often.
>>* People believe that chess is about evaluation, but actually it's all about
>>search (I'm trying very hard to break this rule, because it must be wrong from a
>>mathematical point of view, but it's really difficult).
>Here I agree with Martin.  The evaluation function is my main tool for shaping
>the tree, and improving the eval usually also improves the speed and
>accuracy of the search.

I don't use the evaluation to shape the tree in Chess Tiger. If I change the
evaluation, the tree remains similar. Of course it will not be exactly the same,
so naturally the evaluation has an indirect impact on the shape of the tree, but
I mean that the evaluation is not what I use to decide to prune a branch or to
extend one.

>>* ...
>>And the last one, maybe the most important:
>>* It's very unwise to believe that I have understood the essence of chess
>>programming. Therefore, all I know about this domain can be wrong, including the
>>above guidelines (but not this one)!
>>What you say about my posts being vague is interesting. If I told you what I do
>>in Chess Tiger:
>>1) over the years, maybe all you would create is a Tiger clone.
>>2) where would be the fun for you?
>>3) how would you get a chance to invent new ideas and to push the limits of our
>>field if you were busy implementing my ideas?
>>I see many people busy studying the Crafty source code and spending a lot of
>>time improving the speed of their bitboard stuff. I think they are wrong and
>>they will go nowhere.
>I think so, too.  Personally, I conciously try to make my engine as different
>Crafty as possible.  Bob is a much better programmer than me, and if I tried to
>copy his ideas I would just end up with a very inferior version of Crafty.  The
>only way for me to create a reasonably strong engine is to do something entirely
>>Computer chess needs a revolution. Chess programs at this time are just big
>>calculators (mine included). It works, but it is so different from the way human
>>players think that there must be a much better way.
>>The wheel needs to be reinvented.
>Fascinating stuff.  I agree about most of what you write, but at the moment
>I don't have any clear idea about how to reinvent the wheel.

...and you think I have? :)


This page took 0.03 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.