Page 1 of 1

Unconditional Futilty prune at horizon works

PostPosted: 31 Mar 2005, 09:57
by Chan Rasjid
My earlier test that futility prune makes strange moves is simply due to bugs.

It seems to work perfectly now.It has a 2-0 win against tscp playing two sides
and this 2 games may be significant confirmation that unconditional futility
prune at horizon depths, if done right, should at least not weaken a program.

My SnailAg currently is one of the weakest (a silly low nps) program
simply because it started with an elaborate attempt to generate almost full
chess information by eval(), attack-tables,qsort,move-order, nearly all
legal moves with check status fully known, etc..From the two log files,
it can be seen that significant % of nodes were pruned. If a weak
program wrongly prunes high % moves, it is unlikey ever to win. Futility is
applied at both full search() and also root-search as futily may be trigered
here as some bad moves are reduced by one ply.

Unconditonanal means only moves that give checks are excluded as this is
the only strict condition in the idea of futility at horizon. Futility
at pre-horizon is actually something very different although the names are
similar. Even moves when in-check are included. This can be done after
a valid move is found that confirms there is no mate. In snailchess,
generate-moves may know there is at least a legal move when futility
can start for all moves.

Futility equivalent to early fail-low
====================================
There is a strict analysis that can show quite clear what the risk is.

When a move that is a horizon move after adjusted for extention/reduction
is make(),it enters QS. If a call to eval() fails high, then the horizon
move fail-low. Futility attempts to determine fail-low without the need to
call makemove(), eval() and takeback(). As most allocated time is spent at
the leaves, time savings in early fail-low may be significant.

QS fail high can strictly be known w/o calling eval() IF we strictly
limit eval() score to say 3 pawns by comparing material difference
with beta+3-pawn. Eval() need only to limit score only for the xside, ie
-ve score. Positive scores for side need no restricion.

As it has been said " ... there are few positions worth more than one and
half pawn", a 3-pawn limit is applicable in many postions,exceptions being
maybe king-safety. One other well known exception is xside pawn races that
may be scored near 8-pawn. But this has an easily identifiable condtion,
ie side has no sliding piece and xside has a pass-exposed pawn. So we may
use a futility margin of 9-pawn for this and disable eval() bounds.

One exception when futility early fail-low breaks the equivalent relation in QS.
If there is hashing, in QS there is hashpobe() before eval(). If a futile pruned move
is make() and enters QS, hash may have a hit with draft >0 that may cause
a FAIL-LOW! whereas eval(), if reached, will be a fail-high. This will be cleared
in the next depth and probably do not occur often with a 3-pawn material difference.

Best regards
Rasjid


The following are my codes:-


#define FUTILITY_MARGIN_1 300
#define FUTILITY_MARGIN_1_EG 300
#define FUTILITY_MARGIN_2 900


int full/root-search(){

list through all moves

if rept-3()//currently not working
continue;

i = 0;
if (ps->depth+fExt/60<=1// horizon
&& mtl[side]-mtl[xside]<ps->alpha-FUTILITY_MARGIN_1_EG
&& !(ptrMoveStack->mv.b.bits&64//checks
//in-check
|| (ps->flag&F_C && !(pv[ply][ply].u || ps->flag&F_VALID_MOVE))) ){
if (!(ptrMoveStack->mv.b.bits&5)){//capt/ep
i = mtl[side]-mtl[xside];
}else if (ptrMoveStack->mv.b.bits&1){
i = mtl[side]-mtl[xside]
+piece_value[brdPPC(ptrMoveStack->mv.b.to)->pc];
}else{//ep
i = mtl[side]-mtl[xside]+vPAWN;
}

if (ptrMoveStack->mv.b.bits&32)//promote
i += piece_value[(ptrMoveStack->mv.b.promote_checkSq&3)+1]
-vPAWN;
if (i<ps->alpha
-(((!(ps->flag&F_XSIDE_BRQ) ||
(ptrMoveStack->mv.b.bits&1
&& ps->flag&F_XSIDE_1BRQ
&& brdPPC(ptrMoveStack->mv.b.to)->pc>=2))
&& pawn_count[side])
? FUTILITY_MARGIN_2
: (stage<2 ? FUTILITY_MARGIN_1 : FUTILITY_MARGIN_1_EG))){

assert(ps->alpha > M_MATE);
assert(!pv[ply][ply].u ?ps->alpha == ps->alpha0: ps->alpha >= ps->alpha0);
if (pv[ply][ply].u // move found
//king's move/ep may be invalid
|| (brdPPC(ptrMoveStack->mv.b.from)->pc<5
&& !(ptrMoveStack->mv.b.bits&4)//ep
)){
if (i>ps->best && ps->alpha==ps->alpha0){
ps->best = i;
ps->best_type = T_UB;//may end as FL
pv[ply][ply].u = ptrMoveStack->mv.u;
}
assert(pv[ply][ply].u);
follow_pv = 0;
hash = *ptr_hash_dat;
phash = ps->phash;
++prunedMate;
ps->flag|=F_FUTILE_PRUNED;
continue;
}
//king's / ep may be invalid
assert(brdPPC(ptrMoveStack->mv.b.from)->pc==5
|| ptrMoveStack->mv.b.bits&4);
//i = True, test king/ep valid and prune
}else i = 0;
}

makemove(ptrMoveStack->mv.b);

if (invalid){
takeback();
continue;
}

if (i){//test futility prune for king's/ep if valid
takeback();
ps->flag|=F_FUTILE_PRUNED;
++prunedMate;
ps->best = i;
ps->best_type = T_UB;//may end as FL
pv[ply][ply].u = ptrMoveStack->mv.u;
hash = *ptr_hash_dat;
phash = ps->phash;
follow_pv = 0;
continue;
}

.....
.../

return;
}


int q-search(){

//restrict eval()

score = EVAL[stage]();
if (slide[side] || !max_pawn[xside]) // xside cannot race to promote
score = max(score, -300);
score += mtl[side]-mtl[xside];

return;
}

Processor - 1st generation P4 1.4 Ghz, 128 MB
SnailChess ?Silver-
Search algorithm - alphabeta
Pawn Hash Size 0.75 MB, record size (24) bytes
Hash Size 16.00 MB, record size 16, records 1048576
no nullmove
various extention, reduction
game 1


[Event "Computer chess game"]
[Site "P4"]
[Date "2005.03.31"]
[Round "-"]
[White "TSCP"]
[Black "SnailAg"]
[Result "0-1"]
[TimeControl "40/30"]

1. e4 e5 2. Nf3 Nf6 3. Nc3 Nc6 4. Bc4 h6 5. d3 Bd6 6. O-O Bb4 7. Nd5 d6 8.
Bb5 Ba5 9. Bxc6+ bxc6 10. Nxf6+ Qxf6 11. Bd2 Bxd2 12. Nxd2 O-O 13. Qf3 Qxf3
14. Nxf3 Bd7 15. Rfb1 c5 16. Nd2 Rfd8 17. Nc4 Rab8 18. c3 Be6 19. b3 Bxc4
20. dxc4 Kf8 21. f3 Ke7 22. Kf2 Rb6 23. Ke3 Ke6 24. Rb2 g6 25. Rd2 Rdb8 26.
Rad1 h5 27. g3 f6 28. h4 f5 29. Rd5 f4+ 30. gxf4 exf4+ 31. Kxf4 a6 32. e5
Rf8+ 33. Ke4 Rh8 34. Rg1 Rh6 35. Kf4 Kf7 36. Re1 Rh7 37. Kg5 Rg7 38. f4 Rg8
39. e6+ Ke7 40. Rd3 Rg7 41. Kh6 Rg8 42. Kh7 Rbb8 43. Rg3 Kf6 44. Rxg6+ Rxg6
45. Re2 Rg7+ 46. Kh6 Rh8#
{SnailAg Mate} 0-1


