H.G.Muller

Joined: 10 Mar 2006 Posts: 12753 Location: Amsterdam
|
Post subject: Lazy eval vs. lazy QSearch Posted: Fri May 04, 2012 3:53 pm |
|
|
The side that does the last move before the horizon has the tendency to grab whatever it can. QSearch was invented to punish this greediness. But like any alpha-beta search, QSearch is lazy, and often does as poor a job as it can get away with.
What I wondered about in particular is how to treat a leaf where you should fail high, because you were well ahead in the branch leading up to it, but on the last move the opponent plays a capture that approximately evens the score. You might be able to secure the fail high by standing pat, but due to the near equality, you cannot decide that based on a lazy eval, but would need a full (expensive) evaluation.
An alternative would be to play the recapture. This restores your advantage, or even increases your lead (if the capture at d=1 was unsound). The recapture would lead to an all-node, but the opponent might not have a 'repeat performance' after having burnt his capture that was just good enough, all remaining captures falling well short of alpha. So you can declare them futile based on a lazy eval, and would never have to do a full eval. This could well make up for the cost of doing the extra node. As an additional award, it could give you a much sharper lower bound on the score. (E.g. if you were at beta+960cP, but he can trade Q on the horizon, the full eval might give you LB=beta+10cP, but recapturing the Queen leaving only some of your minors attacked would give LB=beta+600cP-lazyEvalMargin.)
So being less lazy in QS (searching the move rather than going for the stand pat) allows you to be more lazy in eval in such cases, with a much better (and more certain!) pay-off.
Are there engines that make use of this method? |
|