Ways to avoid "Draw Death" in Computer Chess

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Ways to avoid "Draw Death" in Computer Chess

Post by Guenther »

cdani wrote:
Guenther wrote: IIRC that was only your first attempt, which was not truly random?
That should be the one:
http://www.andscacs.com/randscacs089025.zip
Ah! I didn't remember it. Well, the former was random, but not at depth 1 if I remember well. The new one you point also worked at depth 1. And also was stronger.
BTW, as Lucas tested in 10% jumps what would be the right settings.
I am asking because the max value is already 10000.
If 10000 == 100% random is 9000== 90%?

Code: Select all

option name Random type spin default 1 min 1 max 10000
I played a match at max random vs. Brutus Rnd at fast tc of 0:30s/40 and the result was +6 -6 =88.
Actually I suspected even more draws and I need to look closer at the games.
At first sight it looks both underpromote more often than expected, but I could be wrong...
Also I have seen some mates which look 'very lucky', but to see if those could be explained
statistically I need to check how often mate in one was not played, which is easy for Andscacs,
but not for BrutusRnd, because it shows the same max score already for mate in 1+x (x = 1-5 something)

Two examples for both sides mating which look 'lucky',
because there are at least 30! possibilities not to mate and
in the first example RAndscas also makes 3 moves in a row with the same
promoted piece.
(Note that both miss a mate in 1 slighly before the mate - coincidence?)

Code: Select all

