Author: Robert Hyatt
Date: 21:02:48 03/30/04
Go up one level in this thread
On March 30, 2004 at 15:00:15, Artem Pyatakov wrote: >Does anyone else care to comment about how they implemented the killer heuristic >in their engine? Or is everyone else doing the same exact thing as Crafty? > >I definitely think the question is worth revisiting (for instance using killers >from all plies), because the results I have from trying to use ply-4, ply-2, >ply, and ply+2 are very, very encouraging. > >Maybe someone with a stronger amateur engine could try this idea too? If you are >already doing what Crafty is doing, it should be trivial to make changes. > >For instance, I have something like this now: > >if (curMove->move.bits==game->ply [ply].killer.move1.bits || > curMove->move.bits==game->ply[ply].killer.move2.bits) { > curMove->priorityScore+=KILLER_MOVE_BONUS; > continue; >} > >if (curMove->move.bits==game->ply[ply+2].killer.move1.bits || > curMove->move.bits==game->ply[ply+2].killer.move2.bits) >{ > curMove->priorityScore+=KILLER_MOVE_BONUS; > continue; >} > >if (ply >= 2) >if (curMove->move.bits==game->ply[ply-2].killer.move1.bits || > curMove->move.bits==game->ply[ply-2].killer.move2.bits) >{ > curMove->priorityScore+=KILLER_MOVE_BONUS/2; > game->stats.extraCounter1++; > continue; >} > >if (ply >= 4) >if (curMove->move.bits==game->ply[ply-4].killer.move1.bits || > curMove->move.bits==game->ply[ply-4].killer.move2.bits) >{ > curMove->priorityScore+=KILLER_MOVE_BONUS/4; > game->stats.extraCounter2++; > continue; >} > >Artem I don't like the way it appears to be implemented. I try the killers _before_ I generate any non-captures. That is the only reason I use them, as it provides a cutoff with zero move generation costs... Your code suggests some sort of in-place sorting which I would want to avoid...
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.