Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Futility Cutoff futile?

Author: Koundinya Veluri

Date: 21:45:18 08/30/01

Go up one level in this thread


On August 30, 2001 at 18:47:22, Antonio Dieguez wrote:

>On August 30, 2001 at 10:30:53, Koundinya Veluri wrote:
>
>>This code comes before any moves have been searched at the last ply, but after
>>the null move is done.
>>
>>IF depth == 1 && not extended for check && not extended for mate threat && not a
>>forced position (according to hash table) && not following pv THEN
>>    window = ???;
>>    qscore = Quiesce(alpha - window, beta + window);
>>    if(qscore <= alpha - window)
>>        return alpha;
>>    if(qscore >= beta + window)
>>        return beta;
>>END IF
>
>Hi.
>
>What I see here: Searching captures twice and even searching them with a bigger
>window...
>
>I know what you are doing but I recommend you write that this way:
>
>(when depth =1 and blablabla...)
>
>int ev=evaluate(...);
>
>if (ev>=beta+window)
>{ return beta; }
>
>later then use futility prunning the usual way with a evaluation, using the ev,
>for example:
>
>for captures:
>...
>if (ev+expectedMaterialGain+window2<=current_alpha)
>{ skip that capture }
>...
>
>for other moves:
>...
>if (ev+MaximumExpectedPositionalGainWithThisMove<=current_alpha)
>{ skip this move. }
>...
>
>it is practically the same without any extra work!
>
>The maximumexpectedblablabla I have it around 0.72, but I will try soon with
>eval deltas depending of the move, fun work.
>
>bye bye.
>

Interesting point, I'll have to try this before going on about the differences I
see between them. But I don't understand one thing. The first part:

>(when depth =1 and blablabla...)
>
>int ev=evaluate(...);
>
>if (ev>=beta+window)
>{ return beta; }

is happening at depth == 1. But it looks like these:

>for captures:
>...
>if (ev+expectedMaterialGain+window2<=current_alpha)
>{ skip that capture }
>...
>
>for other moves:
>...
>if (ev+MaximumExpectedPositionalGainWithThisMove<=current_alpha)
>{ skip this move. }
>...

are also happening at depth == 1. After depth == 1, I do a quiescence search
anyway so what would I be pruning out?

Koundinya



This page took 0.01 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.