1 e2e4
1, e7e5, -29, d 4, Iter 4, nps 42260, pvL 4, instab 0
pvStage 0, FH 0.78, etc0.00, null 0.00, nullH -1.#J, Hhit 0.11, eHhit 0.08, PHhit 0.54
maxD(11) %fnodes(0.30) %except(0.08) %OExt(0.35) FutilePuned(2522)
2 g1f3
2, g8f6, -34, d 4, Iter 4, nps 41872, pvL 4, instab 0
pvStage 0, FH 0.77, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.06, PHhit 0.62
maxD(11) %fnodes(0.17) %except(0.14) %OExt(0.23) FutilePuned(3777)
3 b1c3
3, b8c6, -54, d 3, Iter 2, nps 43279, pvL 5, instab 0
pvStage 0, FH 0.76, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.04, PHhit 0.61
maxD(10) %fnodes(0.06) %except(0.40) %OExt(0.17) FutilePuned(1837)
4 f1c4
4, h7h6, -46, d 2, Iter 2, nps 42290, pvL 3, instab 0
pvStage 0, FH 0.82, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.05, PHhit 0.67
maxD( 9) %fnodes(0.11) %except(0.09) %OExt(0.15) FutilePuned(1312)
5 d2d3
5, f8d6, -59, d 2, Iter 2, nps 41692, pvL 3, instab 0
pvStage 0, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.04, PHhit 0.68
maxD( 9) %fnodes(0.08) %except(0.17) %OExt(0.14) FutilePuned(1443)
6 e1g1
6, d6b4, -85, d 2, Iter 1, nps 41493, pvL 3, instab 0
pvStage 0, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.05, PHhit 0.67
maxD( 9) %fnodes(0.04) %except(0.24) %OExt(0.08) FutilePuned(568)
7 c3d5
7, d7d6, -96, d 2, Iter 2, nps 41219, pvL 3, instab 0
pvStage 0, FH 0.82, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.06, PHhit 0.62
maxD( 9) %fnodes(0.14) %except(0.12) %OExt(0.22) FutilePuned(2603)
8 c4b5
8, b4a5, -104, d 3, Iter 3, nps 40936, pvL 3, instab 0
pvStage 0, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.06, PHhit 0.55
maxD(10) %fnodes(0.21) %except(0.14) %OExt(0.09) FutilePuned(7703)
9 b5c6
9, b7c6, -86, d 3, Iter 3, nps 40603, pvL 8, instab 0
pvStage 0, FH 0.93, etc0.00, null 0.00, nullH -1.#J, Hhit 0.16, eHhit 0.11, PHhit 0.53
maxD(10) %fnodes(0.56) %except(0.04) %OExt(0.16) FutilePuned(21933)
10 d5f6
10, d8f6, -114, d 4, Iter 3, nps 40661, pvL 6, instab 0
pvStage 0, FH 0.86, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.10, PHhit 0.50
maxD(11) %fnodes(0.33) %except(0.15) %OExt(0.17) FutilePuned(9943)
11 c1d2
11, a5d2, -38, d 4, Iter 4, nps 40710, pvL 7, instab 0
pvStage 1, FH 0.90, etc0.00, null 0.00, nullH -1.#J, Hhit 0.12, eHhit 0.09, PHhit 0.64
maxD(11) %fnodes(0.48) %except(0.03) %OExt(0.26) FutilePuned(10077)
12 f3d2
12, e8g8, -46, d 4, Iter 4, nps 40876, pvL 5, instab 0
pvStage 1, FH 0.91, etc0.00, null 0.00, nullH -1.#J, Hhit 0.21, eHhit 0.17, PHhit 0.56
maxD( 9) %fnodes(0.65) %except(0.00) %OExt(0.38) FutilePuned(7610)
13 d1f3
13, f6f3, 0, d 5, Iter 5, nps 41367, pvL 5, instab 0
pvStage 2, FH 0.91, etc0.00, null 0.00, nullH -1.#J, Hhit 0.22, eHhit 0.16, PHhit 0.55
maxD(12) %fnodes(0.82) %except(0.00) %OExt(0.32) FutilePuned(16432)
14 d2f3
14, c8d7, -12, d 5, Iter 4, nps 42284, pvL 5, instab 0
pvStage 1, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.31, eHhit 0.31, PHhit 0.52
maxD(11) %fnodes(0.88) %except(0.00) %OExt(0.38) FutilePuned(10975)
15 f1b1
15, c6c5, -7, d 4, Iter 4, nps 43239, pvL 5, instab 0
pvStage 1, FH 0.86, etc0.00, null 0.00, nullH -1.#J, Hhit 0.33, eHhit 0.36, PHhit 0.55
maxD(11) %fnodes(0.87) %except(0.00) %OExt(0.43) FutilePuned(5926)
16 f3d2
16, f8d8, -7, d 5, Iter 5, nps 44071, pvL 5, instab 0
pvStage 1, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.29, eHhit 0.33, PHhit 0.58
maxD(11) %fnodes(0.90) %except(0.00) %OExt(0.47) FutilePuned(5427)
17 d2c4
17, a8b8, -7, d 5, Iter 5, nps 44633, pvL 5, instab 0
pvStage 1, FH 0.90, etc0.00, null 0.00, nullH -1.#J, Hhit 0.29, eHhit 0.26, PHhit 0.56
maxD(12) %fnodes(0.84) %except(0.00) %OExt(0.29) FutilePuned(12219)
18 c2c3
18, d7e6, -4, d 4, Iter 4, nps 45023, pvL 5, instab 0
pvStage 2, FH 0.95, etc0.00, null 0.00, nullH -1.#J, Hhit 0.26, eHhit 0.20, PHhit 0.52
maxD(11) %fnodes(0.80) %except(0.00) %OExt(0.18) FutilePuned(26713)
19 b2b3
19, e6c4, 5, d 4, Iter 4, nps 45495, pvL 9, instab 0
pvStage 3, FH 0.93, etc0.00, null 0.00, nullH -1.#J, Hhit 0.23, eHhit 0.18, PHhit 0.45
maxD(12) %fnodes(0.74) %except(0.00) %OExt(0.06) FutilePuned(34467)
20 d3c4
20, g8f8, -1, d 5, Iter 4, nps 46383, pvL 6, instab 0
pvStage 2, FH 0.90, etc0.00, null 0.00, nullH -1.#J, Hhit 0.34, eHhit 0.27, PHhit 0.41
maxD(12) %fnodes(0.84) %except(0.00) %OExt(0.04) FutilePuned(19538)
21 f2f3
21, f8e7, -16, d 5, Iter 5, nps 47179, pvL 6, instab 0
pvStage 2, FH 0.88, etc0.00, null 0.00, nullH -1.#J, Hhit 0.28, eHhit 0.25, PHhit 0.50
maxD(11) %fnodes(0.75) %except(0.00) %OExt(0.08) FutilePuned(11958)
22 g1f2
22, b8b6, -11, d 5, Iter 5, nps 48072, pvL 5, instab 0
pvStage 2, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.35, eHhit 0.40, PHhit 0.54
maxD(12) %fnodes(0.86) %except(0.00) %OExt(0.08) FutilePuned(10700)
23 f2e3
23, e7e6, -19, d 4, Iter 3, nps 48954, pvL 4, instab 0
pvStage 2, FH 0.78, etc0.00, null 0.00, nullH -1.#J, Hhit 0.33, eHhit 0.43, PHhit 0.51
maxD(11) %fnodes(0.85) %except(0.00) %OExt(0.06) FutilePuned(10046)
24 b1b2
24, g7g6, -38, d 4, Iter 4, nps 49411, pvL 5, instab 0
pvStage 2, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.19, eHhit 0.19, PHhit 0.55
maxD(11) %fnodes(0.68) %except(0.01) %OExt(0.07) FutilePuned(10553)
25 b2d2
25, d8b8, -27, d 4, Iter 4, nps 49816, pvL 3, instab 0
pvStage 2, FH 0.86, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.10, PHhit 0.53
maxD(11) %fnodes(0.53) %except(0.03) %OExt(0.05) FutilePuned(15890)
26 a1d1
26, h6h5, -23, d 4, Iter 4, nps 50289, pvL 3, instab 0
pvStage 2, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.17, eHhit 0.14, PHhit 0.47
maxD(11) %fnodes(0.61) %except(0.01) %OExt(0.02) FutilePuned(23556)
27 g2g3
27, f7f6, -16, d 3, Iter 3, nps 50735, pvL 3, instab 0
pvStage 2, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.14, eHhit 0.13, PHhit 0.44
maxD(11) %fnodes(0.52) %except(0.03) %OExt(0.01) FutilePuned(18195)
28 h2h4
28, f6f5, 4, d 3, Iter 3, nps 51200, pvL 6, instab 0
pvStage 2, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.17, eHhit 0.15, PHhit 0.49
maxD(11) %fnodes(0.44) %except(0.05) %OExt(0.00) FutilePuned(15401)
29 d2d5
29, f5f4, 33, d 3, Iter 3, nps 51557, pvL 7, instab 0
pvStage 2, FH 0.89, etc0.00, null 0.00, nullH -1.#J, Hhit 0.17, eHhit 0.14, PHhit 0.44
maxD(10) %fnodes(0.48) %except(0.01) %OExt(0.00) FutilePuned(14945)
30 g3f4
30, e5f4, 55, d 3, Iter 3, nps 51899, pvL 6, instab 0
pvStage 2, FH 0.88, etc0.00, null 0.00, nullH -1.#J, Hhit 0.15, eHhit 0.11, PHhit 0.50
maxD(11) %fnodes(0.35) %except(0.03) %OExt(0.00) FutilePuned(8314)
31 e3f4
31, a7a6, -102, d 4, Iter 3, nps 52325, pvL 4, instab 0
pvStage 2, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.16, eHhit 0.12, PHhit 0.51
maxD(11) %fnodes(0.33) %except(0.02) %OExt(0.00) FutilePuned(8414)
32 e4e5
32, b8f8, -165, d 4, Iter 3, nps 52652, pvL 5, instab 0
pvStage 2, FH 0.86, etc0.00, null 0.00, nullH -1.#J, Hhit 0.14, eHhit 0.11, PHhit 0.50
maxD(11) %fnodes(0.33) %except(0.02) %OExt(0.00) FutilePuned(11462)
33 f4e4
33, f8h8, -167, d 4, Iter 3, nps 52930, pvL 7, instab 0
pvStage 2, FH 0.88, etc0.00, null 0.00, nullH -1.#J, Hhit 0.20, eHhit 0.14, PHhit 0.45
maxD(11) %fnodes(0.44) %except(0.01) %OExt(0.00) FutilePuned(17646)
34 d1g1
34, h8h6, -171, d 4, Iter 4, nps 53215, pvL 5, instab 0
pvStage 2, FH 0.89, etc0.00, null 0.00, nullH -1.#J, Hhit 0.17, eHhit 0.12, PHhit 0.56
maxD(11) %fnodes(0.30) %except(0.02) %OExt(0.00) FutilePuned(7277)
35 e4f4
35, e6f7, -183, d 4, Iter 4, nps 53563, pvL 5, instab 0
pvStage 2, FH 0.89, etc0.00, null 0.00, nullH -1.#J, Hhit 0.19, eHhit 0.16, PHhit 0.54
maxD(11) %fnodes(0.37) %except(0.03) %OExt(0.00) FutilePuned(10888)
36 g1e1
36, h6h7, -214, d 3, Iter 3, nps 53847, pvL 3, instab 0
pvStage 2, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.10, PHhit 0.62
maxD(10) %fnodes(0.25) %except(0.04) %OExt(0.00) FutilePuned(6923)
37 f4g5
37, h7g7, -216, d 4, Iter 4, nps 54070, pvL 5, instab 0
pvStage 2, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.14, eHhit 0.10, PHhit 0.61
maxD(11) %fnodes(0.31) %except(0.04) %OExt(0.00) FutilePuned(6608)
38 f3f4
38, g7g8, -231, d 4, Iter 4, nps 54196, pvL 5, instab 0
pvStage 2, FH 0.88, etc0.00, null 0.00, nullH -1.#J, Hhit 0.18, eHhit 0.13, PHhit 0.51
maxD(11) %fnodes(0.43) %except(0.04) %OExt(0.00) FutilePuned(6067)
39 e5e6
39, f7e7, -121, d 2, Iter 0, nps 54197, pvL 2, instab 0
pvStage 2, FH -1.#J, etc0.00, null 0.00, nullH -1.#J, Hhit 0.97, eHhit 22.00, PHhit 0.00
maxD( 2) %fnodes(1.00) %except(0.00) %OExt(0.00) FutilePuned(0)
40 d5d3
40, g8g7, -199, d 1, Iter 0, nps 54198, pvL 1, instab 0
pvStage 2, FH 1.00, etc0.00, null 0.00, nullH -1.#J, Hhit 0.18, eHhit 0.22, PHhit 0.71
maxD( 1) %fnodes(0.75) %except(0.00) %OExt(0.00) FutilePuned(0)
41 g5h6
41, g7g8, -203, d 5, Iter 5, nps 54742, pvL12, instab 0
pvStage 2, FH 0.94, etc0.00, null 0.00, nullH -1.#J, Hhit 0.26, eHhit 0.15, PHhit 0.44
maxD(12) %fnodes(0.54) %except(0.04) %OExt(0.00) FutilePuned(37397)
42 h6h7
42, b6b8, 821, d 5, Iter 5, nps 55169, pvL12, instab 0
pvStage 4, FH 0.91, etc0.00, null 0.00, nullH -1.#J, Hhit 0.21, eHhit 0.12, PHhit 0.43
maxD(13) %fnodes(0.46) %except(0.02) %OExt(0.00) FutilePuned(30484)
43 d3g3
root MAX_DEPTH

