11-men tablebases (XQ)

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

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

11-men tablebases (XQ)

Post by hgm »

Xiangqi has a 40% larger board (9x10) than Chess. This would drive up the size of tablebases, were it not that many pieces cannot access the entire board, but only a small part of it. The Kings are limited to the 9-square palace, the Advisors even to 5 squares of the same 'shade' inside that Palace. Elephants are limited to 7 squares on your own board half. The set of squares accessible to Elephants intersects the Palace only in a single square, not accessible to Advisors. This means the Palace occupation and Elephant placement hardly interfere with each other. The Palace can be quite crowded, however. Of the 9x5x5 = 225 possible placements of King and two Advisors only 140 are non-broken (i.e. have not more than a single piece on each square), and only 70 of these represent different board states (as exchanging the Advisors does not alter the state).

It thus becomes attractive to treat the Palace, as well as the Elephant placement, as 'pseudo-pieces' (similar to Nalimov's treatment of the King-pair as a pseudo-piece): just represent the entire Palace state as a number, and use tables to decode that number to actual placement of the pieces, and to encode the placement. If we also include the board states with one or no Advisors(or Elephants) in this encoding, there are 119 Palace states, and 29 Elephant states. That makes 3451 Palace/Elephant combinations (some of them broken because an Elephant and King occupy the same square). This is comparable to the 3612 possible legal positions you can have with two Kings on an 8x8 Chess board. So the entire set of defensive pieces, in each possible composition and constellation, adds about as much complexity as a single extra piece in Chess.

That means that with Kings + (0-4) defenders for both sides you have 11.9M positions (all of which of course are dead draws). Adding one piece that can go anywhere (e.g. a Rook) multiplies this by 90, which would fit in under 1GB with 1 byte per position (to hold the DTM). In fact there is left-right symmetry, and making use of that could cut that in half. This set would not only contain the 11-men EGT, but also all successor EGT that could result from it by capture of defenders. (Capture of the Rook would mean an automatic draw if the move doing it was legal.)

But actually taking account of the defenders of the strong side seems over-doing it, as there is nothing to defend against. In fact the defenders are a hindrance, because they might obstruct the strong King's forward gaze, which in Xiangqi is as good as a Rook against the opponent King, which is not allowed to see eye to eye. So normally you would move your defenders out of the way (no Elephant in the Palace, and the Advisers on a rank behind the King, so the King kan stare the opponent King to doom. After you achieve that there are basically only 3 essentially different states of the strong King: which of the three Palace files it is on. There would also never be any reason for the Rook to go through its home territory: there is always one rank on enemy territory (passing just in front of the Palace) that will be free of enemy pieces, (not even Elephants can go there), and thus can be used for lateral transport of the Rook. So you can solve the K+R vs K+2A+2E end-game with only 3451 x 3 x 45 = 455K positions. This EGT could also be probed for end-games where the strong side has defenders, provided these do not obstruct the strong Kings forward view and lateral movement, and the Rook is on the enemy board half. It would not take many moves to reach such a position from an arbitrary position where you entered the KRAAEEKRAAEE end-game (if you were not already there to start with).

So having the full 11-men EGT might offer very little advantage. Of the 3451 states of the strong side's defenders many are actually equivalent. E.g. it would be totally irrelevant where the Elephants are, as long as they are not in the Palace, and the Rook is not behind them. There are 36 Palace states where all (2, 0 or 1) Advisers are behind the King, which can be combined with 22 Elephant states that have no Elephants in the Palace. For all of these the EGT part with the Rook on the opponent half would be identical to that without any strong-side defenders. So the latter can satisfy a lot of probes of the 11-men EGT.

I guess there is little excuse for not equipping my engine with the KRKAAEE EGT. (Which contains some very hard-to-find wins.) Building the 11-men is also quite feasible, and perhaps storing the differences for any strong-side-defender-constellation slice of it with the KRKAAEE would only require very little extra space, as in a very large part of many such slices there would be no difference at all. Which would make the difference highly compressible.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: 11-men tablebases (XQ)

Post by Sven »

hgm wrote:That means that with Kings + (0-4) defenders for both sides you have 11.9M positions (all of which of course are dead draws). Adding one piece that can go anywhere (e.g. a Rook) multiplies this by 90, which would fit in under 1GB with 1 byte per position (to hold the DTM). In fact there is left-right symmetry, and making use of that could cut that in half. This set would not only contain the 11-men EGT, but also all successor EGT that could result from it by capture of defenders.
I know almost nothing about Xiangqi but can you explain briefly why you say that you could build "the" 11-men EGT by taking both Kings, 0-4 defenders for both sides and then adding one piece that can go anywhere? Isn't that only a small part of all 11-men positions containing *exactly* 4 defenders for both sides (not "0-4") and therefore missing those 11-men positions with 2, 3 or more pieces that can go anywhere?
User avatar
hgm
Posts: 27795
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: 11-men tablebases (XQ)

Post by hgm »

It was not my intention to claim I could build ALL 11-men XQ tablebases. In my terminology a 'tablebase' is the table that specifies the DTx for all positions with a given material composition. In XQ Kings are confined to the 3x3 Palace, so two Kings roughly represent the same complexity as a single man in normal Chess. That allows you to handle one more 'ergodic' piece (i.e. one that can go anywhere) than in Chess, although the 40% larger board quickly eats up that advantage. E.g. Rook + Canon versus Cannon + 2 Horses, a 7-men, and it would be already ~6 times larger than a 6-men Chess EGT with Pawns (81*90^5 vs 64^6). There never is 8-fold symmetry in XQ, because the always-present Palaces break the symmetry in the same way as the presence of Pawns would. So there only is left-right reflection, and exchange symmetry of equal pieces.

An advantage compared to Chess is that Pawns do not really promote (they just have more moves when on the opponent half), so you do not have the problem that for generating tablebases with Pawns you would get an explosion of successor EGTs due to all kind of underpromotions. Effectively Pawns are pieces with 3 moves (forward and sideways) which can only occur on the opponent half (plus 2 squares on your own half, where they can move only straight ahead). So the 'Pawn zone' contains only 47 squares (similar to the 48 in Chess, but without the possibility to ever convert to a more mobile piece by promotion).

End-games with only ergodic pieces and Pawns are not very common, however. Usually the losing side still has 1 or 2 Palace guards (A, with access to only 5 squares) and/or 1 or 2 Elephants (E, with access to 7 squares on their own board half). So where in Chess the Elementary end-games you have to know to be able to win end-games are KQK and KRK, for XQ this is KRKd where 'd' represents any number of 'defensive pieces' that could never harras the opponent King (d = AAEE, AAE, AEE, AA, AE, EE, A, E or -). The usual path for winning such end-games is eroding the defense by gaining the defensive pieces one by one, until the losing King gets so exposed that you can checkmate it. This replaces the driving of a bare King to a corner in Chess. (Because of the small Palace the King in XQ is basically always cornered.) In barely-won cases this eroding of the defense can be pretty difficult and tedious; KRKAAEE in most cases is a fortress draw, but if the defending side loses a single piece before he can reach the fortress position, it becomes a sure win.

So I am primarily interested in end-games like KRKd, KHKd, KHHKd, KHPKd, KHPPKd, with a d-content that makes them occasional and difficult wins. The problem is that the winning side usually has defensive material as well. This is basically completely useless, as there is no way for the weak side to attack the strong side's king if none of his pieces can go to that board half. But they can be in the way, because XQ has the rule that the two Kings cannot be in the same file if there is nothing in between, and this allows the strong side to use kis King as a Rook that can only capture Kings. Which is often essential to force the win. You don't want your own defensive pieces to hinder your King in making these pseudo-attacks on the enemy Palace, and that is easy to achieve by moving all your defenders to the back-rank, and stepping your own King in front of there. That basically reduces the problem to one where the attacking side has no defensive pieces (where the strong-King file is the only relevant game-state parameter).

The trick, however, is to recognize that equivalence in probing the EGT. (E.g. if your Rook is still on your own board half its sideway motion could be blocked by your King, which would make the King rank relevant.) To get the attacking King in front of its defenders also takes time, and this would potentially give the defending side the opportunity to organize his defense, and build the fortress he needs to draw. So with the Rook (or other ergodic pieces) on your own half the attacking King rank and location of defensive pieces does become relevant. One way to treat that would be to just build a partial EGT for KRKd, only containing Rook locations on the enemy board half (where it can never be hindred by its own King and defenders). And probe that also when the strong side has defenders, but all behind his own King. And then rely on the search to reach such a position in KRdKd before it can start probing. This would require a few ply of extra search. But it would free you from the need of having a 3451 times larger EGT (in terms of number of positions) that also contains all positions with strong-side defensive pieces. OTOH this extra information might be highly compressible, if you store it as the difference with the case when there were no defenders, as in many cases it would make no difference at all.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: 11-men tablebases (XQ)

Post by Evert »

That is very neat indeed. Is it feasible to do the generation "on-the fly"? That way you could reduce the search-space if the attacking king is already where it needs to be (you only need one king-slice) and you don't need to worry about defensive pieces that are already gone.
How do you solve the problem with chases? I guess you don't encounter any if the defending side has no attacking pieces?

Damnit, now you've made me want to go back and tinker with my old XiangQi program again...
User avatar
hgm
Posts: 27795
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: 11-men tablebases (XQ)

Post by hgm »

Well, I finally have something that seems to work. For the half-board 7-men. The idea was to adapt my simple symmetry-less 4-men EGT generator for normal Chess, which I use to determine 3-vs-1 mating potential on arbitrary boards. But I basically had to rewrite everything. Unlike Chess pieces, the 4 'pseudo-pieces' I used (palace, elephants, Rook and king-file) all needed quite different treatment. And I had to add uncaptures as well.

But for KRKAAEE I now get this:

Code: Select all

C:\cygwin\home\egtb>XQ
allocate 0 bytes at 550048
        mated    mate
King captures 0
mates    4654         ( 0.00 sec)
in-1     5283   32154 ( 0.01 sec)
in-2     2561    8526 ( 0.01 sec)
in-3     3702   10014 ( 0.01 sec)
in-4     3235    9228 ( 0.01 sec)
in-5     3531    9612 ( 0.02 sec)
in-6     3548    9966 ( 0.02 sec)
in-7     4657    9802 ( 0.02 sec)
in-8     4991    9882 ( 0.03 sec)
in-9     4472   10198 ( 0.03 sec)
in-10    3783    8888 ( 0.03 sec)
in-11    3031    7647 ( 0.04 sec)
in-12    2758    5619 ( 0.04 sec)
in-13    1959    4359 ( 0.04 sec)
in-14    2108    4008 ( 0.05 sec)
in-15    1582    3485 ( 0.05 sec)
in-16    1137    2529 ( 0.05 sec)
in-17     612    1545 ( 0.05 sec)
in-18     510    1175 ( 0.06 sec)
in-19     300     854 ( 0.06 sec)
in-20     221     501 ( 0.06 sec)
in-21     181     228 ( 0.06 sec)
in-22     132     185 ( 0.06 sec)
in-23      98     205 ( 0.07 sec)
in-24      45     198 ( 0.07 sec)
in-25      36      78 ( 0.07 sec)
in-26      18      47 ( 0.07 sec)
in-27       2       6 ( 0.07 sec)
in-28       1       1 ( 0.07 sec)
in-29       0       0 ( 0.08 sec)
won:     150940 ( 32.4%)
lost:     59148 ( 12.7%)
avg:        9.1 moves
The generation only takes 0.08 sec. But that is only considering the King file and half a board for the Rook. With all combinations of white defensive pieces and a full board (the 11-men plus all successors) the size would double from theRook board, and multiply by 1150 from having 3451 palace+elephants stats instead of 3 king files. But 2300 x 0.02 is still only 184 sec. Except that of course it would not fit in L3 anymore, which it does now.

The numbers above are totals for all KRKd combinations. To see if they are reasonable, I split the stats on the lost positions into a full defense (d = AAEE), and all others. The others are supposed to be 'sure wins' for the Rook. Full defense against Rook is a fortress draw. This gives the following table:

Code: Select all

    full        other
  0. 125641 124963
  2.  40506  65592
  4.  24450  25585
  6.   1872   2782
  8.   1946   3337
 10.    358   2203
 12.    380   3322
 14.     20   3215
 16.      4   3527
 18.     12   3536
 20.     34   4623
 22.     61   4930
 24.    147   4325
 26.    108   3675
 28.    216   2815
 30.    255   2503
 32.    305   1654
 34.    404   1704
 36.    367   1215
 38.    337    800
 40.    248    364
 42.    218    292
 44.    155    145
 46.    137     84
 48.    106     75
 50.     55     77
 52.     36     62
 54.     24     21
 56.     27      9
 58.     18      0
 60.      2      0
 62.      1      0
total  7853  51295 105752 202047
The left column is 2*DTM+6, i.e. the '6' entry are the checkmates. '4' lists broken positions (coinciding pieces), '2' gives 'King-stares', and '0' the draws. The last two numbers in the 'total' line is for the 'won' positions (i.e. white to move), which are not diversified by DTM in the generator. There are some 250,000 positions with incomplete defense. The generator says some 80% of these are won, with the strong side to move. That seems a bit low, for a 'sure win'. So I still need to find some way to verify this.
User avatar
hgm
Posts: 27795
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: 11-men tablebases (XQ)

Post by hgm »

OK, I found a way to check consistency. (This was not trivial, because the normal way of checking whether all mated-in-N positions lead to only mate-in-N or faster could not be used, as the generator does not save the mate-in-N values, but only keeps won/non-won info for the positions with white to move.) This brougt to light several bugs in the elephant blocking. (Which needed special treatment, as the Elephants are blocked on squares they cannot go to, and which are thus not part of the EGT.) Another bug was that absent A or E where imagined to be on the corner square for the purpose of detedcting collisions with the Rook.

This is now fixed, and I get the following result:

Code: Select all

C:\cygwin\home\egtb>XQ
allocate 0 bytes at 420048
        mated    mate
King captures 0
mates    4654         ( 0.01 sec)
in-1     6419   32610 ( 0.01 sec)
in-2     3467   10728 ( 0.01 sec)
in-3     5697   12263 ( 0.02 sec)
in-4     6647   11874 ( 0.02 sec)
in-5    10231   16838 ( 0.03 sec)
in-6    14846   22151 ( 0.03 sec)
in-7    14045   27020 ( 0.04 sec)
in-8    12911   21774 ( 0.05 sec)
in-9    14118   19665 ( 0.05 sec)
in-10   16715   20560 ( 0.06 sec)
in-11   17055   22282 ( 0.07 sec)
in-12   16605   19571 ( 0.07 sec)
in-13   15739   14523 ( 0.08 sec)
in-14   14491   12340 ( 0.09 sec)
in-15   13499    9727 ( 0.09 sec)
in-16   11070    7416 ( 0.10 sec)
in-17    6624    4900 ( 0.10 sec)
in-18    3934    2719 ( 0.11 sec)
in-19    3551    1772 ( 0.11 sec)
in-20    3148    1676 ( 0.11 sec)
in-21    2908    1426 ( 0.11 sec)
in-22    2562    1374 ( 0.12 sec)
in-23    1816     856 ( 0.12 sec)
in-24     938     544 ( 0.12 sec)
in-25     592     320 ( 0.12 sec)
in-26     336     252 ( 0.13 sec)
in-27     128      98 ( 0.13 sec)
in-28     104      84 ( 0.13 sec)
in-29      30      26 ( 0.13 sec)
in-30       0       0 ( 0.14 sec)
won:     297389 ( 63.8%)
lost:    224880 ( 48.3%)
avg:       12.6 moves

     defense:
     full   compromised
  0.  66870  21256    (draw)
  2.  40506  65592    (King stares)
  4.  24450  22331    (broken)
  6.   1872   2782    (mated)
  8.   1990   4429
 10.    486   2981
 12.    380   5317
 14.     20   6627
 16.      6  10225
 18.     32  14814
 20.    138  13907
 22.    409  12502
 24.    796  13322
 26.   1951  14764
 28.   3273  13782
 30.   4643  11962
 32.   6105   9634
 34.   6777   7714
 36.   6821   6678
 38.   6188   4882
 40.   4698   1926
 42.   3926      8
 44.   3551      0
 46.   3148      0
 48.   2908      0
 50.   2562      0
 52.   1816      0
 54.    938      0
 56.    592      0
 58.    336      0
 60.    128      0
 62.    104      0
 64.     30      0    (mated in 29)
total 66624 158256 164958 252250
This is much more credible: the number of won positions with white (the Rook side) to move is now indeed about 250,000. That is in agreement with their description as a sure win. The situation with full defense can be best judged by looking at the number of lost (i.e. black to move) positions (the won positions are dominated by those where a defender was hanging). This still is about half of what we have with incomplete defense. White the total number of positions is not that different: there are 119*29 = 3451 total constellations of K+defenders (112 broken due to K-E collision), and 70*21 = 1470 with the full KAAEE (60 broken). So less than half of the defender constellations is 'full defence'.

If I count 1410 non-broken KAAEE constellations, times 40 locations of the Rook on the enemy board half (45 squares - 5 occupied) times 3 King files there are 169,200 positions with full defense. And 66,624 of those (39%) would be won. So KRKAAEE can go either way, and it can take 58 ply to figure out the result. Which makes it so important to have the EGT.
User avatar
hgm
Posts: 27795
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: 11-men tablebases (XQ)

Post by hgm »

The partial EGT is working better than I expected. I now built probing code in the engine, which uses a heuristic for positions not found in the EGT. (These are when the Rook is on your own board half, potentially hindered by your own defenders, or when these defenders are obstructing the forward King view. Or with the strong side to move.) This heuristic doubles the naive (PST-based) evaluation if the weak side does not have full defense (a 'sure win'), and divides it by 4 when he has (usually draw). In this case the search continues. When it does hit the EGT, this produces either a mate score, or divides the PST-based eval by 8 (when the EGT says draw). It also awards a minor bonus for 'activating' the strong King by moving it forward and move the Elephant out of the way.

This works quite well. The following position

3ak1e2/4a4/4e4/9/9/6E1r/9/3A1A2E/3K5/9 b 23 1

would be a 'longest win' for black without the black defenders. The latter are obstructing the black King, however, and thus causes a probe miss. It seems quite hard to see material gain in this position, even with the heuristic: no progress after 36 minutes of searching!

Code: Select all

dep	score	nodes	time	(not shown:  tbhits	knps	seldep)
 24	+2.36 	2.81G	36:21.95	i4h4 f2e1 e7c9 d1d0 h4h0 d0d1 h0e0 e1f2 g9i7 d2e1 e9f9 g4e2 i7g9 i2g4 f9f8 e1d0 f8f7 d0e1 e0b0 g4i2 b0b4 d1d0 b4d4 d0e0 d4d3 i2g4 
 23	+2.36 	1.53G	8:51.55	i4h4 f2e1 e7c9 d1d0 h4h0 d0d1 h0e0 e1f2 e0f0 d2e1 f0i0 e1d0 g9i7 f2e1 i7g5 e1f2 i0e0 f2e1 e0h0 g4e2 h0h3 i2g0 h3e3 e1f0 
 22	+2.36 	721.1M	4:09.42	i4h4 f2e1 e7c9 d1d0 h4h0 d0d1 h0e0 e1f2 e9f9 f2e1 e0i0 e1f2 f9f8 d2e1 f8f7 e1d0 e8f9 f2e1 i0h0 g4e2 h0h3 i2g0 h3d3 e1d2 
 21	+2.36 	342.2M	1:58.07	i4h4 f2e1 e7c9 d1d0 h4h0 d0d1 h0e0 e1f2 e9f9 f2e1 e0i0 e1f2 f9f8 d2e1 f8f7 e1d0 e8f9 d0e1 d9e8 d1d2 i0e0 g4e2 
 20	+2.36 	197.2M	1:07.91	i4h4 f2e1 e7c9 d1d0 h4h0 d0d1 e8f9 e1f2 d9e8 d2e1 h0i0 e1d0 g9i7 f2e1 i7g5 d1d2 g5i7 
 19	+2.36 	113.7M	0:38.56	i4h4 f2e1 e7c9 d1d0 h4h0 d0d1 h0i0 e1f2 g9i7 d2e1 i7g5 d1d2 c9a7 d2d1 i0e0 g4e2 e8d7 i2g4 d9e8 e1d0 
 18	+2.36 	62.9M  	0:21.25	i4h4 f2e1 e7c9 g4e2 h4b4 e1f2 b4b3 i2g0 b3b0 d2e1 g9i7 g0i2 i7g5 i2g4 b0c0 e1d2 c9a7 d2e1 
 17	+2.36 	38.5M  	0:12.74	i4h4 f2e1 e7c9 g4e2 h4b4 d1d0 b4b0 d0d1 e8f9 e1f2 d9e8 d2e1 g9i7 i2g4 b0e0 e1d0 i7g5 f2e1 
 16	+2.32 	12.2M  	0:03.97	i4h4 f2e1 h4h0 g4e2 h0b0 i2g0 e7c9 e1f2 g9i7 d2e1 i7g5 e1d2 b0f0 d2e1 f0e0 d1d2 
 15	+2.32 	6.40M  	0:02.12	i4h4 f2e1 h4h0 g4e2 h0b0 i2g0 e7c9 e1f2 g9i7 d2e1 i7g5 e1d2 b0b1 d1d0 b1f1 d2e1 
 14	+2.32 	3.43M  	0:01.13	i4h4 f2e1 h4h0 g4e2 h0b0 i2g0 e7c5 g0i2 e8f7 i2g4 b0e0 e1d0 d9e8 d2e1 
 13	+2.32 	1.75M  	0:00.62	i4h4 f2e1 h4h0 g4e2 h0b0 i2g0 e7c5 g0i2 e8f7 i2g4 d9e8 g4i2 b0b1 d1d0 
 12	+2.32 	914911	0:00.34	i4h4 f2e1 h4h0 g4e2 h0b0 i2g0 e7c5 g0i2 b0e0 i2g4 g9i7 
 11	+2.32 	613574	0:00.24	i4h4 f2e1 h4h0 g4e2 h0b0 i2g0 e7c5 g0i2 g9i7 i2g4 b0b1 d1d0 
 10	+2.32 	195313	0:00.11	i4h4 d1d0 e7c9 f2e1 h4h0 d0d1 h0i0 e1f2 i0i1 d1d0 i1f1 f2e1 
  9	+2.36 	117488	0:00.08	i4h4 d1d0 e7c9 f2e1 h4h0 d0d1 h0i0 e1f2 i0f0 f2e1 
  8	+2.32 	47245  	0:00.05	i4h4 d1d0 e7c9 f2e1 h4h0 d0d1 h0i0 e1f2 i0i1 d1d0 
  7	+2.32 	25220  	0:00.00	i4h4 f2e1 e7c9 g4e2 h4b4 i2g4 b4b1 d1d0 
  6	+2.32 	11398  	0:00.00	i4h4 d1d0 e7c9 f2e1 
  5	+2.24 	3768    	0:00.00	i4h4 f2e1 h4h0 g4e2 h0e0 
  4	+2.32 	1467    	0:00.00	i4h4 d1d0 e7g5 g4e2 
  3	+2.24 	491      	0:00.00	i4h4 f2e1 h4h5 
  2	+2.32 	108      	0:00.00	i4h4 d1d0 
  2	+2.20 	1          	0:00.01	static eval 
  1	+9.32 	20        	0:00.00	i4h4 
Then I switch on the EGT:

Code: Select all

 21	+398.72 	776.3M	4:26.45	i4h4 d2e1 e7c5 d1d0 h4h0 d0d1 h0i0 e1d0 e8f9 d0e1 e9e8 
 20	+398.72 	328.1M	1:54.38	i4h4 d2e1 e7c5 d1d0 h4h0 d0d1 h0i0 e1d0 e8f9 d0e1 e9e8 
 19	+398.72 	183.1M	1:02.67	i4h4 d2e1 e7c5 d1d0 h4h0 d0d1 h0i0 e1d0 e8f9 d0e1 e9e8 
 18	+398.72 	72.3M  	0:24.30	i4h4 f2e1 e7g5 e1f0 h4h3 d1d0 h3h2 f0e1 h2h0 d0d1 e8f9 e1f2 e9e8 
 17	+20.88 	39.4M  	0:13.20	i4h4 f2e1 e7g5 e1f0 h4h3 d1d0 h3h2 d0d1 h2g2 d1e1 g2d2 e1e0 d2b2 e0e1 b2b1 e1e2 b1f1 f0e1 
 16	+18.48 	22.3M  	0:07.56	i4h4 f2e1 e7g5 e1f0 h4h3 d1d0 h3h2 d2e1 h2g2 d0e0 e8f9 g4e2 g2e2 i2g0 e2d2 g0e2 d2e2 
 15	+17.40 	13.6M  	0:04.72	i4h4 f2e1 e7g5 e1f0 h4h3 d1d0 h3h2 d2e1 h2g2 d0e0 e8f9 g4e2 g2e2 i2g0 e2e7 
 14	+17.72 	6.17M  	0:02.19	e7c5 f2e1 i4h4 e1f0 h4h3 d1d0 h3h2 f0e1 h2h0 d0d1 e8f9 i2g0 h0g0 g4e2 g0e0 
 13	+17.72 	3.32M  	0:01.22	e7c5 f2e1 i4h4 e1f0 h4h3 d1d0 h3h2 
 12	+2.32 	1.53M  	0:00.62	e7c5 f2e1 i4h4 e1f0 h4h1 d1d0 h1h2 d0d1 e8f9 i2g0 h2h1 d1d0 h1f1 d2e1 
 11	+2.32 	660716	0:00.29	e7c5 f2e1 i4h4 g4e2 h4b4 d1d0 b4b0 d0d1 b0e0 i2g4 c5a7 e1d0 
 10	+2.28 	323169	0:00.17	e7c5 f2e1 i4h4 g4e2 h4b4 d1d0 b4e4 i2g4 e4e5 d0e0 
  9	+2.32 	161171	0:00.11	e7c5 f2e1 i4h4 d1d0 h4h0 d0d1 h0i0 e1f2 i0f0 d2e1 
  8	+2.28 	65334  	0:00.07	e7c5 f2e1 i4h4 d1d0 h4h0 d0d1 h0i0 e1f2 i0i1 d1d0 
  7	+2.28 	27708  	0:00.03	e7c5 f2e1 i4h4 g4e2 h4b4 i2g4 b4b1 d1d0 
  6	+2.28 	17064  	0:00.02	e7c5 f2e1 i4h4 d1d0 h4h5 g4e2 
  5	+2.20 	8737    	0:00.00	i4i5 i2g0 i5d5 f2e1 d5e5 
  4	+2.28 	1773    	0:00.00	e7c5 d1d0 i4i5 d2e1 
  3	+2.16 	616      	0:00.00	i4h4 f2e1 h4h5 
  2	+2.32 	131      	0:00.00	e7c5 d1d0 
  2	+2.20 	1          	0:00.01	static eval 
  1	+9.04 	20        	0:00.00	i4h4 
After 1.22 sec it already sees material gain (implying the 'sure win'). Apparently white can be forced to give up material much faster, under the threat to go to a position without such loss that is recognized as a forced mate despite the full defense.. The mate-in-32 is seen after 24 sec