Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Interesting mate test for hashing

Author: Alessandro Damiani

Date: 14:19:11 09/10/99

Go up one level in this thread


[..]
>>>>>Easy to test.  I'll supply some data in a bit, just for fun...
>>>>
>>>>For one moment forget about alpha and beta, you are on the wrong track as
>>>>alpha and beta are not a part at all of the code. You need an extra stack
>>>>that is set to -INF at each ply. Then before you do A/B you do the bestmove
>>>>calculation for that ply. Involved variables: SCORE and STACK, no alpha beta.
>>>>
>>>>Ed
>>>
>>>I think the best way to explain is to write a small piece of code in pseudo C,
>>>else we talk around the point.
>>>
>>>Alessandro
>>
>>
>>OK... here is what I did:
>
>Drunken code adjustment inserted ................
>
>
>>
>>Normal alpha/beta first:
>
>Drunken code added:
>
>>
>>int Search(int alpha, int beta, etc...) {
>>  best=-infinity;
>   roughbest = -INFINITY;
>>  bestmove=0;
>   roughbestmove = 0;
>>  foreach (move in movelist) {
>>    MakeMove();
>     roughvalue = StaticEvaluate(-whatever,etc);
>>    value=-Search(-beta,-alpha,etc.)
>>    if (value > best) {
>>      best=value;
>>      bestmove=current.move;
>>    }
>>    if (value > alpha) {
>>      if (value >= beta) {
>>        return(value);
>>      }
>>      alpha=value;
>>    }
>     if (roughvalue > roughbest)
>     {
>       roughvalue = roughbest;
>       roughbestmove = current.move;
>     }
>>  }
>   if (THEREWASNTANEWALPHA)
>     HastStore(roughbestmove, etc...)
>   else
>>    HashStore(bestmove,alpha, etc...)
>>}
>>
[..]

What you say is:

roughbest = (MAX m: m is a move in the position: StaticEval(Son(m)))

where Son(m) is the position after the move m is made.

What should this help?

Alessandro






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.