Nemeton 1.7

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Stan Arts
Posts: 179
Joined: Fri Feb 14, 2014 10:53 pm
Location: the Netherlands

Nemeton 1.7

Post by Stan Arts »

I updated the link in my signature to Nemeton 1.7.

Bugfix to stop it being unintentionally blind in simpler endings.
More aggressive pruning. Tried this before but with other changes it now actually kinda works.
More compact bits of code.
In Nemeton3D the queen and knight are improved as well as some usual uninteresting changes.

Three versions included. Single core Nemeton with source code. 2, 3 or 4 core NemetonSMP and Nemeton3D.
User avatar
Graham Banks
Posts: 41415
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Nemeton 1.7

Post by Graham Banks »

Thanks Stan.
Hopefully it will be the strongest Nemeton yet. :)
gbanksnz at gmail.com
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Nemeton 1.7

Post by tpoppins »

Nemeton doesn't seem to be compliant with the CECP move format spec. Thus as soon as it moves a pawn to the last rank the game is terminated due to an illegal move.

[pgn][Event "test"] [Site "test"] [Date "2018.07.08"] [Round "1"] [White "Nemeton 1.7"] [Black "Embla 1.0.3 64-bit"] [Result "0-1"] [ECO "A05"] [GameDuration "00:04:32"] [GameEndTime "2018-07-08T23:59:43.063 Eastern Daylight Time"] [GameStartTime "2018-07-08T23:55:10.505 Eastern Daylight Time"] [Opening "Reti Opening"] [PlyCount "104"] [Termination "illegal move"] [TimeControl "40/120"] 1. Nf3 {book} Nf6 {book} 2. d4 {book} g6 {book} 3. Bg5 {book} Bg7 {book} 4. c3 {book} b6 {book} 5. Bxf6 {-0.14/12 3.2s} exf6 {-0.31/11 1.9s} 6. e4 {+0.11/13 3.6s} Qe7 {+0.08/11 2.1s} 7. Bd3 {+0.36/12 2.0s} f5 {-0.31/11 3.4s} 8. O-O {+0.90/13 3.0s} f4 {-0.50/12 2.9s} 9. Qd2 {+0.90/13 4.5s} g5 {-0.51/12 3.3s} 10. Na3 {+0.93/12 4.8s} g4 {-0.18/13 2.5s} 11. Ne1 {+0.94/12 3.0s} Bh6 {-0.41/12 3.4s} 12. f3 {+1.00/11 2.9s} d6 {-0.38/12 2.4s} 13. fxg4 {+0.91/11 2.4s} Bxg4 {-0.43/12 3.3s} 14. Qc2 {+0.97/11 3.0s} a5 {-0.20/10 3.1s} 15. Kh1 {+1.18/11 3.9s} Nd7 {-0.38/10 3.1s} 16. Nf3 {+1.09/11 3.5s} c6 {-0.58/11 5.4s} 17. d5 {+1.22/12 4.3s} Bxf3 {-0.53/12 8.4s} 18. Rxf3 {+1.28/12 2.4s} Ne5 {-1.07/13 7.1s} 19. Rh3 {+1.38/12 2.4s} Qg5 {-1.06/12 6.8s} 20. dxc6 {+1.99/11 2.9s} Nxc6 {-1.06/10 6.1s} 21. Bb5 {+3.44/12 2.2s} Kd7 {-2.00/10 0.74s} 22. Qa4 {+3.78/11 1.9s} Rac8 {-2.84/10 1.2s} 23. Nc4 {+4.41/12 4.8s} Rhg8 {-3.10/9 1.1s} 24. Rg1 {+4.84/12 2.9s} Ke7 {-3.48/9 0.79s} 25. Bxc6 {+4.91/12 2.7s} Qc5 {-3.63/10 0.90s} 26. Rxh6 {+5.08/12 4.4s} Qxc6 {-3.78/9 1.3s} 27. Qxc6 {+5.45/14 3.3s} Rxc6 {-4.17/11 0.61s} 28. Ne5 {+5.78/14 1.9s} Rcc8 {-5.32/10 0.82s} 29. Nd3 {+5.52/14 2.2s} Rg4 {-5.35/11 1.7s} 30. Rxh7 {+6.46/13 2.0s} a4 {-5.55/10 0.62s} 31. h3 {+6.98/13 2.3s} Rg3 {-6.53/9 0.53s} 32. Nxf4 {+7.68/14 3.7s} a3 {-6.98/9 0.77s} 33. Rf1 {+8.47/13 2.5s} Rf8 {-7.79/7 0.51s} 34. bxa3 {+8.71/13 3.1s} Kd7 {-8.57/10 0.83s} 35. Nd5 {+9.77/15 3.8s} Ke8 {-8.97/9 0.56s} 36. Rb1 {+9.95/15 3.9s} Kd7 {-10.17/11 0.71s} 37. Rxb6 {+10.21/14 2.6s} Rg5 {-10.03/10 0.66s} 38. Ra6 {+10.92/14 3.2s} Re5 {-9.85/10 0.57s} 39. c4 {+12.74/14 3.9s} Ree8 {-11.58/9 0.55s} 40. Rh6 {+13.66/17 8.0s} Re6 {-11.95/10 0.57s} 41. Rh5 {+15.47/15 4.4s} Rfe8 {-11.42/11 2.1s} 42. Ra7+ {+19.67/15 2.5s} Kd8 {-16.40/11 2.8s} 43. Rh7 {+19.79/15 1.7s} R8e7 {-18.02/13 1.9s} 44. Nxe7 {+20.43/16 2.4s} Rxe7 {-19.33/15 2.6s} 45. Rh8+ {+22.73/16 4.0s} Re8 {0.012s} 46. Ra8+ {+26.20/15 4.1s} Ke7 {-19.39/13 3.0s} 47. Rhxe8+ {+28.09/14 6.1s} Kd7 {-19.48/13 1.8s} 48. h4 {+28.89/13 3.3s} Kc6 {-19.42/13 1.9s} 49. Rac8+ {+31.57/13 7.5s} Kd7 {-19.71/12 4.9s} 50. h5 {+M12/13 2.4s} d5 {-99.79/12 1.7s} 51. h6 {+M10/13 4.9s} f6 {-99.91/10 1.4s} 52. h7 {+M8/12 3.0s} f5 {-99.93/9 1.5s, White makes an illegal move: h7h8} 0-1 [/pgn]

