Skip to content

Commit

Permalink
Increase reduction if tt-move is a capture
Browse files Browse the repository at this point in the history
The idea is that chances are the tt-move is best and will be difficult to raise alpha when playing a quiet move.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 7582 W: 1415 L: 1259 D: 4908

LTC:
LLR: 2.97 (-2.94,2.94) [0.00,5.00]
Total: 59553 W: 7885 L: 7573 D: 44095

Bench: 5725676

Closes #1147
  • Loading branch information
VoyagerOne authored and zamar committed Jun 21, 2017
1 parent 612d932 commit 7734212
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/search.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ namespace {
Depth extension, newDepth;
Value bestValue, value, ttValue, eval;
bool ttHit, inCheck, givesCheck, singularExtensionNode, improving;
bool captureOrPromotion, doFullDepthSearch, moveCountPruning, skipQuiets;
bool captureOrPromotion, doFullDepthSearch, moveCountPruning, skipQuiets, ttCapture;
Piece moved_piece;
int moveCount, quietCount;

Expand Down Expand Up @@ -842,6 +842,7 @@ namespace {
&& (tte->bound() & BOUND_LOWER)
&& tte->depth() >= depth - 3 * ONE_PLY;
skipQuiets = false;
ttCapture = false;

// Step 11. Loop through moves
// Loop through all pseudo-legal moves until no moves remain or a beta cutoff occurs
Expand Down Expand Up @@ -959,6 +960,9 @@ namespace {
ss->moveCount = --moveCount;
continue;
}

if (move == ttMove && captureOrPromotion)
ttCapture = true;

// Update the current move (this must be done after singular extension search)
ss->currentMove = move;
Expand All @@ -979,6 +983,11 @@ namespace {
r -= r ? ONE_PLY : DEPTH_ZERO;
else
{

// Increase reduction if ttMove is a capture
if (ttCapture)
r += ONE_PLY;

// Increase reduction for cut nodes
if (cutNode)
r += 2 * ONE_PLY;
Expand Down

0 comments on commit 7734212

Please sign in to comment.