3 Champs Highlights

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

Moderator: Ras

tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: Do I have a storming pawn?

Post by tpetzke »

I think you can safely dispense bonus points for all storming pawns constituting part of the king shelter, whenever the opponent does not have any visible counterplay; or when, according to your own eval, for a series of moves (say 5 consecutive), you have a good positive eval, but it does not increase, meaning you are not finding the right way.
The static eval of a position should not use path information. It's called static for that reason. So the eval of a position should always be the same independant how it is reached. (BTW: For that reason I don't assign a bonus when one side executes a castling move. This would introduce path dependency as the same position could be reached without casteling and the scores should be the same)

To statically see whether the opponent has counter play against you king is not trivial. You use the king safety eval for that and you have to balance that with the bonus for the storming pawn.
As opposite-side castlings occur pretty rarely, I think iCE (why I am tempted to write ice or Ice instead? Very Happy ) could well miss many realistic opportunities to win a game by using its storming pawns that still belong to the king shelter.
Yes, probably (and I will have a look at it). On the other side statistically it might very well be that for the most positions moves of pawns that protect your king are bad. If you encourage such moves the engine might even detect with a deeper search that those moves are bad and not execute them, but you have guided your search in the wrong direction in the lower plies and this hurts as you have wasted nodes.
That is the trick, how could you see that g4 is good at ply 1, when you probably need some 10 plies more to see that the enemy king safety will suffer even worse because of the attacking pawn, and thus its push be justified?
You don't see it a ply one. But you see it when you reach ply 10 (if g4 is late in the list probably you need even more plies as it is reduced to much). But this is the reason we have "search" in engines and don't play moves after a static 1 ply lookup.
Thomas...

=======
http://macechess.blogspot.com - iCE Chess Engine
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: A bit sharper

Post by tpetzke »

Hi, I also have not looked to deep into it but iCE sees Ng4 as losing

f6g4 : -220 f6g4 d2f1 c6c5 f3g5 h3h5 a4a5 b6a7 a3h3 h5g6

it would also rather play Qg4 with a score of -0.50 or so

Thomas...
Thomas...

=======
http://macechess.blogspot.com - iCE Chess Engine
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: A bit sharper

Post by Lyudmil Tsvetkov »

tpetzke wrote:Hi, I also have not looked to deep into it but iCE sees Ng4 as losing

f6g4 : -220 f6g4 d2f1 c6c5 f3g5 h3h5 a4a5 b6a7 a3h3 h5g6

it would also rather play Qg4 with a score of -0.50 or so

Thomas...
Hi Thomas.

Thanks for the input.
I was probably too tired when I wrote that, because my second variation really sucks :( , but I think my general remarks are still valid.

I think black could still include h6 instead of the iCE c5 line, and then try to attack with the rook on the 6th rank. If that is not good, then probably the sacrifice is not sound (that was my first impression, but after that I kind of changed my opinion). Still an interesting, unusual line.

I think I will go back to this position when I am able to with a more serious approach.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Do I have a storming pawn?

Post by Lyudmil Tsvetkov »

tpetzke wrote:
I think you can safely dispense bonus points for all storming pawns constituting part of the king shelter, whenever the opponent does not have any visible counterplay; or when, according to your own eval, for a series of moves (say 5 consecutive), you have a good positive eval, but it does not increase, meaning you are not finding the right way.
The static eval of a position should not use path information. It's called static for that reason. So the eval of a position should always be the same independant how it is reached. (BTW: For that reason I don't assign a bonus when one side executes a castling move. This would introduce path dependency as the same position could be reached without casteling and the scores should be the same)

To statically see whether the opponent has counter play against you king is not trivial. You use the king safety eval for that and you have to balance that with the bonus for the storming pawn.
As opposite-side castlings occur pretty rarely, I think iCE (why I am tempted to write ice or Ice instead? Very Happy ) could well miss many realistic opportunities to win a game by using its storming pawns that still belong to the king shelter.
Yes, probably (and I will have a look at it). On the other side statistically it might very well be that for the most positions moves of pawns that protect your king are bad. If you encourage such moves the engine might even detect with a deeper search that those moves are bad and not execute them, but you have guided your search in the wrong direction in the lower plies and this hurts as you have wasted nodes.
That is the trick, how could you see that g4 is good at ply 1, when you probably need some 10 plies more to see that the enemy king safety will suffer even worse because of the attacking pawn, and thus its push be justified?
You don't see it a ply one. But you see it when you reach ply 10 (if g4 is late in the list probably you need even more plies as it is reduced to much). But this is the reason we have "search" in engines and don't play moves after a static 1 ply lookup.
Hi Thomas again.

I understand your point of view, but the important thing is that, if there is a good move, an ambitious engine should be able to find it somehow. I know computer chess programmers are able to do all kinds of tricks, so you should be able to trick also your static eval so that the right move is found.

And storming with pawns that are still part of the king shelter is really a very important method to claim a decisive advantage, sometimes even the only way to do that. I think the idea that such pawns should not budge because the king will be exposed is simply a preconception.

My theory of pawn storms would be very simple indeed:

- bonus is dispensed starting with the 4th rank; for the 5th and 6th ranks the bonus is gradually increased
- the bonus is further increased by some 20% if the storming pawn is able to attack an enemy object (usually a pawn) on the next move
- the bonus is increased by another 20% if the storming pawn already attacks an enemy object
- when the storming pawn is fixed/blocked (I use fixed to make a distinction between fixing with pawns and blocking with pieces) by an enemy pawn, it stops being a storming pawn and instead gets bonus for space advantage (as a storming pawn should be able to move in order to be effective)
- I would not make a distinction depending on whether the storming pawn is on a file with or without enemy pawns on it, as I can not make sense if this is really logical

Very simple indeed, but I think might be efficient (at least for myself, I do not know about engines, engines are another thing, you should know all their specificities to be able to suggest something, many thinks might not work at all within a programming environment, but it is also possible that some things would not work because of preconceptions).

Anyway, I think storms from the king shelter are probably one of the most difficult concepts as, judging by the 3 Champs, even the top engines have significant problems then.

I am sorry, I talk too much, but if no one answers, I should be able to fill the thread myself :o
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Do I have a storming pawn?

Post by Don »

Lyudmil Tsvetkov wrote:
tpetzke wrote:
I think you can safely dispense bonus points for all storming pawns constituting part of the king shelter, whenever the opponent does not have any visible counterplay; or when, according to your own eval, for a series of moves (say 5 consecutive), you have a good positive eval, but it does not increase, meaning you are not finding the right way.
The static eval of a position should not use path information. It's called static for that reason. So the eval of a position should always be the same independant how it is reached. (BTW: For that reason I don't assign a bonus when one side executes a castling move. This would introduce path dependency as the same position could be reached without casteling and the scores should be the same)

To statically see whether the opponent has counter play against you king is not trivial. You use the king safety eval for that and you have to balance that with the bonus for the storming pawn.
As opposite-side castlings occur pretty rarely, I think iCE (why I am tempted to write ice or Ice instead? Very Happy ) could well miss many realistic opportunities to win a game by using its storming pawns that still belong to the king shelter.
Yes, probably (and I will have a look at it). On the other side statistically it might very well be that for the most positions moves of pawns that protect your king are bad. If you encourage such moves the engine might even detect with a deeper search that those moves are bad and not execute them, but you have guided your search in the wrong direction in the lower plies and this hurts as you have wasted nodes.
That is the trick, how could you see that g4 is good at ply 1, when you probably need some 10 plies more to see that the enemy king safety will suffer even worse because of the attacking pawn, and thus its push be justified?
You don't see it a ply one. But you see it when you reach ply 10 (if g4 is late in the list probably you need even more plies as it is reduced to much). But this is the reason we have "search" in engines and don't play moves after a static 1 ply lookup.
Hi Thomas again.

I understand your point of view, but the important thing is that, if there is a good move, an ambitious engine should be able to find it somehow. I know computer chess programmers are able to do all kinds of tricks, so you should be able to trick also your static eval so that the right move is found.

And storming with pawns that are still part of the king shelter is really a very important method to claim a decisive advantage, sometimes even the only way to do that. I think the idea that such pawns should not budge because the king will be exposed is simply a preconception.

My theory of pawn storms would be very simple indeed:

- bonus is dispensed starting with the 4th rank; for the 5th and 6th ranks the bonus is gradually increased
- the bonus is further increased by some 20% if the storming pawn is able to attack an enemy object (usually a pawn) on the next move
- the bonus is increased by another 20% if the storming pawn already attacks an enemy object
- when the storming pawn is fixed/blocked (I use fixed to make a distinction between fixing with pawns and blocking with pieces) by an enemy pawn, it stops being a storming pawn and instead gets bonus for space advantage (as a storming pawn should be able to move in order to be effective)
- I would not make a distinction depending on whether the storming pawn is on a file with or without enemy pawns on it, as I can not make sense if this is really logical

Very simple indeed, but I think might be efficient (at least for myself, I do not know about engines, engines are another thing, you should know all their specificities to be able to suggest something, many thinks might not work at all within a programming environment, but it is also possible that some things would not work because of preconceptions).

Anyway, I think storms from the king shelter are probably one of the most difficult concepts as, judging by the 3 Champs, even the top engines have significant problems then.

I am sorry, I talk too much, but if no one answers, I should be able to fill the thread myself :o
Those are good ideas. Engines will always have significant problems with concepts like this because they are really tricky and require fine positional judgement. For example when both sides are castled on the same side of the board, when should a pawn stay home and when should it "storm?" There is no clear cut rule, just rules of thumb. The best answer is probably "the side that has the strongest attack (considering also other attacks on the king)" That is not so easy to just whip together a scoring function to decide.

It's well known in computer chess that every concept that is implemented in chess programs is sometimes wrong! You just cannot cover every conceivable case with every conceivable exception.

What you have to focus on are general principles that are amplified with the power of the search. We try to implement general principles that won't be wrong very often and that at least make sense. For example mobility - it's pretty much a sure thing - if you have a lot of mobility it isn't bad - although it may not be very relevant in some situations (such as closed positions.)

Don
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Undecided

Post by Lyudmil Tsvetkov »

I am still undecided if I should post my opinion on the position, but, as no one else intervenes, my superficial judgement would be that, maybe, after all, h6 instead of g6 could have saved the game.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Do I have a storming pawn?

Post by Lyudmil Tsvetkov »

Here 2 more interesting games on the topic, featuring opposite castled kings.

Game 63 and 64 of the 3Champs, Stockfish against Houdini and Stockfish against Komodo. In the same line, Stockfish drew the game against Houdini, and lost to Komodo, but I think the outcome of both games could have been at will, with either side winning, depending on who used in a better way its storming pawns.

I will not comment anything, will just post the full games for you to browse more thoroughly, but am of the opinion that in both games all engines missed at least a couple of times more convincing continuations having to do with storms.

[pgn][PlyCount "184"]
[EventType "tourn"]
[Source "K."]
[Event "3Champs/60+15"]
[Date "2013.08.24"]
[Round "21.3"]
[White "Stockfish 180813 64 SSE4.2 x8"]
[Black "Houdini 3 Pro x64 sd12x8"]
[Result "1/2-1/2"]
[EventDate "2013.08.18"]
[ECO "C85"]
[Annotator "0.26;0.03"]
[MLNrOfMoves "92"]
[MLFlags "000100"]


{Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz 3100 MHz W=33.9 plies; 11.705kN/s B=26.3 plies; 17.889kN/s}
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Bxc6
{[%eval 26,30] [%emt 0:02:03]} 6... dxc6 {[%eval 3,27] [%emt 0:04:03]} 7. d3
{[%eval 18,33] [%emt 0:00:00]} 7... Bd6 {(Nd7) [%eval 2,27] [%emt 0:01:41]} 8.
Bg5 {(Nbd2) [%eval 20,31] [%emt 0:01:49]} 8... h6 {[%eval 0,28] [%emt 0:01:22]}
9. Bh4 {[%eval 16,31] [%emt 0:00:06]} 9... Qe7 {[%eval 0,27] [%emt 0:01:19]} 10.
Nbd2 {[%eval 20,30] [%emt 0:00:44]} 10... Bg4 {[%eval 0,26] [%emt 0:01:32]} 11.
h3 {[%eval 20,28] [%emt 0:00:49]} 11... Bh5 {[%eval -3,26] [%emt 0:00:35]} 12.
Re1 {(a3) [%eval 22,29] [%emt 0:04:08]} 12... g5
{(0-0-0) [%eval -5,26] [%emt 0:01:38]} 13. Bg3 {[%eval 20,28] [%emt 0:00:29]}
13... O-O-O {[%eval -11,25] [%emt 0:00:53]} 14. Nc4
{[%eval 8,30] [%emt 0:02:28]} 14... Nd7 {(Qe6) [%eval -11,25] [%emt 0:00:06]}
15. c3 {(a4) [%eval 10,30] [%emt 0:02:17]} 15... f6
{(Qe6) [%eval -5,25] [%emt 0:01:25]} 16. b4 {[%eval 20,28] [%emt 0:02:01]} 16...
Kb8 {(Bf7) [%eval -4,26] [%emt 0:00:23]} 17. Ne3 {[%eval 14,30] [%emt 0:04:20]}
17... Qe6 {[%eval -2,26] [%emt 0:01:39]} 18. a4 {[%eval 30,30] [%emt 0:01:24]}
18... Nb6 {(Bg6) [%eval 0,24] [%emt 0:00:11]} 19. Nf5
{(Qe2) [%eval 18,30] [%emt 0:03:01]} 19... Bg6 {[%eval 0,26] [%emt 0:01:38]} 20.
Nxd6 {[%eval 26,33] [%emt 0:00:00]} 20... Rxd6 {[%eval 0,26] [%emt 0:01:34]} 21.
Qc2 {[%eval 36,31] [%emt 0:00:06]} 21... Rhd8
{(Bh5) [%eval 2,26] [%emt 0:01:09]} 22. a5 {[%eval 30,30] [%emt 0:01:27]} 22...
Nd7 {[%eval 4,26] [%emt 0:00:57]} 23. c4 {(d4) [%eval 28,32] [%emt 0:00:46]}
23... c5 {[%eval 6,27] [%emt 0:02:29]} 24. b5 {[%eval 35534,33] [%emt 0:00:00]}
24... Nf8 {[%eval 10,25] [%emt 0:01:03]} 25. Ra3 {[%eval 40,32] [%emt 0:00:50]}
25... Qc8 {(h5) [%eval -3,26] [%emt 0:00:23]} 26. bxa6
{[%eval 36,34] [%emt 0:02:08]} 26... Rxa6 {[%eval 5,27] [%emt 0:00:00]} 27. Nh2
{[%eval 35534,34] [%emt 0:02:11]} 27... Ne6 {[%eval 13,27] [%emt 0:00:00]} 28.
f3 {[%eval 38,32] [%emt 0:02:11]} 28... h5 {[%eval 13,27] [%emt 0:00:00]} 29.
Nf1 {(Rb1) [%eval 35534,33] [%emt 0:02:05]} 29... g4
{(Rd7) [%eval 17,26] [%emt 0:02:02]} 30. fxg4 {[%eval 48,32] [%emt 0:01:40]}
30... hxg4 {[%eval 13,26] [%emt 0:00:00]} 31. h4
{[%eval 35534,31] [%emt 0:02:00]} 31... Be8 {[%eval 20,26] [%emt 0:00:00]} 32.
Ne3 {(Bf2) [%eval 74,32] [%emt 0:01:22]} 32... Nd4
{[%eval 28,27] [%emt 0:05:07]} 33. Qb2 {(Qf2) [%eval 70,32] [%emt 0:00:00]}
33... Bc6 {[%eval 21,25] [%emt 0:01:12]} 34. Ra2
{(Rf1) [%eval 74,32] [%emt 0:00:43]} 34... Rh8 {[%eval 31,24] [%emt 0:02:42]}
35. Rf1 {[%eval 35534,31] [%emt 0:06:01]} 35... Qd8
{[%eval 39,27] [%emt 0:00:00]} 36. Qa3 {(Qf2) [%eval 64,30] [%emt 0:01:56]}
36... Qe7 {(Kc8) [%eval 28,24] [%emt 0:00:51]} 37. Rb2
{[%eval 64,29] [%emt 0:03:14]} 37... Rh6 {(Kc8) [%eval 28,26] [%emt 0:00:00]}
38. Nd5 {(Be1) [%eval 60,30] [%emt 0:01:00]} 38... Qd6
{[%eval 28,23] [%emt 0:02:16]} 39. Qc3 {[%eval 35534,32] [%emt 0:00:00]} 39...
Qd8 {[%eval 55,25] [%emt 0:01:40]} 40. Ne3 {(Qe1) [%eval 60,30] [%emt 0:00:00]}
40... Qh8 {(Kc8) [%eval 28,24] [%emt 0:00:47]} 41. Rfb1
{(Qe1) [%eval 64,30] [%emt 0:01:03]} 41... Rxh4
{(Kc8) [%eval 24,26] [%emt 0:00:50]} 42. Bxh4 {[%eval 48,31] [%emt 0:00:18]}
42... Qxh4 {[%eval 21,25] [%emt 0:00:00]} 43. Qe1 {[%eval 46,34] [%emt 0:02:39]}
43... Qg5 {[%eval 20,28] [%emt 0:00:00]} 44. Nf1 {[%eval 52,33] [%emt 0:01:16]}
44... Qg7 {[%eval 21,26] [%emt 0:00:10]} 45. Ng3 {[%eval 40,33] [%emt 0:00:45]}
45... Qh6 {[%eval 22,27] [%emt 0:00:09]} 46. Qd2 {[%eval 40,35] [%emt 0:00:36]}
46... Qg6 {(Qh8) [%eval 21,25] [%emt 0:00:48]} 47. Ra1
{(Nf1) [%eval 40,29] [%emt 0:00:54]} 47... Bd7 {[%eval 11,26] [%emt 0:01:10]}
48. Qf2 {(Qe3) [%eval 40,33] [%emt 0:00:00]} 48... Qg5
{(Qh7) [%eval 20,26] [%emt 0:01:09]} 49. Nf1 {[%eval 40,36] [%emt 0:01:02]}
49... Bc8 {[%eval 17,25] [%emt 0:00:02]} 50. Qe3
{(Qe1) [%eval 40,35] [%emt 0:04:13]} 50... Qg7 {[%eval 9,27] [%emt 0:01:48]} 51.
Ng3 {[%eval 35534,35] [%emt 0:00:53]} 51... Qh7
{(Qe7) [%eval 9,26] [%emt 0:00:00]} 52. Qf2 {(Ra3) [%eval 40,34] [%emt 0:00:55]}
52... Qh8 {(Qh4) [%eval 9,26] [%emt 0:00:43]} 53. Rbb1
{(Qe3) [%eval 40,36] [%emt 0:00:28]} 53... Qh6
{(Qh4) [%eval 9,28] [%emt 0:00:44]} 54. Re1 {(Ra2) [%eval 40,38] [%emt 0:00:42]}
54... Qf8 {(Qh4) [%eval 9,28] [%emt 0:00:41]} 55. Rf1
{(Reb1) [%eval 40,39] [%emt 0:00:27]} 55... Qd6
{(Qh6) [%eval 13,27] [%emt 0:00:52]} 56. Ra3
{(Ra2) [%eval 40,36] [%emt 0:00:25]} 56... Qf8 {[%eval 12,27] [%emt 0:01:25]}
57. Rb1 {(Ne2) [%eval 40,40] [%emt 0:00:00]} 57... Qh6
{[%eval 9,28] [%emt 0:00:42]} 58. Re1 {(Raa1) [%eval 40,39] [%emt 0:00:00]}
58... Qh7 {(Qh4) [%eval 9,28] [%emt 0:00:39]} 59. Raa1
{(Rb1) [%eval 40,35] [%emt 0:00:32]} 59... Qe7
{(Qh4) [%eval 9,28] [%emt 0:00:44]} 60. Red1
{(Reb1) [%eval 40,31] [%emt 0:00:33]} 60... Bd7
{(Qf8) [%eval 9,27] [%emt 0:00:45]} 61. Rf1
{(Rdb1) [%eval 40,36] [%emt 0:00:29]} 61... Qh7 {[%eval 9,27] [%emt 0:00:37]}
62. Ra2 {(Rfb1) [%eval 40,38] [%emt 0:00:00]} 62... Qh4
{[%eval 9,27] [%emt 0:00:38]} 63. Rb1 {(Qe3) [%eval 40,39] [%emt 0:00:00]} 63...
Bc8 {[%eval 9,27] [%emt 0:00:37]} 64. Rba1 {(Nf1) [%eval 40,38] [%emt 0:00:02]}
64... Qh7 {(Bd7) [%eval 9,28] [%emt 0:01:33]} 65. Qe3
{(Rb2) [%eval 34,34] [%emt 0:00:39]} 65... Qg7
{(Qh4) [%eval 9,27] [%emt 0:00:34]} 66. Rf1 {(Rb2) [%eval 34,34] [%emt 0:00:37]}
66... Qh7 {[%eval 9,27] [%emt 0:00:36]} 67. Qf2 {[%eval 34,35] [%emt 0:00:00]}
67... Qh4 {(Qh8) [%eval 9,27] [%emt 0:00:34]} 68. Rb1
{[%eval 40,38] [%emt 0:00:37]} 68... Qh8 {(Qh6) [%eval 9,28] [%emt 0:00:00]} 69.
Qe3 {(Raa1) [%eval 32,32] [%emt 0:00:45]} 69... Qh7
{(Qd8) [%eval 9,26] [%emt 0:00:34]} 70. Rf1
{(Rba1) [%eval 34,35] [%emt 0:00:26]} 70... Qh8 {[%eval 9,27] [%emt 0:02:43]}
71. Rff2 {(Rb1) [%eval 32,38] [%emt 0:00:00]} 71... Qh7
{(Bd7) [%eval 10,24] [%emt 0:00:48]} 72. Ra1
{(Rfb2) [%eval 32,37] [%emt 0:00:23]} 72... Qg7
{(Qh4) [%eval 11,25] [%emt 0:00:52]} 73. Ra3
{(Rfa2) [%eval 32,34] [%emt 0:00:31]} 73... Qf8
{(Qh8) [%eval 9,26] [%emt 0:00:30]} 74. Raa2
{(Nf1) [%eval 32,32] [%emt 0:00:19]} 74... Qh8 {[%eval 9,27] [%emt 0:00:29]} 75.
Rfb2 {(Rf1) [%eval 32,35] [%emt 0:00:00]} 75... Qh7
{(Qd8) [%eval 10,25] [%emt 0:00:29]} 76. Rb1
{(Ra1) [%eval 32,36] [%emt 0:00:20]} 76... Qh4 {[%eval 10,25] [%emt 0:00:31]}
77. Rba1 {(Rf1) [%eval 32,37] [%emt 0:00:00]} 77... Qh7
{(Qh8) [%eval 9,26] [%emt 0:00:28]} 78. Rb2 {(Rb1) [%eval 32,35] [%emt 0:00:43]}
78... Qh8 {[%eval 13,25] [%emt 0:00:38]} 79. Ra3
{(Rba2) [%eval 32,36] [%emt 0:00:00]} 79... Qg7
{(Be6) [%eval 9,27] [%emt 0:00:28]} 80. Qd2 {(Ra1) [%eval 32,33] [%emt 0:00:29]}
80... Qe7 {(Qh8) [%eval 9,27] [%emt 0:00:27]} 81. Qh6
{(Qe3) [%eval 32,31] [%emt 0:00:22]} 81... Qd8 {[%eval 9,27] [%emt 0:00:27]} 82.
Qe3 {[%eval 32,34] [%emt 0:00:00]} 82... Qh8
{(Qf8) [%eval 16,27] [%emt 0:02:06]} 83. Qf2
{(Ra1) [%eval 35534,38] [%emt 0:00:52]} 83... Qh6 {[%eval 9,26] [%emt 0:00:24]}
84. Rb1 {(Ra1) [%eval 0,32] [%emt 0:00:00]} 84... Qf8
{(Qh7) [%eval 9,25] [%emt 0:00:24]} 85. Rd1 {(Qa2) [%eval 0,31] [%emt 0:00:16]}
85... Qe7 {(Qe8) [%eval 9,27] [%emt 0:00:24]} 86. Ra2
{(Raa1) [%eval 0,34] [%emt 0:00:30]} 86... Qd7
{(Qd6) [%eval 22,25] [%emt 0:00:24]} 87. Ne2
{(Rb1) [%eval 32,31] [%emt 0:00:21]} 87... Qh7 {[%eval 18,26] [%emt 0:01:36]}
88. Ng3 {(Nxd4) [%eval 0,37] [%emt 0:00:00]} 88... Qe7
{(Qd7) [%eval 22,26] [%emt 0:00:25]} 89. Nf1 {(Rf1) [%eval 0,36] [%emt 0:00:18]}
89... Qh7 {[%eval 12,24] [%emt 0:00:30]} 90. Ng3
{(Rb1) [%eval 0,49] [%emt 0:00:00]} 90... Ka7
{(Qd7) [%eval 22,26] [%emt 0:00:38]} 91. Rb1 {(Rf1) [%eval 0,42] [%emt 0:00:17]}
91... Bd7 {[%eval 22,30] [%emt 0:00:22]} 92. Nf1
{(Qb2) [%eval 0,45] [%emt 0:00:00]} 92... Qh8 {[%eval 22,30] [%emt 0:00:30]}
1/2-1/2

