Hitting a wall at ~1860 Elo

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Hitting a wall at ~1860 Elo

Post by hgm »

mvanthoor wrote: Wed Jun 02, 2021 2:15 pmIf this is the case, it would be an improvement to do the eval tapering and tuning first, and THEN add the killers, heuristics, aspiration window (and PVS) back in for the version after that.

What do you think?
Micro-Max has none of that, and it is rated above 1860. It is hard to believe this is just because of a fast compilation.
abulmo2
Posts: 433
Joined: Fri Dec 16, 2016 11:04 am
Location: France
Full name: Richard Delorme

Re: Hitting a wall at ~1860 Elo

Post by abulmo2 »

mvanthoor wrote: Fri Jun 04, 2021 10:59 am
abulmo2 wrote: Fri Jun 04, 2021 6:48 am
mvanthoor wrote: Wed Jun 02, 2021 2:15 pm killer moves: +45 Elo
history: 0 Elo
aspiration window: 0 Elo
I try to remove these features from Dumb and got this:

Code: Select all

   # PLAYER                : RATING  ERROR   POINTS  PLAYED    (%)
   1 dumb                  :    0.0   ----   1847.0    3000   61.6%
   2 dumb-no_killer        :  -17.0   10.7   1755.0    3000   58.5%
   3 dumb-no_aspiration    :  -73.4   10.5   1445.0    3000   48.2%
   4 dumb-no_history       : -165.1   11.5    953.0    3000   31.8%
Wow. So when you remove killers, dumb drops by 17 Elo... and then when you remove aspiration windows it drops to -73, and without history, it drops to -165? History gives your engine about 90 Elo if you put it on top of killers+aspiration?
I just remove one feature in each engine. So no_killer has history and aspiration windows, no_aspiration has killer moves and history, no_history has both killer moves and aspiration windows. The numbers may be inflated because of self play but I dare to guess not that much. I also replaced history with nothing although you can use other techniques to sort quiet moves (like prefering central squares). Dumb also use LMR and LMP which is very sensitive to move sorting and this may inflate the Elo score even more.
Richard Delorme
Koivisto
Posts: 50
Joined: Fri Sep 04, 2020 10:30 pm
Full name: Kim Kahre

Re: Hitting a wall at ~1860 Elo

Post by Koivisto »

mvanthoor wrote: Thu Jun 03, 2021 6:37 pm Yes, but when your a somewhat decent chess player, you can see if your engine is playing to expectation, and you can identify weak points for which you can then create an evaluation term.
This was my asumption as well before, but thousands of tested ideas later id say that's not generally the case. (Id consider myself a decent chess player :p)
smcracraft
Posts: 737
Joined: Wed Mar 08, 2006 8:08 pm
Location: Orange County California
Full name: Stuart Cracraft

Re: Hitting a wall at ~1860 Elo

Post by smcracraft »

What do you get on the "IQ" test for your program?
smcracraft
Posts: 737
Joined: Wed Mar 08, 2006 8:08 pm
Location: Orange County California
Full name: Stuart Cracraft

Re: Hitting a wall at ~1860 Elo

Post by smcracraft »

Feed it this:

