'STS' Test Suite (v2.0): Open Files and Diagonals.. Released

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

Moderators: hgm, Rebel, chrisw

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: results

Post by bob »

swami wrote:I agree, Dann. However, I'd like to reply to this specific quote:
These tests are not intended to be super difficult like LCT II and the like. The intention is to have a battery of tests that are connected to a singluar concept.
Certainly, these suites are not intended to be difficult. Many stronger engines like Fruit, Bright,Glaurung can solve more than 80's. But there are engines like RDChess, MoneyPenny,ZCT, Romichess that can only solve 30/40/50 something. So this suite is certainly difficult for chess engines that are little weaker, and the authors are actively developing them to improve the strength, they either implement understanding or make tweaks to optimise the strength. We have too many test suites that are designed to assess the understanding of stronger engines... I feel weaker engines do deserve equal attention. :)
Yes, but you don't want to mix search and evaluation. That makes it harder for someone to tune to make their program better by solving your positions. That was my original point here. Quite a few of these are really tactical. It would be more useful to have a set of positions that only pick on weak pawn ideas, as an example. And which don't require a very deep search to accomplish this task. If they understand the concept in the first place. Many positional concepts are solved by deep search, which doesn't help you tune an evaluation.
swami
Posts: 6640
Joined: Thu Mar 09, 2006 4:21 am

Re: results

Post by swami »

bob wrote:
swami wrote:I agree, Dann. However, I'd like to reply to this specific quote:
These tests are not intended to be super difficult like LCT II and the like. The intention is to have a battery of tests that are connected to a singluar concept.
Certainly, these suites are not intended to be difficult. Many stronger engines like Fruit, Bright,Glaurung can solve more than 80's. But there are engines like RDChess, MoneyPenny,ZCT, Romichess that can only solve 30/40/50 something. So this suite is certainly difficult for chess engines that are little weaker, and the authors are actively developing them to improve the strength, they either implement understanding or make tweaks to optimise the strength. We have too many test suites that are designed to assess the understanding of stronger engines... I feel weaker engines do deserve equal attention. :)
Yes, but you don't want to mix search and evaluation. That makes it harder for someone to tune to make their program better by solving your positions. That was my original point here. Quite a few of these are really tactical. It would be more useful to have a set of positions that only pick on weak pawn ideas, as an example. And which don't require a very deep search to accomplish this task. If they understand the concept in the first place. Many positional concepts are solved by deep search, which doesn't help you tune an evaluation.
Well, I'd really need some examples from you. Can you post some positions later that define the kind of concept you're describing? preferrably together with the engine output to show what it's thinking. What positions would exactly fit in your understanding the positional chess, that couldn't be tactical in nature? Perhaps 4 or 5 positions in diagrammed format would help. Then I'd take your example as the first step to designing new suite of the similar ilk.
swami
Posts: 6640
Joined: Thu Mar 09, 2006 4:21 am

Re: 'STS' Test Suite (v2.0): Open Files and Diagonals.. Rele

Post by swami »

I would never run with 10mb. The default is 3mb to make it run on most any computer. But you should take the NPS * the time per search, and try

hash = NPS * time * 16 (size of entry) / 4
Yes, I should have maximised the hash size, I downloaded it only 2 days ago and had never gotten around to setting the right parameters for the new and recent downloads. When I get back home, I'll increase the hash size to something like 128/256 and see how it scores. As for the other engines, they are not recently released, so they use the old parameters, their hash sizes are certainly more than 64.
What is the "rated time" measurement???

In any case, the numbers are certainly far different from the ones I posted, which ought to be run about the same way. Note that the "noise N" command you are using is also causing a problem since it is finding many of those moves far earlier than the search output shows..
It's all outputted from Arena. I've no idea what "Rated Time" is supposed to signify. Perhaps I could get better results via a simple stuff such as gradual test.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: results

Post by bob »

swami wrote:
bob wrote:
swami wrote:I agree, Dann. However, I'd like to reply to this specific quote:
These tests are not intended to be super difficult like LCT II and the like. The intention is to have a battery of tests that are connected to a singluar concept.
Certainly, these suites are not intended to be difficult. Many stronger engines like Fruit, Bright,Glaurung can solve more than 80's. But there are engines like RDChess, MoneyPenny,ZCT, Romichess that can only solve 30/40/50 something. So this suite is certainly difficult for chess engines that are little weaker, and the authors are actively developing them to improve the strength, they either implement understanding or make tweaks to optimise the strength. We have too many test suites that are designed to assess the understanding of stronger engines... I feel weaker engines do deserve equal attention. :)
Yes, but you don't want to mix search and evaluation. That makes it harder for someone to tune to make their program better by solving your positions. That was my original point here. Quite a few of these are really tactical. It would be more useful to have a set of positions that only pick on weak pawn ideas, as an example. And which don't require a very deep search to accomplish this task. If they understand the concept in the first place. Many positional concepts are solved by deep search, which doesn't help you tune an evaluation.
Well, I'd really need some examples from you. Can you post some positions later that define the kind of concept you're describing? preferrably together with the engine output to show what it's thinking. What positions would exactly fit in your understanding the positional chess, that couldn't be tactical in nature? Perhaps 4 or 5 positions in diagrammed format would help. Then I'd take your example as the first step to designing new suite of the similar ilk.
Let me see what I can come up with.