[PlyCount "140"]
[EventType "tourn"]
[Source "K."]
[Event "3Champs/60+15"]
[Date "2013.08.24"]
[Round "22.1"]
[White "Stockfish 180813 64 SSE4.2 x8"]
[Black "Komodo 1036.03 64-bit x8"]
[Result "0-1"]
[EventDate "2013.08.18"]
[ECO "C85"]
[Annotator "0.22;0.13"]
[MLNrOfMoves "70"]
[MLFlags "000100"]


{Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz 3099 MHz W=31.2 plies; 11.108kN/s B=24.3 plies; 10.446kN/s}
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Bxc6
{[%eval 22,32] [%emt 0:02:08]} 6... dxc6 {[%eval 13,24] [%emt 0:00:41]} 7. d3
{[%eval 22,31] [%emt 0:01:34]} 7... Bd6 {(Qd6) [%eval 13,25] [%emt 0:00:08]} 8.
Bg5 {(Be3) [%eval 16,30] [%emt 0:03:15]} 8... h6 {[%eval -7,23] [%emt 0:00:54]}
9. Bh4 {[%eval 18,31] [%emt 0:01:17]} 9... Qe7
{(Bg4) [%eval -10,24] [%emt 0:00:03]} 10. Nbd2 {[%eval 22,29] [%emt 0:02:19]}
10... Bg4 {[%eval -10,26] [%emt 0:01:22]} 11. h3 {[%eval 16,29] [%emt 0:00:36]}
11... Bh5 {[%eval -9,24] [%emt 0:00:06]} 12. a4
{(a3) [%eval 14,29] [%emt 0:02:18]} 12... g5
{(0-0) [%eval -11,23] [%emt 0:01:11]} 13. Bg3 {[%eval 26,26] [%emt 0:00:43]}
13... O-O-O {[%eval -8,24] [%emt 0:01:33]} 14. Nc4 {[%eval 2,29] [%emt 0:00:22]}
14... Qe6 {[%eval -10,24] [%emt 0:02:22]} 15. Qe2
{[%eval 35534,30] [%emt 0:00:00]} 15... Nd7 {[%eval -7,24] [%emt 0:01:19]} 16.
Ne3 {(Nxd6+) [%eval 20,31] [%emt 0:00:14]} 16... f6
{[%eval -18,24] [%emt 0:04:50]} 17. Rfb1 {(Bh2) [%eval 0,32] [%emt 0:00:00]}
17... c5 {[%eval -8,24] [%emt 0:01:47]} 18. c3 {[%eval 0,34] [%emt 0:01:02]}
18... Nb8 {[%eval 3,22] [%emt 0:01:54]} 19. Nf5 {[%eval -6,34] [%emt 0:01:21]}
19... Nc6 {[%eval -12,26] [%emt 0:00:17]} 20. Ng7 {[%eval 0,34] [%emt 0:01:19]}
20... Bxf3 {(Qf7) [%eval -13,26] [%emt 0:00:07]} 21. Qxf3
{[%eval 0,33] [%emt 0:00:37]} 21... Qf7 {(Qg8) [%eval -9,27] [%emt 0:01:54]} 22.
Nf5 {[%eval -14,34] [%emt 0:01:39]} 22... h5 {[%eval -8,27] [%emt 0:02:18]} 23.
h4 {(Qe2) [%eval -14,33] [%emt 0:00:00]} 23... Kb8
{(g4) [%eval -15,24] [%emt 0:00:57]} 24. Ne3
{(Rf1) [%eval -16,31] [%emt 0:02:36]} 24... g4 {[%eval -24,25] [%emt 0:02:05]}
25. Qe2 {[%eval -16,33] [%emt 0:00:00]} 25... Rhg8
{(Bf8) [%eval -10,24] [%emt 0:02:34]} 26. Rf1 {[%eval -8,34] [%emt 0:01:35]}
26... Qe6 {[%eval -9,25] [%emt 0:00:52]} 27. Rad1 {[%eval -8,35] [%emt 0:00:44]}
27... Rd7 {(Rg6) [%eval -10,24] [%emt 0:04:04]} 28. Kh1
{(Kh2) [%eval 0,32] [%emt 0:02:13]} 28... Ne7
{(Rdg7) [%eval -9,26] [%emt 0:03:39]} 29. Rb1
{(Kh2) [%eval 35534,33] [%emt 0:02:26]} 29... Rdd8
{(Qb3) [%eval -8,24] [%emt 0:03:26]} 30. b4 {(Kg1) [%eval 38,32] [%emt 0:01:46]}
30... cxb4 {[%eval 8,21] [%emt 0:01:07]} 31. cxb4
{[%eval 35534,32] [%emt 0:01:13]} 31... Rd7 {(f5) [%eval 12,25] [%emt 0:01:11]}
32. Nc4 {(b5) [%eval 84,30] [%emt 0:01:40]} 32... Nc6
{(Nc8) [%eval 12,26] [%emt 0:02:01]} 33. b5 {[%eval 86,33] [%emt 0:01:51]} 33...
Nd4 {[%eval 12,25] [%emt 0:00:18]} 34. Qd2 {[%eval 62,32] [%emt 0:07:34]} 34...
Be7 {(b6) [%eval 12,27] [%emt 0:00:31]} 35. Qa5
{(Qh6) [%eval 88,31] [%emt 0:02:21]} 35... Ka7
{(Ka8) [%eval 12,24] [%emt 0:02:09]} 36. Rfc1
{(Kh2) [%eval 72,34] [%emt 0:02:21]} 36... Rc8
{(Ka8) [%eval 12,24] [%emt 0:05:29]} 37. Rb2
{(Kh2) [%eval 80,30] [%emt 0:01:48]} 37... Rcd8 {[%eval 12,26] [%emt 0:01:20]}
38. Kh2 {[%eval 74,31] [%emt 0:00:07]} 38... Bc5 {[%eval 12,24] [%emt 0:00:42]}
39. bxa6 {[%eval 46,31] [%emt 0:01:44]} 39... b6 {[%eval 12,28] [%emt 0:00:25]}
40. Qc3 {[%eval 70,32] [%emt 0:00:40]} 40... Bf8
{(Be7) [%eval 12,26] [%emt 0:00:04]} 41. Ne3 {[%eval 26,29] [%emt 0:00:58]}
41... Be7 {[%eval 12,26] [%emt 0:00:20]} 42. Rcb1
{(Kh1) [%eval 20,31] [%emt 0:05:01]} 42... Qc6 {[%eval -20,23] [%emt 0:00:55]}
43. Qd2 {(Qxc6) [%eval 0,30] [%emt 0:00:00]} 43... Qxa4
{[%eval -36,22] [%emt 0:00:50]} 44. Nd5 {[%eval 0,30] [%emt 0:00:14]} 44... Rxd5
{[%eval -33,23] [%emt 0:00:27]} 45. exd5 {[%eval 0,34] [%emt 0:00:30]} 45...
Rxd5 {[%eval -35,24] [%emt 0:00:29]} 46. Qh6 {[%eval 35534,34] [%emt 0:04:56]}
46... Qe8 {[%eval -58,26] [%emt 0:00:28]} 47. Qh7
{[%eval -66,29] [%emt 0:02:15]} 47... f5 {(b5) [%eval -65,27] [%emt 0:01:12]}
48. Re1 {[%eval 0,32] [%emt 0:01:04]} 48... Bd6 {[%eval -52,26] [%emt 0:00:10]}
49. Kh1 {[%eval 0,32] [%emt 0:00:26]} 49... Rc5
{(Ra5) [%eval -64,25] [%emt 0:00:22]} 50. Bh2
{(Reb1) [%eval -72,27] [%emt 0:00:42]} 50... f4 {[%eval -78,20] [%emt 0:00:12]}
51. Reb1 {(Bg1) [%eval -105,29] [%emt 0:00:28]} 51... Kxa6
{[%eval -108,21] [%emt 0:00:25]} 52. Ra1+ {(Rb4) [%eval -145,30] [%emt 0:00:28]}
52... Ra5 {[%eval -124,21] [%emt 0:00:09]} 53. Rd1
{(Rab1) [%eval -141,31] [%emt 0:00:42]} 53... f3
{[%eval -145,26] [%emt 0:00:50]} 54. g3 {[%eval -171,33] [%emt 0:00:00]} 54...
Ne2 {(b5) [%eval -142,25] [%emt 0:00:41]} 55. Rdb1
{(Bg1) [%eval -171,31] [%emt 0:00:26]} 55... Ra4
{(Ra3) [%eval -158,24] [%emt 0:01:30]} 56. Qh6 {[%eval 35534,30] [%emt 0:01:38]}
56... Bc5 {[%eval -196,25] [%emt 0:00:25]} 57. Rc2
{[%eval 35534,31] [%emt 0:00:28]} 57... Ra5
{(Bxf2) [%eval -197,23] [%emt 0:00:02]} 58. Bg1 {[%eval -202,26] [%emt 0:00:27]}
58... e4 {[%eval -202,24] [%emt 0:00:18]} 59. Qh7
{[%eval 35534,29] [%emt 0:00:19]} 59... exd3 {[%eval -211,24] [%emt 0:00:06]}
60. Qxd3+ {[%eval -341,28] [%emt 0:00:16]} 60... Kb7
{[%eval -226,23] [%emt 0:00:11]} 61. Qc4 {[%eval -357,29] [%emt 0:00:14]} 61...
Qd7 {[%eval -239,23] [%emt 0:00:04]} 62. Rxe2 {[%eval -373,32] [%emt 0:00:26]}
62... fxe2 {[%eval -256,24] [%emt 0:00:09]} 63. Qxe2
{[%eval -381,32] [%emt 0:00:08]} 63... Qf5
{(Qc6+) [%eval -271,23] [%emt 0:00:07]} 64. Rb2
{(Rd1) [%eval -432,28] [%emt 0:00:22]} 64... Qf3+
{(Bd6) [%eval -300,22] [%emt 0:00:11]} 65. Qxf3+
{[%eval 35534,30] [%emt 0:00:23]} 65... gxf3 {[%eval -354,24] [%emt 0:00:15]}
66. Kh2 {(Rb3) [%eval 35534,32] [%emt 0:00:01]} 66... Kc6
{(b5) [%eval -373,22] [%emt 0:00:10]} 67. Kh3
{(Rc2) [%eval -614,32] [%emt 0:00:20]} 67... Ra1
{(b5) [%eval -389,24] [%emt 0:00:16]} 68. Bh2 {[%eval -705,31] [%emt 0:00:15]}
68... b5 {[%eval -396,23] [%emt 0:00:03]} 69. Rc2
{(Rb3) [%eval 35534,34] [%emt 0:00:21]} 69... Ra4
{(b4) [%eval -428,24] [%emt 0:00:20]} 70. Rb2
{(Rc3) [%eval -834,28] [%emt 0:00:16]} 70... Bd6
{[%eval -476,24] [%emt 0:00:16]} 0-1
[/pgn]
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Do I have a storming pawn?

Post by Don »

Lyudmil Tsvetkov wrote:Here 2 more interesting games on the topic, featuring opposite castled kings.

Game 63 and 64 of the 3Champs, Stockfish against Houdini and Stockfish against Komodo. In the same line, Stockfish drew the game against Houdini, and lost to Komodo, but I think the outcome of both games could have been at will, with either side winning, depending on who used in a better way its storming pawns.

I will not comment anything, will just post the full games for you to browse more thoroughly, but am of the opinion that in both games all engines missed at least a couple of times more convincing continuations having to do with storms.
I read what you say but I have to admit that I have doubts. It's SO common for people to critique computer chess games only to learn later that the computer HAD to do what it did, or that the computer played the best move after all. It doesn't always follow human "high level" logic or the general principles we all know because there is no principle that is not subject to exceptions.

I have nothing concrete to show you because I am too busy working on Komodo but I have had many arguments in the past where someone claims Komodo or some other program "blundered" or played a horrible move and it turned out that the game was already dead lost and the move it played was the best of several bad choices. The move that is offered as an improvement is even worse in many cases but superficially looks more "correct." The human tends to zero's in on the move that superficially looks bad AFTER the actual bad move is played.

You have probably seen this many times in another context - some move is hailed as brilliant and is "the winning move" when in fact there are no winning moves in chess - if a "brilliant" sacrifice is possible that "wins the game" it's because the opponent made a bad move earlier. Sometime the "brilliant" moves was just the most sensational way out of many ways to win an already won game.

Like I say, I have not looked yet but until I do I will reserve judgement. I assume that if you see a move you don't like, you use a computer to try to prove you have a better continuation, right?

