1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 00:33:09 +00:00

Remove depth dependence in value_draw().

The condition "depth >= 4 * ONE_PLY" does not seem needed at this point.

passed STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 32751 W: 7178 L: 7078 D: 18495
http://tests.stockfishchess.org/tests/view/5d8e46660ebc590f3bebad5e

passed LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 31693 W: 5299 L: 5196 D: 21198
http://tests.stockfishchess.org/tests/view/5d8e4b4f0ebc590f3bebb165

Bench: 4062526
This commit is contained in:
Joost VandeVondele 2019-09-27 19:25:22 +02:00 committed by Stéphane Nicolet
parent 3a3ca6af03
commit 70a38d7264

View file

@ -86,9 +86,8 @@ namespace {
} }
// Add a small random component to draw evaluations to avoid 3fold-blindness // Add a small random component to draw evaluations to avoid 3fold-blindness
Value value_draw(Depth depth, Thread* thisThread) { Value value_draw(Thread* thisThread) {
return depth < 4 * ONE_PLY ? VALUE_DRAW return VALUE_DRAW + Value(2 * (thisThread->nodes & 1) - 1);
: VALUE_DRAW + Value(2 * (thisThread->nodes & 1) - 1);
} }
// Skill structure is used to implement strength limit // Skill structure is used to implement strength limit
@ -574,7 +573,7 @@ namespace {
&& !rootNode && !rootNode
&& pos.has_game_cycle(ss->ply)) && pos.has_game_cycle(ss->ply))
{ {
alpha = value_draw(depth, pos.this_thread()); alpha = value_draw(pos.this_thread());
if (alpha >= beta) if (alpha >= beta)
return alpha; return alpha;
} }
@ -624,7 +623,7 @@ namespace {
|| pos.is_draw(ss->ply) || pos.is_draw(ss->ply)
|| ss->ply >= MAX_PLY) || ss->ply >= MAX_PLY)
return (ss->ply >= MAX_PLY && !inCheck) ? evaluate(pos) return (ss->ply >= MAX_PLY && !inCheck) ? evaluate(pos)
: value_draw(depth, pos.this_thread()); : value_draw(pos.this_thread());
// Step 3. Mate distance pruning. Even if we mate at the next move our score // Step 3. Mate distance pruning. Even if we mate at the next move our score
// would be at best mate_in(ss->ply+1), but if alpha is already bigger because // would be at best mate_in(ss->ply+1), but if alpha is already bigger because
@ -763,7 +762,7 @@ namespace {
ss->staticEval = eval = evaluate(pos); ss->staticEval = eval = evaluate(pos);
if (eval == VALUE_DRAW) if (eval == VALUE_DRAW)
eval = value_draw(depth, thisThread); eval = value_draw(thisThread);
// Can ttValue be used as a better position evaluation? // Can ttValue be used as a better position evaluation?
if ( ttValue != VALUE_NONE if ( ttValue != VALUE_NONE