Weakly vs strongly solving chess

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Dirt
Posts: 2851
Joined: Wed Mar 08, 2006 10:01 pm
Location: Irvine, CA, USA

Weakly vs strongly solving chess

Post by Dirt »

First of all, let me say I don't think chess will ever be solved. It's just too much effort to put into a game. But it's probably possible.

To strongly solve chess the obvious route is to make a 32-piece tablebase. There a an estimated 10^43 valid positions in chess, and this would take an incredibly large database. I estimate it would weigh about as much a the Moon. You probably couldn't make it too compact because of heat and gravity effects, so a full access probe might take around a second. Whether the database could be filled with data before the heat death of the universe is the chief problem.

To weakly solve chess, which probably means showing it's a draw, we could trace through the estimated 10^120 games. With alpha beta, and a magical method of finding the right move (this is where Stockfish could help) we would only need to look at 10^60 moves or so. This might be doable, depending on how parallelizable it is. You at least save on storage space, even if it's no faster.

Both methods could probably be sped up, but I don't know by how much. Stockfish might help if you have millions of years to wait.
Deasil is the right way to go.
syzygy
Posts: 5557
Joined: Tue Feb 28, 2012 11:56 pm

Re: Weakly vs strongly solving chess

Post by syzygy »

I fully agree that the role of Stockfish would be limited to selecting the "best" move in a position.

To weakly solve the game, you would still need to store enough of the tree that you can find winning moves for white against any play by black or, more likely, drawing moves for white against any play by black and drawing moves for black against any play by white (or, less likely, winning moves for black against any play by white).

Storing the tree is probably anyway inevitable, since you'd want to make use of transpositions to considerably reduce the search space. Unfortunately, this is very tricky to get right due to graph history interaction problems. These problems are even worse if we have to prove that chess is a draw.

The Chinook team managed to deal with these problems for checkers, but the search space of checkers is much smaller and I suspect the graph history interaction problem to be much less severe for checkers (which has many irreversible moves).

Weakly solving chess is very much out of reach, but it may be possible to solve certain variants like atomic chess (in particular if it is won for white). Suicide chess (loser's chess/giveaway chess) has already been weakly solved.
lauriet
Posts: 199
Joined: Sun Nov 03, 2013 9:32 am

Re: Weakly vs strongly solving chess

Post by lauriet »

Well lets consider an infinite number of parallel universes each given a part of the search space, and each using the latest quantium computer. With suitable communication between each universe it seems like a snap to solve chess.

But in the end, two guys will be still be sitting at a board playing each other.........brute force solving of the problem is kind of academic, the fun of chess is the risk/intuition/flare......that is.....the human factor.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Weakly vs strongly solving chess

Post by Lyudmil Tsvetkov »

Dirt wrote:First of all, let me say I don't think chess will ever be solved. It's just too much effort to put into a game. But it's probably possible.

To strongly solve chess the obvious route is to make a 32-piece tablebase. There a an estimated 10^43 valid positions in chess, and this would take an incredibly large database. I estimate it would weigh about as much a the Moon. You probably couldn't make it too compact because of heat and gravity effects, so a full access probe might take around a second. Whether the database could be filled with data before the heat death of the universe is the chief problem.

To weakly solve chess, which probably means showing it's a draw, we could trace through the estimated 10^120 games. With alpha beta, and a magical method of finding the right move (this is where Stockfish could help) we would only need to look at 10^60 moves or so. This might be doable, depending on how parallelizable it is. You at least save on storage space, even if it's no faster.

Both methods could probably be sped up, but I don't know by how much. Stockfish might help if you have millions of years to wait.
the more you solve chess, the more difficult it becomes.

the stronger an engine, the farther it is from perfect chess.

in this way, Skipper is about the strongest engine around.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Weakly vs strongly solving chess

Post by Lyudmil Tsvetkov »

on the other hand, we are going into that direction.

currently, top engines know the Scandinavian is no good, years ago it was not like that, so we are slowly pruning away the bad lines.

at some point, all bad lines will be pruned, but this will not come anywhere soon.
Daniel Anulliero
Posts: 759
Joined: Fri Jan 04, 2013 4:55 pm
Location: Nice

Re: Weakly vs strongly solving chess

Post by Daniel Anulliero »

I WON'T chess solved !!!
I want to keep my hobby alive !!
:) :wink:
Isa download :
Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Weakly vs strongly solving chess