[pgn][PlyCount "184"]
[EventType "tourn"]
[Source "K."]
[Event "3Champs/60+15"]
[Date "2013.08.24"]
[Round "21.3"]
[White "Stockfish 180813 64 SSE4.2 x8"]
[Black "Houdini 3 Pro x64 sd12x8"]
[Result "1/2-1/2"]
[EventDate "2013.08.18"]
[ECO "C85"]
[Annotator "0.26;0.03"]
[MLNrOfMoves "92"]
[MLFlags "000100"]


{Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz 3100 MHz W=33.9 plies; 11.705kN/s B=26.3 plies; 17.889kN/s}
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Bxc6
{[%eval 26,30] [%emt 0:02:03]} 6... dxc6 {[%eval 3,27] [%emt 0:04:03]} 7. d3
{[%eval 18,33] [%emt 0:00:00]} 7... Bd6 {(Nd7) [%eval 2,27] [%emt 0:01:41]} 8.
Bg5 {(Nbd2) [%eval 20,31] [%emt 0:01:49]} 8... h6 {[%eval 0,28] [%emt 0:01:22]}
9. Bh4 {[%eval 16,31] [%emt 0:00:06]} 9... Qe7 {[%eval 0,27] [%emt 0:01:19]} 10.
Nbd2 {[%eval 20,30] [%emt 0:00:44]} 10... Bg4 {[%eval 0,26] [%emt 0:01:32]} 11.
h3 {[%eval 20,28] [%emt 0:00:49]} 11... Bh5 {[%eval -3,26] [%emt 0:00:35]} 12.
Re1 {(a3) [%eval 22,29] [%emt 0:04:08]} 12... g5
{(0-0-0) [%eval -5,26] [%emt 0:01:38]} 13. Bg3 {[%eval 20,28] [%emt 0:00:29]}
13... O-O-O {[%eval -11,25] [%emt 0:00:53]} 14. Nc4
{[%eval 8,30] [%emt 0:02:28]} 14... Nd7 {(Qe6) [%eval -11,25] [%emt 0:00:06]}
15. c3 {(a4) [%eval 10,30] [%emt 0:02:17]} 15... f6
{(Qe6) [%eval -5,25] [%emt 0:01:25]} 16. b4 {[%eval 20,28] [%emt 0:02:01]} 16...
Kb8 {(Bf7) [%eval -4,26] [%emt 0:00:23]} 17. Ne3 {[%eval 14,30] [%emt 0:04:20]}
17... Qe6 {[%eval -2,26] [%emt 0:01:39]} 18. a4 {[%eval 30,30] [%emt 0:01:24]}
18... Nb6 {(Bg6) [%eval 0,24] [%emt 0:00:11]} 19. Nf5
{(Qe2) [%eval 18,30] [%emt 0:03:01]} 19... Bg6 {[%eval 0,26] [%emt 0:01:38]} 20.
Nxd6 {[%eval 26,33] [%emt 0:00:00]} 20... Rxd6 {[%eval 0,26] [%emt 0:01:34]} 21.
Qc2 {[%eval 36,31] [%emt 0:00:06]} 21... Rhd8
{(Bh5) [%eval 2,26] [%emt 0:01:09]} 22. a5 {[%eval 30,30] [%emt 0:01:27]} 22...
Nd7 {[%eval 4,26] [%emt 0:00:57]} 23. c4 {(d4) [%eval 28,32] [%emt 0:00:46]}
23... c5 {[%eval 6,27] [%emt 0:02:29]} 24. b5 {[%eval 35534,33] [%emt 0:00:00]}
24... Nf8 {[%eval 10,25] [%emt 0:01:03]} 25. Ra3 {[%eval 40,32] [%emt 0:00:50]}
25... Qc8 {(h5) [%eval -3,26] [%emt 0:00:23]} 26. bxa6
{[%eval 36,34] [%emt 0:02:08]} 26... Rxa6 {[%eval 5,27] [%emt 0:00:00]} 27. Nh2
{[%eval 35534,34] [%emt 0:02:11]} 27... Ne6 {[%eval 13,27] [%emt 0:00:00]} 28.
f3 {[%eval 38,32] [%emt 0:02:11]} 28... h5 {[%eval 13,27] [%emt 0:00:00]} 29.
Nf1 {(Rb1) [%eval 35534,33] [%emt 0:02:05]} 29... g4
{(Rd7) [%eval 17,26] [%emt 0:02:02]} 30. fxg4 {[%eval 48,32] [%emt 0:01:40]}
30... hxg4 {[%eval 13,26] [%emt 0:00:00]} 31. h4
{[%eval 35534,31] [%emt 0:02:00]} 31... Be8 {[%eval 20,26] [%emt 0:00:00]} 32.
Ne3 {(Bf2) [%eval 74,32] [%emt 0:01:22]} 32... Nd4
{[%eval 28,27] [%emt 0:05:07]} 33. Qb2 {(Qf2) [%eval 70,32] [%emt 0:00:00]}
33... Bc6 {[%eval 21,25] [%emt 0:01:12]} 34. Ra2
{(Rf1) [%eval 74,32] [%emt 0:00:43]} 34... Rh8 {[%eval 31,24] [%emt 0:02:42]}
35. Rf1 {[%eval 35534,31] [%emt 0:06:01]} 35... Qd8
{[%eval 39,27] [%emt 0:00:00]} 36. Qa3 {(Qf2) [%eval 64,30] [%emt 0:01:56]}
36... Qe7 {(Kc8) [%eval 28,24] [%emt 0:00:51]} 37. Rb2
{[%eval 64,29] [%emt 0:03:14]} 37... Rh6 {(Kc8) [%eval 28,26] [%emt 0:00:00]}
38. Nd5 {(Be1) [%eval 60,30] [%emt 0:01:00]} 38... Qd6
{[%eval 28,23] [%emt 0:02:16]} 39. Qc3 {[%eval 35534,32] [%emt 0:00:00]} 39...
Qd8 {[%eval 55,25] [%emt 0:01:40]} 40. Ne3 {(Qe1) [%eval 60,30] [%emt 0:00:00]}
40... Qh8 {(Kc8) [%eval 28,24] [%emt 0:00:47]} 41. Rfb1
{(Qe1) [%eval 64,30] [%emt 0:01:03]} 41... Rxh4
{(Kc8) [%eval 24,26] [%emt 0:00:50]} 42. Bxh4 {[%eval 48,31] [%emt 0:00:18]}
42... Qxh4 {[%eval 21,25] [%emt 0:00:00]} 43. Qe1 {[%eval 46,34] [%emt 0:02:39]}
43... Qg5 {[%eval 20,28] [%emt 0:00:00]} 44. Nf1 {[%eval 52,33] [%emt 0:01:16]}
44... Qg7 {[%eval 21,26] [%emt 0:00:10]} 45. Ng3 {[%eval 40,33] [%emt 0:00:45]}
45... Qh6 {[%eval 22,27] [%emt 0:00:09]} 46. Qd2 {[%eval 40,35] [%emt 0:00:36]}
46... Qg6 {(Qh8) [%eval 21,25] [%emt 0:00:48]} 47. Ra1
{(Nf1) [%eval 40,29] [%emt 0:00:54]} 47... Bd7 {[%eval 11,26] [%emt 0:01:10]}
48. Qf2 {(Qe3) [%eval 40,33] [%emt 0:00:00]} 48... Qg5
{(Qh7) [%eval 20,26] [%emt 0:01:09]} 49. Nf1 {[%eval 40,36] [%emt 0:01:02]}
49... Bc8 {[%eval 17,25] [%emt 0:00:02]} 50. Qe3
{(Qe1) [%eval 40,35] [%emt 0:04:13]} 50... Qg7 {[%eval 9,27] [%emt 0:01:48]} 51.
Ng3 {[%eval 35534,35] [%emt 0:00:53]} 51... Qh7
{(Qe7) [%eval 9,26] [%emt 0:00:00]} 52. Qf2 {(Ra3) [%eval 40,34] [%emt 0:00:55]}
52... Qh8 {(Qh4) [%eval 9,26] [%emt 0:00:43]} 53. Rbb1
{(Qe3) [%eval 40,36] [%emt 0:00:28]} 53... Qh6
{(Qh4) [%eval 9,28] [%emt 0:00:44]} 54. Re1 {(Ra2) [%eval 40,38] [%emt 0:00:42]}
54... Qf8 {(Qh4) [%eval 9,28] [%emt 0:00:41]} 55. Rf1
{(Reb1) [%eval 40,39] [%emt 0:00:27]} 55... Qd6
{(Qh6) [%eval 13,27] [%emt 0:00:52]} 56. Ra3
{(Ra2) [%eval 40,36] [%emt 0:00:25]} 56... Qf8 {[%eval 12,27] [%emt 0:01:25]}
57. Rb1 {(Ne2) [%eval 40,40] [%emt 0:00:00]} 57... Qh6
{[%eval 9,28] [%emt 0:00:42]} 58. Re1 {(Raa1) [%eval 40,39] [%emt 0:00:00]}
58... Qh7 {(Qh4) [%eval 9,28] [%emt 0:00:39]} 59. Raa1
{(Rb1) [%eval 40,35] [%emt 0:00:32]} 59... Qe7
{(Qh4) [%eval 9,28] [%emt 0:00:44]} 60. Red1
{(Reb1) [%eval 40,31] [%emt 0:00:33]} 60... Bd7
{(Qf8) [%eval 9,27] [%emt 0:00:45]} 61. Rf1
{(Rdb1) [%eval 40,36] [%emt 0:00:29]} 61... Qh7 {[%eval 9,27] [%emt 0:00:37]}
62. Ra2 {(Rfb1) [%eval 40,38] [%emt 0:00:00]} 62... Qh4
{[%eval 9,27] [%emt 0:00:38]} 63. Rb1 {(Qe3) [%eval 40,39] [%emt 0:00:00]} 63...
Bc8 {[%eval 9,27] [%emt 0:00:37]} 64. Rba1 {(Nf1) [%eval 40,38] [%emt 0:00:02]}
64... Qh7 {(Bd7) [%eval 9,28] [%emt 0:01:33]} 65. Qe3
{(Rb2) [%eval 34,34] [%emt 0:00:39]} 65... Qg7
{(Qh4) [%eval 9,27] [%emt 0:00:34]} 66. Rf1 {(Rb2) [%eval 34,34] [%emt 0:00:37]}
66... Qh7 {[%eval 9,27] [%emt 0:00:36]} 67. Qf2 {[%eval 34,35] [%emt 0:00:00]}
67... Qh4 {(Qh8) [%eval 9,27] [%emt 0:00:34]} 68. Rb1
{[%eval 40,38] [%emt 0:00:37]} 68... Qh8 {(Qh6) [%eval 9,28] [%emt 0:00:00]} 69.
Qe3 {(Raa1) [%eval 32,32] [%emt 0:00:45]} 69... Qh7
{(Qd8) [%eval 9,26] [%emt 0:00:34]} 70. Rf1
{(Rba1) [%eval 34,35] [%emt 0:00:26]} 70... Qh8 {[%eval 9,27] [%emt 0:02:43]}
71. Rff2 {(Rb1) [%eval 32,38] [%emt 0:00:00]} 71... Qh7
{(Bd7) [%eval 10,24] [%emt 0:00:48]} 72. Ra1
{(Rfb2) [%eval 32,37] [%emt 0:00:23]} 72... Qg7
{(Qh4) [%eval 11,25] [%emt 0:00:52]} 73. Ra3
{(Rfa2) [%eval 32,34] [%emt 0:00:31]} 73... Qf8
{(Qh8) [%eval 9,26] [%emt 0:00:30]} 74. Raa2
{(Nf1) [%eval 32,32] [%emt 0:00:19]} 74... Qh8 {[%eval 9,27] [%emt 0:00:29]} 75.
Rfb2 {(Rf1) [%eval 32,35] [%emt 0:00:00]} 75... Qh7
{(Qd8) [%eval 10,25] [%emt 0:00:29]} 76. Rb1
{(Ra1) [%eval 32,36] [%emt 0:00:20]} 76... Qh4 {[%eval 10,25] [%emt 0:00:31]}
77. Rba1 {(Rf1) [%eval 32,37] [%emt 0:00:00]} 77... Qh7
{(Qh8) [%eval 9,26] [%emt 0:00:28]} 78. Rb2 {(Rb1) [%eval 32,35] [%emt 0:00:43]}
78... Qh8 {[%eval 13,25] [%emt 0:00:38]} 79. Ra3
{(Rba2) [%eval 32,36] [%emt 0:00:00]} 79... Qg7
{(Be6) [%eval 9,27] [%emt 0:00:28]} 80. Qd2 {(Ra1) [%eval 32,33] [%emt 0:00:29]}
80... Qe7 {(Qh8) [%eval 9,27] [%emt 0:00:27]} 81. Qh6
{(Qe3) [%eval 32,31] [%emt 0:00:22]} 81... Qd8 {[%eval 9,27] [%emt 0:00:27]} 82.
Qe3 {[%eval 32,34] [%emt 0:00:00]} 82... Qh8
{(Qf8) [%eval 16,27] [%emt 0:02:06]} 83. Qf2
{(Ra1) [%eval 35534,38] [%emt 0:00:52]} 83... Qh6 {[%eval 9,26] [%emt 0:00:24]}
84. Rb1 {(Ra1) [%eval 0,32] [%emt 0:00:00]} 84... Qf8
{(Qh7) [%eval 9,25] [%emt 0:00:24]} 85. Rd1 {(Qa2) [%eval 0,31] [%emt 0:00:16]}
85... Qe7 {(Qe8) [%eval 9,27] [%emt 0:00:24]} 86. Ra2
{(Raa1) [%eval 0,34] [%emt 0:00:30]} 86... Qd7
{(Qd6) [%eval 22,25] [%emt 0:00:24]} 87. Ne2
{(Rb1) [%eval 32,31] [%emt 0:00:21]} 87... Qh7 {[%eval 18,26] [%emt 0:01:36]}
88. Ng3 {(Nxd4) [%eval 0,37] [%emt 0:00:00]} 88... Qe7
{(Qd7) [%eval 22,26] [%emt 0:00:25]} 89. Nf1 {(Rf1) [%eval 0,36] [%emt 0:00:18]}
89... Qh7 {[%eval 12,24] [%emt 0:00:30]} 90. Ng3
{(Rb1) [%eval 0,49] [%emt 0:00:00]} 90... Ka7
{(Qd7) [%eval 22,26] [%emt 0:00:38]} 91. Rb1 {(Rf1) [%eval 0,42] [%emt 0:00:17]}
91... Bd7 {[%eval 22,30] [%emt 0:00:22]} 92. Nf1
{(Qb2) [%eval 0,45] [%emt 0:00:00]} 92... Qh8 {[%eval 22,30] [%emt 0:00:30]}
1/2-1/2

