Page 2 of 2

Re: statistics, testing and frustration

Posted: Wed Sep 12, 2018 10:45 pm
by sandermvdb
xr_a_y wrote: Wed Sep 12, 2018 10:35 pm Really appreciate you take time to check weini game. May I ask what analysis tool you are using on the pgn?
I use Arena to open the pgn and looked for the game where Weini lost the quickest :P That game was imported in lichess which easily spotted the blunder.

Re: statistics, testing and frustration

Posted: Thu Sep 13, 2018 7:32 am
by xr_a_y
Edsel Apostol wrote: Wed Sep 12, 2018 9:12 pm I think most strong engines doesn't check for && score < beta anymore.
Usually you don't store a bestmove in the TT if score is equal or below alpha.
I think Xiphos and Vajolet is doing both.Didn't check others.
And when I remove that, Weini is losing elo (and does not solve fine70 anymore, I mean fast enough ...).

Re: statistics, testing and frustration

Posted: Fri Sep 14, 2018 7:56 pm
by xr_a_y
Testing some advices given in this threat this week, I finally found something that wins some elo.

In Weini, I used to use the TT move only if

Code: Select all

!fromPV || ttt.t_type == Transposition::tt_exact
I now switch as (almost) Xiphos to (both in search and qsearch)

Code: Select all

!fromPV ||
                (ttt.t_type == Transposition::tt_exact
                   && ttt.score > alpha
                   && ttt.score < beta) ||
                (ttt.t_type == Transposition::tt_alpha
                   && ttt.score <= alpha) ||
                (ttt.t_type == Transposition::tt_beta
                   && ttt.score >= beta) ) )
Moreover, I used to not use the TT move directly (i.e. return a score immediatly) if it leads to a draw (I was afraid of false draw score due to 3 reps but now I use only 1 rep so probably no need to worry anymore). I now use the TT move (under the previous conditions) also if it leads to a draw.

Re: statistics, testing and frustration

Posted: Fri Sep 28, 2018 9:36 am
by asanjuan
xr_a_y wrote: Fri Sep 14, 2018 7:56 pm

Code: Select all

!fromPV ||
                (ttt.t_type == Transposition::tt_exact
                   && ttt.score > alpha
                   && ttt.score < beta) ||
                (ttt.t_type == Transposition::tt_alpha
                   && ttt.score <= alpha) ||
                (ttt.t_type == Transposition::tt_beta
                   && ttt.score >= beta) ) )
Moreover, I used to not use the TT move directly (i.e. return a score immediatly) if it leads to a draw (I was afraid of false draw score due to 3 reps but now I use only 1 rep so probably no need to worry anymore). I now use the TT move (under the previous conditions) also if it leads to a draw.
I think you are messing around a bit with TT.
This is what I do, I think that is what everyone is using, and it is pretty simple:

Code: Select all

	THashEntry entry;
	if (Hash.hash_get(Current->key, &entry)){
		
		if (TO_MOVE(entry.move) != NULL_MOVE && is_pseudolegal(TO_MOVE(entry.move))){			
			trans_move = TO_MOVE(entry.move);
			pv_copy( trans_move );			
		}
		
		entry.eval = hash_value_get(entry.eval, root_distance() );
		if (entry.ok_to_prune(depth, alpha, beta)){
			return entry.eval;
		}
		
	}
the ok_to_prune function looks like this:

Code: Select all

	
	bool THashEntry::ok_to_prune(int depth, int alpha, int beta){
	return (
		(isMate(this->eval) && this->type == typeExact) 		
		|| (
			(this->depth >= depth) && 
				(
				(this->type == typeExact) ||
				(this->type == typeAlpha && this->eval <= alpha) ||
				(this->type == typeBeta  && this->eval >= beta)
				)
			)
		);
	}
the isMate condition is not a real improvement, but shows shorter mates.
regards.

Re: statistics, testing and frustration

Posted: Fri Sep 28, 2018 12:12 pm
by Guenther
sandermvdb wrote: Wed Sep 12, 2018 10:15 pm I just downloaded the games Weini 0.0.20 played in the CCRL 40/4. This is the game it has lost in the least number of moves:
https://lichess.org/aoEmr338