Post by Uri Blass »

Lyudmil Tsvetkov wrote:on the other hand, we are going into that direction.

currently, top engines know the Scandinavian is no good, years ago it was not like that, so we are slowly pruning away the bad lines.

at some point, all bad lines will be pruned, but this will not come anywhere soon.
I do not think engines know the scandinavian is no good.

After 1.e4 d5 2.exd5 stockfish does not see more than 0.5 for white
and I guess 2...Qxd5 is enough for a draw.

Some analysis by latest stockfish show only 0.37 score for white.

[D]rnbqkbnr/ppp1pppp/8/3P4/8/8/PPPP1PPP/RNBQKBNR b KQkq - 0 2

Stockfish_17092216_x64_modern:
1/1 00:00 79 79k +0.86 2. ... Qxd5
2/2 00:00 218 218k +1.32 2. ... Qxd5 3.a3
3/4 00:00 472 236k +0.70 2. ... Qxd5 3.Qe2 e5
4/4 00:00 646 323k +0.83 2. ... Qxd5 3.Qe2 e5 4.c3
5/5 00:00 4k 1,269k -0.55 2. ... c6 3.d4 Nf6 4.dxc6 Nxc6
6/6 00:00 6k 1,466k -0.29 2. ... Qxd5 3.Qe2 Qe6 4.Nc3 c6 5.Qxe6 Bxe6
7/7 00:00 7k 1,688k -0.20 2. ... Qxd5 3.Qe2 Qe6 4.Nc3 Nf6 5.d4 c6
8/9 00:00 13k 2,155k -0.36 2. ... Qxd5 3.Nc3 Qe6+ 4.Qe2 Nf6 5.d4 Nc6 6.Qxe6 Bxe6
9/13 00:00 25k 2,261k -0.31 2. ... Qxd5 3.Nc3 Qe6+ 4.Nge2 c6 5.b3 Na6 6.d4 Nf6 7.Qd3
10/14 00:00 98k 2,279k -0.60 2. ... c6 3.Nf3 cxd5 4.d4 e6 5.Nc3 Nf6 6.Be2 Bd6 7.0-0
11/18 00:00 197k 2,498k -0.55 2. ... Qxd5 3.Nc3 Qe6+ 4.Qe2 Qxe2+ 5.Bxe2 Nf6 6.Nf3 Bf5 7.d3 Nc6 8.Bf4 e5 9.Bxe5
12/18 00:00 519k 2,760k -0.89 2. ... Nf6 3.Nf3 Nxd5 4.d4 Bf5 5.Bd3 Bxd3 6.Qxd3 Nd7 7.0-0 e6 8.Bg5 Nb4
13/17 00:00 682k 2,675k -0.70 2. ... c6 3.dxc6 Nxc6 4.Nf3 e5 5.Nc3 Nf6 6.Bc4 Bd6 7.d3 0-0 8.0-0 a6 9.Qe2 Bg4 10.h3
14/22 00:00 1,054k 2,522k -0.95 2. ... c6 3.dxc6 Nxc6 4.Nf3 e5 5.Nc3 Nf6 6.Bc4 Bd6 7.0-0 0-0 8.d3 h6 9.h3 Bf5 10.Bd2 Qb6 11.Bb3
15/22 00:00 1,256k 2,483k -0.95 2. ... c6 3.dxc6 Nxc6 4.Nf3 e5 5.Nc3 Nf6 6.Bc4 Bd6 7.0-0 0-0 8.d3 Na5 9.Bb3 Nxb3 10.axb3 Be6 11.Bd2 Qc7 12.h3
16/25 00:01 2,535k 2,442k -0.74 2. ... Nf6 3.Nf3 Nxd5 4.d4 Bf5 5.Bd3 Bxd3 6.Qxd3 e6 7.0-0 c5 8.Nc3 cxd4 9.Nxd4 Nxc3 10.Qxc3 Nd7 11.Re1 Be7 12.Qf3 0-0
17/27 00:01 3,706k 2,579k -0.65 2. ... Nf6 3.Nf3 Nxd5 4.d4 e6 5.c4 Bb4+ 6.Bd2 Bxd2+ 7.Qxd2 Ne7 8.Nc3 b6 9.Be2 0-0 10.Rd1 Nd7 11.0-0 Bb7 12.b4 Nf5 13.b5 h6
18/31 00:02 7,245k 2,727k -0.59 2. ... Nf6 3.d4 c6 4.dxc6 Nxc6 5.Nf3 Bg4 6.Bb5 Qb6 7.Nc3 0-0-0 8.Bxc6 Qxc6 9.h3 Bxf3 10.Qxf3 Rxd4 11.Qxc6+ bxc6 12.Be3 Rd7 13.f3 e5
19/33- 00:03 8,230k 2,705k -0.67 2. ... Nf6 3.d4
19/33- 00:03 8,673k 2,697k -0.82 2. ... Nf6 3.Nf3
19/33 00:03 9,275k 2,710k -0.68 2. ... Qxd5 3.Nf3 Bg4 4.Be2 Bxf3 5.Bxf3 Qe6+ 6.Be2 Nc6 7.c3 Qd7 8.d4 0-0-0 9.Bf3 Nf6 10.Qe2 e6 11.Nd2 Kb8 12.0-0 Bd6
20/29+ 00:04 13,283k 2,779k -0.61 2. ... Qxd5
20/29+ 00:05 14,294k 2,790k -0.53 2. ... Qxd5
20/32 00:05 16,544k 2,804k -0.64 2. ... Qxd5 3.Nf3 Bg4 4.Be2 Bxf3 5.Bxf3 Qe6+ 6.Qe2 Qxe2+ 7.Kxe2 Nc6 8.Bxc6+ bxc6 9.d3 e6 10.Nd2 Nf6 11.Nc4 Be7 12.b3 Nd5 13.Bb2 0-0
21/32+ 00:06 17,116k 2,807k -0.57 2. ... Qxd5
21/32- 00:06 19,380k 2,829k -0.72 2. ... Qxd5 3.Nf3
21/32 00:08 24,535k 2,816k -0.67 2. ... Qxd5 3.Nf3 Nf6 4.d4 Qd8 5.c4 e6 6.Nc3 Bd6 7.Be3 0-0 8.Be2 Nc6 9.h3 b6 10.0-0 Bb7 11.Re1 h6 12.a3 a5 13.Bd3 Ne7
22/33+ 00:09 27,619k 2,829k -0.59 2. ... Qxd5
22/33 00:10 30,191k 2,844k -0.53 2. ... Qxd5 3.Nc3 Qd8 4.d4 Nf6 5.Nf3 e6 6.Be3 Nc6 7.Bd3 Nb4 8.Be2 c6 9.0-0 h6 10.Bd2 c5 11.Be3 cxd4 12.Bxd4 Nc6 13.Bxf6 Qxf6
23/29- 00:11 32,739k 2,855k -0.60 2. ... Qxd5 3.Nc3
23/29 00:11 33,745k 2,857k -0.60 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 e6 5.d4 Nf6 6.Bd3 c5 7.dxc5 Bxc5 8.Qe2 Bd7 9.0-0 Bc6 10.Ne5 Nbd7 11.Nxc6 bxc6 12.Re1 0-0 13.Be3 Bxe3 14.Qxe3
24/33+ 00:12 35,527k 2,860k -0.52 2. ... Qxd5
24/33 00:13 37,959k 2,845k -0.57 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 Nf6 5.d4 e6 6.Bc4 Be7 7.0-0 0-0 8.Re1 c5 9.dxc5 Bxc5 10.Qe2 Bd7 11.Be3 Be7 12.Rad1 Nc6 13.Bf4 Qb6 14.Nb5 Rfc8 15.Be3 Qa5 16.c3 a6
25/32 00:15 44,821k 2,849k -0.50 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 Nf6 5.d4 e6 6.Bd3 c5 7.dxc5 Bxc5 8.Qe2 Bd7 9.0-0 Bc6 10.Ne5 0-0 11.Rd1 Qb6 12.Rb1 h6 13.Be3 Bxe3 14.Qxe3 Nbd7 15.Nxc6
26/36- 00:16 46,180k 2,851k -0.58 2. ... Qxd5 3.Nc3
26/36 00:18 53,220k 2,846k -0.53 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 Nf6 5.d4 e6 6.Bd3 Nbd7 7.Be3 Be7 8.0-0 0-0 9.Ne5 c5 10.Qf3 cxd4 11.Bxd4 Nxe5 12.Bxe5 Nd7 13.Bd4 e5 14.Be3 Nc5 15.Bc4 Be6 16.Bxe6 Nxe6 17.Rae1 f5 18.Qxb7
27/36+ 00:21 61,795k 2,833k -0.46 2. ... Qxd5
27/41 00:27 77,604k 2,800k -0.50 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 Bf5 5.d4 Nf6 6.Bd3 Bxd3 7.Qxd3 c6 8.0-0 e6 9.Be3 Nbd7 10.Ne2 Be7 11.c4 0-0 12.Rfd1 h6 13.h3 Qb6 14.Rdb1 Rad8 15.Bf4 c5 16.d5 exd5 17.cxd5
28/36+ 00:36 101,389k 2,813k -0.43 2. ... Qxd5
28/39 00:40 114,040k 2,821k -0.50 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 Nf6 5.d4 e6 6.Be2 Be7 7.0-0 0-0 8.Bf4 Nbd7 9.Qd3 b6 10.Rad1 Bb7 11.Ne5 Nxe5 12.Bxe5 Nd7 13.Bg3 Bd6 14.Rfe1 Bxg3 15.Qxg3 Bc6 16.Bf3 Bxf3 17.Qxf3
29/40+ 00:45 128,692k 2,823k -0.42 2. ... Qxd5
29/40 00:56 160,165k 2,841k -0.50 2. ... Qxd5 3.Nc3 Qd8 4.d4 Nf6 5.Nf3 Bf5 6.Bd3 Bxd3 7.Qxd3 c6 8.0-0 e6 9.Re1 Be7 10.Bf4 0-0 11.Ne4 Nbd7 12.c4 Nxe4 13.Qxe4 Nf6 14.Qc2 h6 15.Rad1 Bd6 16.Ne5 a6 17.Be3
30/37 01:08 193,372k 2,841k -0.45 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 Nf6 5.d4 Bf5 6.Bd3 Bxd3 7.Qxd3 c6 8.0-0 e6 9.Re1 Be7 10.Bf4 0-0 11.Ne4 Nbd7 12.c4 Nxe4 13.Qxe4 Nf6 14.Qe2 Bb4 15.Red1 Bd6 16.Be5 h6 17.a3 a6 18.Bxd6
31/40- 01:16 218,198k 2,846k -0.53 2. ... Qxd5 3.Nc3
31/40+ 01:25 244,519k 2,849k -0.45 2. ... Qxd5
31/40 01:38 279,780k 2,829k -0.44 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 e6 5.d4 Nf6 6.Be2 Bd6 7.0-0 0-0 8.Nb5 Be7 9.c4 Bd7 10.Nc3 c5 11.dxc5 Bxc5 12.a3 a5 13.Bf4 Bc6 14.Ne5 Qb6 15.Qb1 Qc7 16.Bg3 Bd6 17.Ng4 Nxg4 18.Bxg4 Bxg3
32/44- 01:49 308,150k 2,824k -0.52 2. ... Qxd5 3.Nc3
32/44- 01:52 316,909k 2,823k -0.59 2. ... Qxd5 3.Nc3
32/44+ 02:02 343,817k 2,816k -0.52 2. ... Qxd5
32/44 02:17 388,512k 2,816k -0.46 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 e6 5.Be2 Nf6 6.0-0 Bd6 7.d4 Nc6 8.Nb5 h6 9.Be3 0-0 10.c4 b6 11.Rc1 Bb7 12.h3 Be7 13.a3 a6 14.Nc3 Na5 15.b4 Bxf3 16.gxf3 Nb7 17.c5 a5 18.Bb5 axb4 19.axb4 bxc5 20.dxc5
33/44- 02:43 459,521k 2,811k -0.53 2. ... Qxd5 3.Nc3
33/44+ 03:05 519,551k 2,807k -0.46 2. ... Qxd5
33/45 03:31 595,732k 2,812k -0.40 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 e6 5.Be2 Nf6 6.d4 Be7 7.0-0 Nbd7 8.Bf4 0-0 9.Qd3 Nd5 10.Nxd5 exd5 11.h3 Nf6 12.Rae1 Ne4 13.Qd1 Bd6 14.Bxd6 Nxd6 15.Bd3 c6 16.Qd2 Bf5 17.Bxf5 Nxf5 18.Kh1 f6 19.c3 Rc8 20.Kg1
34/41- 03:40 621,692k 2,815k -0.47 2. ... Qxd5 3.Nc3
34/45+ 04:03 684,362k 2,811k -0.40 2. ... Qxd5
34/48+ 04:45 802,261k 2,812k -0.28 2. ... Qxd5
34/49 07:21 1,250,354k 2,834k -0.25 2. ... Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Nf3 Bf5 6.Bc4 e6 7.0-0 Bb4 8.Ne2 0-0 9.c3 Bd6 10.Ng3 Bxg3 11.hxg3 Nbd7 12.Qb3 c5 13.Qxb7 cxd4 14.Nxd4 Be4 15.Qb4 Qxb4 16.cxb4 Rfb8 17.a3 Rd8 18.f3 Bd5 19.Be2 e5 20.Nb5
35/48- 08:33 1,448,716k 2,821k -0.33 2. ... Qxd5 3.Nc3
35/48- 08:38 1,461,464k 2,821k -0.40 2. ... Qxd5 3.Nc3
35/48 09:12 1,560,310k 2,825k -0.50 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 e6 5.Be2 Nf6 6.d4 Bd6 7.0-0 0-0 8.Re1 Nbd7 9.Nb5 Be7 10.c4 a6 11.Nc3 b5 12.cxb5 axb5 13.Bxb5 Bb7 14.Be3 c6 15.Be2 c5 16.h3 Qb8 17.a4 cxd4 18.Bxd4 Bb4 19.Bb5 Rd8 20.Qe2 Qc7 21.Rac1 Nc5 22.Be5
36/45+ 09:45 1,649,553k 2,819k -0.42 2. ... Qxd5
36/47+ 10:14 1,730,660k 2,818k -0.35 2. ... Qxd5
36/48 11:22 1,928,482k 2,827k -0.37 2. ... Qxd5 3.Nc3 Qd8 4.d4 e6 5.Be2 Nf6 6.Nf3 Be7 7.0-0 Nbd7 8.a4 0-0 9.Bf4 Bd6 10.Qd2 b6 11.Ne5 Bb7 12.a5 bxa5 13.Qd3 Nb6 14.Rxa5 Nfd5 15.Nxd5 Bxd5 16.Qg3 f6 17.Nd3 Nc4 18.Raa1 a5 19.Rfd1 Bxf4 20.Nxf4 Nxb2
Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Weakly vs strongly solving chess

