Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Futility Pruning

Author: Uri Blass

Date: 14:20:26 12/20/02

Go up one level in this thread


On December 20, 2002 at 16:30:32, Vincent Diepeveen wrote:

>On December 20, 2002 at 12:02:23, Uri Blass wrote:
>
>>On December 20, 2002 at 11:26:28, Richard Pijl wrote:
>>
>>>On December 20, 2002 at 10:54:01, Vincent Diepeveen wrote:
>>>
>>>>On December 20, 2002 at 08:23:59, Russell Reagan wrote:
>>>>
>>>>No futility is 100% different from lazy evaluation.
>>>>
>>>>Futility in fact selects less moves (in qsearch)
>>>>based upon alfa or beta and lazy evaluation gives
>>>>back a quick score a lot of the times.
>>>
>>>They are still related in a sense that both 'cut-off' the work to be done by
>>>saying that it can't get good enough to improve alpha, so better stop working on
>>>it.
>>>>
>>>>If you search a ply deeper a futile pruned move should not
>>>>get pruned, whereas a lazy evaluated position will give problems
>>>>no matter what depth you search.
>>>>
>>>>In contradiction to draughts where everything is seen fullwidth,
>>>>in computerchess the effect of futility can be very bad too,
>>>>because last 3 to 4 plies (R=2 versus R=3) the qsearch is returning
>>>>back a score instead of a full search.
>>>>
>>>>If that misses major problems then you are in trouble.
>>>>
>>>>The argumentation of Heinz that futility is correct, is using the
>>>>assumption that an evaluation doesn't get a big score for positional
>>>>matters. The problem is that todays top programs do give big scores
>>>>though.
>>>
>>>Although Baron is not a top program yet I'm starting to feel this.
>>>To be sure that the wrong nodes aren't getting pruned I wrote a little piece of
>>>test code. It returned the highest difference it found between the lazyeval
>>>score and the full eval score (but not with passers on the board, and not in the
>>>endgame). I added 20% to this and that was the threshold used for both lazyeval
>>>and futility pruning. It turned out that with every release of the Baron this
>>>value increased.
>>>Now I'm working on 0.99.4 and the margin was getting very large, more than 5
>>>pawns.
>>
>>I think that it may be interesting to see the position that you talk about
>>
>>When do you see a difference of more than 4 pawns between the static evaluation
>>and the lazy evaluation?
>
>define lazy evaluation in this case. Just material component or
>a function that quickly estimates lazy eval?

I think that the definition of lazy evaluation may be a function that quickly
estimates the real evaluation(not just material)

The estimate can also say that the big evaluation need to be done in small part
of the cases (for example you can decide that if there are no pawns near the
king then king safety can get big scores so you cannot trust fast evaluation).

>
>Note that just a diff of > 4 pawns is not interesting, only when it
>would modify alfa or beta it is;
>
>if lazy eval is 2 pawns white up and actual score is 3 pawns white up
>and beta is 1.5, then obviously it is not interesting. A cutoff is
>a cutoff, isn't it?
>
>Idem for <= alfa.
>
>The interesting thing is when your quick eval with a margin is
>at the other side of the bound (alfa or beta) than the real eval.
>
>In diep i produced a big graph and found out that 1% was wrong.

If I understand correctly in 99% of the cases when lazy without margin was in
the wrong side of the bound lazy with margin was right.

I am still surprised to read it
My question is if you evaluate tactical stuff like pins or forks because my
opinion is that positions when positional stuff worth more than 3 pawns are
rare.

You say that you worked 3 monthes about your fast evaluation so the question is
in how many cases only material+margin of +3 is wrong.


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.