Tuning

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 10:41 am

Huge simplification

Post by Lyudmil Tsvetkov » Fri Apr 25, 2014 5:38 pm

I am certain Arjun Temurnikar reads this forum, as he often replies here.

Many thanks to Arjun for trying to implement another idea of mine. I have never been so famous in my life, so I feel a bit uneasy.

Arjun, did you really try to implement bonus for minor piece behind chain pawn on top of the already existing bonus for minor piece behind pawn? I think you realise at first glance adding another minor behind pawn is very redundant. SF tuned for a long time this term in the summer and the value they finally got seems to be an optimum, attempts to increase it further failed. So that adding still further bonus is obviously bad.

I never said minor behind chain pawn will perform better in SF than minor behind pawn, but I think it will, as this is what chess knowledge suggests. So that my suggestion to Arjun would be to retest the patch, removing beforehand the existing bonus for minor behind pawn. As this will hugely simplify the eval, as instead of checking for all pawns, now the engine will check only for chain pawns, you could test it with SPRT -4;0. :D

OK, I give up on SPRT benefits. Just retest the patch of minor behind chain pawn, when the existing minor behind pawn bonus is previously removed. So that you will test SF performance of minor behind chain pawn instead of minor behind any pawn. I think it is better to specify different values for B and N, as well as for ranks, but you can very well simply leave absolutely the same values as for minor behind pawn, I do not care.

So please, Arjun, thank you very much for testing, but, if you would like to see if real knowledge actually works, please retest the patch as I suggested.

Many thanks in advance for your understanding.

kgburcham
Posts: 2016
Joined: Sun Feb 17, 2008 3:19 pm

Re: Tuning

Post by kgburcham » Fri Apr 25, 2014 7:24 pm

Lyudmil Tsvetkov wrote:Maybe I will post here one or 2 topics more, maybe not.
this forum should pay for your posts.

thanks Lyudmil
kgburcham

Henk
Posts: 5819
Joined: Mon May 27, 2013 8:31 am

Re: Tuning

Post by Henk » Fri Apr 25, 2014 8:18 pm

kgburcham wrote:
Lyudmil Tsvetkov wrote:Maybe I will post here one or 2 topics more, maybe not.
this forum should pay for your posts.

thanks Lyudmil
kgburcham
Maybe he should collect all his posts and publish a book.

Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 10:41 am

Re: Huge simplification

Post by Lyudmil Tsvetkov » Fri Apr 25, 2014 11:09 pm

I hope very much you try this, Arjun.

I know what people would say about it:

- it is unorthogonal
- it is wasting resources
- let us move on

But, please take note that specific suggestions are very much orthogonal, non-specific suggestions are those that lack any orthogonality. Actually, the more specific a suggestion is, the more it obeys the orthogonality rule. Specific suggestions avoid randomness, non-specific suggestions, no matter how well tuned, fall easy prey to randomness.

While you are there Arjun, with very nice closed ideas, like giving bonus for storming pawns and some piece types with closed positions, why do not you apply a correct definition for a closed position? What concerns adjusting knights and bishop values in closed positions, the correct definition would be that a position is closed when on at least 3 of the central c,d,e or f files there are blocked pawns. I.e., a structure like white pawns on c3,d4,e5, black pawns on c4,d5,e6. The at least 3 central blocked pawns rule is the minimal requirement for a closed position, but piece values are even better adjusted with more blocked pawns.

A similar rule could be used concerning storms, but there the problem might be bigger, as this would depend also on other factors.

I suggested a while ago a very nice closed idea, improving a bit on Joona Kiiski's closed patch. Very simple: white pawns on c3,d4,e5, black pawns on c4,d5,e6, f7, and black king castled short - then give some 20cps penalty to the short castled black king. Why do not you try this Arjun, just once precisely the way I have suggested. Just this one very simple idea. It will help SF learn for the first time what a closed position really is and how to behave in such positions. SF needs this code, it simply needs it.

As I told you, the pawn on f7 is very much necessary for the closed trick to work, you can not do without it.

Please Arjun, listen just once to what real chess knowledge, as specific as possible, tells us.

Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 10:41 am

Too diffident

Post by Lyudmil Tsvetkov » Fri Apr 25, 2014 11:30 pm

My impression is that SF could earn a big amount of elo just trying to tune different eval terms. But, in order for this to work, one must tune not only one, but a couple of terms at the same time. Yes, I know it is close to impossible to do in SF, but still, has someone tried to do this on a regular basis? In all the long SF framework history, I saw just 2 or 3 similar attempts, where more than one eval term would be tuned simultaneously.

I do not say to tune everything at the same time, but why not start with tuning just 2 terms at the same time? Just make a couple attempts. Because, my impression, really, is that SF could improve a lot just by tuning different parameters, and only in that way on many occasions. From browsing a large amount of SF games, I would conclude that:

- minor outposts could be tuned up, all ranks from 4 to 6; why this does not work, I have no clue, but there should be some reason. In any case SF much too frequently underestimates minor outposts. Probably you should tune this one with some other features simultaneously.

- rook and queen psqt could be tuned up with bigger values for more advanced ranks; rook psqt could be further tuned up with bigger values for central d and e files; minors psqt could be tuned up for ranks and with bigger values for central d and e files.

