Changes

Jump to: navigation, search

Score

No change in size, 22:23, 18 May 2018
no edit summary
===Grain===
On the other hand, some programmers perform a final [https://en.wikipedia.org/wiki/Rounding rounding] of heuristic integer scores from evaluation for a coarser grain, i.e. divide by two or four, yielding in a reduced value range accordingly. The basic idea is to increase search efficiency in [[Alpha-Beta|alpha-beta]] and that like, because move ordering becomes less sensitive from arbitrary or noisy centi- or millipawn improvements from later moves. Depending on the program, its search algorithm and evaluation, that may work to some extend. [[Aske Plaat|Aske Plaat's]] [[MTD(f)]] ''Implementation Tips'' cover the grain of the evaluation <ref>[http://people.csail.mit.edu/plaat/mtdf.html MTD(f) - A Minimax Algorithm faster than NegaScout] by [[Aske Plaat]]</ref> :
The coarser the grain of eval, the less passes MTD(f) has to make to converge to the minimax value. Some programs have a fine grained evaluation function, where positional knowledge can be worth as little as one hundredth of a pawn. Big score swings can become inefficient for these programs. It may help to dynamically increase the step size: instead of using the previous bound, one can, for example, add an extra few points in the search direction (for failing high, or searching upward, adding the bonus, and for failing low, or searching downward, subtracting the bonus) every two passes or so. ([[Don Dailey]] found that a scheme like this works well in a version of [[CilkchessCilkChess]].) At the end, if you overshoot the minimax value, you have to make a small search in the opposite direction, using the previous search bound without an extra bonus, to make the final convergence. Also, it can be quite instructive to experiment with different evaluation function grain sizes. Sometimes coarse grain functions work better than fine grain, both for [[NegaScout]] and MTD(f).
===Arbitrary Bit-field Scores===

Navigation menu