lichess.org
Donate

Why cant the computer on here ever say anything nice ?

You could do a much better job of providing useful annotations if you developed an engine with that in mind, rather than bolted it on as an afterthought to one designed for playing. I've thought about trying to modify an engine along those lines.

Some of the things you could do....

- Look at how the evaluation of the move played changes as you go more ply into the search tree. If the deeper you go, it looks likes say -3, -3, -3, -2, 0, +5, +5 the move is a hard-to-find combination most likely.

- Look at how the evaluation of the move compares to the evaluation of the other top n moves. For examples if there are many moves with an evaluation of +0.5 and your move is -5 at depth 2 and stays that way, it's most likely a horrible blunder. If all the alternative moves are +0.5, and your move is +10 but only after going 10 ply deep, it is likely the only move to win, and maybe a brilliancy.

- You'd want to factor in what is easy and hard for a human to see. It probably wouldn't be hard to identify some rules at least. e.g. Recapturing after a capture is obvious, whereas if there is an intermezzo, that is harder.

I don't know how useful all that would be. Perhaps it would be better just to use different language in the the annotations. Some wording that fits equally well whether it's the case that "Your move was very bad, and there were much better alternatives that would be obvious to most everyone" or it's the case that "Your move was logical and pretty good, but you missed a brilliant win that was possible, though it would normally take a GM or a computer to see it".
#32
# yeah dude, you have seen it to (i was pretty sure the probability that
i am the only one who can see easy patterns, must be close to zero ;-)
Your example is something what i called a honeypot
(I guess duropo said something that goes in the same direction?)
Why not just be honest ?
Its obviously a male computer !

L xxx
Tried to parse the game,

[Event "GCT Blitz Paris 2016"]
[Site "Paris FRA"]
[Date "2016.06.11"]
[Round "1.1"]
[White "Carlsen, Magnus"]
[Black "So, Wesley"]
[Result "1/2-1/2"]
[WhiteTitle "GM"]
[BlackTitle "GM"]
[WhiteElo "2855"]
[BlackElo "2770"]
[ECO "C44"]
[Opening "King's pawn game"]
[WhiteFideId "1503014"]
[BlackFideId "5202213"]
[EventDate "2016.06.11"]

1. e4 e5 2. Nf3 Nc6 3. d3 Nf6 4. g3 d5 5. exd5 Nxd5 6. Bg2 Bd6 7. O-O O-O 8. Re1
Re8 9. Nc3 Nxc3 10. bxc3 Rb8 11. Rb1 h6 12. Nd2 Ne7 13. Nc4 Ng6 14. d4 Be6 15.
Na5 exd4 16. Rxb7 Qf6 17. Rxb8 Rxb8 18. Nc6 Rb1 19. cxd4 Nf4 20. gxf4 Bxf4 21.
d5 Bd7 22. Qf3 Bxc6 23. dxc6 Rxc1 24. Rxc1 Bxc1 25. Qxf6 gxf6 1/2-1/2

Then extract positions whenever the move of a player matches Sf7 recommended move and when there is at least 1 best move change.

Complexity number is a number that is the sum of iteration depth where the bestmove of Sf7 changes, starting at iteration 9. This is a simplified version (but similar in principle with that of Guid and Bratko) and is only using multipv = 1.

Example:
info depth 9 seldepth 11 multipv 1 score cp 65 nodes 44763 nps 758694 tbhits 0 t
ime 59 pv d3d4 d6f8 d1e2 c8e6 c4e5 g6e5 d4e5 c7c6 c1e3

info depth 10 seldepth 13 multipv 1 score cp 75 nodes 93330 nps 790932 tbhits 0
time 118 pv g2e4 d8f6 c4d6 f6d6 d1f3 d6a6 c1e3 c8e6 b1b7 b8b7 e4b7 a6a2

info depth 11 seldepth 16 multipv 1 score cp 75 nodes 135595 nps 802337 tbhits 0
time 169 pv g2e4 b7b6 d1f3 c8e6 c4d6 d8d6 c3c4 c7c5 f3h5 d6c7 e4g6 f7g6 h5g6

info depth 12 seldepth 16 multipv 1 score cp 60 nodes 361150 nps 926025 tbhits 0
time 390 pv g2c6 e8e6 c6e4 b7b6 d1e2 e6f6 h2h4 d6c5 c1e3 c5e3 e2e3 c8e6

