Opening performance of engines

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

Moderator: Ras

Ferdy
Posts: 4846
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Opening performance of engines

Post by Ferdy »

Image

Cerebellum prefers Nbd2.
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Opening performance of engines

Post by tpoppins »

I ran this suite on a bunch of engines and didn't get numbers like Kai's either. Sandy Bridge's single-thread performance is noticeably lower than Haswell's, figures. Had to double the time to approximate his numbers, the scaling between them is off, though - viz K10.1 vs Houdini, his numbers and mine.

Xeon E5-2670, 4 cores, 1 GB hash, 20 seconds/position, Deep Fritz 14 GUI, 2 extra plies

Code: Select all

Komodo 10.1         123 out of 200 = 61.5%. Average time = 3.51s / 15.47
Stockfish 8         113 out of 200 = 56.5%. Average time = 3.75s / 16.96
Deep Shredder 12    104 out of 200 = 52.0%. Average time = 3.30s / 10.47
Gull 3 syzygy       104 out of 200 = 52.0%. Average time = 2.55s / 12.32
Houdini 4 Pro       100 out of 200 = 50.0%. Average time = 3.03s / 13.06 
Andscacs 0.871       94 out of 200 = 47.0%. Average time = 3.56s / 15.97
Deep Fritz 14        92 out of 200 = 46.0%. Average time = 2.29s / 14.18
Texel 1.05a45        91 out of 200 = 45.5%. Average time = 3.93s / 13.48
Arasan 19.1          90 out of 200 = 45.0%. Average time = 2.77s / 14.21
Vajolet2 2.2         89 out of 200 = 44.5%. Average time = 2.59s / 12.46
Fire 4               75 out of 200 = 37.5%. Average time = 3.60s / 12.72
Fritz 15             70 out of 200 = 35.0%. Average time = 3.55s / 12.88
A few surprises there, right?

For a graphic representation of individual engine results see this Excel table.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Opening performance of engines

Post by Laskos »

tpoppins wrote:I ran this suite on a bunch of engines and didn't get numbers like Kai's either. Sandy Bridge's single-thread performance is noticeably lower than Haswell's, figures. Had to double the time to approximate his numbers, the scaling between them is off, though - viz K10.1 vs Houdini, his numbers and mine.

Xeon E5-2670, 4 cores, 1 GB hash, 20 seconds/position, Deep Fritz 14 GUI, 2 extra plies

Code: Select all

Komodo 10.1         123 out of 200 = 61.5%. Average time = 3.51s / 15.47
Stockfish 8         113 out of 200 = 56.5%. Average time = 3.75s / 16.96
Deep Shredder 12    104 out of 200 = 52.0%. Average time = 3.30s / 10.47
Gull 3 syzygy       104 out of 200 = 52.0%. Average time = 2.55s / 12.32
Houdini 4 Pro       100 out of 200 = 50.0%. Average time = 3.03s / 13.06 
Andscacs 0.871       94 out of 200 = 47.0%. Average time = 3.56s / 15.97
Deep Fritz 14        92 out of 200 = 46.0%. Average time = 2.29s / 14.18
Texel 1.05a45        91 out of 200 = 45.5%. Average time = 3.93s / 13.48
Arasan 19.1          90 out of 200 = 45.0%. Average time = 2.77s / 14.21
Vajolet2 2.2         89 out of 200 = 44.5%. Average time = 2.59s / 12.46
Fire 4               75 out of 200 = 37.5%. Average time = 3.60s / 12.72
Fritz 15             70 out of 200 = 35.0%. Average time = 3.55s / 12.88
A few surprises there, right?

For a graphic representation of individual engine results see this Excel table.
Thanks for testing! I used 4 cores. Also, I used Shredder Classic 4 GUI, and I didn't have control over adjudication of "solved". Didn't like it, and switched now to Polyglot with "min-depth 10", "min-time 1", "max-time 10", "depth-delta 3", and got lower results compared to Shredder GUI, but the order is similar to yours. Consider that statistical fluke is about 3-4 for the difference.

Nice Excel Table!
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Opening performance of engines

Post by tpoppins »

Thank you, Kai. That Excel table was such a nice PITA to make, too. ;)

I also thoroughly rehauled Ferdy's opening classification draft. The classification from that PGN resource that he linked to is rudimentary at best: how else one to account for its failure to identify such mainstream mainstays like the Semi-Slav, the Taimanov Sicilian, the Gruenfeld etc? An interesting suite like this one deserves manual treatment.

Had to ditch the "Var" field while I was at it - most of its contents was irrelevant, e.g. the very first record:

[d]r1bqkbnr/1ppp1ppp/p1n5/4p3/B3P3/5N2/PPPP1PPP/RNBQK2R b KQkq - bm Nf6; c0 "1"; id "kai_openings_nr_1"; eco "C70"; Opn "Ruy Lopez"; Var "fianchetto defence deferred";

True, the Fianchetto Defence may arise from this position but, taken on its own, the position has not more to do with it than a bazillion of other variations that can arise via this particular move order. If one were forced to classify this position (which one shouldn't be - it's too early in the opening for that) Morhy Defence would probably be it; however, that's chiseling it a bit too fine for a general opening suite like this one, IMO. It is better to use compound qualifiers where relevant and appropriate, like "Semi-Slav Meran" for example.

The corrected version below also includes a fix for the Be5 typo for pos. 150 pointed out by Richard Delorme (I presume Be6 was meant).

Code: Select all

