http://talkchess.com/forum/viewtopic.php?t=60426
After a lot of trying (without any or partial success) to solve the problem of choosing the short mate with TT, trying like this one:
- decrease the value for mate, depending on depth
- decrease the value of any ply with a costant value (+/-1)
- a mix of both
it seems that the only method that works is a "value reduction" obtained by multiplying any value returned by alfabeta by a constant. I've choose 63/64 because its easy to compute but even 127/128 could works (if your engine go very deep in search).
The idea is derivate from my old post related to "far plyes precision", where I talked about the lose of "precision" on the far plyes. In weak engines like Satana, we can't trust on the very far results even because Satana doesn't have Quiescence enabled, at present; so, at far plyes the alfabeta score is... almost a random value! if Satana think to capture a queen after 8 plyes... maybe it get mated after 10, so it is better to capture the queen well away from the horizon.
The "value reduction" is simple to apply and it can even be limited to mate only, where it works very well for both sides:
Code: Select all
#define VAL_REDUCTION(a) ((a)-((a)>>6))
val = -VAL_REDUCTION(AlfaBeta(-VAL_REDUCTION(beta), -VAL_REDUCTION(alfa), iDepth - 1));


