mirror of
https://github.com/sockspls/badfish
synced 2025-05-02 01:29:36 +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
|
||||
else if ( givesCheck
|
||||
&& 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;
|
||||
|
||||
// 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)
|
||||
r -= ss->statScore / 14721;
|
||||
|
||||
// In general we want to cap the LMR depth search at newDepth. But if
|
||||
// reductions are really negative and movecount is low, we allow this move
|
||||
// to be searched deeper than the first move in specific cases (note that
|
||||
// this may lead to hidden double extensions if newDepth got it own extension
|
||||
// before).
|
||||
// In general we want to cap the LMR depth search at newDepth. But if reductions
|
||||
// are really negative and movecount is low, we allow this move to be searched
|
||||
// deeper than the first move (this may lead to hidden double extensions if
|
||||
// newDepth got its own extension before).
|
||||
int deeper = r >= -1 ? 0
|
||||
: noLMRExtension ? 0
|
||||
: moveCount <= 5 ? 1
|
||||
|
|
Loading…
Add table
Reference in a new issue