Integrated Bounds and Values

From Chessprogramming wiki
Jump to: navigation, search

Home * Search * Score * Integrated Bounds and Values

Integrated Bounds and Values (IBV) were proposed 1995 by Don Beal [1]. It treats values and bound flags, typically stored as distinct items inside a transposition table, inside one scalar value as a single numeric scale, providing a convenient notion for coding and processing backed-up values, and might slightly simplify control structure for storing and retrieving TT scores.


with following properties:

  1. negating a bound yields in the corresponding bound from opponent's point of view (Negamax)
  2. a lower bound at n (>= n) is greater than an exact n
  3. an exact value (n) is greater than an upper bound

IBV in Alpha-Beta

Inside an alpha-beta search, for a beta-cutoff one has to compare with forceExact(beta), to return forceLB in that case.

int ibvSearch(int alpha, int beta, ...) {
   int cut = forceExact(beta);
   for (all moves) {
     score = -ibvSearch(-beta, -alpha, ...);
     if ( score >= cut )
        return forceLB(score);


int forceExact(int x) {return (x+1) &~ 3;}
int forceLB (int x) {return forceExact(x) + 1;}


Forum Posts


  1. Don Beal (1995). An Integrated-Bounds-and-Values (IBV) Numeric Scale for Minimax Searches. ICCA Journal, Vol. 18, No. 2

Up one level