When does a chess engine blow up?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

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

Re: When does a chess engine blow up?

Post by hgm »

jwes wrote:A fast machine might get to ply 16 in 1 second. Assuming that each ply takes twice as long as the previous ply, 60 ply would take 2^44 seconds or about 524,000 years. It would likely take much longer because when the hash table is way overfilled move ordering suffers badly.
An interesting case, however, is KBNK. In some positions this takes more than 60 ply. But the number of positions in limited to 32M, which will not overflow the hash table of a modern PC. (Even with 16-byte entries you would only fill 512MB at most.) And I hear rumours that on a 10x10 board KBNK would take 100,000 moves, but yet the number of positions remains manageable.

Would modern engines be able to find the mate from a maximin position in KBNK? If not, it might be worth trying in with minimax rather than alpha-beta. In some simple Suicide-Chess end-games, which did entirely fit in the hash table of micro-Max, I noticed that plain minimax was _far_ faster at solving a distant 'mate' than alpha beta. The reason seems to be that all stored scores are exact, and thus always usable, while stored bounds sre sometimes not usable, and flip type on re-search, so the can be re-searched over and over again, producing an almost un-limited amount of extra work. (And if you don't believe it, try it yourself! The endg-game in question was R vs K.)
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: When does a chess engine blow up?

Post by Uri Blass »

bob wrote:
benstoker wrote:
bob wrote:
benstoker wrote:If you left a chess engine - stockfish for example - running for an entire week analyzing a single position, let's say the start position, a) does is blow up?; b) does it reach a maximum ply and stop?; c) does the search become pointless after a certain amount of time?; d) would a 7 day search be better than a 1 hour search?; e) does anybody do this?

Could you even let an engine search a single position for a month, a year?[/quote

Crafty has always had a max depth. Once it completes 60 plies, it will stop the search no matter what time control is being used, because going deeper would begin to run into array bound conditions. Inside the search, no single branch can go beyond 64 plies since that is an absolute limit, again imposed by array bounds, and this is checked at the top of any search call.

Good code _never_ crashes or hangs.
Begs the question: so how long do you estimate it would take crafty to crunch 60 ply from the start position on your super duper computer?
If you assume depth=20 is one second, to get to 60 with an effective branching factor of 2 would take 2^40 seconds. Which is 1 trillion seconds or about 35,000 years. Probably won't happen. :)
Practically the branching factor of stockfish is lower than 2 so maybe you can do it faster(and I doubt if it is going to change at big depth).

stockfish with 256 mbytes hash(slow machine) get depth 20 in 53 seconds(23369 knodes) and get depth 27 in
19:15(521180 knodes)
To be honest the branching factor at depth 28 is more than 2 and I have no pv at depth 28 now after 45 minutes but the experience suggest that the branching factor later may be small again.


It is clearly possible that you may practically get depth 60 with stockfish from the opening position after some years of search in a fast machine(the only way to know is to try).

New game - Stockfish 1.7 JA, 120'/40+60'/20+30'
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

Analysis by Stockfish 1.7 JA:

1.Ng1-f3
± (0.72) Depth: 1 00:00:00
1.Ng1-f3 Ng8-f6
= (0.12) Depth: 2 00:00:00
1.Ng1-f3 Ng8-f6 2.Nb1-c3
² (0.68) Depth: 3 00:00:00
1.Ng1-f3 Ng8-f6 2.Nb1-c3 Nb8-c6
= (0.12) Depth: 4 00:00:00
1.Ng1-f3 Ng8-f6 2.Nb1-c3 Nb8-c6 3.d2-d4
² (0.28) Depth: 5 00:00:00
1.Ng1-f3 Ng8-f6 2.Nb1-c3 Nb8-c6 3.d2-d4 d7-d5
= (0.12) Depth: 6 00:00:00 1kN
1.Ng1-f3 Ng8-f6 2.Nb1-c3 Nb8-c6 3.d2-d4 d7-d5 4.Bc1-f4
² (0.32) Depth: 7 00:00:00 2kN
1.Ng1-f3 Ng8-f6 2.Nb1-c3 Nb8-c6 3.d2-d4 d7-d5 4.Bc1-f4 Bc8-f5
= (0.12) Depth: 8 00:00:00 5kN
1.Ng1-f3 Ng8-f6 2.Nb1-c3 d7-d5 3.d2-d3 e7-e6 4.Nc3-b5 Nb8-c6 5.Bc1-f4
= (0.24) Depth: 9 00:00:01 14kN
1.e2-e4 Ng8-f6 2.e4-e5 Nf6-d5 3.c2-c4 Nd5-b4 4.d2-d4 Nb8-c6 5.Nb1-c3
² (0.28) Depth: 9 00:00:01 27kN
1.e2-e4 d7-d5 2.e4xd5 Ng8-f6 3.Nb1-c3 Nf6xd5 4.Ng1-f3 Nd5xc3 5.b2xc3 Nb8-c6 6.d2-d4
² (0.28) Depth: 10 00:00:01 55kN
1.e2-e4 Nb8-c6 2.d2-d4 e7-e6 3.Nb1-c3 Ng8-f6 4.Ng1-f3 Bf8-b4 5.e4-e5
² (0.36) Depth: 11 00:00:01 95kN
1.e2-e4 Ng8-f6 2.Nb1-c3 Nb8-c6 3.d2-d4 d7-d5 4.e4xd5 Nf6xd5 5.Ng1-f3 Bc8-f5 6.Bf1-d3 Bf5xd3 7.Qd1xd3 Nd5xc3 8.b2xc3
² (0.36) Depth: 11 00:00:01 115kN
1.e2-e4 Ng8-f6 2.e4-e5 Nf6-d5 3.c2-c4 Nd5-b4 4.d2-d4 d7-d5 5.c4xd5 Nb4xd5 6.Nb1-c3 c7-c6
² (0.32) Depth: 12 00:00:01 145kN
1.e2-e4 Nb8-c6 2.d2-d4 d7-d5 3.e4xd5 Qd8xd5 4.Ng1-f3 Nc6-b4 5.Nb1-c3 Qd5-f5
= (0.24) Depth: 13 00:00:01 254kN
1.e2-e4 e7-e5 2.Nb1-c3 Ng8-f6 3.Ng1-f3 Nb8-c6 4.Bf1-b5 Bf8-d6 5.d2-d3 Nc6-d4 6.0-0 0-0 7.Nf3xd4 e5xd4
² (0.36) Depth: 13 00:00:02 419kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nf3xe5 Qd8-e7 4.d2-d4 d7-d6
² (0.28) Depth: 14 00:00:03 474kN
1.e2-e4 e7-e5 2.Nb1-c3 Ng8-f6 3.Ng1-f3 Nb8-c6 4.Bf1-b5 Bf8-b4 5.Bb5xc6 b7xc6 6.Nf3xe5 Qd8-e7
= (0.20) Depth: 14 00:00:03 566kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.d2-d4 e5xd4 4.e4-e5 Qd8-e7 5.Bf1-e2
² (0.44) Depth: 14 00:00:04 1079kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.d2-d4 e5xd4 4.e4-e5 Qd8-e7 5.Bf1-e2 Nf6-d5 6.Nf3xd4 Qe7xe5 7.0-0 c7-c5 8.Nd4-f3
² (0.44) Depth: 14 00:00:04 1095kN
1.e2-e4 e7-e5 2.Nb1-c3 Ng8-f6 3.Ng1-f3 Nb8-c6 4.Bf1-b5 Bf8-b4 5.Bb5xc6 b7xc6 6.Nf3xe5 Qd8-e7 7.f2-f4 Bb4xc3 8.d2xc3 Bc8-a6 9.Qd1-d4 0-0 10.Bc1-e3 Rf8-b8
² (0.32) Depth: 15 00:00:05 1147kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nb1-c3 Nb8-c6 4.Bf1-b5 Bf8-b4 5.Bb5xc6 b7xc6 6.Nf3xe5 Qd8-e7 7.f2-f4 Bb4xc3 8.d2xc3 Bc8-a6 9.Qd1-d4 0-0 10.Bc1-e3 Rf8-b8
² (0.28) Depth: 15 00:00:05 1332kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nb1-c3 Nb8-c6 4.Bf1-b5 Bf8-b4 5.Bb5xc6 b7xc6 6.Nf3xe5 Qd8-e7 7.f2-f4 Bb4xc3 8.d2xc3 Bc8-a6 9.Qd1-d4 0-0 10.Bc1-e3 Rf8-b8
² (0.28) Depth: 16 00:00:07 1936kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nb1-c3 Nb8-c6 4.Bf1-b5 Bf8-b4 5.Bb5xc6 b7xc6 6.Nf3xe5 Qd8-e7 7.f2-f4 Bb4xc3 8.d2xc3 Bc8-a6 9.Qd1-d4 0-0 10.Bc1-e3 Rf8-b8
² (0.28) Depth: 17 00:00:08 2792kN
1.e2-e4 Ng8-f6 2.e4-e5 Nf6-d5 3.Ng1-f3 Nb8-c6 4.c2-c4 Nd5-b6 5.d2-d4 d7-d6 6.Nb1-c3 Bc8-g4 7.e5xd6 c7xd6 8.Bf1-e2 e7-e5 9.d4xe5 d6xe5 10.0-0
² (0.36) Depth: 18 00:00:11 4673kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nf3xe5 Qd8-e7 4.d2-d4 d7-d6 5.Ne5-f3 Nf6xe4 6.Bf1-e2 Nb8-c6 7.0-0
² (0.44) Depth: 18 00:00:12 5387kN
1.e2-e4 e7-e5 2.Ng1-f3 Nb8-c6 3.Bf1-b5 Ng8-f6 4.0-0 Bf8-d6 5.d2-d3 0-0 6.Nb1-c3 a7-a6 7.Bb5xc6 b7xc6 8.Bc1-e3 Ra8-b8 9.Qd1-c1 Nf6-g4
² (0.28) Depth: 18 00:00:14 6104kN
1.e2-e4 Ng8-f6 2.e4-e5 Nf6-d5 3.Ng1-f3 Nb8-c6 4.c2-c4 Nd5-b6 5.d2-d4 d7-d6 6.Nb1-c3 d6xe5 7.d4-d5
² (0.36) Depth: 19 00:00:18 8017kN
1.e2-e4 e7-e5 2.Ng1-f3 Nb8-c6 3.Bf1-b5 Ng8-f6 4.0-0 Bf8-d6 5.d2-d3 0-0 6.Nb1-c3 a7-a6 7.Bb5-c4 b7-b5 8.Bc4-b3 Qd8-e7 9.Bc1-e3
² (0.44) Depth: 19 00:00:26 11748kN
1.e2-e4 e7-e5 2.Nb1-c3 Nb8-c6 3.Bf1-c4 Bf8-c5 4.Nc3-a4 Bc5-d6 5.Qd1-g4 Qd8-f6 6.Ng1-f3 Qf6-g6 7.Qg4xg6 h7xg6 8.0-0 Ng8-f6
= (0.20) Depth: 19 00:00:30 13784kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nf3xe5 d7-d6 4.Ne5-f3 Nf6xe4 5.Qd1-e2 Qd8-e7 6.Nb1-c3 Ne4xc3 7.d2xc3 Qe7xe2+ 8.Bf1xe2 Nb8-c6 9.Bc1-e3 Bc8-e6 10.0-0-0 Bf8-e7 11.Kc1-b1 Ke8-d7 12.Rh1-e1 a7-a6
² (0.44) Depth: 19 00:00:47 20302kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nf3xe5 d7-d6 4.Ne5-f3 Nf6xe4 5.Qd1-e2 Qd8-e7 6.Nb1-c3 Ne4xc3 7.d2xc3 Qe7xe2+ 8.Bf1xe2 Nb8-c6 9.Bc1-e3 Bc8-e6 10.0-0-0 Bf8-e7 11.Kc1-b1 Ke8-d7 12.Be2-b5 f7-f6 13.Rh1-e1 a7-a6 14.Bb5-d3 Ra8-e8
² (0.44) Depth: 20 00:00:53 23369kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nf3xe5 d7-d6 4.Ne5-f3 Nf6xe4 5.Qd1-e2 Qd8-e7 6.Nb1-c3 Ne4xc3 7.d2xc3 Qe7xe2+ 8.Bf1xe2 Nb8-c6 9.Bc1-e3 Bc8-e6 10.0-0-0 Bf8-e7 11.Kc1-b1 Ke8-d7 12.Rh1-e1 a7-a6 13.Nf3-g5 h7-h6 14.Ng5xe6 f7xe6 15.f2-f4
² (0.44) Depth: 21 00:01:04 28632kN
1.e2-e4 e7-e5 2.Nb1-c3 Nb8-c6 3.Bf1-b5 Ng8-f6 4.Ng1-f3 Bf8-b4 5.Bb5xc6 d7xc6 6.Nf3xe5 Qd8-e7 7.d2-d4 Nf6xe4 8.Qd1-f3 Ne4xc3 9.b2xc3 Bb4-d6
² (0.36) Depth: 22 00:01:18 35205kN
1.e2-e4 e7-e5 2.Ng1-f3 Ng8-f6 3.Nf3xe5 d7-d6 4.Ne5-f3 Nf6xe4 5.Qd1-e2 Qd8-e7 6.Nb1-c3 Ne4xc3 7.d2xc3 Qe7xe2+ 8.Bf1xe2 Nb8-c6 9.Bc1-e3 Bc8-e6 10.0-0-0 Bf8-e7 11.Rh1-e1 Ke8-d7 12.b2-b3 h7-h6 13.Kc1-b2 Ra8-e8 14.a2-a3 Be7-f6
² (0.36) Depth: 22 00:01:36 43723kN
1.e2-e4 e7-e5 2.Nb1-c3 Nb8-c6 3.Bf1-b5 Ng8-f6 4.Ng1-f3 Bf8-c5 5.Bb5xc6 d7xc6 6.0-0 Bc8-g4
² (0.28) Depth: 23 00:02:11 58733kN
1.e2-e4 e7-e5 2.Ng1-f3 Nb8-c6 3.Bf1-c4 Bf8-c5 4.Nb1-c3 d7-d6 5.d2-d3 Ng8-f6 6.Bc1-g5 Bc8-e6 7.Nc3-d5 0-0 8.0-0 Be6xd5 9.Bc4xd5 h7-h6 10.Bg5xf6 Qd8xf6 11.Bd5xc6 b7xc6 12.c2-c3 Ra8-b8 13.b2-b4 Bc5-b6 14.d3-d4
² (0.36) Depth: 23 00:02:54 77659kN
1.e2-e4 e7-e5 2.Nb1-c3 Nb8-c6 3.Bf1-b5 Ng8-f6 4.Ng1-f3 Bf8-c5 5.0-0 0-0 6.Bb5xc6 b7xc6 7.Nf3xe5 Bc5-d4
² (0.28) Depth: 24 00:03:25 92131kN
1.e2-e4 e7-e5 2.Ng1-f3 Nb8-c6 3.Bf1-b5 a7-a6 4.Bb5xc6 d7xc6 5.d2-d3 Bf8-d6 6.0-0 Ng8-f6 7.Nb1-d2 0-0 8.Nd2-c4 Qd8-e7 9.a2-a4 Bc8-g4 10.Bc1-g5 Rf8-d8 11.h2-h3 Bg4-h5 12.Bg5-e3 b7-b5 13.Nc4xd6 Bh5xf3
= (0.24) Depth: 24 00:05:11 138815kN
1.e2-e4 Nb8-c6 2.d2-d4 d7-d5 3.e4-e5 f7-f6 4.Ng1-f3 f6xe5 5.d4xe5 Bc8-g4 6.Bf1-b5
² (0.36) Depth: 25 00:07:02 189551kN
1.e2-e4 e7-e5 2.Ng1-f3 Nb8-c6 3.Bf1-b5 a7-a6 4.Bb5xc6 d7xc6 5.0-0 Bc8-g4 6.d2-d3 Qd8-f6 7.Nb1-d2 0-0-0 8.h2-h3 Bg4xf3 9.Nd2xf3 Qf6-e6 10.a2-a3 Ng8-f6 11.Qd1-e2 Kc8-b8 12.Bc1-g5 Bf8-d6 13.b2-b4 Bd6-e7 14.Bg5xf6 Qe6xf6
² (0.28) Depth: 25 00:07:47 209125kN
1.e2-e4 e7-e5 2.Ng1-f3 Nb8-c6 3.Bf1-b5 a7-a6 4.Bb5xc6 d7xc6 5.Nb1-c3 Bc8-g4 6.h2-h3 Bg4xf3 7.Qd1xf3 Qd8-f6 8.d2-d3 Bf8-d6 9.Qf3-g3 Qf6-g6 10.Bc1-g5 Ng8-f6 11.a2-a3 0-0-0 12.b2-b4 c6-c5 13.Nc3-d5 Nf6xd5 14.Bg5xd8 Qg6xg3 15.f2xg3 Rh8xd8 16.e4xd5 c5xb4
= (0.24) Depth: 26 00:11:56 321616kN
1.e2-e4 e7-e5 2.Ng1-f3 Nb8-c6 3.Bf1-b5 a7-a6 4.Bb5xc6 d7xc6 5.Nb1-c3 Bc8-g4 6.h2-h3 Bg4xf3 7.Qd1xf3 Qd8-f6 8.d2-d3 Bf8-d6 9.Qf3-g3 Qf6-g6 10.Bc1-g5 Ng8-f6 11.a2-a3 0-0-0 12.b2-b4 Bd6-e7 13.Bg5-h4 Kc8-b8 14.0-0 Rh8-e8 15.Qg3xg6 h7xg6 16.Bh4-g5 Re8-h8
² (0.28) Depth: 27 00:19:15 521180kN

(, 11.04.2010)
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: When does a chess engine blow up?

Post by Uri Blass »

benstoker wrote:
jwes wrote:
benstoker wrote:
bob wrote:
benstoker wrote:If you left a chess engine - stockfish for example - running for an entire week analyzing a single position, let's say the start position, a) does is blow up?; b) does it reach a maximum ply and stop?; c) does the search become pointless after a certain amount of time?; d) would a 7 day search be better than a 1 hour search?; e) does anybody do this?

Could you even let an engine search a single position for a month, a year?[/quote

Crafty has always had a max depth. Once it completes 60 plies, it will stop the search no matter what time control is being used, because going deeper would begin to run into array bound conditions. Inside the search, no single branch can go beyond 64 plies since that is an absolute limit, again imposed by array bounds, and this is checked at the top of any search call.

Good code _never_ crashes or hangs.
Begs the question: so how long do you estimate it would take crafty to crunch 60 ply from the start position on your super duper computer?
A fast machine might get to ply 16 in 1 second. Assuming that each ply takes twice as long as the previous ply, 60 ply would take 2^44 seconds or about 524,000 years. It would likely take much longer because when the hash table is way overfilled move ordering suffers badly.
It appears that one would then get the "best" pv out of any given engine on good hardware after about a day of crunching. After that, it's a waste of time. Is that about right?
No
I see no reason that you are not going to get better pv after more time.

Uri
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: When does a chess engine blow up?

Post by michiguel »

hgm wrote:
jwes wrote:A fast machine might get to ply 16 in 1 second. Assuming that each ply takes twice as long as the previous ply, 60 ply would take 2^44 seconds or about 524,000 years. It would likely take much longer because when the hash table is way overfilled move ordering suffers badly.
An interesting case, however, is KBNK. In some positions this takes more than 60 ply. But the number of positions in limited to 32M, which will not overflow the hash table of a modern PC. (Even with 16-byte entries you would only fill 512MB at most.) And I hear rumours that on a 10x10 board KBNK would take 100,000 moves, but yet the number of positions remains manageable.

Would modern engines be able to find the mate from a maximin position in KBNK? If not, it might be worth trying in with minimax rather than alpha-beta. In some simple Suicide-Chess end-games, which did entirely fit in the hash table of micro-Max, I noticed that plain minimax was _far_ faster at solving a distant 'mate' than alpha beta. The reason seems to be that all stored scores are exact, and thus always usable, while stored bounds sre sometimes not usable, and flip type on re-search, so the can be re-searched over and over again, producing an almost un-limited amount of extra work. (And if you don't believe it, try it yourself! The endg-game in question was R vs K.)
This is a fantastic observation. Doing Minimax, it is basically solving the TB in the forward direction, in a clumsy way, but solving it. Each subtree contributes with information, which is discarded in alpha beta. This is once more an indication that a traditional alpha-beta is not the best searching method for endgames. Endgames have a certain "retrograde spirit" that alpha/beta does not catch. I believe that a combination of a given retrograde search + alpha/beta is the way to go in certain endgames.

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

Re: When does a chess engine blow up?

Post by hgm »

Exactly. It is building the TB by an inefficient method, with an inefficieny storage scheme (12-byte entries in stead of a single bit per position).

I tried to get the best of both worlds, by doing alpha-beta with a hash-table storing independent upper and lower bounds, so that you could not re-search the same node forever at the same depth, but in the end would collapse the bounds into an exact score.

In this simple end-game this was a lot faster than alpha-beta with a one-sided hash table, but still about two times slower than minimax with the simple hash table. But it did not degrade as spectacular as minimax did when hash-table entries started to get lost by collisions.
jwes
Posts: 778
Joined: Sat Jul 01, 2006 7:11 am

Re: When does a chess engine blow up?

Post by jwes »

michiguel wrote:
hgm wrote:
jwes wrote:A fast machine might get to ply 16 in 1 second. Assuming that each ply takes twice as long as the previous ply, 60 ply would take 2^44 seconds or about 524,000 years. It would likely take much longer because when the hash table is way overfilled move ordering suffers badly.
An interesting case, however, is KBNK. In some positions this takes more than 60 ply. But the number of positions in limited to 32M, which will not overflow the hash table of a modern PC. (Even with 16-byte entries you would only fill 512MB at most.) And I hear rumours that on a 10x10 board KBNK would take 100,000 moves, but yet the number of positions remains manageable.

Would modern engines be able to find the mate from a maximin position in KBNK? If not, it might be worth trying in with minimax rather than alpha-beta. In some simple Suicide-Chess end-games, which did entirely fit in the hash table of micro-Max, I noticed that plain minimax was _far_ faster at solving a distant 'mate' than alpha beta. The reason seems to be that all stored scores are exact, and thus always usable, while stored bounds sre sometimes not usable, and flip type on re-search, so the can be re-searched over and over again, producing an almost un-limited amount of extra work. (And if you don't believe it, try it yourself! The endg-game in question was R vs K.)
This is a fantastic observation. Doing Minimax, it is basically solving the TB in the forward direction, in a clumsy way, but solving it. Each subtree contributes with information, which is discarded in alpha beta. This is once more an indication that a traditional alpha-beta is not the best searching method for endgames. Endgames have a certain "retrograde spirit" that alpha/beta does not catch. I believe that a combination of a given retrograde search + alpha/beta is the way to go in certain endgames.

Miguel
I think that the problem is that there are not enough mate scores in the TT. A TT cutoff that is not a mate score does not really help. Iterative deepening hurts because you evaluate a lot of positions with non-mate values before finding mate values. I did some experiments with this position [D]8/8/8/3K1N2/8/5k2/8/1B6 w - - 0 1
(which egtbs say is a mate in 20) with crafty and found that incrementing the ply by 2 for each iteration made the search much faster.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: When does a chess engine blow up?

Post by Don »

bob wrote:
benstoker wrote:
bob wrote:
benstoker wrote:If you left a chess engine - stockfish for example - running for an entire week analyzing a single position, let's say the start position, a) does is blow up?; b) does it reach a maximum ply and stop?; c) does the search become pointless after a certain amount of time?; d) would a 7 day search be better than a 1 hour search?; e) does anybody do this?

Could you even let an engine search a single position for a month, a year?[/quote

Crafty has always had a max depth. Once it completes 60 plies, it will stop the search no matter what time control is being used, because going deeper would begin to run into array bound conditions. Inside the search, no single branch can go beyond 64 plies since that is an absolute limit, again imposed by array bounds, and this is checked at the top of any search call.

Good code _never_ crashes or hangs.
Begs the question: so how long do you estimate it would take crafty to crunch 60 ply from the start position on your super duper computer?
If you assume depth=20 is one second, to get to 60 with an effective branching factor of 2 would take 2^40 seconds. Which is 1 trillion seconds or about 35,000 years. Probably won't happen. :)
If you start from a middle game position the branching factor might not be as bad as one might think since as you go deeper more pieces are traded and in a 60 ply search you will see a lot of endings.

Also, I think this would vary enormously from program to program.
wgarvin
Posts: 838
Joined: Thu Jul 05, 2007 5:03 pm
Location: British Columbia, Canada

Re: When does a chess engine blow up?

Post by wgarvin »

hgm wrote:Exactly. It is building the TB by an inefficient method, with an inefficieny storage scheme (12-byte entries in stead of a single bit per position).

I tried to get the best of both worlds, by doing alpha-beta with a hash-table storing independent upper and lower bounds, so that you could not re-search the same node forever at the same depth, but in the end would collapse the bounds into an exact score.

In this simple end-game this was a lot faster than alpha-beta with a one-sided hash table, but still about two times slower than minimax with the simple hash table. But it did not degrade as spectacular as minimax did when hash-table entries started to get lost by collisions.
Why don't more programs store both upper and lower bounds in their TT entries? Particularly since 16 bytes is a convenient size for a TT entry for atomic access etc?
Michel
Posts: 2272
Joined: Mon Sep 29, 2008 1:50 am

Re: When does a chess engine blow up?

Post by Michel »

I think it is more critical for detecting draws. The following position is draw

[d]7k/5Q2/8/8/6r1/5K2/8/8 b - - 0 1[/d]

and it requires looking at very few position to prove it (less than 64x8). Yet it seems
difficult to see this with forward search.
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: When does a chess engine blow up?

Post by Uri Blass »

Michel wrote:I think it is more critical for detecting draws. The following position is draw

[d]7k/5Q2/8/8/6r1/5K2/8/8 b - - 0 1[/d]

and it requires looking at very few position to prove it (less than 64x8). Yet it seems
difficult to see this with forward search.
Not difficult for stockfish.
difficult only to most programmers who probably do not understand how to use hash tables without bugs(and it is not because stockfish does more pruning because naum cannot see the draw even at iteration 30 and the same for Firebird and I will not be surprised if most programs cannot see the draw at iteration 28).

I suspect that there are cases when the buggy implementation of hash by programmers may lead to missing a draw by repetition forever so the program will never see the draw.

New game
[D]7k/5Q2/8/8/6r1/5K2/8/8 b - - 0 1

Analysis by Stockfish 1.7 JA:

1...Rg4-g8
+- (7.17) Depth: 1 00:00:00
1...Rg4-g1 2.Kf3-e4
+- (7.27) Depth: 2 00:00:00
1...Rg4-g7 2.Qf7-f8+ Kh8-h7
+- (7.22) Depth: 2 00:00:00
1...Rg4-g7 2.Qf7-f8+ Kh8-h7 3.Kf3-f4
+- (7.32) Depth: 3 00:00:00
1...Rg4-g7 2.Qf7-f8+ Kh8-h7 3.Kf3-f4 Rg7-g8
+- (7.32) Depth: 4 00:00:00
1...Rg4-g7 2.Qf7-f8+ Kh8-h7 3.Kf3-f4 Rg7-g8 4.Qf8-f6
+- (7.32) Depth: 5 00:00:00
1...Rg4-g7 2.Qf7-f8+ Kh8-h7 3.Kf3-f4 Rg7-g8 4.Qf8-f6 Rg8-g7 5.Kf4-e5
+- (7.32) Depth: 6 00:00:00 4kN
1...Rg4-g7 2.Qf7-f8+ Kh8-h7 3.Kf3-f4 Rg7-g8 4.Qf8-f6 Rg8-g7 5.Kf4-e5 Kh7-g8
+- (7.32) Depth: 7 00:00:00 9kN
1...Rg4-g7 2.Qf7-f8+ Kh8-h7 3.Kf3-f4 Rg7-g8 4.Qf8-f7+ Rg8-g7 5.Qf7-h5+ Kh7-g8 6.Qh5-e8+ Kg8-h7 7.Kf4-f5 Kh7-h6
+- (7.37) Depth: 8 00:00:01 31kN
1...Rg4-g1 2.Qf7-h5+ Kh8-g8 3.Kf3-f4 Rg1-c1 4.Qh5-e8+ Kg8-g7 5.Kf4-f5 Rc1-f1+ 6.Kf5-g5 Rf1-f6
+- (7.32) Depth: 8 00:00:01 46kN
1...Rg4-g1 2.Qf7-h5+ Kh8-g8 3.Qh5-e8+ Kg8-h7 4.Qe8-e4+ Kh7-g8 5.Qe4-c4+ Kg8-h7 6.Kf3-f4 Rg1-g8 7.Qc4-f7+ Rg8-g7 8.Qf7-h5+ Kh7-g8 9.Qh5-e8+ Kg8-h7 10.Kf4-f5 Kh7-h6
+- (7.37) Depth: 9 00:00:01 95kN
1...Rg4-g1 2.Qf7-h5+ Kh8-g8 3.Qh5-e8+ Kg8-h7 4.Qe8-e4+ Kh7-g8 5.Qe4-c4+ Kg8-h7 6.Kf3-f4 Rg1-g8 7.Qc4-f7+ Rg8-g7 8.Qf7-h5+ Kh7-g8 9.Qh5-e8+ Kg8-h7 10.Kf4-f5 Kh7-h6 11.Qe8-f8
+- (7.37) Depth: 10 00:00:01 162kN
1...Rg4-g1 2.Qf7-h5+ Kh8-g8 3.Qh5-e8+ Kg8-h7 4.Qe8-e4+ Kh7-g8 5.Qe4-c4+ Kg8-h7 6.Kf3-f4 Rg1-g8 7.Qc4-f7+ Rg8-g7 8.Qf7-h5+ Kh7-g8 9.Qh5-e8+ Kg8-h7 10.Kf4-f5 Kh7-h6 11.Qe8-e3+ Kh6-h7 12.Qe3-e8
+- (7.42) Depth: 11 00:00:01 235kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5xg5
+- (7.29) Depth: 11 00:00:01 249kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e5 Rg4-g5+ 8.Ke5-d6 Rg5-g1 9.Qf7-f6+ Kh8-h7 10.Kd6-e6 Rg1-g6
+- (7.32) Depth: 11 00:00:01 260kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e5 Rg4-g5+ 8.Ke5-d4 Rg5-g4+ 9.Kd4-c5 Rg4-g7 10.Qf7-h5+ Rg7-h7 11.Qh5-e5+ Kh8-g8 12.Kc5-d6 Kg8-f7
+- (7.27) Depth: 12 00:00:01 304kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e5 Rg4-g5+ 8.Ke5-d4 Rg5-g4+ 9.Kd4-c5 Rg4-g7 10.Qf7-h5+ Rg7-h7 11.Qh5-e5+ Kh8-g8 12.Kc5-d6 Kg8-f7 13.Qe5-f5+ Kf7-g7 14.Kd6-e6
+- (7.27) Depth: 13 00:00:01 330kN
1...Rg4-g3+ 2.Kf3-f2 Rg3-g2+ 3.Kf2xg2
+- (7.19) Depth: 14 00:00:01 385kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-c5 Rg4-g6 10.Qf7-f8+ Kh8-h7 11.Kc5-d5 Rg6-g1 12.Qf8-e7+ Kh7-h6 13.Qe7-e3+ Rg1-g5+ 14.Kd5-e6 Kh6-g6
+- (7.27) Depth: 14 00:00:01 401kN
1...Rg4-g3+ 2.Kf3-f2 Rg3-g2+ 3.Kf2-e3 Rg2-g3+ 4.Ke3-d4 Rg3-g4+ 5.Kd4-c5 Rg4-g5+ 6.Kc5-d6 Rg5-g6+ 7.Kd6-e5 Rg6-g5+ 8.Ke5-d4 Rg5-g4+
+- (7.19) Depth: 15 00:00:01 428kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-c5 Rg4-g5+ 10.Kc5-d6 Rg5-g6+ 11.Kd6-e5 Rg6-g5+ 12.Ke5-d4 Rg5-g4+
+- (7.10) Depth: 15 00:00:01 436kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-c5 Rg4-g5+ 10.Kc5-c4 Rg5-g4+ 11.Kc4-c3 Rg4-g3+ 12.Kc3-b2 Rg3-g7 13.Qf7-f8+ Kh8-h7 14.Kb2-c3 Kh7-h6
+- (7.07) Depth: 15 00:00:01 445kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-c5 Rg4-g5+ 10.Kc5-c4 Rg5-g4+ 11.Kc4-c3 Rg4-g3+ 12.Kc3-b4 Rg3-g4+ 13.Kb4-b5 Rg4-g8 14.Qf7-f4 Rg8-g6 15.Kb5-c5 Rg6-a6 16.Kc5-d5
+- (7.17) Depth: 16 00:00:01 474kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-c5 Rg4-g5+ 10.Kc5-c4 Rg5-g4+ 11.Kc4-c3 Rg4-g3+ 12.Kc3-b4 Rg3-g4+ 13.Kb4-b5 Rg4-g5+ 14.Kb5-a6 Rg5-g7 15.Qf7-f6 Kh8-h7 16.Ka6-b5 Rg7-g4 17.Kb5-c5
+- (7.12) Depth: 17 00:00:01 540kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-c5 Rg4-g5+ 10.Kc5-c4 Rg5-g4+ 11.Kc4-c3 Rg4-g3+ 12.Kc3-b4 Rg3-g4+ 13.Kb4-b5 Rg4-g5+ 14.Kb5-a6 Rg5-g7 15.Qf7-f6 Kh8-h7 16.Ka6-b5 Rg7-g4 17.Kb5-c5
+- (7.12) Depth: 18 00:00:01 607kN
1...Rg4-g3+ 2.Kf3-f2 Rg3-g2+ 3.Kf2-f1 Rg2-g1+ 4.Kf1xg1
+- (7.03) Depth: 19 00:00:01 646kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-c5 Rg4-g5+ 10.Kc5-c4 Rg5-g4+ 11.Kc4-c3 Rg4-g3+ 12.Kc3-b4 Rg3-g4+ 13.Kb4-b5 Rg4-g5+ 14.Kb5-a6 Rg5-g6+ 15.Ka6-a5 Rg6-g5+ 16.Ka5-a4 Rg5-g4+ 17.Ka4-b3
+- (7.07) Depth: 19 00:00:01 664kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-e5 Rg4-g5+ 10.Ke5-d6 Rg5-g6+ 11.Kd6-c5 Rg6-g5+ 12.Kc5-c4 Rg5-g4+ 13.Kc4-c3 Rg4-g3+ 14.Kc3-b4 Rg3-g4+ 15.Kb4-b5 Rg4-g5+ 16.Kb5-a6 Rg5-g6+ 17.Ka6-a5
+- (7.07) Depth: 20 00:00:01 731kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-f5 Rg6-g5+ 6.Kf5-f4 Rg5-g4+ 7.Kf4-e3 Rg4-g3+ 8.Ke3-d4 Rg3-g4+ 9.Kd4-e5 Rg4-g5+ 10.Ke5-d6 Rg5-g6+ 11.Kd6-c5 Rg6-g5+ 12.Kc5-c4 Rg5-g4+ 13.Kc4-c3 Rg4-g3+ 14.Kc3-b4 Rg3-g4+ 15.Kb4-b5 Rg4-g5+ 16.Kb5-a6 Rg5-g6+ 17.Ka6-a5
+- (7.12) Depth: 21 00:00:02 843kN
1...Rg4-g3+ 2.Kf3-f2 Rg3-g2+ 3.Kf2-e3 Rg2-g3+ 4.Ke3-d4 Rg3-g4+ 5.Kd4-d5 Rg4-g5+ 6.Kd5-e6 Rg5-g6+ 7.Qf7xg6
+- (7.03) Depth: 22 00:00:02 972kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-e5 Rg6-g5+ 6.Ke5-d6 Rg5-g6+ 7.Kd6-c5 Rg6-g5+ 8.Kc5-d4 Rg5-g4+ 9.Kd4-c3 Rg4-g3+ 10.Kc3-b4 Rg3-g4+ 11.Kb4-b3 Rg4-g3+ 12.Kb3-c2 Rg3-g2+ 13.Kc2-d3 Rg2-g3+ 14.Kd3-e2 Rg3-g2+ 15.Ke2-e3 Rg2-g3+ 16.Ke3-d2 Rg3-g2+ 17.Kd2-c1
+- (7.07) Depth: 22 00:00:02 1065kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-e5 Rg6-g5+ 6.Ke5-d6 Rg5-g6+ 7.Kd6-c5 Rg6-g5+ 8.Kc5-d4 Rg5-g4+ 9.Kd4-c3 Rg4-g3+ 10.Kc3-b4 Rg3-g4+ 11.Kb4-b3 Rg4-g3+ 12.Kb3-c2 Rg3-g2+ 13.Kc2-d3 Rg2-g3+ 14.Kd3-e2 Rg3-g2+ 15.Ke2-e3 Rg2-g3+ 16.Ke3-d2 Rg3-g2+ 17.Kd2-c1
+- (7.07) Depth: 23 00:00:03 1275kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-e5 Rg6-g5+ 6.Ke5-d6 Rg5-g6+ 7.Kd6-c5 Rg6-g5+ 8.Kc5-b4 Rg5-g4+ 9.Kb4-b3 Rg4-g3+ 10.Kb3-c2 Rg3-g2+ 11.Kc2-d3 Rg2-g3+ 12.Kd3-e2 Rg3-g2+ 13.Ke2-e3 Rg2-g3+ 14.Ke3-d2 Rg3-g2+ 15.Kd2-c1 Rg2-c2+ 16.Kc1-b1 Rc2-b2+ 17.Kb1-a1
+- (7.12) Depth: 24 00:00:03 1514kN
1...Rg4-g3+ 2.Kf3-f2 Rg3-g2+ 3.Kf2-e3 Rg2-g3+ 4.Ke3-d2 Rg3-g2+ 5.Kd2-c1 Rg2-g1+ 6.Kc1-b2 Rg1-g2+ 7.Kb2-c3 Rg2-g3+ 8.Kc3-c4 Rg3-g4+ 9.Kc4-c5 Rg4-g5+ 10.Kc5-b4 Rg5-g4+ 11.Kb4-b3 Rg4-g3+ 12.Kb3-b2 Rg3-g2+
+- (7.03) Depth: 25 00:00:03 1652kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-e5 Rg6-g5+ 6.Ke5-d6 Rg5-g6+ 7.Kd6-c5 Rg6-g5+ 8.Kc5-b4 Rg5-g4+ 9.Kb4-b3 Rg4-g3+ 10.Kb3-b2 Rg3-g2+ 11.Kb2-c3 Rg2-g3+ 12.Kc3-c4 Rg3-g4+ 13.Kc4-d3 Rg4-g3+ 14.Kd3-d4 Rg3-g4+ 15.Kd4-e3 Rg4-g3+ 16.Ke3-d2 Rg3-g2+ 17.Kd2-c1
+- (7.12) Depth: 25 00:00:03 1897kN
1...Rg4-g3+ 2.Kf3-f2 Rg3-g2+ 3.Kf2-e3 Rg2-g3+ 4.Ke3-d2 Rg3-g2+ 5.Kd2-c1 Rg2-g1+ 6.Kc1-c2 Rg1-g2+ 7.Kc2-d3 Rg2-g3+ 8.Kd3-c4 Rg3-g4+ 9.Kc4-c5 Rg4-g5+ 10.Kc5-b4 Rg5-g4+ 11.Kb4-b3 Rg4-g3+ 12.Kb3-b2 Rg3-g2+ 13.Kb2-c3 Rg2-g3+ 14.Kc3-c4
+- (7.03) Depth: 26 00:00:03 1953kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-e5 Rg6-g5+ 6.Ke5-d6 Rg5-g6+ 7.Kd6-c5 Rg6-g5+ 8.Kc5-b4 Rg5-g4+ 9.Kb4-b3 Rg4-g3+ 10.Kb3-b2 Rg3-g2+ 11.Kb2-c3 Rg2-g3+ 12.Kc3-c4 Rg3-g4+ 13.Kc4-d3 Rg4-g3+ 14.Kd3-d2 Rg3-g2+ 15.Kd2-c1 Rg2-g1+ 16.Kc1-c2 Rg1-g2+ 17.Kc2-b1
+- (7.17) Depth: 26 00:00:03 2686kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-e6 Rg5-g6+ 5.Ke6-e5 Rg6-g5+ 6.Ke5-d6 Rg5-g6+ 7.Kd6-c5 Rg6-g5+ 8.Kc5-b4 Rg5-g4+ 9.Kb4-b3 Rg4-g3+ 10.Kb3-b2 Rg3-g2+ 11.Kb2-c3 Rg2-g3+ 12.Kc3-c4 Rg3-g4+ 13.Kc4-d3 Rg4-g3+ 14.Kd3-d2 Rg3-g2+ 15.Kd2-c1 Rg2-g1+ 16.Kc1-c2 Rg1-g2+ 17.Kc2-b1
+- (7.17) Depth: 27 00:00:03 3270kN
1...Rg4-g3+ 2.Kf3-f2 Rg3-g7 3.Qf7-e8+ Rg7-g8 4.Qe8-e7 Rg8-g7 5.Qe7-e6
+- (7.08) Depth: 28 00:00:03 3486kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-c3 Rg4-g3+ 6.Kc3-c4 Rg3-g4+ 7.Kc4-d5
+- (6.96) Depth: 28 00:00:03 3575kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-c3 Rg4-g3+ 6.Kc3-c4 Rg3-g4+ 7.Kc4-d5
+- (2.82) Depth: 28 00:00:03 3580kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-c3 Rg4-g3+ 6.Kc3-c4 Rg3-g4+ 7.Kc4-d5
+- (2.82) Depth: 28 00:00:03 3580kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-c3 Rg4-g3+ 6.Kc3-c4 Rg3-g4+ 7.Kc4-d5
+- (2.82) Depth: 28 00:00:03 3580kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-c3 Rg4-g3+ 6.Kc3-c4 Rg3-g4+ 7.Kc4-d5
+- (2.82) Depth: 28 00:00:03 3580kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4xg4
+- (1.69) Depth: 28 00:00:03 3601kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4xg4
= (0.00) Depth: 28 00:00:03 3628kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4xg4
= (0.00) Depth: 29 00:00:04 3663kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4xg4
= (0.00) Depth: 30 00:00:04 3716kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
± (1.13) Depth: 31 00:00:04 3790kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 31 00:00:04 3875kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 32 00:00:04 3875kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 33 00:00:04 3942kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 34 00:00:05 4031kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 35 00:00:05 4145kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 36 00:00:05 4286kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 37 00:00:05 4462kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 38 00:00:05 4675kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 39 00:00:06 4922kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 40 00:00:07 5239kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 41 00:00:07 5571kN
1...Rg4-g3+ 2.Kf3-e4 Rg3-g4+ 3.Ke4-d5 Rg4-g5+ 4.Kd5-d4 Rg5-g4+ 5.Kd4-e5 Rg4-g5+ 6.Ke5-e6 Rg5-g6+ 7.Ke6-f5 Rg6-g5+ 8.Kf5-f4 Rg5-g4+ 9.Kf4-e3 Rg4-g3+ 10.Ke3-e2 Rg3-g2+ 11.Ke2-d3 Rg2-g3+ 12.Kd3-d2 Rg3-g2+ 13.Kd2-c1 Rg2-g1+ 14.Kc1-c2 Rg1-g2+ 15.Kc2-b3 Rg2-g3+ 16.Kb3-b4 Rg3-g4+ 17.Kb4-c5
= (0.00) Depth: 42 00:00:08 6032kN

(, 13.04.2010)