[PlyCount "140"]
[EventType "tourn"]
[Source "K."]
[Event "3Champs/60+15"]
[Date "2013.08.24"]
[Round "22.1"]
[White "Stockfish 180813 64 SSE4.2 x8"]
[Black "Komodo 1036.03 64-bit x8"]
[Result "0-1"]
[EventDate "2013.08.18"]
[ECO "C85"]
[Annotator "0.22;0.13"]
[MLNrOfMoves "70"]
[MLFlags "000100"]


{Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz 3099 MHz W=31.2 plies; 11.108kN/s B=24.3 plies; 10.446kN/s}
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Bxc6
{[%eval 22,32] [%emt 0:02:08]} 6... dxc6 {[%eval 13,24] [%emt 0:00:41]} 7. d3
{[%eval 22,31] [%emt 0:01:34]} 7... Bd6 {(Qd6) [%eval 13,25] [%emt 0:00:08]} 8.
Bg5 {(Be3) [%eval 16,30] [%emt 0:03:15]} 8... h6 {[%eval -7,23] [%emt 0:00:54]}
9. Bh4 {[%eval 18,31] [%emt 0:01:17]} 9... Qe7
{(Bg4) [%eval -10,24] [%emt 0:00:03]} 10. Nbd2 {[%eval 22,29] [%emt 0:02:19]}
10... Bg4 {[%eval -10,26] [%emt 0:01:22]} 11. h3 {[%eval 16,29] [%emt 0:00:36]}
11... Bh5 {[%eval -9,24] [%emt 0:00:06]} 12. a4
{(a3) [%eval 14,29] [%emt 0:02:18]} 12... g5
{(0-0) [%eval -11,23] [%emt 0:01:11]} 13. Bg3 {[%eval 26,26] [%emt 0:00:43]}
13... O-O-O {[%eval -8,24] [%emt 0:01:33]} 14. Nc4 {[%eval 2,29] [%emt 0:00:22]}
14... Qe6 {[%eval -10,24] [%emt 0:02:22]} 15. Qe2
{[%eval 35534,30] [%emt 0:00:00]} 15... Nd7 {[%eval -7,24] [%emt 0:01:19]} 16.
Ne3 {(Nxd6+) [%eval 20,31] [%emt 0:00:14]} 16... f6
{[%eval -18,24] [%emt 0:04:50]} 17. Rfb1 {(Bh2) [%eval 0,32] [%emt 0:00:00]}
17... c5 {[%eval -8,24] [%emt 0:01:47]} 18. c3 {[%eval 0,34] [%emt 0:01:02]}
18... Nb8 {[%eval 3,22] [%emt 0:01:54]} 19. Nf5 {[%eval -6,34] [%emt 0:01:21]}
19... Nc6 {[%eval -12,26] [%emt 0:00:17]} 20. Ng7 {[%eval 0,34] [%emt 0:01:19]}
20... Bxf3 {(Qf7) [%eval -13,26] [%emt 0:00:07]} 21. Qxf3
{[%eval 0,33] [%emt 0:00:37]} 21... Qf7 {(Qg8) [%eval -9,27] [%emt 0:01:54]} 22.
Nf5 {[%eval -14,34] [%emt 0:01:39]} 22... h5 {[%eval -8,27] [%emt 0:02:18]} 23.
h4 {(Qe2) [%eval -14,33] [%emt 0:00:00]} 23... Kb8
{(g4) [%eval -15,24] [%emt 0:00:57]} 24. Ne3
{(Rf1) [%eval -16,31] [%emt 0:02:36]} 24... g4 {[%eval -24,25] [%emt 0:02:05]}
25. Qe2 {[%eval -16,33] [%emt 0:00:00]} 25... Rhg8
{(Bf8) [%eval -10,24] [%emt 0:02:34]} 26. Rf1 {[%eval -8,34] [%emt 0:01:35]}
26... Qe6 {[%eval -9,25] [%emt 0:00:52]} 27. Rad1 {[%eval -8,35] [%emt 0:00:44]}
27... Rd7 {(Rg6) [%eval -10,24] [%emt 0:04:04]} 28. Kh1
{(Kh2) [%eval 0,32] [%emt 0:02:13]} 28... Ne7
{(Rdg7) [%eval -9,26] [%emt 0:03:39]} 29. Rb1
{(Kh2) [%eval 35534,33] [%emt 0:02:26]} 29... Rdd8
{(Qb3) [%eval -8,24] [%emt 0:03:26]} 30. b4 {(Kg1) [%eval 38,32] [%emt 0:01:46]}
30... cxb4 {[%eval 8,21] [%emt 0:01:07]} 31. cxb4
{[%eval 35534,32] [%emt 0:01:13]} 31... Rd7 {(f5) [%eval 12,25] [%emt 0:01:11]}
32. Nc4 {(b5) [%eval 84,30] [%emt 0:01:40]} 32... Nc6
{(Nc8) [%eval 12,26] [%emt 0:02:01]} 33. b5 {[%eval 86,33] [%emt 0:01:51]} 33...
Nd4 {[%eval 12,25] [%emt 0:00:18]} 34. Qd2 {[%eval 62,32] [%emt 0:07:34]} 34...
Be7 {(b6) [%eval 12,27] [%emt 0:00:31]} 35. Qa5
{(Qh6) [%eval 88,31] [%emt 0:02:21]} 35... Ka7
{(Ka8) [%eval 12,24] [%emt 0:02:09]} 36. Rfc1
{(Kh2) [%eval 72,34] [%emt 0:02:21]} 36... Rc8
{(Ka8) [%eval 12,24] [%emt 0:05:29]} 37. Rb2
{(Kh2) [%eval 80,30] [%emt 0:01:48]} 37... Rcd8 {[%eval 12,26] [%emt 0:01:20]}
38. Kh2 {[%eval 74,31] [%emt 0:00:07]} 38... Bc5 {[%eval 12,24] [%emt 0:00:42]}
39. bxa6 {[%eval 46,31] [%emt 0:01:44]} 39... b6 {[%eval 12,28] [%emt 0:00:25]}
40. Qc3 {[%eval 70,32] [%emt 0:00:40]} 40... Bf8
{(Be7) [%eval 12,26] [%emt 0:00:04]} 41. Ne3 {[%eval 26,29] [%emt 0:00:58]}
41... Be7 {[%eval 12,26] [%emt 0:00:20]} 42. Rcb1
{(Kh1) [%eval 20,31] [%emt 0:05:01]} 42... Qc6 {[%eval -20,23] [%emt 0:00:55]}
43. Qd2 {(Qxc6) [%eval 0,30] [%emt 0:00:00]} 43... Qxa4
{[%eval -36,22] [%emt 0:00:50]} 44. Nd5 {[%eval 0,30] [%emt 0:00:14]} 44... Rxd5
{[%eval -33,23] [%emt 0:00:27]} 45. exd5 {[%eval 0,34] [%emt 0:00:30]} 45...
Rxd5 {[%eval -35,24] [%emt 0:00:29]} 46. Qh6 {[%eval 35534,34] [%emt 0:04:56]}
46... Qe8 {[%eval -58,26] [%emt 0:00:28]} 47. Qh7
{[%eval -66,29] [%emt 0:02:15]} 47... f5 {(b5) [%eval -65,27] [%emt 0:01:12]}
48. Re1 {[%eval 0,32] [%emt 0:01:04]} 48... Bd6 {[%eval -52,26] [%emt 0:00:10]}
49. Kh1 {[%eval 0,32] [%emt 0:00:26]} 49... Rc5
{(Ra5) [%eval -64,25] [%emt 0:00:22]} 50. Bh2
{(Reb1) [%eval -72,27] [%emt 0:00:42]} 50... f4 {[%eval -78,20] [%emt 0:00:12]}
51. Reb1 {(Bg1) [%eval -105,29] [%emt 0:00:28]} 51... Kxa6
{[%eval -108,21] [%emt 0:00:25]} 52. Ra1+ {(Rb4) [%eval -145,30] [%emt 0:00:28]}
52... Ra5 {[%eval -124,21] [%emt 0:00:09]} 53. Rd1
{(Rab1) [%eval -141,31] [%emt 0:00:42]} 53... f3
{[%eval -145,26] [%emt 0:00:50]} 54. g3 {[%eval -171,33] [%emt 0:00:00]} 54...
Ne2 {(b5) [%eval -142,25] [%emt 0:00:41]} 55. Rdb1
{(Bg1) [%eval -171,31] [%emt 0:00:26]} 55... Ra4
{(Ra3) [%eval -158,24] [%emt 0:01:30]} 56. Qh6 {[%eval 35534,30] [%emt 0:01:38]}
56... Bc5 {[%eval -196,25] [%emt 0:00:25]} 57. Rc2
{[%eval 35534,31] [%emt 0:00:28]} 57... Ra5
{(Bxf2) [%eval -197,23] [%emt 0:00:02]} 58. Bg1 {[%eval -202,26] [%emt 0:00:27]}
58... e4 {[%eval -202,24] [%emt 0:00:18]} 59. Qh7
{[%eval 35534,29] [%emt 0:00:19]} 59... exd3 {[%eval -211,24] [%emt 0:00:06]}
60. Qxd3+ {[%eval -341,28] [%emt 0:00:16]} 60... Kb7
{[%eval -226,23] [%emt 0:00:11]} 61. Qc4 {[%eval -357,29] [%emt 0:00:14]} 61...
Qd7 {[%eval -239,23] [%emt 0:00:04]} 62. Rxe2 {[%eval -373,32] [%emt 0:00:26]}
62... fxe2 {[%eval -256,24] [%emt 0:00:09]} 63. Qxe2
{[%eval -381,32] [%emt 0:00:08]} 63... Qf5
{(Qc6+) [%eval -271,23] [%emt 0:00:07]} 64. Rb2
{(Rd1) [%eval -432,28] [%emt 0:00:22]} 64... Qf3+
{(Bd6) [%eval -300,22] [%emt 0:00:11]} 65. Qxf3+
{[%eval 35534,30] [%emt 0:00:23]} 65... gxf3 {[%eval -354,24] [%emt 0:00:15]}
66. Kh2 {(Rb3) [%eval 35534,32] [%emt 0:00:01]} 66... Kc6
{(b5) [%eval -373,22] [%emt 0:00:10]} 67. Kh3
{(Rc2) [%eval -614,32] [%emt 0:00:20]} 67... Ra1
{(b5) [%eval -389,24] [%emt 0:00:16]} 68. Bh2 {[%eval -705,31] [%emt 0:00:15]}
68... b5 {[%eval -396,23] [%emt 0:00:03]} 69. Rc2
{(Rb3) [%eval 35534,34] [%emt 0:00:21]} 69... Ra4
{(b4) [%eval -428,24] [%emt 0:00:20]} 70. Rb2
{(Rc3) [%eval -834,28] [%emt 0:00:16]} 70... Bd6
{[%eval -476,24] [%emt 0:00:16]} 0-1
[/pgn]
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Re: Do I have a storming pawn?

Post by Lyudmil Tsvetkov »

