As I said in the first post, I simply remembered that Toga used this, and made no claim that it was the first to do it. In any event, many ideas are discovered multiple times.
The pruning thread started with Frank Phillips on Feb 27 2006 (message #489978) saying "I kept hearing about history pruning during CCT8, which is new to me." Tord made the web-blurb http://www.glaurungchess.com/lmr.html . VR commented: For me, the terms "pruning" and "reducing" are interchangeable. I'd guess most CC programmers agree with this - for example, we have null move pruning --- though this is most of what the dispute between LMR and LMP is here, and both Ballicora and Hyatt found fault with VR's semantics.
It seems that Miguel Ballicora (message #490051) was the first to mention LMP per se, and indeed perhaps even 5 years before 2006 he tried it, and he gives credit to Bob Hyatt.
Code: Select all
From: Miguel A. Ballicora
Message Number: 490051
Date: February 27, 2006 at 11:51:09
I was away from CC 3 years and I was wondering what this technique was. Thanks for the explanation, it was pretty clear.
Unfortunately, I tried this ~5 years ago in several ways and it did not work . It was not my idea, it was Bob Hyatt's here at CCC. I still have in my code this ancient lines (nodecount is moves searched):
#if 0
/* BH's suggestion, modified */
if (nodecount == 15 && depth == 1) {
break;
}
#endif
#if 0
/* BH's suggestion */
if (nodecount == 15 && depth == 2) {
depth--;
}
#endif
#if 0
/* BH's suggestion, modified */
if (nodecount == 15 && prun_cand ) {
break;
}
#endif
Considering that after moves 15 the order in my case is determined by history heuristics, one the options literally was history pruning, and I tried reductions too. The tree decreased but my engine (gaviota) played terrible. Maybe I should give it a try again. As you can see, the implementation was too raw.
Miguel
Note the "nodecount == 15" and particularly the "break", where the latter makes this LMP rather than LMR.That's one difference. The really big difference was the "if (nodecount == 15) break;". That's Shannon B-type search!
Vas