Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Fruit 2.0 released!

Author: Joachim Rang

Date: 12:10:45 12/24/04

Go up one level in this thread


Hi Uri,

On December 24, 2004 at 09:31:57, Uri Blass wrote:

>On December 24, 2004 at 07:04:59, Joachim Rang wrote:
>
>>Hi,
>>
>>in the next hour Leo will add the new Fruit 2.0 on his website. The new version
>>comes with source as usual. Binaries for Linux come (perhaps) later.
>>
>>The biggest news: Fruit is no longer a blitzer! Fabien made a risky decision to
>>activate history pruning with rather aggressive values, so you will notice Fruit
>>prunes away a lot and reaches good depth rather soon. This makes him most
>>probably weaker in lightning or blitz, but will (hopefully) pay off in longer
>>time controls. If you aren't satisfied with the blitz-performance of Fruit try
>>deactivating history pruning.
>
>I think that history based pruning when used in the right conditions is not
>counter productive at blitz.

That might be right, but the way Fabien implemented it, it_does_ hurt at least
with 2+1 on my AthlonXP@1540MHz. More on how Fabien implemented it see below.

>
>You can try movei at blitz with history based pruning and without it.
>
>My impression was that the main advantage of it is in blitz based on the last
>time that I tested movei with and without history based pruning in test suites.
>
>You can disable history based pruning in movei by changing
>limit_history_depth from 101 to -1
>
>You can reduce history based pruning in movei by increasing selectivity from 7
>to bigger number but there is some pruning that will always remain so pruning
>does not converge to 0 by increasing selectivity.
>
>The problem is that I have condition:
>badvalue>(goodvalue<<selectivity)
>
>selectivity=7 means that you prune the move if the number of fail low is more
>than 128 times the number of fail high(there are more conditions and it is only
>one of the conditions).
>
>The problem is that this condition can happen also when goodvalue=0 and badvalue
>is small(there are more conditions so pruning when badvalue<=4 and goodvalue=0
>is not possible but pruning when badvalue=5 and goodvalue=0 may be possible and
>how much you increase selectivity is not important.
>
>Note also that big selectivity may cause the value of goodvalue<<selectivity to
>be wrong.
>
>I divide goodvalue and badvalue by 2 everytime when the remaining depth is at
>least 10 and badvalue>1000
>
>practically if I analyze the opening position for some minutes I find that
>always  goodvalue<(1<<15) and I guess that practically in games I have always
>goodvalue<(1<<25) so it is no problem with the default parameters.
>
>
>
>>
>>The threshold of history pruning is set to 60%.
>
>Can you explain what it means?

I can only forward what Fabien answered me on this question:

"To simplify, moves are given percentage scores in a separate history table.
They start at 100% and go up/down depending on how often they fail high
during the search.

At a given node, moves that have a score below History Threshold are
reduced.
Move scores are always between 0 and 100. I think they are close to 100
most of the time due to the way I update scores (this might be a mistake but
is the price to pay to have a significantly-different implementation from
that of Tord and probably other engines)."

My feeling is, that 60% is already a risky value, since it clearly misses some
key moves in testsuites (but find others do to higher depth).

regards Joachim

>
>Source code is free so it is possible to look at the source code but I prefer
>first to read some explanation in words.
>
>I also see no reason that the parameter must be the same for different time
>controls and the program may use the time control and the hardware to calculate
>the parameter.
>
>Uri



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.