43, e7f6, 9993, d 24, Iter 13, nps 55321, pvL 4, instab 0
pvStage 2, FH 0.97, etc0.00, null 0.00, nullH -1.#J, Hhit 0.50, eHhit 0.73, PHhit 0.00
maxD( 7) %fnodes(1.00) %except(0.00) %OExt(0.00) FutilePuned(49)
44 g3g6
root MAX_DEPTH

44, g8g6, 9995, d 24, Iter 12, nps 55324, pvL 1, instab 0
pvStage 0, FH 0.96, etc0.00, null 0.00, nullH -1.#J, Hhit 0.63, eHhit 0.18, PHhit 0.30
maxD( 2) %fnodes(0.61) %except(0.00) %OExt(0.00) FutilePuned(0)
45 e1e2
root MAX_DEPTH

45, g6g7, 9997, d 24, Iter 12, nps 55334, pvL 1, instab 0
pvStage 2, FH -1.#J, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 3.00, PHhit 0.00
maxD( 1) %fnodes(1.00) %except(0.00) %OExt(0.00) FutilePuned(0)
46 h7h6
46, b8h8, 9999, d 1, Iter 0, nps 55334, pvL 0, 0.00sec, instab 0


//should be a 1-0 win, rep3 code not working

[Event "Computer chess game"]
[Site "P4"]
[Date "2005.03.31"]
[Round "-"]
[White "SnailAg"]
[Black "TSCP"]
[Result "1/2-1/2"]
[TimeControl "40/30"]

