What should the next step be ?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Cheney
Posts: 104
Joined: Thu Sep 27, 2012 2:24 am

Re: What should the next step be ?

Post by Cheney »

In regards to these test positions and comments:
For instance, if your centipawn evaluation does not agree exactly for these four positions:
r3rk2/ppp1q1pp/2n5/5bN1/2B1pP2/Q7/PPP4P/1KR3R1 w - - bm Nxh7+;
2kr3r/pp1q1ppp/5n2/1Nb5/2Pp1B2/7Q/P4PPP/1R3RK1 w - - bm Nxa7+;
1r3rk1/p4ppp/7q/2pP1b2/1nB5/5N2/PP1Q1PPP/2KR3R b - - bm Nxa2+;
1kr3r1/ppp4p/q7/2b1Pp2/5Bn1/2N5/PPP1Q1PP/R3RK2 b - - bm Nxh2+;

then something is broken.
Is something really broken in one's engine or is it possibly the engine is not advanced enough?

Using the first position, it is around a ply of 11 or so in which on realizes Nxh7+ is the best move. The catch is, for my engine, this move is not realized within a minute. If I play the best move plus the following forced move, my engine then solves this within a few seconds.

I do not have pruning, just pvs, TT, and move ordering items which prove to be very efficient. My eval is plain (PSQ, pawn structure) and this is what I am working on now. Can I improve the eval to solve this and without obtaining those depths? Or, is the only way to really solve this by jumping into pruning and reductions to obtain more depth? What should the next step be?

thank you :
hMx
Posts: 61
Joined: Wed Mar 08, 2006 9:40 pm
Location: Germany, Berlin

Re: What should the next step be ?

Post by hMx »

Henk wrote:
mar wrote:
Henk wrote:Misery starts when you try to improve your engine while making your code more complicated.
The problem here is 1) bugs and 2) lack of proper testing
Hobby should be fun. In my opinion nothing more boring than testing.
Hence, automatize it. That is a kind of programming, and fun, by definition 8-)
JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: What should the next step be ?

Post by JVMerlino »

Cheney wrote:In regards to these test positions and comments:
For instance, if your centipawn evaluation does not agree exactly for these four positions:
r3rk2/ppp1q1pp/2n5/5bN1/2B1pP2/Q7/PPP4P/1KR3R1 w - - bm Nxh7+;
2kr3r/pp1q1ppp/5n2/1Nb5/2Pp1B2/7Q/P4PPP/1R3RK1 w - - bm Nxa7+;
1r3rk1/p4ppp/7q/2pP1b2/1nB5/5N2/PP1Q1PPP/2KR3R b - - bm Nxa2+;
1kr3r1/ppp4p/q7/2b1Pp2/5Bn1/2N5/PPP1Q1PP/R3RK2 b - - bm Nxh2+;

then something is broken.
Is something really broken in one's engine or is it possibly the engine is not advanced enough?

Using the first position, it is around a ply of 11 or so in which on realizes Nxh7+ is the best move. The catch is, for my engine, this move is not realized within a minute. If I play the best move plus the following forced move, my engine then solves this within a few seconds.

I do not have pruning, just pvs, TT, and move ordering items which prove to be very efficient. My eval is plain (PSQ, pawn structure) and this is what I am working on now. Can I improve the eval to solve this and without obtaining those depths? Or, is the only way to really solve this by jumping into pruning and reductions to obtain more depth? What should the next step be?

thank you :
I'm certain that Dann will correct me if I am mistaken. But I believe he was stating that the STATIC evaluation of each position (from the side to move's perspective) should be identical. At least that should be verified. This is all on the assumption that you INTENDED to have a symmetrical evaluation. But, as others have posted, if you didn't intend that, then this test would obviously be invalid.

It's possible, I suppose, depending on various implementation factors, that the entire search could produce symmetrically identical results. :?:
pkumar
Posts: 100
Joined: Tue Oct 15, 2013 5:45 pm

Re: What should the next step be ?

Post by pkumar »

Dann Corbit wrote: For instance, if your centipawn evaluation does not agree exactly for these four positions:
r3rk2/ppp1q1pp/2n5/5bN1/2B1pP2/Q7/PPP4P/1KR3R1 w - - bm Nxh7+;
2kr3r/pp1q1ppp/5n2/1Nb5/2Pp1B2/7Q/P4PPP/1R3RK1 w - - bm Nxa7+;
1r3rk1/p4ppp/7q/2pP1b2/1nB5/5N2/PP1Q1PPP/2KR3R b - - bm Nxa2+;
1kr3r1/ppp4p/q7/2b1Pp2/5Bn1/2N5/PPP1Q1PP/R3RK2 b - - bm Nxh2+;

then something is broken.
My engine "Nameless" gets same static evaluation (MGscore) but different PV's (after due reflections) at depth 19. I hope this is not unusual. Move ordering in search may not match in the four cases.

Code: Select all

#1 MGscore=-75 for mover WHITE
19	+6.40 	45.6M  	0:50.49	g5h7 f5h7 a3h3 b7b5 h3h7 b5c4 h7h8 f8f7 g1g7 f7e6 g7e7 e6e7 h8h6 c6d8 h6h7 d8f7 h7e4 e7d7 e4f5 d7e7 f5c5 e7d7 c5b5 d7d8 b5d5 d8e7 c1d1 

#2 MGscore=-75 for mover WHITE
19	+6.49 	49.7M  	0:54.69	b5a7 c5a7 h3a3 g7g5 a3a7 g5f4 a7a8 c8c7 b1b7 c7d6 b7d7 d6d7 a8a5 h8e8 a5b5 d7d6 b5b6 d6e5 b6c5 e5e6 f1e1 e6d7 c5d4 d7c8 d4c5 c8b7 e1e7 f6d7 e7f7 

#3 MGscore=-75 for mover BLACK
19	+6.60 	44.8M  	0:48.70	b4a2 c4a2 h6a6 g2g4 a6a2 g4f5 a2a1 c1c2 b8b2 c2d3 b2d2 f3d2 a1d4 d3e2 f8e8 e2f3 d4d5 f3g3 d5f5 h2h4 f5g6 g3h3 h7h5 f2f3 e8e2 h1g1 g6f5 h3g3 

#4 MGscore=-75 for mover BLACK
19	+6.44 	49.6M  	0:54.53	g4h2 f4h2 a6h6 b2b4 h6h2 b4c5 h2h1 f1f2 g8g2 f2e3 h1h6 e3d3 c8d8 d3c4 h6e6 c4b4 g2e2 c3e2 a7a5 b4a3 e6e5 a3b3 e5c5 a2a3 d8d2