Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Futility Pruning

Author: Richard Pijl

Date: 14:07:32 12/20/02

Go up one level in this thread


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?
>
>I can imagine positions when the positional score is more than 4 pawns but I
>think that in these positions there are easy ways to detect a suspect that
>something is wrong also in a fast evaluation.
>
>Uri

I made some fast changes to my program and here is one position:

[D] 1rnq1rk1/pRp3p1/3pN1B1/7Q/3P4/b1P5/P1P2PPP/4R1K1 w - - 0 1

Lazy evaluation values this position with 3.44
This is a completely won position of course, but in lazy eval you see only
little more than material. The score is composed of:
- Material 3.00
- Pawn structure 0.06 (from pawn hash)
- King pawn shield 0.38
I do have some more things in lazy eval, but that doesn't yield a score here

In eval the following is added:
- dynamic pawn characteristics 0.09
- White knight eval 1.12, due to the knight fork among others
- Black knight eval 0.09, due to bad position
- White bishop eval 0.28
- Black bishop eval 0.15, due to bad position and bad mobility
- white rooks eval 1.00, on 7th row and on openfiles, good mobility
- black rooks eval -0.42, also (half) open files, but lesser mobility
- white queen eval 0.11
- black queen eval 0.03
- king mobility 0.10 (only considers squares, not piece proximity)
- Space count 0.10
- Undefended pieces -0.02
- Undefended attacked pieces 0 (rooks on b7 and b8, side to move is not used
here, but because I removed fut pruning I will reinsert it soon. That would make
positional score even worse for black)
- Control over queenside 0.03
- Control over kingside 0.19
- King safety (includes piece proximity) 1.23

If I included everything, this should add up to 7.47

Richard.



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.