1. e4 d5 2. exd5 Qxd5 3. Nc3 Qa5 4. d4 Nf6 5. Be3 e6 6. a3 Nd5 7. Bd2 Bd6
8. Nxd5 Qxd5 9. Qg4 Nc6 10. Ne2 Kf8 11. Qh4 Kg8 12. Bc3 Be7 13. Qh3 e5 14.
Qe3 exd4 15. Nxd4 Nxd4 16. Bxd4 Be6 17. Qe5 Qxe5+ 18. Bxe5 c5 19. Bc3 Rd8
20. Bd3 c4 21. Be4 Bd5 22. Bxd5 Rxd5 23. O-O f5 24. Rad1 Rd6 25. Rxd6 Bxd6
26. Rd1 Bf8 27. f4 b6 28. Kf1 a6 29. Rd5 Kf7 30. Rxf5+ Ke6 31. Re5+ Kf7 32.
Rf5+ Ke6 33. Rg5 Kf7 34. Ke2 Rg8 35. Bd4 Be7 36. Rh5 Re8 37. Kf3 h6 38.
Bxb6 Bf6 39. Ra5 Bxb2 40. Rxa6 Re1 41. Bf2 Rc1 42. Ra7+ Ke6 43. Ra6+ Kf7
44. Ra7+ Ke6 45. Ra6+ Kf7 46. Ra7+ Ke6 47. Ra6+ Kf7
{Draw by repetition} 1/2-1/2