#
#This test is based on a test suite from the master section of Livshits' book
#"Test Your Chess IQ". It has been debugged and improved. The positions are
#carefully balanced with medium to hard examples.
#Changes: IQ to IQ2:
#
# * Dropped: 131 "easy" positions solvable in 4 ply or less
# * Dropped: 16 "hard" positions requiring 12 ply or more
# * Dropped: 12 "avoid move" positions due to their negative focus
#Resulted in 360 positions down to 201.
#
#IQ2 to IQ3:
#
# * Andreas Hermann pointed out 6 duplicate positions. Resulted in 201
#down to 195.
#
#IQ3 to IQ4:
#
# * Jon Dart identified 7 problematical positions. Resulted in 195 down
#to 188.
#
#IQ5:
#
# * Many changes were made, but did not improve strength estimations.
#Therefore, this version is now considered outdated and inaccurate.
#
#IQ6:
#
# * This is a reversion back to IQ4, actually.
#
#
#The test as presented here is intended to estimate the tactical strength of
#chess engines. The test duration is 31 minutes and 20 seconds. Run the test
#on a chess engine at 10 seconds per position, note the percentage score
#achieved and calculate the engine's IQ4 score:
#
#IQ6 score = (percent_correct x 6.7) + 1995
#
#The scoring range of the test suite is from 1995 to 2641
#
#
#Information and Improvements
#
#If you run the test and would like to share your results please send them
#along. If you find any alternative solutions or questionable ones please
#send this data so the test can be improved. My thanks to the posters at CCC
#and the WB forum for pointing out errors and omissions. Enjoy the test.
#
#Email: okelly58@hotmail.com
#
5rk1/1p6/q2P3p/2p2rp1/p1nbQ3/P1N3BP/1PR1B1P1/4K3 b - - bm Rf1+; id "1.5.IQ.918";
4r1k1/1pq2p1p/2p2npb/2N5/1PPQn1P1/7P/6B1/B2R2K1 b - - bm Ng3; id "2.5.IQ.921";
2q1r2k/5R1p/pp1B2pN/2p1P3/1n1b4/3P2Q1/1P4K1/8 w - - bm Qh4; id "3.5.IQ.931";
6rk/7p/Q2R1p2/1p2n3/4b3/1P4NP/P1P2PPK/2q5 b - - bm Qf1; id "4.5.IQ.934";
2k1r2r/ppn3pq/b7/5p2/5Qn1/2N1B1P1/1P3PB1/2RR2K1 w - - bm Qxc7+; id "5.5.IQ.936";
2k4r/pp3ppp/2p2n2/5PBb/P3P3/2Nr3P/1PB2bP1/R3R2K b - - bm Rxh3+; id "6.5.IQ.1009";
r5k1/pq2pn2/3pN1pp/n2P4/1rp1PQ2/1P3PP1/PN4K1/2R4R w - - bm Rxh6 Nd3; id "7.5.IQ.1010";
3r1r2/p4pk1/bp2p1P1/4P2p/Pq1N1P2/2p4Q/2P3P1/3RK2R w - - bm Qxh5; id "8.5.IQ.1014";
rr4k1/2q2ppp/p1b1p3/2b1pPPN/1p2P1R1/3B3Q/PPP4P/1K1R4 w - - bm Nf6+; id "9.5.IQ.1017";
2r1qrk1/3n3p/b3pPp1/4P3/1pp1nBN1/pP4PQ/P1P2PK1/3RR3 w - - bm Qxh7+; id "10.5.IQ.1021";
4rrk1/1b3p1p/pp2p1p1/2qnN1Pn/3N1P2/2P4R/PPB1Q2P/5RK1 w - - bm Rxh5; id "11.5.IQ.1026";
6k1/pp3p1p/3b3r/3p3q/P2n2p1/1P1Pp1P1/1N2P1QP/2R2RK1 b - - bm Bxg3; id "12.5.IQ.1030";
4r3/pbrq1p1k/1p3Bpp/3pPn2/5PQ1/P6R/1P4PP/1B3RK1 w - - bm Rh5 Qg5; id "13.5.IQ.1051";
r1r3k1/1p1b1nq1/6p1/pN1p4/P2Np2R/1P2P3/1Q3PP1/1K5R w - - bm Nd6; id "14.5.IQ.1065";
r2q1rk1/pb2Bppp/4p3/1p6/2pnP1n1/6N1/PPPN2PP/R1Q1RBK1 b - - bm Qb6; id "15.5.IQ.1072";
6k1/5qp1/pN5p/3pRp2/3QnP2/2r4P/r5P1/6RK b - - bm Qh5 Nf2+; id "16.5.IQ.1073";
2b2rk1/pp2R1bp/1qpp2p1/6N1/2P2PP1/3Q1B2/PP4PK/8 w - - bm Bd5+; id "17.5.IQ.1074";
1q3rnk/5p2/3p1P1p/p3n3/Np1r2P1/1P1B4/1PP4Q/1K1R3R w - - bm Qxh6+; id "18.5.IQ.1075";
3r3k/p5qp/bp2B1p1/n2P1p2/5N2/Q1R5/P4PPP/6K1 w - - bm Qb2; id "19.5.IQ.1077";
r4qk1/1b3rpp/1pn1p3/p1b5/2P5/2NQ1N2/PP2BPPP/3R1RK1 b - - bm Ne5; id "20.5.IQ.1078";
4k3/pp2pp2/4n1p1/3RP1P1/2r1N3/P1P5/1P2q3/1K5Q w - - bm Nc5; id "21.5.IQ.1081";
5rk1/5pp1/3b4/1pp2qB1/4R2Q/1BPn4/1P3PPP/6K1 b - - bm Bf4 Ra8; id "22.5.IQ.1091";
3r2k1/p1rq1pp1/1pR1p2p/8/Q2P4/4P3/P4PPP/2R3K1 b - - bm Rdc8; id "23.5.IQ.1095";
1q4r1/3Q1Npk/p6p/1p5N/8/7P/Pn3PP1/6K1 w - - bm Qf5+; id "24.5.IQ.1106";
5k2/1pp2b1p/2p5/r3PPR1/pr6/2N5/1PP4P/2KR4 w - - bm f6; id "25.5.IQ.1113";
6k1/6p1/7p/8/pb5N/2B1p2P/PP4P1/3K1b2 b - - bm e2+; id "26.5.IQ.1118";
r1bq1rk1/5pbp/pB1p1np1/3Pp3/4P3/2p1QP2/PP4PP/1KNR1B1R b - - bm Rb8; id "27.5.IQ.1120";
7r/8/3p1p1r/p1kP2p1/Pp2P1P1/1PpR3P/5R1K/8 b - - bm Re8; id "28.5.IQ.1121";
4R3/5Bq1/7p/5p2/1n3k1B/7P/6PK/8 w - - bm g3+; id "29.5.IQ.1128";
2r2rk1/4p2p/bq1P2p1/p4p2/3R1P1B/2N5/P2Qp1PP/6K1 b - - bm Rxc3; id "30.5.IQ.1135";
2q1n1kr/6b1/1r1p2B1/2p2pP1/2P1bP1N/1P1QB2P/6RK/1R6 w - - bm Qxe4; id "31.5.IQ.1142";
2r5/1p6/pq2p2p/3rN3/k2P2Q1/3R2P1/1P3PP1/1K6 b - - bm Qxb2+ Qd6; id "32.5.IQ.1157";
3r2k1/3rppb1/p1R1b1p1/qp1NP3/8/1P2QB2/P5PP/5RK1 w - - bm Rxe6; id "33.5.IQ.1190";
r1bqkn1r/p3bpp1/1p2pn1p/2pPN1B1/2P5/3B2N1/PP3PPP/R2QR1K1 w kq - bm Nf5 Nh5 dxe6; id "34.5.IQ.1200";
r3kb1r/2q2ppp/pn2p3/4P3/pPPN4/P3BQ2/6PP/R4RK1 w kq - bm Nxe6 Rf2 Rad1; id "35.5.IQ.1201";
1r5r/p2bbk1p/4pnp1/q1ppQ1B1/7P/2N3P1/PPP2PB1/1K1R3R w - - bm Nxd5; id "36.5.IQ.1206";
r1b1k1nr/2R1b1pp/1p2pp2/1N2p3/q3P3/3Q1N2/PP3PPP/3R2K1 w kq - bm b3 Nd6+; id "37.5.IQ.1218";
2q5/1b2Q3/1p3pkp/4p1p1/3n4/4N2P/5PP1/4R1K1 b - - bm Bxg2; id "38.5.IQ.1234";
r4rk1/pp2bpp1/1qp1b2p/4B2Q/n7/3B4/PPP2PPP/3RR1K1 w - - bm Bxg7; id "39.5.IQ.1236";
r1b2k1r/1p4pp/p4B2/2bpN3/8/q2n4/P1P2PPP/1R1QR1K1 w - - bm Bxg7+ Qh5; id "40.5.IQ.1244";
1r3r1k/1b2bppp/p1qp4/5PP1/1p1B3Q/1PN2R2/1PP4P/5RK1 w - - bm Bxg7+; id "41.5.IQ.1245";
2r2rk1/1bq1bpp1/pn2p2p/1pn3P1/3NNP1Q/P6R/1PP3BP/R1B4K w - - bm Nf6+; id "42.5.IQ.1265";
1r2b3/pp1rqppk/3b3p/3Bp2Q/4P1N1/5R1P/PP3PP1/3R2K1 w - - bm Rf6; id "43.5.IQ.1272";
r1n1nrk1/p4p1p/1q4pQ/2p1pN2/1pB1P1P1/5P2/PPP4P/1K1R3R w - - bm Rd6 Rhg1; id "44.5.IQ.1276";
4Q3/p4pk1/2p3p1/8/3P1N2/4PBR1/q4P1K/r3r3 w - - bm Rxg6+ Qe5+; id "45.5.IQ.1281";
3rr1k1/5p2/1p1q2pQ/p2Pb3/1pPp3P/6P1/P4P2/1R1R1BK1 b - - bm Bxg3; id "46.5.IQ.1283";
2r1r1k1/5pbp/p5p1/3Pn3/3QP3/N1B5/PP4qP/1K1R3R b - - bm Rxc3; id "47.5.IQ.1289";
3r2k1/p2r1p1p/1p2p1p1/q4n2/3P4/PQ1R3P/1P2NPP1/3R2K1 b - - bm Nxd4; id "48.6.IQ.923";
5r1k/1p2qp1p/p4R1Q/P1p5/2Prp3/7P/1P4P1/5R1K w - - bm Re6; id "49.6.IQ.940";
5rk1/q5pp/4p3/r1bp1p2/1p1B1P2/1P1QP3/P4RPP/2R3K1 w - - bm Rxc5; id "50.6.IQ.943";
r1r3k1/1p1bnp1p/p5pQ/q5P1/3Bp3/1P4R1/1PP1KP1P/3R4 b - - bm Bg4+; id "51.6.IQ.946";
4k3/1bQ3p1/pp2P3/2nP1qp1/8/2P3P1/P6P/5BK1 w - - bm Bd3; id "52.6.IQ.951";
2rq1r2/pp1b1pkp/8/P2Q2P1/n1nN4/2P5/2P3BP/R1B2RK1 w - - bm Rxa4; id "53.6.IQ.954";
1k1r4/ppq2p2/8/2pPb1r1/2P1Q1B1/6P1/PP3PK1/R4R2 b - - bm f5; id "54.6.IQ.957";
8/5p1k/4p1b1/4P3/2Pq4/2Q2KP1/r3P3/2R2B2 b - - bm Ra3; id "55.6.IQ.962";
1k1r2r1/pp3p1p/B2q1n2/8/3Pb1p1/2Q5/PR3PPP/2B1R1K1 w - - bm Bf4; id "56.6.IQ.966";
r2qrn2/1p2nbkp/2p1pp2/p7/3PP1BN/2N4R/PP1Q1P2/2KR4 w - - bm Qh6+; id "57.6.IQ.976";
r2qk2r/1pp2ppp/p3pnn1/6N1/1B1P2P1/1Q2P2P/PP3PK1/R6R b kq - bm Nh4+; id "58.6.IQ.978";
7R/5Q2/6pp/4rp1k/P3P3/5Pb1/4KPq1/3R4 w - - bm Rxh6+; id "59.6.IQ.980";
rnb4r/p1pq1Pkp/1pn1p1p1/3p2N1/3P4/P1PB3Q/2P2PPP/R1B1K2R w KQ - bm Qh6+; id "60.6.IQ.981";
4rr1k/pQ4pp/8/7q/2B2BbP/P1P2nP1/5PK1/R6R b - - bm Rxf4; id "61.6.IQ.999";
1k6/p1p3Q1/2qp1P2/2p5/rp6/3P3P/1BP1rP2/2KR3R b - - bm Ra1+; id "62.6.IQ.1002";
4r3/1r2ppk1/p2p1np1/2qP4/PpP5/1P1Q4/2B1R1PP/5R1K w - - bm Rxf6; id "63.6.IQ.1018";
4r3/5pk1/2Q2n2/3B2pp/2b2q2/P6P/6P1/R2R2K1 b - - bm Ng4; id "64.6.IQ.1025";
6rk/6bp/p3p1r1/3p4/4p3/2P1N1Pq/PP2QP1P/4RRK1 b - - bm Bxc3 Bf8; id "65.6.IQ.1029";
r1r1q2k/pp3pbp/4p3/2npPp1Q/3P1P1N/2P2RR1/P1P3PP/6K1 w - - bm Rxg7; id "66.6.IQ.1038";
2R5/r3b1k1/p2p4/P1pPp2p/6q1/2P2N1r/4Q1P1/5RK1 w - - bm Nxe5; id "67.6.IQ.1042";
r1bn1r2/1pp3k1/p2p3p/6p1/2qNB3/2P2PP1/P1Q2KP1/1R5R w - - bm Rxh6; id "68.6.IQ.1052";
r4rk1/pp3pbp/3Qbnp1/q1p5/4P1P1/2N1BP2/PPP4P/2KR1B1R b - - bm Nxe4; id "69.6.IQ.1053";
r5k1/4p2p/pp1qNnp1/2pPb3/2P1p1P1/4B3/PP1Q2P1/5R1K w - - bm Bxc5; id "70.6.IQ.1059";
r7/1pqbr1pk/p1n4p/5p1P/2P1p3/2B3R1/PP1Q1PP1/1B2R1K1 w - - bm Rxe4; id "71.6.IQ.1063";
5Bk1/pr2pp1p/2b3pQ/2p1q3/8/2P4P/PP4P1/1B1Rb1K1 w - - bm Bg7; id "72.6.IQ.1067";
k1n1r3/p2R2bb/2p2qpp/4pp2/2P5/2B1Q1P1/PP3PBP/6K1 w - - bm Qc5 Bxe5; id "73.6.IQ.1085";
rr4k1/3nbp1p/p3p1p1/q2pPPP1/bp1B3R/1B2Q3/PPP4P/2K3R1 w - - bm fxe6; id "74.6.IQ.1086";
7k/p2rq2p/1p3R1P/2p5/2P2P1Q/8/6PK/8 w - - bm Qe1; id "75.6.IQ.1087";
b1R2nk1/5ppp/1p3n2/5N2/1b2p3/1P2BP2/q3BQPP/6K1 w - - bm Bc5; id "76.6.IQ.1089";
2b1r1k1/1r1n1pp1/q2p3p/1p1P4/1P1N1RPP/2Q1P3/5PBK/2R5 w - - bm Qxc8; id "77.6.IQ.1096";
8/6kp/8/5r2/1QP1q3/1P3pP1/P3rP1P/5RKB b - - bm Rxf2; id "78.6.IQ.1105";
7r/1pR5/p5k1/3p4/4n1np/8/PPP3PP/5R1K b - - bm Ng3+; id "79.6.IQ.1124";
8/kp6/4R3/1P2K3/8/3pp3/8/8 w - - bm Kd6; id "80.6.IQ.1125";
5r1k/p5bp/1p6/4P3/P2B4/3n2PB/1PR4K/8 w - - bm e6; id "81.6.IQ.1127";
1r1q1rk1/Nb1n1pbp/p5p1/3P4/PPB2p2/4B3/6PP/2RQ1RK1 w - - bm Nc6; id "82.6.IQ.1130";
r3k2r/1nqb1pp1/p3p3/1p1pP1P1/3R1P2/2N2Q2/PPP3B1/2KR4 w kq - bm Nxd5; id "83.6.IQ.1145";
1r2r1k1/p1p2p1p/6p1/8/8/4NBPb/qBQ2K1P/1R6 b - - bm Rxe3 Rb3; id "84.6.IQ.1146";
r7/1p3k1p/3RRp1P/1qr1p1p1/4P1P1/P3QP2/1P6/1K6 b - - bm Qf1+; id "85.6.IQ.1156";
1rb1r1k1/3n1ppp/p1p1p3/q3P3/7P/2N1Q1R1/PPP3P1/2KR1B2 w - - bm Rxd7; id "86.6.IQ.1182";
rq2r1k1/pp2RNp1/1bp2n1p/8/1Q6/7P/PPB2PP1/5RK1 w - - bm Nxh6+; id "87.6.IQ.1195";
r2qk2r/1b1n1p2/p6n/1pp1p1Np/4P2P/2QBNP2/PPP5/2KR2R1 w kq - bm Bxb5 Bc4 Bf1; id "88.6.IQ.1210";
2r1r3/pbq1bpk1/1pn3p1/6Bp/4Q3/PB3N2/1P3PPP/R3R1K1 w - - bm Bxf7; id "89.6.IQ.1225";
4r3/p2qppkp/3p2b1/1p1N4/2r1P1RQ/2P4P/PP4P1/5RK1 w - - bm Rxg6+; id "90.6.IQ.1227";
8/1p4pk/6rp/p1q1pr2/2P1b3/P1Q1P3/1B2R1PP/2R3K1 b - - bm Bxg2; id "91.6.IQ.1239";
2r5/3nr1pk/p2qpp1p/1p5Q/3P1PN1/2P3RP/P5PK/4R3 w - - bm Nxh6; id "92.6.IQ.1260";
3rk1nr/1p3q2/p1n2P1p/P1ppp3/3b4/2N2QPB/1PP4P/R1B2R1K w k - bm Nxd5; id "93.7.IQ.917";
3r4/p2nrpkp/2B1p3/2P2pP1/3R3Q/q7/6PP/6RK w - - bm g6; id "94.7.IQ.927";
6k1/pp2q2r/2r1p3/1RPpPpp1/3P4/P5P1/3Q1PK1/7R w - - bm Rxb7; id "95.7.IQ.960";
b3k3/2q1b1p1/p3p2r/1pPpP2p/1P1N3P/6P1/P3Q3/1BR3K1 w - - bm Bg6+; id "96.7.IQ.984";
8/2bP1Q1p/6pk/p3p3/P1Bp4/1P1R2KP/5PP1/2q4r w - - bm Re3; id "97.7.IQ.985";
r3k2r/pppqnpbp/4p1p1/3nP1B1/Q2PN2P/5P2/PP2BP2/2R1K1R1 w - - bm Nd6+; id "98.7.IQ.990";
r1b2r1k/1pq3bp/8/3Qp2n/1P1n1pp1/2NP2P1/3BPPBP/1R2NRK1 b - - bm Qxc3 f3; id "99.7.IQ.997";
r1b2rk1/1p2qppp/2pb1n2/p3n1N1/2BR4/1PN1P3/PBQ2PPP/2K4R w - - bm Rxd6; id "100.7.IQ.998";
r1b2Q2/1p4pk/pB3pq1/4p3/3p4/6P1/PP2PP1P/2R3K1 b - - bm Bh3; id "101.7.IQ.1000";
r4rk1/5pp1/p2R1Bb1/1pq1Pp1p/7Q/1Bn5/P5PP/5R1K w - - bm Bxg7; id "102.7.IQ.1001";
r3r3/pp2bBkp/6p1/q3p2Q/4n3/2N2R2/PPP3PP/2KR4 w - - bm Bxg6 Qg4; id "103.7.IQ.1005";
r2q1rk1/1p1bbppp/p1n1p3/2p1P2Q/4N3/6P1/PPPB1PBP/3RR1K1 w - - bm Nf6+; id "104.7.IQ.1008";
r1b1rb2/1p3kpQ/p1p1p3/q1P1P3/3P4/4P1R1/PP4PP/R1B3K1 w - - bm Bd2; id "105.7.IQ.1013";
r1r2k2/1q1n1p2/3PpPp1/4P2p/pbpN3R/2N3K1/1P2Q2P/3R4 w - - bm Rxh5; id "106.7.IQ.1022";
r2qrnk1/1b2bppp/2p5/1p1pN1Pn/p2P1B2/3BP2P/PPQ2P2/2K3RR w - - bm Bxh7+; id "107.7.IQ.1034";
r4rk1/pppq2pp/1nbpp3/6B1/2PP2P1/3B3P/P1P2P2/1R1QR1K1 w - - bm d5; id "108.7.IQ.1036";
r3r1k1/pp1q1p2/6pp/3N4/3b4/1Q3PPb/PP3R1P/1B1R2K1 b - - bm Re2; id "109.7.IQ.1039";
4rrk1/1p3p1p/p5pb/3P4/2Pp3q/N6P/PPQ1BP1P/R3K2R b KQ - bm d3; id "110.7.IQ.1041";
2br1rk1/2qnQ2p/p4pp1/4p3/P1p1P1N1/2Pn1N1P/2B2PP1/1R1R1K2 w - - bm Rxd3; id "111.7.IQ.1056";
r7/pp2pkbp/2pq2p1/8/2P2N2/1P2R1PP/P3QPK1/8 w - - bm c5; id "112.7.IQ.1060";
5r1k/pb2r1bp/1p2B1p1/n7/4qNQ1/4B3/P4PPP/2RR2K1 w - - bm Rd4; id "113.7.IQ.1083";
b1n1r1k1/2q2p1p/p4Pp1/1pBP4/4B1P1/2P1Q3/P4K1P/4R3 w - - bm Qh6 Kg2; id "114.7.IQ.1097";
r1b2r1k/2q2pp1/2pb3p/p1n1NB2/1pP5/1P5P/PBQ2PP1/3RR1K1 w - - bm Rxd6; id "115.7.IQ.1101";
r4bk1/pbq2pp1/1pn1p2p/8/4N3/1P2P1P1/PB2QPBP/3R2K1 w - - bm Nf6+; id "116.7.IQ.1192";
r3k2r/1bqnBppp/p3p3/1p2P3/3N2Q1/3B4/PPP3PP/2KnR3 w kq - bm Nxe6; id "117.7.IQ.1199";
4k1r1/1q1r1p2/4pQp1/3pP1B1/2p3P1/1nP2BP1/1P5K/3R4 w - - bm Bxd5; id "118.7.IQ.1203";
r1b2k1r/p2n1pp1/1q2p3/2ppP1B1/1b1N1Q1P/2N5/PPP2P2/R3K1R1 w Q - bm Bd8; id "119.7.IQ.1212";
r4r2/1b4pk/p5pp/1pb1N3/4P3/2P1N1Pq/PPB1QP2/3R2K1 b - - bm Rxf2 Rad8; id "120.7.IQ.1219";
4r1k1/1p2qrpb/p1p4p/2Pp1p2/1Q1Rn3/PNN1P1P1/1P3PP1/3R2K1 b - - bm Nxf2; id "121.7.IQ.1221";
rn1q1rk1/1b2bppp/p3p3/1pn1P2Q/3N4/1BN1B3/PPP3PP/R4RK1 w - - bm Rxf7; id "122.7.IQ.1224";
r1bq1rk1/pp2ppbp/2p2np1/3p4/2PPn3/1PN3P1/PBQNPPBP/R3K2R b KQ - bm Nxf2; id "123.7.IQ.1229";
r3k3/2pb1p1p/p2p4/6rq/4P3/2P5/PP1Q1PP1/R3RNK1 b q - bm Rxg2+; id "124.7.IQ.1241";
r2q1rk1/pp1b1Rp1/4p2p/4PnNQ/2pP4/2P1B3/P5PP/5RK1 w - - bm R1xf5; id "125.7.IQ.1249";
r1b2rk1/pppn2bp/3p1qp1/3p2N1/3P4/3BB3/PPP2PPP/R2QR1K1 w - - bm Nxh7; id "126.7.IQ.1252";
4rb2/1p1q1ppk/p1n1p2p/2p1Pn2/3PNR2/2P2K2/P2QBP2/6R1 w - - bm Rxf5; id "127.7.IQ.1266";
4rr1k/pp4b1/4P2p/5p1R/3q4/3B2P1/PP1R4/1K5Q w - - bm Rxh6+; id "128.7.IQ.1271";
r1r1n3/5p1k/1n1P2pp/ppq1pN2/2p1P3/1PP1R2P/P1B2QPK/5R2 w - - bm Nxh6; id "129.7.IQ.1275";
r2q1r1k/p3pn1p/3p2pQ/1ppP1p1n/4P3/2N2P2/PPP1BP2/2K3RR w - - bm Qxg6; id "130.7.IQ.1280";
r4rk1/4ppbp/1q2bnp1/n1p4P/4P1P1/2NBBP2/PP1Q4/1K1R2NR b - - bm Bxa2+ Rfb8; id "131.7.IQ.1290";
r3rnk1/4qpp1/p5np/4pQ2/Pb2N3/1B5P/1P3PP1/R1BR2K1 w - - bm Bxh6; id "132.8.IQ.894";
1r2q1k1/1p6/pN2p1p1/P3p3/2PbQ3/1P5P/6P1/5R1K w - - bm Nd7; id "133.8.IQ.958";
r1b2rk1/p1q2ppp/1p2p3/4n3/3bP3/1B3N1P/PP2QPP1/R1B2RK1 b - - bm Ba6; id "134.8.IQ.963";
7r/p5k1/4pr2/4Np2/1p1Pn1p1/4P3/PP3PP1/2R2RK1 b - - bm Nc3; id "135.8.IQ.987";
5bk1/5p1p/Q5p1/1B4n1/8/2q1p3/6PP/3R2K1 b - - bm e2; id "136.8.IQ.1048";
6k1/1p3ppp/1PbNp3/3rP1q1/2Q5/8/5PPP/1R4K1 w - - bm Qxc6; id "137.8.IQ.1090";
3r4/5pkp/B5p1/PPn1p3/2P1P3/4qP1P/1Q4P1/4NK2 b - - bm Rd2 Rd1; id "138.8.IQ.1104";
6k1/p4pp1/Pp2r3/1QPq3p/8/6P1/2P2P1P/1R4K1 w - - bm cxb6; id "139.8.IQ.1122";
8/1p3b2/8/p1b1pN2/P1P1P1p1/1P6/6Bk/5K2 b - - bm b5; id "140.8.IQ.1137";
2r1r3/3qppkp/pp1p2p1/3PnP2/2PN4/1P5P/P2Q2P1/4RRK1 w - - bm Rxe5; id "141.8.IQ.1185";
1n2rk2/1qr1pp2/pp1p1npp/3P4/1PPN1P2/P2QR1P1/7P/4RBK1 w - - bm Ne6+; id "142.8.IQ.1186";
Q1b1r3/1p3pbk/1p3npp/7q/1BPpp1P1/1P5P/P3PPB1/R3R1K1 b - - bm Bxg4; id "143.8.IQ.1197";
r3kbnr/p4p2/1p2p2p/3qP1p1/3Nn1QB/8/PP2NPPP/R4RK1 w kq - bm Nxe6; id "144.8.IQ.1217";
r1bqr1k1/1p1nbppp/p1n1p3/3pP2Q/3N1P2/1BN1B3/PPP3PP/R4RK1 w - - bm Nxd5; id "145.8.IQ.1222";
2r1r1k1/5ppp/pq3b2/2pB1P2/2p2B2/5Q1P/Pn3PP1/2R1R1K1 w - - bm Bxf7+; id "146.8.IQ.1223";
r2r1bk1/1ppq2pp/2p2B2/p1n2N1b/P3P1R1/3PN3/2P3PP/R2Q2K1 w - - bm Ne7+; id "147.8.IQ.1233";
1nb2r1k/2r1qppp/p3p2n/1p1BP3/3N1Q2/2N5/PPP4P/2KR2R1 w - - bm Rxg7; id "148.8.IQ.1240";
2q3k1/3b1p2/1b1p3p/1p1Pp1p1/1P2Pn2/QN3P2/2r3PP/1R2BB1K b - - bm Rxg2; id "149.8.IQ.1242";
2r1k2r/3bbp1p/p3pp1Q/q2P4/1p3P1B/8/1PP3PP/1K1R1B1R b k - bm Rxc2; id "150.8.IQ.1288";
1rb2r2/1p1nppk1/2p1n1p1/p3P2p/2qP3R/2N3NP/PP1Q2B1/5RK1 w - - bm Bd5; id "151.9.IQ.926";
3r2k1/1p3pp1/1p6/7p/q2NP1P1/2Q2P1b/rP5P/2RR2K1 w - - bm Nf5; id "152.9.IQ.929";
2qr1r2/p2n1ppk/1p2p2p/5b2/2PP2NQ/1B4R1/P4PPP/R5K1 w - - bm Bc2; id "153.9.IQ.956";
5r1k/p5b1/1qp4p/1r2p3/4N1P1/2Pn2B1/QP2R1PP/R6K b - - bm Ra5; id "154.9.9IQ.959";
r4rk1/1nqb1pbn/6pB/pppPp2p/8/1PP2NNP/P1BQ2P1/R4RK1 w - - bm Nxh5; id "155.9.IQ.1020";
4r1k1/p4ppp/1p2q3/n2R4/2r1p3/Pn2B1P1/1Q2PPBP/3R2K1 w - - bm Re5; id "156.9.IQ.1099";
r1br2k1/1pq2ppp/p3pP2/8/1n3PP1/1NpB4/PPP2Q1P/2KR2R1 w - - bm Bxh7+; id "157.9.IQ.1112";
8/5p1p/6p1/3P4/1k3P2/pp1B2P1/7P/1K6 b - - bm Kc3; id "158.9.IQ.1115";
r4r1k/6pp/3p3b/1p1Npb2/3nB2q/2N3P1/PP3P1P/R2Q1RK1 b - - bm Qxe4; id "159.9.IQ.1148";
r2q1rk1/3nbppp/p1bpp3/6PQ/1p1BP3/1BN5/PPP2P1P/2KR2R1 w - - bm Rd3; id "160.9.IQ.1179";
r3kb1r/pp3p1p/4pp2/q2pN3/2P5/8/PP3PPP/R2QR1K1 w kq - bm Nxf7; id "161.9.IQ.1216";
r1qr2k1/p3bppp/b1p5/3nN3/NP1P4/P3B3/5PPP/1B1QR1K1 w - - bm Bxh7+; id "162.9.IQ.1254";
3r1rk1/1bq1bp1p/p3p1p1/3pP3/3N1P2/2PBB2R/n1P1Q1PP/5RK1 w - - bm Rxh7; id "163.9.IQ.1255";
2rq1rk1/pp3pp1/4pb1p/3bN3/3P4/PnPB3R/2Q2PPP/R1B3K1 w - - bm Bh7+; id "164.9.IQ.1269";
1b4k1/1pnq1r1p/4p1p1/1pPpP2Q/1P5B/3BPP2/7P/6RK w - - bm Bxg6; id "165.9.IQ.1278";
2r2rn1/p3q1bk/n2p2pp/1b1PPp2/1pp2P1N/1P2N1P1/P1QB2BP/4RRK1 w - - bm Nxg6; id "166.9.IQ.1279";
5r2/1pr1ppk1/1n1q2p1/p2P3p/5R2/1BP1RQ2/5PP1/6K1 w - - bm Re6; id "167.9.IQ.1284";
2k5/1p2b3/2p1p3/3pP1p1/nP1P2P1/NKP5/3B4/q3Q3 b - - bm Qb2+; id "168.10.IQ.937";
1r5r/3b1pk1/3p1np1/p1qPp3/p1N1PbP1/2P2PN1/1PB1Q1K1/R3R3 b - - bm Nxg4; id "169.10.IQ.950";
r2qk2r/1bp2pQp/p7/1p1pP3/4n3/1B2b3/PPP2PPP/RN3RK1 b kq - bm Qg5; id "170.10.IQ.953";
r2qrbk1/p2b2pp/1pn1pn2/3p4/2pP1P2/2P2NN1/PPQ3PP/RBB2RK1 w - - bm Ng5; id "171.10.IQ.993";
3qr1k1/4r1pp/2pp1p2/p1p2P2/2PnPNPP/1P1Q4/P5R1/4R1K1 b - - bm d5; id "172.10.IQ.1032";
rq6/1r1k4/1pRp1p1p/1P1Pp1pP/p1R1P1P1/PpQ2P2/1K6/8 w - - bm f4; id "173.10.IQ.1043";
r4rk1/3bpp1p/pqp3p1/4P2n/2B5/1P6/PBPbQ1PP/4RR1K w - - bm e6; id "174.10.IQ.1054";
4rr1k/ppp3pp/3bBqb1/3P4/3Pn1PP/4BN2/PP3PK1/R2Q1R2 b - - bm Rxe6; id "175.10.IQ.1070";
2r3k1/1rq2p1p/pp1p1bp1/2pP2N1/2P1R3/1Q6/PP3PP1/4R1K1 w - - bm Nxh7; id "176.10.IQ.1076";
8/8/pp1pPkpp/3P4/2P1K1P1/8/P7/8 w - - bm g5+; id "177.10.IQ.1117";
5rk1/2rnqp1p/b3p1pP/2ppP3/1p3QN1/pP1P1BP1/P1P2P2/R3R1K1 w - - bm Bxd5; id "178.10.IQ.1126";
8/1Rb2r1k/6p1/6qp/4QP2/3p3K/7P/3B4 b - - bm Rxf4; id "179.10.IQ.1136";
r5k1/1p3p1p/p1pqrPp1/3bN3/8/P1P3Q1/1P4PP/4RRK1 w - - bm Nxf7; id "180.10.IQ.1231";
2r2bk1/1bq1rppp/pp1p4/4n1P1/Pn1BP1N1/2N3Q1/1PP2RBP/5RK1 w - - bm Bxe5; id "181.10.IQ.1251";
2r1r1k1/pbq2ppp/1p2pn2/2b1N3/2P5/2B5/PPB1QPPP/3RR1K1 w - - bm Bxh7+; id "182.10.IQ.1257";
1k1r4/1bp4Q/p7/8/1pP2p2/1P2bNrP/1P4P1/5R1K b - - bm Bxf3; id "183.11.IQ.930";
7r/4q1k1/1p1p1ppr/p1nRp3/P1P1P1BP/1P4P1/2Q3K1/3R4 b - - bm f5; id "184.11.IQ.1033";
2r1r1k1/pp1b1ppp/1q6/3P4/7N/Pn1Q4/1P3PPP/1RB2RK1 b - - bm Nxc1; id "185.11.IQ.1080";
rnb2rk1/pp3p1p/3q2pQ/3pN3/2pP4/2PB4/P1P2PPP/4RRK1 w - - bm Nxf7; id "186.11.IQ.1232";
r1q2r1k/p1ppb1p1/1p2p1Qp/3n3P/3PN3/2P1B3/PP3PP1/3R1RK1 w - - bm Bxh6; id "187.11.IQ.1261";
r4rk1/pp2qpp1/2p1bn1p/8/1bP4Q/5N1P/PPB2PP1/R1BR2K1 w - - bm Bxh6; id "188.11.IQ.1263";
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Hitting a wall at ~1860 Elo