r1bqkbnr/1ppp1ppp/p1n5/4p3/B3P3/5N2/PPPP1PPP/RNBQK2R b KQkq - bm Nf6; c0 "1"; id "kai_openings_nr_1"; eco "C70"; Opn "Ruy Lopez";
r1bqkb1r/1ppp1ppp/p1n2n2/4p3/B3P3/5N2/PPPP1PPP/RNBQ1RK1 b kq - bm Be7 Nxe4; c0 "1"; id "kai_openings_nr_2"; eco "C78"; Opn "Ruy Lopez";
r1bqkb1r/p1pp1ppp/2p2n2/8/4P3/8/PPP2PPP/RNBQKB1R w KQkq - bm e5 Bd3; c0 "2"; id "kai_openings_nr_3"; eco "C45"; Opn "Scotch Game";
r3kb1r/p1ppqp1p/b1p3p1/3nP3/2P5/1P6/P3QPPP/RNB1KB1R w KQkq - bm f4 g3; c0 "2"; id "kai_openings_nr_4"; eco "C45"; Opn "Scotch Game";
r1bqk2r/pppp1ppp/2n2n2/2b1p3/2B1P3/3P1N2/PPP2PPP/RNBQK2R w KQkq - bm c3 O-O; c0 "3"; id "kai_openings_nr_5"; eco "C50"; Opn "Giuoco Pianissimo";
r1bqk2r/ppp2ppp/2np1n2/2b1p3/2B1P3/2PP1N2/PP3PPP/RNBQ1RK1 b kq - bm O-O a6; c0 "3"; id "kai_openings_nr_6"; eco "C54"; Opn "Giuoco Piano";
r1bqk1nr/ppp2ppp/2np4/b3p3/2BPP3/2P2N2/P4PPP/RNBQK2R w KQkq - bm Qb3; c0 "4"; id "kai_openings_nr_7"; eco "C52"; Opn "Evans Gambit";
r1b1k1nr/pppq1ppp/2np4/b3p3/2BPP3/1QP2N2/P4PPP/RNB1K2R w KQkq - bm O-O; c0 "4"; id "kai_openings_nr_8"; eco "C52"; Opn "Evans Gambit";
rnbqk1nr/pp3ppp/4p3/2ppP3/1b1P4/2N5/PPP2PPP/R1BQKBNR w KQkq - bm a3 Qg4; c0 "5"; id "kai_openings_nr_9"; eco "C17"; Opn "French Winawer";
rnbqk2r/pp2nppp/4p3/2ppP3/3P4/P1P5/2P2PPP/R1BQKBNR w KQkq - bm Qg4 Nf3; c0 "5"; id "kai_openings_nr_10"; eco "C18"; Opn "French Winawer";
rnbqkb1r/pp1n1ppp/4p3/2ppP3/3P1P2/2N5/PPP3PP/R1BQKBNR w KQkq - bm Nf3; c0 "6"; id "kai_openings_nr_11"; eco "C11"; Opn "French Classical";
r1bqkb1r/1p1n1ppp/p1n1p3/2ppP3/3P1P2/2N1BN2/PPP3PP/R2QKB1R w KQkq - bm Qd2; c0 "6"; id "kai_openings_nr_12"; eco "C11"; Opn "French Classical";
rnbqkbnr/pp2pppp/2p5/3pP3/3P4/8/PPP2PPP/RNBQKBNR b KQkq - bm Bf5; c0 "7"; id "kai_openings_nr_13"; eco "B12"; Opn "Caro-Kann Advance";
r2qkb1r/pp1nnppp/2p1p3/3pPb2/3P4/2P2N2/PP2BPPP/RNBQ1RK1 b kq - bm h6 c5; c0 "7"; id "kai_openings_nr_14"; eco "B12"; Opn "Caro-Kann Advance";
rnbqkb1r/ppp1pppp/3p4/3nP3/3P4/8/PPP2PPP/RNBQKBNR w KQkq - bm Nf3; c0 "8"; id "kai_openings_nr_15"; eco "B03"; Opn "Alekhine's Defence";
rnbqkb1r/ppp1pppp/1n1p4/4P3/2PP4/8/PP3PPP/RNBQKBNR w KQkq - bm exd6; c0 "8"; id "kai_openings_nr_16"; eco "B03"; Opn "Alekhine's Defence";
rnbqk2r/ppp1ppbp/3p1np1/8/3PP3/2N2N2/PPP2PPP/R1BQKB1R w KQkq - bm Be2; c0 "9"; id "kai_openings_nr_17"; eco "B08"; Opn "Pirc Classical";
rnbq1rk1/ppp1ppbp/3p1np1/8/3PP3/2N2N2/PPP1BPPP/R1BQK2R w KQ - bm O-O; c0 "9"; id "kai_openings_nr_18"; eco "B08"; Opn "Pirc Classical";
rnb1kbnr/ppp1pp1p/3q2p1/8/3P4/2N5/PPP2PPP/R1BQKBNR w KQkq - bm Nf3; c0 "10"; id "kai_openings_nr_19"; eco "B01"; Opn "Scandinavian Defence";
rnb1kb1r/ppp1pp1p/1q3np1/1N6/3P4/5N2/PPP2PPP/R1BQKB1R w KQkq - bm c4; c0 "10"; id "kai_openings_nr_20"; eco "B01"; Opn "Scandinavian Defence";
rnbqkb1r/1p2pppp/p2p1n2/8/3NP3/2N1B3/PPP2PPP/R2QKB1R b KQkq - bm e5 e6; c0 "11"; id "kai_openings_nr_21"; eco "B90"; Opn "Sicilian Najdorf";
rn1qkb1r/1p3ppp/p2pbn2/4p3/4P3/1NN1B3/PPP2PPP/R2QKB1R w KQkq - bm f3; c0 "11"; id "kai_openings_nr_22"; eco "B90"; Opn "Sicilian Najdorf";
r1bqkb1r/pp3ppp/2np1n2/1N2p3/4P3/2N5/PPP2PPP/R1BQKB1R w KQkq - bm Bg5; c0 "12"; id "kai_openings_nr_23"; eco "B33"; Opn "Sicilian Sveshnikov";
r1bqkb1r/1p3ppp/p1np1n2/4p1B1/4P3/N1N5/PPP2PPP/R2QKB1R b KQkq - bm b5; c0 "12"; id "kai_openings_nr_24"; eco "B33"; Opn "Sicilian Sveshnikov";
r1b1k2r/1pqp1ppp/p1n1pn2/8/1b1NP3/2N1B3/PPP1BPPP/R2Q1RK1 w kq - bm Na4; c0 "13"; id "kai_openings_nr_25"; eco "B49"; Opn "Sicilian Taimanov";
2q1k2r/3pbppp/pr2pn2/2p1B3/4P3/8/PPP1BPPP/R2Q1RK1 w k - bm Qd3; c0 "13"; id "kai_openings_nr_26"; eco "B49"; Opn "Sicilian Taimanov";
r1bqk1nr/pp2ppbp/2np2p1/2p5/4P3/2NP2P1/PPP2PBP/R1BQK1NR w KQkq - bm Nge2 f4; c0 "14"; id "kai_openings_nr_27"; eco "B25"; Opn "Closed Sicilian";
r1bqk2r/pp2ppbp/2np1np1/2p5/4P3/2NP2P1/PPP1NPBP/R1BQK2R w KQkq - bm O-O; c0 "14"; id "kai_openings_nr_28"; eco "B25"; Opn "Closed Sicilian";
r1bqkb1r/pp2pppp/1nnp4/1B2P3/3P4/5N2/PP3PPP/RNBQK2R b KQkq - bm dxe5; c0 "15"; id "kai_openings_nr_29"; eco "B22"; Opn "Alapin Sicilian";
r3kb1r/pp1q1ppp/1nn1p3/1B6/3P4/2N5/PP3PPP/R1BQ1RK1 b kq - bm Be7; c0 "15"; id "kai_openings_nr_30"; eco "B22"; Opn "Alapin Sicilian";
r1bqkbnr/pp2pppp/2np4/1Bp5/4P3/5N2/PPPP1PPP/RNBQK2R w KQkq - bm O-O; c0 "16"; id "kai_openings_nr_31"; eco "B51"; Opn "Sicilian Moscow Var";
r2qkbnr/pp1bpppp/2np4/1Bp5/4P3/5N2/PPPP1PPP/RNBQ1RK1 w kq - bm Re1; c0 "16"; id "kai_openings_nr_32"; eco "B51"; Opn "Sicilian Moscow Var";
rnbqk2r/pp2ppbp/3p1np1/8/3NP3/2N1B3/PPP2PPP/R2QKB1R w KQkq - bm f3; c0 "17"; id "kai_openings_nr_33"; eco "B72"; Opn "Sicilian Dragon";
r2q1rk1/pp1bppbp/2np1np1/8/2BNP3/2N1BP2/PPPQ2PP/R3K2R w KQ - bm O-O-O; c0 "17"; id "kai_openings_nr_34"; eco "B78"; Opn "Sicilian Dragon";
rnbq1rk1/ppp2ppp/4pn2/3p4/1bPP4/2NBP3/PP3PPP/R1BQK1NR w KQ - bm Nf3; c0 "19"; id "kai_openings_nr_35"; eco "E48"; Opn "Nimzo-Indian Rubinstein";
r1bq1rk1/pp3ppp/2n1pn2/2pp4/2PP4/P1PBPN2/5PPP/R1BQ1RK1 b - - bm dxc4 Qc7; c0 "19"; id "kai_openings_nr_36"; eco "E58"; Opn "Nimzo-Indian Rubinstein";
rnbqkb1r/p1pp1ppp/1p2pn2/8/2PP4/5N2/PP2PPPP/RNBQKB1R w KQkq - bm g3; c0 "20"; id "kai_openings_nr_37"; eco "E12"; Opn "Queen's Indian";
rn1qkb1r/pb3p2/2p1pn1p/1p4p1/2pPP2P/2N2NB1/PP2BPP1/R2QK2R b KQkq - bm g4; c0 "22"; id "kai_openings_nr_38"; eco "D43"; Opn "Semi-Slav Moscow";
r2qkb1r/pb1n1p2/2p1pn1p/1p2N3/2pPP1pP/2N3B1/PP2BPP1/R2QK2R w KQkq - bm Nxd7; c0 "22"; id "kai_openings_nr_39"; eco "D43"; Opn "Semi-Slav Moscow";
r3kb1r/pb2qp2/2p1pn1p/1p2B3/2pPP1pP/2N5/PP2BPP1/R2QK2R w KQkq - bm O-O b3; c0 "22"; id "kai_openings_nr_40"; eco "D43"; Opn "Semi-Slav Moscow";
r3kbr1/pb2qp2/2p1pn1p/1p2B3/2pPP1pP/2N5/PP2BPP1/R2Q1RK1 w q - bm b3; c0 "22"; id "kai_openings_nr_41"; eco "D43"; Opn "Semi-Slav Moscow";
rnbqkb1r/pp2pppp/2p2n2/3p4/2PP4/2N2N2/PP2PPPP/R1BQKB1R b KQkq - bm e6; c0 "23"; id "kai_openings_nr_42"; eco "D15"; Opn "QGD Slav";
rnbqkb1r/pp3pp1/2p1pn1p/8/2pP3B/2N2N2/PP2PPPP/R2QKB1R w KQkq - bm e4; c0 "23"; id "kai_openings_nr_43"; eco "D43"; Opn "Semi-Slav Moscow";
rnbqkb1r/p4p2/2p1pn1p/1p4p1/2pPP3/2N2NB1/PP2BPPP/R2QK2R b KQkq - bm Bb7; c0 "23"; id "kai_openings_nr_44"; eco "D43"; Opn "Semi-Slav Moscow";
rn1qkb1r/pb3p2/2p1pn1p/1p2N3/2pPP1pP/2N3B1/PP2BPP1/R2QK2R b KQkq - bm Nbd7; c0 "23"; id "kai_openings_nr_45"; eco "D43"; Opn "Semi-Slav Moscow";
r2qkbr1/1b3p2/p1p1pn1p/1p2B3/2pPP1pP/2N3P1/PP2BP2/R2QR1K1 b q - bm Bb4 Rg6; c0 "23"; id "kai_openings_nr_46"; eco "D43"; Opn "Semi-Slav Moscow";
rn1qkb1r/pb3p2/2p1pn1p/1p4p1/2pPP3/2N2NB1/PP2BPPP/R2QK2R w KQkq - bm h4; c0 "24"; id "kai_openings_nr_47"; eco "D43"; Opn "Semi-Slav Moscow";
r2qkb1r/pb3p2/2p1pn1p/1p2B3/2pPP1pP/2N5/PP2BPP1/R2QK2R w KQkq - bm O-O a4; c0 "24"; id "kai_openings_nr_48"; eco "D43"; Opn "Semi-Slav Moscow";
rnbq1rk1/ppp2ppp/3b4/4p3/8/2P2NP1/P1PP1PBP/R1BQ1RK1 b - - bm Nc6 c5; c0 "27"; id "kai_openings_nr_49"; eco "C26"; Opn "Vienna";
1r1qr1k1/ppp2ppp/2nb4/4pbN1/3P4/2P3P1/P1P2PBP/1RBQ1RK1 w - - bm f4; c0 "27"; id "kai_openings_nr_50"; eco "C26"; Opn "Vienna";
r1bqk2r/ppp1bppp/2n5/3p4/3Pn3/3B1N2/PPP2PPP/RNBQ1RK1 w kq - bm c4; c0 "28"; id "kai_openings_nr_51"; eco "C42"; Opn "Petrov";
r1bqk2r/ppp1bppp/8/3p4/1nPPn3/3B1N2/PP3PPP/RNBQ1RK1 w kq - bm Be2; c0 "28"; id "kai_openings_nr_52"; eco "C42"; Opn "Petrov";
r1bqkb1r/pp1p1ppp/2p2n2/4p3/B2nP3/2N2N2/PPPP1PPP/R1BQK2R w KQkq - bm Nxe5; c0 "29"; id "kai_openings_nr_53"; eco "C46"; Opn "Three Knights Game";
r1bqk2r/pppp1ppp/5n2/2b1N3/B2nP3/2N5/PPPP1PPP/R1BQK2R b KQkq - bm O-O; c0 "29"; id "kai_openings_nr_54"; eco "C48"; Opn "Four Knights Game";
r1b2rk1/ppp1qppp/2np1n2/1B2p1B1/4P3/2PP1N2/P1P2PPP/R2Q1RK1 w - - bm Re1 Bh4; c0 "30"; id "kai_openings_nr_55"; eco "C49"; Opn "Four Knights Game";
rnbqkb1r/pp3pp1/3ppn1p/8/3NP1P1/2N5/PPP2P1P/R1BQKB1R w KQkq - bm h4 Rg1; c0 "31"; id "kai_openings_nr_56"; eco "B81"; Opn "Sicilian Scheveningen";
r1bqkb1r/pp3pp1/2nppn1p/8/3NP1PP/2N5/PPP2P2/R1BQKBR1 b Qkq - bm h5 d5; c0 "31"; id "kai_openings_nr_57"; eco "B81"; Opn "Sicilian Scheveningen";
r1bqkb1r/pp3ppp/2nppn2/6B1/3NP3/2N5/PPPQ1PPP/R3KB1R b KQkq - bm a6; c0 "32"; id "kai_openings_nr_58"; eco "B63"; Opn "Sicilian Richter-Rauzer";
r1bqkb1r/1p3ppp/p1nppn2/6B1/3NP3/2N5/PPPQ1PPP/R3KB1R w KQkq - bm O-O-O; c0 "32"; id "kai_openings_nr_59"; eco "B67"; Opn "Sicilian Richter-Rauzer";
r2qkb1r/1p1b1ppp/p1nppn2/6B1/3NPP2/2N5/PPPQ2PP/2KR1B1R b kq - bm b5 Be7; c0 "32"; id "kai_openings_nr_60"; eco "B67"; Opn "Sicilian Richter-Rauzer";
r1bqk1nr/pp1pppbp/2n3p1/1Bp5/4P3/2N2N2/PPPP1PPP/R1BQ1RK1 b kq - bm e5 Nd4; c0 "33"; id "kai_openings_nr_61"; eco "B31"; Opn "Sicilian Rossolimo";
rnbqkb1r/pppn1ppp/4p3/3pP3/3P4/8/PPPN1PPP/R1BQKBNR w KQkq - bm Bd3; c0 "35"; id "kai_openings_nr_62"; eco "C06"; Opn "French Tarrasch";
rnbqkb1r/pp1n1ppp/4p3/2ppP3/3P4/2PB4/PP1N1PPP/R1BQK1NR b KQkq - bm Nc6; c0 "35"; id "kai_openings_nr_63"; eco "C06"; Opn "French Tarrasch";
r1b1kb1r/pp1n1ppp/1qn1p3/3pP3/3P4/3B1N2/PP2NPPP/R1BQK2R b KQkq - bm f6; c0 "35"; id "kai_openings_nr_64"; eco "C06"; Opn "French Tarrasch";
r1b2rk1/pp4pp/1qnbpn2/3p4/3P4/2NB1N2/PP3PPP/R1BQ1RK1 w - - bm Be3; c0 "35"; id "kai_openings_nr_65"; eco "C06"; Opn "French Tarrasch";
rnbqkbnr/pp2pppp/2p5/8/3PN3/8/PPP2PPP/R1BQKBNR b KQkq - bm Bf5; c0 "38"; id "kai_openings_nr_66"; eco "B15"; Opn "Caro-Kann";
rn1qkbnr/pp2ppp1/2p3bp/8/3P3P/5NN1/PPP2PP1/R1BQKB1R b KQkq - bm Nd7; c0 "38"; id "kai_openings_nr_67"; eco "B19"; Opn "Classical Caro-Kann";
r2qkbnr/pp1nppp1/2p3bp/8/3P3P/5NN1/PPP2PP1/R1BQKB1R w KQkq - bm h5; c0 "38"; id "kai_openings_nr_68"; eco "B19"; Opn "Classical Caro-Kann";
r2qkbnr/pp1nppp1/2p4p/7P/3P4/3Q1NN1/PPP2PP1/R1B1K2R b KQkq - bm e6; c0 "38"; id "kai_openings_nr_69"; eco "B19"; Opn "Classical Caro-Kann";
r2q1rk1/pp1nbpp1/2p1p2p/7P/3PQB2/5N2/PPP2PP1/1K1R3R b - - bm Nf6; c0 "38"; id "kai_openings_nr_70"; eco "B19"; Opn "Classical Caro-Kann";
r4rk1/pp2bpp1/2p1p2p/4N2P/3PnB2/8/PPP2PP1/1K1R3R w - - bm Rhe1; c0 "38"; id "kai_openings_nr_71"; eco "B19"; Opn "Classical Caro-Kann";
r2qkb1r/pp1nnpp1/2p1p2p/3pPb2/3P4/2P2N2/PP1NBPPP/R1BQ1RK1 b kq - bm Qc7 g5; c0 "39"; id "kai_openings_nr_72"; eco "B12"; Opn "Caro-Kann Advance";
r3kb1r/ppqnnpp1/2p1p2p/3pPb2/3P4/2P2N2/PP1NBPPP/R1BQ1RK1 w kq - bm Re1; c0 "39"; id "kai_openings_nr_73"; eco "B12"; Opn "Caro-Kann Advance";
rnbqk2r/pp1p1ppp/4pn2/8/1bPN4/2N3P1/PP2PP1P/R1BQKB1R b KQkq - bm O-O Ne4; c0 "40"; id "kai_openings_nr_74"; eco "E20"; Opn "Nimzo-Indian Fianchetto";
rnb2rk1/pp3ppp/4p3/q2n4/1b1N4/1QN3P1/PP1BPPBP/R3K2R b KQ - bm Nc6; c0 "40"; id "kai_openings_nr_75"; eco "E20"; Opn "Nimzo-Indian Fianchetto";
rnbqk2r/pp3ppp/4p3/2Pn4/8/P1P2P2/4P1PP/R1BQKBNR b KQkq - bm Qa5; c0 "41"; id "kai_openings_nr_76"; eco "E25"; Opn "Nimzo-Indian Saemisch";
rnb2rk1/pp3ppp/4pn2/q1P5/4P3/P1P1BP2/6PP/R2QKBNR w KQ - bm Qd2; c0 "41"; id "kai_openings_nr_77"; eco "E25"; Opn "Nimzo-Indian Saemisch";
rnbq1rk1/ppp1bppp/5n2/3p4/3P4/P1N1P3/1P2NPPP/R1BQKB1R w KQ - bm b4; c0 "42"; id "kai_openings_nr_78"; eco "E46"; Opn "Nimzo-Indian Rubinstein";
rnbq1rk1/pp2bppp/2p2n2/3p4/1P1P4/P1N1P1N1/5PPP/R1BQKB1R b KQ - bm Re8; c0 "42"; id "kai_openings_nr_79"; eco "E46"; Opn "Nimzo-Indian Rubinstein";
rn1qk2r/p1pp1ppp/bp2pn2/8/1bPP4/1P3NP1/P2BPP1P/RN1QKB1R b KQkq - bm Be7; c0 "43"; id "kai_openings_nr_80"; eco "E15"; Opn "Queen's Indian 4.g3";
rn1qk2r/p2pbppp/bpp1pn2/8/2PP4/1PB2NP1/P3PPBP/RN1QK2R b KQkq - bm d5; c0 "43"; id "kai_openings_nr_81"; eco "E15"; Opn "Queen's Indian 4.g3";
rn1qk2r/p2nbppp/bpp1p3/3pN3/2PP4/1PB3P1/P3PPBP/RN1QK2R w KQkq - bm Nxd7; c0 "43"; id "kai_openings_nr_82"; eco "E15"; Opn "Queen's Indian 4.g3";
rnbq1rk1/pp2ppbp/3p1np1/2p5/2PPP3/2N1BP2/PP4PP/R2QKBNR w KQ - bm Nge2; c0 "45"; id "kai_openings_nr_83"; eco "E81"; Opn "King's Indian Saemisch";
rnbq1rk1/pp2ppbp/3p1np1/2p5/2PPP3/2N1BP2/PP2N1PP/R2QKB1R b KQ - bm Nc6 Nbd7; c0 "45"; id "kai_openings_nr_84"; eco "E81"; Opn "King's Indian Saemisch";
r1bq1rk1/1pp2pbp/3p1np1/p1nPp3/2P1P3/2N2N1P/PPB2PP1/R1BQ1RK1 b - - bm b6 Nh5 Ne8; c0 "46"; id "kai_openings_nr_85"; eco "E90"; Opn "King's Indian";
rnbqk2r/pp2ppbp/6p1/2p5/3PP3/2P2N2/P4PPP/R1BQKB1R w KQkq - bm Rb1 Be3; c0 "47"; id "kai_openings_nr_86"; eco "D85"; Opn "Gruenfeld Exchange";
r1bq1rk1/pp2ppbp/2n3p1/2pP4/4P3/2P2N2/P3BPPP/1RBQK2R b K - bm Ne5; c0 "47"; id "kai_openings_nr_87"; eco "D85"; Opn "Gruenfeld Exchange";
1rbq1rk1/pp3p1p/3P2p1/b1p5/5P2/B1P5/P2QB1PP/1R3RK1 b - - bm Bf5; c0 "47"; id "kai_openings_nr_88"; eco "D85"; Opn "Gruenfeld Exchange";
rnbq1rk1/1pp1ppbp/p4np1/8/2QPP3/2N2N2/PP3PPP/R1B1KB1R w KQ - bm e5; c0 "48"; id "kai_openings_nr_89"; eco "D97"; Opn "Gruenfeld Russian System";
rnbq1rk1/1pp1ppbp/p4np1/4P3/2QP4/2N2N2/PP3PPP/R1B1KB1R b KQ - bm b5; c0 "48"; id "kai_openings_nr_90"; eco "D97"; Opn "Gruenfeld Russian System";
r2qk2r/pp1n1ppp/2p1pn2/5b2/PbBP4/2N1PN2/1P3PPP/R1BQ1RK1 w kq - bm Qe2; c0 "49"; id "kai_openings_nr_91"; eco "D18"; Opn "QGD Slav";
r2q1rk1/pp1n1ppp/2p1pnb1/8/Pb1PP3/2NB1N2/1P2QPPP/R1B2RK1 b - - bm Bh5; c0 "49"; id "kai_openings_nr_92"; eco "D18"; Opn "QGD Slav";
r2qkb1r/pb1n1p2/2p1pP2/1p4B1/2pP4/2N5/PP3PPP/R2QKB1R w KQkq - bm g3 h4; c0 "50"; id "kai_openings_nr_93"; eco "D44"; Opn "Semi-Slav Botvinnik System";
rnb1kb1r/pp3pp1/2p1pq1p/3p4/2PP4/2N1PN2/PP3PPP/R2QKB1R b KQkq - bm Nd7 g6; c0 "51"; id "kai_openings_nr_94"; eco "D43"; Opn "Semi-Slav Moscow";
r1b1kb1r/pp1n1pp1/2p1pq1p/3p4/2PP4/2N1PN2/PP3PPP/R2QKB1R w KQkq - bm Be2 Bd3; c0 "51"; id "kai_openings_nr_95"; eco "D43"; Opn "Semi-Slav Moscow";
r1b1kb1r/pp1n1pp1/2p1pq1p/3p4/2PP4/2N1PN2/PP2BPPP/R2QK2R b KQkq - bm g6 Bd6; c0 "51"; id "kai_openings_nr_96"; eco "D43"; Opn "Semi-Slav Moscow";
r1b1kb1r/pp1n1p2/2p1pqpp/3p4/2PP4/2N1PN2/PP2BPPP/R2Q1RK1 b kq - bm Bg7; c0 "51"; id "kai_openings_nr_97"; eco "D43"; Opn "Semi-Slav Moscow";
r1b1k2r/pp1n1pb1/2p1pqpp/3p4/2PPP3/2N2N2/PP2BPPP/R2Q1RK1 b kq - bm dxe4; c0 "51"; id "kai_openings_nr_98"; eco "D43"; Opn "Semi-Slav Moscow";
r1b1k2r/pp1n1pb1/2p1p1pp/8/2PPNq2/5N2/PPQ1BPPP/R4RK1 b kq - bm f5; c0 "51"; id "kai_openings_nr_99"; eco "D43"; Opn "Semi-Slav Moscow";
r1b1k2r/pp1n2b1/4p1pp/2p2p2/2PP1q2/5N2/PPQNBPPP/R4RK1 w kq - bm g3 Rfe1; c0 "51"; id "kai_openings_nr_100"; eco "D43"; Opn "Semi-Slav Moscow";
r3kb1r/1bqn1ppp/p3pn2/1ppP4/4P3/2NB1N2/PP3PPP/R1BQ1RK1 w kq - bm dxe6; c0 "52"; id "kai_openings_nr_101"; eco "D48"; Opn "Semi-Slav Meran";
r3kb1r/1bqn2pp/p3pn2/1pp5/4P3/2NB1N2/PP3PPP/R1BQ1RK1 w kq - bm Bc2 Ng5; c0 "52"; id "kai_openings_nr_102"; eco "D48"; Opn "Semi-Slav Meran";
r1bq1rk1/pp1n1ppp/2pbpn2/8/2BP4/2N1PN2/PPQ2PPP/R1B2RK1 b - - bm b5 a6; c0 "53"; id "kai_openings_nr_103"; eco "D46"; Opn "Semi-Slav";
r1bq1rk1/1p1n1ppp/p1pbpn2/8/2BP4/2N1PN2/PPQ2PPP/R1BR2K1 b - - bm b5; c0 "53"; id "kai_openings_nr_104"; eco "D46"; Opn "Semi-Slav";
r1bq1rk1/3n1pp1/p1pb1n1p/1p2p3/3PP3/2NB1N2/PPQ2PPP/R1BR2K1 w - - bm h3; c0 "53"; id "kai_openings_nr_105"; eco "D46"; Opn "Semi-Slav";
rnbq1rk1/ppp1bpp1/4pn1p/3p4/2PP3B/2N1PN2/PP3PPP/R2QKB1R b KQ - bm b6 Ne4; c0 "54"; id "kai_openings_nr_106"; eco "D56"; Opn "QGD Lasker";
rn1q1rk1/pbp2pp1/1p3b1p/3p4/3P4/2N1PN2/PP2BPPP/R2QK2R w KQ - bm b4 O-O; c0 "54"; id "kai_openings_nr_107"; eco "D58"; Opn "QGD Tartakower";
rn1q1rk1/pbp2pp1/1p3b1p/3p4/1P1P4/2N1PN2/P3BPPP/R2QK2R b KQ - bm c6 c5; c0 "54"; id "kai_openings_nr_108"; eco "D58"; Opn "QGD Tartakower";
rn1qr1k1/pb3pp1/1pp2b1p/3p4/1P1P4/1QN1PN2/P3BPPP/R4RK1 b - - bm a5; c0 "54"; id "kai_openings_nr_109"; eco "D58"; Opn "QGD Tartakower";
r1bq1rk1/pp1nbppp/2p1pn2/3p2B1/2PP4/2N1PN2/PP3PPP/2RQKB1R w K - bm Bd3 Qc2; c0 "55"; id "kai_openings_nr_110"; eco "D66"; Opn "QGD Orthodox Defence";
r1bq1rk1/pp1nbppp/2p1pn2/6B1/2BP4/2N1PN2/PP3PPP/2RQK2R b K - bm Nd5; c0 "55"; id "kai_openings_nr_111"; eco "D66"; Opn "QGD Orthodox Defence";
r1bqk2r/pppn1ppp/4pn2/3p2B1/1bPP4/2N2N2/PP2PPPP/R2QKB1R w KQkq - bm cxd5 e3; c0 "56"; id "kai_openings_nr_112"; eco "D38"; Opn "QGD Ragozin";
r1bqk2r/pp1n1ppp/5n2/2pp2B1/1b1P4/2NBPN2/PP3PPP/R2QK2R b KQkq - bm Qa5; c0 "56"; id "kai_openings_nr_113"; eco "D38"; Opn "QGD Ragozin";
r1bq1rk1/pp1nbppp/2p2n2/3p2B1/3P4/2NBP3/PPQ2PPP/R3K1NR w KQ - bm Nf3 Nge2; c0 "57"; id "kai_openings_nr_114"; eco "D36"; Opn "QGD Exchange";
r1bqrnk1/pp2bppp/2p2n2/3p2B1/3P4/2NBPN1P/PPQ2PP1/R4RK1 b - - bm Be6 g6; c0 "57"; id "kai_openings_nr_115"; eco "D36"; Opn "QGD Exchange";
rnbqkb1r/1p3ppp/p3pn2/2p5/2BP4/4PN2/PP3PPP/RNBQ1RK1 w kq - bm Bb3 a4 b3; c0 "58"; id "kai_openings_nr_116"; eco "D27"; Opn "QGA";
rnbqkb1r/1p3ppp/p3pn2/2p5/P1BP4/4PN2/1P3PPP/RNBQ1RK1 b kq - bm Nc6; c0 "58"; id "kai_openings_nr_117"; eco "D27"; Opn "QGA";
r1bqkb1r/ppp1pppp/1nn5/4P3/3P4/3B4/PP3PPP/RNBQK1NR w KQkq - bm Ne2; c0 "59"; id "kai_openings_nr_118"; eco "D20"; Opn "QGA";
rnbq1rk1/pp3pbp/3p1np1/2pP4/4P3/2N2N2/PP2BPPP/R1BQK2R w KQ - bm O-O Nd2; c0 "60"; id "kai_openings_nr_119"; eco "A72"; Opn "Modern Benoni";
rnbqr1k1/pp3pbp/3p1np1/2pP4/4P3/2N2N2/PP2BPPP/R1BQ1RK1 w - - bm Nd2; c0 "60"; id "kai_openings_nr_120"; eco "A73"; Opn "Modern Benoni";
r1bqk2r/pp1nbppp/2pp1n2/4p3/2PPP3/2N2N2/PP2BPPP/R1BQ1RK1 b kq - bm O-O; c0 "62"; id "kai_openings_nr_121"; eco "A55"; Opn "Old Indian";
rnbq1rk1/ppp1p1bp/3p1np1/5p2/2PP4/2N2NP1/PP2PPBP/R1BQ1RK1 b - - bm Qe8 c6; c0 "63"; id "kai_openings_nr_122"; eco "A87"; Opn "Leningrad Dutch";
rnb1qrk1/ppp1p1bp/3p1np1/5p2/2PP4/2N2NP1/PP2PPBP/R1BQ1RK1 w - - bm d5 Re1 Nd5; c0 "63"; id "kai_openings_nr_123"; eco "A87"; Opn "Leningrad Dutch";
r1b1qrk1/ppp1p1bp/n2p1np1/3P1p2/2P5/2N1BNP1/PP2PPBP/R2Q1RK1 b - - bm Bd7 Nc5; c0 "63"; id "kai_openings_nr_124"; eco "A87"; Opn "Leningrad Dutch";
rnbq1rk1/pp2b1pp/2p1pn2/3p1p2/2PP4/2N2NP1/PP2PPBP/R1BQ1RK1 w - - bm b3; c0 "64"; id "kai_openings_nr_125"; eco "A95"; Opn "Stonewall Dutch";
rnbqk1nr/ppp1b1pp/3p4/5pN1/2PPp3/2N5/PP2PPPP/R1BQKB1R w KQkq - bm Nh3; c0 "65"; id "kai_openings_nr_126"; eco "A21"; Opn "English 1...e5";
rn1qkbnr/ppp1pppp/3p4/8/3P2b1/5N2/PPP1PPPP/RNBQKB1R w KQkq - bm c4 e4; c0 "66"; id "kai_openings_nr_127"; eco "A41"; Opn "Queen's Pawn Tartakower System";
rnbqk1nr/ppp2pbp/3p2p1/4p3/2PPP3/2N5/PP3PPP/R1BQKBNR w KQkq - bm Nf3; c0 "67"; id "kai_openings_nr_128"; eco "A42"; Opn "Modern Defence Averbakh";
r1bqk2r/pppp1ppp/2n2n2/4p3/1bP5/2N1PN2/PP1P1PPP/R1BQKB1R w KQkq - bm Qc2 Nd5; c0 "69"; id "kai_openings_nr_129"; eco "A28"; Opn "English Four Knights";
r1bqk2r/pppp1ppp/2n2n2/4p3/1bP5/2N1PN2/PPQP1PPP/R1B1KB1R b KQkq - bm Bxc3; c0 "69"; id "kai_openings_nr_130"; eco "A28"; Opn "English Four Knights";
r1b1k2r/ppppqppp/2n2n2/4p3/2P5/P1Q1PN2/1P1P1PPP/R1B1KB1R b KQkq - bm d5 a5; c0 "69"; id "kai_openings_nr_131"; eco "A28"; Opn "English Four Knights";
r1bq1rk1/pppp1ppp/2n2n2/4p3/1bP5/2N2NP1/PP1PPPBP/R1BQ1RK1 b - - bm e4; c0 "70"; id "kai_openings_nr_132"; eco "A29"; Opn "English Four Knights";
r1bq1rk1/pppp1ppp/2n2n2/6N1/2P1p3/2b3P1/PP1PPPBP/R1BQ1RK1 w - - bm bxc3; c0 "70"; id "kai_openings_nr_133"; eco "A29"; Opn "English Four Knights";
r1bqr1k1/pppp1ppp/2n2n2/6N1/2P1p3/2P3P1/P2PPPBP/R1BQ1RK1 w - - bm f3; c0 "70"; id "kai_openings_nr_134"; eco "A29"; Opn "English Four Knights";
r1bqr1k1/pppp1ppp/2n2n2/6N1/2P5/2P1pPP1/P2PP1BP/R1BQ1RK1 w - - bm d3; c0 "70"; id "kai_openings_nr_135"; eco "A29"; Opn "English Four Knights";
r1bqr1k1/ppp2ppp/2n2n2/3p2N1/2P5/2PPpPP1/P3P1BP/R1BQ1RK1 w - - bm Qb3; c0 "70"; id "kai_openings_nr_136"; eco "A29"; Opn "English Four Knights";
r1bqr1k1/pp3ppp/2n2n2/3p2N1/5P2/Q1PPp1P1/P3P1BP/1RB2RK1 b - - bm Qc7; c0 "70"; id "kai_openings_nr_137"; eco "A29"; Opn "English Four Knights";
r1bqkb1r/pp1p1ppp/2n1pn2/8/2PN4/2N5/PP2PPPP/R1BQKB1R w KQkq - bm g3 a3; c0 "72"; id "kai_openings_nr_138"; eco "A33"; Opn "Symmmetrical English";
r1b1kb1r/pp1p1ppp/1qn1pn2/8/2PN4/2N3P1/PP2PP1P/R1BQKB1R w KQkq - bm Nb3 Ndb5; c0 "72"; id "kai_openings_nr_139"; eco "A33"; Opn "Symmmetrical English";
r1b1kb1r/pp1p1ppp/1qn1pn2/8/2P5/1NN3P1/PP2PP1P/R1BQKB1R b KQkq - bm Ne5; c0 "72"; id "kai_openings_nr_140"; eco "A33"; Opn "Symmmetrical English";
r1bqkb1r/pppp2pp/2n2n2/4pp2/2P5/2N3P1/PP1PPPBP/R1BQK1NR w KQkq - bm e3 d3; c0 "73"; id "kai_openings_nr_141"; eco "A25"; Opn "English Reverse Dragon";
rnbqkb1r/ppp1pppp/5n2/3p4/8/1P2P3/PBPP1PPP/RN1QKBNR b KQkq - bm c5 c6 g6; c0 "76"; id "kai_openings_nr_142"; eco "A01"; Opn "Nimzowitsch-Larsen";
rnbqkb1r/pp2pppp/5n2/2pp4/8/1P2P3/PBPP1PPP/RN1QKBNR w KQkq - bm Nf3; c0 "76"; id "kai_openings_nr_143"; eco "A01"; Opn "Nimzowitsch-Larsen";
rnbqkb1r/pp3ppp/4pn2/2pp4/8/1P2PN2/PBPP1PPP/RN1QKB1R w KQkq - bm d4 c4; c0 "76"; id "kai_openings_nr_144"; eco "A01"; Opn "Nimzowitsch-Larsen";
rnbq1rk1/ppp1bppp/3p1n2/8/3NPB2/2N5/PPP2PPP/R2QKB1R w KQ - bm Qd2; c0 "77"; id "kai_openings_nr_145"; eco "C41"; Opn "Philidor Defence";
r1bq1rk1/1pp2ppp/p1np1n2/2b1p3/4P3/1BPP1N2/PP3PPP/RNBQ1RK1 w - - bm Nbd2; c0 "78"; id "kai_openings_nr_146"; eco "C54"; Opn "Giuoco Piano";
r1bq1rk1/1pp2ppp/p1np1n2/2b1p3/4P3/1BPP1N2/PP1N1PPP/R1BQ1RK1 b - - bm Ba7 Re8; c0 "78"; id "kai_openings_nr_147"; eco "C54"; Opn "Giuoco Piano";
r1bq1rk1/bpp2ppp/p1np1n2/4p3/4P3/1BPP1N2/PP1N1PPP/R1BQ1RK1 w - - bm h3; c0 "78"; id "kai_openings_nr_148"; eco "C54"; Opn "Giuoco Piano";
r1bq1rk1/bpp2pp1/p1np1n1p/4p3/4P3/1BPP1N1P/PP1N1PP1/R1BQ1RK1 w - - bm Re1 a4; c0 "78"; id "kai_openings_nr_149"; eco "C54"; Opn "Giuoco Piano";
r1bq1rk1/bpp2pp1/p1np1n1p/4p3/4P3/1BPP1N1P/PP1N1PP1/R1BQR1K1 b - - bm Be6 Re8; c0 "78"; id "kai_openings_nr_150"; eco "C54"; Opn "Giuoco Piano";
r2q1rk1/bpp2pp1/p1npbn1p/4p3/4P3/1BPP1N1P/PP3PP1/R1BQRNK1 b - - bm Re8; c0 "78"; id "kai_openings_nr_151"; eco "C54"; Opn "Giuoco Piano";
r2qr1k1/b1p2pp1/p1n1bn1p/1p1pp3/4P3/2PP1N1P/PPB1QPP1/R1B1RNK1 w - - bm Bd2; c0 "78"; id "kai_openings_nr_152"; eco "C54"; Opn "Giuoco Piano";
r3r1k1/b1pq1pp1/p1n1bn1p/1p1pp3/4P3/2PP1N1P/PPBBQPP1/R3RNK1 w - - bm Ng3 a4; c0 "78"; id "kai_openings_nr_153"; eco "C54"; Opn "Giuoco Piano";
rn2kb1r/pp2pppp/2p2n2/q4b2/2BP4/2N2N2/PPP2PPP/R1BQK2R w KQkq - bm Bd2; c0 "79"; id "kai_openings_nr_154"; eco "B01"; Opn "Scandinavian";
rn2kb1r/pp3ppp/2p1pn2/q4b2/2BP4/2N2N2/PPPB1PPP/R2QK2R w KQkq - bm Nd5 Qe2; c0 "79"; id "kai_openings_nr_155"; eco "B01"; Opn "Scandinavian";
rn1q1rk1/2p1bppp/p3pn2/1p6/3Pb3/5NP1/PP1BPPBP/RNQ2RK1 b - - bm Bb7 Nbd7; c0 "90"; id "kai_openings_nr_156"; eco "E05"; Opn "Open Catalan";
r1bqkb1r/1pp2ppp/p1n1pn2/8/2pP4/4PNP1/PP3PBP/RNBQ1RK1 b kq - bm Bd7; c0 "92"; id "kai_openings_nr_157"; eco "E04"; Opn "Open Catalan";
r2qkb1r/1ppb1ppp/p1n1pn2/8/2pP4/4PNP1/PP2QPBP/RNB2RK1 b kq - bm b5; c0 "92"; id "kai_openings_nr_158"; eco "E04"; Opn "Open Catalan";
r1bq1rk1/pppp1ppp/2n2n2/1Bb1p3/4P3/2PP1N2/PP3PPP/RNBQK2R w KQ - bm O-O; c0 "96"; id "kai_openings_nr_159"; eco "C65"; Opn "Ruy Lopez Berlin Defence";
r1bq1rk1/ppp2ppp/2np1n2/1Bb1p3/4P3/2PP1N2/PP3PPP/RNBQ1RK1 w - - bm Nbd2 h3; c0 "96"; id "kai_openings_nr_160"; eco "C65"; Opn "Ruy Lopez Berlin Defence";
rnbqkb1r/pp3ppp/3ppn2/8/3NP3/2N5/PPP1BPPP/R1BQK2R b KQkq - bm a6 Nc6; c0 "100"; id "kai_openings_nr_161"; eco "B83"; Opn "Sicilian Scheveningen";
rnbqk2r/1p2bppp/p2ppn2/8/3NP3/2N5/PPP1BPPP/R1BQ1RK1 w kq - bm f4; c0 "100"; id "kai_openings_nr_162"; eco "B84"; Opn "Sicilian Scheveningen";
r1bqk2r/1pppbppp/p1n2n2/4p3/B3P3/5N2/PPPP1PPP/RNBQ1RK1 w kq - bm Re1 d3; c0 "1"; id "kai_openings_nr_163"; eco "C84"; Opn "Closed Ruy Lopez";
r1bqk2r/1pp1bppp/p1p2n2/4p3/4P3/3P1N2/PPP2PPP/RNBQ1RK1 b kq - bm Nd7; c0 "1"; id "kai_openings_nr_164"; eco "C85"; Opn "Closed Ruy Lopez Deferred Exchange";
r4rk1/1ppqnpp1/3p1n1p/2b1p3/p3P3/2PP1N1P/PP3PP1/R1BQRNK1 w - - bm Ng3; c0 "3"; id "kai_openings_nr_165"; eco "C54"; Opn "Giuoco Piano";
r4rk1/1ppqnpp1/1b1p1n1p/4p3/p3P3/2PP1NNP/PP3PP1/R1BQR1K1 w - - bm d4; c0 "3"; id "kai_openings_nr_166"; eco "C54"; Opn "Giuoco Piano";
rnbq1rk1/pp2nppp/4p3/2ppP3/3P2Q1/P1P5/2P2PPP/R1B1KBNR w KQ - bm Bd3; c0 "5"; id "kai_openings_nr_167"; eco "C18"; Opn "French Winawer";
rnbq1rk1/pp2nppp/4p3/2ppP3/3P2Q1/P1PB4/2P2PPP/R1B1K1NR b KQ - bm Nbc6; c0 "5"; id "kai_openings_nr_168"; eco "C18"; Opn "French Winawer";
r1b2rk1/ppq2ppp/2n1p1n1/2ppP2Q/3P4/P1PB1N2/2P2PPP/R1B1K2R w KQ - bm Be3; c0 "5"; id "kai_openings_nr_169"; eco "C18"; Opn "French Winawer";
r1bqk2r/pp1n1ppp/2n1p3/2bpP3/3N1P2/2N1B3/PPP3PP/R2QKB1R w KQkq - bm Qd2; c0 "6"; id "kai_openings_nr_170"; eco "C11"; Opn "French Steinitz";
r1bq1rk1/pp1n1ppp/2n1p3/2bpP3/3N1P2/2N1B3/PPPQ2PP/2KR1B1R b - - bm a6; c0 "6"; id "kai_openings_nr_171"; eco "C11"; Opn "French Steinitz";
r1bq1rk1/1p1n1ppp/p1n1p3/2bpP3/3N1P2/2N1B3/PPPQ2PP/2KR1B1R w - - bm Qf2 h4 Nb3; c0 "6"; id "kai_openings_nr_172"; eco "C11"; Opn "French Steinitz";
r4rk1/1b1nqppp/p3p3/1p1pP3/3Q1P2/P1N5/1PP1B1PP/1K1R3R b - - bm Rfb8 Bc6; c0 "6"; id "kai_openings_nr_173"; eco "C11"; Opn "French Steinitz";
r3kb1r/ppqnnp2/2p1p2p/3pPbp1/3P4/2P2N2/PP2BPPP/R1BQRNK1 b kq - bm Bh7 O-O-O; c0 "7"; id "kai_openings_nr_174"; eco "B12"; Opn "Caro-Kann Advance";
r1b2rk1/p1qnppbp/1ppp1np1/8/P2PP3/2N1BN1P/1PP1BPP1/R2Q1RK1 w - - bm Qd2; c0 "9"; id "kai_openings_nr_175"; eco "B08"; Opn "Pirc Classical";
r2q1rk1/3nbppp/p2pbn2/1p2p3/4P1P1/1NN1BP2/PPPQ3P/2KR1B1R w - - bm g5; c0 "11"; id "kai_openings_nr_176"; eco "B90"; Opn "Sicilian Najdorf";
r2q1rk1/3nbppp/p2p4/1p1Pp1Pn/8/1N2BP2/PPPQ3P/2KR1B1R b - - bm f6; c0 "11"; id "kai_openings_nr_177"; eco "B90"; Opn "Sicilian Najdorf";
r3qrk1/3n2pp/p2p1b2/Np1Pp2n/1Q6/4BP2/PPP4P/2KR1B1R b - - bm Be7; c0 "11"; id "kai_openings_nr_178"; eco "B90"; Opn "Sicilian Najdorf";
r3qrk1/3nb1pp/p2p4/Np1Pp2n/1Q6/4BP2/PPP4P/2KR1B1R w - - bm Nc6; c0 "11"; id "kai_openings_nr_179"; eco "B90"; Opn "Sicilian Najdorf";
r1bqk2r/4bppp/p1np1n2/1p1Np1B1/4P3/N7/PPP2PPP/R2QKB1R w KQkq - bm Bxf6; c0 "12"; id "kai_openings_nr_180"; eco "B33"; Opn "Sicilian Sveshnikov";
r1bqk2r/5ppp/p1np1b2/1p1Np3/4P3/N1P5/PP3PPP/R2QKB1R b KQkq - bm O-O Ne7; c0 "12"; id "kai_openings_nr_181"; eco "B33"; Opn "Sicilian Sveshnikov";
r1bq1rk1/5ppp/p1np4/1p1Np1b1/4P3/2P5/PPN2PPP/R2QKB1R w KQ - bm a4; c0 "12"; id "kai_openings_nr_182"; eco "B33"; Opn "Sicilian Sveshnikov";
r1bq1rk1/5ppp/p1np4/3Np1b1/p3P3/2P5/1PN2PPP/R2QKB1R w KQ - bm Rxa4; c0 "12"; id "kai_openings_nr_183"; eco "B33"; Opn "Sicilian Sveshnikov";
r1bq1rk1/5ppp/2np4/p2Np1b1/R3P3/2P5/1PN2PPP/3QKB1R w K - bm Bc4; c0 "12"; id "kai_openings_nr_184"; eco "B33"; Opn "Sicilian Sveshnikov";
1rbq1r1k/5p1p/2np2p1/p2Np1b1/R1B1P3/1PP1N3/5PPP/3QK2R w K - bm h4; c0 "12"; id "kai_openings_nr_185"; eco "B33"; Opn "Sicilian Sveshnikov";
1rbq1r1k/5p1p/2np2p1/p2Np3/R1B1P2b/1PP1N3/5PP1/3QK2R w K - bm g3; c0 12; id "kai_openings_nr_186"; eco "B33"; Opn "Sicilian Sveshnikov";
2q1k2r/3pbppp/pr2pn2/2p1B3/4P3/3Q4/PPP1BPPP/R4RK1 b k - bm d6; c0 "13"; id "kai_openings_nr_187"; eco "B49"; Opn "Sicilian Taimanov";
2q2rk1/4bppp/pr1ppn2/2p5/4P3/1PBQ4/P1P1BPPP/R4RK1 b - - bm d5; c0 "13"; id "kai_openings_nr_188"; eco "B49"; Opn "Sicilian Taimanov";
2q2rk1/4bppp/pr2pn2/2pp4/4P3/1PBQ4/P1P1BPPP/R4RK1 w - - bm exd5; c0 "13"; id "kai_openings_nr_189"; eco "B49"; Opn "Sicilian Taimanov";
2q2rk1/4bppp/pr2p3/2pnB3/8/1P1Q4/P1P1BPPP/R4RK1 b - - bm Bf6; c0 "13"; id "kai_openings_nr_190"; eco "B49"; Opn "Sicilian Taimanov";
r4rk1/p2q1ppp/1np1pb1B/8/3P2Q1/2N5/PP3PPP/R2R2K1 b - - bm Rfd8 Qe7; c0 "15"; id "kai_openings_nr_191"; eco "B22"; Opn "Sicilian Alapin";
r2qkb1r/1p1bpppp/p1np1n2/2p5/4P3/2P2N2/PP1P1PPP/RNBQRBK1 b kq - bm Bg4; c0 "16"; id "kai_openings_nr_192"; eco "B51"; Opn "Sicilian Moscow Var";
2rq1rk1/pp1bppbp/2np1np1/8/2BNP3/2N1BP2/PPPQ2PP/2KR3R w - - bm Bb3; c0 "17"; id "kai_openings_nr_193"; eco "B78"; Opn "Sicilian Dragon";
r1b2rk1/ppq2ppp/2n2n2/2pp4/3P4/P1PBPN2/5PPP/R1BQ1RK1 w - - bm a4; c0 "19"; id "kai_openings_nr_194"; eco "E58"; Opn "Nimzo-Indian Rubinstein";
r1b1r1k1/ppq2ppp/2n2n2/2pp4/P2P4/2PBPN2/5PPP/R1BQ1RK1 w - - bm Ba3; c0 "19"; id "kai_openings_nr_195"; eco "E58"; Opn "Nimzo-Indian Rubinstein";
r1b3k1/ppq2ppp/2n5/3p4/P1pPr3/B1P1P3/3N1PPP/R2Q1RK1 b - - bm Re8; c0 "19"; id "kai_openings_nr_196"; eco "E58"; Opn "Nimzo-Indian Rubinstein";
rn1qk2r/p1ppbppp/bp2pn2/8/2PP4/1P3NP1/P2BPPBP/RN1QK2R b KQkq - bm c6; c0 "20"; id "kai_openings_nr_197"; eco "E15"; Opn "Queen's Indian 4.g3";
rn1qk2r/p2pbppp/bpp1pn2/8/2PP4/1P3NP1/P2BPPBP/RN1QK2R w KQkq - bm Bc3 O-O; c0 "20"; id "kai_openings_nr_198"; eco "E15"; Opn "Queen's Indian 4.g3";
rn1qk2r/p3bppp/bpp1pn2/3p4/2PP4/1PB2NP1/P3PPBP/RN1QK2R w KQkq - bm Ne5 Nbd2; c0 "20"; id "kai_openings_nr_199"; eco "E15"; Opn "Queen's Indian 4.g3";
rn1qk2r/p3bppp/bpp1pn2/3pN3/2PP4/1PB3P1/P3PPBP/RN1QK2R b KQkq - bm Nfd7; c0 "20"; id "kai_openings_nr_200"; eco "E15"; Opn "Queen's Indian 4.g3";
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Opening performance of engines

