Chess Artist

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

Moderators: hgm, Rebel, chrisw

Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Release 0.2.0

Post by Ferdy »

Code: Select all

Release 0.2.0

* Tune annotation symbols based on analysis time.
* Reduce position complexity number when center is closed.
* Remove annotator name after a variation line, the annotator tag in the tag      section of the game is enough to determine the annotator.
* Calculate threat move when position is not easy, this threat move is added as game comment in the notation.

Code: Select all

chess-artist.exe -infile wch16r11.pgn -outfile out_wch16r11.pgn -eng Brainfish.exe -engoptions "Hash value 128, Threads value 2, SyzygyPath value C:\myfiles\chess\syzygy, SyzygyProbeLimit value 5" -eval search -book cerebellum -movetime 5000 -movestart 10
[pgn]
[Event "WCh 2016"]
[Site "New York USA"]
[Date "2016.11.26"]
[Round "11"]
[White "Karjakin, Sergey"]
[Black "Carlsen, Magnus"]
[Result "1/2-1/2"]
[WhiteTitle "GM"]
[BlackTitle "GM"]
[WhiteElo "2772"]
[BlackElo "2853"]
[ECO "C84"]
[Opening "Ruy Lopez"]
[Variation "closed defence"]
[WhiteFideId "14109603"]
[BlackFideId "1503014"]
[EventDate "2016.11.11"]
[Annotator "Brainfish 191116 64 POPCNT"]

{Hash 128mb, Threads 2, @ 5.0s/pos}
1. e4 (1. e4 {cerebellum}) 1... e5 (1... e5 {cerebellum})
2. Nf3 (2. Nf3 {cerebellum}) 2... Nc6 (2... Nc6 {cerebellum})
3. Bb5 (3. Bc4 {cerebellum}) 3... a6 (3... Nf6 {cerebellum})
4. Ba4 (4. Ba4 {cerebellum}) 4... Nf6 (4... Nf6 {cerebellum})
5. O-O (5. O-O {cerebellum}) 5... Be7 (5... Be7 {cerebellum})
6. d3 (6. Re1 {cerebellum}) 6... b5 (6... b5 {cerebellum})
7. Bb3 (7. Bb3 {cerebellum}) 7... d6 (7... d6 {cerebellum})
8. a3 (8. a4 {cerebellum}) 8... O-O (8... O-O {cerebellum})
9. Nc3 (9. Nc3 {cerebellum}) 9... Be6 (9... Bg4 {cerebellum})
10. Nd5 {+0.21} (10. Nd5 {cerebellum}) 10... Nd4 {+0.10} (10... Nd4 {cerebellum})
11. Nxd4 {+0.06} (11. Nxd4 {cerebellum}) 11... exd4 {+0.05} (11... exd4 {cerebellum})
12. Nxf6+ $0 {+0.12} (12. Nxf6+ {cerebellum}) ({} 12. Bf4 Nxd5 13. Bxd5 Rc8 14. Bb7 {+0.15}) 12... Bxf6 {+0.18} (12... Bxf6 {cerebellum})
13. Bxe6 {+0.16} (13. Bxe6 {cerebellum}) 13... fxe6 {+0.19} (13... fxe6 {cerebellum})
14. f4 $1 {+0.15} (14. Qg4 {cerebellum}) ({} 14. Qg4 Qd7 15. b3 c5 16. a4 {+0.12}) {, with the idea of Qg4} c5 $1 {+0.10}
15. Qg4 $1 {+0.10} ({} 15. Bd2 Qd7 16. Qg4 Rf7 17. b3 {+0.09}) Qd7 $0 {+0.04}
16. f5 $0 {+0.00} ({Better is} 16. Bd2 {+0.19}) 16... Rae8 $1 {+0.00} ({} 16...exf5 17. Rxf5 Rf7 18. Bd2 g6 {+0.04})
17. Bd2 $0 {+0.03} ({} 17. fxe6 Qxe6 {+0.04}) 17... c4 $1 {+0.06} ({} 17...Be5 18. fxe6 Rxf1+ 19. Rxf1 Qxe6 {+0.12})
18. h3 $0 {-0.11} ({} 18. fxe6 Qxe6 19. Qxe6+ Rxe6 20. Bb4 {+0.04}) 18... c3 $5 {+0.00} ({} 18...e5 19. Qf3 Rc8 20. Rac1 Bd8 {+0.00})
19. bxc3 $0 {+0.05} {, with the idea of c4} d5 $3 {+0.07}
20. Bg5 $1 {+0.00} ({} 20. c4 {-0.04}) 20... Bxg5 $5 {+0.00} ({} 20...dxc3 21. Bxf6 Rxf6 22. exd5 exf5 {+0.00})
21. Qxg5 $0 {+0.00} dxe4 $5 {+0.00}
{, with the idea of exd3} 22. fxe6 $1 {+0.00} Rxf1+ $5 {+0.00}
23. Rxf1 $0 {+0.00} Qxe6 $0 {+0.00}
24. cxd4 $5 {+0.00} ({} 24. Re1 Qd6 25. Rxe4 Rxe4 26. dxe4 {+0.00}) 24... e3 $0 {+0.02} ({} 24...exd3 25. cxd3 Qe3+ 26. Qxe3 Rxe3 {+0.00})
{, with the idea of h6} 25. Re1 $3 {+0.00} 25... h6 $5 {+0.00} ({} 25...e2 26. Qd2 h6 27. Kh1 Qf6 {+0.00})
26. Qh5 $5 {+0.00} ({} 26. Qf4 e2 27. Qf3 Qd6 28. Rxe2 {+0.00}) e2 $0 {+0.00}
27. Qf3 $0 {+0.00} a5 $0 {+0.00}
{, with the idea of a4} 28. c3 $3 {+0.00} 28... Qa2 $5 {+0.00} ({} 28...a4 29. d5 Qe7 30. d4 Qxa3 {+0.00})
29. Qc6 $5 {+0.00} ({} 29. Qh5 Re7 30. Qc5 Qd2 31. Qxe7 {+0.00}) 29... Re6 $5 {+0.00} ({} 29...Re3 30. Qc8+ Kh7 31. Qf5+ Kg8 {+0.00})
30. Qc8+ $5 {+0.00} ({} 30. Qd7 Kh7 31. Qxb5 Qd2 32. Qf5+ {+0.00}) Kh7 $0 {+0.00}
31. c4 $5 {+0.00} Qd2 $0 {+0.00}
32. Qxe6 $0 {+0.00} Qxe1+ $0 {+0.00}
33. Kh2 $0 {+0.00} Qf2 $0 {+0.00}
34. Qe4+ $0 {+0.00} (-- {WhiteAveError=0.03, BlackAveError=-0.01, ratingDiff=8}) 1/2-1/2
[/pgn]
User avatar
Ponti
Posts: 493
Joined: Wed Mar 15, 2006 6:13 am
Location: Curitiba - PR - BRAZIL