It looks like a 3-fold repetition bug where it just throws away its queen and therefore loses the match.
Sander is quite right. You have at least a serious repetition bug!
I downloaded the commented CCRL 40/40 for Weini 0.023 and cleaned it with a script,
thus Toms GameAnalyser can read it (filtered out won games before with Scid because
we are not interested in those)

Fiddled a bit with some settings in TGA and found at least 3 games already in a few minutes,
which have the same symptom.
When a rep is on the horizon even when eval is worse it suddenly starts to blunder a piece
or worsens its position instead of trying to force a repetition and take the draw. (or even 50 moves draw)

Here are two examples from the first sample (Weini White).

Example1:
Asymptotes eval also is wrong for a long while and Weini showing around -0.84 has a comfortable
positionally draw and could have just sat with its K around the Black passer on e3 awaiting a 3 time rep
or a 50 moves draw as Black can do nothing.
Instead it suddenly created a decisive weakness with 119.g6??
I could understand it if would show a positive score and attempts to win.

[pgn] [Event "CCRL 40/40"] [Site "CCRL"] [Date "2018.08.23"] [Round "626.2.687"] [White "Weini 0.0.23 64-bit"] [Black "Asymptote 0.1.8 64-bit"] [Result "0-1"] [WhiteElo "2241"] [BlackElo "2177"] [ECO "D30"] [Opening "QGD"] [PlyCount "255"] 1.d4 {book} 1...d5 {book} 2.c4 {book} 2...e6 {book} 3.Nf3 {book} 3...Nf6 { book} 4.Bg5 {book} 4...h6 {book} 5.Bxf6 {book} 5...Qxf6 {book} 6.Nbd2 { book} 6...Be7 {book} 7.e3 {+0.07/16 40} 7...a5 {-0.24/12 30} 8.Bd3 { +0.62/14 49} 8...Nc6 {-0.17/11 32} 9.O-O {+0.59/16 49} 9...g5 {-0.19/12 35 } 10.Qe2 {+0.63/13 33} 10...Bd7 {-0.01/12 38} 11.cxd5 {+0.72/13 49} 11... exd5 {-0.03/13 58} 12.Bb5 {+0.49/15 49} 12...O-O {-0.03/12 31} 13.Bxc6 { +0.63/14 49} 13...Qxc6 {-0.01/13 39} 14.Ne5 {+0.53/16 48} 14...Qd6 { -0.04/12 54} 15.Rfc1 {+0.54/13 31} 15...Bf5 {+0.06/12 91} 16.Qf3 {+0.47/14 48} 16...Bh7 {+0.05/12 50} 17.Nb3 {+0.52/14 27} 17...f6 {+0.29/12 31} 18. Ng4 {+0.16/18 49} 18...a4 {+0.34/13 42} 19.Nc5 {+0.94/16 35} 19...b6 { +2.27/13 28} 20.Nxh6+ {-1.01/19 346} 20...Kg7 {+2.22/14 24} 21.Nf5+ { -0.87/17 24} 21...Bxf5 {+2.27/15 24} 22.Qxf5 {-0.91/18 32} 22...bxc5 { +2.27/15 77} 23.Rxc5 {-1.03/18 32} 23...Rfd8 {+2.20/14 80} 24.Qc2 { -1.00/16 31} 24...Ra7 {+2.29/13 29} 25.Rc1 {-0.98/16 31} 25...Rb8 { +2.31/13 69} 26.Rc6 {-0.88/12 31} 26...Qd8 {+2.33/13 25} 27.Rc3 {-1.26/13 31} 27...Bd6 {+2.40/12 47} 28.Qe2 {-1.26/13 31} 28...Rab7 {+2.58/11 23} 29.R3c2 {-1.25/14 21} 29...Qd7 {+2.55/10 46} 30.h3 {-1.27/13 31} 30...Rb4 {+2.70/12 43} 31.Rb1 {-1.33/14 31} 31...a3 {+2.69/12 44} 32.b3 {-1.16/13 31} 32...Qe6 {+2.66/11 44} 33.Rd1 {-1.23/11 30} 33...Re8 {+2.70/12 44} 34. Re1 {-1.33/13 30} 34...Qe4 {+2.76/12 44} 35.Kf1 {-1.31/13 17} 35...f5 { +2.72/12 44} 36.Qh5 {-1.37/15 32} 36...Qxc2 {+2.79/12 22} 37.Qxe8 { -1.03/15 30} 37...Qd3+ {+2.35/12 49} 38.Re2 {-1.01/15 29} 38...Qb1+ { +2.31/14 49} 39.Re1 {-1.01/14 29} 39...Qe4 {+2.20/14 46} 40.Qd7+ {-0.95/15 24} 40...Kf6 {+1.38/14 52} 41.Qd8+ {-0.52/15 32} 41...Qe7 {+1.31/13 19} 42.Qh8+ {-0.53/16 38} 42...Qg7 {+1.38/13 23} 43.Qa8 {-0.50/16 38} 43...Rb5 {+1.25/13 49} 44.Qd8+ {-0.10/17 35} 44...Qe7 {+1.05/14 39} 45.Qh8+ { -0.39/18 38} 45...Ke6 {+1.09/15 54} 46.Qc8+ {-0.33/18 38} 46...Qd7 { +1.09/14 20} 47.Qg8+ {-0.35/18 38} 47...Qf7 {+1.14/14 27} 48.Qxg5 { -0.36/18 38} 48...Rb8 {+1.16/13 72} 49.Qh4 {-0.36/16 38} 49...Rg8 { +1.17/12 35} 50.Re2 {-0.45/16 38} 50...Qg6 {+1.30/13 37} 51.f4 {-0.59/20 38} 51...Be7 {+1.25/12 83} 52.Qf2 {-0.59/18 38} 52...Qg3 {+1.31/15 50} 53. Qxg3 {-0.63/17 38} 53...Rxg3 {+1.37/18 26} 54.Ke1 {-0.63/21 30} 54...c6 { +1.37/17 20} 55.Kd2 {-0.88/18 30} 55...Bb4+ {+2.18/14 37} 56.Kd3 {-1.03/19 31} 56...Bd6 {+2.43/17 27} 57.Kc2 {-1.12/18 31} 57...c5 {+2.59/17 19} 58. dxc5 {-1.03/18 19} 58...Bxc5 {+2.66/17 37} 59.Kd2 {-1.03/20 32} 59...Kf7 { +2.66/17 18} 60.Kd3 {-1.19/19 32} 60...d4 {+2.63/17 79} 61.Kc4 {-1.19/18 32} 61...Rxe3 {+2.64/16 21} 62.Rxe3 {-1.22/16 33} 62...dxe3 {+2.66/23 26} 63.Kd3 {-1.30/17 25} 63...Kg6 {+2.68/23 66} 64.Ke2 {-1.30/18 26} 64...Kh5 {+2.68/19 60} 65.g3 {-1.30/18 26} 65...Kg6 {+2.69/21 54} 66.Kf3 {-1.30/18 27} 66...Kf7 {+2.70/21 17} 67.Ke2 {-1.31/17 28} 67...Bd4 {+2.71/22 17} 68. g4 {-1.31/18 29} 68...Ke6 {+2.70/16 33} 69.Kd3 {-1.46/16 29} 69...Bc5 { +2.71/21 39} 70.b4 {-1.43/15 17} 70...Bb6 {+2.71/20 37} 71.g5 {-1.43/17 32 } 71...Kf7 {+2.73/22 34} 72.b5 {-1.43/18 34} 72...Kg7 {+2.71/20 19} 73.Ke2 {-1.43/20 36} 73...Kg6 {+2.73/19 18} 74.Kf3 {-1.43/19 37} 74...Kh5 { +2.73/24 31} 75.Ke2 {-1.43/21 40} 75...Ba7 {+2.72/23 25} 76.Kd3 {-1.42/20 41} 76...Kg6 {+2.73/21 42} 77.Ke2 {-1.42/18 47} 77...Bd4 {+2.70/24 21} 78. Kd3 {-1.42/19 53} 78...Kh5 {+2.70/21 38} 79.Ke2 {-1.42/19 64} 79...Bb6 { +2.71/23 55} 80.Kd3 {-1.40/20 69} 80...Bc5 {+2.69/23 55} 81.Ke2 {-1.40/17 23} 81...Kg6 {+2.71/22 149} 82.Kd3 {-1.33/18 14} 82...Bb6 {+2.72/23 62} 83.Ke2 {-1.33/19 25} 83...Kg7 {+2.70/22 128} 84.Kf3 {-1.33/19 25} 84...Bc5 {+2.70/25 19} 85.Ke2 {-1.33/18 25} 85...Bd4 {+2.70/23 16} 86.Kf3 {-1.33/20 25} 86...Ba7 {+2.69/22 43} 87.Ke2 {-1.33/19 26} 87...Kg6 {+2.66/23 17} 88. Kd3 {-1.33/19 26} 88...Bc5 {+2.67/18 21} 89.Ke2 {-1.33/19 26} 89...Kg7 { +2.64/22 50} 90.Kf3 {-1.33/19 27} 90...Bd4 {+2.65/22 93} 91.Ke2 {-1.33/19 27} 91...Kh7 {+2.57/20 89} 92.Kf3 {-1.43/19 27} 92...Ba7 {+2.17/25 19} 93. Ke2 {-1.43/19 28} 93...Kg7 {+2.57/24 22} 94.Kf3 {-1.43/20 28} 94...Kf7 { +1.75/24 35} 95.Ke2 {-1.43/17 29} 95...Bc5 {+1.71/21 73} 96.Kd3 {-1.43/17 29} 96...Bb6 {+1.72/22 32} 97.Ke2 {-1.43/19 29} 97...Ke8 {+1.72/22 62} 98. h4 {-0.76/18 27} 98...Kf8 {+1.68/24 14} 99.h5 {-0.81/17 31} 99...Kg7 { +1.71/23 54} 100.Kf3 {-0.71/16 31} 100...Bd4 {+1.69/23 13} 101.Ke2 { -0.80/16 32} 101...Bc5 {+1.68/23 18} 102.Kf3 {-0.80/16 32} 102...Bb6 { +1.10/23 14} 103.Ke2 {-0.80/16 33} 103...Ba7 {+1.67/21 12} 104.Kf3 { -0.80/16 34} 104...Kg8 {+1.68/22 20} 105.Ke2 {-0.80/16 35} 105...Kf7 { +1.71/16 24} 106.Kd3 {-0.80/16 35} 106...Kg7 {+1.72/22 17} 107.Ke2 { -0.80/16 36} 107...Bd4 {+1.69/22 37} 108.Kd3 {-0.80/17 37} 108...Bc5 { +1.67/19 33} 109.Ke2 {-0.79/16 39} 109...Kf7 {+1.72/22 14} 110.Kf3 { -0.80/16 40} 110...Bb6 {+1.72/21 28} 111.Ke2 {-0.80/16 42} 111...Kg8 { +1.72/17 25} 112.Kf3 {-0.80/17 43} 112...Bd4 {+1.71/22 25} 113.Ke2 { -0.80/16 45} 113...Kh7 {+1.71/16 25} 114.Kf3 {-0.89/17 48} 114...Ba7 { +1.73/20 21} 115.Ke2 {-0.88/17 49} 115...Bb6 {+1.72/20 26} 116.Kf3 { -0.84/18 51} 116...Kg8 {+1.72/23 17} 117.Ke2 {-0.84/18 61} 117...Kh8 { +1.72/23 28} 118.Kd3 {-0.84/18 69} 118...Bc5 {+1.73/22 15} 119.g6 { -0.72/17 66} 119...Kg7 {+2.17/23 34} 120.Ke2 {+0.00/19 87} 120...Kh6 { +3.68/22 34} 121.Kd3 {-2.99/18 162} 121...Bd4 {+4.14/21 150} 122.Ke2 { -3.07/14 23} 122...Kxh5 {+4.67/22 57} 123.g7 {-3.22/16 23} 123...Bxg7 { +5.14/18 26} 124.Kxe3 {-4.01/17 23} 124...Kg4 {+5.65/19 77} 125.Kd3 { -5.82/18 166} 125...Bh6 {+5.49/15 40} 126.Kc4 {-12.39/18 150} 126...Bxf4 { +7.97/18 23} 127.Kd5 {-9.38/16 19} 127...Be3 {+9.08/20 25} 128.b6 { -9.88/15 19} 0-1[/pgn]

