Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: not using nullmove?

Author: martin fierz

Date: 11:04:33 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
>>community).
>>
>>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
>significant.
>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.
>
>>* ...
>>
>>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)!
>
>Definitely.
>
>>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
>from
>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
>different.

i don't agree with you on this. my program is currently also awfully slow and
very inferior to crafty. but i draw a different conclusion, or maybe better
said: i already decided on this when i started writing my program last summer: i
believe that if i am incapable of writing a decent "standard chess program",
then i will also be incapable of writing a great non-standard program.
therefore, my primary goal at the moment is to write a decent standard program.
i am using all those well-known techniques that are around in computer chess,
and i have practically zero original ideas in muse. if it ever gets as good as i
hope, i will start experimenting with my own ideas. for the moment, i have
enough to work on with improving the evaluation and searching for speed...

i believe that even if there is some great new idea to be found, it can never
hurt to have a good evaluation, or a fast overall program. these things will
always be helpful IMO, whether or not you find great new pruning ideas or not.

cheers
  martin





>
>>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.
>
>Tord



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.