Post by jdart »

IMHO almost all weaker engines are also buggy. There is just no substitute for having correctness in all implemented features. Some of the basic things to check are correct perft results, and verify eval results are symmetrical when the board is flipped/side to move is swapped. I also now have unit tests for key features including SEE, move generation, attack calculation, etc.
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Hitting a wall at ~1860 Elo

Post by mvanthoor »

jdart wrote: Sun Jun 13, 2021 4:43 pm IMHO almost all weaker engines are also buggy. There is just no substitute for having correctness in all implemented features. Some of the basic things to check are correct perft results, and verify eval results are symmetrical when the board is flipped/side to move is swapped. I also now have unit tests for key features including SEE, move generation, attack calculation, etc.
My engine is currently weak due to having no features. As far as I've been able to tell, there are no bugs.

- Zobrist hashing is working (incremental key is always the same as a key created from scratch)
- Evaluation seems to be symmetrical:

Code: Select all

Marcel@WORKSTATION MINGW64 /c/Programs/Chess/Engines/uci/Rustic
$ ./rustic-alpha-2.2.100_64-bit-bmi2.exe -f 

...

eval
info string Evaluation: 55 centipawns
quit

Marcel@WORKSTATION MINGW64 /c/Programs/Chess/Engines/uci/Rustic
$ ./rustic-alpha-2.2.100_64-bit-bmi2.exe -f "r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R b KQkq -"

