Computer Chess Club Archives


Search

Terms

Messages

Subject: My mistake

Author: Koundinya Veluri

Date: 16:13:32 09/01/01

Go up one level in this thread


On September 01, 2001 at 18:55:03, Koundinya Veluri wrote:

>On September 01, 2001 at 17:23:02, Antonio Dieguez wrote:
>
>>On September 01, 2001 at 17:19:44, Antonio Dieguez wrote:
>>
>>>
>>>>int ev=evaluate(...)
>>>>
>>>>if (ev>=beta+window)
>>>>{ return beta; }
>>>>
>>>>then see captures with this window: (alpha-window,beta)
>>>>
>>>>if that alpha-window was not improved then return alpha.
>>>>
>>>>(less nodes, and now exactly the same, if I am not mistaken...)
>>>
>>>it is not the same! but perhaps you like it better anyway.
>>>
>>>It is not the same because in your original code, when your quiesce return a
>>>value *by evaluation*, inside the window, that pos. is not pruned then but now
>>>it can... well, I give up! :)
>>
>>This way:
>>
>>int ev=evaluate(...)
>>
>>if (ev>=beta+window)
>>{ return beta; }
>>
>>then see captures with this window: (alpha-window,beta)
>>
>>if that alpha-window was not improved AND ev<=alpha-window then return alpha.
>>
>>------------
>>
>>IT'S THE SAME. I sure! :) :)
>
>Yes this is pretty much the same! Wow, I never thought it would be possible
>without the extra qsearch, but you seemed to have conquered it!
>
>Although it is missing just one type of pruning that my original code was doing,
>the case where a capture causes alpha to increase beyond beta+window, but this
>is a small thing.
>
>I had some trouble understanding why the ev<=alpha-window was needed, but the
>way I understood it, I think it would be better to use a wider window in the
>evaluate() call itself rather than specify that ev<=alpha-window at the end.
>
>Here is the modified stuff put together:
>
>int ev=evaluate(alpha-window,beta+window)
>
>if (ev>=beta+window)
>{ return beta; }
>
>then see captures with this window: (alpha-window,beta+window)
>
>if that alpha-window was not improved then return alpha.
>if that alpha-window was improved to greater than beta+window then return beta.
>
>Think this should be right. I will let you know how "same" it really is after
>testing. Thanks for your many suggestions!
>
>Koundinya

Oops, stupid mistake... you were right before. It's been a long day :)

int ev=evaluate(alpha-window,beta+window)

if (ev>=beta+window)
{ return beta; }

then see captures with this window: (alpha-window,beta)

if that alpha-window was not improved then return alpha.

----------

I think if the larger window is used in evaluate(), the ev<=alpha-window part is
not needed. Maybe I'll find myself wrong again tomorrow... Thanks again.

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.