Skip to content

Search is badly aborted. #5

@YakupIpek

Description

@YakupIpek

You are aborting search via below code.

if (Aborted)
    return (0, Array.Empty<Move>());

This innocent code is fine if you dont have Transposition Table but if you have it so you should never store that result on previous nodes(or depths)

This should fix the issue.

if (!Aborted)
    Transpositions.Store(position.ZobristHash, depth, ply, window, result.Score, result.PV.Length > 0 ? result.PV[0] : default);

Alternatively you could terminate search by raising exception and recover board to original state as before of search. You may have this bug in your other chess engine Lorik.

When i make a search at initial position 2 times, you can see that next search has a lot of scores with 0 value. This is sign of the bug.

MinimalChess 0.6.2
go movetime 7000
info string Search scheduled to take 6980ms!
info depth 1 score cp 54 nodes 21 nps 1105 time 19 pv e2e3
info depth 2 score cp 0 nodes 115 nps 5000 time 23 pv e2e3 e7e6
info depth 3 score cp 49 nodes 215 nps 8958 time 24 pv e2e3 e7e6 b1c3
info depth 4 score cp 0 nodes 578 nps 22230 time 26 pv e2e3 e7e6 b1c3 b8c6
info depth 5 score cp 41 nodes 1873 nps 64586 time 29 pv g1f3 g8f6 e2e3 b8c6 b1c3
info depth 6 score cp 0 nodes 3723 nps 112818 time 33 pv g1f3 g8f6 b1c3 d7d5 d2d4 b8c6
info depth 7 score cp 33 nodes 6294 nps 161384 time 39 pv g1f3 g8f6 b1c3 d7d5 d2d4 b8c6 c1g5
info depth 8 score cp -7 nodes 19960 nps 302424 time 66 pv g1f3 g8f6 b1c3 d7d5 d2d4 b8c6 h2h3 e7e6
info depth 9 score cp 26 nodes 50528 nps 428203 time 118 pv g1f3 b8c6 d2d4 d7d5 b1c3 g8f6 h2h3 e7e6 c1g5
info depth 10 score cp 5 nodes 93834 nps 524212 time 179 pv g1f3 b8c6 e2e4 e7e5 b1c3 g8f6 f1b5 c6d4 f3e5 d4b5
info depth 11 score cp 27 nodes 166172 nps 595598 time 279 pv g1f3 b8c6 e2e4 e7e5 b1c3 g8f6 f1d3 d7d5 e4d5 f6d5 e1g1
info depth 12 score cp 2 nodes 516924 nps 841895 time 614 pv e2e4 e7e5 b1c3 b8c6 g1f3 g8f6 f1b5 c6d4 b5c4 d4f3 d1f3 c7c6
info depth 13 score cp 30 nodes 1833112 nps 1030996 time 1778 pv g1f3 g8f6 d2d4 e7e6 c2c3 b8c6 e2e3 d7d5 f1b5 f8d6 e1g1 e8g8 b1d2
info depth 14 score cp 1 nodes 3074029 nps 1061474 time 2896 pv e2e4 e7e5 g1f3 b8c6 c2c3 d7d5 f1b5 d5e4 f3e5 g8e7 d2d4 e4d3 d1d3 d8d3
info depth 15 score cp 36 nodes 4437269 nps 1073359 time 4134 pv e2e4 e7e5 g1f3 b8c6 c2c3 d7d5 d1a4 d5e4 f3e5 d8d5 e5c6 b7c6 f1c4 d5d6 d2d4
bestmove e2e4
go movetime 7000
info string Search scheduled to take 6980ms!
info depth 1 score cp 26 nodes 12 nps 12000 time 0 pv c2c4
info depth 2 score cp 0 nodes 54 nps 54000 time 0 pv e2e4 e7e5
info depth 3 score cp 0 nodes 69 nps 69000 time 0 pv e2e4 e7e5 g1f3
info depth 4 score cp 0 nodes 74 nps 74000 time 0 pv e2e4 e7e5 g1f3 b8c6
info depth 5 score cp 0 nodes 268 nps 268000 time 1 pv e2e4 e7e5 g1f3 b8c6 c2c3
info depth 6 score cp 0 nodes 283 nps 283000 time 1 pv e2e4 e7e5 g1f3 b8c6 c2c3 d7d5
info depth 7 score cp 6 nodes 3791 nps 947750 time 4 pv g2g3 e7e5 f1g2 d7d5 b1c3 g8f6 g1f3
info depth 8 score cp 0 nodes 10757 nps 1075700 time 10 pv b1c3 d7d5 d2d4 g8f6 g1f3 b8c6 e2e3 e7e6
info depth 9 score cp 23 nodes 15530 nps 1035333 time 15 pv b1c3 e7e5 e2e4 b8c6 g1f3 g8f6 d2d4 e5d4 f3d4
info depth 10 score cp 0 nodes 25747 nps 990269 time 26 pv b1c3 g8f6 d2d4 d7d5 g1f3 b8c6 e2e3 e7e6 f1d3 f8d6
info depth 11 score cp 15 nodes 80375 nps 1071666 time 75 pv c2c4 g8f6 b1c3 e7e5 g1f3 b8c6 d2d3 f8b4 c1e3 e5e4 d3e4
info depth 12 score cp 0 nodes 267738 nps 1062452 time 252 pv e2e4 e7e5 g1f3 b8c6 c2c3 d7d5 d1a4 d5e4 f3e5 d8d5 e5c6 b7c6
info depth 13 score cp 0 nodes 329807 nps 1043693 time 316 pv e2e4 e7e5 g1f3 b8c6 c2c3 d7d5 d1a4 d5e4 f3e5 d8d5 e5c6 b7c6 f1c4
info depth 14 score cp 0 nodes 372458 nps 1037487 time 359 pv e2e4 e7e5 g1f3 b8c6 c2c3 d7d5 d1a4 d5e4 f3e5 d8d5 e5c6 b7c6 f1c4 d5d6
info depth 15 score cp 20 nodes 1460361 nps 1092267 time 1337 pv b1c3 g8f6 d2d4 d7d5 c1f4 e7e6 e2e3 f8b4 g1e2 e8g8 a2a3 b4d6 f4d6 c7d6 e2g3
info depth 16 score cp 0 nodes 3480533 nps 1100042 time 3164 pv b1c3 g8f6 d2d4 d7d5 g1f3 b8c6 e2e3 a7a6 f1d3 e7e6 e1g1 f8d6 a2a3 e8g8 c1d2 c8d7
bestmove b1c3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions