Oops? Two identical positions ...jwes wrote:I would guess it is an eval problem. Try doing a static evaluation of these two positions and see which your program thinks is better.
[d]8/8/2q4p/2k5/8/3Q1PP1/5K1P/8 w - - 0 1
[d]8/8/2q4p/2k5/8/3Q1PP1/5K1P/8 w - - 0 1
simple search yet a bug ?
Moderator: Ras
-
- Posts: 4052
- Joined: Thu May 15, 2008 9:57 pm
- Location: Berlin, Germany
- Full name: Sven Schüle
Re: simple search yet a bug ?
-
- Posts: 588
- Joined: Thu Mar 09, 2006 4:47 pm
- Location: Singapore
Re: simple search yet a bug ?
Code: Select all
i16 mat_table_w_half[9][9][3][3][3][3][3][3][3][3];
static int eval_kpk(const int side);
int eval(const int side, const int alpha, const int beta, const int ply) {
const int xside = side ^ 1;
int i, j, k;
assert(vBishop == vKnight);
assert(alpha < P_MATE);
assert(beta > M_MATE);
assert(db_board());
eval_type = EX;
if (!IS_SINGLE_PAWN);
else{
draw_move = 0;
j = eval_kpk(side);
ASSERT_COLOR_SYMM(j);
return j;
}
/*
Material Imbalance table
=============
can identify and flaged material draws - bug is here
*/
i = mat_table_w_half
[num_piece[0][Pawn]][num_piece[1][Pawn]]
[num_piece[0][Knight] < 3 ? num_piece[0][Knight] : 2]
[num_piece[1][Knight] < 3 ? num_piece[1][Knight] : 2]
[num_piece[0][Bishop] < 3 ? num_piece[0][Bishop] : 2]
[num_piece[1][Bishop] < 3 ? num_piece[1][Bishop] : 2]
[num_piece[0][Rook] < 3 ? num_piece[0][Rook] : 2]
[num_piece[1][Rook] < 3 ? num_piece[1][Rook] : 2]
[num_piece[0][Queen] < 3 ? num_piece[0][Queen] : 2]
[num_piece[1][Queen] < 3 ? num_piece[1][Queen] : 2];
const int phase = (i >> 3) & MAX_PHASE;
assert(phase <= MAX_PHASE);
if (!(i & FLAG_MASK));
else{
/*
// here is what is causing the bug; when commented out - ok
if (i & MF_DRAW){
draw_move = 0;
return 0;
}
*/
if (i & MF_EVAL_PST){
//easy returns - pst only
j = ((int)i >> 8) * 2;// w bonus
j -= side * j * 2;
ASSERT_COLOR_SYMM(j);
j += mat[side] - mat[xside] + ((pstopen * phase + pstend * (MAX_PHASE - phase)) >> 5);
ASSERT_COLOR_SYMM(j);
return (j <= -2 || j >= 2 ? j : -2);
}
}
// this is to test returning only mat+pst+bonus
opening[side] -= opening[xside];
ending[side] -= ending[xside];
i = mat[side] - mat[xside] + ((opening[side] * phase + ending[side] * (MAX_PHASE - phase)) >> 5);
ASSERT_COLOR_SYMM(i);
return (i <= -2 || i >= 2 ? i : -2);
...
// may continue usual eval(), eg. pawn-structure, passers.. ok
}
The above is the beginning of my eval().
My pre-calculated material tables will identify material draws like mat = 0, N/B draws etc. The bug is there. If I comment out the "draws", it will just do a QxQ as is expected. Whether just returning mat+pst+bonus or with further evaluation of pawn structures, passers, etc., the program now just wins the game simply as it should be. So it means that generally, the other parts of my eval() and search() is working normally.
It is this kind of bugs that shows itself only by playing in strange ways that is difficult to trace.
I have yet to go into the details of how my initialization of draws is bad.
Thanks to all,
Rasjid
-
- Posts: 588
- Joined: Thu Mar 09, 2006 4:47 pm
- Location: Singapore
Re: simple search yet a bug ?
Currently, my programs still have not the ability to do analysis as yours.vladstamate wrote:When analyzing in Plisk, for the first few plies it tries Qe3+ but then it find Qxc6 and sticks with it.
Also like Miguel said, notice how, as it searches deeper the score increases as well. So maybe your problem is depth? Or, if you have SEE maybe you value the trade as negative and somehow you prune the capture?
Regards,Code: Select all
1 0:0 +3.61 1.Qf4 Qd5 (92/0) 2 0:0 +3.85 1.Qe3+ Kb5 2.g4 (983/61) 3 0:0 +3.72 1.Qe3+ Kb5 2.g4 Qd6 (1874/117) 4 0:0 +3.73 1.Qe3+ Kd5 2.Qd3 Ke6 3.g4 (6661/416) 5 0:0 +3.70 1.Qe3+ Kd5 2.Qd2 Kc5 3.g4 Qf6 (16610/535) 6 0:0 +3.80 1.Qe3+ Kd5 2.Kg2 Qe6 3.Qd3 Kc6 4.g4 (44077/565) 7 0:0 +3.79 1.Qe3+ Kd5 2.g4 Qe6 3.Qxe6 Kxe6 4.f4 Kf6 5.Ke3 (110970/711) 8 0:0 +3.83 1.Qe3+ Kd5 2.g4 Qe6 3.Qd2 Kc6 4.Kg2 h5 5.Qc3 Kd7 (214562/809) 9 0:0 +3.83 1.Qe3+ Kd5 2.Qd2 Ke5 3.g4 Qf6 4.Qe3 Kd5 5.Kg2 h5 (411336/849) Pondering: Qxc6 (1/32) 10 0:1 +3.84 1.Qe3+ Kd5 2.Qd2 Ke5 3.g4 Qf6 4.Qe3 Kd6 5.h3 Qe6 6.Qf4 Kc6 7.Kg1 (993531/872) Pondering: Qxc6 (1/32) 11 0:2 +4.26 1.Qxc6+ Kxc6 2.g4 Kd5 3.Ke3 Kd6 4.f4 Kd5 5.h3 Kd6 6.f5 Ke5 (2325365/882) Pondering: Qe1 (30/32) 12 0:3 +4.16 1.Qxc6+ Kxc6 2.g4 Kd5 3.Ke3 Kd6 4.f4 Kd5 5.Kd3 Ke6 6.Kd4 Kf6 7.h4 (3272036/900) Pondering: Qd4 (10/32) 13 0:5 +4.38 1.Qxc6+ Kxc6 2.g4 Kd5 3.Ke3 Kd6 4.f4 Kd5 5.Kd3 Kd6 6.Kd4 h5 7.gxh5 Ke6 (4895855/939) Pondering: Kg2 (3/32) Pondering: Qd4 (10/32) 14 0:9 +4.44 1.Qxc6+ Kxc6 2.g4 Kd5 3.Ke3 h5 4.gxh5 Ke6 5.h3 Kf6 6.Kf4 Kg7 7.Kg5 Kf7 8.f4 (8614184/943) Pondering: f4 (2/32) Pondering: g4 (4/32) Pondering: Ke3 (5/32) Pondering: Qd5 (11/32) Pondering: Qf4 (20/32) 15 0:17 +4.58 1.Qxc6+ Kxc6 2.g4 Kd5 3.Ke3 Kd6 4.f4 Kd5 5.h3 Kd6 6.Kd4 Ke6 7.Ke4 Kd6 8.f5 Kc5 (16656353/967) Pondering: f4 (2/32) Pondering: g4 (3/32) Pondering: Qc4 (14/32) Pondering: Qe2 (16/32) Pondering: Qg6 (22/32) 16 0:30 +4.76 1.Qxc6+ Kxc6 2.g4 Kd5 3.Ke3 Kd6 4.Ke4 Ke7 5.f4 Kf6 6.h4 Ke7 7.g5 h xg5 8.fxg5 Ke6 9.h5 (29109385/967)
Vlad.
After commenting out the "draws" that gives the bug, it takes < 1 sec to know QxQ is best. I can't yet give various scores for the different choices.
Intuitively, I expected a program w/o "bugs" to be able to end the game easily. Remember Rybka and KQK !
Rasjid.
-
- Posts: 4052
- Joined: Thu May 15, 2008 9:57 pm
- Location: Berlin, Germany
- Full name: Sven Schüle
Re: simple search yet a bug ?
Nice definition of a 10-dimensional arrayChan Rasjid wrote:Code: Select all
i16 mat_table_w_half[9][9][3][3][3][3][3][3][3][3]; //... i = mat_table_w_half [num_piece[0][Pawn]][num_piece[1][Pawn]] [num_piece[0][Knight] < 3 ? num_piece[0][Knight] : 2] [num_piece[1][Knight] < 3 ? num_piece[1][Knight] : 2] [num_piece[0][Bishop] < 3 ? num_piece[0][Bishop] : 2] [num_piece[1][Bishop] < 3 ? num_piece[1][Bishop] : 2] [num_piece[0][Rook] < 3 ? num_piece[0][Rook] : 2] [num_piece[1][Rook] < 3 ? num_piece[1][Rook] : 2] [num_piece[0][Queen] < 3 ? num_piece[0][Queen] : 2] [num_piece[1][Queen] < 3 ? num_piece[1][Queen] : 2]; //... /* // here is what is causing the bug; when commented out - ok if (i & MF_DRAW){ draw_move = 0; return 0; } */

So obviously one of the following conditions erroneously evaluates to true after initializing the table:
Code: Select all
(mat_table_w_half[2][0][0][0][0][0][0][0][0][0] & MF_DRAW) != 0
(mat_table_w_half[2][1][0][0][0][0][0][0][0][0] & MF_DRAW) != 0
(mat_table_w_half[2][0][0][0][0][0][0][0][1][1] & MF_DRAW) != 0
(mat_table_w_half[2][1][0][0][0][0][0][0][1][1] & MF_DRAW) != 0
Sven
-
- Posts: 588
- Joined: Thu Mar 09, 2006 4:47 pm
- Location: Singapore
Re: simple search yet a bug ?
You probably are right - but all here are just too fast for me. Like the one who sees the needle that floated up from the ocean floor.Sven Schüle wrote:Nice definition of a 10-dimensional arrayChan Rasjid wrote:Code: Select all
i16 mat_table_w_half[9][9][3][3][3][3][3][3][3][3]; //... i = mat_table_w_half [num_piece[0][Pawn]][num_piece[1][Pawn]] [num_piece[0][Knight] < 3 ? num_piece[0][Knight] : 2] [num_piece[1][Knight] < 3 ? num_piece[1][Knight] : 2] [num_piece[0][Bishop] < 3 ? num_piece[0][Bishop] : 2] [num_piece[1][Bishop] < 3 ? num_piece[1][Bishop] : 2] [num_piece[0][Rook] < 3 ? num_piece[0][Rook] : 2] [num_piece[1][Rook] < 3 ? num_piece[1][Rook] : 2] [num_piece[0][Queen] < 3 ? num_piece[0][Queen] : 2] [num_piece[1][Queen] < 3 ? num_piece[1][Queen] : 2]; //... /* // here is what is causing the bug; when commented out - ok if (i & MF_DRAW){ draw_move = 0; return 0; } */
![]()
So obviously one of the following conditions erroneously evaluates to true after initializing the table:Just print these four entries at the end of the table init?Code: Select all
(mat_table_w_half[2][0][0][0][0][0][0][0][0][0] & MF_DRAW) != 0 (mat_table_w_half[2][1][0][0][0][0][0][0][0][0] & MF_DRAW) != 0 (mat_table_w_half[2][0][0][0][0][0][0][0][1][1] & MF_DRAW) != 0 (mat_table_w_half[2][1][0][0][0][0][0][0][1][1] & MF_DRAW) != 0
Sven
I will be slower.
BTW, is anyone laughing at my tables or is there REALLY something wrong with 10 dimensions, etc...
I just do what was said Vasik Rajlich did - large tables is good for the elo - 4 mega bytes best. I don't know how to peek into the innards of Rybka 3, so just do from guts.
Rasjid
-
- Posts: 778
- Joined: Sat Jul 01, 2006 7:11 am
Re: simple search yet a bug ?
Sorry, second position should beSven Schüle wrote:Oops? Two identical positions ...jwes wrote:I would guess it is an eval problem. Try doing a static evaluation of these two positions and see which your program thinks is better.
[d]8/8/2q4p/2k5/8/3Q1PP1/5K1P/8 w - - 0 1
[d]8/8/2q4p/2k5/8/3Q1PP1/5K1P/8 w - - 0 1
[d]8/8/2k4p/8/8/5PP1/5K1P/8 w - - 0 1
-
- Posts: 4052
- Joined: Thu May 15, 2008 9:57 pm
- Location: Berlin, Germany
- Full name: Sven Schüle
Re: simple search yet a bug ?
I did not intend to laugh at your tables, or at you for creating them, nor is there anything wrong with it. It just looked funny for me since I did not see 10-dim arrays quite often yet, but in fact there is nothing bad about it. So please apologize if my posting gave the wrong impression that there were something bad or laughable. Sometimes people smile, or even laugh, just because they are surprised.Chan Rasjid wrote:BTW, is anyone laughing at my tables or is there REALLY something wrong with 10 dimensions, etc...
I just do what was said Vasik Rajlich did - large tables is good for the elo - 4 mega bytes best. I don't know how to peek into the innards of Rybka 3, so just do from guts.
Sven
-
- Posts: 28391
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: simple search yet a bug ?
a nice rule of thumb is this:
If the leading side has no pawns, halve the score. If ther are no pieces, double the score.
With those rules, I would be surprised if there was any reluctance trading the Queen. Even discarding passer bonuses you would be at +4 after the trade...
If the leading side has no pawns, halve the score. If ther are no pieces, double the score.
With those rules, I would be surprised if there was any reluctance trading the Queen. Even discarding passer bonuses you would be at +4 after the trade...
-
- Posts: 588
- Joined: Thu Mar 09, 2006 4:47 pm
- Location: Singapore
Re: simple search yet a bug ?
Code: Select all
void init_material_table(){
int wp, bp, wn, bn, wb, bb, wr, br, wq, bq;
int i, x, f, phase, mat_w, mat_b, mat_diff_w;
memset(mat_table_w_half, 0, sizeof(mat_table_w_half));
for (wp = 0; wp <= 8; ++wp){
for (bp = 0; bp <= 8; ++bp){
for (wn = 0; wn <= 2; ++wn){
for (bn = 0; bn <= 2; ++bn){
for (wb = 0; wb <= 2; ++wb){
for (bb = 0; bb <= 2; ++bb){
for (wr = 0; wr <= 2; ++wr){
for (br = 0; br <= 2; ++br){
for (wq = 0; wq <= 2; ++wq){
for (bq = 0; bq <= 2; ++bq){
x = 0;
if (wq == 2 || bq == 2){
mat_diff_w = -1;
}else{
mat_w = (wp * vPawn + (wn + wb) * vKnight + wr * vRook + wq * vQueen);
mat_b = (bp * vPawn + (bn + bb) * vKnight + br * vRook + bq * vQueen);
mat_diff_w = mat_w - mat_b;
/*
bug - missing brackets
if (wp == 0 && bp == 0
&& (mat_w == 0 && mat_b <= vKnight)
|| (mat_w == vKnight && mat_b <= vKnight)){
mat_table_w_half[wp][bp][wn][bn][wb][bb][wr][br][wq][bq] = MF_DRAW;
continue;
}
*/
//now ok
if (wp == 0 && bp == 0
&& ((mat_w == 0 && mat_b <= vKnight)
|| (mat_w == vKnight && mat_b <= vKnight))){
mat_table_w_half[wp][bp][wn][bn][wb][bb][wr][br][wq][bq] = MF_DRAW;
continue;
}
// bonus for trading pieces when a side has material advantage
if (mat_diff_w){
if (mat_diff_w > 0){
//x --> 0.5 as mat-->0
x += mat_diff_w * (vMatMax*vMatMax - mat_w*mat_w) / (2 * vMatMax*vMatMax);
}else{
x += mat_diff_w * (vMatMax*vMatMax - mat_b*mat_b) / (2 * vMatMax*vMatMax);
}
}
}
...
I still have to first follow the "non-sophisticated" way to detect bugs - go to the codes. So there are simple brackets missing. Fixing this, I found I could enable "draws" and everything's ok.
A note on bugs
========
Earlier I suspected that the bug is in failure of my evaluation that encourages exchanging pieces when a side is up in material - Karlo Bala also brought this up. I had this few lines of codes and had no suspicion they have problems. Because of this bug, I happen to notice that these lines of codes do not work! If anyone has some lines of codes in the eval() that attempts to encourage trading of pieces, it is likely wrong!. (I think ?) It could only be hard-coded in a material tables. Please see my example above after the "draws". I am not sure if using square-scaling is ok. The games below shows some number of draws and the play is normal.
I could only print out this game with "draws" fixed :-
note the "draws"
RasjidCowrie Chess Version 1.0, 3rd Feb 2010
ptr_malloc (0x7f20a72ca010), pTT (0x7f20a72ca080)
Transposition Table Size( 32 MB )
No of Entry( 2097152 )
tt_entry Size(16 byte)
// 40 moves / 40 secs.
NPS = 398799
root search repeat PV x 5 returns !
rootscore 329, move 1155204451
1 e4c6 ( 329) depth( 6) pvL( 2) ply(14) nps( 264963) nPc(5) stage(1) ftime(7) poll(0)
sec(0.74, 0.06) nodes(14573) q(3.5%) h(54.6%) f(41.9%) FH(43.2%)
Hash hit(37.4%) matOWrite( 56.36) draw(1) null(0.0%)
SRC ext(3.11%) reduc(44.70% / 6.05%) ply1( 4) horz(0.00%) futD12(2.15%) pruneLM (0.00%)
QS evFL(0) lowMat(0.05%) see(0.12%)
EV (99.79%) quick-all(31.39%) nom(4.39%) bound(23.19%) fut(3.81%) short(0.00%) 300(0.00%)
1 reply c5c6
2 f3f4 ( 376) depth(11) pvL( 2) ply(26) nps( 1743306) nPc(4) stage(1) ftime(111) poll(1)
sec(0.76, 0.53) nodes(925696) q(3.4%) h(40.2%) f(56.4%) FH(34.1%)
Hash hit(52.4%) matOWrite( 54.35) draw(14409) null(0.0%)
SRC ext(19.45%) reduc(46.44% / 2.47%) ply1( 30) horz(0.00%) futD12(21.66%) pruneLM (0.00%)
QS evFL(0) lowMat(0.46%) see(0.06%)
EV (99.32%) quick-all(55.13%) nom(8.12%) bound(28.11%) fut(18.90%) short(0.00%) 300(0.00%)
2 reply c6d5
root search repeat PV x 5 returns !
rootscore 376, move 553814185
3 f2e3 ( 376) depth( 7) pvL( 8) ply(15) nps( 1743306) nPc(4) stage(1) ftime(8) poll(0)
sec(0.77, 0.01) nodes(19157) q(1.1%) h(47.0%) f(51.9%) FH(34.0%)
Hash hit(73.3%) matOWrite( 8.08) draw(41) null(0.0%)
SRC ext(32.49%) reduc(56.46% / 0.78%) ply1( 12) horz(0.00%) futD12(11.45%) pruneLM (0.00%)
QS evFL(0) lowMat(0.24%) see(0.02%)
EV (99.91%) quick-all(71.64%) nom(0.80%) bound(49.54%) fut(21.29%) short(0.00%) 300(0.00%)
3 reply d5e6
root search repeat PV x 5 returns !
rootscore 376, move 587238642
4 g3g4 ( 376) depth( 8) pvL( 2) ply(14) nps( 1743306) nPc(4) stage(1) ftime(9) poll(0)
sec(0.78, 0.03) nodes(38165) q(1.8%) h(45.7%) f(52.5%) FH(36.2%)
Hash hit(61.9%) matOWrite( 35.50) draw(176) null(0.0%)
SRC ext(23.79%) reduc(47.58% / 2.21%) ply1( 13) horz(0.00%) futD12(17.73%) pruneLM (0.00%)
QS evFL(0) lowMat(0.20%) see(0.08%)
EV (99.88%) quick-all(52.31%) nom(3.89%) bound(34.09%) fut(14.32%) short(0.00%) 300(0.00%)
4 reply e6d6
root search repeat PV x 5 returns !
rootscore 403, move 528648418
5 e3e4 ( 403) depth( 9) pvL( 8) ply(20) nps( 1609703) nPc(4) stage(1) ftime(10) poll(0)
sec(0.80, 0.22) nodes(347696) q(4.5%) h(36.3%) f(59.2%) FH(32.8%)
Hash hit(57.7%) matOWrite( 40.69) draw(4169) null(0.0%)
SRC ext(24.22%) reduc(48.59% / 1.71%) ply1( 30) horz(0.00%) futD12(29.14%) pruneLM (0.00%)
QS evFL(0) lowMat(0.77%) see(0.16%)
EV (98.84%) quick-all(74.40%) nom(10.73%) bound(34.80%) fut(28.87%) short(0.00%) 300(0.00%)
5 reply d6e6
root search repeat PV x 5 returns !
rootscore 403, move 524324601
6 h2h4 ( 403) depth( 6) pvL( 2) ply(12) nps( 1609703) nPc(4) stage(1) ftime(7) poll(0)
sec(0.82, 0.00) nodes(2754) q(1.1%) h(42.5%) f(56.4%) FH(28.7%)
Hash hit(76.7%) matOWrite( 8.08) draw(6) null(0.0%)
SRC ext(34.36%) reduc(55.02% / 1.75%) ply1( 13) horz(0.00%) futD12(19.76%) pruneLM (0.00%)
QS evFL(0) lowMat(0.00%) see(0.00%)
EV (99.83%) quick-all(66.86%) nom(1.09%) bound(47.16%) fut(18.61%) short(0.00%) 300(0.00%)
6 reply e6f7
root search repeat PV x 5 returns !
rootscore 540, move 587238707
7 g4g5 ( 540) depth(12) pvL( 2) ply(26) nps( 1232535) nPc(4) stage(1) ftime(13) poll(0)
sec(0.84, 0.15) nodes(191043) q(3.0%) h(32.8%) f(64.2%) FH(37.5%)
Hash hit(42.5%) matOWrite( 48.23) draw(6990) null(0.0%)
SRC ext(27.34%) reduc(41.38% / 2.70%) ply1( 30) horz(0.00%) futD12(42.43%) pruneLM (0.00%)
QS evFL(0) lowMat(0.45%) see(0.51%)
EV (98.83%) quick-all(71.03%) nom(7.30%) bound(31.27%) fut(32.46%) short(0.00%) 300(0.00%)
7 reply h6g5
root search repeat PV x 5 returns !
rootscore 566, move 839159099
8 h4g5 ( 566) depth( 6) pvL( 2) ply(10) nps( 1232535) nPc(2) stage(1) ftime(7) poll(0)
sec(0.86, 0.00) nodes(395) q(7.6%) h(27.3%) f(65.1%) FH(20.6%)
Hash hit(73.6%) matOWrite( 1.04) draw(6) null(0.0%)
SRC ext(34.63%) reduc(43.58% / 0.00%) ply1( 3) horz(0.00%) futD12(21.40%) pruneLM (0.00%)
QS evFL(0) lowMat(0.00%) see(0.72%)
EV (96.38%) quick-all(87.97%) nom(6.02%) bound(17.29%) fut(64.66%) short(0.00%) 300(0.00%)
8 reply f7f8
root search repeat PV x 5 returns !
rootscore 566, move 566267252
9 g5g6 ( 566) depth( 9) pvL( 3) ply(20) nps( 1232535) nPc(2) stage(1) ftime(10) poll(0)
sec(0.89, 0.01) nodes(13384) q(0.9%) h(20.7%) f(78.5%) FH(35.7%)
Hash hit(52.5%) matOWrite( 18.30) draw(673) null(0.0%)
SRC ext(30.28%) reduc(26.87% / 4.25%) ply1( 17) horz(0.00%) futD12(41.35%) pruneLM (0.00%)
QS evFL(0) lowMat(0.10%) see(0.62%)
EV (99.13%) quick-all(63.37%) nom(2.27%) bound(6.75%) fut(54.34%) short(0.00%) 300(0.00%)
9 reply f8g7
root search repeat PV x 5 returns !
rootscore 716, move 478317347
10 e4f5 ( 716) depth( 7) pvL( 1) ply(11) nps( 1232535) nPc(2) stage(1) ftime(8) poll(0)
sec(0.92, 0.00) nodes(326) q(5.8%) h(26.1%) f(68.1%) FH(23.9%)
Hash hit(68.0%) matOWrite( 0.00) draw(4) null(0.0%)
SRC ext(20.27%) reduc(37.39% / 1.20%) ply1( 2) horz(0.00%) futD12(32.88%) pruneLM (0.00%)
QS evFL(0) lowMat(0.00%) see(0.00%)
EV (97.12%) quick-all(88.12%) nom(2.97%) bound(12.87%) fut(72.28%) short(0.00%) 300(0.00%)
10 reply g7h6
root search repeat PV x 5 returns !
rootscore 1211, move 478317420
11 f5f6 ( 1211) depth( 9) pvL( 2) ply(18) nps( 1232535) nPc(2) stage(1) ftime(10) poll(0)
sec(0.94, 0.04) nodes(53722) q(0.1%) h(57.6%) f(42.3%) FH(37.5%)
Hash hit(52.6%) matOWrite( 61.97) draw(1182) null(0.0%)
SRC ext(59.57%) reduc(37.04% / 0.71%) ply1( 4) horz(0.00%) futD12(7.15%) pruneLM (0.00%)
QS evFL(0) lowMat(0.00%) see(0.01%)
EV (99.99%) quick-all(93.63%) nom(81.09%) bound(0.07%) fut(12.47%) short(0.00%) 300(0.00%)
11 reply h6h5
root search repeat PV x 5 returns !
rootscore 1211, move 524324277
12 g6g7 ( 1211) depth( 6) pvL( 2) ply(10) nps( 1232535) nPc(2) stage(1) ftime(7) poll(0)
sec(0.97, 0.00) nodes(661) q(0.0%) h(54.6%) f(45.4%) FH(48.3%)
Hash hit(35.3%) matOWrite( 58.06) draw(4) null(0.0%)
SRC ext(46.67%) reduc(22.33% / 0.00%) ply1( 2) horz(0.00%) futD12(33.00%) pruneLM (0.00%)
QS evFL(0) lowMat(0.00%) see(0.00%)
EV (100.00%) quick-all(88.37%) nom(72.85%) bound(1.66%) fut(13.85%) short(0.00%) 300(0.00%)
12 reply h5g4
root search repeat PV x 5 returns !
rootscore 1211, move 524323627
13 f4f5 ( 1211) depth( 6) pvL( 2) ply(12) nps( 1232535) nPc(2) stage(1) ftime(7) poll(0)
sec(1.00, 0.00) nodes(7759) q(0.1%) h(63.0%) f(36.9%) FH(29.6%)
Hash hit(87.8%) matOWrite( 0.47) draw(0) null(0.0%)
SRC ext(71.97%) reduc(59.16% / 0.00%) ply1( 0) horz(0.00%) futD12(1.64%) pruneLM (0.00%)
QS evFL(0) lowMat(0.00%) see(0.00%)
EV (99.98%) quick-all(99.16%) nom(98.98%) bound(0.00%) fut(0.18%) short(0.00%) 300(0.00%)
13 reply g4f4
root search repeat PV x 5 returns !
rootscore 1904, move 478317933
14 f6g6 ( 1904) depth(10) pvL( 1) ply(20) nps( 1232535) nPc(2) stage(1) ftime(11) poll(0)
sec(1.04, 0.02) nodes(19955) q(2.3%) h(42.1%) f(55.6%) FH(35.3%)
Hash hit(46.7%) matOWrite( 56.35) draw(54) null(0.0%)
SRC ext(42.96%) reduc(10.97% / 0.74%) ply1( 2) horz(0.00%) futD12(7.55%) pruneLM (0.00%)
QS evFL(0) lowMat(0.01%) see(0.00%)
EV (99.35%) quick-all(95.12%) nom(84.74%) bound(0.01%) fut(10.38%) short(0.00%) 300(0.00%)
14 reply f4e5
root search repeat PV x 5 returns !
rootscore 1926, move 545295212
15 f5f6 ( 1926) depth( 6) pvL( 2) ply(14) nps( 1232535) nPc(2) stage(1) ftime(7) poll(0)
sec(1.07, 0.01) nodes(9199) q(11.7%) h(32.3%) f(56.0%) FH(36.9%)
Hash hit(47.1%) matOWrite( 60.40) draw(152) null(0.0%)
SRC ext(52.02%) reduc(18.39% / 0.00%) ply1( 4) horz(0.00%) futD12(49.94%) pruneLM (0.00%)
QS evFL(0) lowMat(0.00%) see(0.00%)
EV (96.07%) quick-all(89.55%) nom(67.83%) bound(0.49%) fut(21.23%) short(0.00%) 300(0.00%)
15 reply e5d6
root search repeat PV x 5 returns !
rootscore 7977, move 1216409078
16 g7g8q ( 7977) depth(11) pvL( 1) ply(18) nps( 1238653) nPc(2) stage(1) ftime(12) poll(0)
sec(1.11, 0.13) nodes(161025) q(1.0%) h(44.8%) f(54.2%) FH(27.8%)
Hash hit(42.2%) matOWrite( 80.01) draw(434) null(0.0%)
SRC ext(43.96%) reduc(2.11% / 0.05%) ply1( 7) horz(0.00%) futD12(9.00%) pruneLM (0.00%)
QS evFL(0) lowMat(0.00%) see(0.00%)
EV (99.67%) quick-all(98.82%) nom(96.10%) bound(0.02%) fut(2.70%) short(0.00%) 300(0.00%)
16 reply d6c5
root search repeat PV x 5 returns !
rootscore 7979, move 524323757
17 f6f7 ( 7979) depth(11) pvL( 1) ply(11) nps( 1238653) nPc(2) stage(1) ftime(7) poll(0)
sec(1.16, 0.01) nodes(18289) q(0.0%) h(0.0%) f(100.0%) FH(0.0%)
Hash hit(42.8%) matOWrite( 75.73) draw(0) null(0.0%)
SRC ext(0.00%) reduc(0.00% / nan%) ply1( 0) horz(0.00%) futD12(0.00%) pruneLM (0.00%)
QS evFL(0) lowMat(nan%) see(nan%)
EV (nan%) quick-all(nan%) nom(nan%) bound(nan%) fut(nan%) short(nan%) 300(nan%)
17 reply c5d5
root search repeat PV x 5 returns !
rootscore 7989, move 1216408558
-
- Posts: 344
- Joined: Wed Sep 23, 2009 5:56 pm
- Location: Germany
Re: simple search yet a bug ?
What you describe is really not a buggy search, but rather an eval problem. Do you want to know what a buggy search is? After playing around with aspiration windows a bit (probably too much
), I get this:


Code: Select all
8/8/2q4p/2k5/4Q3/5PP1/5K1P/8 w - -
Engine: ChessMind 0.81 (0 MB)
by metax
10/22 0:01 +5.21 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Ke3 Kd6
4.Ke4 Ke7 5.g4 Kd6 6.f4 Kc5 (283.404) 271
11/31 0:01 +5.18 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Ke3 Kd6
4.Ke4 Ke7 5.g4 Kd6 6.f4 Kc5 7.f5 (525.645) 290
12/32 0:03 +5.23 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Ke3 Kd6
4.Ke4 Ke7 5.g4 Ke6 6.f4 Kf6 7.h3 Ke6
8.f5+ (1.145.350) 320
13/32 0:05 +5.90++ 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Ke3 Kd6
4.Ke4 Ke7 5.g4 Ke6 6.f4 Kf6 7.h3 Ke6
8.f5+ (1.871.385) 336
13/32 0:05 +6.67++ 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Ke3 Kd6
4.Ke4 Ke7 5.g4 Ke6 6.f4 Kf6 7.h3 Ke6
8.f5+ (1.891.408) 337
13/34 0:06 +6.57-- 1.Qc2+ Kb6 (2.081.527) 340
13/36 0:07 +5.87-- 1.Qc2+ Kb6 (2.649.803) 344
13/37 0:08 +5.23 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Ke3 Kd6
4.Ke4 Ke7 5.g4 Ke6 6.f4 Kf6 7.h3 Ke6
8.f5+ Kd6 (3.144.238) 355
14/37 0:13 +5.58++ 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Ke3 Kd6
4.Ke4 Ke7 5.g4 Ke6 6.f4 Kf6 7.h3 Ke6
8.f5+ Kd6 (4.934.206) 360
14/37 0:13 +6.59++ 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Ke3 Kd6
4.Ke4 Ke7 5.g4 Ke6 6.f4 Kf6 7.h3 Ke6
8.f5+ Kd6 (4.999.949) 360
14/38 0:14 +6.49-- 1.Qc2+ Kb6 (5.304.870) 362
14/38 0:16 +5.79-- 1.Qc2+ Kb6 (6.025.391) 365
14/38 0:19 +5.54 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Kg2 Kd6
4.Kh3 Ke5 5.Kg4 Kd4 6.f4 Ke4 7.Kh5 Kf3
8.Kxh6 Kg2 (7.354.001) 367
15/38 0:21 +5.90++ 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.Kg2 Kd6
4.Kh3 Ke5 5.Kg4 Kd4 6.f4 Ke4 7.Kh5 Kf3
8.Kxh6 Kg2 (7.783.508) 369
15/41 0:23 +5.80-- 1.Qc2+ Kb6 (8.626.817) 373
15/41 0:35 +6.28++ 1.Qc2+ Kb6 (12.893.048) 360
15/41 0:37 +6.18-- 1.Qc2+ Kb6 (13.455.372) 361
15/41 0:37 +6.53++ 1.Qc2+ Kb6 (13.469.765) 362
15/41 0:37 +6.43-- 1.Qc2+ Kb6 (13.607.335) 362
15/42 0:42 +5.78 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.f4 Kd6
4.Kf3 Ke7 5.Kg4 Ke6 6.Kh5 Kf5 7.Kxh6 Kg4
8.Kg7 Kh3 9.Kf6 (15.533.168) 366
16/42 0:59 +6.13++ 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.f4 Kd6
4.Kf3 Ke7 5.Kg4 Ke6 6.Kh5 Kf5 7.Kxh6 Kg4
8.Kg7 Kh3 9.Kf6 (21.535.229) 360
16/42 0:59 +6.71++ 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.f4 Kd6
4.Kf3 Ke7 5.Kg4 Ke6 6.Kh5 Kf5 7.Kxh6 Kg4
8.Kg7 Kh3 9.Kf6 (21.582.121) 360
16/42 1:04 +7.31 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.g4 Kd6
4.Kg3 Ke7 5.Kh4 Kf6 6.Kh5 Ke5 7.Kxh6 Kf4
8.g5 Ke5 9.f4+ Kd4 10.Kg6 (23.336.629) 363
17/45 1:40 +6.96-- 1.Qc2+ Kb6 (36.460.964) 362
17/45 2:51 +7.31++ 1.Qc2+ Kb6 (60.473.177) 353
17/47 3:01 +7.21-- 1.Qc2+ Kb6 (64.368.874) 354
17/47 3:11 +7.48 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.g4 Kd6
4.Kg3 Ke7 5.Kh4 Kf6 6.Kh5 Ke5 7.Kxh6 Kf4
8.g5 Ke5 9.g6 Kf6 10.g7 (68.095.652) 354
18/47 3:25 +7.83++ 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.g4 Kd6
4.Kg3 Ke7 5.Kh4 Kf6 6.Kh5 Ke5 7.Kxh6 Kf4
8.g5 Ke5 9.g6 Kf6 10.g7 (73.779.395) 359
18/50 3:31 +7.73-- 1.Qc2+ Kb6 (76.042.446) 359
18/50 5:22 +7.87 1.Qc2+ Kb6 2.Qxc6+ Kxc6 3.f4 Kd6
4.Kf3 Ke7 5.Kg4 Kf6 6.Kh5 Kg7 7.h4 Kh7
8.f5 Kg8 9.Kxh6 Kf7 10.g4 Kf6 (114.716.869) 355
best move: Qe4-c2 time: 5:32.438 min n/s: 356.000 nodes: 117.812.588