Re: Chess Artist

Post by Ponti »

Interesting program.

Here´s my own analysis:

1.e4 {better is 1.c4 or 1.d4 or 1.Nf3 if you want to win a WCh.match) e5 {better is 1...c5 for the same reason...} ...

Cerebellum prefers the Italian game, WOW !

:lol:
A. Ponti
AMD Ryzen 1800x, Windows 10.
FIDE current ratings: standard 1913, rapid 1931
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Chess Artist

Post by Ferdy »

Ponti wrote:Interesting program.

Here´s my own analysis:

1.e4 {better is 1.c4 or 1.d4 or 1.Nf3 if you want to win a WCh.match) e5 {better is 1...c5 for the same reason...} ...

Cerebellum prefers the Italian game, WOW !

:lol:
Just scratching the surface, Brainfish 19Nov2016 (2 threads on i7-2600K) at 2 minutes/node (except at root node which is at 4 minutes) multipv is set to 3 to generate the best 3 moves in every node, it likes RL. There must be a lot going on in cerebellum :).

Image
glennsamuel32
Posts: 136
Joined: Sat Dec 04, 2010 5:31 pm
Location: 223

Re: Chess Artist

Post by glennsamuel32 »

Is there a way to have the engine analyse and print only the best final move into the given pgn ?

For example...

test.pgn --- final move is 25...Re8 (black)

output.pgn --- final move is 26.Bb5 (white) which the engine analysed and printed.

Thanks !!
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Chess Artist

Post by Ferdy »

glennsamuel32 wrote:Is there a way to have the engine analyse and print only the best final move into the given pgn ?

For example...

test.pgn --- final move is 25...Re8 (black)

output.pgn --- final move is 26.Bb5 (white) which the engine analysed and printed.

Thanks !!
What is your purpose in doing this, adding only the final move of the anotator? I don't like adding options that are not generally useful. Can you give an example in pgn format?
glennsamuel32
Posts: 136
Joined: Sat Dec 04, 2010 5:31 pm
Location: 223

Re: Chess Artist

Post by glennsamuel32 »

Ferdy wrote:
glennsamuel32 wrote:Is there a way to have the engine analyse and print only the best final move into the given pgn ?

For example...

test.pgn --- final move is 25...Re8 (black)

output.pgn --- final move is 26.Bb5 (white) which the engine analysed and printed.