- values for minors attacking enemy pawns could be tuned up; the same holds true for different types of pieces attacking different enemy piece types; and especially for knight attacking enemy queen. All of this tuning up should work, but probably another term or 2 should be tuned at the same time?

-etc., etc.

I am not posting any games here, as for many, these features might be inobservable, too small to notice, but they really do exist as SF weaknesses. I observe them in too many lost SF games, only that it is difficult to quantify their impact. And that is why simultaneous tuning is probably necessary.

Would be happy for any tuning objections, considerations.

User avatar
michiguel
Posts: 6388
Joined: Thu Mar 09, 2006 7:30 pm
Location: Chicago, Illinois, USA
Contact:

Re: Huge simplification

Post by michiguel » Fri Apr 25, 2014 11:45 pm

Lyudmil Tsvetkov wrote:I hope very much you try this, Arjun.

I know what people would say about it:

- it is unorthogonal
- it is wasting resources
- let us move on

But, please take note that specific suggestions are very much orthogonal, non-specific suggestions are those that lack any orthogonality. Actually, the more specific a suggestion is, the more it obeys the orthogonality rule. Specific suggestions avoid randomness, non-specific suggestions, no matter how well tuned, fall easy prey to randomness.

While you are there Arjun, with very nice closed ideas, like giving bonus for storming pawns and some piece types with closed positions, why do not you apply a correct definition for a closed position? What concerns adjusting knights and bishop values in closed positions, the correct definition would be that a position is closed when on at least 3 of the central c,d,e or f files there are blocked pawns. I.e., a structure like white pawns on c3,d4,e5, black pawns on c4,d5,e6. The at least 3 central blocked pawns rule is the minimal requirement for a closed position, but piece values are even better adjusted with more blocked pawns.

A similar rule could be used concerning storms, but there the problem might be bigger, as this would depend also on other factors.

I suggested a while ago a very nice closed idea, improving a bit on Joona Kiiski's closed patch. Very simple: white pawns on c3,d4,e5, black pawns on c4,d5,e6, f7, and black king castled short - then give some 20cps penalty to the short castled black king. Why do not you try this Arjun, just once precisely the way I have suggested. Just this one very simple idea. It will help SF learn for the first time what a closed position really is and how to behave in such positions. SF needs this code, it simply needs it.
That is way too specific, IMHO. A human can dissect the pattern, but the computer cannot deal so easily with the exceptions. In other words, the whole concept is fine (do not castle towards position with negative pawn chains), but it is not simple at all.

Miguel

As I told you, the pawn on f7 is very much necessary for the closed trick to work, you can not do without it.

Please Arjun, listen just once to what real chess knowledge, as specific as possible, tells us.

Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 10:41 am

Hacky rules 2

Post by Lyudmil Tsvetkov » Fri Apr 25, 2014 11:58 pm

Reuven did a great job trying to adjust rook-minors imbalances, unfortunately, after a promising first STC run, the patch failed.

Below 2 more similar SF lost games to convince you once more that this SF weakness really exists, and is too frequent at that.

[pgn][PlyCount "144"]
[MLNrOfMoves "72"]
[MLFlags "000100"]
[Date "2014.04.19"]
[Round "15"]
[White "Gull"]
[Black "SF"]
[Result "1-0"]
[TimeControl "64+0.32"]