Don wrote:
Lyudmil Tsvetkov wrote:Here 2 more interesting games on the topic, featuring opposite castled kings.

Game 63 and 64 of the 3Champs, Stockfish against Houdini and Stockfish against Komodo. In the same line, Stockfish drew the game against Houdini, and lost to Komodo, but I think the outcome of both games could have been at will, with either side winning, depending on who used in a better way its storming pawns.

I will not comment anything, will just post the full games for you to browse more thoroughly, but am of the opinion that in both games all engines missed at least a couple of times more convincing continuations having to do with storms.
I read what you say but I have to admit that I have doubts. It's SO common for people to critique computer chess games only to learn later that the computer HAD to do what it did, or that the computer played the best move after all. It doesn't always follow human "high level" logic or the general principles we all know because there is no principle that is not subject to exceptions.

I have nothing concrete to show you because I am too busy working on Komodo but I have had many arguments in the past where someone claims Komodo or some other program "blundered" or played a horrible move and it turned out that the game was already dead lost and the move it played was the best of several bad choices. The move that is offered as an improvement is even worse in many cases but superficially looks more "correct." The human tends to zero's in on the move that superficially looks bad AFTER the actual bad move is played.

You have probably seen this many times in another context - some move is hailed as brilliant and is "the winning move" when in fact there are no winning moves in chess - if a "brilliant" sacrifice is possible that "wins the game" it's because the opponent made a bad move earlier. Sometime the "brilliant" moves was just the most sensational way out of many ways to win an already won game.

Like I say, I have not looked yet but until I do I will reserve judgement. I assume that if you see a move you don't like, you use a computer to try to prove you have a better continuation, right?

[pgn][PlyCount "184"]
[EventType "tourn"]
[Source "K."]
[Event "3Champs/60+15"]
[Date "2013.08.24"]
[Round "21.3"]
[White "Stockfish 180813 64 SSE4.2 x8"]
[Black "Houdini 3 Pro x64 sd12x8"]
[Result "1/2-1/2"]
[EventDate "2013.08.18"]
[ECO "C85"]
[Annotator "0.26;0.03"]
[MLNrOfMoves "92"]
[MLFlags "000100"]


{Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz 3100 MHz W=33.9 plies; 11.705kN/s B=26.3 plies; 17.889kN/s}
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Bxc6
{[%eval 26,30] [%emt 0:02:03]} 6... dxc6 {[%eval 3,27] [%emt 0:04:03]} 7. d3
{[%eval 18,33] [%emt 0:00:00]} 7... Bd6 {(Nd7) [%eval 2,27] [%emt 0:01:41]} 8.
Bg5 {(Nbd2) [%eval 20,31] [%emt 0:01:49]} 8... h6 {[%eval 0,28] [%emt 0:01:22]}
9. Bh4 {[%eval 16,31] [%emt 0:00:06]} 9... Qe7 {[%eval 0,27] [%emt 0:01:19]} 10.
Nbd2 {[%eval 20,30] [%emt 0:00:44]} 10... Bg4 {[%eval 0,26] [%emt 0:01:32]} 11.
h3 {[%eval 20,28] [%emt 0:00:49]} 11... Bh5 {[%eval -3,26] [%emt 0:00:35]} 12.
Re1 {(a3) [%eval 22,29] [%emt 0:04:08]} 12... g5
{(0-0-0) [%eval -5,26] [%emt 0:01:38]} 13. Bg3 {[%eval 20,28] [%emt 0:00:29]}
13... O-O-O {[%eval -11,25] [%emt 0:00:53]} 14. Nc4
{[%eval 8,30] [%emt 0:02:28]} 14... Nd7 {(Qe6) [%eval -11,25] [%emt 0:00:06]}
15. c3 {(a4) [%eval 10,30] [%emt 0:02:17]} 15... f6
{(Qe6) [%eval -5,25] [%emt 0:01:25]} 16. b4 {[%eval 20,28] [%emt 0:02:01]} 16...
Kb8 {(Bf7) [%eval -4,26] [%emt 0:00:23]} 17. Ne3 {[%eval 14,30] [%emt 0:04:20]}
17... Qe6 {[%eval -2,26] [%emt 0:01:39]} 18. a4 {[%eval 30,30] [%emt 0:01:24]}
18... Nb6 {(Bg6) [%eval 0,24] [%emt 0:00:11]} 19. Nf5
{(Qe2) [%eval 18,30] [%emt 0:03:01]} 19... Bg6 {[%eval 0,26] [%emt 0:01:38]} 20.
Nxd6 {[%eval 26,33] [%emt 0:00:00]} 20... Rxd6 {[%eval 0,26] [%emt 0:01:34]} 21.
Qc2 {[%eval 36,31] [%emt 0:00:06]} 21... Rhd8
{(Bh5) [%eval 2,26] [%emt 0:01:09]} 22. a5 {[%eval 30,30] [%emt 0:01:27]} 22...
Nd7 {[%eval 4,26] [%emt 0:00:57]} 23. c4 {(d4) [%eval 28,32] [%emt 0:00:46]}
23... c5 {[%eval 6,27] [%emt 0:02:29]} 24. b5 {[%eval 35534,33] [%emt 0:00:00]}
24... Nf8 {[%eval 10,25] [%emt 0:01:03]} 25. Ra3 {[%eval 40,32] [%emt 0:00:50]}
25... Qc8 {(h5) [%eval -3,26] [%emt 0:00:23]} 26. bxa6
{[%eval 36,34] [%emt 0:02:08]} 26... Rxa6 {[%eval 5,27] [%emt 0:00:00]} 27. Nh2
{[%eval 35534,34] [%emt 0:02:11]} 27... Ne6 {[%eval 13,27] [%emt 0:00:00]} 28.
f3 {[%eval 38,32] [%emt 0:02:11]} 28... h5 {[%eval 13,27] [%emt 0:00:00]} 29.
Nf1 {(Rb1) [%eval 35534,33] [%emt 0:02:05]} 29... g4
{(Rd7) [%eval 17,26] [%emt 0:02:02]} 30. fxg4 {[%eval 48,32] [%emt 0:01:40]}
30... hxg4 {[%eval 13,26] [%emt 0:00:00]} 31. h4
{[%eval 35534,31] [%emt 0:02:00]} 31... Be8 {[%eval 20,26] [%emt 0:00:00]} 32.
Ne3 {(Bf2) [%eval 74,32] [%emt 0:01:22]} 32... Nd4
{[%eval 28,27] [%emt 0:05:07]} 33. Qb2 {(Qf2) [%eval 70,32] [%emt 0:00:00]}
33... Bc6 {[%eval 21,25] [%emt 0:01:12]} 34. Ra2
{(Rf1) [%eval 74,32] [%emt 0:00:43]} 34... Rh8 {[%eval 31,24] [%emt 0:02:42]}
35. Rf1 {[%eval 35534,31] [%emt 0:06:01]} 35... Qd8
{[%eval 39,27] [%emt 0:00:00]} 36. Qa3 {(Qf2) [%eval 64,30] [%emt 0:01:56]}
36... Qe7 {(Kc8) [%eval 28,24] [%emt 0:00:51]} 37. Rb2
{[%eval 64,29] [%emt 0:03:14]} 37... Rh6 {(Kc8) [%eval 28,26] [%emt 0:00:00]}
38. Nd5 {(Be1) [%eval 60,30] [%emt 0:01:00]} 38... Qd6
{[%eval 28,23] [%emt 0:02:16]} 39. Qc3 {[%eval 35534,32] [%emt 0:00:00]} 39...
Qd8 {[%eval 55,25] [%emt 0:01:40]} 40. Ne3 {(Qe1) [%eval 60,30] [%emt 0:00:00]}
40... Qh8 {(Kc8) [%eval 28,24] [%emt 0:00:47]} 41. Rfb1
{(Qe1) [%eval 64,30] [%emt 0:01:03]} 41... Rxh4
{(Kc8) [%eval 24,26] [%emt 0:00:50]} 42. Bxh4 {[%eval 48,31] [%emt 0:00:18]}
42... Qxh4 {[%eval 21,25] [%emt 0:00:00]} 43. Qe1 {[%eval 46,34] [%emt 0:02:39]}
43... Qg5 {[%eval 20,28] [%emt 0:00:00]} 44. Nf1 {[%eval 52,33] [%emt 0:01:16]}
44... Qg7 {[%eval 21,26] [%emt 0:00:10]} 45. Ng3 {[%eval 40,33] [%emt 0:00:45]}
45... Qh6 {[%eval 22,27] [%emt 0:00:09]} 46. Qd2 {[%eval 40,35] [%emt 0:00:36]}
46... Qg6 {(Qh8) [%eval 21,25] [%emt 0:00:48]} 47. Ra1
{(Nf1) [%eval 40,29] [%emt 0:00:54]} 47... Bd7 {[%eval 11,26] [%emt 0:01:10]}
48. Qf2 {(Qe3) [%eval 40,33] [%emt 0:00:00]} 48... Qg5
{(Qh7) [%eval 20,26] [%emt 0:01:09]} 49. Nf1 {[%eval 40,36] [%emt 0:01:02]}
49... Bc8 {[%eval 17,25] [%emt 0:00:02]} 50. Qe3
{(Qe1) [%eval 40,35] [%emt 0:04:13]} 50... Qg7 {[%eval 9,27] [%emt 0:01:48]} 51.
Ng3 {[%eval 35534,35] [%emt 0:00:53]} 51... Qh7
{(Qe7) [%eval 9,26] [%emt 0:00:00]} 52. Qf2 {(Ra3) [%eval 40,34] [%emt 0:00:55]}
52... Qh8 {(Qh4) [%eval 9,26] [%emt 0:00:43]} 53. Rbb1
{(Qe3) [%eval 40,36] [%emt 0:00:28]} 53... Qh6
{(Qh4) [%eval 9,28] [%emt 0:00:44]} 54. Re1 {(Ra2) [%eval 40,38] [%emt 0:00:42]}
54... Qf8 {(Qh4) [%eval 9,28] [%emt 0:00:41]} 55. Rf1
{(Reb1) [%eval 40,39] [%emt 0:00:27]} 55... Qd6
{(Qh6) [%eval 13,27] [%emt 0:00:52]} 56. Ra3
{(Ra2) [%eval 40,36] [%emt 0:00:25]} 56... Qf8 {[%eval 12,27] [%emt 0:01:25]}
57. Rb1 {(Ne2) [%eval 40,40] [%emt 0:00:00]} 57... Qh6
{[%eval 9,28] [%emt 0:00:42]} 58. Re1 {(Raa1) [%eval 40,39] [%emt 0:00:00]}
58... Qh7 {(Qh4) [%eval 9,28] [%emt 0:00:39]} 59. Raa1
{(Rb1) [%eval 40,35] [%emt 0:00:32]} 59... Qe7
{(Qh4) [%eval 9,28] [%emt 0:00:44]} 60. Red1
{(Reb1) [%eval 40,31] [%emt 0:00:33]} 60... Bd7
{(Qf8) [%eval 9,27] [%emt 0:00:45]} 61. Rf1
{(Rdb1) [%eval 40,36] [%emt 0:00:29]} 61... Qh7 {[%eval 9,27] [%emt 0:00:37]}
62. Ra2 {(Rfb1) [%eval 40,38] [%emt 0:00:00]} 62... Qh4
{[%eval 9,27] [%emt 0:00:38]} 63. Rb1 {(Qe3) [%eval 40,39] [%emt 0:00:00]} 63...
Bc8 {[%eval 9,27] [%emt 0:00:37]} 64. Rba1 {(Nf1) [%eval 40,38] [%emt 0:00:02]}
64... Qh7 {(Bd7) [%eval 9,28] [%emt 0:01:33]} 65. Qe3
{(Rb2) [%eval 34,34] [%emt 0:00:39]} 65... Qg7
{(Qh4) [%eval 9,27] [%emt 0:00:34]} 66. Rf1 {(Rb2) [%eval 34,34] [%emt 0:00:37]}
66... Qh7 {[%eval 9,27] [%emt 0:00:36]} 67. Qf2 {[%eval 34,35] [%emt 0:00:00]}
67... Qh4 {(Qh8) [%eval 9,27] [%emt 0:00:34]} 68. Rb1
{[%eval 40,38] [%emt 0:00:37]} 68... Qh8 {(Qh6) [%eval 9,28] [%emt 0:00:00]} 69.
Qe3 {(Raa1) [%eval 32,32] [%emt 0:00:45]} 69... Qh7
{(Qd8) [%eval 9,26] [%emt 0:00:34]} 70. Rf1
{(Rba1) [%eval 34,35] [%emt 0:00:26]} 70... Qh8 {[%eval 9,27] [%emt 0:02:43]}
71. Rff2 {(Rb1) [%eval 32,38] [%emt 0:00:00]} 71... Qh7
{(Bd7) [%eval 10,24] [%emt 0:00:48]} 72. Ra1
{(Rfb2) [%eval 32,37] [%emt 0:00:23]} 72... Qg7
{(Qh4) [%eval 11,25] [%emt 0:00:52]} 73. Ra3
{(Rfa2) [%eval 32,34] [%emt 0:00:31]} 73... Qf8
{(Qh8) [%eval 9,26] [%emt 0:00:30]} 74. Raa2
{(Nf1) [%eval 32,32] [%emt 0:00:19]} 74... Qh8 {[%eval 9,27] [%emt 0:00:29]} 75.
Rfb2 {(Rf1) [%eval 32,35] [%emt 0:00:00]} 75... Qh7
{(Qd8) [%eval 10,25] [%emt 0:00:29]} 76. Rb1
{(Ra1) [%eval 32,36] [%emt 0:00:20]} 76... Qh4 {[%eval 10,25] [%emt 0:00:31]}
77. Rba1 {(Rf1) [%eval 32,37] [%emt 0:00:00]} 77... Qh7
{(Qh8) [%eval 9,26] [%emt 0:00:28]} 78. Rb2 {(Rb1) [%eval 32,35] [%emt 0:00:43]}
78... Qh8 {[%eval 13,25] [%emt 0:00:38]} 79. Ra3
{(Rba2) [%eval 32,36] [%emt 0:00:00]} 79... Qg7
{(Be6) [%eval 9,27] [%emt 0:00:28]} 80. Qd2 {(Ra1) [%eval 32,33] [%emt 0:00:29]}
80... Qe7 {(Qh8) [%eval 9,27] [%emt 0:00:27]} 81. Qh6
{(Qe3) [%eval 32,31] [%emt 0:00:22]} 81... Qd8 {[%eval 9,27] [%emt 0:00:27]} 82.
Qe3 {[%eval 32,34] [%emt 0:00:00]} 82... Qh8
{(Qf8) [%eval 16,27] [%emt 0:02:06]} 83. Qf2
{(Ra1) [%eval 35534,38] [%emt 0:00:52]} 83... Qh6 {[%eval 9,26] [%emt 0:00:24]}
84. Rb1 {(Ra1) [%eval 0,32] [%emt 0:00:00]} 84... Qf8
{(Qh7) [%eval 9,25] [%emt 0:00:24]} 85. Rd1 {(Qa2) [%eval 0,31] [%emt 0:00:16]}
85... Qe7 {(Qe8) [%eval 9,27] [%emt 0:00:24]} 86. Ra2
{(Raa1) [%eval 0,34] [%emt 0:00:30]} 86... Qd7
{(Qd6) [%eval 22,25] [%emt 0:00:24]} 87. Ne2
{(Rb1) [%eval 32,31] [%emt 0:00:21]} 87... Qh7 {[%eval 18,26] [%emt 0:01:36]}
88. Ng3 {(Nxd4) [%eval 0,37] [%emt 0:00:00]} 88... Qe7
{(Qd7) [%eval 22,26] [%emt 0:00:25]} 89. Nf1 {(Rf1) [%eval 0,36] [%emt 0:00:18]}
89... Qh7 {[%eval 12,24] [%emt 0:00:30]} 90. Ng3
{(Rb1) [%eval 0,49] [%emt 0:00:00]} 90... Ka7
{(Qd7) [%eval 22,26] [%emt 0:00:38]} 91. Rb1 {(Rf1) [%eval 0,42] [%emt 0:00:17]}
91... Bd7 {[%eval 22,30] [%emt 0:00:22]} 92. Nf1
{(Qb2) [%eval 0,45] [%emt 0:00:00]} 92... Qh8 {[%eval 22,30] [%emt 0:00:30]}
1/2-1/2

