Shuffle detection #2064
authorMoez Jellouli <37274752+MJZ1977@users.noreply.github.com>
Sun, 31 Mar 2019 08:51:08 +0000 (10:51 +0200)
committerMarco Costalba <mcostalba@users.noreply.github.com>
Sun, 31 Mar 2019 08:51:08 +0000 (10:51 +0200)
commit76f1807baa90eb69f66001d25df2a28533f9406f
tree7307775ad93f1eabf00d19178ae316a93ced24a9
parentc8589903777b6e0289640b43fae966ded442af48
Shuffle detection #2064

Shuffle detection procedure :

Shuffling positions are detected if

    the last 36 moves are reversible (rule50_count() > 36),
    the position have been already in the TT,
    there is a still a pawn on the board (to avoid special endings like KBN vs K).

The position is then judged as a draw.

An extension is realized if we already made 14 successive reversible moves in PV to accelerate the detection of the eventual draw.

To go further : we can still improve the idea. The length of the tests need a lot of ressources.

    the limit of 36 is logic but must be checked again for special zugzwang positions,
    this limit can be decreased in special positions,
    the limit of 14 moves for extension has not been tuned.

STC
LLR: -2.94 (-2.94,2.94) [0.50,4.50]
Total: 32595 W: 7273 L: 7275 D: 18047 Elo +0.43
http://tests.stockfishchess.org/tests/view/5c90aa330ebc5925cfff1768

LTC
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 51249 W: 8807 L: 8486 D: 33956 Elo +1.85
http://tests.stockfishchess.org/tests/view/5c90b2450ebc5925cfff1800

VLTC
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 137974 W: 20503 L: 19983 D: 97488 Elo +1.05
http://tests.stockfishchess.org/tests/view/5c9243a90ebc5925cfff2a93

Bench: 3548313
src/search.cpp