1. e4 {book} 1... e6 {book} 2. d4 {book} 2... d5 {book} 3. Nd2 {book} 3... c5
{book} 4. exd5 {book} 4... exd5 {book} 5. Ngf3 {book} 5... Nf6 {book} 6. dxc5
{book} 6... Bxc5 {book} 7. Nb3 {book} 7... Be7 {book} 8. Be2 {book} 8... O-O
{book} 9. O-O {+0.05/18 2.4s} 9... Nc6 {+0.08/19 1.7s} 10. c3 {0.00/18 3.2s}
10... Re8 {-0.01/19 1.8s} 11. Re1 {+0.08/17 0.84s} 11... Ne4 {0.00/21 9.6s} 12.
Bf4 {+0.19/16 3.2s} 12... Bf5 {-0.03/20 9.4s} 13. Be3 {+0.10/15 2.3s} 13... Bg6
{+0.03/18 1.6s} 14. Nbd4 {+0.01/16 2.8s} 14... a6 {+0.09/18 2.3s} 15. Rc1
{0.00/16 3.2s} 15... Bf6 {+0.06/18 1.3s} 16. Bf4 {-0.05/16 3.7s} 16... h6
{+0.18/18 4.3s} 17. Bd3 {-0.02/14 0.89s} 17... Qb6 {+0.37/21 1.5s} 18. Qb3
{0.00/15 0.50s} 18... Qxb3 {+0.06/22 1.3s} 19. Nxb3 {+0.10/16 1.3s} 19... Nxc3
{+0.11/23 0.86s} 20. Bxg6 {+0.11/15 0.81s} 20... Ne2+ {+0.13/23 1.8s} 21. Rxe2
{+0.19/16 0.094s} 21... Rxe2 {+0.13/24 0.86s} 22. Rc2 {+0.13/16 0.73s} 22...
Rxc2 {+0.07/24 0.86s} 23. Bxc2 {+0.13/15 0.000s} 23... Bxb2 {+0.07/23 0.88s} 24.
g3 {+0.21/16 0.64s} 24... Nb4 {+0.19/23 2.9s} 25. Bb1 {+0.26/15 0.69s} 25... Rc8
{+0.25/24 0.84s} 26. h4 {+0.16/18 2.8s} 26... Nc2 {+0.27/21 1.2s} 27. Kf1
{+0.14/17 1.4s} 27... h5 {+0.36/23 1.8s} 28. Ne1 {0.00/18 2.2s} 28... Nxe1
{+0.29/23 1.4s} 29. Kxe1 {+0.03/18 1.2s} 29... g6 {+0.17/24 7.1s} 30. Bd3
{+0.10/18 0.61s} 30... f5 {+0.19/22 1.1s} 31. Bf1 {+0.13/17 0.69s} 31... Kf7
{+0.10/22 1.0s} 32. Be3 {+0.13/19 1.4s} 32... Ke7 {0.00/23 1.0s} 33. Bc5+
{+0.13/18 0.000s} 33... Ke6 {0.00/26 1.3s} 34. Kd2 {+0.12/20 1.8s} 34... Bf6
{0.00/24 0.64s} 35. Bg2 {+0.06/18 2.0s} 35... Bb2 {0.00/28 0.64s} 36. Ke2
{+0.12/18 2.1s} 36... Bc3 {0.00/27 0.73s} 37. Kd3 {+0.12/19 1.4s} 37... Bf6
{0.00/27 0.62s} 38. Bf3 {+0.14/19 1.3s} 38... Be5 {0.00/27 0.95s} 39. Be2
{+0.14/19 1.5s} 39... Kd7 {0.00/23 1.1s} 40. Bd1 {+0.12/20 5.4s} 40... Rc6
{0.00/22 1.1s} 41. Be3 {+0.15/18 0.000s} 41... Rc3+ {0.00/24 0.58s} 42. Ke2
{+0.15/18 0.20s} 42... Kd6 {-0.10/23 1.2s} 43. Nd4 {+0.15/16 0.000s} 43... b5
{-0.26/24 1.5s} 44. Nf3 {+0.23/20 1.1s} 44... Bf6 {-0.33/24 1.2s} 45. Bb3
{+0.31/19 0.47s} 45... Rc8 {-0.26/23 0.73s} 46. Bd2 {+0.36/16 0.47s} 46... Bc3
{-0.33/23 1.1s} 47. Bf4+ {+0.47/17 0.33s} 47... Kc5 {-0.26/24 0.45s} 48. Be3+
{+0.50/18 1.1s} 48... Kd6 {-0.26/26 0.45s} 49. Kd3 {+0.50/17 0.25s} 49... Bb2
{-0.26/26 0.45s} 50. Bd2 {+0.58/17 0.42s} 50... Kc5 {-0.48/20 0.75s} 51. Ne1
{+0.67/15 0.84s} 51... Be5 {-0.48/22 0.44s} 52. Ke3 {+0.74/16 0.42s} 52... Re8
{-0.52/22 0.64s} 53. Nd3+ {+0.76/18 0.34s} 53... Kc6 {-0.58/26 0.42s} 54. Nxe5+
{+0.76/19 0.28s} 54... Rxe5+ {-1.03/26 1.1s} 55. Kd3 {+0.85/25 1.8s} 55... Re4
{-1.03/29 0.39s} 56. f3 {+0.94/22 0.70s} 56... Re6 {-0.96/30 0.41s} 57. Kd4
{+1.18/21 1.1s} 57... Rd6 {-0.86/28 0.64s} 58. Ke5 {+0.98/20 2.4s} 58... Rd8
{-0.86/26 0.52s} 59. Ba5 {+0.98/18 0.000s} 59... Rd6 {-0.86/26 0.38s} 60. Bb4
{+1.43/17 0.000s} 60... Rd8 {-0.86/27 0.38s} 61. Kf6 {+1.43/18 1.0s} 61... Ra8
{-0.86/22 0.78s} 62. Ke6 {+1.43/17 0.000s} 62... Rd8 {-0.86/26 1.7s} 63. Kf7
{+1.43/17 0.000s} 63... Ra8 {-1.04/23 0.80s} 64. Bd1 {+1.27/18 4.0s} 64... a5
{-0.81/20 0.38s} 65. Be1 {+1.27/18 0.33s} 65... b4 {-0.68/21 1.1s} 66. Ba4+
{+1.35/19 1.9s} 66... Kc5 {-0.55/21 0.31s} 67. Kxg6 {+0.97/18 4.5s} 67... Kd4
{-0.49/20 0.23s} 68. Kxh5 {+0.97/17 0.000s} 68... Ke3 {-0.87/20 0.67s} 69. g4
{+0.97/17 0.000s} 69... Ke2 {-0.87/20 0.33s} 70. g5 {+1.05/17 0.12s} 70... Rh8+
{-1.33/21 0.39s} 71. Kg6 {+1.05/6 0.000s} 71... Kxe1 {-1.59/22 0.25s} 72. h5
{+1.29/17 0.25s} 72... Kf2 {White wins by adjudication} 1-0

[PlyCount "131"]
[MLNrOfMoves "65"]
[MLFlags "000100"]
[Date "2014.04.20"]
[Round "180"]
[White "SF"]
[Black "Gull"]
[Result "0-1"]
[TimeControl "64+0.32"]

