Changes

Jump to: navigation, search

Debugging

No change in size, 13:54, 31 December 2018
no edit summary
* Implement an [[MTD(f)]] search, even if you intend to use [[Principal Variation Search|PVS]]. MTD(f) is great for debugging the hash table; all sorts of obscure bugs which are very tricky to find in PVS or other conventional searches suddenly become easy to spot.
* Whenever you add some non-trivial new function to your program, try to write two versions: One which is very slow and stupid, but almost certainly correct, and one which is highly optimized. Verify on a huge number of positions that they give the same results. Remove the slow version only when you feel 100% sure that the fast version is correct.
* Always make [[Color Flipping#Debugging|symmetry tests]] when you add a new term to your [[Evaluation functionFunction|evaluation function]] .
* Run through a simple tactical test like [[Win at Chess|WAC]] at 5 seconds/move every time you change something important in your search. Don't try to optimize the results, but just make sure that the score doesn't suddenly drop dramatically.
* Check the quality of your [[Move Ordering|move ordering]] by measuring how often a [[Beta-Cutoff|beta cutoff]] occurs on the first move, and the frequencies with which the 1st, 2nd, 3rd, ... move turns out to be best at [[Node Types#PV|PV nodes]].

Navigation menu