Author: martin fierz
Date: 15:30:07 09/12/02
Go up one level in this thread
On September 12, 2002 at 16:50:38, Dieter Buerssner wrote: >On September 12, 2002 at 16:10:38, martin fierz wrote: > >>bestvalue = -mate; >>for all moves do >> { >> value = -search(-beta,-alpha,etc); >> bestvalue = max(value, bestvalue); > alpha = max(value, alpha); >> if(value>beta) >> break; >> } >>return bestvalue; >> >>is there anything wrong with this? > >Pehaps you left it out on purpose - but this code snipped is missing an update >of alpha. For example at the place, I suggested above. hi dieter, you are right, i left it out, half on purpose i guess. it just seemed irrelevant to the return value. but it's in my code - although it's really unnecessary: in MTD you always fail, so you never have to update alpha. but i have a compile switch to go from a windowed search to MTD, and i never bothered to write an MTD-only negamax function, although i could save an if or two there :-) >I see the same problem as you. Even when using strict fail soft search (I also >consider other points mentioned in this thread, like lazy eval), I typically >(but not allways) get back a score of X+1 for search, that fails high in the >window X, X+1. I think, your suggestions "alpha-beta tries to do the least work" >explains this. With a deep depth, and a complicated search tree, the X+1 score >will be easiest to prove and most probably be proven first. i just made some more tests in positions where the score really swings much (equivalent to winning a pawn in chess) and now i have seen jumps of more than the eval grain, although only 2 or 3* eval grain, like the (0.00,0.01) search returns 0.03. but most of the time it jumps as little as possible. cheers martin >Regards, >Dieter
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.