1. d4 {book} 1... d5 {book} 2. c4 {book} 2... e6 {book} 3. Nc3 {book} 3... c6
{book} 4. cxd5 {book} 4... exd5 {book} 5. Bf4 {book} 5... Nf6 {book} 6. e3
{book} 6... Bf5 {book} 7. Bd3 {book} 7... Bxd3 {book} 8. Qxd3 {book} 8... Bd6
{book} 9. Nge2 {+0.15/23 3.8s} 9... O-O {-0.02/19 2.7s} 10. O-O {+0.10/23 1.1s}
10... Re8 {-0.04/19 3.4s} 11. f3 {+0.13/22 8.9s} 11... Bxf4 {-0.01/18 1.3s} 12.
Nxf4 {+0.11/22 1.0s} 12... Qd6 {0.00/18 1.4s} 13. Rae1 {+0.10/23 5.0s} 13...
Nbd7 {+0.01/16 1.8s} 14. Qd2 {+0.10/22 0.97s} 14... a5 {+0.03/17 3.6s} 15. Nd3
{+0.14/21 2.0s} 15... Re7 {+0.04/17 2.9s} 16. Rc1 {+0.14/22 6.9s} 16... a4
{0.00/17 2.0s} 17. Rfe1 {+0.18/23 1.2s} 17... a3 {0.00/18 2.4s} 18. b3
{+0.24/20 0.89s} 18... h6 {-0.02/18 4.0s} 19. Nf2 {+0.22/20 1.4s} 19... Qb4
{0.00/19 2.4s} 20. Rcd1 {+0.22/20 0.89s} 20... Qa5 {0.00/18 1.5s} 21. Nd3
{+0.25/20 2.5s} 21... Qb6 {0.00/18 2.2s} 22. Rc1 {+0.28/22 0.89s} 22... Ne8
{-0.03/18 4.8s} 23. Na4 {+0.24/21 1.2s} 23... Qb5 {0.00/18 2.8s} 24. Rcd1
{+0.22/22 1.8s} 24... Nc7 {0.00/19 1.9s} 25. g3 {+0.18/23 0.92s} 25... Rae8
{+0.04/18 1.2s} 26. Kg2 {+0.18/22 0.89s} 26... Ne6 {+0.04/19 3.3s} 27. Rc1
{+0.18/22 1.2s} 27... Rd8 {0.00/19 5.5s} 28. Nc3 {+0.18/23 1.5s} 28... Qa6
{0.00/17 0.000s} 29. Ne2 {+0.18/23 1.8s} 29... Rde8 {0.00/19 1.0s} 30. Nef4
{+0.18/24 0.88s} 30... Nc7 {0.00/18 0.44s} 31. Nf2 {+0.18/23 2.4s} 31... Qb6
{0.00/19 1.1s} 32. Nd1 {+0.17/24 4.8s} 32... Nb5 {0.00/16 0.53s} 33. Nc3
{+0.07/22 1.1s} 33... Qa5 {+0.08/18 2.0s} 34. Rc2 {+0.04/24 1.8s} 34... Nd6
{+0.18/16 0.84s} 35. Re2 {+0.09/20 1.0s} 35... g5 {+0.16/17 2.1s} 36. Ncxd5
{+0.10/24 1.5s} 36... Qxd2 {+0.22/16 0.000s} 37. Nxe7+ {+0.10/24 0.69s} 37...
Rxe7 {+0.22/16 0.000s} 38. Rcxd2 {0.00/24 1.6s} 38... gxf4 {+0.23/17 0.47s} 39.
gxf4 {0.00/25 0.64s} 39... f5 {+0.31/17 0.19s} 40. d5 {-0.18/22 1.0s} 40... c5
{+0.32/18 0.70s} 41. e4 {-0.29/22 0.94s} 41... fxe4 {+0.79/15 0.30s} 42. fxe4
{-0.15/24 0.59s} 42... Nxe4 {+0.71/16 0.42s} 43. Rd3 {-0.30/23 0.84s} 43... Rg7+
{+0.71/16 0.063s} 44. Kf3 {-0.24/24 2.4s} 44... Nd6 {+0.71/15 0.000s} 45. b4
{-0.31/24 1.2s} 45... cxb4 {+0.87/17 0.44s} 46. Rb3 {-0.31/25 0.50s} 46... Rg1
{+0.87/16 0.58s} 47. Rxb4 {-0.31/24 0.50s} 47... Rf1+ {+0.95/16 0.56s} 48. Kg2
{-0.36/23 0.94s} 48... Rd1 {+0.95/15 0.000s} 49. Re6 {-0.36/23 0.47s} 49... Rxd5
{+0.95/15 0.000s} 50. Rxh6 {-0.34/21 0.89s} 50... Nc5 {+0.78/17 3.6s} 51. Kf3
{-0.39/22 0.45s} 51... Kg7 {+0.78/16 0.000s} 52. Rh3 {-0.46/21 0.89s} 52... Rd2
{+0.86/16 1.0s} 53. Rg3+ {-0.46/21 0.44s} 53... Kf7 {+1.22/15 0.28s} 54. Rg2
{-0.46/23 0.42s} 54... Rd3+ {+1.30/17 0.41s} 55. Kg4 {-0.73/23 1.2s} 55... Nce4
{+1.22/15 0.000s} 56. Rb6 {-0.75/23 0.75s} 56... Nf6+ {+1.23/17 0.53s} 57. Kh4
{-0.69/23 0.38s} 57... Nd7 {+1.31/18 0.19s} 58. Rb1 {-0.74/18 0.56s} 58... Nf5+
{+1.31/16 0.015s} 59. Kg5 {-0.58/20 0.38s} 59... Rd5 {+1.23/14 0.000s} 60. Rgg1
{-0.77/19 0.70s} 60... b5 {+1.31/14 0.032s} 61. Rgc1 {-1.07/19 1.2s} 61... Nd4+
{+1.31/13 0.031s} 62. Kh4 {-1.09/20 0.47s} 62... Nf6 {+1.31/12 0.000s} 63. Rc7+
{-1.03/21 0.31s} 63... Kg6 {+1.31/11 0.000s} 64. Kh3 {-1.38/20 1.6s} 64... Ne2
{+1.53/12 0.25s} 65. Ra7 {-1.53/18 0.92s} 65... Rd3+ {+2.37/14 0.36s} 66. Kg2
{Black wins by adjudication} 0-1
[/pgn]

