On-line engine blitz tourney August

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: On-line engine blitz tourney August

Post by bob »

D Sceviour wrote:
Joost Buijs wrote:Every good chess player sees immediately that Black is dead lost, many engines just don't find it because there is zugzwang (null-move).
If null move search is turned off, my program finds the win in a depth of 25.

There have been previous comments about identifying more zugzwang positions for null move search, especially for minor piece endgames. Currently, null move search is typically rejected for pawn endgames only. Rejecting a null move search for minor piece endgames can add other problems related to lack of depth. Is there any research going on in the area of formulating further null move search zugzwang conditions?

One idea I have experimented with is examining the absence of free pawns in a position. (A free pawn is a pawn that can advance safely). However, the positions are still too complex to combine with minor piece endgames.
How do you define "sees the win"???

I let Crafty search, at 100M nodes per second, for over an hour. It starts at +2 quickly, then at depth 44 the score starts to climb (about 30 seconds). And by the time it gets to depth 50, the score is +4 (best move has been a5 all along). But at depth 51 there is a big fail high and the score drops back to the original +1.75 and sticks there through depth 53 where I stopped it. That's certainly good for white, but not a clear and convincing win. Here is the last output I saved:

Code: Select all

         52    30:05          1.75   1. ... a5 2. Kd3 Kh5 3. Ke2 Kg6 4. Ne3 Kh5
                                     5. Kd1 Bb2 6. Ng2 Kg4 7. Kxd2 Be5 8. Kd3
                                     Kh5 9. Kc4 Bc7 10. Kb5 Kg6 11. Ne1 Bg3
                                     12. Nf3 Bc7 13. Kc4 Bf4 14. Ne1 Be5
                                     15. Ng2 Bc7 16. Kd3 Kh5 17. Kd2 Be5
                                     18. Ke3 Bc7 19. Kd4 Kg6 20. Ne1 Bf4
                                     21. Nf3 Bg3 22. Ke3 Bd6 23. Kd4 Bg3
                                     24. Ke3 Bd6 25. Ke4 Bg3 26. Kd4 Bd6
                                     27. Kd3 Bg3 28. Ke2 Bf4 29. Kd1 Kh5
                                     30. Ke2 Bc7 31. Kd3 Kg6 32. Kd4 Bd6
                                     33. Ne1 Bg3 34. Ng2 Bc7 35. Ne1 Bf4
                                     36. Ng2 Bg3 37. Kd3 Bd6 38. Ne1 Bg3
                                     39. Nf3 Kh5 40. Kc4 Bb8 41. Nd4 Be5
                                     42. Nf5 Kg6 43. Ne7+ Kh5 44. Kd5 Bc3
                                     45. Kd6 Kxh4 46. g6
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: On-line engine blitz tourney August

Post by Sven »

bob wrote:
D Sceviour wrote:
Joost Buijs wrote:Every good chess player sees immediately that Black is dead lost, many engines just don't find it because there is zugzwang (null-move).
If null move search is turned off, my program finds the win in a depth of 25.[...]
How do you define "sees the win"???

I let Crafty search, at 100M nodes per second, for over an hour. It starts at +2 quickly, then at depth 44 the score starts to climb (about 30 seconds). And by the time it gets to depth 50, the score is +4 (best move has been a5 all along). But at depth 51 there is a big fail high and the score drops back to the original +1.75 and sticks there through depth 53 where I stopped it. That's certainly good for white, but not a clear and convincing win. Here is the last output I saved:

Code: Select all

         52    30:05          1.75   1. ... a5 2. Kd3 Kh5 3. Ke2 Kg6 4. Ne3 Kh5
                                     5. Kd1 Bb2 6. Ng2 Kg4 7. Kxd2 Be5 8. Kd3
                                     Kh5 9. Kc4 Bc7 10. Kb5 Kg6 11. Ne1 Bg3
                                     12. Nf3 Bc7 13. Kc4 Bf4 14. Ne1 Be5
                                     15. Ng2 Bc7 16. Kd3 Kh5 17. Kd2 Be5
                                     18. Ke3 Bc7 19. Kd4 Kg6 20. Ne1 Bf4
                                     21. Nf3 Bg3 22. Ke3 Bd6 23. Kd4 Bg3
                                     24. Ke3 Bd6 25. Ke4 Bg3 26. Kd4 Bd6
                                     27. Kd3 Bg3 28. Ke2 Bf4 29. Kd1 Kh5
                                     30. Ke2 Bc7 31. Kd3 Kg6 32. Kd4 Bd6
                                     33. Ne1 Bg3 34. Ng2 Bc7 35. Ne1 Bf4
                                     36. Ng2 Bg3 37. Kd3 Bd6 38. Ne1 Bg3
                                     39. Nf3 Kh5 40. Kc4 Bb8 41. Nd4 Be5
                                     42. Nf5 Kg6 43. Ne7+ Kh5 44. Kd5 Bc3
                                     45. Kd6 Kxh4 46. g6
