Rewrite unstoppable pawns evaluation
authorMarco Costalba <mcostalba@gmail.com>
Tue, 10 Sep 2013 09:41:10 +0000 (11:41 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Mon, 16 Sep 2013 06:57:37 +0000 (08:57 +0200)
commitaf750bd2ef919ba8aca8986c40f06cd58f0aef05
treeeb30b90fb6e067117a53fd83649df6cb17dbfe24
parent21cbfafc0362ff83895226f318580f766f8d35f4
Rewrite unstoppable pawns evaluation

Instead of current code, give a bonus according to the frontmost
square among candidate + passed pawns.

This is a big simplification that removes a lot of accurate code
substituting it with a statistically based one using the common
'bonus' scheme, leaving to the search to sort out the details.

Results are equivalent but code is much less and, as an added bonus,
we now store candidates bitboard in pawns hash and allow this
info to be used in evaluation. This paves the way to possible
candidate pawns evaluations together with all the other pieces,
as we do for passed.

Patch passed short TC
LLR: 2.96 (-2.94,2.94) [-1.50,4.50]
Total: 16927 W: 3462 L: 3308 D: 10157

Then failed (quite quickly) at long TC
LLR: -2.95 (-2.94,2.94) [0.00,6.00]
Total: 8451 W: 1386 L: 1448 D: 5617

But when ran with a conclusive 40K fixed games at 60 secs it proved
almost equivalent to original one.

ELO: 1.08 +-2.0 (95%) LOS: 85.8%
Total: 40000 W: 6739 L: 6615 D: 26646

bench: 3884003
src/evaluate.cpp
src/pawns.cpp
src/pawns.h