lantonov / asmFish

A continuation of the nice project asmFish by Mohammed Li. Latest version: 07.08.2019
https://lantonov.github.io/asmFish/
Other
118 stars 49 forks source link

Null-move disable option #41

Closed asmfishcc closed 6 years ago

asmfishcc commented 7 years ago

Hello guys, it would be very useful for analysis, if it were possible to disable "null-move". Can you implement this function in the asmfish engine? Thank for your work!

lantonov commented 7 years ago

It has been shown time and again that disabling null-move weakens the engine with hundreds of Elo points. It is good for mate-finding problems but bad for position analysis, including correspondence games.

tthsqe12 commented 7 years ago

this is possible as an assemble-time option. I will see how asmfish can better find mates and add a "USE_MATEFINDER" to this list ; optional features 0 or 1 USE_CURRMOVE equ 1 ; printing feature, spamlike USE_HASHFULL equ 1 ; printing feature USE_SELDEPTH equ 1 ; printing feature USE_SPAMFILTER equ 0 ; arena gui can't read at a rate > 1 line / 15ms USE_SYZYGY equ 1 ; include tablebase probing code USE_BOOK equ 0 ; include some book functions USE_WEAKNESS equ 0 ; include uci_limitstrength and uci_elo USE_CMDLINEQUIT equ 1 ; after processing command line, should we quit?

tthsqe12 commented 7 years ago

Do you have a list of positions (and solutions) that I could tune for?

lantonov commented 7 years ago

I will leave here only those that cannot be solved by regular asmFish:

6k1/3p4/P2P4/8/5Kp1/1p4Q1/p5p1/b7 w - - bm Qxg2; c0 "Kasparyan 1959, 1 ... Be5+ 2 Kf5! a1/Q 3 a7! Qxa7 4 Kg6! Qa1! 5 Qd5! Kh8 6 Qe4!!, white wins"; id "ZPTS.14"; n1QBq1k1/5p1p/5KP1/p7/8/8/8/8 w - - bm Bc7; c0 "CCC post, mate in 12: 1.Bc7 Qxc8 2.gxf7+ Kh8 3.Be5 Qc5 4.Bb2 Nc7 5.Ba1 a4 6.Bb2 a3 7.Ba1 a2 8.Bb2 a1Q 9.Bxa1 Nd5+ 10.Ke6+ Nc3 11.Bxc3+ Qe5+ 12.Bxe5#"; id "ZPTS.19"; 3nQ1k1/p2P2p1/1p6/8/5q1P/8/PP6/1K6 b - - bm Kh7; c0 "CCC post, draw, but h5 after Qf8 wins for white"; id "ZPTS.20"; 8/8/8/1B6/6p1/8/4KPpp/3N2kr w - - bm Kd3 Ke3; c0 "CCC post by Tim Foden, id MES.831, white wins, 1. Kd3 g3 2. f4 Kf1 3. Kd2+ Kg1 4. Bd7 Kf1 5. Bh3 Rg1 6. Bg4 Rh1 7. Be2+ Kg1 8. Nc3 Kf2 9. Ne4+ Kg1 10. Ng5 Kf2 11. Nh3#"; id "ZPTS.21"; 8/8/8/2p5/1pp5/brpp4/1pprp2P/qnkbK3 w - - bm h3; c0 "CCC post by Joachim Rang, mate in 15, h4 is only draw"; id "ZPTS.24"; 8/p5pq/8/p2N3p/k2P3P/8/KP3PB1/8 w - - bm Be4; c0 "Kubbel 1925, 1.Be4!! Qh6 2.Bd3!! Qd2 [2...Qd6 3.b3#] 3.Be2 g6 [3...Qc2 4.Bd1 Qxd1 5.Nc3 -; 3...a6 4.f3 g6 5.f4 -] 4.f3 a6 5.f4 Qc2 6.Bd1, Zugzwang after f4, white wins"; id "ZPTS.28"; 2n5/8/Pp5n/5N2/8/5k2/3P4/7K w - - bm d4; id "ZPTS.19"; CCC post by Ed Schroeder, Troitzky 2rqk2r/pb1nbp1p/4p1p1/1B1n4/Np1N4/7Q/PP3PPP/R1B1R1K1 w kq - bm Rxe6; r5k1/1bbq1ppp/p6r/P1Nnp3/1p1B4/5B2/1PPQ2PP/R4R1K b - - bm Rxh2+; r4r1k/2qbnpbp/p2p2p1/nppPp1N1/4P1PP/2P1N3/PPBBQP1K/R5R1 w - - Nf5;

