mirror of
https://github.com/sockspls/badfish
synced 2025-05-02 17:49:35 +00:00
Extend quiet tt moves at PvNodes
Idea is to extend some quiet ttMoves if a lot of things indicate that the transposition table move is going to be a good move: 1) move being a killer - so being the best move in nearby node; 2) reply continuation history is really good. This is basically saying that move is good "in general" in this position, that it is a good reply to the opponent move and that it was the best in this position somewhere in search - so extending it makes a lot of sense. In general in past year we had a lot of extensions of different types, maybe there is something more in it :) passed STC LLR: 2.96 (-2.94,2.94) <-0.50,2.50> Total: 42944 W: 10932 L: 10695 D: 21317 Ptnml(0-2): 141, 4869, 11210, 5116, 136 https://tests.stockfishchess.org/tests/view/614cca8e7bdc23e77ceb89f0 passed LTC LLR: 2.93 (-2.94,2.94) <0.50,3.50> Total: 156848 W: 39473 L: 38893 D: 78482 Ptnml(0-2): 125, 16327, 44913, 16961, 98 https://tests.stockfishchess.org/tests/view/614cf93d7bdc23e77ceb8a13 closes https://github.com/official-stockfish/Stockfish/pull/3719 Bench: 5714575
This commit is contained in:
parent
919da65d70
commit
21ad356c09
1 changed files with 12 additions and 6 deletions
|
@ -1147,7 +1147,14 @@ moves_loop: // When in check, search starts here
|
||||||
// Check extensions
|
// Check extensions
|
||||||
else if ( givesCheck
|
else if ( givesCheck
|
||||||
&& depth > 6
|
&& depth > 6
|
||||||
&& abs(ss->staticEval) > Value(100))
|
&& abs(ss->staticEval) > 100)
|
||||||
|
extension = 1;
|
||||||
|
|
||||||
|
// Quiet ttMove extensions
|
||||||
|
else if ( PvNode
|
||||||
|
&& move == ttMove
|
||||||
|
&& move == ss->killers[0]
|
||||||
|
&& (*contHist[0])[movedPiece][to_sq(move)] >= 10000)
|
||||||
extension = 1;
|
extension = 1;
|
||||||
|
|
||||||
// Add extension to new depth
|
// Add extension to new depth
|
||||||
|
@ -1223,11 +1230,10 @@ moves_loop: // When in check, search starts here
|
||||||
// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
|
// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
|
||||||
r -= ss->statScore / 14721;
|
r -= ss->statScore / 14721;
|
||||||
|
|
||||||
// In general we want to cap the LMR depth search at newDepth. But if
|
// In general we want to cap the LMR depth search at newDepth. But if reductions
|
||||||
// reductions are really negative and movecount is low, we allow this move
|
// are really negative and movecount is low, we allow this move to be searched
|
||||||
// to be searched deeper than the first move in specific cases (note that
|
// deeper than the first move (this may lead to hidden double extensions if
|
||||||
// this may lead to hidden double extensions if newDepth got it own extension
|
// newDepth got its own extension before).
|
||||||
// before).
|
|
||||||
int deeper = r >= -1 ? 0
|
int deeper = r >= -1 ? 0
|
||||||
: noLMRExtension ? 0
|
: noLMRExtension ? 0
|
||||||
: moveCount <= 5 ? 1
|
: moveCount <= 5 ? 1
|
||||||
|
|
Loading…
Add table
Reference in a new issue