Hi Don, I never heard of this technique before. Are there any more you can share?
ManyFaces12 uses: -Iterative deepening, with hash table -Zero-window search (beta is alpha+1, and research when fail high) -Null move (reduce depth by one, only try null when beta is not infinite, only one null move allowed per variation) -Try null first, then the best move from the previous iteration (from the hash table), then moves in the order suggested by the move generator. The move generator gives a pretty good ordering since it estimates the number of points gained by the move. -Full ply extension when there is one forced move -Fractional ply extensions I plan to add: -2 killer moves, then history heuristic -This pruning idea from Don. -Internal iterative deepening -Some kind of iterative widening -narrow search window based on result of previous iteration Today I search 20 to 40 moves at the root, then 10 moves per ply during the main search, then a tapering quiescence search with no maximum depth. I find developing search code less satisfying then working on the evaluation function. If I add knowledge to the evaluation function I know the program is stronger. When I make a change to the search parameters I can only test to see what happened. It's a much more trial-and-error process. Still, I have to do it because global search makes the program much, much stronger. David -----Original Message----- [EMAIL PROTECTED] On Behalf Of Don Dailey The various versions I'm testing are selective, I use a technique similar to that used in modern chess programs of aborting the search at a given node after only a few children nodes have been tried when the expectation remains below alpha. There are many potential tricks that can speed up the search greatly and I've barely scratched the surface, but I have done a couple of simple basic things that appear to be working very well. _______________________________________________ computer-go mailing list [email protected] http://www.computer-go.org/mailman/listinfo/computer-go/
