Author: Bas Hamstra
Date: 00:30:55 01/11/02
Go up one level in this thread
On January 11, 2002 at 00:08:42, Wylie Garvin wrote: >Hi, > > Does anyone believe they have a "good" incremental move generator?? Can >someone explain for me how you can get a good move ordering without generating >all moves up front? There seems to be a tension there. When some people say >"incremental", they mean "captures before non-captures". But maybe some people >really mean *incremental*! How can that be done without lousy move ordering? > > For curiosity's sake, here is the ordering I have in mind right now: > (1) Hash move, last killer for this depth (if legal) > (2) Generate all captures and promotions. Attach MVV/LVA scores to > the moves. Try them one by one (selection sort). > (3) Generate non-captures. Attach history scores to the moves. > Try them one by one (selection sort). > > Also, I have heard a lot of flimsy descriptions of SEE's, but I have not >managed to distill from these any sort of idea about how to implement one >efficiently! Can anyone suggest how this might be implemented efficiently? >Ultimately I want high NPS, so it may be too expensive. > >Thanks, >Wylie This is incremental: 1) Hashmove 2) Generate 1 capture at a time, the best LVV/MVA one 3) Killers 4) When out of captures/killers generate all moves and put them on a stack and and process normally Incremental makes sense mostly for captures/promotions. To be able to generate one MVV/LVA capture, you would have keep certain info up to date at make/unmake time, like for example an table that can tell you for each square by which pieces the square is attacked. If you use a bitboard datastructure I would say incremental capgen is not worth doing. With just a few percent extra time you can generate all captures. Bas.
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.