Post by tpoppins »

In another run Komodo 10.1 on 4 cores @1 min/pos solved 144 entries. Some of these were solved in under 20 seconds, so statistical flukes (like blunders, according to Tartakower) are there waiting to happen.

The remaining 56 entries were Komodo'd with 16 cores, 8 GB hash @5 min/pos. That cracked another 18, including #150:

Code: Select all

  2  -  23.96s/25
  9  -  30.55s/26
 12  -  
 13  -  
 15  -  
 22  -  27.55s/26
 26  -  
 27  -  
 30  -  
 34  -  50.05s/25
 36  -  
 37  -  108.47s/29
 41  -  
 42  -  
 47  -  78.02s/26
 52  -  19.33s/26
 56  -  
 64  -  
 68  -  
 72  -  
 76  -  
 77  -  27.96s/26
 78  -  
 83  -  
 84  -  15.04s/25
 89  -  
 90  -  2.25s/22
 96  -  
111  -  
115  -  
119  -  141.99s/31
120  -  0.02s/15
125  -  
128  -  
129  -  11.36s/24
132  -  
134  -  
136  -  
142  -  
145  -  
150  -  172s/29
151  -  
152  -  54.88s/26
154  -  
158  -  
164  -  
166  -  125.27s/28
167  -  
168  -  
169  -  
174  -  
178  -  
179  -  
189  -  40.56s/28
190  -  
200  -  242.74s/32
Having gone through the EPD position-by-position I'm confident that most of the 38 survivors are not too hard for the engines, they just need the BMs adjusted and/or reasonable alternatives added. To make well-informed decisions towards that goal databases need to be consulted extensively, which will take some time, and I'm afraid I have little of it until next week (ha, I start to sound like Lyudmil, don't I ? ;).

Some musings on the choices of the entries for this suite. Too many Semi-Slavs, IMO, at the expense of other openings. In particular one specific line of the Moscow Gambit (D43) is way over-represented, with what seems like almost a quarter of a whole game making it into suite (17 records (e.g. ##38-41, 43-48 and more); while positional openings like the London, Torre, Sicilian Kan, KIA and the Reti are completely absent. Well, this is still in alpha stage, just musing ...

I also ran into some 6-8 positions that are not to be found in Megabase 2016 (a couple of them from the above-mentioned D43 line). That didn't prevent me from classifying them (thanks to their similar neighbors), but really these and a few other entries are gone too far into middlegame to belong in an opening suite. And the absence of statistics from human games will not make evaluating them easier.

So yes, there's still a lot of work to be done, and it promises to be interesting. I'd say database stats should be done first and the deep, hard pounding (with engines :) that Dann is so fond of should remain a last resort. I confess I'm naturally mistrustful of engines' opening analysis done statically (i.e. no forward sliding and backsolving), no matter how deep it is. I've run into situations where SF (other engines are just as guilty of this, too) gives the 0.00 eval to a position that is only two-three plies away from a forced mate in eight or 10 too often for my taste.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Opening performance of engines

Post by Laskos »

tpoppins wrote:In another run Komodo 10.1 on 4 cores @1 min/pos solved 144 entries. Some of these were solved in under 20 seconds, so statistical flukes (like blunders, according to Tartakower) are there waiting to happen.

The remaining 56 entries were Komodo'd with 16 cores, 8 GB hash @5 min/pos. That cracked another 18, including #150:

Code: Select all

  2  -  23.96s/25
  9  -  30.55s/26
 12  -  
 13  -  
 15  -  
 22  -  27.55s/26
 26  -  
 27  -  
 30  -  
 34  -  50.05s/25
 36  -  
 37  -  108.47s/29
 41  -  
 42  -  
 47  -  78.02s/26
 52  -  19.33s/26
 56  -  
 64  -  
 68  -  
 72  -  
 76  -  
 77  -  27.96s/26
 78  -  
 83  -  
 84  -  15.04s/25
 89  -  
 90  -  2.25s/22
 96  -  
111  -  
115  -  
119  -  141.99s/31
120  -  0.02s/15
125  -  
128  -  
129  -  11.36s/24
132  -  
134  -  
136  -  
142  -  
145  -  
150  -  172s/29
151  -  
152  -  54.88s/26
154  -  
158  -  
164  -  
166  -  125.27s/28
167  -  
168  -  
169  -  
174  -  
178  -  
179  -  
189  -  40.56s/28
190  -  
200  -  242.74s/32
Having gone through the EPD position-by-position I'm confident that most of the 38 survivors are not too hard for the engines, they just need the BMs adjusted and/or reasonable alternatives added. To make well-informed decisions towards that goal databases need to be consulted extensively, which will take some time, and I'm afraid I have little of it until next week (ha, I start to sound like Lyudmil, don't I ? ;).

Some musings on the choices of the entries for this suite. Too many Semi-Slavs, IMO, at the expense of other openings. In particular one specific line of the Moscow Gambit (D43) is way over-represented, with what seems like almost a quarter of a whole game making it into suite (17 records (e.g. ##38-41, 43-48 and more); while positional openings like the London, Torre, Sicilian Kan, KIA and the Reti are completely absent. Well, this is still in alpha stage, just musing ...

I also ran into some 6-8 positions that are not to be found in Megabase 2016 (a couple of them from the above-mentioned D43 line). That didn't prevent me from classifying them (thanks to their similar neighbors), but really these and a few other entries are gone too far into middlegame to belong in an opening suite. And the absence of statistics from human games will not make evaluating them easier.

So yes, there's still a lot of work to be done, and it promises to be interesting. I'd say database stats should be done first and the deep, hard pounding (with engines :) that Dann is so fond of should remain a last resort. I confess I'm naturally mistrustful of engines' opening analysis done statically (i.e. no forward sliding and backsolving), no matter how deep it is. I've run into situations where SF (other engines are just as guilty of this, too) gives the 0.00 eval to a position that is only two-three plies away from a forced mate in eight or 10 too often for my taste.
Thank you very much for your time, I think I missed these posts (was a bit busy). Very important contribution to the suite. I think I will take this a s a continuation. I did my own work on it, but it is of lower quality than yours. Your knowledge of openings also seems better. I agree with you that hard pounding with engines should be the last resort. I am trying to streamline now the work with databases, sorry for being slow. For now, for custom beta suite which I will not post (again, your work is of higher quality), I am posting the result of tests in polyglot. I was dissatisfied with the lack of flexibility in Shredder GUI EPD testing tool:

Code: Select all

[Search parameters: MaxDepth=99   MaxTime=20.0   DepthDelta=3   MinDepth=7   MinTime=1.0]

Engine                         : Correct  TotalPos  Corr%  AveT(s)  MaxT(s)  TestFile  
   
Komodo 10.2 64-bit             :     139       200   69.5      3.3     20.0  Openings200beta4.epd    
Stockfish 8 64 BMI2            :     132       200   66.0      2.7     20.0  Openings200beta4.epd
Shredder Classic 5 (13) x64    :     119       200   59.5      4.4     20.0  openings200beta4.epd
Deep Shredder 12 x64           :     116       200   58.0      1.7     20.0  Openings200beta4.epd  
Andscacs 0.88n                 :     115       200   57.5      3.4     20.0  Openings200beta4.epd   
Houdini 4 Pro x64              :     110       200   55.0      2.4     20.0  Openings200beta4.epd    
Nirvanachess 2.3               :     108       200   54.0      2.6     20.0  Openings200beta4.epd
Zappa Mexico II                :      99       200   49.5      2.8     20.0  Openings200beta4.epd
Gull 3 x64                     :      97       200   48.5      0.0     20.0  Openings200beta4.epd 
Fire 4 x64                     :      97       200   48.5      3.0     20.0  Openings200beta4.epd  
Texel 1.06 64-bit              :      96       200   48.0      2.5     20.0  Openings200beta4.epd 
Fritz 15                       :      89       200   44.5      2.2     20.0  Openings200beta4.epd 
Fruit 2.1                      :      86       200   43.0      2.1     20.0  Openings200beta4.epd   
Giraffe w64                    :      68       200   34.0      2.9     20.0  Openings200beta4.epd        
Sungorus 1.4                   :      66       200   33.0      3.6     20.0  Openings200beta4.epd    
Sjaak II 1.3.1                 :      65       200   32.5      5.9     20.0  Openings200beta4.epd
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Opening performance of engines

Post by Laskos »

Laskos wrote:]Thank you very much for your time, I think I missed these posts (was a bit busy). Very important contribution to the suite. I think I will take this a s a continuation. I did my own work on it, but it is of lower quality than yours. Your knowledge of openings also seems better. I agree with you that hard pounding with engines should be the last resort. I am trying to streamline now the work with databases, sorry for being slow. For now, for custom beta suite which I will not post (again, your work is of higher quality), I am posting the result of tests in polyglot. I was dissatisfied with the lack of flexibility in Shredder GUI EPD testing tool:

Code: Select all

[Search parameters: MaxDepth=99   MaxTime=20.0   DepthDelta=3   MinDepth=7   MinTime=1.0]

Engine                         : Correct  TotalPos  Corr%  AveT(s)  MaxT(s)  TestFile  
   
Komodo 10.2 64-bit             :     139       200   69.5      3.3     20.0  Openings200beta4.epd    
Stockfish 8 64 BMI2            :     132       200   66.0      2.7     20.0  Openings200beta4.epd
Shredder Classic 5 (13) x64    :     119       200   59.5      4.4     20.0  openings200beta4.epd
Deep Shredder 12 x64           :     116       200   58.0      1.7     20.0  Openings200beta4.epd  
Andscacs 0.88n                 :     115       200   57.5      3.4     20.0  Openings200beta4.epd   
Houdini 4 Pro x64              :     110       200   55.0      2.4     20.0  Openings200beta4.epd    
Nirvanachess 2.3               :     108       200   54.0      2.6     20.0  Openings200beta4.epd
Zappa Mexico II                :      99       200   49.5      2.8     20.0  Openings200beta4.epd
Gull 3 x64                     :      97       200   48.5      0.0     20.0  Openings200beta4.epd 
Fire 4 x64                     :      97       200   48.5      3.0     20.0  Openings200beta4.epd  
Texel 1.06 64-bit              :      96       200   48.0      2.5     20.0  Openings200beta4.epd 
Fritz 15                       :      89       200   44.5      2.2     20.0  Openings200beta4.epd 
Fruit 2.1                      :      86       200   43.0      2.1     20.0  Openings200beta4.epd   
Giraffe w64                    :      68       200   34.0      2.9     20.0  Openings200beta4.epd        
Sungorus 1.4                   :      66       200   33.0      3.6     20.0  Openings200beta4.epd    
Sjaak II 1.3.1                 :      65       200   32.5      5.9     20.0  Openings200beta4.epd
I was still at engine pounding your 38 unsolved by Komodo positions. Stockfish 8 solved a further 12 of those at 5 minutes per position, 4 cores. The remaining 26 were checked by databases. I used: CB MegaBase 2016, CB Live Book, online Chess Tempo database and Noomen.ctg opening book. Of these 26, 14 were either kept unchanged or kept with some modification (addition) to best move. 12 positions were discarded.

12 discarded positions:

Code: Select all

r3kb1r/pp1q1ppp/1nn1p3/1B6/3P4/2N5/PP3PPP/R1BQ1RK1 b kq - bm Be7; c0 "15"; id "kai_openings_nr_30"; eco "B22"; Opn "Alapin Sicilian";
rnbqkb1r/pp2pppp/2p2n2/3p4/2PP4/2N2N2/PP2PPPP/R1BQKB1R b KQkq - bm e6; c0 "23"; id "kai_openings_nr_42"; eco "D15"; Opn "QGD Slav";
rnbq1rk1/ppp1bppp/5n2/3p4/3P4/P1N1P3/1P2NPPP/R1BQKB1R w KQ - bm b4; c0 "42"; id "kai_openings_nr_78"; eco "E46"; Opn "Nimzo-Indian Rubinstein";
rnbq1rk1/1pp1ppbp/p4np1/8/2QPP3/2N2N2/PP3PPP/R1B1KB1R w KQ - bm e5; c0 "48"; id "kai_openings_nr_89"; eco "D97"; Opn "Gruenfeld Russian System";
r1bq1rk1/pp1nbppp/2p1pn2/6B1/2BP4/2N1PN2/PP3PPP/2RQK2R b K - bm Nd5; c0 "55"; id "kai_openings_nr_111"; eco "D66"; Opn "QGD Orthodox Defence";
rnbqkb1r/ppp1pppp/5n2/3p4/8/1P2P3/PBPP1PPP/RN1QKBNR b KQkq - bm c5 c6 g6; c0 "76"; id "kai_openings_nr_142"; eco "A01"; Opn "Nimzowitsch-Larsen";
rnbq1rk1/ppp1bppp/3p1n2/8/3NPB2/2N5/PPP2PPP/R2QKB1R w KQ - bm Qd2; c0 "77"; id "kai_openings_nr_145"; eco "C41"; Opn "Philidor Defence";
r2q1rk1/bpp2pp1/p1npbn1p/4p3/4P3/1BPP1N1P/PP3PP1/R1BQRNK1 b - - bm Re8; c0 "78"; id "kai_openings_nr_151"; eco "C54"; Opn "Giuoco Piano";
r3kb1r/ppqnnp2/2p1p2p/3pPbp1/3P4/2P2N2/PP2BPPP/R1BQRNK1 b kq - bm Bh7 O-O-O; c0 "7"; id "kai_openings_nr_174"; eco "B12"; Opn "Caro-Kann Advance";
r3qrk1/3n2pp/p2p1b2/Np1Pp2n/1Q6/4BP2/PPP4P/2KR1B1R b - - bm Be7; c0 "11"; id "kai_openings_nr_178"; eco "B90"; Opn "Sicilian Najdorf";
r3qrk1/3nb1pp/p2p4/Np1Pp2n/1Q6/4BP2/PPP4P/2KR1B1R w - - bm Nc6; c0 "11"; id "kai_openings_nr_179"; eco "B90"; Opn "Sicilian Najdorf";
2q2rk1/4bppp/pr2p3/2pnB3/8/1P1Q4/P1P1BPPP/R4RK1 b - - bm Bf6; c0 "13"; id "kai_openings_nr_190"; eco "B49"; Opn "Sicilian Taimanov";
14 kept intact or changed in bm positions:

Code: Select all

r1bqkb1r/1p1n1ppp/p1n1p3/2ppP3/3P1P2/2N1BN2/PPP3PP/R2QKB1R w KQkq - bm Qd2 e2; c0 "6"; id "kai_openings_nr_12"; eco "C11"; Opn "French Classical";
rnbqkbnr/pp2pppp/2p5/3pP3/3P4/8/PPP2PPP/RNBQKBNR b KQkq - bm Bf5 c5; c0 "7"; id "kai_openings_nr_13"; eco "B12"; Opn "Caro-Kann Advance";
2q1k2r/3pbppp/pr2pn2/2p1B3/4P3/8/PPP1BPPP/R2Q1RK1 w k - bm Qd3 b3; c0 "13"; id "kai_openings_nr_26"; eco "B49"; Opn "Sicilian Taimanov";
r1b1kb1r/pp1n1ppp/1qn1p3/3pP3/3P4/3B1N2/PP2NPPP/R1BQK2R b KQkq - bm f6; c0 "35"; id "kai_openings_nr_64"; eco "C06"; Opn "French Tarrasch";
r2qkbnr/pp1nppp1/2p3bp/8/3P3P/5NN1/PPP2PP1/R1BQKB1R w KQkq - bm h5; c0 "38"; id "kai_openings_nr_68"; eco "B19"; Opn "Classical Caro-Kann";
rnbqk1nr/ppp2pbp/3p2p1/4p3/2PPP3/2N5/PP3PPP/R1BQKBNR w KQkq - bm Nf3 Nge2; c0 "67"; id "kai_openings_nr_128"; eco "A42"; Opn "Modern Defence Averbakh";
r1bq1rk1/pppp1ppp/2n2n2/4p3/1bP5/2N2NP1/PP1PPPBP/R1BQ1RK1 b - - bm e4 h6; c0 "70"; id "kai_openings_nr_132"; eco "A29"; Opn "English Four Knights";
r1bqr1k1/pppp1ppp/2n2n2/6N1/2P1p3/2P3P1/P2PPPBP/R1BQ1RK1 w - - bm f3; c0 "70"; id "kai_openings_nr_134"; eco "A29"; Opn "English Four Knights";
r1bqr1k1/ppp2ppp/2n2n2/3p2N1/2P5/2PPpPP1/P3P1BP/R1BQ1RK1 w - - bm Qb3; c0 "70"; id "kai_openings_nr_136"; eco "A29"; Opn "English Four Knights";
rn2kb1r/pp2pppp/2p2n2/q4b2/2BP4/2N2N2/PPP2PPP/R1BQK2R w KQkq - bm Bd2 Qe2; c0 "79"; id "kai_openings_nr_154"; eco "B01"; Opn "Scandinavian";
r2qkb1r/1ppb1ppp/p1n1pn2/8/2pP4/4PNP1/PP2QPBP/RNB2RK1 b kq - bm b5; c0 "92"; id "kai_openings_nr_158"; eco "E04"; Opn "Open Catalan";
r1bqk2r/1pp1bppp/p1p2n2/4p3/4P3/3P1N2/PPP2PPP/RNBQ1RK1 b kq - bm Nd7 Bd6; c0 "1"; id "kai_openings_nr_164"; eco "C85"; Opn "Closed Ruy Lopez Deferred Exchange";
rnbq1rk1/pp2nppp/4p3/2ppP3/3P2Q1/P1PB4/2P2PPP/R1B1K1NR b KQ - bm Nbc6 f5 Qa5; c0 "5"; id "kai_openings_nr_168"; eco "C18"; Opn "French Winawer";
r1b2rk1/ppq2ppp/2n1p1n1/2ppP2Q/3P4/P1PB1N2/2P2PPP/R1B1K2R w KQ - bm Be3 h4; c0 "5"; id "kai_openings_nr_169"; eco "C18"; Opn "French Winawer";
Of those 14 kept, Komodo and Stockfish solve 8, 6 are left unsolved (but checked with databases).

The 12 removed positions from your ECO classified EPD file are:
30, 42,78, 89, 111, 142, 145, 151, 174, 178, 179, 190.

Maybe you can come with new 12 positions to replace them? Now I will test a bit the 200-12=188 positions suite.
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Opening performance of engines

Post by tpoppins »

You work fast, Kai.

I'm sure I can dig up some good positions given time. Can think of only one at the moment:

2rqkb1r/pp2pppp/2n5/1B6/4P1b1/2Q2N2/PP3PPP/R1B1K2R w KQk - bm Be3; c0 "Portisch-Huebner, Montreal (3) 1979"; id "kai_openings_nr_30?"; eco "A34"; Opn "Symmetrical English";

[d]2rqkb1r/pp2pppp/2n5/1B6/4P1b1/2Q2N2/PP3PPP/R1B1K2R w KQk - 0 10

It was a fairly popular line in the 70s until Portisch put it out of business in this game.

[pgn][Event "Montreal"]
[Site "Montreal"]
[Date "1979.04.13"]
[Round "3"]
[White "Portisch, Lajos"]
[Black "Huebner, Robert"]
[Result "1-0"]
[ECO "A34"]
[WhiteElo "2640"]
[BlackElo "2595"]
[PlyCount "77"]
[EventDate "1979.04.13"]
[EventType "tourn"]
[EventRounds "18"]
[EventCountry "CAN"]
[EventCategory "15"]
[SourceTitle "MCL"]
[Source "ChessBase"]
[SourceDate "1999.07.01"]

1. c4 Nf6 2. Nc3 c5 3. Nf3 d5 4. cxd5 Nxd5 5. d4 cxd4 6. Qxd4 Nxc3 7. Qxc3 Nc6
8. e4 Bg4 9. Bb5 Rc8 10. Be3 Bxf3 11. gxf3 a6 12. Rd1 Qc7 13. Bxc6+ Qxc6 14.
Qd4 f6 15. O-O e5 16. Qa7 Be7 17. Rc1 Qd7 18. Rxc8+ Qxc8 19. Rc1 Qd7 20. Qa8+
Bd8 21. Rc8 Kf7 22. Bb6 Bxb6 23. Rxh8 Kg6 24. Qe8+ Qxe8 25. Rxe8 Bd4 26. b4 Bc3
27. a3 Bb2 28. a4 Ba3 29. Rb8 Bxb4 30. Rxb7 Bc3 31. Kf1 h5 32. Ke2 a5 33. f4
exf4 34. Kf3 f5 35. Rb6+ Kg5 36. Rb5 g6 37. e5 Bd2 38. h4+ Kh6 39. Rb7 1-0

[/pgn]

My chess idols had always been Alekhine and Tal, but when I went through this game for the first time I simply shuddered: no flashy moves, no obvious blunders - just a world-class GM (and a top theoretician to boot) rolled off the board before time control. Brutal positional chess.

Most engines prefer the bland 10.0-0. That was incidentally also Korchnoi's choice in his game with Ljubojevic earlier that year where White didn't get anything out of the opening, which goes to show how deep 10.Be3 is. The only engine I tested (a while ago) that picked that move was Komodo 9.2. K10 liked 10.0-0 at d=41 last time I checked.

BTW, for about a decade in the sixties to early seventies Portisch was Petrosian's most difficult opponent (think Korchnoi and Tal). It wasn't until 1974 that Tigran managed to get his first win against "The Hungarian Botvinnik".
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Opening performance of engines

Post by tpoppins »

We have a new leader:

Code: Select all

Houdini 5 Pro       124 out of 200 = 62.0%. Average time = 3.92s / 15.37
Komodo 10.1         123 out of 200 = 61.5%. Average time = 3.51s / 15.47
Stockfish 8         113 out of 200 = 56.5%. Average time = 3.75s / 16.96
Deep Shredder 12    104 out of 200 = 52.0%. Average time = 3.30s / 10.47
Gull 3 syzygy       104 out of 200 = 52.0%. Average time = 2.55s / 12.32
Houdini 4 Pro       100 out of 200 = 50.0%. Average time = 3.03s / 13.06
Andscacs 0.871       94 out of 200 = 47.0%. Average time = 3.56s / 15.97
Deep Fritz 14        92 out of 200 = 46.0%. Average time = 2.29s / 14.18
Texel 1.05a45        91 out of 200 = 45.5%. Average time = 3.93s / 13.48
Arasan 19.1          90 out of 200 = 45.0%. Average time = 2.77s / 14.21
Vajolet2 2.2         89 out of 200 = 44.5%. Average time = 2.59s / 12.46
Fire 4               75 out of 200 = 37.5%. Average time = 3.60s / 12.72
Fritz 15             70 out of 200 = 35.0%. Average time = 3.55s / 12.88
Excel table with crosstable of individual results updated.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Opening performance of engines

Post by Laskos »

tpoppins wrote:We have a new leader:

Code: Select all

Houdini 5 Pro       124 out of 200 = 62.0%. Average time = 3.92s / 15.37
Komodo 10.1         123 out of 200 = 61.5%. Average time = 3.51s / 15.47
Stockfish 8         113 out of 200 = 56.5%. Average time = 3.75s / 16.96
Deep Shredder 12    104 out of 200 = 52.0%. Average time = 3.30s / 10.47
Gull 3 syzygy       104 out of 200 = 52.0%. Average time = 2.55s / 12.32
Houdini 4 Pro       100 out of 200 = 50.0%. Average time = 3.03s / 13.06
Andscacs 0.871       94 out of 200 = 47.0%. Average time = 3.56s / 15.97
Deep Fritz 14        92 out of 200 = 46.0%. Average time = 2.29s / 14.18
Texel 1.05a45        91 out of 200 = 45.5%. Average time = 3.93s / 13.48
Arasan 19.1          90 out of 200 = 45.0%. Average time = 2.77s / 14.21
Vajolet2 2.2         89 out of 200 = 44.5%. Average time = 2.59s / 12.46
Fire 4               75 out of 200 = 37.5%. Average time = 3.60s / 12.72
Fritz 15             70 out of 200 = 35.0%. Average time = 3.55s / 12.88
Excel table with crosstable of individual results updated.
I seem to have completed grosso modo the adjustment of my positional openings test suite to beta07. The results of "Openings200beta07" at 20s/position in polyglot are the following

Code: Select all

[Search parameters: MaxDepth=99   MaxTime=20.0   DepthDelta=2   MinDepth=7   MinTime=0.1]

Engine                         : Correct  TotalPos  Corr%  AveT(s)  MaxT(s)  TestFile 
      
Komodo 10.2 64-bit             :     145       200   72.5      2.0     20.0  openings200beta07.epd 
Houdini 5.01 Pro x64           :     144       200   72.0      2.4     20.0  openings200beta07.epd    
Stockfish 8 64 BMI2            :     141       200   70.5      2.0     20.0  openings200beta07.epd 
Houdini 5.01 Pro x64 Tactical  :     139       200   69.5      2.3     20.0  openings200beta07.epd      
Deep Shredder 13 x64           :     128       200   64.0      2.7     20.0  openings200beta07.epd    
Houdini 4 Pro x64              :     126       200   63.0      1.8     20.0  openings200beta07.epd   
Andscacs 0.88n                 :     123       200   61.5      2.4     20.0  openings200beta07.epd
Houdini 4 Pro x64 Tactical     :     120       200   60.0      1.6     20.0  openings200beta07.epd 
Nirvanachess 2.3               :     119       200   59.5      1.8     20.0  openings200beta07.epd 
Fire 5 x64                     :     110       200   55.0      3.0     20.0  openings200beta07.epd   
Texel 1.06 64-bit              :     110       200   55.0      1.6     20.0  openings200beta07.epd   
Fritz 15                       :     102       200   51.0      1.9     20.0  openings200beta07.epd    
Fruit 2.1                      :      91       200   45.5      1.5     20.0  openings200beta07.epd    
Sjaak II 1.3.1                 :      75       200   37.5      4.0     20.0  openings200beta07.epd    
BikJump v2.01 (64-bit)         :      74       200   37.0      1.6     20.0  openings200beta07.epd
Similar to your rankings. Observe that tactical settings of engines perform worse than standard settings. This hopefully shows that the suite is indeed very positional on openings.

At 2 minutes/position, the battle for the first place is very tight, and maybe it shows some scaling with time, although there are probably statistical flukes:

Code: Select all

[Search parameters: MaxDepth=99   MaxTime=120.0   DepthDelta=2   MinDepth=7   MinTime=0.1]

Engine                         : Correct  TotalPos  Corr%  AveT(s)  MaxT(s)  TestFile 
      
Komodo 10.2 64-bit             :     159       200   79.5      6.8    120.0  openings200beta07.epd   
Stockfish 8 64 BMI2            :     158       200   79.0      7.5    120.0  openings200beta07.epd       
Houdini 5.01 Pro x64-popc      :     155       200   77.5      8.8    120.0  openings200beta07.epd

The positional Openings200.epd suite is here:

Code: Select all

r1bqkbnr/1ppp1ppp/p1n5/4p3/B3P3/5N2/PPPP1PPP/RNBQK2R b KQkq - bm Nf6; c0 "1"; id "kai_openings_nr_1"; eco "C70"; Opn "Ruy Lopez"; 
r1bqkb1r/1ppp1ppp/p1n2n2/4p3/B3P3/5N2/PPPP1PPP/RNBQ1RK1 b kq - bm Be7 Nxe4; c0 "1"; id "kai_openings_nr_2"; eco "C78"; Opn "Ruy Lopez"; 
r1bqkb1r/p1pp1ppp/2p2n2/8/4P3/8/PPP2PPP/RNBQKB1R w KQkq - bm e5 Bd3; c0 "2"; id "kai_openings_nr_3"; eco "C45"; Opn "Scotch Game"; 
r3kb1r/p1ppqp1p/b1p3p1/3nP3/2P5/1P6/P3QPPP/RNB1KB1R w KQkq - bm f4 g3; c0 "2"; id "kai_openings_nr_4"; eco "C45"; Opn "Scotch Game"; 
r1bqk2r/pppp1ppp/2n2n2/2b1p3/2B1P3/3P1N2/PPP2PPP/RNBQK2R w KQkq - bm c3 O-O; c0 "3"; id "kai_openings_nr_5"; eco "C50"; Opn "Giuoco Pianissimo"; 
r1bqk2r/ppp2ppp/2np1n2/2b1p3/2B1P3/2PP1N2/PP3PPP/RNBQ1RK1 b kq - bm O-O a6; c0 "3"; id "kai_openings_nr_6"; eco "C54"; Opn "Giuoco Piano"; 
r1bqk1nr/ppp2ppp/2np4/b3p3/2BPP3/2P2N2/P4PPP/RNBQK2R w KQkq - bm Qb3; c0 "4"; id "kai_openings_nr_7"; eco "C52"; Opn "Evans Gambit"; 
r1b1k1nr/pppq1ppp/2np4/b3p3/2BPP3/1QP2N2/P4PPP/RNB1K2R w KQkq - bm O-O; c0 "4"; id "kai_openings_nr_8"; eco "C52"; Opn "Evans Gambit"; 
rnbqk1nr/pp3ppp/4p3/2ppP3/1b1P4/2N5/PPP2PPP/R1BQKBNR w KQkq - bm a3 Qg4; c0 "5"; id "kai_openings_nr_9"; eco "C17"; Opn "French Winawer"; 
rnbqk2r/pp2nppp/4p3/2ppP3/3P4/P1P5/2P2PPP/R1BQKBNR w KQkq - bm Qg4 Nf3; c0 "5"; id "kai_openings_nr_10"; eco "C18"; Opn "French Winawer"; 
rnbqkb1r/pp1n1ppp/4p3/2ppP3/3P1P2/2N5/PPP3PP/R1BQKBNR w KQkq - bm Nf3; c0 "6"; id "kai_openings_nr_11"; eco "C11"; Opn "French Classical"; 
2rqkb1r/pp2pppp/2n5/1B6/4P1b1/2Q2N2/PP3PPP/R1B1K2R w KQk - bm Be3; c0 "Portisch-Huebner, Montreal (3) 1979"; id "kai_openings_nr_12"; eco "A34"; Opn "Symmetrical English";  
rnbqkbnr/pp2pppp/2p5/3pP3/3P4/8/PPP2PPP/RNBQKBNR b KQkq - bm Bf5 c5; c0 "7"; id "kai_openings_nr_13"; eco "B12"; Opn "Caro-Kann Advance"; 
r2qkb1r/pp1nnppp/2p1p3/3pPb2/3P4/2P2N2/PP2BPPP/RNBQ1RK1 b kq - bm h6 c5; c0 "7"; id "kai_openings_nr_14"; eco "B12"; Opn "Caro-Kann Advance"; 
rnbqkb1r/ppp1pppp/3p4/3nP3/3P4/8/PPP2PPP/RNBQKBNR w KQkq - bm Nf3; c0 "8"; id "kai_openings_nr_15"; eco "B03"; Opn "Alekhine's Defence"; 
rnbqkb1r/ppp1pppp/1n1p4/4P3/2PP4/8/PP3PPP/RNBQKBNR w KQkq - bm exd6; c0 "8"; id "kai_openings_nr_16"; eco "B03"; Opn "Alekhine's Defence"; 
rnbqk2r/ppp1ppbp/3p1np1/8/3PP3/2N2N2/PPP2PPP/R1BQKB1R w KQkq - bm Be2; c0 "9"; id "kai_openings_nr_17"; eco "B08"; Opn "Pirc Classical"; 
rnbq1rk1/ppp1ppbp/3p1np1/8/3PP3/2N2N2/PPP1BPPP/R1BQK2R w KQ - bm O-O; c0 "9"; id "kai_openings_nr_18"; eco "B08"; Opn "Pirc Classical"; 
rnb1kbnr/ppp1pp1p/3q2p1/8/3P4/2N5/PPP2PPP/R1BQKBNR w KQkq - bm Nf3; c0 "10"; id "kai_openings_nr_19"; eco "B01"; Opn "Scandinavian Defence";
rnb1kb1r/ppp1pp1p/1q3np1/1N6/3P4/5N2/PPP2PPP/R1BQKB1R w KQkq - bm c4; c0 "10"; id "kai_openings_nr_20"; eco "B01"; Opn "Scandinavian Defence"; 
rnbqkb1r/1p2pppp/p2p1n2/8/3NP3/2N1B3/PPP2PPP/R2QKB1R b KQkq - bm e5 e6; c0 "11"; id "kai_openings_nr_21"; eco "B90"; Opn "Sicilian Najdorf";
rn1qkb1r/1p3ppp/p2pbn2/4p3/4P3/1NN1B3/PPP2PPP/R2QKB1R w KQkq - bm f3; c0 "11"; id "kai_openings_nr_22"; eco "B90"; Opn "Sicilian Najdorf"; 
r1bqkb1r/pp3ppp/2np1n2/1N2p3/4P3/2N5/PPP2PPP/R1BQKB1R w KQkq - bm Bg5; c0 "12"; id "kai_openings_nr_23"; eco "B33"; Opn "Sicilian Sveshnikov"; 
r1bqkb1r/1p3ppp/p1np1n2/4p1B1/4P3/N1N5/PPP2PPP/R2QKB1R b KQkq - bm b5; c0 "12"; id "kai_openings_nr_24"; eco "B33"; Opn "Sicilian Sveshnikov"; 
r1b1k2r/1pqp1ppp/p1n1pn2/8/1b1NP3/2N1B3/PPP1BPPP/R2Q1RK1 w kq - bm Na4; c0 "13"; id "kai_openings_nr_25"; eco "B49"; Opn "Sicilian Taimanov"; 
2q1k2r/3pbppp/pr2pn2/2p1B3/4P3/8/PPP1BPPP/R2Q1RK1 w k - bm Qd3 b3; c0 "13"; id "kai_openings_nr_26"; eco "B49"; Opn "Sicilian Taimanov"; 
r1bqk1nr/pp2ppbp/2np2p1/2p5/4P3/2NP2P1/PPP2PBP/R1BQK1NR w KQkq - bm Nge2 f4; c0 "14"; id "kai_openings_nr_27"; eco "B25"; Opn "Closed Sicilian"; 
r1bqk2r/pp2ppbp/2np1np1/2p5/4P3/2NP2P1/PPP1NPBP/R1BQK2R w KQkq - bm O-O; c0 "14"; id "kai_openings_nr_28"; eco "B25"; Opn "Closed Sicilian";
r1bqkb1r/pp2pppp/1nnp4/1B2P3/3P4/5N2/PP3PPP/RNBQK2R b KQkq - bm dxe5; c0 "15"; id "kai_openings_nr_29"; eco "B22"; Opn "Alapin Sicilian"; 
r1bq1rk1/pp3ppp/2nbpn2/2pp4/3P4/2PBPNB1/PP1N1PPP/R2QK2R b KQ - bm b6 Qe7; id "kai_openings_nr_30"; eco "None"; Opn "None"; Var "None";
r1bqkbnr/pp2pppp/2np4/1Bp5/4P3/5N2/PPPP1PPP/RNBQK2R w KQkq - bm O-O; c0 "16"; id "kai_openings_nr_31"; eco "B51"; Opn "Sicilian Moscow Var";
r2qkbnr/pp1bpppp/2np4/1Bp5/4P3/5N2/PPPP1PPP/RNBQ1RK1 w kq - bm Re1; c0 "16"; id "kai_openings_nr_32"; eco "B51"; Opn "Sicilian Moscow Var"; 
rnbqk2r/pp2ppbp/3p1np1/8/3NP3/2N1B3/PPP2PPP/R2QKB1R w KQkq - bm f3; c0 "17"; id "kai_openings_nr_33"; eco "B72"; Opn "Sicilian Dragon"; 
r2q1rk1/pp1bppbp/2np1np1/8/2BNP3/2N1BP2/PPPQ2PP/R3K2R w KQ - bm O-O-O; c0 "17"; id "kai_openings_nr_34"; eco "B78"; Opn "Sicilian Dragon"; 
rnbq1rk1/ppp2ppp/4pn2/3p4/1bPP4/2NBP3/PP3PPP/R1BQK1NR w KQ - bm Nf3; c0 "19"; id "kai_openings_nr_35"; eco "E48"; Opn "Nimzo-Indian Rubinstein"; 
r1bq1rk1/pp3ppp/2n1pn2/2pp4/2PP4/P1PBPN2/5PPP/R1BQ1RK1 b - - bm dxc4 Qc7; c0 "19"; id "kai_openings_nr_36"; eco "E58"; Opn "Nimzo-Indian Rubinstein"; 
rnbqkb1r/p1pp1ppp/1p2pn2/8/2PP4/5N2/PP2PPPP/RNBQKB1R w KQkq - bm g3; c0 "20"; id "kai_openings_nr_37"; eco "E12"; Opn "Queen's Indian"; 
rn1qkb1r/pb3p2/2p1pn1p/1p4p1/2pPP2P/2N2NB1/PP2BPP1/R2QK2R b KQkq - bm g4; c0 "22"; id "kai_openings_nr_38"; eco "D43"; Opn "Semi-Slav Moscow"; 
r2qkb1r/pb1n1p2/2p1pn1p/1p2N3/2pPP1pP/2N3B1/PP2BPP1/R2QK2R w KQkq - bm Nxd7; c0 "22"; id "kai_openings_nr_39"; eco "D43"; Opn "Semi-Slav Moscow"; 
r3kb1r/pb2qp2/2p1pn1p/1p2B3/2pPP1pP/2N5/PP2BPP1/R2QK2R w KQkq - bm O-O b3; c0 "22"; id "kai_openings_nr_40"; eco "D43"; Opn "Semi-Slav Moscow"; 
r3kbr1/pb2qp2/2p1pn1p/1p2B3/2pPP1pP/2N5/PP2BPP1/R2Q1RK1 w q - bm b3; c0 "22"; id "kai_openings_nr_41"; eco "D43"; Opn "Semi-Slav Moscow"; 
r1bqkb1r/pp3ppp/2n1pn2/2pp4/3P1B2/2PBPN2/PP3PPP/RN1QK2R b KQkq - bm Bd6 Be7 Qb6; id "kai_openings_nr_42"; eco "D02q"; Opn "Queen's Pawn"; Var "London";
rnbqkb1r/pp3pp1/2p1pn1p/8/2pP3B/2N2N2/PP2PPPP/R2QKB1R w KQkq - bm e4; c0 "23"; id "kai_openings_nr_43"; eco "D43"; Opn "Semi-Slav Moscow"; 
rnbqkb1r/p4p2/2p1pn1p/1p4p1/2pPP3/2N2NB1/PP2BPPP/R2QK2R b KQkq - bm Bb7; c0 "23"; id "kai_openings_nr_44"; eco "D43"; Opn "Semi-Slav Moscow"; 
rn1qkb1r/pb3p2/2p1pn1p/1p2N3/2pPP1pP/2N3B1/PP2BPP1/R2QK2R b KQkq - bm Nbd7; c0 "23"; id "kai_openings_nr_45"; eco "D43"; Opn "Semi-Slav Moscow"; 
r2qkbr1/1b3p2/p1p1pn1p/1p2B3/2pPP1pP/2N3P1/PP2BP2/R2QR1K1 b q - bm Bb4 Rg6; c0 "23"; id "kai_openings_nr_46"; eco "D43"; Opn "Semi-Slav Moscow"; 
rn1qkb1r/pb3p2/2p1pn1p/1p4p1/2pPP3/2N2NB1/PP2BPPP/R2QK2R w KQkq - bm h4; c0 "24"; id "kai_openings_nr_47"; eco "D43"; Opn "Semi-Slav Moscow"; 
r2qkb1r/pb3p2/2p1pn1p/1p2B3/2pPP1pP/2N5/PP2BPP1/R2QK2R w KQkq - bm O-O a4; c0 "24"; id "kai_openings_nr_48"; eco "D43"; Opn "Semi-Slav Moscow"; 
rnbq1rk1/ppp2ppp/3b4/4p3/8/2P2NP1/P1PP1PBP/R1BQ1RK1 b - - bm Nc6 c5; c0 "27"; id "kai_openings_nr_49"; eco "C26"; Opn "Vienna"; 
1r1qr1k1/ppp2ppp/2nb4/4pbN1/3P4/2P3P1/P1P2PBP/1RBQ1RK1 w - - bm f4; c0 "27"; id "kai_openings_nr_50"; eco "C26"; Opn "Vienna"; 
r1bqk2r/ppp1bppp/2n5/3p4/3Pn3/3B1N2/PPP2PPP/RNBQ1RK1 w kq - bm c4; c0 "28"; id "kai_openings_nr_51"; eco "C42"; Opn "Petrov"; 
r1bqk2r/ppp1bppp/8/3p4/1nPPn3/3B1N2/PP3PPP/RNBQ1RK1 w kq - bm Be2; c0 "28"; id "kai_openings_nr_52"; eco "C42"; Opn "Petrov"; 
r1bqkb1r/pp1p1ppp/2p2n2/4p3/B2nP3/2N2N2/PPPP1PPP/R1BQK2R w KQkq - bm Nxe5; c0 "29"; id "kai_openings_nr_53"; eco "C46"; Opn "Three Knights Game"; 
r1bqk2r/pppp1ppp/5n2/2b1N3/B2nP3/2N5/PPPP1PPP/R1BQK2R b KQkq - bm O-O; c0 "29"; id "kai_openings_nr_54"; eco "C48"; Opn "Four Knights Game";
r1b2rk1/ppp1qppp/2np1n2/1B2p1B1/4P3/2PP1N2/P1P2PPP/R2Q1RK1 w - - bm Re1 Bh4; c0 "30"; id "kai_openings_nr_55"; eco "C49"; Opn "Four Knights Game"; 
rnbqkb1r/pp3pp1/3ppn1p/8/3NP1P1/2N5/PPP2P1P/R1BQKB1R w KQkq - bm h4 Rg1; c0 "31"; id "kai_openings_nr_56"; eco "B81"; Opn "Sicilian Scheveningen"; 
r1bqkb1r/pp3pp1/2nppn1p/8/3NP1PP/2N5/PPP2P2/R1BQKBR1 b Qkq - bm h5 d5; c0 "31"; id "kai_openings_nr_57"; eco "B81"; Opn "Sicilian Scheveningen"; 
r1bqkb1r/pp3ppp/2nppn2/6B1/3NP3/2N5/PPPQ1PPP/R3KB1R b KQkq - bm a6; c0 "32"; id "kai_openings_nr_58"; eco "B63"; Opn "Sicilian Richter-Rauzer"; 
r1bqkb1r/1p3ppp/p1nppn2/6B1/3NP3/2N5/PPPQ1PPP/R3KB1R w KQkq - bm O-O-O; c0 "32"; id "kai_openings_nr_59"; eco "B67"; Opn "Sicilian Richter-Rauzer"; 
r2qkb1r/1p1b1ppp/p1nppn2/6B1/3NPP2/2N5/PPPQ2PP/2KR1B1R b kq - bm b5 Be7; c0 "32"; id "kai_openings_nr_60"; eco "B67"; Opn "Sicilian Richter-Rauzer"; 
r1bqk1nr/pp1pppbp/2n3p1/1Bp5/4P3/2N2N2/PPPP1PPP/R1BQ1RK1 b kq - bm e5 Nd4; c0 "33"; id "kai_openings_nr_61"; eco "B31"; Opn "Sicilian Rossolimo"; 
rnbqkb1r/pppn1ppp/4p3/3pP3/3P4/8/PPPN1PPP/R1BQKBNR w KQkq - bm Bd3; c0 "35"; id "kai_openings_nr_62"; eco "C06"; Opn "French Tarrasch"; 
rnbqkb1r/pp1n1ppp/4p3/2ppP3/3P4/2PB4/PP1N1PPP/R1BQK1NR b KQkq - bm Nc6; c0 "35"; id "kai_openings_nr_63"; eco "C06"; Opn "French Tarrasch"; 
r1b1kb1r/pp1n1ppp/1qn1p3/3pP3/3P4/3B1N2/PP2NPPP/R1BQK2R b KQkq - bm f6; c0 "35"; id "kai_openings_nr_64"; eco "C06"; Opn "French Tarrasch"; 
r1b2rk1/pp4pp/1qnbpn2/3p4/3P4/2NB1N2/PP3PPP/R1BQ1RK1 w - - bm Be3; c0 "35"; id "kai_openings_nr_65"; eco "C06"; Opn "French Tarrasch"; 
rnbqkbnr/pp2pppp/2p5/8/3PN3/8/PPP2PPP/R1BQKBNR b KQkq - bm Bf5; c0 "38"; id "kai_openings_nr_66"; eco "B15"; Opn "Caro-Kann"; 
rn1qkbnr/pp2ppp1/2p3bp/8/3P3P/5NN1/PPP2PP1/R1BQKB1R b KQkq - bm Nd7; c0 "38"; id "kai_openings_nr_67"; eco "B19"; Opn "Classical Caro-Kann";
r2qkbnr/pp1nppp1/2p3bp/8/3P3P/5NN1/PPP2PP1/R1BQKB1R w KQkq - bm h5; c0 "38"; id "kai_openings_nr_68"; eco "B19"; Opn "Classical Caro-Kann"; 
r2qkbnr/pp1nppp1/2p4p/7P/3P4/3Q1NN1/PPP2PP1/R1B1K2R b KQkq - bm e6; c0 "38"; id "kai_openings_nr_69"; eco "B19"; Opn "Classical Caro-Kann"; 
r2q1rk1/pp1nbpp1/2p1p2p/7P/3PQB2/5N2/PPP2PP1/1K1R3R b - - bm Nf6; c0 "38"; id "kai_openings_nr_70"; eco "B19"; Opn "Classical Caro-Kann"; 
r4rk1/pp2bpp1/2p1p2p/4N2P/3PnB2/8/PPP2PP1/1K1R3R w - - bm Rhe1; c0 "38"; id "kai_openings_nr_71"; eco "B19"; Opn "Classical Caro-Kann"; 
r2qkb1r/pp1nnpp1/2p1p2p/3pPb2/3P4/2P2N2/PP1NBPPP/R1BQ1RK1 b kq - bm Qc7 g5; c0 "39"; id "kai_openings_nr_72"; eco "B12"; Opn "Caro-Kann Advance"; 
r3kb1r/ppqnnpp1/2p1p2p/3pPb2/3P4/2P2N2/PP1NBPPP/R1BQ1RK1 w kq - bm Re1; c0 "39"; id "kai_openings_nr_73"; eco "B12"; Opn "Caro-Kann Advance"; 
rnbqk2r/pp1p1ppp/4pn2/8/1bPN4/2N3P1/PP2PP1P/R1BQKB1R b KQkq - bm O-O Ne4; c0 "40"; id "kai_openings_nr_74"; eco "E20"; Opn "Nimzo-Indian Fianchetto"; 
rnb2rk1/pp3ppp/4p3/q2n4/1b1N4/1QN3P1/PP1BPPBP/R3K2R b KQ - bm Nc6; c0 "40"; id "kai_openings_nr_75"; eco "E20"; Opn "Nimzo-Indian Fianchetto"; 
rnbqk2r/pp3ppp/4p3/2Pn4/8/P1P2P2/4P1PP/R1BQKBNR b KQkq - bm Qa5; c0 "41"; id "kai_openings_nr_76"; eco "E25"; Opn "Nimzo-Indian Saemisch"; 
rnb2rk1/pp3ppp/4pn2/q1P5/4P3/P1P1BP2/6PP/R2QKBNR w KQ - bm Qd2; c0 "41"; id "kai_openings_nr_77"; eco "E25"; Opn "Nimzo-Indian Saemisch"; 
r1bq1rk1/pp2bppp/2n1pn2/2pp4/3P1B2/2PBPN2/PP1N1PPP/R2QK2R w KQ - bm Ne5; id "kai_openings_nr_78"; eco "None"; Opn "None"; Var "None";
rnbq1rk1/pp2bppp/2p2n2/3p4/1P1P4/P1N1P1N1/5PPP/R1BQKB1R b KQ - bm Re8; c0 "42"; id "kai_openings_nr_79"; eco "E46"; Opn "Nimzo-Indian Rubinstein"; 
rn1qk2r/p1pp1ppp/bp2pn2/8/1bPP4/1P3NP1/P2BPP1P/RN1QKB1R b KQkq - bm Be7; c0 "43"; id "kai_openings_nr_80"; eco "E15"; Opn "Queen's Indian 4.g3"; 
rn1qk2r/p2pbppp/bpp1pn2/8/2PP4/1PB2NP1/P3PPBP/RN1QK2R b KQkq - bm d5; c0 "43"; id "kai_openings_nr_81"; eco "E15"; Opn "Queen's Indian 4.g3"; 
rn1qk2r/p2nbppp/bpp1p3/3pN3/2PP4/1PB3P1/P3PPBP/RN1QK2R w KQkq - bm Nxd7; c0 "43"; id "kai_openings_nr_82"; eco "E15"; Opn "Queen's Indian 4.g3"; 
rnbq1rk1/pp2ppbp/3p1np1/2p5/2PPP3/2N1BP2/PP4PP/R2QKBNR w KQ - bm Nge2; c0 "45"; id "kai_openings_nr_83"; eco "E81"; Opn "King's Indian Saemisch"; 
rnbq1rk1/pp2ppbp/3p1np1/2p5/2PPP3/2N1BP2/PP2N1PP/R2QKB1R b KQ - bm Nc6 Nbd7; c0 "45"; id "kai_openings_nr_84"; eco "E81"; Opn "King's Indian Saemisch"; 
r1bq1rk1/1pp2pbp/3p1np1/p1nPp3/2P1P3/2N2N1P/PPB2PP1/R1BQ1RK1 b - - bm b6 Nh5 Ne8; c0 "46"; id "kai_openings_nr_85"; eco "E90"; Opn "King's Indian"; 
rnbqk2r/pp2ppbp/6p1/2p5/3PP3/2P2N2/P4PPP/R1BQKB1R w KQkq - bm Rb1 Be3; c0 "47"; id "kai_openings_nr_86"; eco "D85"; Opn "Gruenfeld Exchange"; 
r1bq1rk1/pp2ppbp/2n3p1/2pP4/4P3/2P2N2/P3BPPP/1RBQK2R b K - bm Ne5; c0 "47"; id "kai_openings_nr_87"; eco "D85"; Opn "Gruenfeld Exchange"; 
1rbq1rk1/pp3p1p/3P2p1/b1p5/5P2/B1P5/P2QB1PP/1R3RK1 b - - bm Bf5; c0 "47"; id "kai_openings_nr_88"; eco "D85"; Opn "Gruenfeld Exchange"; 
rnb1kbnr/2qp1ppp/p3p3/1p6/4P3/1NNB4/PPP2PPP/R1BQ1RK1 b kq - bm Bb7 d6; id "kai_openings_nr_89"; eco "None"; Opn "None"; Var "None";
rnbq1rk1/1pp1ppbp/p4np1/4P3/2QP4/2N2N2/PP3PPP/R1B1KB1R b KQ - bm b5; c0 "48"; id "kai_openings_nr_90"; eco "D97"; Opn "Gruenfeld Russian System"; 
r2qk2r/pp1n1ppp/2p1pn2/5b2/PbBP4/2N1PN2/1P3PPP/R1BQ1RK1 w kq - bm Qe2; c0 "49"; id "kai_openings_nr_91"; eco "D18"; Opn "QGD Slav"; 
r2q1rk1/pp1n1ppp/2p1pnb1/8/Pb1PP3/2NB1N2/1P2QPPP/R1B2RK1 b - - bm Bh5; c0 "49"; id "kai_openings_nr_92"; eco "D18"; Opn "QGD Slav"; 
r2qkb1r/pb1n1p2/2p1pP2/1p4B1/2pP4/2N5/PP3PPP/R2QKB1R w KQkq - bm g3 h4; c0 "50"; id "kai_openings_nr_93"; eco "D44"; Opn "Semi-Slav Botvinnik System"; 
rnb1kb1r/pp3pp1/2p1pq1p/3p4/2PP4/2N1PN2/PP3PPP/R2QKB1R b KQkq - bm Nd7 g6; c0 "51"; id "kai_openings_nr_94"; eco "D43"; Opn "Semi-Slav Moscow"; 
r1b1kb1r/pp1n1pp1/2p1pq1p/3p4/2PP4/2N1PN2/PP3PPP/R2QKB1R w KQkq - bm Be2 Bd3; c0 "51"; id "kai_openings_nr_95"; eco "D43"; Opn "Semi-Slav Moscow"; 
r1b1kb1r/pp1n1pp1/2p1pq1p/3p4/2PP4/2N1PN2/PP2BPPP/R2QK2R b KQkq - bm g6 Bd6; c0 "51"; id "kai_openings_nr_96"; eco "D43"; Opn "Semi-Slav Moscow"; 
r1b1kb1r/pp1n1p2/2p1pqpp/3p4/2PP4/2N1PN2/PP2BPPP/R2Q1RK1 b kq - bm Bg7; c0 "51"; id "kai_openings_nr_97"; eco "D43"; Opn "Semi-Slav Moscow";
r1b1k2r/pp1n1pb1/2p1pqpp/3p4/2PPP3/2N2N2/PP2BPPP/R2Q1RK1 b kq - bm dxe4; c0 "51"; id "kai_openings_nr_98"; eco "D43"; Opn "Semi-Slav Moscow"; 
r1b1k2r/pp1n1pb1/2p1p1pp/8/2PPNq2/5N2/PPQ1BPPP/R4RK1 b kq - bm f5; c0 "51"; id "kai_openings_nr_99"; eco "D43"; Opn "Semi-Slav Moscow"; 
r1b1k2r/pp1n2b1/4p1pp/2p2p2/2PP1q2/5N2/PPQNBPPP/R4RK1 w kq - bm g3 Rfe1; c0 "51"; id "kai_openings_nr_100"; eco "D43"; Opn "Semi-Slav Moscow"; 
r3kb1r/1bqn1ppp/p3pn2/1ppP4/4P3/2NB1N2/PP3PPP/R1BQ1RK1 w kq - bm dxe6; c0 "52"; id "kai_openings_nr_101"; eco "D48"; Opn "Semi-Slav Meran"; 
r3kb1r/1bqn2pp/p3pn2/1pp5/4P3/2NB1N2/PP3PPP/R1BQ1RK1 w kq - bm Bc2 Ng5; c0 "52"; id "kai_openings_nr_102"; eco "D48"; Opn "Semi-Slav Meran";
r1bq1rk1/pp1n1ppp/2pbpn2/8/2BP4/2N1PN2/PPQ2PPP/R1B2RK1 b - - bm b5 a6; c0 "53"; id "kai_openings_nr_103"; eco "D46"; Opn "Semi-Slav"; 
r1bq1rk1/1p1n1ppp/p1pbpn2/8/2BP4/2N1PN2/PPQ2PPP/R1BR2K1 b - - bm b5; c0 "53"; id "kai_openings_nr_104"; eco "D46"; Opn "Semi-Slav"; 
r1bq1rk1/3n1pp1/p1pb1n1p/1p2p3/3PP3/2NB1N2/PPQ2PPP/R1BR2K1 w - - bm h3; c0 "53"; id "kai_openings_nr_105"; eco "D46"; Opn "Semi-Slav"; 
rnbq1rk1/ppp1bpp1/4pn1p/3p4/2PP3B/2N1PN2/PP3PPP/R2QKB1R b KQ - bm b6 Ne4; c0 "54"; id "kai_openings_nr_106"; eco "D56"; Opn "QGD Lasker"; 
rn1q1rk1/pbp2pp1/1p3b1p/3p4/3P4/2N1PN2/PP2BPPP/R2QK2R w KQ - bm b4 O-O; c0 "54"; id "kai_openings_nr_107"; eco "D58"; Opn "QGD Tartakower"; 
rn1q1rk1/pbp2pp1/1p3b1p/3p4/1P1P4/2N1PN2/P3BPPP/R2QK2R b KQ - bm c6 c5; c0 "54"; id "kai_openings_nr_108"; eco "D58"; Opn "QGD Tartakower"; 
rn1qr1k1/pb3pp1/1pp2b1p/3p4/1P1P4/1QN1PN2/P3BPPP/R4RK1 b - - bm a5; c0 "54"; id "kai_openings_nr_109"; eco "D58"; Opn "QGD Tartakower"; 
r1bq1rk1/pp1nbppp/2p1pn2/3p2B1/2PP4/2N1PN2/PP3PPP/2RQKB1R w K - bm Bd3 Qc2; c0 "55"; id "kai_openings_nr_110"; eco "D66"; Opn "QGD Orthodox Defence"; 
r2qkbnr/pppnpppp/8/3p4/6b1/5NP1/PPPPPPBP/RNBQK2R w KQkq - bm c4 O-O; id "kai_openings_nr_111"; eco "A07"; Opn "Reti"; Var "KIA, Keres Variation";
r1bqk2r/pppn1ppp/4pn2/3p2B1/1bPP4/2N2N2/PP2PPPP/R2QKB1R w KQkq - bm cxd5 e3; c0 "56"; id "kai_openings_nr_112"; eco "D38"; Opn "QGD Ragozin"; 
r1bqk2r/pp1n1ppp/5n2/2pp2B1/1b1P4/2NBPN2/PP3PPP/R2QK2R b KQkq - bm Qa5; c0 "56"; id "kai_openings_nr_113"; eco "D38"; Opn "QGD Ragozin"; 
r1bq1rk1/pp1nbppp/2p2n2/3p2B1/3P4/2NBP3/PPQ2PPP/R3K1NR w KQ - bm Nf3 Nge2; c0 "57"; id "kai_openings_nr_114"; eco "D36"; Opn "QGD Exchange";
r1bqrnk1/pp2bppp/2p2n2/3p2B1/3P4/2NBPN1P/PPQ2PP1/R4RK1 b - - bm Be6 g6; c0 "57"; id "kai_openings_nr_115"; eco "D36"; Opn "QGD Exchange"; 
rnbqkb1r/1p3ppp/p3pn2/2p5/2BP4/4PN2/PP3PPP/RNBQ1RK1 w kq - bm Bb3 a4 b3; c0 "58"; id "kai_openings_nr_116"; eco "D27"; Opn "QGA"; 
rnbqkb1r/1p3ppp/p3pn2/2p5/P1BP4/4PN2/1P3PPP/RNBQ1RK1 b kq - bm Nc6; c0 "58"; id "kai_openings_nr_117"; eco "D27"; Opn "QGA"; 
r1bqkb1r/ppp1pppp/1nn5/4P3/3P4/3B4/PP3PPP/RNBQK1NR w KQkq - bm Ne2; c0 "59"; id "kai_openings_nr_118"; eco "D20"; Opn "QGA"; 
rnbq1rk1/pp3pbp/3p1np1/2pP4/4P3/2N2N2/PP2BPPP/R1BQK2R w KQ - bm O-O Nd2; c0 "60"; id "kai_openings_nr_119"; eco "A72"; Opn "Modern Benoni"; 
rnbqr1k1/pp3pbp/3p1np1/2pP4/4P3/2N2N2/PP2BPPP/R1BQ1RK1 w - - bm Nd2; c0 "60"; id "kai_openings_nr_120"; eco "A73"; Opn "Modern Benoni"; 
r1bqk2r/pp1nbppp/2pp1n2/4p3/2PPP3/2N2N2/PP2BPPP/R1BQ1RK1 b kq - bm O-O; c0 "62"; id "kai_openings_nr_121"; eco "A55"; Opn "Old Indian"; 
rnbq1rk1/ppp1p1bp/3p1np1/5p2/2PP4/2N2NP1/PP2PPBP/R1BQ1RK1 b - - bm Qe8 c6; c0 "63"; id "kai_openings_nr_122"; eco "A87"; Opn "Leningrad Dutch"; 
rnb1qrk1/ppp1p1bp/3p1np1/5p2/2PP4/2N2NP1/PP2PPBP/R1BQ1RK1 w - - bm d5 Re1 Nd5; c0 "63"; id "kai_openings_nr_123"; eco "A87"; Opn "Leningrad Dutch"; 
r1b1qrk1/ppp1p1bp/n2p1np1/3P1p2/2P5/2N1BNP1/PP2PPBP/R2Q1RK1 b - - bm Bd7 Nc5; c0 "63"; id "kai_openings_nr_124"; eco "A87"; Opn "Leningrad Dutch"; 
rnbq1rk1/pp2b1pp/2p1pn2/3p1p2/2PP4/2N2NP1/PP2PPBP/R1BQ1RK1 w - - bm b3; c0 "64"; id "kai_openings_nr_125"; eco "A95"; Opn "Stonewall Dutch";
rnbqk1nr/ppp1b1pp/3p4/5pN1/2PPp3/2N5/PP2PPPP/R1BQKB1R w KQkq - bm Nh3; c0 "65"; id "kai_openings_nr_126"; eco "A21"; Opn "English 1...e5"; 
rn1qkbnr/ppp1pppp/3p4/8/3P2b1/5N2/PPP1PPPP/RNBQKB1R w KQkq - bm c4 e4; c0 "66"; id "kai_openings_nr_127"; eco "A41"; Opn "Queen's Pawn Tartakower System"; 
rnbqk1nr/ppp2pbp/3p2p1/4p3/2PPP3/2N5/PP3PPP/R1BQKBNR w KQkq - bm Nf3 Nge2; c0 "67"; id "kai_openings_nr_128"; eco "A42"; Opn "Modern Defence Averbakh"; 
r1bqk2r/pppp1ppp/2n2n2/4p3/1bP5/2N1PN2/PP1P1PPP/R1BQKB1R w KQkq - bm Qc2 Nd5; c0 "69"; id "kai_openings_nr_129"; eco "A28"; Opn "English Four Knights"; 
r1bqk2r/pppp1ppp/2n2n2/4p3/1bP5/2N1PN2/PPQP1PPP/R1B1KB1R b KQkq - bm Bxc3; c0 "69"; id "kai_openings_nr_130"; eco "A28"; Opn "English Four Knights"; 
r1b1k2r/ppppqppp/2n2n2/4p3/2P5/P1Q1PN2/1P1P1PPP/R1B1KB1R b KQkq - bm d5 a5; c0 "69"; id "kai_openings_nr_131"; eco "A28"; Opn "English Four Knights"; 
r1bq1rk1/pppp1ppp/2n2n2/4p3/1bP5/2N2NP1/PP1PPPBP/R1BQ1RK1 b - - bm e4 h6; c0 "70"; id "kai_openings_nr_132"; eco "A29"; Opn "English Four Knights"; 
r1bq1rk1/pppp1ppp/2n2n2/6N1/2P1p3/2b3P1/PP1PPPBP/R1BQ1RK1 w - - bm bxc3; c0 "70"; id "kai_openings_nr_133"; eco "A29"; Opn "English Four Knights"; 
r1bqr1k1/pppp1ppp/2n2n2/6N1/2P1p3/2P3P1/P2PPPBP/R1BQ1RK1 w - - bm f3; c0 "70"; id "kai_openings_nr_134"; eco "A29"; Opn "English Four Knights"; 
r1bqr1k1/pppp1ppp/2n2n2/6N1/2P5/2P1pPP1/P2PP1BP/R1BQ1RK1 w - - bm d3; c0 "70"; id "kai_openings_nr_135"; eco "A29"; Opn "English Four Knights"; 
r1bqr1k1/ppp2ppp/2n2n2/3p2N1/2P5/2PPpPP1/P3P1BP/R1BQ1RK1 w - - bm Qb3; c0 "70"; id "kai_openings_nr_136"; eco "A29"; Opn "English Four Knights"; 
r1bqr1k1/pp3ppp/2n2n2/3p2N1/5P2/Q1PPp1P1/P3P1BP/1RB2RK1 b - - bm Qc7; c0 "70"; id "kai_openings_nr_137"; eco "A29"; Opn "English Four Knights"; 
r1bqkb1r/pp1p1ppp/2n1pn2/8/2PN4/2N5/PP2PPPP/R1BQKB1R w KQkq - bm g3 a3; c0 "72"; id "kai_openings_nr_138"; eco "A33"; Opn "Symmmetrical English"; 
r1b1kb1r/pp1p1ppp/1qn1pn2/8/2PN4/2N3P1/PP2PP1P/R1BQKB1R w KQkq - bm Nb3 Ndb5; c0 "72"; id "kai_openings_nr_139"; eco "A33"; Opn "Symmmetrical English"; 
r1b1kb1r/pp1p1ppp/1qn1pn2/8/2P5/1NN3P1/PP2PP1P/R1BQKB1R b KQkq - bm Ne5; c0 "72"; id "kai_openings_nr_140"; eco "A33"; Opn "Symmmetrical English"; 
r1bqkb1r/pppp2pp/2n2n2/4pp2/2P5/2N3P1/PP1PPPBP/R1BQK1NR w KQkq - bm e3 d3; c0 "73"; id "kai_openings_nr_141"; eco "A25"; Opn "English Reverse Dragon"; 
r2qk2r/pp1n1ppp/2p2n2/2b1p3/4P1b1/5NP1/PPPN1PBP/R1BQ1RK1 w kq - bm h3; id "kai_openings_nr_142"; eco "None"; Opn "None"; Var "None"; 
rnbqkb1r/pp2pppp/5n2/2pp4/8/1P2P3/PBPP1PPP/RN1QKBNR w KQkq - bm Nf3; c0 "76"; id "kai_openings_nr_143"; eco "A01"; Opn "Nimzowitsch-Larsen";
rnbqkb1r/pp3ppp/4pn2/2pp4/8/1P2PN2/PBPP1PPP/RN1QKB1R w KQkq - bm d4 c4; c0 "76"; id "kai_openings_nr_144"; eco "A01"; Opn "Nimzowitsch-Larsen"; 
r2qkb1r/pp1npppp/2p2n2/3p4/6b1/3P1NP1/PPPNPPBP/R1BQ1RK1 b kq - bm e5; id "kai_openings_nr_145"; eco "A07"; Opn "Reti"; Var "KIA, Yugoslav, Main Line, 6.Nbd2";
r1bq1rk1/1pp2ppp/p1np1n2/2b1p3/4P3/1BPP1N2/PP3PPP/RNBQ1RK1 w - - bm Nbd2; c0 "78"; id "kai_openings_nr_146"; eco "C54"; Opn "Giuoco Piano"; 
r1bq1rk1/1pp2ppp/p1np1n2/2b1p3/4P3/1BPP1N2/PP1N1PPP/R1BQ1RK1 b - - bm Ba7 Re8; c0 "78"; id "kai_openings_nr_147"; eco "C54"; Opn "Giuoco Piano"; 
r1bq1rk1/bpp2ppp/p1np1n2/4p3/4P3/1BPP1N2/PP1N1PPP/R1BQ1RK1 w - - bm h3; c0 "78"; id "kai_openings_nr_148"; eco "C54"; Opn "Giuoco Piano"; 
r1bq1rk1/bpp2pp1/p1np1n1p/4p3/4P3/1BPP1N1P/PP1N1PP1/R1BQ1RK1 w - - bm Re1 a4; c0 "78"; id "kai_openings_nr_149"; eco "C54"; Opn "Giuoco Piano"; 
r1bq1rk1/bpp2pp1/p1np1n1p/4p3/4P3/1BPP1N1P/PP1N1PP1/R1BQR1K1 b - - bm Be6 Re8; c0 "78"; id "kai_openings_nr_150"; eco "C54"; Opn "Giuoco Piano"; 
rnbqk2r/ppp1bppp/4pn2/3p4/2P5/5NP1/PP1PPPBP/RNBQK2R w KQkq - bm d4; id "kai_openings_nr_151"; eco "A14"; Opn "English"; Var "Neo-Catalan Declined";
r2qr1k1/b1p2pp1/p1n1bn1p/1p1pp3/4P3/2PP1N1P/PPB1QPP1/R1B1RNK1 w - - bm Bd2; c0 "78"; id "kai_openings_nr_152"; eco "C54"; Opn "Giuoco Piano"; 
r3r1k1/b1pq1pp1/p1n1bn1p/1p1pp3/4P3/2PP1N1P/PPBBQPP1/R3RNK1 w - - bm Ng3 a4; c0 "78"; id "kai_openings_nr_153"; eco "C54"; Opn "Giuoco Piano"; 
rn2kb1r/pp2pppp/2p2n2/q4b2/2BP4/2N2N2/PPP2PPP/R1BQK2R w KQkq - bm Bd2 Qe2; c0 "79"; id "kai_openings_nr_154"; eco "B01"; Opn "Scandinavian"; 
rn2kb1r/pp3ppp/2p1pn2/q4b2/2BP4/2N2N2/PPPB1PPP/R2QK2R w KQkq - bm Nd5 Qe2; c0 "79"; id "kai_openings_nr_155"; eco "B01"; Opn "Scandinavian";
rn1q1rk1/2p1bppp/p3pn2/1p6/3Pb3/5NP1/PP1BPPBP/RNQ2RK1 b - - bm Bb7 Nbd7; c0 "90"; id "kai_openings_nr_156"; eco "E05"; Opn "Open Catalan"; 
r1bqkb1r/1pp2ppp/p1n1pn2/8/2pP4/4PNP1/PP3PBP/RNBQ1RK1 b kq - bm Bd7; c0 "92"; id "kai_openings_nr_157"; eco "E04"; Opn "Open Catalan"; 
r2qkb1r/1ppb1ppp/p1n1pn2/8/2pP4/4PNP1/PP2QPBP/RNB2RK1 b kq - bm b5; c0 "92"; id "kai_openings_nr_158"; eco "E04"; Opn "Open Catalan"; 
r1bq1rk1/pppp1ppp/2n2n2/1Bb1p3/4P3/2PP1N2/PP3PPP/RNBQK2R w KQ - bm O-O; c0 "96"; id "kai_openings_nr_159"; eco "C65"; Opn "Ruy Lopez Berlin Defence"; 
r1bq1rk1/ppp2ppp/2np1n2/1Bb1p3/4P3/2PP1N2/PP3PPP/RNBQ1RK1 w - - bm Nbd2 h3; c0 "96"; id "kai_openings_nr_160"; eco "C65"; Opn "Ruy Lopez Berlin Defence"; 
rnbqkb1r/pp3ppp/3ppn2/8/3NP3/2N5/PPP1BPPP/R1BQK2R b KQkq - bm a6 Nc6; c0 "100"; id "kai_openings_nr_161"; eco "B83"; Opn "Sicilian Scheveningen"; 
rnbqk2r/1p2bppp/p2ppn2/8/3NP3/2N5/PPP1BPPP/R1BQ1RK1 w kq - bm f4; c0 "100"; id "kai_openings_nr_162"; eco "B84"; Opn "Sicilian Scheveningen"; 
r1bqk2r/1pppbppp/p1n2n2/4p3/B3P3/5N2/PPPP1PPP/RNBQ1RK1 w kq - bm Re1 d3; c0 "1"; id "kai_openings_nr_163"; eco "C84"; Opn "Closed Ruy Lopez"; 
r1bqk2r/1pp1bppp/p1p2n2/4p3/4P3/3P1N2/PPP2PPP/RNBQ1RK1 b kq - bm Nd7 Bd6; c0 "1"; id "kai_openings_nr_164"; eco "C85"; Opn "Closed Ruy Lopez Deferred Exchange"; 
r4rk1/1ppqnpp1/3p1n1p/2b1p3/p3P3/2PP1N1P/PP3PP1/R1BQRNK1 w - - bm Ng3; c0 "3"; id "kai_openings_nr_165"; eco "C54"; Opn "Giuoco Piano"; 
r4rk1/1ppqnpp1/1b1p1n1p/4p3/p3P3/2PP1NNP/PP3PP1/R1BQR1K1 w - - bm d4; c0 "3"; id "kai_openings_nr_166"; eco "C54"; Opn "Giuoco Piano"; 
rnbq1rk1/pp2nppp/4p3/2ppP3/3P2Q1/P1P5/2P2PPP/R1B1KBNR w KQ - bm Bd3; c0 "5"; id "kai_openings_nr_167"; eco "C18"; Opn "French Winawer"; 
rnbq1rk1/pp2nppp/4p3/2ppP3/3P2Q1/P1PB4/2P2PPP/R1B1K1NR b KQ - bm Nbc6 f5 Qa5; c0 "5"; id "kai_openings_nr_168"; eco "C18"; Opn "French Winawer"; 
r1b2rk1/ppq2ppp/2n1p1n1/2ppP2Q/3P4/P1PB1N2/2P2PPP/R1B1K2R w KQ - bm Be3 h4; c0 "5"; id "kai_openings_nr_169"; eco "C18"; Opn "French Winawer"; 
r1bqk2r/pp1n1ppp/2n1p3/2bpP3/3N1P2/2N1B3/PPP3PP/R2QKB1R w KQkq - bm Qd2; c0 "6"; id "kai_openings_nr_170"; eco "C11"; Opn "French Steinitz";
r1bq1rk1/pp1n1ppp/2n1p3/2bpP3/3N1P2/2N1B3/PPPQ2PP/2KR1B1R b - - bm a6; c0 "6"; id "kai_openings_nr_171"; eco "C11"; Opn "French Steinitz"; 
r1bq1rk1/1p1n1ppp/p1n1p3/2bpP3/3N1P2/2N1B3/PPPQ2PP/2KR1B1R w - - bm Qf2 h4 Nb3; c0 "6"; id "kai_openings_nr_172"; eco "C11"; Opn "French Steinitz"; 
r4rk1/1b1nqppp/p3p3/1p1pP3/3Q1P2/P1N5/1PP1B1PP/1K1R3R b - - bm Rfb8 Bc6; c0 "6"; id "kai_openings_nr_173"; eco "C11"; Opn "French Steinitz";
rnbqk2r/ppp1bppp/4pn2/3p4/2P5/5NP1/PP1PPPBP/RNBQ1RK1 b kq - bm O-O; id "kai_openings_nr_174"; eco "A14"; Opn "English"; Var "Neo-Catalan Declined";
r1b2rk1/p1qnppbp/1ppp1np1/8/P2PP3/2N1BN1P/1PP1BPP1/R2Q1RK1 w - - bm Qd2; c0 "9"; id "kai_openings_nr_175"; eco "B08"; Opn "Pirc Classical"; 
r2q1rk1/3nbppp/p2pbn2/1p2p3/4P1P1/1NN1BP2/PPPQ3P/2KR1B1R w - - bm g5; c0 "11"; id "kai_openings_nr_176"; eco "B90"; Opn "Sicilian Najdorf"; 
r2q1rk1/3nbppp/p2p4/1p1Pp1Pn/8/1N2BP2/PPPQ3P/2KR1B1R b - - bm f6; c0 "11"; id "kai_openings_nr_177"; eco "B90"; Opn "Sicilian Najdorf"; 
r1bq1rk1/pp2bppp/2n1pn2/2pp4/2P5/1P3NP1/PB1PPPBP/RN1Q1RK1 w - - bm e3; id "kai_openings_nr_178"; eco "A14"; Opn "English"; Var "Neo-Catalan Declined, 5...O-O 6.b3 c5 7.Bb2 Nc6";
r1bq1rk1/pp2bppp/2n1pn2/2pp4/2P5/1P2PNP1/PB1P1PBP/RN1Q1RK1 b - - bm d4; id "kai_openings_nr_179"; eco "A14"; Opn "English"; Var "Neo-Catalan Declined, 5...O-O 6.b3 c5 7.Bb2 Nc6 8.e3";
r1bqk2r/4bppp/p1np1n2/1p1Np1B1/4P3/N7/PPP2PPP/R2QKB1R w KQkq - bm Bxf6; c0 "12"; id "kai_openings_nr_180"; eco "B33"; Opn "Sicilian Sveshnikov"; 
r1bqk2r/5ppp/p1np1b2/1p1Np3/4P3/N1P5/PP3PPP/R2QKB1R b KQkq - bm O-O Ne7; c0 "12"; id "kai_openings_nr_181"; eco "B33"; Opn "Sicilian Sveshnikov"; 
r1bq1rk1/5ppp/p1np4/1p1Np1b1/4P3/2P5/PPN2PPP/R2QKB1R w KQ - bm a4; c0 "12"; id "kai_openings_nr_182"; eco "B33"; Opn "Sicilian Sveshnikov"; 
r1bq1rk1/5ppp/p1np4/3Np1b1/p3P3/2P5/1PN2PPP/R2QKB1R w KQ - bm Rxa4; c0 "12"; id "kai_openings_nr_183"; eco "B33"; Opn "Sicilian Sveshnikov";
r1bq1rk1/5ppp/2np4/p2Np1b1/R3P3/2P5/1PN2PPP/3QKB1R w K - bm Bc4; c0 "12"; id "kai_openings_nr_184"; eco "B33"; Opn "Sicilian Sveshnikov"; 
1rbq1r1k/5p1p/2np2p1/p2Np1b1/R1B1P3/1PP1N3/5PPP/3QK2R w K - bm h4; c0 "12"; id "kai_openings_nr_185"; eco "B33"; Opn "Sicilian Sveshnikov"; 
1rbq1r1k/5p1p/2np2p1/p2Np3/R1B1P2b/1PP1N3/5PP1/3QK2R w K - bm g3; c0 12; id "kai_openings_nr_186"; eco "B33"; Opn "Sicilian Sveshnikov"; 
2q1k2r/3pbppp/pr2pn2/2p1B3/4P3/3Q4/PPP1BPPP/R4RK1 b k - bm d6; c0 "13"; id "kai_openings_nr_187"; eco "B49"; Opn "Sicilian Taimanov"; 
2q2rk1/4bppp/pr1ppn2/2p5/4P3/1PBQ4/P1P1BPPP/R4RK1 b - - bm d5; c0 "13"; id "kai_openings_nr_188"; eco "B49"; Opn "Sicilian Taimanov"; 
2q2rk1/4bppp/pr2pn2/2pp4/4P3/1PBQ4/P1P1BPPP/R4RK1 w - - bm exd5; c0 "13"; id "kai_openings_nr_189"; eco "B49"; Opn "Sicilian Taimanov"; 
r1bq1rk1/p3bppp/1pn1pn2/2pp4/2P5/1P2PNP1/PB1P1PBP/RN1Q1RK1 w - - bm Nc3 Qe2; id "kai_openings_nr_190"; eco "None"; Opn "None"; Var "None";
r4rk1/p2q1ppp/1np1pb1B/8/3P2Q1/2N5/PP3PPP/R2R2K1 b - - bm Rfd8 Qe7; c0 "15"; id "kai_openings_nr_191"; eco "B22"; Opn "Sicilian Alapin"; 
r2qkb1r/1p1bpppp/p1np1n2/2p5/4P3/2P2N2/PP1P1PPP/RNBQRBK1 b kq - bm Bg4; c0 "16"; id "kai_openings_nr_192"; eco "B51"; Opn "Sicilian Moscow Var"; 
2rq1rk1/pp1bppbp/2np1np1/8/2BNP3/2N1BP2/PPPQ2PP/2KR3R w - - bm Bb3; c0 "17"; id "kai_openings_nr_193"; eco "B78"; Opn "Sicilian Dragon"; 
r1b2rk1/ppq2ppp/2n2n2/2pp4/3P4/P1PBPN2/5PPP/R1BQ1RK1 w - - bm a4; c0 "19"; id "kai_openings_nr_194"; eco "E58"; Opn "Nimzo-Indian Rubinstein"; 
r1b1r1k1/ppq2ppp/2n2n2/2pp4/P2P4/2PBPN2/5PPP/R1BQ1RK1 w - - bm Ba3; c0 "19"; id "kai_openings_nr_195"; eco "E58"; Opn "Nimzo-Indian Rubinstein"; 
r1b3k1/ppq2ppp/2n5/3p4/P1pPr3/B1P1P3/3N1PPP/R2Q1RK1 b - - bm Re8; c0 "19"; id "kai_openings_nr_196"; eco "E58"; Opn "Nimzo-Indian Rubinstein"; 
rn1qk2r/p1ppbppp/bp2pn2/8/2PP4/1P3NP1/P2BPPBP/RN1QK2R b KQkq - bm c6; c0 "20"; id "kai_openings_nr_197"; eco "E15"; Opn "Queen's Indian 4.g3"; 
rn1qk2r/p2pbppp/bpp1pn2/8/2PP4/1P3NP1/P2BPPBP/RN1QK2R w KQkq - bm Bc3 O-O; c0 "20"; id "kai_openings_nr_198"; eco "E15"; Opn "Queen's Indian 4.g3"; 
rn1qk2r/p3bppp/bpp1pn2/3p4/2PP4/1PB2NP1/P3PPBP/RN1QK2R w KQkq - bm Ne5 Nbd2; c0 "20"; id "kai_openings_nr_199"; eco "E15"; Opn "Queen's Indian 4.g3"; 
rn1qk2r/p3bppp/bpp1pn2/3pN3/2PP4/1PB3P1/P3PPBP/RN1QK2R b KQkq - bm Nfd7; c0 "20"; id "kai_openings_nr_200"; eco "E15"; Opn "Queen's Indian 4.g3";