# Integrated Bounds and Values

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.

# Representation

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);
...
}
...
}
```

with

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

# References

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