Author: Roberto Waldteufel
Date: 23:49:29 05/31/00
Go up one level in this thread
On May 31, 2000 at 23:55:25, Robert Hyatt wrote: >On May 31, 2000 at 16:29:48, Roberto Waldteufel wrote: >>My currant move order is:- >> >>1)Null Move >> >>2)Hash move >> >>3)My heuristic move (if legal and different from (2)) >> > >The next three are 'broken'. They should all be folded together. IE >ep captures could be the first one chosen. And you should certainly search >e8=Q before trying Bxh6, assuming e8=q doesn't lose material. > >Also castling moves are just "moves". these could be suggested by the killer >heuristic, by the history heuristic, but I wouldn't try them in a fixed place >just because they are castling moves. > > > > >>4)Captures in MVV/LVA order >> >>5)Non-capturing pawn promotions >> >>6)En Passant captures >> >>7)Castling >> >>8)Non-capture Moves with all pieces except the king and pawns >> >>9)Non-capture king moves >> >>10)Non-capture/Non-Promoting Pawn moves >> [snip] My motive for putting castling first among non-capture/non-promotion moves was that castling, if legal, is usually a good move. I could generate all the captures/promotions and sort them before searching, but the program has no way of telling which are good and which are bad before it has searched them. I believe you use a static swap evaluator to order your captures - I would be interested to try a similar idea - but I am not sure how you evaluate the swaps without incurring a lot of overhead? My present arrangement never generates a move until it is ready to search it. Perhaps this is misguided and some static analysis would save time by improving the cut-off rate? If I understand correctly DarkThought uses the same MVV/LVA order for the captures without generating any moves "in advance" until it gets to the non-captures. How does your static swap evaluator work? Best wishes, Roberto
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.