mirror of
https://github.com/sockspls/badfish
synced 2025-07-11 19:49:14 +00:00
Revert so called "fromNull patch"
Revert patch c581b7ea36
Seems a regression after testing from Gary:
ELO: 7.24 +- 99%: 17.03 95%: 12.93
LOS: 97.86%
Wins: 439 Losses: 381 Draws: 1962
And mine:
After 5410 games at 15"+0.05
Wins: 936 Losses: 1141 Draws: 3333 ELO -13
Moreover we know that there is a regression in the range
of patches which include the fromNull patch.
Probably this is not the only regression since 2.3.1 and
perhaps the idea under fromNull is good, but at the moment,
while in deep regression hunting, better to be on the safe
side and revert it entirely.
My guess on why this is a regression is that using the
negated evaluation of previous ply in case of null search
fails to take in account the king safety asymmetry between
the two colors. This is of course just a guess.
bench 5503830
This commit is contained in:
parent
9b1cf3cf43
commit
edce2a8448
1 changed files with 2 additions and 10 deletions
|
@ -1109,7 +1109,7 @@ split_point_start: // At split points actual search starts from here
|
|||
Key posKey;
|
||||
Move ttMove, move, bestMove;
|
||||
Value bestValue, value, ttValue, futilityValue, futilityBase, oldAlpha;
|
||||
bool givesCheck, enoughMaterial, evasionPrunable, fromNull;
|
||||
bool givesCheck, enoughMaterial, evasionPrunable;
|
||||
Depth ttDepth;
|
||||
|
||||
// To flag BOUND_EXACT a node with eval above alpha and no available moves
|
||||
|
@ -1118,7 +1118,6 @@ split_point_start: // At split points actual search starts from here
|
|||
|
||||
ss->currentMove = bestMove = MOVE_NONE;
|
||||
ss->ply = (ss-1)->ply + 1;
|
||||
fromNull = (ss-1)->currentMove == MOVE_NULL;
|
||||
|
||||
// Check for an instant draw or maximum ply reached
|
||||
if (pos.is_draw<false, false>() || ss->ply > MAX_PLY)
|
||||
|
@ -1156,13 +1155,7 @@ split_point_start: // At split points actual search starts from here
|
|||
}
|
||||
else
|
||||
{
|
||||
if (fromNull)
|
||||
{
|
||||
// Approximated score. Real one is slightly higher due to tempo
|
||||
ss->staticEval = bestValue = -(ss-1)->staticEval;
|
||||
ss->evalMargin = VALUE_ZERO;
|
||||
}
|
||||
else if (tte)
|
||||
if (tte)
|
||||
{
|
||||
// Never assume anything on values stored in TT
|
||||
if ( (ss->staticEval = bestValue = tte->static_value()) == VALUE_NONE
|
||||
|
@ -1206,7 +1199,6 @@ split_point_start: // At split points actual search starts from here
|
|||
// Futility pruning
|
||||
if ( !PvNode
|
||||
&& !InCheck
|
||||
&& !fromNull
|
||||
&& !givesCheck
|
||||
&& move != ttMove
|
||||
&& enoughMaterial
|
||||
|
|
Loading…
Add table
Reference in a new issue