...

eval
info string Evaluation: -55 centipawns
quit
Tested about 10 positions. Obviously when white thinks it's at an advantage, black will show the same evaluation, but with a minus sign. (And the other way around.) I tested about a dozen positions.

- perft / move generation is perfect as far as I can see. The well known perftsuite.epd (+ additions by talkchess members) which has 175 tests completes without issue.

- It also competes without issue with the hash table. This confirms that the zobrist hash is working, and the correct entries are stored and retrieved.

- MMV-LVA has been tested by just printing all possible capture combinations with the value they'd set for the sort_order. All are correct.

- TT Move ordering and killer move ordering are working correctly. (I just had the engine print the values and then die... but the values were the expected ones each time.)

Eric Madsen said that Aspiration Windows didn't do anything for his engine. They didn't do anything for me (at least, not yet.) I removed the history feature for now. I implemented this in a wonky way, and I'll be doing this again later.

In self-play, Killers on top of Alpha 2 gave around +50 Elo.
In self-play, PVS on top of Alpha 2 + Killers also gave +50 Elo.

(I know that values in self-play are inflated.)

PVS+Killers on top of Alpha 2 vs. Alpha 2 itself gave +91 Elo. In a large gauntlet, with PVS+Killers on top of Alpha 2 performed about 50 Elo better than Alpha 2 itself.

