Author: Scott Gasch
Date: 12:12:04 11/27/00
Go up one level in this thread
On November 27, 2000 at 14:17:15, Robert Hyatt wrote: >I don't think your losing captures before killers is a good idea. My order: > >1. hash move (also includes PV move since it is passed thru hash) >2. winning captures >3. even captures (trades) >4. 2 killer moves (before generating non-captures) >5. 4 history moves (after generating non-captures) >6. rest of moves in order generated, which would put the losing captures > first since I generate captures first. I have often wondered if it makes sense to generate moves in stages. For example, I currently generate all captures followed by all non-captures (if a capture from the first stage did not cause a beta cutoff). I like this because it's less work done if, for example, first move considered causes a cutoff. But if I am going to change the order of the possibly losing captures (MVV/LVA) then I wonder if it makes sense to preserve the generate in stages model and extend it to: 1. generate winning captures 2. generate even captures 3. generate all others (normal moves and losing captures) Imagine there is an even capture on the board... this move will be generated in 1. and discarded only to be re-generated in step 2. This is a duplication of work. Likewise with a losing capture -- it is generated three times in this scheme... Another other alternative, I guess, is to generate all the moves available in a position at the same time. However I dislike this because if the first move is going to refute an opponent move and cause a beta cutoff, the other N-1 moves were generated for naught. Maybe the best way to do this would be to incrementally generate -- have the capture code come up with all the captures, then try the winning/even ones leaving the losers in the move stack... then have the normal generator add in the rest of the moves on this ply. Still, it seems like it could be done better. On the same subject, what do you think about trying killer moves (beta cutoffs at the same depth in other branches) if they are legal before _any_ generation takes place -- just after the hash/PV move? This could save a trip to the generator if they cutoff again. Also, do you give a bonus to a "winning" (MVV/LVA) capture that appears to kill the piece last moved by the opponent (i.e. if the last move (ply - 1) ended at D4, any "winning" capture that ends on D4 in this ply gets searched before others?) Thanks a lot, Scott
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.