I've been researching CPW for the last few days to make sure the idea I'd like to ask your opinion about is not present there (please correct me if I'm wrong!)
So the idea is to DROP moves scored as 0 (so I know for sure they are not PV/Captures/killers/history) when depth is greater than 3 (assuming IID implemented so PV/killer/history has been initialized).
Here's how I'm trying it now:
Code: Select all
// loop over move list
for (int count = 0; count < move_list->count; count++)
{
// "Futility?" pruning
if (depth > 3 && score_move(move_list->moves[0]) == 20000 && !score_move(move_list->moves[count]))
continue;
}[d]r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1
My move list after getting sorted:
Code: Select all
// my idea is to drop moves starting from a2a4 and NOT MAKE/NOT EVALUATE them AT ALL
move: e2a6 score: 20000
move: f3f6 score: 10201
move: d5e6 score: 10105
move: g2h3 score: 10105
move: e5g6 score: 10104
move: e5d7 score: 10104
move: e5f7 score: 10104
move: f3h3 score: 10101
move: f3h5 score: 6
move: a2a4 score: 0
move: e5c6 score: 0
move: b2b3 score: 0
move: e5c4 score: 0
move: e5g4 score: 0
move: e5d3 score: 0
move: c3b5 score: 0
move: c3a4 score: 0
move: c3b1 score: 0
move: c3d1 score: 0
move: d2h6 score: 0
move: d2g5 score: 0
move: d2f4 score: 0
move: d2e3 score: 0
move: d2c1 score: 0
move: g2g3 score: 0
move: e2b5 score: 0
move: e2c4 score: 0
move: e2d3 score: 0
move: e2d1 score: 0
move: e2f1 score: 0
move: a1b1 score: 0
move: a1c1 score: 0
move: a1d1 score: 0
move: h1f1 score: 0
move: h1g1 score: 0
move: g2g4 score: 0
move: f3f5 score: 0
move: d5d6 score: 0
move: f3f4 score: 0
move: f3g4 score: 0
move: f3d3 score: 0
move: f3e3 score: 0
move: f3g3 score: 0
move: a2a3 score: 0
move: e1g1 score: 0
move: e1c1 score: 0
move: e1d1 score: 0
move: e1f1 score: 0Code: Select all
// PRUNING
info score cp 30 depth 1 nodes 774 pv e2a6 b4c3
info score cp 30 depth 2 nodes 2919 pv e2a6 b4c3
info score cp 15 depth 3 nodes 13444 pv e2a6 b4c3 b2c3 e6d5
info score cp 15 depth 4 nodes 37675 pv e2a6 b4c3 b2c3 e6d5
info score cp 0 depth 5 nodes 143033 pv e2a6 e6d5 c3d5 b6d5 e4d5 e7e5
bestmove e2a6
// NO PRUNING
info score cp 30 depth 1 nodes 774 pv e2a6 b4c3
info score cp 30 depth 2 nodes 2919 pv e2a6 b4c3
info score cp 15 depth 3 nodes 13444 pv e2a6 b4c3 b2c3 e6d5
info score cp 15 depth 4 nodes 88274 pv e2a6 b4c3 b2c3 e6d5
info score cp 0 depth 5 nodes 372537 pv e2a6 e6d5 c3d5 b6d5 e4d5 e7e5
bestmove e2a6
But feel that something might be wrong with this approach because it's too easy.
Please tell me what do you think?
Did anybody apply this technique (maybe with some modifications) ?
THANKS IN ADVANCE!