1, e2e4, 29, d 5, Iter 5, nps 42338, pvL 5, instab 0
pvStage 0, FH 0.77, etc0.00, null 0.00, nullH -1.#J, Hhit 0.17, eHhit 0.14, PHhit 0.51
maxD(10) %fnodes(0.47) %except(0.08) %OExt(0.46) FutilePuned(1872)
1 d7d5
2, e4d5, 24, d 3, Iter 3, nps 42356, pvL 7, instab 0
pvStage 0, FH 0.80, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.07, PHhit 0.60
maxD( 9) %fnodes(0.11) %except(0.14) %OExt(0.12) FutilePuned(3513)
2 d8d5
3, b1c3, 43, d 4, Iter 3, nps 41742, pvL 4, instab 0
pvStage 0, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.10, eHhit 0.07, PHhit 0.59
maxD( 8) %fnodes(0.31) %except(0.03) %OExt(0.29) FutilePuned(6101)
3 d5a5
4, d2d4, 115, d 3, Iter 3, nps 41261, pvL 4, instab 0
pvStage 0, FH 0.76, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.03, PHhit 0.67
maxD( 9) %fnodes(0.13) %except(0.15) %OExt(0.23) FutilePuned(3828)
4 g8f6
5, c1e3, 38, d 3, Iter 3, nps 41197, pvL 4, instab 0
pvStage 0, FH 0.75, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.04, PHhit 0.69
maxD( 7) %fnodes(0.11) %except(0.20) %OExt(0.31) FutilePuned(3026)
5 e7e6
6, a2a3, 93, d 3, Iter 3, nps 40789, pvL 4, instab 0
pvStage 0, FH 0.75, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.06, PHhit 0.72
maxD( 9) %fnodes(0.19) %except(0.14) %OExt(0.28) FutilePuned(3692)
6 f6d5
7, e3d2, -12, d 3, Iter 3, nps 40814, pvL 3, instab 0
pvStage 1, FH 0.76, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.04, PHhit 0.70
maxD( 9) %fnodes(0.07) %except(0.20) %OExt(0.04) FutilePuned(3869)
7 f8d6
8, c3d5, 132, d 2, Iter 2, nps 40724, pvL 4, instab 0
pvStage 0, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.04, PHhit 0.72
maxD( 9) %fnodes(0.11) %except(0.09) %OExt(0.01) FutilePuned(5349)
8 a5d5
9, d1g4, 80, d 3, Iter 2, nps 40562, pvL 7, instab 0
pvStage 0, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.06, PHhit 0.62
maxD(10) %fnodes(0.12) %except(0.04) %OExt(0.06) FutilePuned(5295)
9 b8c6
10, g1e2, -904, d 2, Iter 2, nps 40579, pvL 5, instab 0
pvStage 0, FH 0.80, etc0.00, null 0.00, nullH -1.#J, Hhit 0.04, eHhit 0.04, PHhit 0.73
maxD( 7) %fnodes(0.03) %except(0.19) %OExt(0.05) FutilePuned(1138)
10 e8f8
11, g4h4, -268, d 2, Iter 2, nps 40494, pvL 3, instab 0
pvStage 2, FH 0.78, etc0.00, null 0.00, nullH -1.#J, Hhit 0.04, eHhit 0.03, PHhit 0.73
maxD( 9) %fnodes(0.12) %except(0.08) %OExt(0.02) FutilePuned(6206)
11 f8g8
12, d2c3, -63, d 3, Iter 3, nps 40331, pvL 3, instab 0
pvStage 0, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.04, PHhit 0.71
maxD(10) %fnodes(0.07) %except(0.03) %OExt(0.04) FutilePuned(4758)
12 d6e7
13, h4h3, -99, d 3, Iter 3, nps 40432, pvL 3, instab 0
pvStage 0, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.04, PHhit 0.69
maxD( 8) %fnodes(0.04) %except(0.19) %OExt(0.04) FutilePuned(1936)
13 e6e5
14, h3e3, -10, d 3, Iter 3, nps 40685, pvL 3, instab 0
pvStage 1, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.08, eHhit 0.06, PHhit 0.68
maxD(10) %fnodes(0.07) %except(0.23) %OExt(0.04) FutilePuned(3234)
14 e5d4
15, e2d4, 13, d 2, Iter 2, nps 41159, pvL 5, instab 0
pvStage 1, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.10, eHhit 0.07, PHhit 0.68
maxD( 9) %fnodes(0.06) %except(0.35) %OExt(0.02) FutilePuned(2907)
15 c6d4
16, c3d4, -140, d 2, Iter 1, nps 41545, pvL 5, instab 0
pvStage 1, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.10, PHhit 0.63
maxD( 9) %fnodes(0.18) %except(0.15) %OExt(0.05) FutilePuned(5271)
16 c8e6
17, e3e5, -33, d 3, Iter 3, nps 41728, pvL 3, instab 0
pvStage 1, FH 0.78, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.05, PHhit 0.68
maxD( 9) %fnodes(0.06) %except(0.12) %OExt(0.13) FutilePuned(3029)
17 d5e5
18, d4e5, -114, d 5, Iter 5, nps 42083, pvL 5, instab 0
pvStage 1, FH 0.86, etc0.00, null 0.00, nullH -1.#J, Hhit 0.12, eHhit 0.08, PHhit 0.61
maxD(11) %fnodes(0.31) %except(0.01) %OExt(0.15) FutilePuned(12354)
18 c7c5
19, e5c3, -26, d 4, Iter 3, nps 42375, pvL 4, instab 0
pvStage 1, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.14, eHhit 0.12, PHhit 0.64
maxD( 9) %fnodes(0.52) %except(0.00) %OExt(0.17) FutilePuned(3594)
19 a8d8
20, f1d3, -28, d 4, Iter 4, nps 42613, pvL 5, instab 0
pvStage 1, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.10, PHhit 0.68
maxD(10) %fnodes(0.45) %except(0.01) %OExt(0.23) FutilePuned(3746)
20 c5c4
21, d3e4, 17, d 4, Iter 3, nps 42832, pvL 5, instab 0
pvStage 1, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.14, eHhit 0.09, PHhit 0.57
maxD(11) %fnodes(0.37) %except(0.01) %OExt(0.11) FutilePuned(11611)
21 e6d5
22, e4d5, 42, d 4, Iter 4, nps 43176, pvL 7, instab 0
pvStage 2, FH 0.90, etc0.00, null 0.00, nullH -1.#J, Hhit 0.16, eHhit 0.09, PHhit 0.53
maxD(11) %fnodes(0.50) %except(0.03) %OExt(0.07) FutilePuned(18180)
22 d8d5
23, e1g1, 45, d 5, Iter 4, nps 43681, pvL 5, instab 0
pvStage 3, FH 0.88, etc0.00, null 0.00, nullH -1.#J, Hhit 0.28, eHhit 0.24, PHhit 0.50
maxD(12) %fnodes(0.71) %except(0.00) %OExt(0.12) FutilePuned(14081)
23 f7f5
24, a1d1, 160, d 4, Iter 4, nps 44130, pvL 5, instab 0
pvStage 3, FH 0.89, etc0.00, null 0.00, nullH -1.#J, Hhit 0.21, eHhit 0.15, PHhit 0.50
maxD(11) %fnodes(0.66) %except(0.00) %OExt(0.03) FutilePuned(17999)
24 d5d6
25, d1d6, 175, d 4, Iter 3, nps 44622, pvL 7, instab 0
pvStage 4, FH 0.89, etc0.00, null 0.00, nullH -1.#J, Hhit 0.25, eHhit 0.14, PHhit 0.48
maxD(10) %fnodes(0.58) %except(0.00) %OExt(0.03) FutilePuned(19179)
25 e7d6
26, f1d1, 174, d 5, Iter 4, nps 45239, pvL 7, instab 0
pvStage 3, FH 0.89, etc0.00, null 0.00, nullH -1.#J, Hhit 0.30, eHhit 0.20, PHhit 0.45
maxD(12) %fnodes(0.66) %except(0.01) %OExt(0.02) FutilePuned(17802)
26 d6f8
27, f2f4, 117, d 4, Iter 3, nps 45907, pvL 4, instab 0
pvStage 3, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.16, eHhit 0.13, PHhit 0.51
maxD(11) %fnodes(0.51) %except(0.00) %OExt(0.03) FutilePuned(17391)
27 b7b6
28, g1f1, 134, d 4, Iter 3, nps 46318, pvL 5, instab 0
pvStage 3, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.15, eHhit 0.12, PHhit 0.54
maxD(10) %fnodes(0.39) %except(0.00) %OExt(0.03) FutilePuned(7118)
28 a7a6
29, d1d5, 150, d 4, Iter 4, nps 46858, pvL 7, instab 0
pvStage 3, FH 0.88, etc0.00, null 0.00, nullH -1.#J, Hhit 0.24, eHhit 0.20, PHhit 0.54
maxD(11) %fnodes(0.53) %except(0.00) %OExt(0.02) FutilePuned(14500)
29 g8f7
30, d5f5, 157, d 4, Iter 4, nps 47278, pvL 5, instab 0
pvStage 3, FH 0.80, etc0.00, null 0.00, nullH -1.#J, Hhit 0.16, eHhit 0.10, PHhit 0.58
maxD(11) %fnodes(0.30) %except(0.01) %OExt(0.01) FutilePuned(7031)
30 f7e6
31, f5e5, 184, d 4, Iter 3, nps 47700, pvL 5, instab 0
pvStage 3, FH 0.82, etc0.00, null 0.00, nullH -1.#J, Hhit 0.15, eHhit 0.11, PHhit 0.62
maxD(10) %fnodes(0.22) %except(0.01) %OExt(0.00) FutilePuned(2943)
31 e6f7
32, e5f5, 175, d 4, Iter 4, nps 48104, pvL 7, instab 0
pvStage 3, FH 0.80, etc0.00, null 0.00, nullH -1.#J, Hhit 0.23, eHhit 0.16, PHhit 0.60
maxD(12) %fnodes(0.34) %except(0.00) %OExt(0.00) FutilePuned(7635)
32 f7e6
33, f5g5, 178, d 5, Iter 4, nps 48470, pvL 4, instab 0
pvStage 3, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.19, eHhit 0.12, PHhit 0.56
maxD(11) %fnodes(0.37) %except(0.02) %OExt(0.00) FutilePuned(11582)
33 e6f7
34, f1e2, 155, d 4, Iter 3, nps 48952, pvL 7, instab 0
pvStage 3, FH 0.82, etc0.00, null 0.00, nullH -1.#J, Hhit 0.22, eHhit 0.17, PHhit 0.54
maxD(11) %fnodes(0.43) %except(0.00) %OExt(0.00) FutilePuned(16326)
34 h8g8
35, c3d4, 195, d 3, Iter 3, nps 49265, pvL 9, instab 0
pvStage 5, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.10, PHhit 0.70
maxD(11) %fnodes(0.20) %except(0.00) %OExt(0.00) FutilePuned(5660)
35 f8e7
36, g5h5, 174, d 4, Iter 3, nps 49609, pvL 4, instab 0
pvStage 3, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.14, eHhit 0.10, PHhit 0.61
maxD(11) %fnodes(0.37) %except(0.00) %OExt(0.00) FutilePuned(11780)
36 g8e8
37, e2f3, 247, d 4, Iter 3, nps 49840, pvL 5, instab 0
pvStage 3, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.08, PHhit 0.60
maxD(11) %fnodes(0.33) %except(0.00) %OExt(0.00) FutilePuned(8143)
37 h7h6
38, d4b6, 282, d 3, Iter 3, nps 50043, pvL 4, instab 0
pvStage 3, FH 0.76, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.11, PHhit 0.63
maxD(10) %fnodes(0.23) %except(0.00) %OExt(0.00) FutilePuned(4992)
38 e7f6
39, h5a5, 218, d 4, Iter 4, nps 50237, pvL 4, instab 0
pvStage 3, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.16, eHhit 0.11, PHhit 0.61
maxD(11) %fnodes(0.44) %except(0.00) %OExt(0.00) FutilePuned(4928)
39 f6b2
40, a5a6, 254, d 1, Iter 0, nps 50239, pvL 2, instab 0
pvStage 3, FH -1.#J, etc0.00, null 0.00, nullH -1.#J, Hhit 0.98, eHhit 52.00, PHhit 0.00
maxD( 2) %fnodes(1.00) %except(0.00) %OExt(0.00) FutilePuned(0)
40 e8e1
41, b6f2, 177, d 4, Iter 3, nps 50989, pvL 5, instab 0
pvStage 3, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.10, PHhit 0.62
maxD(11) %fnodes(0.27) %except(0.00) %OExt(0.00) FutilePuned(12679)
41 e1c1
42, a6a7, 172, d 4, Iter 3, nps 51812, pvL 8, instab 0
pvStage 3, FH 0.86, etc0.00, null 0.00, nullH -1.#J, Hhit 0.24, eHhit 0.21, PHhit 0.54
maxD(11) %fnodes(0.44) %except(0.01) %OExt(0.00) FutilePuned(13001)
42 f7e6
43, a7a6, 172, d 4, Iter 4, nps 52600, pvL 7, instab 0
pvStage 3, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.26, eHhit 0.21, PHhit 0.51
maxD(11) %fnodes(0.43) %except(0.03) %OExt(0.00) FutilePuned(16290)
43 e6f7
44, a6a7, 172, d 5, Iter 4, nps 53267, pvL 8, instab 0
pvStage 3, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.22, eHhit 0.19, PHhit 0.52
maxD(12) %fnodes(0.36) %except(0.03) %OExt(0.01) FutilePuned(10939)
44 f7e6
45, a7a6, 171, d 5, Iter 5, nps 54167, pvL 7, instab 0
pvStage 3, FH 0.90, etc0.00, null 0.00, nullH -1.#J, Hhit 0.56, eHhit 0.50, PHhit 0.31
maxD(12) %fnodes(0.56) %except(0.02) %OExt(0.00) FutilePuned(32683)
45 e6f7
46, a6a7, 159, d 5, Iter 4, nps 54880, pvL 7, instab 0
pvStage 3, FH 0.86, etc0.00, null 0.00, nullH -1.#J, Hhit 0.38, eHhit 0.33, PHhit 0.45
maxD(12) %fnodes(0.54) %except(0.04) %OExt(0.00) FutilePuned(18976)
46 f7e6
47, a7a6, 159, d 5, Iter 5, nps 55387, pvL 8, instab 0
pvStage 3, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.37, eHhit 0.29, PHhit 0.46
maxD(12) %fnodes(0.39) %except(0.03) %OExt(0.00) FutilePuned(19709)
47 e6f7
48, a6a7, 159, d 5, Iter 4, nps 55795, pvL10, instab 0
pvStage 3, FH 0.88, etc0.00, null 0.00, nullH -1.#J, Hhit 0.18, eHhit 0.13, PHhit 0.57
maxD(13) %fnodes(0.38) %except(0.03) %OExt(0.00) FutilePuned(13698)

