Improve move order near the root
authorGünther Demetz <guenther.demetz@hotmail.com>
Fri, 21 Feb 2020 13:01:59 +0000 (14:01 +0100)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sat, 22 Feb 2020 20:32:32 +0000 (21:32 +0100)
commitb8c00efa2767ebf74545d2ba4bd344ef7c963319
treefda8728a00db083774ed9ebdf25439c70c478527
parentab930f8d3f4a657f493305559756e85534c88911
Improve move order near the root

Current move histories are known to work well near the leaves, whilst at
higher depths they aren't very helpful. To address this problem this
patch introduces a table dedicated for what's happening at plies 0-3.
It's structured like mainHistory with ply index instead of color.
It get cleared with each new search and is filled during iterative
deepening at higher depths when recording successful quiet moves near
the root or traversing nodes which were in the principal variation
(ttPv).

Medium TC (20+0.2):
https://tests.stockfishchess.org/tests/view/5e4d358790a0a02810d096dc
LLR: 2.94 (-2.94,2.94) {-0.50,1.50}
Total: 100910 W: 16682 L: 16376 D: 67852
Ptnml(0-2): 1177, 10983, 25883, 11181, 1231

LTC:
https://tests.stockfishchess.org/tests/view/5e4e2cb790a0a02810d09714
LLR: 2.95 (-2.94,2.94) {0.25,1.75}
Total: 80444 W: 10495 L: 10095 D: 59854
Ptnml(0-2): 551, 7479, 23803, 7797, 592

closes https://github.com/official-stockfish/Stockfish/pull/2557

Bench: 4705960
src/movepick.cpp
src/movepick.h
src/search.cpp
src/thread.cpp
src/thread.h