Eng-to-GUI comm from the end of the game:

Code: Select all

271.207: > time 7643
271.207: > otim 13335
271.207: > f6f5
271.239: < 2   2868   0       76         h8=Q fxe4 Qf6 dxc4 Qe7+ 
271.239: < 2   3025   0       123        exd5 Kd6 c5+ Kxd5 Rh8 Kxc5 
271.239: < 2   3156   0       158        cxd5 fxe4 h8=Q e3 Rxe3 
271.239: < 3   3016   0       276        cxd5 Kd6 h8=Q fxe4 Qd4 Kxd5 
271.239: < 3   29992  0       353        h8=Q fxe4 Rxe4 dxe4 Qe8+ Kd6 Rc6+ M4#
271.239: < 4   29994  0       599        h8=Q fxe4 Qg7+ Kd6 c5+ M3#
271.239: < 5   29994  0       1125       h8=Q fxe4 Qg7+ Kd6 c5+ M3#
271.239: < 6   29994  0       2710       h8=Q fxe4 Qg7+ Kd6 c5+ M3#
271.254: < 7   29994  1       7154       h8=Q fxe4 Qg7+ Kd6 c5+ M3#
271.254: < 8   29994  2       17158      h8=Q fxe4 Qg7+ Kd6 c5+ M3#
271.285: < 9   29994  4       40919      h8=Q fxe4 Qg7+ Kd6 c5+ M3#
271.348: < 10  29994  11      115233     h8=Q fxe4 Qg7+ Kd6 c5+ M3#
271.551: < 11  29994  31      335556     h8=Q fxe4 Qg7+ Kd6 c5+ M3#
272.034: < 12  29994  79      921463     h8=Q fxe4 Qg7+ Kd6 c5+ M3#
273.173: < nodes:2154275 nps:1116200 time:193
273.173: < move h7h8 
273.173: > force
273.173: > result 0-1 {White makes an illegal move: h7h8}
It shows a promotion to Queen in the PV, yet the actual move sent to the GUI seems to be missing the Queen suffix.
Tirsa Poppins
CCRL
Stan Arts
Posts: 179
Joined: Fri Feb 14, 2014 10:53 pm
Location: the Netherlands