I think he refers to Ray who reported that Komodo finds a better line (scoring "+250") after 15 minutes, see some posts above. The line was:
1...a5 2.Kd3 Kh5 3.Kc4 Ba3 4.Kb5 a4 5.Kxa4 Kg6 6.Kb5 Bc1 7.Kc4 Kf5 8.Kc5 Ba3 9.Kb5 Bc1 10.Kxb4 Ke5 11.Kc4 Ba3 12.b4 Ke4 13.g6 fxg6 14.f7 Kf5

Winning the d2 pawn is certainly not optimal for White since it activates the black bishop.
Joost Buijs
Posts: 1564
Joined: Thu Jul 16, 2009 10:47 am
Location: Almere, The Netherlands

Re: On-line engine blitz tourney August

Post by Joost Buijs »

mar wrote:
Joost Buijs wrote:my guess is that it has something to do with null-move.
Exactly! I'm running a patch now that doesn't do nullmove if stm has no more than bishop in non-pawn material.
Too early but seems to be even after 1400 games so I'm willing to accept it if it holds (of course I need more games :)
I also have a NullMove option in my engine so I can turn it off completely.
It's tempting to get rid of nullmove completely, but that would cost a lot of elo...
The criteria that Nightmare uses for doing null-move are very simple, a king-move and at least 1 move with another piece to a not attacked square.
In this case that doesn't work, it has to be smarter than what I'm doing. I don't like null-move either, but like you said it gives a lot of Elo.

I haven't touched my engine for almost 2 years, this tournament I played with a version from 3.5 years back which actually did very well compared to later versions.
After trying many things the engine gets messed up in such a way that it is sometimes better to resort to older versions.
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: On-line engine blitz tourney August

Post by D Sceviour »

bob wrote:How do you define "sees the win"???
[d]8/5p2/p4Pk1/6P1/1p2K2P/1P6/3p4/2bN4 b - - 0 56

The point is being missed. With null move search turned off, a depth of 25 is no great shakes. It takes a long time to get there - perhaps more time and nodes searched than with null move search turned on. The question was, are there better rules for identifying zugzwang positions for null move search, particularly for minor piece endgames? The current answer looks like no. Here without a null move search, queen promotions at a depth of 24 explode but the win of a pawn has been found:

Code: Select all

Search Iteration =  23
PV [23] -64  a6-a5 e4-d3 g6-h5 d3-e2 h5-g6 e2-e3 g6-f5 e3-d3 f5-g
6 d3-c4 g6-h5 c4-b5 h5-g6 b5-a5 c1-a3 a5-b5 g6-h5 b5-c4 h5-g6 c4-
d4 a3-c1 d4-e5 c1-a3
Branching factor =  2.239542076420214 avg =  2.230685968075835
Hash: Hits =27423962 Misses =56887617
Researches= 673077

Nodes =             125359298
Total Nodes =       226492854

Search Iteration =  24
PV [24] -160  a6-a5 e4-d3 g6-h5 d3-c4 c1-a3 c4-b5 h5-g6 b5-a5 g6-
f5 a5-b5 f5-e5 b5-c4 e5-f5 c4-d3 a3-c1 d1-f2 f5-g6 d3-c2 g6-h5 f2
-e4 h5-h4 g5-g6 d2-d1q c2-d1
Branching factor =  3.181821943927644 avg =  2.272039706156348
Hash: Hits =82751826 Misses =171587742
Researches= 2028576

Nodes =             494167079
Total Nodes =       720659933