[d]2r3k1/1p3pp1/p6p/3p4/1n3B2/1N3NP1/Pb3P1P/1B4K1 w - - 0 26
It is R+ 2 pawns vs 2 minor pieces. SF thinks black is better, Gull rightly judges the other way round.

[d]8/8/p2k1bp1/1p1p1p1p/7P/1Br1BNP1/P3KP2/8 b - - 0 45
In 10 moves time nothing has changed in the imbalance, but here already both engines agree white is better.

[d]r7/8/p1k2Kp1/1p1p1p1p/1B5P/1B3PP1/P7/8 w - - 0 62
White dominates.

[d]6k1/1p1n2r1/3n3p/2pP4/5P2/pP1R1K2/P3R2P/8 w - - 0 45
It is 2 knights vs R+pawn. SF thinks it is almost equal, Gull sees close to a full pawn black edge. This is an enormous difference, and of course, Gull is right.

[d]8/1p3k2/1R1n4/8/4nPK1/p2r4/P5RP/8 b - - 0 56
Same imbalance, but it is clear here black is much better. White is threatened even by mate.

As you see, R-minor imbalances is a major SF weakness. It is extremely frequent, maybe in one in every 10 games SF fails on this. Why attempts to tune eval fail here? I have no clue, probably the imbalance/quadratic table interferes somehow. Or maybe you should tune another related term simultaneously. I really have no clue, there are better experts on this, but what I know for certain is that the problem is real and should be fixable. And, as it is frequent, I think SF should do everything to find a solution.

My humble, very probably not working suggestion:

- start with very small bonus for R over minor, just some 20cps in SF values, this would make some 10cps otherwise. One must be cautious at the beginning. And apply the same small bonus for 2 minors over rook.

- attempt to give R a bit bigger value over N than over B; attempt to give N+B a bit bigger value over R than for 2Ns over R

- probably give different values for 2 minors over R and R over minor, supposedly the first bonus should be bigger.

Etc., etc. I really do not know what should be the solution, but the problem is there and should be fixable. I would not give up until it is fixed.

Comments, suggestions on how to fix the problem appreciated.

Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 10:41 am

Why this does not work?

Post by Lyudmil Tsvetkov » Sat Apr 26, 2014 12:35 am

Well, SF fails too frequently on underestimating the advantage doubled rooks on an open file constitute. I think this is a major eval term and, as it has a visible impact on playing strength, it should be fixed. It is true that attempts to introduce the term have been made, especially by Joerg, but they somehow always fail.

Below 2 games with this SF weakness to convince you the SF problem is real.

[pgn][PlyCount "143"]
[MLNrOfMoves "71"]
[MLFlags "000100"]
[Date "2014.04.19"]
[Round "58"]
[White "SF"]
[Black "Gull"]
[Result "0-1"]
[TimeControl "64+0.32"]