[PlyCount "140"]
[EventType "tourn"]
[Source "K."]
[Event "3Champs/60+15"]
[Date "2013.08.24"]
[Round "22.1"]
[White "Stockfish 180813 64 SSE4.2 x8"]
[Black "Komodo 1036.03 64-bit x8"]
[Result "0-1"]
[EventDate "2013.08.18"]
[ECO "C85"]
[Annotator "0.22;0.13"]
[MLNrOfMoves "70"]
[MLFlags "000100"]


{Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz 3099 MHz W=31.2 plies; 11.108kN/s B=24.3 plies; 10.446kN/s}
1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Bxc6
{[%eval 22,32] [%emt 0:02:08]} 6... dxc6 {[%eval 13,24] [%emt 0:00:41]} 7. d3
{[%eval 22,31] [%emt 0:01:34]} 7... Bd6 {(Qd6) [%eval 13,25] [%emt 0:00:08]} 8.
Bg5 {(Be3) [%eval 16,30] [%emt 0:03:15]} 8... h6 {[%eval -7,23] [%emt 0:00:54]}
9. Bh4 {[%eval 18,31] [%emt 0:01:17]} 9... Qe7
{(Bg4) [%eval -10,24] [%emt 0:00:03]} 10. Nbd2 {[%eval 22,29] [%emt 0:02:19]}
10... Bg4 {[%eval -10,26] [%emt 0:01:22]} 11. h3 {[%eval 16,29] [%emt 0:00:36]}
11... Bh5 {[%eval -9,24] [%emt 0:00:06]} 12. a4
{(a3) [%eval 14,29] [%emt 0:02:18]} 12... g5
{(0-0) [%eval -11,23] [%emt 0:01:11]} 13. Bg3 {[%eval 26,26] [%emt 0:00:43]}
13... O-O-O {[%eval -8,24] [%emt 0:01:33]} 14. Nc4 {[%eval 2,29] [%emt 0:00:22]}
14... Qe6 {[%eval -10,24] [%emt 0:02:22]} 15. Qe2
{[%eval 35534,30] [%emt 0:00:00]} 15... Nd7 {[%eval -7,24] [%emt 0:01:19]} 16.
Ne3 {(Nxd6+) [%eval 20,31] [%emt 0:00:14]} 16... f6
{[%eval -18,24] [%emt 0:04:50]} 17. Rfb1 {(Bh2) [%eval 0,32] [%emt 0:00:00]}
17... c5 {[%eval -8,24] [%emt 0:01:47]} 18. c3 {[%eval 0,34] [%emt 0:01:02]}
18... Nb8 {[%eval 3,22] [%emt 0:01:54]} 19. Nf5 {[%eval -6,34] [%emt 0:01:21]}
19... Nc6 {[%eval -12,26] [%emt 0:00:17]} 20. Ng7 {[%eval 0,34] [%emt 0:01:19]}
20... Bxf3 {(Qf7) [%eval -13,26] [%emt 0:00:07]} 21. Qxf3
{[%eval 0,33] [%emt 0:00:37]} 21... Qf7 {(Qg8) [%eval -9,27] [%emt 0:01:54]} 22.
Nf5 {[%eval -14,34] [%emt 0:01:39]} 22... h5 {[%eval -8,27] [%emt 0:02:18]} 23.
h4 {(Qe2) [%eval -14,33] [%emt 0:00:00]} 23... Kb8
{(g4) [%eval -15,24] [%emt 0:00:57]} 24. Ne3
{(Rf1) [%eval -16,31] [%emt 0:02:36]} 24... g4 {[%eval -24,25] [%emt 0:02:05]}
25. Qe2 {[%eval -16,33] [%emt 0:00:00]} 25... Rhg8
{(Bf8) [%eval -10,24] [%emt 0:02:34]} 26. Rf1 {[%eval -8,34] [%emt 0:01:35]}
26... Qe6 {[%eval -9,25] [%emt 0:00:52]} 27. Rad1 {[%eval -8,35] [%emt 0:00:44]}
27... Rd7 {(Rg6) [%eval -10,24] [%emt 0:04:04]} 28. Kh1
{(Kh2) [%eval 0,32] [%emt 0:02:13]} 28... Ne7
{(Rdg7) [%eval -9,26] [%emt 0:03:39]} 29. Rb1
{(Kh2) [%eval 35534,33] [%emt 0:02:26]} 29... Rdd8
{(Qb3) [%eval -8,24] [%emt 0:03:26]} 30. b4 {(Kg1) [%eval 38,32] [%emt 0:01:46]}
30... cxb4 {[%eval 8,21] [%emt 0:01:07]} 31. cxb4
{[%eval 35534,32] [%emt 0:01:13]} 31... Rd7 {(f5) [%eval 12,25] [%emt 0:01:11]}
32. Nc4 {(b5) [%eval 84,30] [%emt 0:01:40]} 32... Nc6
{(Nc8) [%eval 12,26] [%emt 0:02:01]} 33. b5 {[%eval 86,33] [%emt 0:01:51]} 33...
Nd4 {[%eval 12,25] [%emt 0:00:18]} 34. Qd2 {[%eval 62,32] [%emt 0:07:34]} 34...
Be7 {(b6) [%eval 12,27] [%emt 0:00:31]} 35. Qa5
{(Qh6) [%eval 88,31] [%emt 0:02:21]} 35... Ka7
{(Ka8) [%eval 12,24] [%emt 0:02:09]} 36. Rfc1
{(Kh2) [%eval 72,34] [%emt 0:02:21]} 36... Rc8
{(Ka8) [%eval 12,24] [%emt 0:05:29]} 37. Rb2
{(Kh2) [%eval 80,30] [%emt 0:01:48]} 37... Rcd8 {[%eval 12,26] [%emt 0:01:20]}
38. Kh2 {[%eval 74,31] [%emt 0:00:07]} 38... Bc5 {[%eval 12,24] [%emt 0:00:42]}
39. bxa6 {[%eval 46,31] [%emt 0:01:44]} 39... b6 {[%eval 12,28] [%emt 0:00:25]}
40. Qc3 {[%eval 70,32] [%emt 0:00:40]} 40... Bf8
{(Be7) [%eval 12,26] [%emt 0:00:04]} 41. Ne3 {[%eval 26,29] [%emt 0:00:58]}
41... Be7 {[%eval 12,26] [%emt 0:00:20]} 42. Rcb1
{(Kh1) [%eval 20,31] [%emt 0:05:01]} 42... Qc6 {[%eval -20,23] [%emt 0:00:55]}
43. Qd2 {(Qxc6) [%eval 0,30] [%emt 0:00:00]} 43... Qxa4
{[%eval -36,22] [%emt 0:00:50]} 44. Nd5 {[%eval 0,30] [%emt 0:00:14]} 44... Rxd5
{[%eval -33,23] [%emt 0:00:27]} 45. exd5 {[%eval 0,34] [%emt 0:00:30]} 45...
Rxd5 {[%eval -35,24] [%emt 0:00:29]} 46. Qh6 {[%eval 35534,34] [%emt 0:04:56]}
46... Qe8 {[%eval -58,26] [%emt 0:00:28]} 47. Qh7
{[%eval -66,29] [%emt 0:02:15]} 47... f5 {(b5) [%eval -65,27] [%emt 0:01:12]}
48. Re1 {[%eval 0,32] [%emt 0:01:04]} 48... Bd6 {[%eval -52,26] [%emt 0:00:10]}
49. Kh1 {[%eval 0,32] [%emt 0:00:26]} 49... Rc5
{(Ra5) [%eval -64,25] [%emt 0:00:22]} 50. Bh2
{(Reb1) [%eval -72,27] [%emt 0:00:42]} 50... f4 {[%eval -78,20] [%emt 0:00:12]}
51. Reb1 {(Bg1) [%eval -105,29] [%emt 0:00:28]} 51... Kxa6
{[%eval -108,21] [%emt 0:00:25]} 52. Ra1+ {(Rb4) [%eval -145,30] [%emt 0:00:28]}
52... Ra5 {[%eval -124,21] [%emt 0:00:09]} 53. Rd1
{(Rab1) [%eval -141,31] [%emt 0:00:42]} 53... f3
{[%eval -145,26] [%emt 0:00:50]} 54. g3 {[%eval -171,33] [%emt 0:00:00]} 54...
Ne2 {(b5) [%eval -142,25] [%emt 0:00:41]} 55. Rdb1
{(Bg1) [%eval -171,31] [%emt 0:00:26]} 55... Ra4
{(Ra3) [%eval -158,24] [%emt 0:01:30]} 56. Qh6 {[%eval 35534,30] [%emt 0:01:38]}
56... Bc5 {[%eval -196,25] [%emt 0:00:25]} 57. Rc2
{[%eval 35534,31] [%emt 0:00:28]} 57... Ra5
{(Bxf2) [%eval -197,23] [%emt 0:00:02]} 58. Bg1 {[%eval -202,26] [%emt 0:00:27]}
58... e4 {[%eval -202,24] [%emt 0:00:18]} 59. Qh7
{[%eval 35534,29] [%emt 0:00:19]} 59... exd3 {[%eval -211,24] [%emt 0:00:06]}
60. Qxd3+ {[%eval -341,28] [%emt 0:00:16]} 60... Kb7
{[%eval -226,23] [%emt 0:00:11]} 61. Qc4 {[%eval -357,29] [%emt 0:00:14]} 61...
Qd7 {[%eval -239,23] [%emt 0:00:04]} 62. Rxe2 {[%eval -373,32] [%emt 0:00:26]}
62... fxe2 {[%eval -256,24] [%emt 0:00:09]} 63. Qxe2
{[%eval -381,32] [%emt 0:00:08]} 63... Qf5
{(Qc6+) [%eval -271,23] [%emt 0:00:07]} 64. Rb2
{(Rd1) [%eval -432,28] [%emt 0:00:22]} 64... Qf3+
{(Bd6) [%eval -300,22] [%emt 0:00:11]} 65. Qxf3+
{[%eval 35534,30] [%emt 0:00:23]} 65... gxf3 {[%eval -354,24] [%emt 0:00:15]}
66. Kh2 {(Rb3) [%eval 35534,32] [%emt 0:00:01]} 66... Kc6
{(b5) [%eval -373,22] [%emt 0:00:10]} 67. Kh3
{(Rc2) [%eval -614,32] [%emt 0:00:20]} 67... Ra1
{(b5) [%eval -389,24] [%emt 0:00:16]} 68. Bh2 {[%eval -705,31] [%emt 0:00:15]}
68... b5 {[%eval -396,23] [%emt 0:00:03]} 69. Rc2
{(Rb3) [%eval 35534,34] [%emt 0:00:21]} 69... Ra4
{(b4) [%eval -428,24] [%emt 0:00:20]} 70. Rb2
{(Rc3) [%eval -834,28] [%emt 0:00:16]} 70... Bd6
{[%eval -476,24] [%emt 0:00:16]} 0-1
[/pgn]
Hi Don.

