1
0
Fork 0

PV refutation penalty

Extra penalty for PV move in previous ply when it gets refuted.

STC:
LLR: 4.49 (-2.94,2.94) [-1.50,4.50]
Total: 41094 W: 7889 L: 7620 D: 25585

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,6.00]
Total: 12304 W: 1967 L: 1811 D: 8526

Bench: 8373608

Resolves #386
pull/386/merge
VoyagerOne 2015-07-30 00:50:45 +08:00 committed by Gary Linscott
parent 4a6d59c6c7
commit a2410227cc
2 changed files with 7 additions and 3 deletions

View File

@ -553,7 +553,7 @@ namespace {
goto moves_loop;
}
moveCount = quietCount = 0;
moveCount = quietCount = ss->moveCount = 0;
bestValue = -VALUE_INFINITE;
ss->ply = (ss-1)->ply + 1;
@ -826,6 +826,8 @@ moves_loop: // When in check and at SpNode search starts from here
}
else
++moveCount;
ss->moveCount = moveCount;
if (RootNode)
{
@ -934,6 +936,7 @@ moves_loop: // When in check and at SpNode search starts from here
if (!RootNode && !SpNode && !pos.legal(move, ci.pinned))
{
moveCount--;
ss->moveCount = moveCount;
continue;
}
@ -1425,8 +1428,8 @@ moves_loop: // When in check and at SpNode search starts from here
cmh.update(pos.moved_piece(quiets[i]), to_sq(quiets[i]), -bonus);
}
// Extra penalty for TT move in previous ply when it gets refuted
if (is_ok((ss-2)->currentMove) && (ss-1)->currentMove == (ss-1)->ttMove && !pos.captured_piece_type())
// Extra penalty for PV move in previous ply when it gets refuted
if (is_ok((ss-2)->currentMove) && (ss-1)->moveCount==1 && !pos.captured_piece_type())
{
Square prevPrevSq = to_sq((ss-2)->currentMove);
HistoryStats& ttMoveCmh = CounterMovesHistory[pos.piece_on(prevPrevSq)][prevPrevSq];

View File

@ -47,6 +47,7 @@ struct Stack {
Depth reduction;
Value staticEval;
bool skipEarlyPruning;
int moveCount;
};
/// RootMove struct is used for moves at the root of the tree. For each root move