[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2017.07.28"]
[Round "3"]
[White "Brutus_RND_01"]
[Black "AndRand_08902-64"]
[Result "0-1"]
[TimeControl "40/30"]
[Number "3"]
[Annotator "4. +0.11   4... +0.00"]

1. Nf3 d5 2. g3 Bg4 3. Bg2 Nd7 4. d3 {+0.11/11 0.6} Qb8 {+0.00/13 0.6} 5.
c3 {+0.30/10 0.6} Bh5 {-0.14/13 0.6} 6. Bf4 {+0.27/9 0.6} g5 {-0.50/14 0.5}
7. c4 {+1.38/10 0.6} c6 {+2.42/12 0.6} 8. Qb3 {+6.94/10 0.6} c5
{+2.63/10 0.8} 9. Rg1 {+7.16/11 0.6} Ngf6 {+2.69/13 0.5} 10. d4
{+6.86/11 0.6} h6 {+3.38/12 0.5} 11. Qe3 {+6.58/10 0.6} b6 {+3.05/11 0.8}
12. Nfd2 {+5.88/9 0.6} Bg6 {+3.42/11 0.4} 13. Rf1 {+6.33/10 0.6} Bh7
{+2.96/13 0.9} 14. Bf3 {+6.47/10 0.6} Bg8 {+3.10/13 0.9} 15. Qc3
{+6.92/11 0.6} e6 {+2.26/13 0.8} 16. Rh1 {+6.00/11 0.7} gxf4 {+2.92/12 0.6}
17. Kf1 {-2.19/9 0.7} Nh5 {+4.02/10 0.8} 18. Rg1 {-0.40/9 0.7} Be7
{+3.76/12 0.4} 19. Ke1 {-0.57/8 0.7} Rh7 {+3.64/12 0.9} 20. Qc1
{-0.38/8 0.7} Qe5 {+3.22/14 0.7} 21. e3 {+7.49/11 0.7} Qe4 {+5.30/11 0.7}
22. b4 {+6.06/9 0.7} Rg7 {+2.92/10 0.8} 23. Rh1 {+4.92/9 0.7} Bg5
{+3.82/12 0.5} 24. Rf1 {+4.78/10 0.7} fxg3 {+3.13/10 0.9} 25. Rg1
{+3.15/9 0.7} Nhf6 {+49.26/12 0.9} 26. Nf1 {+1.30/8 0.7} Nb8 {+9.23/10 0.5}
27. fxg3 {+0.79/9 0.7} Qxe3+ {+8.47/12 0.9} 28. Qxe3 {+3.25/10 0.7} Rg6
{+1.06/12 0.5} 29. Bh1 {+5.17/10 0.8} cxd4 {+1.89/12 0.6} 30. Ke2
{+4.54/10 0.8} Ng4 {+5.51/12 0.9} 31. Qa3 {+3.36/10 0.8} Na6 {-2.86/11 1.0}
32. c5 {+6.36/9 0.8} Bd2 {-2.86/12 1.0} 33. Kd3 {+7.62/9 0.8} Nxh2
{-2.49/13 0.7} 34. Nfxd2 {+7.34/9 0.8} e5 {-6.71/13 1.0} 35. Nf3
{+9.71/10 0.8} f5 {-5.82/11 1.0} 36. Qa5 {+10.94/10 0.8} Nc7 {+2.16/13 0.6}
37. Qa6 {+5.54/11 0.9} Bf7 {+3.59/12 0.6} 38. Qxa7 {+5.28/10 0.9} bxc5
{+2.91/13 1.0} 39. Rc1 {+8.26/10 0.9} e4+ {+4.55/12 1.0} 40. Kd2
{-2.61/12 1.0} Ke7 {+7.23/13 1.4} 41. Qb7 {+13.06/12 1.4} Rh8 {-7.68/9 0.7}
42. Qc8 {+14.32/11 1.4} cxb4 {+6.18/12 0.5} 43. Qa6 {+23.72/7} Rb8
{+7.23/14 0.7} 44. Rd1 {+13.63/11 0.6} Kd7 {+8.22/12 0.7} 45. Kc2
{+10.70/12 0.6} h5 {+5.26/12 0.4} 46. Qa7 {+9.62/11 0.6} Be6 {-6.14/10 0.7}
47. Ne5+ {+11.19/11 0.6} Kd6 {-12.64/11 0.8} 48. Rc1 {+12.18/9 0.6} Rg4
{-5.81/12 0.7} 49. Nc3 {+10.96/10 0.6} Rg6 {-6.26/11 0.8} 50. Kb3
{+11.90/9 0.6} Rg7 {-7.58/12 0.7} 51. Ng6 {+11.58/10 0.6} Rf7
{-4.15/11 0.4} 52. Qxb8 {+16.38/10 0.7} Rf8 {-13.31/14 0.8} 53. Nxd5
{+17.67/2} Bd7 {+3.02/13 0.5} 54. g4 {+160.00/3} Rf6 {-2.74/13 0.5} 55.
Rcb1 {+160.00/3} hxg4 {-18.88/10 0.3} 56. Rf1 {+23.46/5} Re6
{-20.84/13 0.8} 57. Bxe4 {+15.19/2} Rxe4 {-99.84/12 0.8} 58. Rfb1
{+19.16/7 0.2} Bb5 {-13.52/10 0.2} 59. Qd8+ {+18.62/8 0.8} Bd7
{-20.46/13 0.8} 60. Kb2 {+19.85/10 0.8} Re7 {-7.22/17 0.8} 61. Ndf4
{+20.95/7 0.1} Re5 {-16.07/13 0.9} 62. Ng2 {+21.90/8 0.2} Kc5
{-11.30/13 0.9} 63. Rf1 {+22.52/9 0.9} Na6 {-13.91/13 0.8} 64. N2f4
{+23.22/9 0.9} Re1 {-17.26/11 0.9} 65. Raxe1 {+18.84/6 0.2} Be6
{-99.84/11 0.9} 66. Qf8+ {+160.00/5} Kb5 {-99.88/13 0.9} 67. Qa8
{+21.26/7 0.1} b3 {-99.88/13 0.9} 68. Rb1 {+22.47/5} Kc5 {-16.87/9 0.9} 69.
Nh4 {+160.00/6} d3 {-18.76/10 0.9} 70. Qb7 {+22.58/6 0.1} Bg8
{-24.17/11 0.9} 71. Nhg6 {+160.00/5} Kd6 {-25.03/10 0.9} 72. Qb6+
{+22.48/7 0.2} Kd7 {-99.92/4} 73. Ne5+ {+21.77/6 0.1} Ke8 {-99.94/24 1.0}
74. Qd8+ {+160.00/6} Kxd8 {-4.55/4} 75. axb3 {+5.72/11 1.4} d2
{-3.18/18 1.2} 76. Nf7+ {+7.67/13 1.4} Bxf7 {-0.88/17 0.8} 77. Kc2
{+1.82/12 1.4} Bg6 {-0.11/16 0.9} 78. Rbc1 {+4.93/12 1.4} Bf7
{+2.13/16 0.7} 79. Kc3 {+1.27/14 1.4} Nf3 {+2.38/18 0.9} 80. Nh5
{+1.59/12 1.4} dxc1=Q+ {+6.14/14 1.4} 81. Kd3 {-6.23/15 1.4} Qd1+
{+99.99/1} 82. Ke3 {-5.66/14 1.4} Qd2# {+99.99/1}
{Xboard adjudication: Checkmate} 0-1

[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2017.07.28"]
[Round "47"]
[White "Brutus_RND_01"]
[Black "AndRand_08902-64"]
[Result "1-0"]
[TimeControl "40/30"]
[Number "47"]
[Annotator "4. +0.08   4... +0.60"]

1. c4 e5 2. Nf3 Nc6 3. Nc3 f5 4. Qa4 {+0.08/11 0.6} d5 {+0.60/14 0.8} 5. h3
{+3.53/12 0.6} Bd6 {+0.60/12 0.5} 6. g3 {+2.90/11 0.6} h5 {+0.67/12 0.4} 7.
c5 {+2.78/11 0.6} Kd7 {-0.20/12 0.4} 8. g4 {+3.78/9 0.6} h4 {-0.18/11 0.5}
9. Qd4 {+3.75/9 0.6} a5 {+8.83/12 0.9} 10. Bg2 {+2.13/10 0.6} g6
{+8.39/11 0.5} 11. Nxe5+ {+2.62/9 0.6} Ke8 {+1.51/12 0.5} 12. Qd3
{+6.66/10 0.6} Ke7 {+1.83/12 0.7} 13. gxf5 {+7.76/10 0.7} Kf6
{-1.23/13 0.9} 14. O-O {+8.39/9 0.7} Qf8 {-0.17/12 0.8} 15. Qe4
{+8.92/10 0.7} b5 {+2.34/11 0.9} 16. cxb6 {+12.63/11 0.7} cxb6
{+1.89/14 0.9} 17. Qf4 {+12.65/11 0.7} Qe7 {-1.18/11 0.5} 18. Nb1
{+9.82/10 0.7} Be6 {+0.90/11 0.6} 19. Nc4 {+7.69/10 0.7} Bb4 {+6.18/12 0.8}
20. d4 {+7.00/10 0.7} Bc8 {-4.67/14 0.7} 21. Qg4 {+7.30/9 0.7} Qa7
{-2.10/12 0.9} 22. Nd6 {+11.00/10 0.7} Qb8 {-4.81/14 0.8} 23. Ne4+
{+160.00/4} Kf7 {-7.62/12 0.8} 24. Qxh4 {+6.24/10 0.7} Nd8 {+7.09/13 0.7}
25. Nbc3 {+12.31/9 0.7} Qc7 {+5.54/12 0.7} 26. Rb1 {+14.82/9 0.8} Nc6
{+4.03/12 0.9} 27. Qd8 {+13.29/9 0.8} Nxd8 {+6.02/11 0.5} 28. b3
{-3.29/9 0.8} Qxc3 {+9.10/13 0.5} 29. fxg6+ {-0.35/11 0.8} Ke6
{+4.11/13 0.7} 30. Bh1 {-2.01/11 0.8} Qd2 {+12.04/13 1.0} 31. Nd6
{-0.13/10 0.8} Ba6 {+11.73/14 0.5} 32. Be4 {-2.88/10 0.8} Qxd4
{+13.91/13 0.8} 33. Bb2 {-9.08/11 0.8} Bxe2 {+10.30/12 0.7} 34. Bxd4
{-4.71/10 0.8} Rxh3 {+4.56/13 0.6} 35. Nc8 {-1.62/12 0.9} Bh5
{+9.97/12 0.8} 36. Bxb6 {-3.20/10 0.9} Nc6 {+7.13/15 0.7} 37. Be3
{-2.59/10 0.9} Nb8 {+8.90/17 1.5} 38. Nb6 {+0.43/11 0.9} Nf6 {+3.12/15 1.0}
39. Rbe1 {+1.30/11 1.0} Ra7 {+4.30/16 0.8} 40. f4 {+0.47/11 1.0} Rd7
{+3.70/15 1.3} 41. Bd3 {+2.45/11 1.4} Rh1+ {+1.11/13 0.7} 42. Kxh1
{+5.21/12 1.4} Re7 {-5.18/13 0.5} 43. Bc1+ {+9.60/11 1.4} Kd6
{-5.85/16 1.0} 44. Bf5 {+7.87/11 0.6} Re4 {-0.43/15 1.0} 45. Nc8+
{+5.40/9 0.6} Kc5 {-5.57/15 0.6} 46. Be6 {+5.94/10 0.6} Re2 {+0.01/15 0.9}
47. a4 {+5.80/11 0.6} Nbd7 {+1.15/13 0.6} 48. Bg8 {+5.77/11 0.6} Re5
{+2.43/13 0.5} 49. Ba3 {+6.89/11 0.6} Bf3+ {-0.82/14 0.9} 50. Kg1
{+2.02/11 0.6} Bh5 {-1.95/16 0.5} 51. Ra1 {+8.56/11 0.6} Re3 {-3.73/13 0.9}
52. Kf2 {+3.72/10 0.6} Ng4+ {-0.01/16 0.5} 53. Kg1 {+1.95/10 0.6} Bxg6
{-0.01/19 0.7} 54. Rfc1+ {+4.08/10 0.7} Bc2 {-1.14/15 0.9} 55. Bxb4+
{+6.76/10 0.6} Kd4 {-4.39/11 0.2} 56. Rd1+ {+6.87/11 0.6} Bd3
{-3.98/14 0.5} 57. Nd6 {+5.07/11 0.7} Nb6 {-1.47/17 0.6} 58. Nc4
{+10.90/11 0.7} Nxc4 {-1.06/15 1.0} 59. Ra2 {+3.44/11 0.7} Re2
{+1.47/15 0.5} 60. Rc2 {+8.09/11 0.7} Nge5 {+3.02/13 0.6} 61. Rdc1
{+8.83/12 0.7} Nd7 {+99.89/16 0.6} 62. Rxe2 {+5.91/12 0.7} Nb8
{-4.18/15 1.0} 63. Ree1 {+11.77/12 0.7} Nb2 {-7.32/14 1.0} 64. Re8
{+160.00/2} Bc4 {-8.65/15 0.9} 65. Bf8 {+16.66/11 0.7} Bd3 {-10.82/14 0.9}
66. Bg7# {+160.00/2}
{Xboard adjudication: Checkmate} 1-0
[pgn][Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2017.07.28"]
[Round "3"]
[White "Brutus_RND_01"]
[Black "AndRand_08902-64"]
[Result "0-1"]
[TimeControl "40/30"]
[Number "3"]
[Annotator "4. +0.11 4... +0.00"]

1. Nf3 d5 2. g3 Bg4 3. Bg2 Nd7 4. d3 {+0.11/11 0.6} Qb8 {+0.00/13 0.6} 5.
c3 {+0.30/10 0.6} Bh5 {-0.14/13 0.6} 6. Bf4 {+0.27/9 0.6} g5 {-0.50/14 0.5}
7. c4 {+1.38/10 0.6} c6 {+2.42/12 0.6} 8. Qb3 {+6.94/10 0.6} c5
{+2.63/10 0.8} 9. Rg1 {+7.16/11 0.6} Ngf6 {+2.69/13 0.5} 10. d4
{+6.86/11 0.6} h6 {+3.38/12 0.5} 11. Qe3 {+6.58/10 0.6} b6 {+3.05/11 0.8}
12. Nfd2 {+5.88/9 0.6} Bg6 {+3.42/11 0.4} 13. Rf1 {+6.33/10 0.6} Bh7
{+2.96/13 0.9} 14. Bf3 {+6.47/10 0.6} Bg8 {+3.10/13 0.9} 15. Qc3
{+6.92/11 0.6} e6 {+2.26/13 0.8} 16. Rh1 {+6.00/11 0.7} gxf4 {+2.92/12 0.6}
17. Kf1 {-2.19/9 0.7} Nh5 {+4.02/10 0.8} 18. Rg1 {-0.40/9 0.7} Be7
{+3.76/12 0.4} 19. Ke1 {-0.57/8 0.7} Rh7 {+3.64/12 0.9} 20. Qc1
{-0.38/8 0.7} Qe5 {+3.22/14 0.7} 21. e3 {+7.49/11 0.7} Qe4 {+5.30/11 0.7}
22. b4 {+6.06/9 0.7} Rg7 {+2.92/10 0.8} 23. Rh1 {+4.92/9 0.7} Bg5
{+3.82/12 0.5} 24. Rf1 {+4.78/10 0.7} fxg3 {+3.13/10 0.9} 25. Rg1
{+3.15/9 0.7} Nhf6 {+49.26/12 0.9} 26. Nf1 {+1.30/8 0.7} Nb8 {+9.23/10 0.5}
27. fxg3 {+0.79/9 0.7} Qxe3+ {+8.47/12 0.9} 28. Qxe3 {+3.25/10 0.7} Rg6
{+1.06/12 0.5} 29. Bh1 {+5.17/10 0.8} cxd4 {+1.89/12 0.6} 30. Ke2
{+4.54/10 0.8} Ng4 {+5.51/12 0.9} 31. Qa3 {+3.36/10 0.8} Na6 {-2.86/11 1.0}
32. c5 {+6.36/9 0.8} Bd2 {-2.86/12 1.0} 33. Kd3 {+7.62/9 0.8} Nxh2
{-2.49/13 0.7} 34. Nfxd2 {+7.34/9 0.8} e5 {-6.71/13 1.0} 35. Nf3
{+9.71/10 0.8} f5 {-5.82/11 1.0} 36. Qa5 {+10.94/10 0.8} Nc7 {+2.16/13 0.6}
37. Qa6 {+5.54/11 0.9} Bf7 {+3.59/12 0.6} 38. Qxa7 {+5.28/10 0.9} bxc5
{+2.91/13 1.0} 39. Rc1 {+8.26/10 0.9} e4+ {+4.55/12 1.0} 40. Kd2
{-2.61/12 1.0} Ke7 {+7.23/13 1.4} 41. Qb7 {+13.06/12 1.4} Rh8 {-7.68/9 0.7}
42. Qc8 {+14.32/11 1.4} cxb4 {+6.18/12 0.5} 43. Qa6 {+23.72/7} Rb8
{+7.23/14 0.7} 44. Rd1 {+13.63/11 0.6} Kd7 {+8.22/12 0.7} 45. Kc2
{+10.70/12 0.6} h5 {+5.26/12 0.4} 46. Qa7 {+9.62/11 0.6} Be6 {-6.14/10 0.7}
47. Ne5+ {+11.19/11 0.6} Kd6 {-12.64/11 0.8} 48. Rc1 {+12.18/9 0.6} Rg4
{-5.81/12 0.7} 49. Nc3 {+10.96/10 0.6} Rg6 {-6.26/11 0.8} 50. Kb3
{+11.90/9 0.6} Rg7 {-7.58/12 0.7} 51. Ng6 {+11.58/10 0.6} Rf7
{-4.15/11 0.4} 52. Qxb8 {+16.38/10 0.7} Rf8 {-13.31/14 0.8} 53. Nxd5
{+17.67/2} Bd7 {+3.02/13 0.5} 54. g4 {+160.00/3} Rf6 {-2.74/13 0.5} 55.
Rcb1 {+160.00/3} hxg4 {-18.88/10 0.3} 56. Rf1 {+23.46/5} Re6
{-20.84/13 0.8} 57. Bxe4 {+15.19/2} Rxe4 {-99.84/12 0.8} 58. Rfb1
{+19.16/7 0.2} Bb5 {-13.52/10 0.2} 59. Qd8+ {+18.62/8 0.8} Bd7
{-20.46/13 0.8} 60. Kb2 {+19.85/10 0.8} Re7 {-7.22/17 0.8} 61. Ndf4
{+20.95/7 0.1} Re5 {-16.07/13 0.9} 62. Ng2 {+21.90/8 0.2} Kc5
{-11.30/13 0.9} 63. Rf1 {+22.52/9 0.9} Na6 {-13.91/13 0.8} 64. N2f4
{+23.22/9 0.9} Re1 {-17.26/11 0.9} 65. Raxe1 {+18.84/6 0.2} Be6
{-99.84/11 0.9} 66. Qf8+ {+160.00/5} Kb5 {-99.88/13 0.9} 67. Qa8
{+21.26/7 0.1} b3 {-99.88/13 0.9} 68. Rb1 {+22.47/5} Kc5 {-16.87/9 0.9} 69.
Nh4 {+160.00/6} d3 {-18.76/10 0.9} 70. Qb7 {+22.58/6 0.1} Bg8
{-24.17/11 0.9} 71. Nhg6 {+160.00/5} Kd6 {-25.03/10 0.9} 72. Qb6+
{+22.48/7 0.2} Kd7 {-99.92/4} 73. Ne5+ {+21.77/6 0.1} Ke8 {-99.94/24 1.0}
74. Qd8+ {+160.00/6} Kxd8 {-4.55/4} 75. axb3 {+5.72/11 1.4} d2
{-3.18/18 1.2} 76. Nf7+ {+7.67/13 1.4} Bxf7 {-0.88/17 0.8} 77. Kc2
{+1.82/12 1.4} Bg6 {-0.11/16 0.9} 78. Rbc1 {+4.93/12 1.4} Bf7
{+2.13/16 0.7} 79. Kc3 {+1.27/14 1.4} Nf3 {+2.38/18 0.9} 80. Nh5
{+1.59/12 1.4} dxc1=Q+ {+6.14/14 1.4} 81. Kd3 {-6.23/15 1.4} Qd1+
{+99.99/1} 82. Ke3 {-5.66/14 1.4} Qd2# {+99.99/1}
{Xboard adjudication: Checkmate} 0-1

[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2017.07.28"]
[Round "47"]
[White "Brutus_RND_01"]
[Black "AndRand_08902-64"]
[Result "1-0"]
[TimeControl "40/30"]
[Number "47"]
[Annotator "4. +0.08 4... +0.60"]

1. c4 e5 2. Nf3 Nc6 3. Nc3 f5 4. Qa4 {+0.08/11 0.6} d5 {+0.60/14 0.8} 5. h3
{+3.53/12 0.6} Bd6 {+0.60/12 0.5} 6. g3 {+2.90/11 0.6} h5 {+0.67/12 0.4} 7.
c5 {+2.78/11 0.6} Kd7 {-0.20/12 0.4} 8. g4 {+3.78/9 0.6} h4 {-0.18/11 0.5}
9. Qd4 {+3.75/9 0.6} a5 {+8.83/12 0.9} 10. Bg2 {+2.13/10 0.6} g6
{+8.39/11 0.5} 11. Nxe5+ {+2.62/9 0.6} Ke8 {+1.51/12 0.5} 12. Qd3
{+6.66/10 0.6} Ke7 {+1.83/12 0.7} 13. gxf5 {+7.76/10 0.7} Kf6
{-1.23/13 0.9} 14. O-O {+8.39/9 0.7} Qf8 {-0.17/12 0.8} 15. Qe4
{+8.92/10 0.7} b5 {+2.34/11 0.9} 16. cxb6 {+12.63/11 0.7} cxb6
{+1.89/14 0.9} 17. Qf4 {+12.65/11 0.7} Qe7 {-1.18/11 0.5} 18. Nb1
{+9.82/10 0.7} Be6 {+0.90/11 0.6} 19. Nc4 {+7.69/10 0.7} Bb4 {+6.18/12 0.8}
20. d4 {+7.00/10 0.7} Bc8 {-4.67/14 0.7} 21. Qg4 {+7.30/9 0.7} Qa7
{-2.10/12 0.9} 22. Nd6 {+11.00/10 0.7} Qb8 {-4.81/14 0.8} 23. Ne4+
{+160.00/4} Kf7 {-7.62/12 0.8} 24. Qxh4 {+6.24/10 0.7} Nd8 {+7.09/13 0.7}
25. Nbc3 {+12.31/9 0.7} Qc7 {+5.54/12 0.7} 26. Rb1 {+14.82/9 0.8} Nc6
{+4.03/12 0.9} 27. Qd8 {+13.29/9 0.8} Nxd8 {+6.02/11 0.5} 28. b3
{-3.29/9 0.8} Qxc3 {+9.10/13 0.5} 29. fxg6+ {-0.35/11 0.8} Ke6
{+4.11/13 0.7} 30. Bh1 {-2.01/11 0.8} Qd2 {+12.04/13 1.0} 31. Nd6
{-0.13/10 0.8} Ba6 {+11.73/14 0.5} 32. Be4 {-2.88/10 0.8} Qxd4
{+13.91/13 0.8} 33. Bb2 {-9.08/11 0.8} Bxe2 {+10.30/12 0.7} 34. Bxd4
{-4.71/10 0.8} Rxh3 {+4.56/13 0.6} 35. Nc8 {-1.62/12 0.9} Bh5
{+9.97/12 0.8} 36. Bxb6 {-3.20/10 0.9} Nc6 {+7.13/15 0.7} 37. Be3
{-2.59/10 0.9} Nb8 {+8.90/17 1.5} 38. Nb6 {+0.43/11 0.9} Nf6 {+3.12/15 1.0}
39. Rbe1 {+1.30/11 1.0} Ra7 {+4.30/16 0.8} 40. f4 {+0.47/11 1.0} Rd7
{+3.70/15 1.3} 41. Bd3 {+2.45/11 1.4} Rh1+ {+1.11/13 0.7} 42. Kxh1
{+5.21/12 1.4} Re7 {-5.18/13 0.5} 43. Bc1+ {+9.60/11 1.4} Kd6
{-5.85/16 1.0} 44. Bf5 {+7.87/11 0.6} Re4 {-0.43/15 1.0} 45. Nc8+
{+5.40/9 0.6} Kc5 {-5.57/15 0.6} 46. Be6 {+5.94/10 0.6} Re2 {+0.01/15 0.9}
47. a4 {+5.80/11 0.6} Nbd7 {+1.15/13 0.6} 48. Bg8 {+5.77/11 0.6} Re5
{+2.43/13 0.5} 49. Ba3 {+6.89/11 0.6} Bf3+ {-0.82/14 0.9} 50. Kg1
{+2.02/11 0.6} Bh5 {-1.95/16 0.5} 51. Ra1 {+8.56/11 0.6} Re3 {-3.73/13 0.9}
52. Kf2 {+3.72/10 0.6} Ng4+ {-0.01/16 0.5} 53. Kg1 {+1.95/10 0.6} Bxg6
{-0.01/19 0.7} 54. Rfc1+ {+4.08/10 0.7} Bc2 {-1.14/15 0.9} 55. Bxb4+
{+6.76/10 0.6} Kd4 {-4.39/11 0.2} 56. Rd1+ {+6.87/11 0.6} Bd3
{-3.98/14 0.5} 57. Nd6 {+5.07/11 0.7} Nb6 {-1.47/17 0.6} 58. Nc4
{+10.90/11 0.7} Nxc4 {-1.06/15 1.0} 59. Ra2 {+3.44/11 0.7} Re2
{+1.47/15 0.5} 60. Rc2 {+8.09/11 0.7} Nge5 {+3.02/13 0.6} 61. Rdc1
{+8.83/12 0.7} Nd7 {+99.89/16 0.6} 62. Rxe2 {+5.91/12 0.7} Nb8
{-4.18/15 1.0} 63. Ree1 {+11.77/12 0.7} Nb2 {-7.32/14 1.0} 64. Re8
{+160.00/2} Bc4 {-8.65/15 0.9} 65. Bf8 {+16.66/11 0.7} Bd3 {-10.82/14 0.9}
66. Bg7# {+160.00/2}
{Xboard adjudication: Checkmate} 1-0[/pgn]
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Ways to avoid "Draw Death" in Computer Chess

Post by cdani »

Guenther wrote: If 10000 == 100% random is 9000== 90%?
Yes.

I'm running a round-robin between the following engines (ccrl 4 minutes rating shown):

Abrok 5.0 - 2435
Alaric 707 - 2664
AnMon 5.75 - 2539
Clueless1.4 - 1902
Fire 5 x64 -3249
Rival 1.18 - 1947
Sungorus1.4 - 2307
ands_norand (89025) - 3169
ands_rand10
ands_rand20
ands_rand50
ands_rand90
ands_rand100

at 60' + 0.1.
Later or tomorrow I will publish the results and the games. I will do a few 1000'ths of games.
It's not comparable in time control to CCRL, but it will give a nice idea of the ratings.

Code: Select all

cutechess-cli -engine cmd=randscacs089025.exe proto=uci name=ands_norand  -engine cmd=randscacs089025.exe proto=uci name=ands_rand10 option.Random=1000  -engine cmd=randscacs089025.exe proto=uci name=ands_rand20 option.Random=2000  -engine cmd=randscacs089025.exe proto=uci name=ands_rand50 option.Random=5000  -engine cmd=randscacs089025.exe proto=uci name=ands_rand90 option.Random=9000  -engine cmd=randscacs089025.exe proto=uci name=ands_rand100 option.Random=10000 -engine cmd=Fire5.exe proto=uci option.Threads=1 -engine cmd=AnMon_5.75.exe proto=uci -engine cmd=RivalUCI-1.18.exe proto=uci -engine cmd=Abrok_5_0.exe proto=uci -engine cmd=Clueless.exe name=clueless1.4 proto=uci -engine cmd=Alaric707.exe proto=uci -engine cmd=sungorus64.exe name=sungorus1.4 proto=uci -each option.Hash=128 restart=auto tc=60+0.1 -games 2 -rounds 100000 -repeat -recover -concurrency 6 -ratinginterval 10  -pgnin 2moves_v1.pgn -pgnout gvarisrand_60_0.1.pgn 
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Ways to avoid "Draw Death" in Computer Chess

Post by Guenther »

cdani wrote:
Guenther wrote: If 10000 == 100% random is 9000== 90%?
Yes.

I'm running a round-robin between the following engines (ccrl 4 minutes rating shown):

Abrok 5.0 - 2435
Alaric 707 - 2664
AnMon 5.75 - 2539
Clueless1.4 - 1902
Fire 5 x64 -3249
Rival 1.18 - 1947
Sungorus1.4 - 2307
ands_norand (89025) - 3169
ands_rand10
ands_rand20
ands_rand50
ands_rand90
ands_rand100

at 60' + 0.1.
Later or tomorrow I will publish the results and the games. I will do a few 1000'ths of games.
It's not comparable in time control to CCRL, but it will give a nice idea of the ratings.
Great! I don't think the tc will make much difference.
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
Ozymandias
Posts: 1532
Joined: Sun Oct 25, 2009 2:30 am

Re: Ways to avoid "Draw Death" in Computer Chess

Post by Ozymandias »

Laskos wrote:
Ozymandias wrote:
Lassos wrote:I believe in 10-20 years we will still be talking in the same terms and paradigm, but with 95%+ draw rate among top engines even in fast tests (with balanced positions).
Does that prediction include deep and wide books, or just balanced positions at shallow depths (ply 4-16)?
Balanced positions at shallow depth, as I think most developers use.
You may very well be right, then.
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Ways to avoid "Draw Death" in Computer Chess

Post by cdani »

So the tournament at 60+0.1 is done:
Games:
www.andscacs.com/downloads/gvarisrand_60_0.1a.zip

Bayeselo:

Code: Select all

Rank Name           Elo    +    - games score oppo. draws
   1 Fire 5 x64    1164   70   63   606   97%  -116    3%
   2 ands_norand   1049   61   57   596   94%   -73    4%
   3 Alaric 707     579   42   41   595   75%   -40    4%
   4 AnMon 5.75     558   42   41   602   74%   -52    5%
   5 Abrok 5.0      395   39   39   599   66%   -58    7%
   6 sungorus1.4    355   38   38   606   63%   -11    4%
   7 clueless1.4     22   40   41   606   44%    -6    1%
   8 Rival 1.18      -4   41   42   606   44%   -36    1%
   9 ands_rand10    -10   41   42   606   42%    15    2%
  10 ands_rand20   -345   56   61   605   28%    42    0%
  11 ands_rand50   -859   96   97   604   16%    75    0%
  12 ands_rand90  -1400   78  -12   601    6%   117    5%
  13 ands_rand100 -1505  145 -116   602    3%   131    5%
Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Ways to avoid "Draw Death" in Computer Chess

Post by Uri Blass »

It seems based on the results that I am right and
ands_rand10 is not more than 1900 CCRL rating list at this time control and probably significantly lower rating at slower time control.

Other programs like ands_rand20 suffered from not having weak engines at their level so we do not know their rating.
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Ways to avoid "Draw Death" in Computer Chess

Post by Dann Corbit »

Laskos wrote:
Dann Corbit wrote:I would use statistics.

Choose game collections with at least 1000 games at the pivot position (book exit).

Choose openings from these games where:

(white_wins + black_wins) / (white_wins + black_wins + draws) > desired_ratio

And yet white_wins/black_wins between desired_min and desired_max

There are definitely such things as fair decisive openings.
There is a theoretical model for this in both Bayeselo (Rao-Kupper) and Davidson draw models. The "sweet spot" for very high draw rates (say eloDraw above 400) from balanced positions is to choose unbalanced opening with Draw rate 50%, Win rate close to 50%, Loss rate close to 0%. Or viceversa, Draw rate 50%, Win rate close to 0%, Loss rate close to 50%.
This is my SQL query for ultra-decisive openings:

Code: Select all

SELECT e.Epd + ' ' +
dbo.opcode_format('acd', acd) + 
dbo.opcode_format('acs', acs) +
dbo.opcode_format('am', am) + 
dbo.opcode_format('bm', bm) + 
dbo.opcode_format('c0', c0) + 
dbo.opcode_format('c1', c1) + 
dbo.opcode_format('c2', c2) + 
dbo.opcode_format('c3', c3) + 
dbo.opcode_format('c4', c4) + 
dbo.opcode_format('cce', round(coef * 444.0,0))+ 
dbo.opcode_format('ce', ce) + 
dbo.opcode_format('dm', dm) + 
dbo.opcode_format('id', id) + 
dbo.opcode_format('pm', pm) + 
dbo.opcode_format('pv', pv) + 
dbo.opcode_format('white_wins', white_wins) +
dbo.opcode_format('black_wins', black_wins) +
dbo.opcode_format('draws', draws) +
dbo.opcode_format('Opening', Opening)
,
 round(coef * 444.0,0) as oce,ce, -round((coef * 444.0 - ce),0) as distance, e.Epd, acd, pv, bm, c3, e.pm, white_wins, black_wins, draws, (white_wins+black_wins+draws) as games, acs, acn, id, Opening, dm
FROM Epd e  

where (1.0*white_wins + 1.0*black_wins) / (1.0 * draws + 1.0 * white_wins + 1.0 * black_wins) > 0.85 and games > 500 and len(Epd) >= 37  and len(pm) > 18 
order by acd, acs, abs(ce)
Weakest depths are at the top, and you can add a filter to ensure minimum depth of 37 plies or something sensible like that.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Ways to avoid "Draw Death" in Computer Chess

Post by Laskos »

Sven wrote:
Laskos wrote:I disagree with you on many points.
No problem at all, as long as you explain why ... I think our basic disagreement is about the areas where we may apply the "diminishing returns" principle and where not. Your idea is mainly to increase available resources like thinking time or raw speed while I also consider improvements of the chess playing abilities.
Laskos wrote:"Extremely Strong" has a clear meaning in my terminology and understanding. And that "absolute strength" is to blame for 98.8% draw rate in drawish endgames and not "similar endgame evaluation" or "similar paradigm".
But what if, say, 25% of those "drawish" endgames turn out to be won (resp. lost) with optimal play at some time in the future but none of the current top engines is able to find the win even with a lot of time? Those 25% do not seem unrealistic to me based on your report about Stockfish missing 8,7% of wins in (mostly simple) 5-men TB positions already. For me the percentage of actually won or lost positions within these 1000 "drawish from current viewpoint" positions is completely unknown, and I would not be surprised if many of them are won or lost.

Unless you prove that this is impossible your reply sounds to me as if you only reject my arguments by saying I were wrong and you were right.
Laskos wrote:It might be the paradigm, but the paradigm works.
How do you know that it works? You *assume* it works.
Laskos wrote:ELO (logistic or otherwise) is not that abstract and volatile as it might seem to you.
Did I state this anywhere?
Laskos wrote:The difference between a random player and non-losing player from standard opening position seems to be capped at about 4000 logistic ELO points. Top engines already cut 3500-3600 ELO points of this 4000 ELO span.
I have to repeat: this is only true according to the theory that current top engines can reach perfect (non-losing) play when given enough time but without switching off pruning and reductions. I see no proof for that theory, and also no way to prove (or disprove) it within the next years.
Laskos wrote:This is even more dramatic in "Endgame Chess". The ELO span there from random to non-losing is on only about 2000 ELO points from drawn position, and Stockfish is already at 1950 or so mark. It plays drawn endgames almost perfectly (in non-losing from drawn position sense).
See my remark above ...
Laskos wrote:[...]and it's not "similar evaluation" and "similar paradigm".
Again, you only say I am wrong and you are right, without giving arguments. In contrast to that, my argument is: if two engines differ by more than 100 Elo in normal game play so that their result is like 66:34 but in endgames considered as "drawish" their result is close to 50:50 then one possible explanation is that both engines (in your given example both versions of the same engine) differ only slightly in their way of playing endgames so that both have percentages of playing a non-optimal move (missing a win) that differ less than for normal game play, so their endgame strength is much closer to each other. You seem to exclude that because you assume that those endgame positions are actually draws so the engines cannot miss a win (in the root position, or its successor where the opponent could potentially miss a win if the root position were actually lost).
Laskos wrote:And returning to the toy "Endgame Chess", I have large files of 5-men Draws and 5-men Wins occurring in games. Against a Syzygy enabled, Stockfish misses 2 draws out of 1000, Zurichess 72 out of 1000. Out of 1000 Wins, Stockfish misses 87 Wins, Zurichess 524 Wins. (On a side note, to observe that it's much easier for engines to miss a Win than to miss a Draw).
That seems to be a good argument for my view. Endgames with more pieces are often more complex than 5-men endgames so SF will probably miss an even higher percentage of wins there. So what can we really conclude from a draw rate of about 98% between current engines playing endgames of which an unknown percentage is actually *not* drawish, but we do not know it yet?
Laskos wrote:The parallel with Checkers seems hard to avoid.
I suggest to avoid it simply because the complexity of Checkers is like kindergarten compared to Chess ... That is because I already saw a lot of positions where Stockfish displays a draw for a very long time but then eventually finds the win or loss, or vice versa (displaying a win or loss until finding the path to a draw).
Laskos wrote:As for your proposal for "doubling knowledge", I don't know how to measure "knowledge". Its efficiency ELO-wise? Its size? Its scaling with time control? The current paradigm is that progress in "knowledge" does not come uniformly with progress in ELO. Rybka 1.0 had less knowledge than Shredder 9, but was significantly ahead as strength goes and a real progress. Andscacs might have more "knowledge" than Stockfish, but it is behind. It seems, though, the more knowledgeable engines are scaling better to longer TC and hardware.
You missed my smiley, maybe it was my fault ... I had written:
Sven wrote:As a general remark, what I am really missing is a test where not time, speed, number of threads, or any similar resource is doubled subsequently but knowledge ... 8-)
So yes, of course "doubling knowledge" is something you can't express in numbers or measure somehow. That was exactly my point: you can calculate an upper limit for the Elo rating of current top engines given "infinite time", "infinite speed", or "infinite number of parallel threads", but you don't know anything about that limit for possible future engines that come with more chess knowledge, or with any other software change that allows to play substantially better chess when given comparable resources.

Prove that current top engines would already play 100% non-losing chess with infinite time, then you have proven me wrong. I don't believe they would, mainly due to heavy pruning and reductions in their search which would lead to returning a draw score after a very deep analysis that reaches EGTB positions - but missing some parts of the search tree that contain the path to a win or loss.

Isn't there a curve somewhere that shows the strength improvements of SF over time with constant TC and hardware? Wasn't that curve basically linear? If it were linear, would you still assume diminishing returns even for software improvements that are not speed improvements?

Please don't get me wrong regarding my intentions: I consider your whole work in this area as very valuable, and even with my limited mathematical background I think I can say that your results appear to be plausible and correct. My concern is more about the interpretation of these results, and what is "proven", "almost proven", or "unproven".
To compress a bit. Here I am not trying to prove almost anything. Proven are only my mathematical models in Bayeselo (Rao-Kupper) and Davidson draw models with sensitivity curves in a linked older thread. Quite proven is the correctness of pentanomial model for side and reversed games of Michel. Most statistically informative rating scheme, on pure theoretical grounds, is Normalized ELO of Michel. Most other empirical data I collect are not proof of anything. I build models, and "Endgame Chess" is just a toy model for regular Chess in distant or not so distant future. I use plausibility and common sense. That Uri is trying to pick on my rating of Random Player is more annoying than instructive or useful to me. Here the numbers and data are mostly suggestive and estimative, not things to pick on that random player is maybe 200 ELO points higher or lower in CCRL. It seems _plausible_ for me that in balanced endgames, Stockfish is quite close to non-losing engine. You said of 5-men Win misses of Stockfish (8.7%). Those positions are almost all evaluated as unbalanced by Stockfish. They do not qualify as 0cp-5cp evaluation endgames as I used for that 98.8% draw rate. Closer in eval to the 0cp-5cp are 5-men Draws, and only 0.2% of those are missed by Stockfish.

I have no proof whatsoever that Chess is capped at some 3800 CCRL ELO points. I used Andreas excellent data (he provided me with 3 more datapoints, one very important at higher LTC), and I made simple, stupid fits. In our current paradigm it seems plausible that some fits can be used. It seems plausible that the draw rates from balanced positions will increase in the future in current, 40 year old paradigm. But rigorously, heck, there is no proof that Chess is not a Black Win. And that a paradigm shift will occur in the future, finding every refutation of White moves. This will make all my guesstimates and models completely ridiculous. To show how weak a "science" I am doing I will show you Andreas data fitted to get 3800 CCRL capping in our current paradigm and no capping at all (infinite limit of ELO points):
Image
There is no radical statistical significance difference between them, and a I am doing a flimsy "science" stating that in our current paradigm, Chess is capped at 3800 CCRL. But is seems "unnatural" to me that ELO gain from doubling time will tend to constant 20 ELO points. And that draw rate will not approach 100% from balanced opening positions. Again, I just _suggest_, see the crappy statistical significance of my "proofs".

Also, I do believe that doubling the depth of our current engines by using humongous (say theoretical, not practical) time controls and hardware, they will be close to non-losing from standard opening position engine. Yes, they reduce a lot, but adding depth, they are getting bushier too at shallower depths. The tree is both deepening and widening.

And also, I played from the same very balanced (0-5cp) endgame positions Stockfish dev versus Andscacs 0.91 (300+ ELO difference), which is known to use quite different evaluation routines. The draw rate was 97.7%. My _suggestion_ is that those positions are overwhelmingly theoretical draws, and both Stockfish and Andscacs play them almost perfectly. You say that maybe 25% of those positions are in fact theoretical Wins, and both Stockfish and Andscacs miss them, being very far from perfect on these very balanced endgames. OK, let's have different opinions.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Ways to avoid "Draw Death" in Computer Chess

Post by Laskos »

Guenther wrote:
Laskos wrote:
Uri Blass wrote:I can add that I played my opponent and played many moves that allow my opponent to blunder even if they are not best objectively and of course did not resign when I saw mate in the next move but I believe even with normal game when I use longer time control and never resign a player with fide rating 2000 will usually win considering the fact that he will play clearly better than what I played and probability of 1 to 10 to random move that in big percentage of the cases may be a blunder is too much.
I think these games with humans who trick engines and know what strategy to adopt are pretty irrelevant for establishing CCRL rating. Recently Komodo has beaten Fritz 11 (2850 or so CCRL) in Knight-odds match, but lost 0-3 against a human FM of about 2100 FIDE ELO who knew how to play these odds matches.
I think you have not played the random% player versions vs. at least one other program, but only against other versions of random%?
Actually I believe with normal players Uri does not mean Humans only, but simply _other_ players with an established (CCRL) rating.
I am sure there will be different results then.

Guenther

Edit:
I replied w/o reading the last posts in this thread it seems, now I see Uri confirmed my belief.
Yes, but I now see Brutus_RND on CCRL 40/4 with 200 rating (Bayeselo, a bit deflated rating), and as I used Ordo for rating, it is compatible with my -100 to -200 rating of Random Player. I don't think of these differences as important for the bulk of the discussion, whether Uri or some weak engines beat Random 10% or not.
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Ways to avoid "Draw Death" in Computer Chess

Post by cdani »

Thanks for these remarks! Yes, it was quite clear that your goal is to propose some reasonable limits to various questions.
Anyway I was curious to see a first rating for the random engines.