1. e4 {book} 1... e5 {book} 2. Nf3 {book} 2... Nc6 {book} 3. Bc4 {book} 3... Bc5
{book} 4. c3 {book} 4... Nf6 {book} 5. b4 {book} 5... Bb6 {book} 6. d3 {book}
6... d6 {book} 7. O-O {book} 7... O-O {book} 8. Nbd2 {book} 8... Ne7 {book} 9.
a4 {+0.21/21 3.8s} 9... c6 {-0.09/17 2.6s} 10. a5 {+0.22/21 2.4s} 10... Bc7
{-0.09/17 1.4s} 11. Bb3 {+0.07/21 5.1s} 11... d5 {-0.07/17 3.0s} 12. Qc2
{+0.21/21 6.9s} 12... Ng6 {-0.07/16 1.2s} 13. Re1 {+0.16/21 1.4s} 13... Re8
{-0.09/15 0.95s} 14. g3 {+0.16/21 0.98s} 14... Bg4 {+0.27/14 1.2s} 15. c4
{+0.12/21 0.98s} 15... Rc8 {+0.22/16 1.8s} 16. Qa2 {+0.12/20 1.9s} 16... Bd6
{+0.29/14 0.84s} 17. c5 {+0.19/20 1.5s} 17... Bb8 {+0.18/15 1.5s} 18. Bb2
{+0.18/21 0.98s} 18... Re7 {+0.10/17 14s} 19. b5 {+0.22/21 8.2s} 19... h6
{+0.23/14 1.8s} 20. b6 {+0.43/20 1.4s} 20... Kh7 {+0.11/15 2.7s} 21. Bc2
{+0.61/19 2.6s} 21... dxe4 {+0.19/15 0.69s} 22. dxe4 {+0.72/20 1.5s} 22... Rd7
{0.00/16 2.2s} 23. Bc3 {+0.56/21 2.1s} 23... Qe7 {0.00/15 1.1s} 24. Bb4
{+0.54/22 2.1s} 24... a6 {-0.01/16 2.6s} 25. Re3 {+0.55/22 3.0s} 25... Nf8
{-0.11/16 2.5s} 26. Nc4 {+0.53/21 2.0s} 26... Bxf3 {-0.05/17 0.62s} 27. Rxf3
{+0.52/22 4.0s} 27... Ne6 {-0.18/16 1.2s} 28. Re3 {+0.52/22 0.70s} 28... Qd8
{-0.27/15 2.6s} 29. f3 {+0.68/18 1.2s} 29... Qf8 {-0.22/16 1.1s} 30. Bd3
{+0.73/21 3.0s} 30... Rcd8 {-0.32/16 1.8s} 31. Qa3 {+0.69/21 1.3s} 31... Nd4
{-0.28/17 4.7s} 32. Rc1 {+0.65/23 0.95s} 32... Nb5 {-0.28/16 0.000s} 33. Qb3
{+0.58/23 1.9s} 33... Nd4 {-0.20/16 0.33s} 34. Qb1 {+0.58/23 0.59s} 34... h5
{-0.20/14 0.000s} 35. Kh1 {+0.45/19 3.2s} 35... h4 {0.00/16 0.83s} 36. g4
{+0.50/20 1.8s} 36... Kg8 {+0.08/15 0.23s} 37. Be1 {+0.24/19 0.84s} 37... Qxc5
{-0.05/16 0.84s} 38. Bxh4 {+0.54/19 0.66s} 38... Ne6 {-0.06/17 0.84s} 39. Bf1
{+0.51/20 0.70s} 39... Qe7 {-0.07/18 0.98s} 40. Qa1 {+0.50/21 0.45s} 40... Nf4
{-0.01/17 0.83s} 41. Rec3 {+0.54/20 0.45s} 41... Ng6 {-0.09/15 0.95s} 42. Bg5
{+0.54/20 1.2s} 42... Nf4 {-0.07/15 0.31s} 43. R3c2 {+0.54/21 0.42s} 43... Ne6
{-0.12/16 1.4s} 44. Bh4 {+0.32/19 0.64s} 44... g5 {-0.04/16 0.56s} 45. Bg3
{+0.22/18 0.70s} 45... Nd4 {+0.08/15 0.22s} 46. Rc3 {+0.22/19 0.61s} 46... Ne8
{+0.10/16 1.3s} 47. Qb2 {+0.22/19 0.39s} 47... Ng7 {+0.27/15 0.000s} 48. Qf2
{+0.14/19 0.69s} 48... f6 {+0.27/14 0.000s} 49. Ne3 {0.00/19 1.8s} 49... Kf8
{+0.43/16 0.50s} 50. h4 {-0.12/18 0.55s} 50... gxh4 {+0.94/12 0.20s} 51. Bxh4
{-0.17/18 0.81s} 51... Nge6 {+0.79/16 0.84s} 52. Nf5 {-0.48/19 1.3s} 52... Nxf5
{+1.21/15 0.30s} 53. exf5 {-0.53/19 0.48s} 53... Nf4 {+1.11/15 1.2s} 54. Qe1
{-0.58/16 0.67s} 54... e4 {+1.14/14 0.58s} 55. Re3 {-1.10/17 0.41s} 55... Rd2
{+1.08/15 0.44s} 56. Kg1 {-1.08/19 0.33s} 56... Qe5 {+0.66/16 2.1s} 57. Bg3
{-1.13/21 0.31s} 57... Qb2 {+0.74/16 0.19s} 58. Rb1 {-1.05/22 0.17s} 58... Nh3+
{+0.74/16 0.046s} 59. Bxh3 {-1.02/22 0.20s} 59... Bxg3 {+0.66/14 0.000s} 60.
Rxb2 {-1.06/22 0.22s} 60... Bxe1 {+0.66/14 0.000s} 61. Rxd2 {-0.97/23 0.62s}
61... Bxd2 {+0.66/16 0.31s} 62. Rb3 {-1.02/22 0.38s} 62... e3 {+0.74/17 0.078s}
63. Bf1 {-1.05/23 0.33s} 63... Bxa5 {+0.98/18 0.56s} 64. Be2 {-1.10/23 0.17s}
64... Bd2 {+0.87/18 0.38s} 65. Kg2 {-1.13/24 0.22s} 65... Rd4 {+1.03/19 0.78s}
66. Bxa6 {-1.24/21 0.55s} 66... c5 {+1.27/15 0.36s} 67. Be2 {-1.34/21 0.30s}
67... c4 {+1.35/18 0.38s} 68. Ra3 {-1.30/23 0.30s} 68... c3 {+1.33/18 0.19s} 69.
Ra2 {-1.34/22 0.39s} 69... Rb4 {+1.49/19 0.41s} 70. Bd3 {-1.15/24 0.31s} 70...
Rxb6 {+1.52/20 0.70s} 71. Kf1 {-1.59/20 0.33s} 71... Kg7 {+1.52/19 0.000s} 72.
Ke2 {Black wins by adjudication} 0-1