Re: Unconditional Futilty prune at horizon works

PostPosted: 31 Mar 2005, 10:23
by Chan Rasjid
Hello,

Just tested another game with Pepito which is too strong for SnailAg.
I do not play chess, but the moves seem very normal to me, losing normally

Best Regards,
Rasjid.



[Event "Computer chess game"]
[Site "P4"]
[Date "2005.03.31"]
[Round "-"]
[White "Pepito v1.59 (Conservador)"]
[Black "SnailAg"]
[Result "1-0"]
[TimeControl "40/30"]

1. e4 e5 2. Nf3 Nf6 3. Nc3 Nc6 4. Bc4 Bd6 5. O-O O-O 6. a3 Bc5 7. d3 h6 8.
Bd2 d6 9. Na4 Bg4 10. Nxc5 dxc5 11. h3 Bxf3 12. Qxf3 Nd4 13. Qd1 b5 14. Ba2
a5 15. f4 exf4 16. Bxf4 Ra6 17. c3 Ne6 18. Be5 Nd7 19. Bg3 Ng5 20. a4 b4
21. Rc1 Rg6 22. Kh2 Qc8 23. Qh5 Rf6 24. Qg4 Rg6 25. h4 c4 26. hxg5 Rxg5 27.
Qh3 cxd3 28. cxb4 c6 29. Bf4 Qb7 30. Bxg5 hxg5 31. Qxd3 Qb8+ 32. Kg1 Qa7+
33. Kh1 Ne5 34. Qc3 Ng4 35. bxa5 Nf2+ 36. Kh2 Ng4+ 37. Kg3 Nf6 38. Rxf6
gxf6 39. Rf1 Qc7+ 40. Kh3 Qc8+ 41. g4 f5 42. Qf6 Qc7 43. Rxf5 Qf4 44. Bxf7+
Rxf7 45. Qxf7+ Kh8 46. Rxf4 gxf4 47. a6 f3 48. a7 c5 49. a8=Q#
{ Jaque mate } 1-0

Search algorithm - Alpha-beta
Pawn Hash Size 0.75 MB, record size (24) bytes
Hash Size 16.00 MB, record size 16, records 1048576
game 1

