Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Futility Pruning

Author: Vincent Diepeveen

Date: 10:49:43 12/21/02

Go up one level in this thread


On December 21, 2002 at 03:22:46, Uri Blass wrote:

>On December 21, 2002 at 02:31:32, Tony Werten wrote:
>
>>On December 20, 2002 at 17:40:10, Vincent Diepeveen wrote:
>>
>>>On December 20, 2002 at 17:36:20, Tony Werten wrote:
>>>
>>>>On December 20, 2002 at 17:20:26, Uri Blass wrote:
>>>>
>>>>>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.
>>>>
>>>>Don't forget that one side only has to be 1,5 pawn up and the other 1,5 pawn
>>>>down.
>>>
>>>3 pawns up or 3 pawns down. A window of 3 pawns above beta and a window
>>>of 3 pawns down alfa.
>>>
>>
>>Yes, what I meant was that if material is equal and one side gets 1,5 pawn
>>bonusses and one side gets 1,5 penalties then 3 pawns window is already reached.
>>
>>1,5 pawns bonus or penalty is easily reached, but people think 3 pawns sounds so
>>big.
>
>I do not think that 1.5 pawn+1.5 pawn panelty is easily reached(maybe it can be
>reached relative to only material but I think that in these cases other factors
>like pawn structure or simple king safety may give significant bonus in the lazy
>evaluation).

in more than 1% of the positions with DIEP's eval it happens when using
a quick eval to get a quick score.

I know it is more because i observed that with a 3 pawn window and the
condition that it would be a mispredicted 3 pawns too (vaste majority
is of course a positive mispredicted 3 pawns) it is 1%.

>There are other reasons against lazy evaluation but I do not think that the risk
>of being wrong by more than 3 pawns is one of them.

>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.