[PlyCount "98"]
[MLNrOfMoves "49"]
[MLFlags "000100"]
[Date "2014.04.20"]
[Round "81"]
[White "Gull"]
[Black "SF"]
[Result "1-0"]
[TimeControl "64+0.32"]

1. g3 {book} 1... e5 {book} 2. Bg2 {book} 2... d5 {book} 3. d3 {book} 3... Nf6
{book} 4. Nf3 {book} 4... Nc6 {book} 5. O-O {book} 5... Be7 {book} 6. c3 {book}
6... a5 {book} 7. Qc2 {book} 7... O-O {book} 8. Nbd2 {book} 8... Nd7 {book} 9.
a4 {-0.37/15 2.4s} 9... Nb6 {+0.21/20 2.5s} 10. e4 {-0.23/18 2.6s} 10... dxe4
{+0.20/22 4.5s} 11. Nxe4 {-0.22/19 2.8s} 11... Bg4 {+0.27/21 1.1s} 12. Be3
{-0.12/17 2.2s} 12... Nd5 {+0.17/23 3.3s} 13. Bc5 {-0.16/16 0.67s} 13... Bxc5
{+0.16/23 1.1s} 14. Nxc5 {-0.19/17 0.94s} 14... b6 {+0.22/23 1.1s} 15. Nb3
{-0.11/17 1.2s} 15... Qf6 {+0.16/23 2.5s} 16. Qe2 {-0.13/18 1.9s} 16... Rad8
{+0.22/22 1.9s} 17. Rfe1 {-0.05/18 1.0s} 17... Rfe8 {+0.15/22 1.5s} 18. Nbd2
{-0.17/17 2.7s} 18... Qe6 {+0.21/20 1.8s} 19. h3 {-0.11/17 2.8s} 19... Bf5
{+0.34/21 1.9s} 20. Rad1 {-0.12/17 1.6s} 20... Qd7 {+0.32/23 4.4s} 21. Kh2
{-0.12/15 0.000s} 21... f6 {+0.32/23 1.0s} 22. Nh4 {-0.09/17 1.6s} 22... Be6
{+0.34/22 3.0s} 23. Nc4 {-0.09/16 0.000s} 23... Qf7 {+0.34/21 1.0s} 24. Nf3
{-0.03/17 6.0s} 24... Kh8 {+0.32/22 1.6s} 25. Na3 {0.00/17 1.9s} 25... Bf5
{+0.22/21 3.9s} 26. d4 {+0.37/17 2.8s} 26... exd4 {-0.11/21 1.5s} 27. Qc4
{+0.37/16 0.000s} 27... Ne5 {-0.01/24 1.8s} 28. Qxd4 {+0.37/15 0.000s} 28... Qf8
{-0.12/25 1.4s} 29. Nxe5 {+0.17/17 3.1s} 29... fxe5 {-0.17/25 3.3s} 30. Qh4
{+0.17/16 0.000s} 30... e4 {-0.28/25 2.0s} 31. g4 {+0.17/16 0.000s} 31... Bg6
{-0.22/24 0.91s} 32. Nc4 {+0.17/16 0.063s} 32... Qf7 {-0.23/21 2.5s} 33. Qg3
{+0.39/15 0.61s} 33... Qe6 {-0.28/20 1.4s} 34. Rd4 {+0.46/15 1.4s} 34... c5
{-0.34/21 2.3s} 35. Rd2 {+0.63/15 0.80s} 35... Kg8 {-0.65/21 2.3s} 36. Red1
{+0.91/17 1.2s} 36... Bf7 {-0.67/22 1.1s} 37. f4 {+1.08/16 1.3s} 37... Kf8
{-0.91/22 3.4s} 38. Ne5 {+1.21/16 0.78s} 38... Nxf4 {-0.88/23 0.91s} 39. Rxd8
{+1.21/15 0.000s} 39... Qxe5 {-1.04/25 0.92s} 40. Rxe8+ {+1.21/16 0.14s} 40...
Kxe8 {-1.29/25 1.1s} 41. Re1 {+1.21/15 0.000s} 41... Bd5 {-1.36/26 1.1s} 42. g5
{+1.21/15 0.000s} 42... Ke7 {-1.48/26 2.2s} 43. c4 {+1.30/17 0.39s} 43... Ba8
{-1.48/27 1.7s} 44. Rf1 {+1.51/18 0.61s} 44... Nd3 {-1.48/27 0.50s} 45. b3
{+1.50/19 1.4s} 45... Ke6 {-1.48/28 0.52s} 46. Qxe5+ {+1.66/20 1.2s} 46... Nxe5
{-1.56/28 1.7s} 47. h4 {+1.82/20 1.1s} 47... Bc6 {-1.48/29 1.4s} 48. Kg3
{+1.75/18 0.33s} 48... Nf3 {-2.05/28 2.9s} 49. Bxf3 {+1.85/21 0.62s} 49... exf3
{White wins by adjudication} 1-0
[/pgn]