I can think of a lot of positional ideas.

pawns:

backward
isolated
weak
passed
candidate passer
distant passer
doubled
mobile pawns / passers
immobile pawns/passers
connected passers
etc.

pieces
outpost knight / bishop
open diagonal for bishop
bad bishop
good bishop
bishop pair
rook on open file
rook behind passed pawn


king safety
pawn shelter
opening files / diagonals to king
coordinated pieces

All of those done with positions that don't require big searches so that it is an evaluation issue. For example, I have seen positions where black has pawns at f7, g7, and h7, white pushes pawns to g5/h5, and then plays h6 letting black play g6 and lock things up, where g6 forces a pawn exchange and opens a file to the king.
MattieShoes
Posts: 718
Joined: Fri Mar 20, 2009 8:59 pm

Re: 'STS' Test Suite (v2.0): Open Files and Diagonals.. Rele

Post by MattieShoes »

Interesting, I was trying something similar as I was reading this. Not for chess so much, but for other variants I'd like to implement. I know reasonable values for pieces in chess, but what's an average pawn worth in suicide? Or doubled pawns in crazyhouse, where pawn structure is not so permanent?

So to test the concept, I made a material only eval, handed it tonypos.epd (only 16 positions) and had it try to find piece values.
Obviously it needs to search deeper and have at least 100 times as many positions, but it seems to be generally moving in the right direction at least.
It started out with 1 2 3 4 5, and now it's around 1 2 3 4.6 9.6.

I'm thinking since the eval is only material, there are a bunch of scores which are equal, making for weird results. Well, that and the fact it's only sixteen positions...
jpqy
Posts: 550
Joined: Thu Apr 24, 2008 9:31 am
Location: Belgium

Re: 'STS' Test Suite (v2.0): Open Files and Diagonals.. Rele

Post by jpqy »

Thanks for this nice testsuite!!

I just want to compare these results to see how the chess engines act on my Core i7 920
with "HT ON" and "HT OFF" at the same speed.
And on different topic/forums there is always told to put HT OFF because HT ON is not
good for all chess engines!
But when i look to my results,i get always better results with HT ON!!
Just check my data...
Level: 5 Seconds for all tests!!

Core i7 920 @3.93Ghz with "HT OFF"
Bright0.4a
83 of 100 matching moves
11/04/2009 13:39:39, Total time: 0:09:46 Rated time: 01:55 = 115 Seconds
Crafty 23.0
70 of 100 matching moves
11/04/2009 14:40:24, Total time: 0:10:29 Rated time: 02:58 = 178 Seconds
Glaurung 2.2
73 of 100 matching moves
11/04/2009 14:07:54, Total time: 0:09:49 Rated time: 02:43 = 163 Seconds
TogaII 1.4.2JD
85 of 100 matching moves
11/04/2009 14:23:40, Total time: 0:09:44 Rated time: 01:44 = 104 Seconds

Core i7 920 @3.93Ghz with "HT ON"
Bright0.4a
83 of 100 matching moves
11/04/2009 16:11:04, Total time: 0:09:45 Rated time: 01:47 = 107 Seconds
Crafty 23.0 (even i put MT=8 it only use 50% cpu)
73 of 100 matching moves
11/04/2009 16:51:12, Total time: 0:10:30 Rated time: 02:43 = 163 Seconds
Glaurung 2.2
79 of 100 matching moves
11/04/2009 16:23:40, Total time: 0:10:04 Rated time: 02:11 = 131 Seconds
TogaII 1.4.2JD
87 of 100 matching moves
11/04/2009 16:38:17, Total time: 0:12:18 Rated time: 01:26 = 86 Seconds

JP.
MattieShoes
Posts: 718
Joined: Fri Mar 20, 2009 8:59 pm

Re: results

Post by MattieShoes »

Hmm, a possible solution for this would be using an EPD at a fixed depth, say 1 or 2 ply instead of X seconds. It'd run blazing fast too :-) Then you end up with essentially a static evaluation test.

