Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Killer Move Heuristic Questions

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.