Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Futility Cutoff futile?

Author: Koundinya Veluri

Date: 03:27:12 09/01/01

Go up one level in this thread


On August 31, 2001 at 12:02:54, Antonio Dieguez wrote:

>
>>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?
>
>The moves skiped.......
>
>Anyway, are you acord with me that you are doing extra work right?
>you can get the same effect without an aditional call to quiesce.
>forget my futility prunning for captures and non captures if that is confusing
>you, do the way you wish or were doing before. The only additional thing that
>your qsearch adds is the if eval()>=beta+window then return beta, nothing more.
>
>
>bye bye bye.

Thanks for clearing my doubt. Yes, I'm probably doing more work than I need to,
but that's the case for the rest of my program as well :). Ignore the
eval()>=beta+window part, and I still don't agree that the qsearch is doing the
same pruning as your futility pruning for captures an non-captures. The idea is
the same but the conditions for pruning are very different. I tried futility
pruning before but it just didn't work in my program. I guess they just work
differently in every program.

Koundinya



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.