In this case, the best move doesn't even have to be the actual *best move*, it just has to be the best move one could find within the horizon limitation.

I think this would actually be really useful for testing common eval situations with engines like RP/BN trades, QP/RR trades, open files, bishop pairs, hidden passers, unstoppable passers, correct evaluation of KB vs K, trading down pieces when ahead but not pawns, open files near a castled king, and so on. For those constructing an eval from scratch, it could act as sort of a quick and dirty sanity check.

I don't suppose such an EPD already exists, does it?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: results

Post by bob »

MattieShoes wrote:Hmm, a possible solution for this would be using an EPD at a fixed depth, say 1 or 2 ply instead of X seconds. It'd run blazing fast too :-) Then you end up with essentially a static evaluation test.

In this case, the best move doesn't even have to be the actual *best move*, it just has to be the best move one could find within the horizon limitation.

I think this would actually be really useful for testing common eval situations with engines like RP/BN trades, QP/RR trades, open files, bishop pairs, hidden passers, unstoppable passers, correct evaluation of KB vs K, trading down pieces when ahead but not pawns, open files near a castled king, and so on. For those constructing an eval from scratch, it could act as sort of a quick and dirty sanity check.

I don't suppose such an EPD already exists, does it?
No, but this has another fatal flaw. depth is not the same to all programs, which will again skew the results. Some programs might do 2 plies in a few microseconds. Others might take 30 seconds. ChessMaster is a program that is very selective and takes a long time to complete a depth. I've seen 1 ply searches take 60 seconds, where it finds a mate...
swami
Posts: 6640
Joined: Thu Mar 09, 2006 4:21 am

Re: 'STS' Test Suite (v2.0): Open Files and Diagonals.. Rele

Post by swami »

jpqy wrote:Thanks for this nice testsuite!!

I just want to compare these results to see how the chess engines act on my Core i7 920
with "HT ON" and "HT OFF" at the same speed.
And on different topic/forums there is always told to put HT OFF because HT ON is not
good for all chess engines!
But when i look to my results,i get always better results with HT ON!!
Just check my data...
Level: 5 Seconds for all tests!!

Core i7 920 @3.93Ghz with "HT OFF"
Bright0.4a
83 of 100 matching moves
11/04/2009 13:39:39, Total time: 0:09:46 Rated time: 01:55 = 115 Seconds
Crafty 23.0
70 of 100 matching moves
11/04/2009 14:40:24, Total time: 0:10:29 Rated time: 02:58 = 178 Seconds
Glaurung 2.2
73 of 100 matching moves
11/04/2009 14:07:54, Total time: 0:09:49 Rated time: 02:43 = 163 Seconds
TogaII 1.4.2JD
85 of 100 matching moves
11/04/2009 14:23:40, Total time: 0:09:44 Rated time: 01:44 = 104 Seconds

Core i7 920 @3.93Ghz with "HT ON"
Bright0.4a
83 of 100 matching moves
11/04/2009 16:11:04, Total time: 0:09:45 Rated time: 01:47 = 107 Seconds
Crafty 23.0 (even i put MT=8 it only use 50% cpu)
73 of 100 matching moves
11/04/2009 16:51:12, Total time: 0:10:30 Rated time: 02:43 = 163 Seconds
Glaurung 2.2
79 of 100 matching moves
11/04/2009 16:23:40, Total time: 0:10:04 Rated time: 02:11 = 131 Seconds
TogaII 1.4.2JD
87 of 100 matching moves
11/04/2009 16:38:17, Total time: 0:12:18 Rated time: 01:26 = 86 Seconds

JP.
You're welcome. Thanks for running the test, that's some pretty high score from Toga. My results confirm yours - Fruit is a top scorer, so no wonder Toga secures the same high score. It appears that Fruit has exceptional understanding of Open files and diagonals. Glaurung and Fruit are really close in strength but they are miles apart when it comes to understanding the pattern involved in Open files and diagonals. Interesting. Glaurung really needs improvement in this area. It could actually gain 50 more elo from this.

I'd like to see some other test results both with HT OFF and ON, to see if the consistency is maintained. Then your thesis could actually make a difference to naysayers.
User avatar
David Dahlem
Posts: 900
Joined: Wed Mar 08, 2006 9:06 pm

Re: 'STS' Test Suite (v2.0): Open Files and Diagonals.. Rele

Post by David Dahlem »

For anyone interested, i've converted this suite to the Gradual Test format ...