Post by Uri Blass »

stopped the analysis when the score is still 0.37 at depth 41
Stockfish does not see a win for white after 1.e4 d5 2.exd5

[D]rnbqkbnr/ppp1pppp/8/3P4/8/8/PPPP1PPP/RNBQKBNR b KQkq - 0 2

Stockfish_17092216_x64_modern:

37/50+ 12:13 2,069,586k 2,820k -0.30 2. ... Qxd5
37/51 14:13 2,407,722k 2,821k -0.41 2. ... Qxd5 3.Nc3 Qa5 4.d4 Nf6 5.Bd2 Bg4 6.Nf3 Qf5 7.Be3 Bxf3 8.Qxf3 Qxf3 9.gxf3 e6 10.0-0-0 Nc6 11.Ne4 Be7 12.Bb5 0-0 13.c3 g6 14.Nxf6+ Bxf6 15.Bxc6 bxc6 16.Kc2 Rfd8 17.Bf4 Rac8 18.Rhe1 Rd5 19.Be5 Bxe5 20.dxe5 Rcd8 21.Rxd5 cxd5 22.Rd1 Kg7 23.f4
38/50+ 16:39 2,827,711k 2,828k -0.33 2. ... Qxd5
38/51+ 20:06 3,415,700k 2,832k -0.26 2. ... Qxd5
38/52 23:27 3,960,795k 2,814k -0.24 2. ... Qxd5 3.Nc3 Qa5 4.d4 c6 5.Nf3 Bf5 6.Nh4 Bg6 7.Bf4 Nf6 8.Be2 e6 9.Nxg6 hxg6 10.0-0 Bb4 11.h3 Bxc3 12.bxc3 Nd5 13.Bd2 Nxc3 14.Bf3 Nxd1 15.Bxa5 Nb2 16.Rfb1 Nc4 17.Bc3 Nd6 18.d5 exd5 19.Bxg7 Rh7 20.Be5 Nc4 21.Bf4 Nd7 22.Rxb7 Na3 23.c4 Nxc4 24.a3 f6
39/53- 24:42 4,169,701k 2,813k -0.31 2. ... Qxd5 3.Nc3
39/53- 24:59 4,217,028k 2,813k -0.39 2. ... Qxd5 3.Nc3
39/54+ 29:35 4,990,915k 2,811k -0.31 2. ... Qxd5
39/54 36:10 6,093,062k 2,807k -0.34 2. ... Qxd5 3.Nc3 Qd8 4.Nf3 Bf5 5.d4 e6 6.Bd3 Bxd3 7.Qxd3 c6 8.Bg5 Nf6 9.Bxf6 Qxf6 10.Ne4 Qf4 11.g3 Qc7 12.0-0-0 Nd7 13.Kb1 Be7 14.h4 h6 15.Rhe1 Nf6 16.c3 Rd8 17.Nxf6+ Bxf6 18.g4 g5 19.hxg5 hxg5 20.Qe3 Qf4 21.Qxf4 gxf4 22.Re4 Be7 23.Kc2 Bd6 24.g5 Be7 25.b4 Bd6 26.a4 Bc7
40/52- 36:31 6,145,974k 2,805k -0.42 2. ... Qxd5 3.Nc3
40/52- 37:15 6,275,196k 2,808k -0.49 2. ... Qxd5 3.Nc3
40/52+ 38:40 6,516,390k 2,808k -0.42 2. ... Qxd5
40/54+ 43:08 7,283,146k 2,813k -0.26 2. ... Qxd5
40/56 45:49 7,731,981k 2,812k -0.37 2. ... Qxd5 3.Nc3 Qd8 4.d4 Nf6 5.Nf3 e6 6.Be2 Bb4 7.Qd3 0-0 8.a3 Be7 9.0-0 c5 10.Rd1 Nc6 11.dxc5 Qxd3 12.Bxd3 Bxc5 13.b4 Be7 14.Bb2 b6 15.Ne2 Bb7 16.Rd2 Rfd8 17.Rad1 h6 18.h3 a6 19.c4 a5 20.b5 Na7 21.a4 Rac8 22.Ng3 Bb4
41/48+ 46:27 7,837,842k 2,812k -0.30 2. ... Qxd5
41/55 1:01:47 10,468,972k 2,824k -0.37 2. ... Qxd5 3.Nc3 Qd6 4.d4 Nf6 5.Nf3 a6 6.Bd3 c5 7.dxc5 Qxc5 8.Be3 Qc7 9.0-0 e6 10.Qd2 Be7 11.Bf4 Qb6 12.Rad1 Nbd7 13.Ne5 Nxe5 14.Bxe5 Bd7 15.Bxa6 Bc6 16.Be2 0-0 17.Qg5 Ra5 18.Rd3 h6 19.Qg3 Rxe5 20.Qxe5 Qxb2 21.Qe3 Qxc2 22.Bf3 Rc8 23.Bxc6 Rxc6 24.Rb1 Ne4 25.Qxe4 Rxc3