Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: not using nullmove?

Author: martin fierz

Date: 14:16:46 02/15/04

Go up one level in this thread


On February 15, 2004 at 16:55:45, Uri Blass wrote:

>On February 15, 2004 at 14:08:18, Christophe Theron wrote:
>
>>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.
>
>I did not investigate it but it is against my intuition.
>The point is that with bad evaluation you may more often prune good moves when
>you see no threat.
>
>
>For example suppose that you can sacrifice material to generate unstoppable
>passed pawns.
>
>bad evaluation will not see that the pawns are unstoppable so it is not going to
>see the threat and you may need many plies to find the queen promotion so null
>move may be counter productive relative to not using null move pruning.
>
>good evaluation may see that the pawns are unstoppable so with null move pruning
>may you may see the win at the same depth as without using null move pruning.
>
>In the first case you may need 5 minutes to find the move without null move
>pruning and 10 minutes to find the move with null move pruning.
>
>In the second case you may need 2 seconds to find the move without null move
>pruning and 1 second to find the move with null move pruning.
>
>In the first case null move was counter productive for the specific position and
>in the second case it was productive.
>
>Uri

that's exactly what i think too. but perhaps christophe is thinking about going
from a very good evaluation to a very very good evaluation (as would be the case
for him), and not about going from a bad evaluation to a decent evaluation as
would be the case for me - or for that example you give above which doesn't
understand the passed pawns.
if you already have a good eval, i guess it won't change the search tree as much
if you improve it than if your eval is not good.

cheers
  martin



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