[d]1b1r1q2/1p1r1ppk/pPp2n1p/PnP1p3/1BN1P3/1Q1BRPP1/7P/2R3K1 b - - 0 33
SF sees more than half a pawn white advantage, Gull thinks it is almost equal. The main distinction is, of course, the black doubled rooks on the d file, they are so powerful.

[d]1b1r2k1/1p1rqpp1/pPp1nn2/P3p3/2N1P1PB/4RP2/7P/Q1R2B1K b - - 0 40
Same eval here. The doubled black rooks dominate the position: all d1,d2,d3 squares along the d file are inaccessible for the white pieces.

[d]1b1r1k2/1p1rq3/pPp2p2/P3pP2/5nPB/2R2P2/8/2R1QB1K b - - 0 54
Only now SF starts seeing white is losing. Please note again what domination means: d1,d2,d3 squares all are inaccessible for white pieces, and those are very important squares into the own camp.

[d]3rr1k1/6pp/1p2q1b1/p1pn4/P1N1p1P1/2P3QP/1P1R1PBK/3R4 b - - 0 36
The main distinction of the position are the doubled white rooks along the d file. SF agrees white has the edge here, but still sees only some 60cps. Gull, on the other hand, thinks white is better a full pawn. Obviously, it takes into consideration the doubled rooks. After 37.f4 is played, SF very soon understands white has a decisive advantage. The doubled rooks help all types of tactical skirmishes.

As you see, SF really has a problem with underestimating the advantage doubled rooks on an open file constitute. And this is a major, very important term. If it does not work directly, probably it should be tuned simultaneously with some other terms.

My suggestion to solve the problem is the following:

- start with very low bonus for doubled rooks on open file, maybe just some 5-10cps SF values, so that redundancies have a smaller negative impact.

- as this is most frequent failure, attempt to give the bonus just for central d and e files

- try to tune simultaneously with other related eval terms, even change the basic rook value in an attempt to tune doubled rooks

- tentatively try to give bonus for any doubled rooks along a file, no matter if that file is open, semiopen or otherwise. This also has its meaning.

Very probably none of the above will work, but still it is worth trying.

Anyone having a good idea why trying to implement doubled rooks on an open file, a very major term, fails in SF?

Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 10:41 am

Re: Huge simplification

Post by Lyudmil Tsvetkov » Sat Apr 26, 2014 1:42 am

Below 2 positions.

[d]6k1/8/8/1P6/1B1P4/3N2P1/6B1/6K1 w - - 0 1
3 minors behind any pawn. What is so good about this constellation? The pawn is:

1. vulnerable in the usual case, as it is not defended
2. the minors are attackable from the side

[d]6k1/8/8/1P6/PB1P4/2PN2P1/5PBP/6K1 w - - 0 1
Same position, but already the minors are behind chain pawns. I think you recognize the advantages of this second constellation:

1. The chain pawns are not vulnerable, as they are defended
2. The minors are more difficult to attack from the side, as the pawn supporting the chain pawn protects them sufficiently well

But really, do not you recognize the second constellation is the much better one and that minor behind a chain pawn is the real chess term, based on sound chess knowledge, that should be implemented?

Lyudmil Tsvetkov
Posts: 6052
Joined: Tue Jun 12, 2012 10:41 am

Re: Huge simplification

Post by Lyudmil Tsvetkov » Sat Apr 26, 2014 2:09 am

And the same goes true about implementation of closed positions.

[d]6k1/8/4p3/3pP3/3P4/8/8/6K1 w - - 0 1
With this pawn constellation, give penalty for the short-castled black king. Well, it makes some sense, as the chain is pointed towards the enemy black king, however what if:

1. there is a black pawn on f5. In this case the position on the king side is already sufficiently closed for the black king to bother
2. black has good counterplay on the queen side, in this case the pawn structure is already not that efficient

The conclusion would be that this is not a real closed position that white could frequently enough use to its advantage.

[d]6k1/5p2/4p3/3pP3/2pP4/2P5/8/6K1 w - - 0 1
Adding one more file of blocked pawns along the c file, plus an f7 pawn. Well, this is already a real closed position. The advantages of this implementation over the previous one:

1. the f7 black pawn ensures that black still has not played f5, this pawn is vulnerable, and white could use this situation to organize an efficient king side attack

2. the further pair of blocked pawns on the c file ensures that, even if black has some counterplay on the queen side, it will develop much less rapidly, as a larger portion of the board is blocked. This gives white sufficient time to organize king side attack.

Well, this is really a closed position, a closed position engines should learn to play more satisfactorily.

[d]6k1/6p1/5p2/4pP2/3pP3/3P4/8/6K1 w - - 0 1
And another closed position with the same characteristics, only shifted one file to the right. Those, with the 2 mirror black cases, are the 2 main closed position types. It is enough to code just those 2 types so that an engine has sufficient knowledge of closed positions. The second posted position from black's point of view is actually the KID itself.

[d]6k1/8/3p4/3Pp3/4Pp2/5P2/6P1/6K1 w - - 0 1

But of course, the KID is everywhere, you can enter KID structures from a very wide range of positions. And also, there are many other features and eval terms associated with KID structures, but the above simple rule is the most necessary and basic rule defining closed game with attacking opportunities for one of the sides. (to be distinguished from an entirely blocked position, or a fortress, which only ensures a draw, but gives no real winning chances for one of the sides, as in this case)

Post Reply