1 e2e4
1, e7e5, -29, d 4, Iter 4, nps 41121, pvL 4, instab 0
pvStage 0, FH 0.78, etc0.00, null 0.00, nullH -1.#J, Hhit 0.11, eHhit 0.08, PHhit 0.53
maxD(11) %fnodes(0.30) %except(0.08) %OExt(0.35) PruneM(2430)
2 g1f3
2, g8f6, -34, d 4, Iter 4, nps 41290, pvL 4, instab 0
pvStage 0, FH 0.77, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.06, PHhit 0.62
maxD(11) %fnodes(0.17) %except(0.14) %OExt(0.23) PruneM(3779)
3 b1c3
3, b8c6, -54, d 3, Iter 2, nps 42479, pvL 5, instab 0
pvStage 0, FH 0.76, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.04, PHhit 0.61
maxD(10) %fnodes(0.06) %except(0.40) %OExt(0.18) PruneM(1588)
4 f1c4
4, f8d6, -7, d 3, Iter 3, nps 41694, pvL 3, instab 0
pvStage 1, FH 0.82, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.05, PHhit 0.67
maxD(10) %fnodes(0.12) %except(0.09) %OExt(0.13) PruneM(1443)
5 e1g1
5, e8g8, -35, d 3, Iter 3, nps 41030, pvL 5, instab 0
pvStage 1, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.08, eHhit 0.07, PHhit 0.64
maxD(10) %fnodes(0.18) %except(0.13) %OExt(0.12) PruneM(2640)
6 a2a3
6, d6c5, -31, d 4, Iter 4, nps 40722, pvL 4, instab 0
pvStage 1, FH 0.87, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.07, PHhit 0.59
maxD(10) %fnodes(0.27) %except(0.23) %OExt(0.16) PruneM(4345)
7 d2d3
7, h7h6, -57, d 3, Iter 2, nps 40804, pvL 4, instab 0
pvStage 3, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.07, PHhit 0.56
maxD(10) %fnodes(0.19) %except(0.33) %OExt(0.15) PruneM(3629)
8 c1d2
8, d7d6, -32, d 3, Iter 3, nps 40390, pvL 5, instab 0
pvStage 2, FH 0.86, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.07, PHhit 0.58
maxD(10) %fnodes(0.19) %except(0.19) %OExt(0.18) PruneM(1586)
9 c3a4
9, c8g4, -38, d 3, Iter 2, nps 40160, pvL 5, instab 0
pvStage 0, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.08, eHhit 0.05, PHhit 0.54
maxD(10) %fnodes(0.17) %except(0.29) %OExt(0.04) PruneM(6430)
10 a4c5
10, d6c5, -34, d 3, Iter 2, nps 39918, pvL 4, instab 0
pvStage 1, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.06, PHhit 0.52
maxD(10) %fnodes(0.24) %except(0.08) %OExt(0.13) PruneM(13057)
11 h2h3
11, g4f3, -19, d 3, Iter 2, nps 39886, pvL10, instab 0
pvStage 2, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.08, eHhit 0.06, PHhit 0.48
maxD(10) %fnodes(0.19) %except(0.12) %OExt(0.16) PruneM(5403)
12 d1f3
12, c6d4, -3, d 3, Iter 2, nps 39808, pvL 6, instab 0
pvStage 0, FH 0.89, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.08, PHhit 0.39
maxD(10) %fnodes(0.37) %except(0.09) %OExt(0.04) PruneM(18115)
13 f3d1
13, b7b5, -1, d 4, Iter 3, nps 39734, pvL 5, instab 0
pvStage 1, FH 0.91, etc0.00, null 0.00, nullH -1.#J, Hhit 0.14, eHhit 0.09, PHhit 0.34
maxD(11) %fnodes(0.38) %except(0.07) %OExt(0.04) PruneM(7347)
14 c4a2
14, a7a5, 14, d 3, Iter 3, nps 39818, pvL 5, instab 0
pvStage 1, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.04, PHhit 0.56
maxD(10) %fnodes(0.13) %except(0.23) %OExt(0.20) PruneM(2013)
15 f2f4
15, e5f4, -31, d 2, Iter 2, nps 40348, pvL 3, instab 0
pvStage 1, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.03, PHhit 0.62
maxD( 9) %fnodes(0.05) %except(0.45) %OExt(0.04) PruneM(1277)
16 d2f4
16, a8a6, -41, d 2, Iter 2, nps 40726, pvL 3, instab 0
pvStage 1, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.05, PHhit 0.65
maxD( 9) %fnodes(0.08) %except(0.27) %OExt(0.04) PruneM(2338)
17 c2c3
17, d4e6, -193, d 3, Iter 2, nps 41258, pvL 7, instab 0
pvStage 4, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.04, PHhit 0.53
maxD(10) %fnodes(0.09) %except(0.44) %OExt(0.01) PruneM(4531)
18 f4e5
18, f6d7, -11, d 3, Iter 3, nps 41620, pvL 9, instab 0
pvStage 1, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.04, PHhit 0.63
maxD(10) %fnodes(0.10) %except(0.31) %OExt(0.02) PruneM(5699)
19 e5g3
19, e6g5, -38, d 3, Iter 2, nps 41634, pvL 3, instab 0
pvStage 0, FH 0.80, etc0.00, null 0.00, nullH -1.#J, Hhit 0.09, eHhit 0.07, PHhit 0.68
maxD(10) %fnodes(0.19) %except(0.09) %OExt(0.11) PruneM(4108)
20 a3a4
20, b5b4, -82, d 2, Iter 2, nps 41837, pvL 5, instab 0
pvStage 2, FH 0.80, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.05, PHhit 0.57
maxD( 9) %fnodes(0.07) %except(0.32) %OExt(0.01) PruneM(2741)
21 a1c1
21, a6g6, -88, d 2, Iter 2, nps 41917, pvL 3, instab 0
pvStage 2, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.05, PHhit 0.64
maxD( 9) %fnodes(0.05) %except(0.19) %OExt(0.01) PruneM(1567)
22 g1h2
22, d8c8, -47, d 2, Iter 2, nps 42044, pvL 5, instab 0
pvStage 1, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.05, PHhit 0.68
maxD( 9) %fnodes(0.06) %except(0.25) %OExt(0.01) PruneM(2344)
23 d1h5
23, g6f6, -64, d 2, Iter 1, nps 42191, pvL 7, instab 0
pvStage 2, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.05, PHhit 0.64
maxD( 9) %fnodes(0.08) %except(0.18) %OExt(0.00) PruneM(5535)
24 h5g4
24, f6g6, -28, d 2, Iter 2, nps 42545, pvL 2, instab 0
pvStage 2, FH 0.76, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.03, PHhit 0.68
maxD( 9) %fnodes(0.03) %except(0.50) %OExt(0.01) PruneM(1049)
25 h3h4
25, c5c4, -161, d 3, Iter 3, nps 42760, pvL 2, instab 0
pvStage 0, FH 0.78, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.05, PHhit 0.61
maxD( 9) %fnodes(0.07) %except(0.24) %OExt(0.00) PruneM(2754)
26 h4g5
26, g6g5, -330, d 2, Iter 2, nps 43008, pvL 3, instab 0
pvStage 0, FH 0.78, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.06, PHhit 0.62
maxD( 9) %fnodes(0.09) %except(0.26) %OExt(0.00) PruneM(2998)
27 g4h3
27, c4d3, 53, d 2, Iter 2, nps 43271, pvL 4, instab 0
pvStage 2, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.04, PHhit 0.72
maxD( 9) %fnodes(0.04) %except(0.42) %OExt(0.00) PruneM(2659)
28 c3b4
28, c7c6, -204, d 2, Iter 1, nps 43536, pvL 2, instab 0
pvStage 2, FH 0.75, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.05, PHhit 0.68
maxD( 9) %fnodes(0.04) %except(0.29) %OExt(0.00) PruneM(6588)
29 g3f4
29, c8b7, -482, d 2, Iter 2, nps 43765, pvL 3, instab 0
pvStage 2, FH 0.74, etc0.00, null 0.00, nullH -1.#J, Hhit 0.05, eHhit 0.05, PHhit 0.71
maxD( 9) %fnodes(0.02) %except(0.23) %OExt(0.00) PruneM(1178)
30 f4g5
30, h6g5, -414, d 2, Iter 2, nps 44047, pvL 3, instab 0
pvStage 2, FH 0.79, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.06, PHhit 0.63
maxD( 9) %fnodes(0.06) %except(0.22) %OExt(0.00) PruneM(6741)
31 h3d3
31, b7b8, -449, d 3, Iter 3, nps 44355, pvL 5, instab 0
pvStage 2, FH 0.80, etc0.00, null 0.00, nullH -1.#J, Hhit 0.10, eHhit 0.08, PHhit 0.63
maxD(10) %fnodes(0.13) %except(0.08) %OExt(0.00) PruneM(4892)
32 h2g1
32, b8a7, -457, d 3, Iter 3, nps 44672, pvL 9, instab 0
pvStage 3, FH 0.80, etc0.00, null 0.00, nullH -1.#J, Hhit 0.11, eHhit 0.09, PHhit 0.65
maxD(10) %fnodes(0.14) %except(0.11) %OExt(0.00) PruneM(7684)
33 g1h1
33, d7e5, -582, d 3, Iter 3, nps 45095, pvL 7, instab 0
pvStage 4, FH 0.82, etc0.00, null 0.00, nullH -1.#J, Hhit 0.14, eHhit 0.10, PHhit 0.59
maxD(11) %fnodes(0.23) %except(0.11) %OExt(0.00) PruneM(11248)
34 d3c3
34, e5g4, -647, d 3, Iter 3, nps 45481, pvL 9, instab 0
pvStage 1, FH 0.84, etc0.00, null 0.00, nullH -1.#J, Hhit 0.11, eHhit 0.10, PHhit 0.62
maxD(10) %fnodes(0.20) %except(0.12) %OExt(0.00) PruneM(7650)
35 b4a5
35, g4f2, -637, d 2, Iter 1, nps 45621, pvL 7, instab 0
pvStage 1, FH 0.81, etc0.00, null 0.00, nullH -1.#J, Hhit 0.11, eHhit 0.09, PHhit 0.65
maxD( 9) %fnodes(0.18) %except(0.06) %OExt(0.00) PruneM(3750)
36 h1h2
36, f2g4, -596, d 3, Iter 2, nps 45757, pvL 4, instab 0
pvStage 1, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.10, PHhit 0.62
maxD(10) %fnodes(0.16) %except(0.11) %OExt(0.00) PruneM(4796)
37 h2g3
37, g4f6, -669, d 3, Iter 3, nps 45876, pvL 3, instab 0
pvStage 1, FH 0.82, etc0.00, null 0.00, nullH -1.#J, Hhit 0.12, eHhit 0.08, PHhit 0.63
maxD( 9) %fnodes(0.09) %except(0.25) %OExt(0.00) PruneM(2143)
38 f1f6
38, g7f6, -480, d 2, Iter 2, nps 45989, pvL 5, instab 0
pvStage 1, FH 0.77, etc0.00, null 0.00, nullH -1.#J, Hhit 0.10, eHhit 0.10, PHhit 0.59
maxD( 9) %fnodes(0.08) %except(0.06) %OExt(0.00) PruneM(1337)
39 c1f1
39, a7c7, -478, d 1, Iter 0, nps 45938, pvL 2, instab 0
pvStage 1, FH 0.83, etc0.00, null 0.00, nullH -1.#J, Hhit 0.06, eHhit 0.04, PHhit 0.69
maxD( 2) %fnodes(0.03) %except(0.01) %OExt(0.00) PruneM(0)
40 g3h3
40, c7c8, -474, d 1, Iter 0, nps 45973, pvL 2, instab 0
pvStage 1, FH 0.75, etc0.00, null 0.00, nullH -1.#J, Hhit 0.07, eHhit 0.05, PHhit 0.66
maxD( 2) %fnodes(0.03) %except(0.00) %OExt(0.00) PruneM(23)
41 g2g4
41, f6f5, -878, d 4, Iter 4, nps 46874, pvL 9, instab 0
pvStage 4, FH 0.82, etc0.00, null 0.00, nullH -1.#J, Hhit 0.17, eHhit 0.14, PHhit 0.51
maxD(11) %fnodes(0.25) %except(0.03) %OExt(0.00) PruneM(25923)
42 c3f6
42, c8c7, -1486, d 3, Iter 3, nps 47435, pvL 7, instab 0
pvStage 2, FH 0.78, etc0.00, null 0.00, nullH -1.#J, Hhit 0.13, eHhit 0.11, PHhit 0.54
maxD(11) %fnodes(0.26) %except(0.02) %OExt(0.00) PruneM(39089)
43 f1f5
43, c7f4, -2265, d 4, Iter 4, nps 48213, pvL 7, instab 0
pvStage 4, FH 0.85, etc0.00, null 0.00, nullH -1.#J, Hhit 0.19, eHhit 0.12, PHhit 0.40
maxD(12) %fnodes(0.55) %except(0.01) %OExt(0.00) PruneM(64623)
44 a2f7
44, f8f7, -2300, d 4, Iter 3, nps 49218, pvL 7, instab 0
pvStage 4, FH 0.91, etc0.00, null 0.00, nullH -1.#J, Hhit 0.27, eHhit 0.16, PHhit 0.32
maxD(12) %fnodes(0.67) %except(0.02) %OExt(0.00) PruneM(57347)
45 f6f7
45, g8h8, -2354, d 2, Iter 0, nps 49219, pvL 3, instab 0
pvStage 4, FH -1.#J, etc0.00, null 0.00, nullH -1.#J, Hhit 0.92, eHhit 1.00, PHhit 0.00
maxD( 3) %fnodes(1.00) %except(0.00) %OExt(0.00) PruneM(22)
46 f5f4
46, g5f4, -9994, d 4, Iter 2, nps 49223, pvL 5, instab 0
pvStage 4, FH 0.71, etc0.00, null 0.00, nullH -1.#J, Hhit 0.82, eHhit 1.07, PHhit 0.07
maxD( 5) %fnodes(0.84) %except(0.00) %OExt(0.00) PruneM(61)
47 a5a6
47, f4f3, -9994, d 4, Iter 2, nps 49227, pvL 5, instab 0
pvStage 4, FH -1.#J, etc0.00, null 0.00, nullH -1.#J, Hhit 0.00, eHhit 0.00, PHhit 0.00
maxD( 0) %fnodes(0.84) %except(0.00) %OExt(0.00) PruneM(0)
48 a6a7
48, c6c5, -9994, d 4, Iter 2, nps 49232, pvL 5, instab 0
pvStage 4, FH -1.#J, etc0.00, null 0.00, nullH -1.#J, Hhit 0.00, eHhit 0.00, PHhit 0.00
maxD( 0) %fnodes(0.84) %except(0.00) %OExt(0.00) PruneM(0)
49 a7a8q

Re: Unconditional Futilty prune at horizon works

PostPosted: 05 Apr 2005, 03:39
by Jeremiah Penery
One thing to watch out for is that you should not do futility pruning at all when alpha is near a mate score, or you will miss simple winning (and losing!) mates frequently.

Re: Unconditional Futilty prune at horizon works

PostPosted: 05 Apr 2005, 06:08
by Chan Rasjid
Hello,

I do notice the need.

I have a plus_mate_search() called at root once +ve mate found and never seem to need much of anything and do not fail. My other search always return once +ve mate found so it simplifies things.

For alpha <= minus_mate, material+adjustment always greater> alpha so ok.

My attempts at futility is just at a beginning that shows it generally works or there should be ways to make it play clearly stronger.

Thanks
Rasjid