I never use a computer, unless I have an urgent need to beat someone :D

I also feel a bit tired, so maybe I will made some mistakes, but still I will post a couple of positions from the game Stockfish-Komodo (btw., great sacrifice there on the part of Komodo on d5, I must admit, although, as you say, the game had already been decided).

[d]2kr3r/1pp2p2/p1pbqn1p/4p1pb/P1N1P3/3P1NBP/1PP1QPP1/R4RK1 b - - 0 15

Now Komodo plays 15...Nd7, after which Stockfish places its knight on e3 and neither f5, nor g4 are possible any more. Please, tell me, what kind of move is this? Why not 15...g4 straight away, opening some files, etc.?

[d]1nkr3r/1pp5/p2bqp1p/2p1p1pb/P3P3/2PPNNBP/1P2QPP1/RR4K1 w - - 0 19

Here Stockfish plays 19. Nf5. What kind of move is this? It might be possible that black already has the advantage because of the very badly placed white bishop on g3, that is fully out of play (I think the right decision might have been exchanging it for the Nf6 moves earlier before g5), but still, why not immediately to storm with b4 instead? Why lose tempos? cb4 cb4 Nc6 should not be a problem, as on d4 the white knight will attack Qe6.

[d]1k1r2r1/1pp2q2/p1nb1p2/2p1p2p/P3P1pP/2PPN1B1/1P2QPP1/RR4K1 w - - 0 26

Now Stockfish plays 26. Rbf1. What kind of move is this? The rook goes from a line where it attacks the enemy king to a line where it does nothing. Stockfish then proceeds to move its other rook from the queen to the king side, and then moves back both rooks to the queen side. At the same time Komodo manages to move couple of times its rook from d8 to d7 and back. And this is in a position with opposite side castling where every single tempo counts.

I will not go into any specific variations further, my objections are just principled ones, I know the engines calculate very well, but there are things they simply do not see.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 12:41 pm

Perfect play

Post by Lyudmil Tsvetkov »

Let me post here some flattering remarks about a game of Komodo, so that Don does not decide I am criticising engines, and especially Komodo all the way. I am appreciating Don's open-minded approach and, as he posts frequently in my threads, Komodo definitely deserves special treating. :D

Joking apart, the 74th game is a real Komodo masterpiece. If you ask me to find a single weak, or even imprecise move played by Komodo, I will have big difficulty finding such.

Here the entire game:

[pgn][PlyCount "88"]
[EventType "tourn"]
[Source "K."]
[Event "3Champs/60+15"]
[Date "2013.08.26"]
[Round "25.2"]
[White "Houdini 3 Pro x64 sd12x8"]
[Black "Komodo 1036.03 64-bit x8"]
[Result "0-1"]
[EventDate "2013.08.18"]
[ECO "A30"]
[Annotator "0.12;-0.01"]
[MLNrOfMoves "44"]
[MLFlags "000100"]


{Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz 3100 MHz W=26.5 plies; 17.652kN/s B=25.3 plies; 10.561kN/s}
1. Nf3 c5 2. c4 Nf6 3. h3 g6 4. Nc3 Nc6 5. e4 Bg7 6. Be2
{[%eval 12,28] [%emt 0:02:17]} 6... d6 {[%eval -1,26] [%emt 0:01:50]} 7. O-O
{(d3) [%eval 9,27] [%emt 0:00:50]} 7... Nd7 {(0-0) [%eval -4,26] [%emt 0:04:19]}
8. d3 {[%eval 6,27] [%emt 0:04:47]} 8... Nf8
{(0-0) [%eval -9,26] [%emt 0:01:20]} 9. Be3 {[%eval 12,26] [%emt 0:01:49]} 9...
Ne6 {[%eval -9,25] [%emt 0:01:01]} 10. Qd2 {(Rb1) [%eval 9,27] [%emt 0:05:55]}
10... O-O {[%eval -9,22] [%emt 0:00:33]} 11. a3
{(Bh6) [%eval 8,26] [%emt 0:01:16]} 11... Ncd4
{(Ned4) [%eval -14,24] [%emt 0:02:15]} 12. Bd1 {[%eval 3,25] [%emt 0:01:13]}
12... a5 {(f5) [%eval -13,24] [%emt 0:02:33]} 13. a4
{(h4) [%eval 4,26] [%emt 0:01:21]} 13... Nxf3+
{(Bd7) [%eval -19,26] [%emt 0:02:09]} 14. Bxf3 {[%eval 3,28] [%emt 0:01:16]}
14... Nd4 {[%eval -21,26] [%emt 0:00:03]} 15. Bd1 {[%eval 3,29] [%emt 0:01:54]}
15... Bd7 {[%eval -21,27] [%emt 0:01:02]} 16. Bg5
{(Nb5) [%eval 1,27] [%emt 0:00:12]} 16... b6
{(Ne6) [%eval -22,26] [%emt 0:02:23]} 17. Re1
{(Nb5) [%eval -1,27] [%emt 0:05:07]} 17... Bc6
{(Re8) [%eval -22,26] [%emt 0:03:25]} 18. Nb5 {[%eval -13,25] [%emt 0:01:09]}
18... Bxb5 {[%eval -24,25] [%emt 0:00:29]} 19. axb5
{[%eval -18,26] [%emt 0:04:27]} 19... Qd7 {[%eval -24,28] [%emt 0:00:59]} 20. h4
{(Rb1) [%eval -21,24] [%emt 0:00:12]} 20... h5 {[%eval -37,25] [%emt 0:04:38]}
21. Ra4 {(Be3) [%eval -27,26] [%emt 0:00:42]} 21... Bf6
{(Rae8) [%eval -45,24] [%emt 0:01:18]} 22. Bh6
{(Be3) [%eval -15,27] [%emt 0:00:56]} 22... Rfd8
{(Rfc8) [%eval -47,25] [%emt 0:00:39]} 23. g3
{(Bg5) [%eval -26,26] [%emt 0:01:05]} 23... Qh3
{(Bg7) [%eval -55,24] [%emt 0:01:04]} 24. Bf4
{(Be3) [%eval -29,26] [%emt 0:01:59]} 24... Kh7
{(Bg7) [%eval -85,24] [%emt 0:02:59]} 25. Be3
{(e5) [%eval -40,25] [%emt 0:01:09]} 25... Be5
{(Bg7) [%eval -111,22] [%emt 0:01:17]} 26. b3
{(Ra3) [%eval -105,25] [%emt 0:01:44]} 26... Rf8
{[%eval -112,24] [%emt 0:00:43]} 27. Ra2 {[%eval -122,26] [%emt 0:01:23]} 27...
f5 {[%eval -126,26] [%emt 0:01:55]} 28. Bf4
{(Bg5) [%eval -124,27] [%emt 0:00:44]} 28... Bxf4
{[%eval -182,24] [%emt 0:00:36]} 29. Qxf4 {[%eval -193,26] [%emt 0:01:04]} 29...
e5 {[%eval -180,27] [%emt 0:00:04]} 30. Qe3
{(Qg5) [%eval -191,27] [%emt 0:00:42]} 30... f4 {[%eval -189,26] [%emt 0:00:37]}
31. gxf4 {[%eval -192,27] [%emt 0:00:00]} 31... Qxh4
{[%eval -190,26] [%emt 0:00:24]} 32. fxe5 {[%eval -204,28] [%emt 0:00:48]} 32...
dxe5 {[%eval -191,28] [%emt 0:00:09]} 33. Rf1
{(Rd2) [%eval -195,30] [%emt 0:01:43]} 33... Rf4
{(Rad8) [%eval -214,25] [%emt 0:00:33]} 34. f3 {[%eval -208,27] [%emt 0:01:01]}
34... Qf6 {[%eval -224,26] [%emt 0:00:14]} 35. Rg2
{(Rh2) [%eval -223,27] [%emt 0:00:32]} 35... Rf8
{(Ne6) [%eval -305,25] [%emt 0:01:15]} 36. Qd2
{(Rff2) [%eval -282,25] [%emt 0:00:41]} 36... Rxf3
{(Kg7) [%eval -380,25] [%emt 0:00:47]} 37. Bxf3 {[%eval -453,27] [%emt 0:03:18]}
37... Nxf3+ {[%eval -440,27] [%emt 0:00:21]} 38. Rxf3
{[%eval -395,28] [%emt 0:02:26]} 38... Qxf3 {[%eval -490,26] [%emt 0:01:01]} 39.
Qg5 {[%eval -413,26] [%emt 0:00:00]} 39... Qf6 {[%eval -489,25] [%emt 0:00:35]}
40. Kh2 {(Qg3) [%eval -410,22] [%emt 0:00:54]} 40... Kg7
{[%eval -550,23] [%emt 0:00:16]} 41. Rg1 {(Qg3) [%eval -602,28] [%emt 0:02:34]}
41... Qxg5 {(Qf4+) [%eval -930,25] [%emt 0:00:39]} 42. Rxg5
{[%eval -682,22] [%emt 0:00:12]} 42... Kf6 {[%eval -1035,26] [%emt 0:00:57]} 43.
Rg2 {[%eval -730,25] [%emt 0:00:03]} 43... g5 {[%eval -1140,26] [%emt 0:01:13]}
44. d4 {[%eval -887,27] [%emt 0:01:05]} 44... exd4
{[%eval -1342,26] [%emt 0:00:40]} 0-1
[/pgn]

And some highlights:

[d]r1bqkn1r/pp2ppbp/2np2p1/2p5/2P1P3/2NP1N1P/PP2BPP1/R1BQ1RK1 w kq - 0 9

Komodo has just played 8...Nd7f8!, fully theoretical, aiming at the d4 square. Very elegant, indeed, for an engine. Houdini and Stockfish do not find this move.

[d]r2q1rk1/4ppbp/1pbp2p1/pNp3B1/P1PnP3/3P3P/1P1Q1PP1/R2BR1K1 b - - 0 18

Here Houdini makes a mistake, playing Nb5 in an attempt to exchange the powerful d4 knight, but Komodo is swift in capturing the Nb5 with its light-coloured bishop, a perfect decision, as the Nd4 is simply tremendous. 18. Ne2 instead would provide white much better drawing chances. It is also woth mentioning that an exchange of the white dark-coloured bishop for the Nd4 would in no way solve problems, as the black bishop on d4 would be much more powerful than its white colleague in spite of the opposition of colours.

[d]r2r2k1/4pp2/1p1p1bpB/pPp4p/R1PnP2P/3P2Pq/1P1Q1P2/3BR1K1 w - - 0 24

Komodo has just played Qh3, already paralysing white.

[d]r4r2/4p2k/1p1p2p1/pPp1bp1p/2PnP2P/1P1PB1Pq/R2Q1P2/3BR1K1 w - - 0 28

Just played f7-f5; no more chances

[d]r4r2/7k/1p1p2p1/pPp1p2p/2PnPp1P/1P1PQ1Pq/R4P2/3BR1K1 w - - 0 31

Just played f5-f4, the end: a complete positional domination, the black Nd4 is worth somewhere one-two rooks.

Well, this is a game I will call perfect.