Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Futility Pruning

Author: Uri Blass

Date: 14:52:50 12/20/02

Go up one level in this thread


On December 20, 2002 at 17:07:32, Richard Pijl 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?
>>
>>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 can see here that the lazy evaluation already detect some serious problems in
king safety(I guess that in big majority of the cases king pawn shield is lower
than 0.38 so you can decide not to trust the lazy evaluation in case that it
gives big values of pawn shield)


Note also that the important cases are cases when lazy evaluation give negative
score and the real evaluation gives positive score because if both evaluation
give win for the same side the mistake is not very important.

I also see that you evaluate the knight fork so in this case my opinion is that
lazy evaluation should detect that there are no tactical tricks to be trusted.

Note that I think that in most program mistakes in the evaluation against white
in this position are not important because in that case the score is going to be
below beta and it means that the program is going to extend good captures in the
qsearch(I am not talking about extending checks in the qsearch every time that
the score is below beta).

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.