Author: Eugene Nalimov
Date: 11:48:51 06/03/99
Go up one level in this thread
On June 03, 1999 at 14:44:58, Robert Hyatt wrote: >On June 03, 1999 at 14:40:44, Eugene Nalimov wrote: > >>The good strategy is to maintain 2 killers, and when the move causes the cutoff, >>check: if it is killer#1, do nothing; if it is killer#2, swap killers; if it is >>new one, move killer#1 to killer#2, and that new move to killer#1. Also, if the >>move is capture of the opponent's piece that just was moved, do not store it as >>killer, as it's likely that move will not be good in the next position (that >>means that you have to try those captures first, before considering killers - >>very reasonable, as in the half of nodes we have to try every move, and after >>majority of moves you can easily win the material by just capturing moved >>piece). >> >>Eugene > > >I don't even store captures as killers, since good captures are tried before >the killers anyway... Maybe, it looks that I already forgot a lot of things, as I stopped chess engine programming 7 years ago... In any case, I'd recommend to try the capture of just moved piece (if it's winning one) before any other capture. Eugene > > >> >>On June 03, 1999 at 14:29:23, Andrew Williams wrote: >> >>>On June 03, 1999 at 12:59:02, William Bryant wrote: >>> >>>>Every time I try to improve my program, I seem to break it in innumerable ways. >>>> >>> >>>Join the club :-) >>> >>>>The killer move heuristic should be rather easy to implement. >>>> >>>>At every ply, any move that generates a cutoff (I interpret as a beta cutoff, a >>>>fail high), this move is added to the current killer table. >>>> >>> >>>This is what I do. >>> >>>>Is it an alpha cutoff (score > alpha) more appropriate? >>>> >>>>Also, does this move automatically displace previous killer moves, or do you use >>>>some qualifier such as the search score, keeping the moves with the greates >>>>score? >>> >>>What I use is a count for how many times the killer move has been successful >>>(caused a cutoff). The least successful gets replaced. >>> >>>> >>>>Finally, in using the killer moves for move ordering the ranking I am using is: >>>>1. Hash Table Move >>>>2. PV Move (in not the same as #1) >>>>3. Captures with a net positive score (captured piece > capturing piece) >>>> Promotions >>>>4. Killer moves and Captures with an equal score (exchange) >>>>5. Loosing Captures >>>>6. All other moves--sorted by the history heuristic. >>>> >>>>Any help will be appreciated, I am missing something simple because this is >>>>slowing down, not speeding up my search. >>>> >>> >>>How many killers are you using? (I find that changing the number of killers >>>makes quite a difference). Are you checking killers before generating your >>>moves? This (I think) was the original justification for killer moves; you can >>>try them before even generating moves at the current ply. If you do this, you >>>must be careful to ensure that the killer is valid in the current context, as it >>>may have arisen from a quite different position. >>> >>>I hope others will also answer this question, as I have never found killers >>>to be a particularly big win either. Normally I just use the history heuristic. >>>At the moment, I'm keeping a couple of killer moves and checking for them >>>when I generate moves. This isn't in the "spirit" of the killer heuristic, but >>>it seems marginally better. >>> >>> >>>Andrew Williams
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.