Computer Chess Club Archives




Subject: Futility Cutoff futile?

Author: Stuart Cracraft

Date: 19:09:20 08/29/01

So here is a pseudo-code fragment the attempts to implement
futility cutoff but fails. The result is 2.67% less time for the
same search and 4.35% fewer nodes, a far cry from what I heard
it would do. So what's wrong with it?

for all moves (sorting, etc.)
  make move (backup if move leaves king in check and proceed to next move)
  # Futility code follows
  if side that moved was not in check before move AND
    depth == 1 (i.e. 1 move until quiescence search, the "frontier") AND
    no extensions so far at this node AND
    this is not a principal variation node AND
    this move was not a capture AND
    side now on move is not in check AND
    ((material difference between side on move before move and side now on move
      PLUS the maximum of (maximum positional score of side not now on move,
      value of a knight) <= alpha) then
     unmake the move just made
     continue with next move (bypassing this move, i.e. the futility cutoff)
  search move normally as usual


This page took 0.08 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.