Thanks !!
What is your purpose in doing this, adding only the final move of the anotator? I don't like adding options that are not generally useful. Can you give an example in pgn format?
For use on the Infinity Chess server, to exit the opening book with a strong move.
I completely understand if you feel it's unimportant.

Input.pgn...

[Event "?"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "0-1"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. Bxc6 dxc6 6. O-O Nd7 7. Nbd2 O-O 8. Qe1 f6 9. Nc4 Rf7 10. a4 Bf8 11. Kh1 Nc5 12. a5 Ne6 13. Ncxe5 fxe5 14. Nxe5 Rf6 15. Ng4 Rf7 16. Ne5 Re7 17. a6 c5 18. f4 Qe8 19. axb7 Bxb7 20.Qa5 Nd4 21. Qc3 Re6 22. Be3 Rb6 23. Nc4 Rb4 24. b3 a5 25. Rxa5 Rxa5

Output.pgn (last position analysed and the best move printed -- 26. Nxa5 )

[Event "?"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "0-1"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. Bxc6 dxc6 6. O-O Nd7 7. Nbd2 O-O 8. Qe1 f6 9. Nc4 Rf7 10. a4 Bf8 11. Kh1 Nc5 12. a5 Ne6 13. Ncxe5 fxe5 14. Nxe5 Rf6 15. Ng4 Rf7 16. Ne5 Re7 17. a6 c5 18. f4 Qe8 19. axb7 Bxb7 20.Qa5 Nd4 21. Qc3 Re6 22. Be3 Rb6 23. Nc4 Rb4 24. b3 a5 25. Rxa5 Rxa5 26. Nxa5
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Chess Artist

Post by tpoppins »

glennsamuel32 wrote:For use on the Infinity Chess server, to exit the opening book with a strong move.
You can do this with Engine Match under a Fritz GUI by setting Game Length to 1.
glennsamuel32
Posts: 136
Joined: Sat Dec 04, 2010 5:31 pm
Location: 223

Re: Chess Artist

Post by glennsamuel32 »

tpoppins wrote:
glennsamuel32 wrote:For use on the Infinity Chess server, to exit the opening book with a strong move.
You can do this with Engine Match under a Fritz GUI by setting Game Length to 1.
Works perfectly...thanks a lot !!
Never knew we could have a 1-ply engine match :D
giovanni
Posts: 142
Joined: Wed Jul 08, 2015 12:30 pm

Re: Release 0.2.0

Post by giovanni »

Terrific work, Ferdy. Is there a way to use simultaneously more than one book?

Ferdy wrote:

Code: Select all

Release 0.2.0

* Tune annotation symbols based on analysis time.
* Reduce position complexity number when center is closed.
* Remove annotator name after a variation line, the annotator tag in the tag      section of the game is enough to determine the annotator.
* Calculate threat move when position is not easy, this threat move is added as game comment in the notation.

Code: Select all

chess-artist.exe -infile wch16r11.pgn -outfile out_wch16r11.pgn -eng Brainfish.exe -engoptions "Hash value 128, Threads value 2, SyzygyPath value C:\myfiles\chess\syzygy, SyzygyProbeLimit value 5" -eval search -book cerebellum -movetime 5000 -movestart 10
[pgn]
[Event "WCh 2016"]
[Site "New York USA"]
[Date "2016.11.26"]
[Round "11"]
[White "Karjakin, Sergey"]
[Black "Carlsen, Magnus"]
[Result "1/2-1/2"]
[WhiteTitle "GM"]
[BlackTitle "GM"]
[WhiteElo "2772"]
[BlackElo "2853"]
[ECO "C84"]
[Opening "Ruy Lopez"]
[Variation "closed defence"]
[WhiteFideId "14109603"]
[BlackFideId "1503014"]
[EventDate "2016.11.11"]
[Annotator "Brainfish 191116 64 POPCNT"]

{Hash 128mb, Threads 2, @ 5.0s/pos}
1. e4 (1. e4 {cerebellum}) 1... e5 (1... e5 {cerebellum})
2. Nf3 (2. Nf3 {cerebellum}) 2... Nc6 (2... Nc6 {cerebellum})
3. Bb5 (3. Bc4 {cerebellum}) 3... a6 (3... Nf6 {cerebellum})
4. Ba4 (4. Ba4 {cerebellum}) 4... Nf6 (4... Nf6 {cerebellum})
5. O-O (5. O-O {cerebellum}) 5... Be7 (5... Be7 {cerebellum})
6. d3 (6. Re1 {cerebellum}) 6... b5 (6... b5 {cerebellum})
7. Bb3 (7. Bb3 {cerebellum}) 7... d6 (7... d6 {cerebellum})
8. a3 (8. a4 {cerebellum}) 8... O-O (8... O-O {cerebellum})
9. Nc3 (9. Nc3 {cerebellum}) 9... Be6 (9... Bg4 {cerebellum})
10. Nd5 {+0.21} (10. Nd5 {cerebellum}) 10... Nd4 {+0.10} (10... Nd4 {cerebellum})
11. Nxd4 {+0.06} (11. Nxd4 {cerebellum}) 11... exd4 {+0.05} (11... exd4 {cerebellum})
12. Nxf6+ $0 {+0.12} (12. Nxf6+ {cerebellum}) ({} 12. Bf4 Nxd5 13. Bxd5 Rc8 14. Bb7 {+0.15}) 12... Bxf6 {+0.18} (12... Bxf6 {cerebellum})
13. Bxe6 {+0.16} (13. Bxe6 {cerebellum}) 13... fxe6 {+0.19} (13... fxe6 {cerebellum})
14. f4 $1 {+0.15} (14. Qg4 {cerebellum}) ({} 14. Qg4 Qd7 15. b3 c5 16. a4 {+0.12}) {, with the idea of Qg4} c5 $1 {+0.10}
15. Qg4 $1 {+0.10} ({} 15. Bd2 Qd7 16. Qg4 Rf7 17. b3 {+0.09}) Qd7 $0 {+0.04}
16. f5 $0 {+0.00} ({Better is} 16. Bd2 {+0.19}) 16... Rae8 $1 {+0.00} ({} 16...exf5 17. Rxf5 Rf7 18. Bd2 g6 {+0.04})
17. Bd2 $0 {+0.03} ({} 17. fxe6 Qxe6 {+0.04}) 17... c4 $1 {+0.06} ({} 17...Be5 18. fxe6 Rxf1+ 19. Rxf1 Qxe6 {+0.12})
18. h3 $0 {-0.11} ({} 18. fxe6 Qxe6 19. Qxe6+ Rxe6 20. Bb4 {+0.04}) 18... c3 $5 {+0.00} ({} 18...e5 19. Qf3 Rc8 20. Rac1 Bd8 {+0.00})
19. bxc3 $0 {+0.05} {, with the idea of c4} d5 $3 {+0.07}
20. Bg5 $1 {+0.00} ({} 20. c4 {-0.04}) 20... Bxg5 $5 {+0.00} ({} 20...dxc3 21. Bxf6 Rxf6 22. exd5 exf5 {+0.00})
21. Qxg5 $0 {+0.00} dxe4 $5 {+0.00}
{, with the idea of exd3} 22. fxe6 $1 {+0.00} Rxf1+ $5 {+0.00}
23. Rxf1 $0 {+0.00} Qxe6 $0 {+0.00}
24. cxd4 $5 {+0.00} ({} 24. Re1 Qd6 25. Rxe4 Rxe4 26. dxe4 {+0.00}) 24... e3 $0 {+0.02} ({} 24...exd3 25. cxd3 Qe3+ 26. Qxe3 Rxe3 {+0.00})
{, with the idea of h6} 25. Re1 $3 {+0.00} 25... h6 $5 {+0.00} ({} 25...e2 26. Qd2 h6 27. Kh1 Qf6 {+0.00})
26. Qh5 $5 {+0.00} ({} 26. Qf4 e2 27. Qf3 Qd6 28. Rxe2 {+0.00}) e2 $0 {+0.00}
27. Qf3 $0 {+0.00} a5 $0 {+0.00}
{, with the idea of a4} 28. c3 $3 {+0.00} 28... Qa2 $5 {+0.00} ({} 28...a4 29. d5 Qe7 30. d4 Qxa3 {+0.00})
29. Qc6 $5 {+0.00} ({} 29. Qh5 Re7 30. Qc5 Qd2 31. Qxe7 {+0.00}) 29... Re6 $5 {+0.00} ({} 29...Re3 30. Qc8+ Kh7 31. Qf5+ Kg8 {+0.00})
30. Qc8+ $5 {+0.00} ({} 30. Qd7 Kh7 31. Qxb5 Qd2 32. Qf5+ {+0.00}) Kh7 $0 {+0.00}
31. c4 $5 {+0.00} Qd2 $0 {+0.00}
32. Qxe6 $0 {+0.00} Qxe1+ $0 {+0.00}
33. Kh2 $0 {+0.00} Qf2 $0 {+0.00}
34. Qe4+ $0 {+0.00} (-- {WhiteAveError=0.03, BlackAveError=-0.01, ratingDiff=8}) 1/2-1/2
[/pgn]
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Release 0.2.0

Post by Ferdy »

giovanni wrote:Terrific work, Ferdy. Is there a way to use simultaneously more than one book?
I think it is possible.