(1) Move changes from d3d4 to g2e4
at iter depth 9: d3d4
at iter depth 10: g2e4

complexityNumber = 10
Move changes = 1

(2) Move changes from g2e4 to g2c6
at iter depth 12: g2c6

complexityNumber = 10 + 12 = 22
Move changes = 2

I let Sf7 to analyze at 3sec/position on the above game starting at move 12.
Here are the positions with complexity number and move changes as it iterates thru the depths.

That position with high moveChanges (5) and complexityNumber (65) deserves an exclamation mark I guess. Or even one with moveChanges (4), but with high complexity number.

Get the fen, paste it on the board to see how complex those positions are with respect to Sf7 engine. Move changes >= 4 indicates that those positions are not easy for Sf7 and may already be a candidate to receive an !? symbol.

fen: 1rbqr1k1/ppp1npp1/3b3p/4p3/2N5/2PP2P1/P1P2PBP/1RBQR1K1 b - - 3 13
player: e7g6
annotator (stockfish 7 x64 popcnt): e7g6 {-0.53/15 3s}
complexiytNumber: 21
MoveChangesStartIter9: 2

fen: 1rbqr1k1/ppp2pp1/3b2np/4p3/2N5/2PP2P1/P1P2PBP/1RBQR1K1 w - - 4 14
player: d3d4
annotator (stockfish 7 x64 popcnt): d3d4 {0.57/16 3s}
complexiytNumber: 65
MoveChangesStartIter9: 5

fen: 1r1qr1k1/ppp2pp1/3bb1np/N3p3/3P4/2P3P1/P1P2PBP/1RBQR1K1 b - - 2 15
player: e5d4
annotator (stockfish 7 x64 popcnt): e5d4 {-0.81/16 3s}
complexiytNumber: 50
MoveChangesStartIter9: 4

fen: 1r1qr1k1/pRp2pp1/3bb1np/N7/3p4/2P3P1/P1P2PBP/2BQR1K1 b - - 0 16
player: d8f6
annotator (stockfish 7 x64 popcnt): d8f6 {-0.39/18 3s}
complexiytNumber: 46
MoveChangesStartIter9: 4

fen: 1r2r1k1/pRp2pp1/3bbqnp/N7/3p4/2P3P1/P1P2PBP/2BQR1K1 w - - 1 17
player: b7b8
annotator (stockfish 7 x64 popcnt): b7b8 {0.18/18 3s}
complexiytNumber: 23
MoveChangesStartIter9: 2

fen: 1r4k1/p1p2pp1/3bbqnp/N7/3p4/2P3P1/P1P2PBP/2BQR1K1 w - - 0 18
player: a5c6
annotator (stockfish 7 x64 popcnt): a5c6 {0.29/17 3s}
complexiytNumber: 54
MoveChangesStartIter9: 4

fen: 1r4k1/p1p2pp1/2Nbbqnp/8/3p4/2P3P1/P1P2PBP/2BQR1K1 b - - 1 18
player: b8b1
annotator (stockfish 7 x64 popcnt): b8b1 {-0.44/18 3s}
complexiytNumber: 10
MoveChangesStartIter9: 1

fen: 6k1/p1p2pp1/2Nbbq1p/8/3P1n2/6P1/P1P2PBP/1rBQR1K1 w - - 1 20
player: g3f4
annotator (stockfish 7 x64 popcnt): g3f4 {0.36/21 3s}
complexiytNumber: 10
MoveChangesStartIter9: 1
some comments about depth=9 :
I was told depth=1 is already around 2000 Elo, so, depth=9 is really strong !

In endgame, humans (and engines) can be very deep in a couple of seconds.

The depth should be adapted with the game phases :
depth=9 in opening and early middlegame
depth=10 for middlegame
depth=11 for late middlegame
depth = 12 to 18 for endgame
The reason I choose to start at depth 9 is because at depths lower than this, the engine search score and bestmove are often not stable, and may produce more bestmove changes. It would be somewhat difficult to detect easy moves. Also S7 has issues on displaying unbelievable pv scores and variation on some positions at depth below 9. So I am trying to avoid the consequences of such behaviour.

This topic has been archived and can no longer be replied to.