Example 2:
In this game it is even more visible. There was already a two time repetition after 57...Qf5, but suddenly
it played Nxb4?? with a slightly positive score though for only one ply (before always slightly negative).

[pgn][Event "CCRL 40/40"] [Site "CCRL"] [Date "2018.08.21"] [Round "627.3.151"] [White "Weini 0.0.23 64-bit"] [Black "Zevra 1.8.5 r664 64-bit"] [Result "0-1"] [WhiteElo "2241"] [BlackElo "2240"] [ECO "B40"] [Opening "Sicilian defence"] [PlyCount "163"] 1.e4 {book} 1...c5 {book} 2.Nf3 {book} 2...e6 {book} 3.b3 {book} 3...d6 { book} 4.Bb2 {book} 4...Nf6 {book} 5.Bb5+ {+0.08/16 38} 5...Bd7 {-0.02/20 21} 6.Nc3 {+0.11/17 38} 6...Bxb5 {+0.83/19 22} 7.Nxb5 {-0.16/17 37} 7... Nxe4 {+0.93/19 25} 8.O-O {-0.26/17 37} 8...Nc6 {+0.87/19 25} 9.c4 { -0.27/14 37} 9...a6 {+0.74/18 24} 10.Nc3 {-0.72/16 37} 10...Nxc3 {+1.44/19 22} 11.Bxc3 {-0.33/15 21} 11...e5 {+1.36/19 28} 12.Re1 {-0.90/16 36} 12... Be7 {+1.47/16 18} 13.d3 {-0.88/15 36} 13...O-O {+1.57/15 35} 14.Qe2 { -0.93/14 36} 14...f5 {+1.86/15 21} 15.a3 {-0.85/12 29} 15...g5 {+1.88/17 27} 16.Nd2 {-0.64/17 29} 16...g4 {+1.82/16 19} 17.Nf1 {-0.62/16 27} 17... Nd4 {+1.94/17 23} 18.Qd1 {-0.60/14 33} 18...Bg5 {+1.96/17 35} 19.Ne3 { -0.63/14 37} 19...Qd7 {+1.98/16 35} 20.Nd5 {-0.55/15 30} 20...Rae8 { +2.08/17 20} 21.Rb1 {-0.55/13 37} 21...b5 {+1.98/14 32} 22.a4 {-0.52/15 33 } 22...b4 {+2.24/19 30} 23.Bxd4 {-0.49/15 26} 23...exd4 {+2.25/21 34} 24. Rf1 {-0.46/15 36} 24...f4 {+2.67/18 21} 25.f3 {-0.35/16 35} 25...h5 { +2.54/18 35} 26.Rb2 {-0.34/16 31} 26...Rf7 {+2.62/17 40} 27.Re2 {-0.34/15 36} 27...Re5 {+2.52/18 25} 28.Rb2 {-0.41/15 36} 28...Qe6 {+2.86/15 42} 29. Rc2 {-0.47/15 36} 29...Bh4 {+2.91/18 23} 30.a5 {-0.41/16 35} 30...Rf8 { +2.81/16 32} 31.Nc7 {-0.40/16 20} 31...Qd7 {+2.81/18 25} 32.Nd5 {-0.40/17 37} 32...g3 {+2.72/17 46} 33.h3 {-0.37/16 25} 33...Qe8 {+2.70/19 24} 34. Qd2 {-0.40/15 37} 34...Bd8 {+2.85/18 38} 35.Ra2 {-0.42/16 37} 35...Bg5 { +2.68/18 38} 36.Qd1 {-0.44/16 36} 36...Rf7 {+2.84/20 27} 37.Qd2 {-0.41/15 22} 37...Qe6 {+2.80/18 31} 38.Rb1 {-0.40/17 22} 38...Bh6 {+2.67/18 59} 39. Kf1 {-0.38/18 28} 39...Qf5 {+2.67/19 66} 40.Raa1 {-0.30/18 33} 40...h4 { +2.67/20 60} 41.Re1 {-0.31/18 33} 41...Qc8 {+2.67/19 25} 42.Re2 {-0.26/17 18} 42...Bg7 {+2.66/18 21} 43.Rae1 {-0.15/18 27} 43...Qf8 {+2.66/18 18} 44.Rxe5 {-0.10/21 28} 44...Bxe5 {+2.54/20 21} 45.Qa2 {-0.10/26 32} 45... Qc8 {+2.56/18 31} 46.Qa4 {-0.10/25 32} 46...Kf8 {+2.56/21 25} 47.Re4 { -0.10/25 32} 47...Qe8 {+2.56/19 17} 48.Qa2 {-0.10/26 32} 48...Qd8 { +2.56/20 19} 49.Nb6 {-0.10/24 32} 49...Qe8 {+2.56/22 22} 50.Nd5 {+0.10/30 18} 50...Qd8 {+2.56/21 21} 51.Nb6 {-0.10/27 32} 51...Qe7 {+2.56/19 23} 52. Nd5 {-0.10/25 34} 52...Qe6 {+2.56/20 20} 53.Kg1 {-0.10/27 32} 53...Qd7 { +2.56/20 22} 54.Kf1 {-0.10/26 32} 54...Kg8 {+2.56/20 18} 55.Qd2 {-0.10/25 32} 55...Qf5 {+2.56/20 22} 56.Qa2 {-0.10/26 37} 56...Qd7 {+2.56/20 20} 57. Qd2 {-0.10/27 32} 57...Qf5 {+2.56/20 24} 58.Nxb4 {+0.10/30 24} 58...cxb4 { +3.65/18 31} 59.Qxb4 {-1.99/21 221} 59...Qc8 {+3.81/18 22} 60.Qa3 { -1.99/20 22} 60...Rb7 {+4.07/19 28} 61.Re1 {-2.05/19 22} 61...Qb8 { +4.09/20 24} 62.Rb1 {-2.05/19 22} 62...Rb4 {+4.26/20 39} 63.Kg1 {-2.51/20 22} 63...d5 {+4.74/20 40} 64.cxd5 {-2.88/18 22} 64...Kf7 {+5.30/20 36} 65. Qb2 {-2.65/18 22} 65...Qb5 {+5.42/20 25} 66.Qc2 {-2.97/18 22} 66...Qxd5 { +5.43/20 32} 67.Re1 {-3.09/18 22} 67...Qe6 {+5.71/18 42} 68.Kf1 {-3.34/20 22} 68...Rb5 {+5.96/19 29} 69.Qa2 {-3.50/20 22} 69...Qd5 {+5.97/19 28} 70. Qc2 {-3.53/19 22} 70...Rc5 {+5.96/20 38} 71.Qb2 {-3.62/18 22} 71...Rxa5 { +6.15/19 34} 72.b4 {-3.67/18 22} 72...Rb5 {+6.15/19 24} 73.Ra1 {-3.64/17 22} 73...Bd6 {+6.83/18 33} 74.Rxa6 {-4.09/16 22} 74...Rxb4 {+7.54/20 32} 75.Qc2 {-4.77/19 22} 75...Qb5 {+7.65/20 52} 76.Ra1 {-4.92/18 22} 76...Rb2 {+9.74/20 51} 77.Qc4+ {-5.22/21 22} 77...Qxc4 {+25.93/22 26} 78.dxc4 { -5.22/20 20} 78...d3 {#39/21 44} 79.Ra7+ {-10.99/17 18} 79...Kf6 {#19/23 41} 80.Ra1 {-15.05/16 22} 80...Bc5 {#15/22 53} 81.Ke1 {-78.12/18 26} 81... Ke7 {#13/20 28} 82.Kd1 {Black wins by adjudication} 0-1[/pgn]

Re: statistics, testing and frustration

Posted: Fri Sep 28, 2018 5:05 pm
by xr_a_y
Thanks a lot for this analysis. I guess 0.0.24 (not released yet) doesn't show the same issue but i'll check that twice. There are indeed strange things going on with draw even in the dev version...

Re: statistics, testing and frustration

Posted: Fri Sep 28, 2018 5:07 pm
by xr_a_y
asanjuan wrote: Fri Sep 28, 2018 9:36 am

Code: Select all

	
				(this->type == typeExact) ||
				(this->type == typeAlpha && this->eval <= alpha) ||
				(this->type == typeBeta  && this->eval >= beta)

Thanks for your inputs. So you suggest to use the TT move and return a score with it as soon as it is an exact score, even at a PV node ?

Re: statistics, testing and frustration

Posted: Sat Sep 29, 2018 5:39 pm
by Sven
Guenther wrote: Fri Sep 28, 2018 12:12 pm Example1:
Asymptotes eval also is wrong for a long while and Weini showing around -0.84 has a comfortable
positionally draw and could have just sat with its K around the Black passer on e3 awaiting a 3 time rep
or a 50 moves draw as Black can do nothing.
Instead it suddenly created a decisive weakness with 119.g6??
I could understand it if would show a positive score and attempts to win.
119.g6?! is not optimal but still a draw. The decisive error is 120.Ke2? where the only move that holds the draw is 120.Kc3! Therefore another possible explanation of the symptom would be that the search depth was not sufficient to see that Kc3 draws but Ke2 loses. The score 0.00 calculated for 120.Ke2, compared to -2.99 after the next move, makes this quite likely for me. I do not see a clear connection to the repetition topic in this case.

Re: statistics, testing and frustration

Posted: Sat Sep 29, 2018 6:03 pm
by Guenther
Sven wrote: Sat Sep 29, 2018 5:39 pm
Guenther wrote: Fri Sep 28, 2018 12:12 pm Example1:
Asymptotes eval also is wrong for a long while and Weini showing around -0.84 has a comfortable
positionally draw and could have just sat with its K around the Black passer on e3 awaiting a 3 time rep
or a 50 moves draw as Black can do nothing.
Instead it suddenly created a decisive weakness with 119.g6??
I could understand it if would show a positive score and attempts to win.
119.g6?! is not optimal but still a draw. The decisive error is 120.Ke2? where the only move that holds the draw is 120.Kc3! Therefore another possible explanation of the symptom would be that the search depth was not sufficient to see that Kc3 draws but Ke2 loses. The score 0.00 calculated for 120.Ke2, compared to -2.99 after the next move, makes this quite likely for me. I do not see a clear connection to the repetition topic in this case.
Hi Sven, I wrote this because 119.g6 was played with negative score (-0.72), why should one move a pawn, when the the 50 moves counter
already is at 20 and there was already a 2 time rep before I think? I don't think this requires a kind of fortress detection?
I don't know though what other programs do when eval is negative and there is a chance to accumulate the counter?
OTH there might be a problem with 50 moves draws too, may be I check more games later.

Re: statistics, testing and frustration

Posted: Mon Oct 01, 2018 11:11 am
by asanjuan
xr_a_y wrote: Fri Sep 28, 2018 5:07 pm
asanjuan wrote: Fri Sep 28, 2018 9:36 am

Code: Select all

	
				(this->type == typeExact) ||
				(this->type == typeAlpha && this->eval <= alpha) ||
				(this->type == typeBeta  && this->eval >= beta)

Thanks for your inputs. So you suggest to use the TT move and return a score with it as soon as it is an exact score, even at a PV node ?
Don't forget the depth condition in order to return a TT cutoff.
if entry->depth >= depth AND (the above conditions) then CUTOFF. returning alpha, beta or tt-value is irrelevant in a PVS search since the upper level of the search will discard the move or research it with more depth.

The only reason to not to prune and return in a PV node is because you want to print the whole pv in a re-search. But this is something cosmetic.

Just in case you couldn't prune the tree with a TT cutoff, if there is a move in your TT, then use it first in your move loop, even before you start to generate moves.

And yes, at PV nodes is the same.