Author: Andrei Fortuna
Date: 17:17:22 03/21/00
Go up one level in this thread
On March 21, 2000 at 20:12:49, Bruce Moreland wrote:
>On March 21, 2000 at 20:06:10, Andrei Fortuna wrote:
>
>>In my chess program Freyr I've used simple alpha beta from the start, each time
>>I tried to change it to pvs/negascout it didn't work as expected because it just
>>generated too many nodes. Does anyone else experienced this behavior ? Is there
>>a logical explanation for this ?
>>
>>First I thought I needed better move ordering, so I used SEE for ordering
>>captures and history scores for non-captures, but the efect was the same.
>>
>>Then I rewrote the search function, making it as simple as possible, generate
>>all moves from the start, score captures based on SEE and non captures based on
>>history scores (making sure that the SEE scores are a few orders of magnitude
>>higher than history scores so winning captures get first), then sort the move
>>list and process moves, no hashtable or any other trick. To my disapointment the
>>simple AB was again generating much more less nodes than my PVS.
>>
>>Here's an approximation of the simplified code I used :
>>
>>Search(alpha, beta, depth, ply)
>> if (depth <= 0)
>> return Quiescence(...)
>>
>> [generate all moves]
>> [score moves based on SEE and history]
>> [sort moves based on score]
>>
>> moves_searched = 0;
>>
>> for each move m {
>> make move(m)
>>
>> #if USE_AB
>> score = -Search(-beta, -alpha, ...)
>> #else // pvs
>> if (moves_searched == 1)
>
>You want == 0 here. This is almost certainly the cause of your problem, because
>you use the wide window only on the second move you try.
No, this is not my problem, it was a typo.
I ment == 0 in the first place
in my code I use first moves_searched++
here I modified the order and incremented this last
but forgot to decrement here.
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.