Re: Nemeton 1.7

Post by Stan Arts »

What GUI is that? Every GUI I ever tried got this right ofcourse and promoted to queen when unspecified.

Nemeton only sent a suffix with underpromotion. I remember doing that for a reason but who knows what that reason was. So I updated the archive to something that sends a "q" on queen promotion and maybe I'll find out.

Regardless I'm done with this.
konsolas
Posts: 182
Joined: Sun Jun 12, 2016 5:44 pm
Location: London
Full name: Vincent

Re: Nemeton 1.7

Post by konsolas »

Stan Arts wrote: Mon Jul 09, 2018 9:21 pm What GUI is that? Every GUI I ever tried got this right ofcourse and promoted to queen when unspecified.

Nemeton only sent a suffix with underpromotion. I remember doing that for a reason but who knows what that reason was. So I updated the archive to something that sends a "q" on queen promotion and maybe I'll find out.

Regardless I'm done with this.
http://wbec-ridderkerk.nl/html/UCIProtocol.html

The UCI spec does seem to require a character denoting the desired piece, even when not underpromoting. It gives the example "e7e8q", showing that 'q' must be specified for 'queen', so the GUI does not have to assume queen promotion.
tmokonen
Posts: 1296
Joined: Sun Mar 12, 2006 6:46 pm
Location: Kelowna
Full name: Tony Mokonen

Re: Nemeton 1.7

Post by tmokonen »

The crapware known as Windows Defender seems to think that Nemeton 1.7 contains a trojan named Trojan:Win32/Fuery.B!cl (non-SMP version, the SMP version seems OK). I am sure this is a false positive, since the latest 32 bit version of Booot is also detected as containing this very same trojan. I notice that both of these programs are written in Pascal, so maybe there is something that the compiler (you are using Delphi?) places in the executables that is causing these false positives.
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Nemeton 1.7

Post by tpoppins »

Stan Arts wrote: Mon Jul 09, 2018 9:21 pm What GUI is that?
Cute Chess 1.1.0.
Stan Arts wrote: Mon Jul 09, 2018 9:21 pmSo I updated the archive to something that sends a "q" on queen promotion
Problem solved, thank you.

konsolas wrote: Mon Jul 09, 2018 9:36 pm http://wbec-ridderkerk.nl/html/UCIProtocol.html

The UCI spec does seem to require a character denoting the desired piece, even when not underpromoting. It gives the example "e7e8q", showing that 'q' must be specified for 'queen', so the GUI does not have to assume queen promotion.
Nemeton is an Xboard engine, however Xboard protocol also requires the suffix:
APPENDIX A: MOVE FORMAT

Moves should be specified in coordinate notation, e.g. e2e4 or g8f6.
For promotions the chosen piece should be indicated by a lower-case suffix, e.g.a7a8q or e2e1n.
Tirsa Poppins
CCRL
Stan Arts
Posts: 179
Joined: Fri Feb 14, 2014 10:53 pm
Location: the Netherlands

Re: Nemeton 1.7

Post by Stan Arts »

Had a Heisenbug. That disappeared when I tried to find it in debug mode or when changing compiler version. Noticed my node counts were different in certain positions in debug mode but nothing breaks. Then I compiled some ancient versions of Nemeton and the problem has always been there. Yikes the stuff of nightmares.
So by elimination I isolated the problem to my evaluation. Then to my pawn stuff and finally to my kinginreachc function.

Apparently this:

Code: Select all

 if 3+tboard[2] and 15-kirp and 15 <= kirp shr 4+tdepth and 1 then kinginreachc:=1; 
breaks in old Free Pascal versions (like 2.6.4 which used to give me the fastest raw speed compiles) but hopping the 3 over like so fixes it. Whatever.

Code: Select all

 if tboard[2] and 15-kirp and 15 <= kirp shr 4+tdepth and 1-3 then kinginreachc:=1; 
Newer versions of Free Pascal get it right so I should read release notes.

While I was at it I've redone the PV collection and now the Winboard version comes in at a hefty 116 kB which is over 20 Elo per kilobyte and that's WAY stronger than Stockfish. :|