r4rk1/5pb1/2p3pp/pp2n3/1n3B2/1PN1PP1P/1P2BPK1/2R3R1 w - - bm Rgd1; c1 "10 "; id "Open Files & Diagonals.000;
1Q6/1b4pk/2q2b1p/1p1ppP2/1Pp5/2P2P1P/2BB2P1/6K1 b - - bm Qa6 Bc8 Qd7; c1 "10 5 7"; id "Open Files & Diagonals.001";
1bq3rk/R6p/5n1P/1N1p4/1PnP2p1/6P1/5B2/2Q2BK1 w - - bm Re7 Ra2 Rg7; c1 "10 5 2"; id "Open Files & Diagonals.002";
1k1r3r/1p1b1Q1p/p7/q3p3/4p3/2P1N3/P4PPP/R4RK1 w - - bm Rad1 Qf6 Rfd1 a4; c1 "10 7 7 2"; id "Open Files & Diagonals.003";
1qrr3k/1p2bp1p/1n2p1pP/p2pP3/P4B2/1PPB2P1/2R1QP2/3R2K1 w - - bm Bb5 Qe1 Qe3; c1 "10 2 2"; id "Open Files & Diagonals.004";
1r1n1rk1/3qp2p/P2p2p1/1p6/5pP1/1p3P1P/5PB1/R1QR2K1 w - - bm Bf1 Qb2 Qc3 Qd2; c1 "10 7 7 6"; id "Open Files & Diagonals.005";
1r1n2k1/5r1p/P2qp1p1/3p4/1p3pP1/1Q3P1P/R4P2/2R2BK1 w - - bm Rac2 Kg2 Qa4; c1 "10 5 4"; id "Open Files & Diagonals.006";
1r1q1nk1/p3bpp1/b1p1p2p/4P3/1P2NB2/P4N2/5PPP/2Q1R1K1 w - - bm Be3 Nd6 Rd1 h3; c1 "10 5 7 6"; id "Open Files & Diagonals.007";
1r1q4/5p2/2p4k/1n2p1pP/4P3/P4BR1/3Q1PKP/8 w - - bm Qc1 Qa2 Qe3; c1 "10 5 6"; id "Open Files & Diagonals.008";
1r1qbr1k/4bp1p/p3p2Q/3pP3/2pP4/P1N1PN2/1PR2RP1/6K1 b - - bm Rg8 Bc6 Bd7; c1 "10 1 4"; id "Open Files & Diagonals.009";
1r3k2/8/R7/4pPP1/P1p5/1nP5/R5P1/3rB1K1 w - - bm Rh6 Kf1 Rf6; c1 "10 6 6"; id "Open Files & Diagonals.010";
1r3rk1/2b3pp/p4p2/2p5/P1Np4/1P1R2P1/1P3P1P/2R3K1 b - - bm Rfe8 Rfc8 Rfd8; c1 "10 7 8"; id "Open Files & Diagonals.011";
1r5k/p7/3pQ1p1/1Np5/2P3P1/7P/1PK5/7q b - - bm Qf1 Qg2 Qh2; c1 "10 2 2"; id "Open Files & Diagonals.012";
1r6/4q3/2p2p1k/4p1pP/P2nP2P/5BR1/5PK1/2Q5 w - - bm Bg4 Bd1 a5; c1 "10 6 8"; id "Open Files & Diagonals.013";
1r6/7k/1p4r1/1P2p3/2P1p2P/2RbB3/6P1/2R4K w - - bm Ra1 Kg1 Kh2; c1 "10 7 8"; id "Open Files & Diagonals.014";
1r6/8/1r5p/p2pk3/4p3/2P4P/RP2B1n1/1RK5 b - - bm Rf6 Rf8 Rg6; c1 "10 8 6"; id "Open Files & Diagonals.015";
1rbr2k1/pp3pp1/q6p/4P3/3p1P2/6P1/P2QP1BP/R1R3K1 w - - bm Be4 Bf3 Qd3; c1 "10 4 5"; id "Open Files & Diagonals.016";
2b2n2/2q2p1k/1r6/2pPP1QB/2p1P3/2P4P/1P4P1/2B3K1 b - - bm Ra6 Kh7h8 Qc7b7 Rb6a6; c1 "10 3 5 4"; id "Open Files & Diagonals.017";
2r1k3/p5pp/1p2p3/7P/P2B2Q1/1bP5/R4PPK/4q3 w - - bm Re2 Qxg7 Rb2; c1 "10 4 4"; id "Open Files & Diagonals.018";
2r1q1k1/2p2rbp/p2p2p1/Q2P4/b3P3/3p2P1/3B1PBP/2R1R1K1 w - - bm Bh3 Bf1 e5; c1 "10 7 8"; id "Open Files & Diagonals.019";
2r1q2k/7p/p1np1P1P/8/1pP2R2/8/PP1Q4/R1KN2r1 b - - bm Qg6 Ne5 Qe5; c1 "10 4 2"; id "Open Files & Diagonals.020";
2r1q3/p1p1nk1p/4p2p/2R1Pp2/1P1Q4/P3N1P1/5P2/6K1 w - - bm Qh4 Rc1 Rc2 Rc4; c1 "10 6 9 6"; id "Open Files & Diagonals.021";
2r2k2/R4bpp/2p2p2/1pN5/1n3PP1/1P2P2P/8/5BK1 w - - bm Bg2 e4; c1 "10 6"; id "Open Files & Diagonals.022";
2r2rk1/1p1nbppp/p2p4/B2Pp1PP/5P2/1P6/P1P5/1K1R1B1R w - - bm Bh3 Bd2 Re1; c1 "10 5 6"; id "Open Files & Diagonals.023";
2r2rk1/4q1pp/p7/1pb1Pp2/5P2/1P1QB3/b3N1PP/2R1K2R b K - bm Rfd8 Bxe3 Kh8; c1 "10 5 3"; id "Open Files & Diagonals.024";
2r3k1/1b1n1npp/1pq2p2/8/1P1QP3/6P1/1B1NBP1P/3R2K1 w - - bm Rc1 Bg4 f3 f4; c1 "10 7 7 5"; id "Open Files & Diagonals.025";
2r3k1/p1pb2pp/3p1p1r/1p6/4P2q/1PQB2R1/PBP1N1P1/6K1 w - - bm Qa5 Bc1; c1 "10 10"; id "Open Files & Diagonals.026";
2r3n1/p1p3kp/1q2p2p/4Pp2/1P4N1/P5P1/1Q3P2/2R3K1 w - - bm Qd2 Ne3 Nf6; c1 "10 9 5"; id "Open Files & Diagonals.027";
2r5/1r4bk/4qn1p/3p1pp1/3P4/QP2P1P1/1B1NR2P/5RK1 b - - bm Rc2 Bf8 Kg8 Rbc7; c1 "10 8 3 9"; id "Open Files & Diagonals.028";
2rq2k1/1p3pb1/1n4pp/pP2p3/P1b1P3/2N4P/2B1NPP1/R1Q3K1 b - - bm Bg7f8 Bg7f6 Qd8d6; c1 "10 8 7"; id "Open Files & Diagonals.029";
2rq2k1/4rpp1/p3p3/P2n2pP/2pPR3/2P3B1/2Q2PP1/R5K1 b - - bm Rb7 Ra7 Rd7; c1 "10 4 3"; id "Open Files & Diagonals.030";
2rr1b2/3q3k/p4n1p/1p1p2p1/2nNp3/P1N2PQ1/1PP3PP/R1BR2K1 b - - bm Bd6 Bc5 Bg7; c1 "10 7 5"; id "Open Files & Diagonals.031";
3Q4/5pk1/4p1p1/3pb2p/P3q2P/1r4P1/2R2P1K/2R5 b - - bm Bf4 Ra3 Rd3; c1 "10 3 4"; id "Open Files & Diagonals.032;
3b2k1/1p1b4/4p2B/1n1p1p2/pN6/P2P4/1PR3PP/7K w - - bm Be3 Bf4 Re2; c1 "10 7 7"; id "Open Files & Diagonals.033";
3q2k1/5rpp/r1pPp3/1bQn4/p2B4/4P1P1/1P1R2BP/R5K1 w - - bm Bh3 Rc1 Rc2; c1 "10 8 7"; id "Open Files & Diagonals.034";
3q4/7k/3ppp2/p3n2B/P1r1P2P/8/1PPQ4/1K3R2 w - - bm Rg1 Qe3 Qg2; c1 "10 7 5"; id "Open Files & Diagonals.035";
3r1k2/R4bpp/2p2p2/1pN5/1n3PP1/1P2P2P/6B1/6K1 w - - bm Be4 Bf3 g5; c1 "10 2 3"; id "Open Files & Diagonals.036";
3r1r2/p5k1/1pnpP2p/6p1/2P3P1/4P3/P1B1K1P1/3R3R w - - bm Ba4 Rdf1 Rhf1; c1 "10 6 7"; id "Open Files & Diagonals.037";
3r2k1/4q1pp/p7/1p2Pp2/5P2/1P2Q3/b5PP/2N1K2R b K - bm Bb1; c1 "10"; id "Open Files & Diagonals.038";
3r2k1/R7/1p3np1/1P1b4/1p6/5PqP/2Q3P1/3R2K1 b - - bm Re8 Rf8; c1 "10 4"; id "Open Files & Diagonals.039";
3r2k1/pp1q1ppp/4rnn1/3p4/P1pP4/2P1P2P/1BQN1PP1/RR4K1 w - - bm Ba3 Qd1 Qf5; c1 "10 4 4"; id "Open Files & Diagonals.040";
3r3k/1p2R2p/pP4p1/8/2rp1p2/5P2/2P3PP/4R1K1 w - - bm Rc7; c1 "10"; id "Open Files & Diagonals.041";
3r3k/p1q2ppp/5b2/3Pp3/2p4P/P4BQ1/1PP3P1/1K5R w - - bm Rh1f1 Bf3e4 Rh1e1 h4h5; c1 "10 10 4 1"; id "Open Files & Diagonals.042";
3r4/3pkpp1/4p3/2p3q1/6r1/1P6/P5B1/2R1RQK1 b - - bm Rh8 Ra8 f5; c1 "10 1 1"; id "Open Files & Diagonals.043";
3r4/3q2bk/3rp1p1/1p5p/4QP2/R1Pp2P1/P2B1R1P/6K1 b - - bm Rc8 Rc6 Re8; c1 "10 6 6"; id "Open Files & Diagonals.044";
3r4/p2rppk1/2R3p1/4q3/3b4/PP4P1/2QRNP2/5K2 b - - bm Qh5 Bb6 Qd5; c1 "10 2 2"; id "Open Files & Diagonals.045;
3rr1k1/1p2bppp/p1p5/P2P3q/2B1PPb1/1P1R4/3B1QP1/4R1K1 w - - bm Bc3 b4 f5; c1 "10 8 4"; id "Open Files & Diagonals.046";
3rr1k1/pp2q1bp/n1p1P1p1/5p2/P2N1Pb1/1BP5/6PP/R1B1QRK1 w - - bm Ba3 Ra2 h3; c1 "10 5 5"; id "Open Files & Diagonals.047";
4b2k/1q2bprp/pr6/3pP3/2pP4/P4N2/1P3RPQ/3N1RK1 b - - bm Bd7 Bd8 Rg8; c1 "10 8 1"; id "Open Files & Diagonals.048";
4k2r/p2n3p/4q1pQ/1p2b2P/8/P1P2R2/1P4P1/K4R2 w - - bm Rd1 Re1 Re3; c1 "10 9 5"; id "Open Files & Diagonals.049";
4qrk1/pb4p1/2p1p2p/PpP1Pr2/1P2QP1R/2B3P1/6R1/6K1 w - - bm Rd2 Be1 Ra2; c1 "10 9 9"; id "Open Files & Diagonals.050";
4r1k1/3q1ppb/2p5/2Pp1P1p/p2P3P/P3P1PB/5Q1K/4R3 w - - bm Rb1 Qf4 Re2 Re2; c1 "10 5 2 5"; id "Open Files & Diagonals.051";
4r1k1/R5p1/4b2p/1p2P3/7P/P1nP4/6PK/4R3 w - - bm Rc1 Ra6 d4; c1 "10 7 6"; id "Open Files & Diagonals.052";
4r1k1/pbq2rpp/1p2p3/4P2P/P1p4Q/1nP1B3/R1B2PP1/1R4K1 w - - bm Bg6 Qg5 Rd1 a5; c1 "10 1 3 4"; id "Open Files & Diagonals.053";
4r2k/1pp1n1pp/pb3r2/6Nq/P2P4/2PQ2P1/1R3RKP/2B5 w - - bm Rbe2 Rf3 Rxf6 a5 h3 h4; c1 "10 4 3 3 4 3"; id "Open Files & Diagonals.054";
4rrk1/1b3pp1/1q3b1p/p2p1P2/3N4/2P3N1/1P3QPP/1R3R1K b - - bm Ba6; c1 "10"; id "Open Files & Diagonals.055";
5b2/1p1q3n/pB1p2k1/P4N1p/6pP/4R3/6P1/5RK1 w - - bm Bd4; c1 "10"; id "Open Files & Diagonals.056";
5k2/ppQbbp1p/8/5p2/P7/1P6/4KPPP/q4B1R b - - bm Bb4 Qa2+ Qb2; c1 "10 2 2"; id "Open Files & Diagonals.057";
5r1k/6p1/p1n1pr1p/2P1p2q/P5RN/4Q2P/5PP1/2R4K w - - bm Rb1 Qd3 Rd1; c1 "10 6 7"; id "Open Files & Diagonals.058";
5rk1/p3qpb1/1p5p/5Q2/P7/1B2P3/1p3PPP/5RK1 b - - bm Rd8 Qb4 Qe5; c1 "10 6 5"; id "Open Files & Diagonals.059";
5rk1/p7/1n1q1p2/1Prp1pNp/8/5NPP/P2Q1PB1/5RK1 w - - bm Re1 Qe3 a4; c1 "10 4 3"; id "Open Files & Diagonals.060";
5rk1/pp4p1/5rnp/3p1b2/2p2P2/P1P3P1/2P1B2P/R1B1R1K1 w - - bm Bf3 Bd1 Be3; c1 "10 2 7"; id "Open Files & Diagonals.061";
6k1/1b3p2/p2q2p1/P2Pp2p/1p2Pb1P/1Br5/Q4PP1/3RN1K1 b - - bm Bc8; c1 "10"; id "Open Files & Diagonals.062";
6k1/1q3rpp/5n2/Rp2r3/4p3/1B5P/3BQPP1/6K1 w - - bm Be3 Bc3 g3; c1 "10 5 5"; id "Open Files & Diagonals.063";
6k1/1q5p/5np1/pb1pNp2/3P1B1P/1Q6/1P2PP2/6K1 w - - bm Qa3 Qa2 Qc3; c1 "10 6 7"; id "Open Files & Diagonals.064";
6k1/2q4p/r3b1p1/2P1p3/r7/4QP2/p1RN2PP/R5K1 b - - bm Rb4 R6a5 Ra8; c1 "10 8 8"; id "Open Files & Diagonals.065";
6k1/pb4p1/1p1b2q1/1P1p3p/3Pn3/P1r2N1P/4QPB1/2B1R1K1 b - - bm Bc8 Bb8 Rc4; c1 "10 5 7"; id "Open Files & Diagonals.066";
6k1/q4p2/2b1p2p/4Pp2/pP3N2/Q4PP1/6KP/8 b - - bm Qd4 Bb5 Qb8; c1 "10 9 6"; id "Open Files & Diagonals.067";
6r1/1R6/1bp1knp1/pp1n3p/4pP1P/1PN3B1/1P3PB1/5K2 w - - bm Bh3 Nxd5 Nxe4; c1 "10 6 6"; id "Open Files & Diagonals.068";
6r1/4bbk1/p3p1p1/Pp1pPp2/3P1P2/2P2B2/3B2K1/1R6 b - - bm Rh8 Bd8 Be8 g5; c1 "10 7 7 7"; id "Open Files & Diagonals.069";
6rk/1n4bp/p3R2r/1p1P1Pp1/1P6/P1pB2P1/5P2/2R3K1 b - - bm Rc8; c1 "10"; id "Open Files & Diagonals.071";
8/2b1rk2/2b1p1p1/5n2/p1pP2Q1/2p3P1/P4P2/2B1RK2 w - - bm Bg5 Ba3 Bf4; c1 "10 5 4"; id "Open Files & Diagonals.072";
8/3q1pk1/3p4/2pB2p1/P2n4/1P4BP/6P1/4R1K1 b - - bm Qf5 Kh6 g4; c1 "10 3 5"; id "Open Files & Diagonals.073";
8/3r1k2/2p3p1/1pPb1p2/p7/P1B2P2/4BK2/3R4 w - - bm Rh1 Bd3 Rd4; c1 "10 5 6"; id "Open Files & Diagonals.074";
8/5r1k/p3b1pp/4p1q1/P3Pn2/2B1N2P/3R1PPK/3Q4 w - - bm Qb1 Ba1 Bb2; c1 "10 5 5"; id "Open Files & Diagonals.075";
8/5r2/1pp2p1R/p3n3/4Pp1p/2P2P1k/4K2P/R7 b - - bm Rg7 b5; c1 "10 3"; id "Open Files & Diagonals.076";
8/p1r3kp/r3p1p1/PRp1n1P1/7R/8/4K2P/7B b - - bm Rd6 Nd7 Nf7; c1 "10 5 7"; id "Open Files & Diagonals.077";
8/p1rb3k/1p1b1p1p/3q1p2/1P1P4/P1n1PPP1/3N3P/R1R2Q1K b - - bm Bb5 Kg6 Kh8 h5; c1 "10 5 3 3"; id "Open Files & Diagonals.078";
b1r3k1/3n1pb1/p2q2p1/P2Pp2p/1p2P2P/1Rr1NN2/Q1B2PP1/3R2K1 b - - bm Bh6; c1 "10"; id "Open Files & Diagonals.079";
q1b2k2/5ppp/2n5/P1N1n3/8/2PpB1P1/3N1P1P/R4RK1 w - - bm Rfb1 Rfe1 a6; c1 "10 7 7"; id "Open Files & Diagonals.080";
q4rk1/5ppp/p1r4b/2p1p3/Q3P2P/1R4P1/5PK1/3R1B2 w - - bm Rd7 Bc4 Rf3; c1 "10 7 3"; id "Open Files & Diagonals.081";
r1b2r1k/1p2qpb1/1np3pp/p7/3P4/PBN2N2/1PQ2PPP/3R1RK1 w - - bm Rfe1 Qc1 Qd2 h3; c1 "10 7 6 7"; id "Open Files & Diagonals.082";
r1b2rk1/4bpp1/7p/1B1pP3/3B4/8/1PP3PP/2KR3R b - - bm Bg4 Bf5 Ra5; c1 "10 9 8"; id "Open Files & Diagonals.083";
r1b2rk1/pp3pb1/1npN1qpp/2P5/1PBp4/P4NPP/5P2/2RQ1RK1 w - - bm Re1 Nxc8 Qd3; c1 "10 7 7"; id "Open Files & Diagonals.084";
r1b3k1/4brp1/p6p/1p1p4/3B4/8/PPP3PP/2KR1B1R w - - bm Bd3 Be3 Kb1; c1 "10 4 2"; id "Open Files & Diagonals.085";
r1b3k1/pp2qrpp/1n6/1Bb1Pp2/3p1P2/7Q/PP1BN1PP/R3K2R b KQ - bm Be6 a6; c1 "10 2"; id "Open Files & Diagonals.086";
r1b3kr/p3qpp1/1pn1p2p/3pP2P/7n/3B3Q/2P2PPN/1RB1R1K1 w - - bm Ba3 Qg3; c1 "10 4"; id "Open Files & Diagonals.087";
r1br2k1/p4p2/1qp4p/1p2P1p1/6n1/5NP1/PP2QN1P/R1B2BK1 b - - bm Be6 Bf5 b4; c1 "10 3 4"; id "Open Files & Diagonals.088";
r3r1k1/2q2pp1/1pp2np1/4p3/nP2P1P1/P3Q2P/3R1PB1/B1R3K1 w - - bm Bf1 Bf3 Rdc2; c1 "10 5 6"; id "Open Files & Diagonals.089";
r3r1k1/ppn2ppp/2p5/5P2/P7/2N4P/1PP5/R1B2RK1 w - - bm Bf4 Kg2 Rd1 f6; c1 "10 7 7 6"; id "Open Files & Diagonals.090";
r3r2k/2R4p/3B2b1/p7/1p2p3/6PP/PPP4K/4R3 w - - bm Bc5 c3 c4; c1 "10 7 7"; id "Open Files & Diagonals.091";
r4rk1/1p2pp1p/3p1np1/q2P1P2/2P3BQ/pP5R/P1R3PP/7K w - - bm Re2 Be2 fxg6; c1 "10 2 4"; id "Open Files & Diagonals.092";
r4rk1/1p2ppbp/1q1p2p1/p1nP1P2/2P3B1/5R2/PPRB2PP/1Q5K w - - bm Qe1 Bg5 Rh3; c1 "10 4 5"; id "Open Files & Diagonals.093";
r4rk1/6b1/2p1N1p1/8/p2p3R/8/R4P1P/5K2 b - - bm Rfb8 Rf6 c5; c1 "10 6 8"; id "Open Files & Diagonals.094";
r4rk1/ppp1qp1p/1n4p1/4P3/6Q1/1N6/PP3PPP/2R1R1K1 b - - bm Rad8 Nd5 Rfd8; c1 "10 5 6"; id "Open Files & Diagonals.095";
r5k1/p1q2pbp/Ppp1bnp1/4p1B1/Q1P1P3/2N4P/1P2BPP1/5RK1 w - - bm Rd1 Be3 Rc1 b4; c1 "10 1 8 1"; id "Open Files & Diagonals.096";
r5k1/p4nbp/2qN2p1/2P2p2/3p1B2/6P1/P2Q1P1P/3R2K1 w - - bm Qe2 Nxf7 Qd3; c1 "10 8 7"; id "Open Files & Diagonals.097";
r6k/p3Npb1/q5pp/1p2p3/1B6/PPP3P1/3R1P1P/3R2K1 b - - bm Qf6 Qb7 Qe6; c1 "10 8 10"; id "Open Files & Diagonals.098";
r7/3b1pk1/6p1/3Pp2p/2P4P/p4B2/5PP1/2R3K1 b - - bm Bf5 Kf6 Kf8; c1 "10 6 5"; id "Open Files & Diagonals.099";
rbbrqnk1/pp3pp1/2p2n1p/5N2/3P1P2/1BN4P/PPQB2P1/R4RK1 w - - bm Rae1 Rfe1; c1 "10 5"; id "Open Files & Diagonals.100";

Regards
Dave