Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: not using nullmove?

Author: Christophe Theron

Date: 11:08:18 02/15/04

Go up one level in this thread


On February 15, 2004 at 08:53:42, martin fierz wrote:

>On February 14, 2004 at 13:16:15, Christophe Theron wrote:
>
>[snip]
>
>>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.
>>* 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).
>
>i'm not sure i agree with this one - but then i don't quite know what you mean
>with that sentence :-)



From a mathematical point of view, a perfect evaluation would make search mostly
useless: a 1-ply search would be enough to play perfectly.

So in theory there is no reason to favor search over evaluation, and you can
even replace search by evaluation.

In practice, it is extremely difficult to gain the equivalent strength of just
one more ply of search by an improvement in the evaluation.

Once you have build a resonably simple evaluation that takes material, pawn
structure and piece centralization into account, it's hell to make it
significantly better.

On the other hand, improving the search is by comparison much easier. At least
in the first years of developpement of your chess engine.




>my disagreement comes from the fact that improving your eval automatically
>improves your search when you use any kind of pruning which depends on the
>evaluation. nullmove is such an example,



I would not say that nullmove is a pruning system that depends that much on
evaluation. I would say that nullmove adds its share of strength to your
program. This share is quite fixed and will not vary depending on the quality of
your evaluation.




> but this is a general observation which
>works for other kinds of pruning decisions like futility pruning too.



A better evaluation can in some cases hurt when you are using futility. Which
actually means that with a really good evaluation I would probably not use
futility at all.




> if you
>evaluate better, you have a greater chance of searching/extending important
>lines and pruning the irrelevant lines.



I wouldn't rely on evaluation for this.



    Christophe




>but perhaps you meant something different?!
>
>cheers
>  martin
>
>
>>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.
>>
>>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.
>>
>>
>>
>>    Christophe



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