Search Iteration =  25
PV [25] -207  a6-a5 e4-d3 g6-h5 d3-c4 c1-a3 c4-b5 h5-g6 b5-a5 g6-
f5 a5-b5 f5-g6 b5-c4 g6-h5 c4-d4 a3-c1 d4-e3 h5-g6 e3-d3 g6-h5 d3
-c2 h5-g6 d1-f2 g6-h5 f2-d3 c1-f4
PV [25] -168  c1-a3 e4-e5 a6-a5 e5-d4 a3-c1 d4-c4 g6-h5 c4-b5 c1-
a3 b5-a5 h5-g6 a5-b5 g6-h5 b5-c4 h5-g6 c4-d3 a3-c1 d3-e2 g6-f5 d1
-e3 f5-g6 e3-f1 g6-h5
Branching factor =  2.849632890580029 avg =  2.296106088840668
Hash: Hits =232637000 Misses =489137872
Researches= 6125106

Nodes =             1332956315
Total Nodes =       2053616248
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: On-line engine blitz tourney August

Post by bob »

D Sceviour wrote:
bob wrote:How do you define "sees the win"???
[d]8/5p2/p4Pk1/6P1/1p2K2P/1P6/3p4/2bN4 b - - 0 56

The point is being missed. With null move search turned off, a depth of 25 is no great shakes. It takes a long time to get there - perhaps more time and nodes searched than with null move search turned on. The question was, are there better rules for identifying zugzwang positions for null move search, particularly for minor piece endgames? The current answer looks like no. Here without a null move search, queen promotions at a depth of 24 explode but the win of a pawn has been found:

Code: Select all

Search Iteration =  23
PV [23] -64  a6-a5 e4-d3 g6-h5 d3-e2 h5-g6 e2-e3 g6-f5 e3-d3 f5-g
6 d3-c4 g6-h5 c4-b5 h5-g6 b5-a5 c1-a3 a5-b5 g6-h5 b5-c4 h5-g6 c4-
d4 a3-c1 d4-e5 c1-a3
Branching factor =  2.239542076420214 avg =  2.230685968075835
Hash: Hits =27423962 Misses =56887617
Researches= 673077

Nodes =             125359298
Total Nodes =       226492854

Search Iteration =  24
PV [24] -160  a6-a5 e4-d3 g6-h5 d3-c4 c1-a3 c4-b5 h5-g6 b5-a5 g6-
f5 a5-b5 f5-e5 b5-c4 e5-f5 c4-d3 a3-c1 d1-f2 f5-g6 d3-c2 g6-h5 f2
-e4 h5-h4 g5-g6 d2-d1q c2-d1
Branching factor =  3.181821943927644 avg =  2.272039706156348
Hash: Hits =82751826 Misses =171587742
Researches= 2028576

Nodes =             494167079
Total Nodes =       720659933

Search Iteration =  25
PV [25] -207  a6-a5 e4-d3 g6-h5 d3-c4 c1-a3 c4-b5 h5-g6 b5-a5 g6-
f5 a5-b5 f5-g6 b5-c4 g6-h5 c4-d4 a3-c1 d4-e3 h5-g6 e3-d3 g6-h5 d3
-c2 h5-g6 d1-f2 g6-h5 f2-d3 c1-f4
PV [25] -168  c1-a3 e4-e5 a6-a5 e5-d4 a3-c1 d4-c4 g6-h5 c4-b5 c1-
a3 b5-a5 h5-g6 a5-b5 g6-h5 b5-c4 h5-g6 c4-d3 a3-c1 d3-e2 g6-f5 d1
-e3 f5-g6 e3-f1 g6-h5
Branching factor =  2.849632890580029 avg =  2.296106088840668
Hash: Hits =232637000 Misses =489137872
Researches= 6125106

Nodes =             1332956315
Total Nodes =       2053616248
My question was "what does 'see the win' mean in this context?"

a score of +1.5 or so is not exactly "a win". I can get to depth 25 without null-move pretty quickly, but it doesn't change the score for me at all.

For me, Crafty finds the pawn win at depth=29, 14 seconds using my macbook with one thread. The score climbs to +4 somewhere around depth 46, but at depth 51 it drops back to +1.75 again.

With null-move disabled, I find that at depth=28.

Using my 20 core box, NMon finds the move at depth=28 in 1.5 seconds. Nroff takes same depth, but 47 seconds.

But my key issue was "do you call this 'the win'" as I am not convinced, yet, that this is a win of anything but a pawn that might not be enough. Note my searches are using 6 piece syzygy.
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: On-line engine blitz tourney August

Post by D Sceviour »

The win of a pawn is not enough to "win". 1-0 ultimately determines that. The question of "winning" is relevant since the original post from Maarten Claessens wondered what ArasanX saw in the position to resign. The author of ArasanX will have to explain that.