Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Ply Depth in relation to playing strength

Author: Ed Schröder

Date: 23:16:00 09/30/99

Go up one level in this thread


>Posted by Peter McKenzie on October 01, 1999 at 00:31:08:
>
>>>No null-move in Rebel. Rebel's evaluation function is much to slow
>>>for null-move. Besides of that my evaluation function provides me
>>>so much data I don't need null-move.
>>>
>>>I tried null-move once and it gave me a speed-loss of 25%.
>>>
>>>Ed
>>
>>
>>Two things come to mind....
>>
>>(1) I don't see how null move R=2 can possibly slow you down, unless you
>>implemented it in a different way than we are using.  IE it only reduces the
>>depth on bogus branches... but doesn't incur any penalty unless you are
>already
>>doing some selective discarding of moves along the way and you suddenly can't
>>do this with null-move active...
>
>My take on this is that Ed is doing something similar (or somehow
>equivalent) to
>nullmove pruning using information derived from his evaluation function.
>
>For example, in the extreme case lets assume that the information from his
>evaluation function allows him to prune 100% of the lines that would be pruned
>by nullmove pruning.  Adding nullmove pruning to such a program would
>merely add
>the cost of doing the nullmove search but without getting any benefits.  Hence
>clearly a slowdown.
>
>Now its highly unlikely Ed's pruning has a 100% match with nullmove
>pruning, but
>the principle still applies.  If his pruning prunes 90% of the lines pruned by
>nullmove pruning, then adding nullmove pruning would still probably result
>in a
>slowdown.

You got it right Peter. I concluded that my way of doing selective search is
more powerful than the benefits of null-move, at least for Rebel.

Null-move is a powerful way of doing selective search, no doubt. But it
doesn't mean that it is the best system. For Rebel it wasn't. The big
disadvantage of null-move are these (for Rebel) unnecessary R=2
searches you have to do as they cost a lot of processor time.

Imagine you have an evaluation function that provides you with all the
information you need to do a proper selective search. You then do not
have to do all these R=2 searches which eat a lot of the processor time.
Rebel works that way.

Other programs work that way as well. CST comes to mind.

I am not saying my system is better only that my way of doing things
suits Rebel better.

I know for sure that if you have a super-fast evaluation null-move will be
superior than my way of doing things. And since Rebel has a slow evaluation
function it was logical for me to accept Rebel did not benefit from null-move.


>>(2) Crafty is pretty evaluation-heavy today... ie it is currently spending
>>over 50% of the total search time in Evaluate() and children functions...  and
>>that is in spite of lazy evaluation...  yet null move speeds me up by a factor of
>>2 plies typically...

When I set Rebel to "brute force" the slow down is 2.5-3 plies.

Ed


>Sure, but Crafty doesn't try to directly use information from the
>Evaluation for
>pruning...
>
>Peter




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