mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
Prune negative SEE moves also in PV nodes
This patch is actually the sum of two contributions that have been tested independently: 1) Pruning of negative SEE moves in PV After 10000 games at 20+0.05 ELO: 5.18 +-7 (95%) LOS: 99.2% Total: 10000 W: 1952 L: 1803 D: 6245 2) Remove of bestValue > VALUE_MATED_IN_MAX_PLY condition After 23000 games at 20+0.05 ELO: 1.63 +-4 (95%) LOS: 88.1% Total: 23000 W: 4232 L: 4124 D: 14644 The whole patch as been re-tested at long TC with positive results: After 10000 games at 60+0.05 ELO: 4.31 +-7 (95%) LOS: 98.3% Total: 10000 W: 1765 L: 1641 D: 6594
This commit is contained in:
parent
9a1d5f0f1d
commit
335b57b5ef
1 changed files with 5 additions and 6 deletions
|
@ -857,16 +857,15 @@ split_point_start: // At split points actual search starts from here
|
|||
newDepth = depth - ONE_PLY + ext;
|
||||
|
||||
// Step 13. Futility pruning (is omitted in PV nodes)
|
||||
if ( !PvNode
|
||||
&& !captureOrPromotion
|
||||
if ( !captureOrPromotion
|
||||
&& !inCheck
|
||||
&& !dangerous
|
||||
&& move != ttMove
|
||||
&& (bestValue > VALUE_MATED_IN_MAX_PLY || ( bestValue == -VALUE_INFINITE
|
||||
&& alpha > VALUE_MATED_IN_MAX_PLY)))
|
||||
&& alpha > VALUE_MATED_IN_MAX_PLY)
|
||||
{
|
||||
// Move count based pruning
|
||||
if ( depth < 16 * ONE_PLY
|
||||
if ( !PvNode
|
||||
&& depth < 16 * ONE_PLY
|
||||
&& moveCount >= FutilityMoveCounts[depth]
|
||||
&& (!threatMove || !refutes(pos, move, threatMove)))
|
||||
{
|
||||
|
@ -883,7 +882,7 @@ split_point_start: // At split points actual search starts from here
|
|||
futilityValue = ss->staticEval + ss->evalMargin + futility_margin(predictedDepth, moveCount)
|
||||
+ Gain[pos.piece_moved(move)][to_sq(move)];
|
||||
|
||||
if (futilityValue < beta)
|
||||
if (!PvNode && futilityValue < beta)
|
||||
{
|
||||
if (SpNode)
|
||||
sp->mutex.lock();
|
||||
|
|
Loading…
Add table
Reference in a new issue