As far as I can see, each feature except for Aspiration Windows (and the wonky history) gave me the Elo increase within the margin of expectation. Testing has confirmed that parts of the engine are correct.

I can't state that I am _sure_ that I have no bugs, but as far as it goes, I think I can be reasonably sure. I am going to add unit tests in the future though.

First I'll add the tapering (with incremental values, which will be tested the same way as the current evaluation was), and then I'll probably use either MinimalChess' or Pesto's tapered PST's to get a feel for the strength increase that could be expected at the minimum. Then I'll write my own tuner.

That'll be Rustic 4, and I expect it to hit 2100 or very close to it. (Still without any pruning, reductions, extensions, or evaluation terms apart form PST's.) After that, I'll improve the evaluation with more terms. I expect History, when re-implemented, to make at least a bit of an impact, and the evaluation will also aid in PVS, because now, the impact of each move is basically only decided by which square the piece lands on, if no material is gained or lost. That's a very crude evaluation to work with.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Hitting a wall at ~1860 Elo

Post by jdart »

Recursive null move pruning is a big winner. Probably more so than history. It doesn't look like that is implemented, so far.
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Hitting a wall at ~1860 Elo

Post by mvanthoor »

jdart wrote: Mon Jun 14, 2021 5:04 am Recursive null move pruning is a big winner. Probably more so than history. It doesn't look like that is implemented, so far.
It isn't. The next version of the engine will have a tapered and tuned eval (for what it's worth, without any other evaluation knowledge).

Then I'll be adding both search features and evaluation terms, and returning and testing after each change.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
smcracraft
Posts: 737
Joined: Wed Mar 08, 2006 8:08 pm
Location: Orange County California
Full name: Stuart Cracraft

Re: Hitting a wall at ~1860 Elo

Post by smcracraft »

You should use the IQ test on your program.

I did and it helped me blow past a lot of things.

It found a ton of tactical issues all of which are fixed.

:-)