[Event "Soviet Union"] [Site "?"] [Date "1950.??.??"] [Round "?"] [White "Aronin"] [Black "Aratovsky"] [Result "1-0"] [Annotator "#192"] [SetUp "1"] [FEN "r2r2k1/ppqbbppp/4pn2/6N1/n1P4P/3B1N2/PP2QPP1/1KBR3R w - - 0 1"] [PlyCount "17"] [EventDate "1950.??.??"]

  1. Nxh7 Nxh7 2. Bxh7+ Kxh7 3. Ng5+ Kg8 4. Qh5 Bf6 5. Qxf7+ Kh8 6. h5 $1 Nc3+ ( 6... e5 7. Rd3 Bf5 8. Qxc7 Bxd3+ 9. Ka1 Rac8) 7. bxc3 Qb6+ 8. Bb2 Bxg5 9. Rxd7 1-0

[Event "Soviet Union"] [Site "?"] [Date "1952.??.??"] [Round "?"] [White "Panov"] [Black "Taimanov"] [Result "1-0"] [Annotator "#224*"] [SetUp "1"] [FEN "3r2k1/p6p/b2r2p1/2qPQp2/2P2P2/8/6BP/R4R1K w - - 0 1"] [PlyCount "59"] [EventDate "1952.??.??"]

  1. Rxa6 {Excellent test for computers to determine if they see the value of creating the central passed pawns} 1... Rxa6 2. d6 Qxe5 (2... Qxd6 3. Bd5+ Kf8
  2. Qh8+ Ke7 5. Qxh7+ Ke8 6. Qf7#) 3. fxe5 Ra5 4. Bd5+ Kf8 5. Rb1 g5 6. h4 h6 7. Rb7 Ra1+ 8. Kg2 Ra2+ 9. Kf3 Ra3+ 10. Ke2 Ra2+ 11. Kd3 Ra3+ 12. Kd4 Ra1 13. Rf7+ Ke8 14. Rh7 Rd1+ 15. Kc5 Rc8+ 16. Bc6+ Rxc6+ 17. Kxc6 Kf8 18. e6 Kg8 19. Rxh6 Kg7 20. hxg5 Rc1 21. e7 Rxc4+ 22. Kd5 Re4 23. d7 Re1 24. d8=Q Rd1+ 25. Ke6 Re1+
  3. Kd7 Rd1+ 27. Rd6 Rxd6+ 28. Kxd6 a5 29. e8=Q a4 30. Qde7# 1-0

[Event "Argentina"] [Site "?"] [Date "1982.??.??"] [Round "?"] [White "Campora"] [Black "Morovic"] [Result "1-0"] [Annotator "#868!!"] [SetUp "1"] [FEN "r1bq1rk1/p3bppp/2p1p3/2npP3/5B2/3B4/PPPN1PPP/R2QR1K1 w - - 0 1"] [PlyCount "33"] [EventDate "1982.??.??"]

Bxh7+ $3 {One of the hardest positions for computers in the book - not found by any program in a reasonable timeframe (3 hours)} 1... Kxh7 2. Qh5+ Kg8 Re3 f5 4. Rh3 Qe8 (4... Rb8 5. Qh7+ Kf7 6. Bh6 Ke8 7. Bxg7 Rxb2 8. Bxf8 Bxf8 Qg6+ Kd7 10. Rh8 Kc7 11. Nb3 Nd7 12. Nd4 Kb7 13. Nxe6 Qb6 14. h3 $18) (4... Ne4 5. Qh7+ Kf7 6. Nxe4 fxe4 7. Bh6 Ke8 8. Bxg7 Kd7) 5. Qh7+ Kf7 6. Rg3 Rg8 7. Bh6 Bf8 8. b4 Nb7 9. Nc4 Ke7 (9... dxc4 10. Rd1 Nd6 11. Rxd6 Ke7 12. Bg5+ Kf7 Bf6 Rh8 14. Rxg7+ Bxg7 15. Qxg7#) 10. Bg5+ Kd7 11. Qxg8 dxc4 12. Bh4 Kc7 Rxg7+ Bd7 14. Rh7 Bxb4 15. Qxe8 Rxe8 16. Rd1 Nc5 17. Be7 $18 1-0

[Event "Manila Olympiad"] [Site "?"] [Date "1992.??.??"] [Round "?"] [White "Anand"] [Black "Robatsch"] [Result "1-0"] [Annotator "#975"] [SetUp "1"] [FEN "r1b1k2r/pp3ppp/4pb2/2n5/3RB3/4BN2/PqP1QPPP/3R2K1 w kq - 0 1"] [PlyCount "11"] [EventDate "1992.??.??"]

  1. Rd8+ {Tough position for computers} 1... Bxd8 2. Bxc5 Be7 (2... Bf6 3. Qd3 Be7 4. Bxe7 Kxe7 5. Qd6+ Kf6 6. Qf4+ Ke7 7. Ne5 Qxe5 (7... f6 8. Ng6+ hxg6 9. Qc7+ Bd7 10. Qxd7+ Kf8 11. Bxg6 Rd8 12. Qf7#) 8. Qxe5 $18) 3. Qd3 f5 4. Bxf5 exf5 5. Bxe7 Be6 6. Ng5 $18 1-0
tthsqe12 commented 7 years ago

My fork will be updated with a patch like the following. This is based on the matefinder fork of jhellis3. It doesn't have altered tt entries and the syzygy code also is not changed (yet).

with USE_MATEFINDER equ 0, stockfish falls on its face

bash-4.2$ ./asmFish/asmFish/fasm pfish.asm pfish flat assembler version 1.71.54 (16384 kilobytes memory) 4 passes, 0.1 seconds, 113310 bytes. bash-4.2$ ./pfish position fen 1q2k3/1Pp1Pp1K/2P2B2/8/8/8/8/8 w - - 0 1: go depth 40: wait pedantFishL_2017-04-05_popcnt info depth 1 seldepth 1 multipv 1 time 1 nps 18000 score cp -274 nodes 18 tbhits 0 pv h7g7 info depth 2 seldepth 2 multipv 1 time 1 nps 44000 score cp -310 nodes 44 tbhits 0 pv h7g7 b8a7 info depth 3 seldepth 3 multipv 1 time 1 nps 169000 score cp -326 nodes 169 tbhits 0 pv h7h6 b8a7 h6g7 info depth 4 seldepth 5 multipv 1 time 1 nps 255000 score cp -306 nodes 255 tbhits 0 pv h7h6 b8a7 h6g7 a7g1 g7h8 info depth 5 seldepth 6 multipv 1 time 2 nps 263500 score cp -260 nodes 527 tbhits 0 pv h7h6 b8a7 h6g5 a7a5 g5f4 info depth 6 seldepth 9 multipv 1 time 2 nps 688500 score cp -373 nodes 1377 tbhits 0 pv h7h6 b8a7 h6g5 a7a5 g5f4 a5b4 f4e5 b4b5 e5f4 info depth 7 seldepth 10 multipv 1 time 3 nps 751333 score cp -383 nodes 2254 tbhits 0 pv h7h6 b8a7 h6g5 a7a5 g5g4 a5b5 f6h4 b5b6 info depth 8 seldepth 11 multipv 1 time 3 nps 1310000 score cp -292 nodes 3930 tbhits 0 pv h7h6 b8a7 h6g5 a7a5 g5g4 a5b5 f6h4 f7f5 g4f4 b5b4 f4f5 info depth 9 seldepth 14 multipv 1 time 5 nps 1425000 score cp 0 nodes 7125 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 10 seldepth 14 multipv 1 time 6 nps 1508000 score cp 0 nodes 9048 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 11 seldepth 14 multipv 1 time 6 nps 1550666 score cp 0 nodes 9304 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 12 seldepth 14 multipv 1 time 7 nps 1586857 score cp 0 nodes 11108 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 13 seldepth 14 multipv 1 time 9 nps 1581888 score cp 0 nodes 14237 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 14 seldepth 14 multipv 1 time 13 nps 1689769 score cp 0 nodes 21967 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 15 seldepth 14 multipv 1 time 16 nps 1748000 score cp 0 nodes 27968 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 16 seldepth 14 multipv 1 time 18 nps 1735388 score cp 0 nodes 31237 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 17 seldepth 14 multipv 1 time 22 nps 1794954 score cp 0 nodes 39489 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 18 seldepth 14 multipv 1 time 25 nps 1848800 score cp 0 nodes 46220 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 19 seldepth 14 multipv 1 time 28 nps 1976535 score cp 0 nodes 55343 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 20 seldepth 14 multipv 1 time 34 nps 1973617 score cp 0 nodes 67103 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 21 seldepth 14 multipv 1 time 38 nps 2040684 score cp 0 nodes 77546 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 22 seldepth 14 multipv 1 time 46 nps 2153804 score cp 0 nodes 99075 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 23 seldepth 14 multipv 1 time 52 nps 2175750 score cp 0 nodes 113139 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 24 seldepth 14 multipv 1 time 59 nps 2256728 score cp 0 nodes 133147 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 25 seldepth 14 multipv 1 time 75 nps 2360560 score cp 0 nodes 177042 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 26 seldepth 14 multipv 1 time 81 nps 2392987 score cp 0 nodes 193832 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 27 seldepth 14 multipv 1 time 90 nps 2471288 score cp 0 nodes 222416 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 28 seldepth 14 multipv 1 time 102 nps 2520107 score cp 0 nodes 257051 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 29 seldepth 14 multipv 1 time 125 nps 2653304 score cp 0 nodes 331663 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 30 seldepth 14 multipv 1 time 139 nps 2717899 score cp 0 nodes 377788 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 31 seldepth 14 multipv 1 time 217 nps 3092746 score cp 0 nodes 671126 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 32 seldepth 14 multipv 1 time 251 nps 3193438 score cp 0 nodes 801553 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 33 seldepth 14 multipv 1 time 328 nps 3352609 score cp 0 nodes 1099656 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 34 seldepth 14 multipv 1 time 368 nps 3396750 score cp 0 nodes 1250004 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 35 seldepth 14 multipv 1 time 474 nps 3525367 score cp 0 nodes 1671024 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 36 seldepth 14 multipv 1 time 511 nps 3550389 score cp 0 nodes 1814249 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 37 seldepth 14 multipv 1 time 560 nps 3587669 score cp 0 nodes 2009095 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 38 seldepth 14 multipv 1 time 1055 nps 3765363 score cp 0 nodes 3972458 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 39 seldepth 14 multipv 1 time 1870 nps 3881928 score cp 0 nodes 7259206 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 40 seldepth 14 multipv 1 time 1991 nps 3889974 score cp 0 nodes 7744939 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 bestmove h7h6 ponder b8a7 bash-4.2$

with USE_MATEFINDER equ 1, a mate is found!

bash-4.2$ ./asmFish/asmFish/fasm pfish.asm pfish flat assembler version 1.71.54 (16384 kilobytes memory) 4 passes, 0.2 seconds, 113182 bytes. bash-4.2$ ./pfish position fen 1q2k3/1Pp1Pp1K/2P2B2/8/8/8/8/8 w - - 0 1: go depth 40: wait pedantFishL_2017-04-05_popcnt info depth 1 seldepth 1 multipv 1 time 0 nps 18000 score cp -274 nodes 18 tbhits 0 pv h7g7 info depth 2 seldepth 2 multipv 1 time 0 nps 49000 score cp -310 nodes 49 tbhits 0 pv h7g7 b8a7 info depth 3 seldepth 3 multipv 1 time 0 nps 182000 score cp -332 nodes 182 tbhits 0 pv h7g7 b8a7 f6g5 info depth 4 seldepth 4 multipv 1 time 1 nps 332000 score cp -346 nodes 332 tbhits 0 pv h7g7 b8a7 f6g5 a7b6 info depth 5 seldepth 6 multipv 1 time 1 nps 953000 score cp -6 nodes 953 tbhits 0 pv h7h6 b8a7 f6d4 a7d4 b7b8q e8e7 info depth 6 seldepth 8 multipv 1 time 1 nps 1061000 score cp -4 nodes 1061 tbhits 0 pv h7h6 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e6 info depth 7 seldepth 9 multipv 1 time 1 nps 1210000 score cp 0 nodes 1210 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 8 seldepth 9 multipv 1 time 1 nps 1365000 score cp 0 nodes 1365 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 9 seldepth 9 multipv 1 time 1 nps 2280000 score cp 0 nodes 2280 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 10 seldepth 9 multipv 1 time 3 nps 1801666 score cp 0 nodes 5405 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 11 seldepth 9 multipv 1 time 7 nps 2151571 score cp 0 nodes 15061 tbhits 0 pv h7h6 b8a7 f6d4 a7b8 d4f6 info depth 12 seldepth 28 multipv 1 time 35 nps 2710000 score cp 0 nodes 94850 tbhits 0 pv h7h6 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7f6 c7g3 f6e6 c6c7 d4h8 h6g5 h8f6 g5g4 f6f5 g4h4 e6d7 g3h3 f5h3 h4h3 d7c7 info depth 13 seldepth 35 multipv 1 time 85 nps 3012105 score cp 0 nodes 256029 tbhits 0 pv h7h6 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7f6 c7g3 f6e6 c6c7 d4h8 h6g5 h8f6 g5g4 f6f5 g4h4 e6d7 g3h3 f5h3 h4h3 d7c7 h3g4 c7c8 info depth 14 seldepth 35 multipv 1 time 109 nps 3169853 score cp 2304 nodes 345514 tbhits 0 pv h7g8 b8a7 f6d4 e8e7 d4a7 f7f6 b7b8q e7d6 b8f8 d6e5 f8c8 e5d5 c8c7 d5e4 c7b8 f6f5 c6c7 e4f4 b8b4 f4g5 c7c8q info depth 15 seldepth 35 multipv 1 time 118 nps 3205322 score cp 2310 nodes 378228 tbhits 0 pv h7g8 b8a7 f6d4 e8e7 d4a7 f7f6 b7b8q e7d6 b8f8 d6e5 f8c8 e5d5 c8c7 d5e4 c7b8 f6f5 c6c7 e4f3 c7c8q info depth 16 seldepth 35 multipv 1 time 138 nps 3328021 score cp 5081 nodes 459267 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7e7 e5f5 e7d7 f5e4 d7d4 e4d4 c6c7 d4e4 c7c8q e4e3 c8c5 e3e2 g8g7 info depth 17 seldepth 35 multipv 1 time 152 nps 3391440 score cp 5089 nodes 515499 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3f2 c8d8 f2f1 info depth 18 seldepth 35 multipv 1 time 185 nps 3492940 score cp 5089 nodes 646194 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3f2 c8d8 f2f1 g8f7 f1e1 f7e6 info depth 19 seldepth 35 multipv 1 time 227 nps 3573127 score cp 5093 nodes 811100 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3f2 c8d8 f2f1 g8f7 f1e1 f7g7 e1f1 g7f6 info depth 20 seldepth 35 multipv 1 time 292 nps 3703667 score cp 5097 nodes 1081471 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3f2 c8f8 f2e1 g8f7 e1d1 f8e8 d1c2 e8d8 c2c1 f7e6 info depth 21 seldepth 35 multipv 1 time 362 nps 3756618 score cp 5097 nodes 1359896 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3f2 c8f8 f2e1 g8f7 e1d1 f8e8 d1c1 e8d8 c1b2 f7e6 b2b1 info depth 22 seldepth 35 multipv 1 time 466 nps 3835603 score cp 5102 nodes 1787391 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3f2 c8c3 f2e2 g8f7 e2d1 c3e3 d1c2 e3d4 c2b1 f7e6 b1c1 e6d5 info depth 23 seldepth 36 multipv 1 time 592 nps 3890212 score cp 5106 nodes 2303006 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3d4 c8d8 d4c4 g8f7 c4c5 d8d7 c5c4 d7d6 c4b5 d6d4 b5c6 f7e7 info depth 24 seldepth 36 multipv 1 time 767 nps 3956026 score cp 5110 nodes 3034272 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d7 d5c4 d7d4 c4d4 c6c7 d4e3 c7c8q e3d4 c8d7 d4c5 g8f7 c5c4 d7d2 c4c5 f7e6 c5c4 d2e3 c4b5 info depth 25 seldepth 37 multipv 1 time 957 nps 4013747 score cp 5114 nodes 3841156 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3d4 c8d7 d4c4 d7d2 c4c5 g8f7 c5c6 d2c3 c6b6 f7e6 b6b5 e6d5 b5b6 c3c5 b6a6 c5c6 a6a5 c6d6 info depth 26 seldepth 37 multipv 1 time 1170 nps 4074435 score cp 5114 nodes 4767090 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3d4 c8d7 d4c4 d7d2 c4c5 g8f7 c5c6 d2c3 c6b6 c3c4 b6a5 c4c5 a5a4 c5d6 a4b3 d6d2 info depth 27 seldepth 38 multipv 1 time 1480 nps 4130695 score cp 5114 nodes 6113429 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3d3 g8f7 d3d2 c8d8 d2c1 d8d7 c1b1 d7d1 b1a2 f7e6 a2b2 d1d2 b2a3 d2c3 a3a2 e6f7 a2b1 info depth 28 seldepth 42 multipv 1 time 1903 nps 4184908 score cp 5114 nodes 7963880 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3d3 g8f7 d3d2 c8d8 d2e2 f7e6 e2e3 d8d7 e3e2 e6e5 e2e3 d7d1 e3f2 d1d2 f2g3 d2f4 g3h3 e5f6 h3g2 f4d2 g2g3 info depth 29 seldepth 42 multipv 1 time 2855 nps 4310186 score cp 5118 nodes 12305582 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e3 c7c8q e3d3 g8f7 d3e2 c8c3 e2f2 c3c4 f2e3 c4e6 e3f2 e6d6 f2e1 d6d8 e1f2 d8d2 f2g1 d2b2 g1h1 b2c2 h1g1 c2e2 info depth 30 seldepth 44 multipv 1 time 3424 nps 4360393 score cp 5126 nodes 14929988 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4d3 c7c8q d3e3 c8c3 e3f2 g8f7 f2e2 c3d4 e2f1 d4d3 f1g2 d3e2 g2h1 e2c2 h1g1 c2d2 g1h1 f7e6 h1g1 info depth 31 seldepth 51 multipv 1 time 3526 nps 4375509 score cp 5181 lowerbound nodes 15428048 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3527 nps 4375675 score cp 5189 lowerbound nodes 15433008 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3528 nps 4375458 score cp 5377 lowerbound nodes 15436618 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3530 nps 4374877 score cp 5393 lowerbound nodes 15443316 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3616 nps 4394844 score cp 5417 lowerbound nodes 15891756 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3754 nps 4442403 score cp 5446 lowerbound nodes 16676784 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3790 nps 4447252 score cp 5502 lowerbound nodes 16855086 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3808 nps 4448471 score cp 5550 lowerbound nodes 16939778 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3810 nps 4449866 score cp 5713 lowerbound nodes 16953991 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3816 nps 4450421 score cp 5944 lowerbound nodes 16982808 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3828 nps 4449349 score cp 6087 lowerbound nodes 17032110 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3858 nps 4452091 score cp 6415 lowerbound nodes 17176168 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 3935 nps 4471163 score cp 12850 lowerbound nodes 17594030 tbhits 0 pv h7g8 info depth 31 seldepth 51 multipv 1 time 4718 nps 4508192 score mate 26 nodes 21269653 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e4 c7c8q e4d3 c8c1 d3e2 c1c3 e2d1 c3b2 d1e1 b2c2 e1f1 c2d2 f1g1 g8f7 g1h1 d2e2 h1g1 f7e6 g1h1 e2f1 h1h2 e6f6 h2g3 f1e2 g3f4 e2d3 f4g4 info depth 32 seldepth 51 multipv 1 time 5018 nps 4515352 score mate 26 nodes 22658039 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e4 c7c8q e4d3 c8c1 d3e2 c1c3 e2d1 c3b2 d1e1 b2c2 e1f1 c2d2 f1g1 g8f7 g1h1 d2e2 h1g1 f7e6 g1h1 e2f1 h1h2 e6f6 h2g3 f1e2 g3f4 info depth 33 seldepth 55 multipv 1 time 5832 nps 4532243 score mate 26 nodes 26432045 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e4 c7c8q e4d3 c8c1 d3e2 c1c3 e2d1 c3b2 d1e1 b2c2 e1f1 c2d2 f1g1 g8f7 g1h1 d2e2 h1g1 f7e6 g1h1 e2f1 h1h2 e6f6 h2g3 f1e2 g3f4 e2d3 f4g4 d3e3 g4h4 f6f5 info depth 34 seldepth 55 multipv 1 time 6962 nps 4553775 score mate 26 nodes 31703386 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e4 c7c8q e4d3 c8c1 d3e2 c1c3 e2d1 c3b2 d1e1 b2c2 e1f1 c2d2 f1g1 g8g7 g1f1 g7f7 f1g1 d2e2 g1h1 e2f1 h1h2 f7f6 h2g3 f1e2 g3f4 e2d3 f4g4 info depth 35 seldepth 55 multipv 1 time 8399 nps 4570754 score mate 26 nodes 38389770 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6e5 f7g7 e5d5 g7d4 d5d4 c6c7 d4e4 c7c8q e4d3 c8c1 d3e2 c1c3 e2d1 c3b2 d1e1 b2c2 e1f1 c2d2 f1g1 g8g7 g1f1 g7f7 f1g1 d2e2 g1h1 e2f1 h1h2 f7f6 h2g3 f1e2 g3f4 e2d3 f4g4 d3e3 info depth 36 seldepth 55 multipv 1 time 11194 nps 4663492 score mate 25 nodes 52203132 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6d6 f7d7 d6c5 d7d4 c5d4 c6c7 d4d3 c7c8q d3d2 c8c4 d2d1 c4a2 d1c1 g8g7 c1d1 a2b2 d1e1 b2c2 e1f1 c2d2 f1g1 d2e2 g1h1 e2f1 h1h2 g7f6 h2g3 f1e2 g3f4 e2d3 f4g4 d3e3 info depth 37 seldepth 55 multipv 1 time 13448 nps 4677780 score mate 25 nodes 62906786 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6d6 f7d7 d6c5 d7d4 c5d4 c6c7 d4d3 c7c8q d3d2 c8c4 d2d1 c4a2 d1c1 g8g7 c1d1 a2b2 d1e1 b2c2 e1f1 c2d2 f1g1 d2e2 g1h1 e2f1 h1h2 g7f6 h2g3 f1e2 g3f4 e2d3 f4g4 d3e3 g4h4 f6f5 info depth 38 seldepth 55 multipv 1 time 16229 nps 4689355 score mate 25 nodes 76103551 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6d6 f7d7 d6c5 d7d4 c5d4 c6c7 d4d3 c7c8q d3d2 c8c4 d2d1 c4a2 d1c1 g8g7 c1d1 a2b2 d1e1 b2c2 e1f1 c2d2 f1g1 d2e2 g1h1 e2f1 h1h2 g7f6 h2g3 f1e2 g3f4 e2d3 f4g4 d3e3 g4h4 info depth 39 seldepth 55 multipv 1 time 20988 nps 4724644 score mate 23 nodes 99160842 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6d6 f7d7 d6c5 d7d4 c5d4 c6c7 d4d3 c7c8q d3d2 c8c4 d2d1 c4d3 d1e1 g8f7 e1f2 d3d2 f2g1 d2e2 g1h1 e2f1 h1h2 f7f6 h2g3 f1e2 g3f4 f6g6 f4g3 g6f5 g3h3 f5f4 h3h4 e2h2 info depth 40 seldepth 58 multipv 1 time 25568 nps 4738828 score mate 22 nodes 121162373 tbhits 0 pv h7g8 b8a7 f6d4 a7d4 b7b8q e8e7 b8c7 e7e8 c7b8 e8e7 b8f8 e7e6 f8f7 e6d6 f7d7 d6c5 d7d4 c5d4 c6c7 d4d3 c7c8q d3d2 c8c4 d2e3 c4c3 e3e2 g8f7 e2d1 c3d3 d1c1 f7f6 c1b2 f6e6 b2c1 d3e2 c1b1 e6d5 b1c1 d5c4 c1b1 c4c3 b1a1 e2b2 bestmove h7g8 ponder b8a7 bash-4.2$

lantonov commented 7 years ago

ThanksALot TypingALot, you are a genius! I will play some more with the new toy and publish the results.

tthsqe12 commented 7 years ago

ok make sure you get the "oops" patch before trying it

tthsqe12 commented 7 years ago

the famous fen 8/3P3k/n2K3p/2p3n1/1b4N1/2p1p1P1/8/3B4 w - - 0 0 seems to be far out of reach. Im trying $ ./pfish setoption name hash value 512: position fen 8/3P3k/n2K3p/2p3n1/1b4N1/2p1p1P1/8/3B4 w - - 0 0 moves g4f6 h7g7 f6h5 g7g6: go depth 35: wait and it can't find d1c2 (Bc2). However, if you add d1c2 to the move string, it realizes that white is winning right away.

The problem is that d1c2 is far down on the list of root moves searched and does not get searched deep enough

lantonov commented 7 years ago

If the "oops" commit is this one: 2017-01-22 oops (rename 'Display' to 'GD') bench 5513149 it was already applied more than 2 months ago.

lantonov commented 7 years ago

Ok, I saw the new bug-fixing patch. I will update the executables when I get home. I observed a few crashes with the current executables, hopefully because of this bug.

lantonov commented 7 years ago

It would be interesting to analyse with this mate-finder also regular positions (not problems or studies) such as late opening - early middlegame positions. Sometimes, sharp combinations and mates are missed because the engine prunes the tree branches leading to them.

lantonov commented 7 years ago

Positions that the mate-finder can't solve:

6k1/3p4/P2P4/8/5Kp1/1p4Q1/p5p1/b7 w - - bm Qxg2; c0 "Kasparyan 1959, 1 ... Be5+ 2 Kf5! a1/Q 3 a7! Qxa7 4 Kg6! Qa1! 5 Qd5! Kh8 6 Qe4!!, white wins"; id "ZPTS.14"; mate-finder can't find 2. Kf5, insists on 2. Kg5

2rqk2r/pb1nbp1p/4p1p1/1B1n4/Np1N4/7Q/PP3PPP/R1B1R1K1 w kq - bm Rxe6;

r4r1k/2qbnpbp/p2p2p1/nppPp1N1/4P1PP/2P1N3/PPBBQP1K/R5R1 w - - Nf5;

[Event "Soviet Union"] [Site "?"] [Date "1950.??.??"] [Round "?"] [White "Aronin"] [Black "Aratovsky"] [Result "1-0"] [Annotator "#192"] [SetUp "1"] [FEN "r2r2k1/ppqbbppp/4pn2/6N1/n1P4P/3B1N2/PP2QPP1/1KBR3R w - - 0 1"] [PlyCount "17"] [EventDate "1950.??.??"]

Nxh7 Nxh7 2. Bxh7+ Kxh7 3. Ng5+ Kg8 4. Qh5 Bf6 5. Qxf7+ Kh8 6. h5 $1 Nc3+ ( 6... e5 7. Rd3 Bf5 8. Qxc7 Bxd3+ 9. Ka1 Rac8) 7. bxc3 Qb6+ 8. Bb2 Bxg5 9. Rxd7 1-0

[Event "Soviet Union"] [Site "?"] [Date "1952.??.??"] [Round "?"] [White "Panov"] [Black "Taimanov"] [Result "1-0"] [Annotator "#224*"] [SetUp "1"] [FEN "3r2k1/p6p/b2r2p1/2qPQp2/2P2P2/8/6BP/R4R1K w - - 0 1"] [PlyCount "59"] [EventDate "1952.??.??"]

Rxa6 {Excellent test for computers to determine if they see the value of creating the central passed pawns} 1... Rxa6 2. d6 Qxe5 (2... Qxd6 3. Bd5+ Kf8 Qh8+ Ke7 5. Qxh7+ Ke8 6. Qf7#) 3. fxe5 Ra5 4. Bd5+ Kf8 5. Rb1 g5 6. h4 h6 7. Rb7 Ra1+ 8. Kg2 Ra2+ 9. Kf3 Ra3+ 10. Ke2 Ra2+ 11. Kd3 Ra3+ 12. Kd4 Ra1 13. Rf7+ Ke8 14. Rh7 Rd1+ 15. Kc5 Rc8+ 16. Bc6+ Rxc6+ 17. Kxc6 Kf8 18. e6 Kg8 19. Rxh6 Kg7 20. hxg5 Rc1 21. e7 Rxc4+ 22. Kd5 Re4 23. d7 Re1 24. d8=Q Rd1+ 25. Ke6 Re1+ Kd7 Rd1+ 27. Rd6 Rxd6+ 28. Kxd6 a5 29. e8=Q a4 30. Qde7# 1-0

2q1rr1k/3bbnnp/p2p1pp1/2pPp3/PpP1P1P1/1P2BNNP/2BQ1PRK/7R b - - 0 1 ;... f5 2kr1bnr/pbpq4/2n1pp2/3p3p/3P1P1B/2N2N1Q/PPP3PP/2KR1B1R w - - 0 1 ;f5 r2q1rk1/1ppnbppp/p2p1nb1/3Pp3/2P1P1P1/2N2N1P/PPB1QP2/R1B2RK1 b - - 0 1 ;... h5 2r3k1/pbr1q2p/1p2pnp1/3p4/3P1P2/1P1BR3/PB1Q2PP/5RK1 w - - 0 1 ;f5 Q3b3/1p2q3/1p6/bp5P/1p6/1p6/1P1N1PPp/4NK1k w - - 0 1; Qd8 1b6/2p5/1kB5/1PN5/8/3K4/8/q7 w - - bm Nb3 1nrqr3/1b4bk/pp3pp1/3pPp1p/P1pP1P1P/2P1BN2/1PB2QP1/R4RK1 w - - bm Nh2 g4 1qrrbbk1/1p1nnppp/p3p3/4P3/2P5/1PN1N3/PB2Q1PP/1B2RR1K w - - bm Bxh7+; solved with multipv 3 1r1rb1k1/5ppp/4p3/1p1p3P/1q2P2Q/pN3P2/PPP4P/1K1R2R1 w - - bm Rxg7 1r3rk1/3b1p1p/pp1p1p1Q/n1q1p3/2P1P3/P1PB1N2/6PP/1R3RK1 w - - bm Nd4 1r3rk1/3bbppp/1qn2P2/p2pP1P1/3P4/2PB1N2/6K1/qNBQ1R2 w - - bm Bxh7+ 1r3rk1/5p1p/p2pb1p1/3Np1P1/2pRPR2/qP2Q1N1/P1PK3P/8 w - - bm Nf5 1r6/4k3/r2p2p1/2pR1p1p/2P1pP1P/pPK1P1P1/P7/1B6 b - - bm Rxb3 1rb1nrk1/1p1qp2p/p1np1p1Q/3NPp2/2P5/3B1N1P/P2B2P1/R6K w - - bm g4 1rb1r1k1/2qn1pbp/pp1p2p1/2nP4/P1p1PP2/2N1BQNP/1PB3P1/R4R1K w - - bm e5 1rb2r1k/3p1pp1/p3p2p/1p2P3/4q3/1N2B1R1/PPP1N1P1/2KR1B2 w - - bm Nf4 1rb4k/p5np/3p1rp1/1ppB4/2N2P2/1P2R1P1/P1P4P/4R1K1 w - - bm Re8

Ipmanchess commented 7 years ago

Here you have 1000 Mate-positions:

https://github.com/wspeirs/chess/blob/master/src/test/resources/mate/BWTC.PGN

Maybe just here..then you choose what you want to try out ;)

https://github.com/wspeirs/chess/tree/master/src/test/resources/mate

lantonov commented 7 years ago

Thanks. I tried about 300+

pjdouillard commented 7 years ago

I posted this on the Fishtest forum, but maybe here is a better place for suggestions like this one.

How would it be possible to have Null Move and LMR reduced dynamically according to the number of cores a system has, but also according to how many pieces are left on the board?

My point is, because of actual known pruning techniques, a 4-core or a 32-core often system performs the same way because the same branches are pruned, and thus, some great line are missed, and the performance of both systems are quite near.

Imo, the pruning is good for low core count system to make them competitive, but as a machine brings up more cores, the pruning should be toned down so that the best lines are found and used instead of being discarded or 'luckily' found by a thread that somehow had more cpu cycles than normal.

That would help big systems play constantly better than their smaller brethren.

jjoshua2 commented 7 years ago

I would be willing to do some testing on a 20 core with only 1 thread doing matefinder type pruning, instead of all or nothing.

jjoshua2 commented 7 years ago

Is the MATEFINDER supposed to mirror the stockfish MATEFINDER maintained by Joseph Ellis? Or is it less aggressive currently?

tthsqe12 commented 7 years ago

it is the same as Joseph Ellis' matefinder except that I haven't changed syzygy probing.