Author: h.g.muller
Date: 09:42:13 02/03/06
Go up one level in this thread
In the engine I am currently developing, I try to combat the horizon problem by a combination of recapture extension and twin accounting of ply depth. If the side threatened with a loss tries to interject an exchange to push the loss over the horizon, on only eats away his own plies, not that of the opponent. The opponent does the forced recapture for free (extension), so that won't eat his budget either. So after the exchange, the side with the threat will still have the same budget, allowing him to fully exercise it. The side facing the loss will only deplete his own budget by his delaying tactics. If one side runs out of budget, he can only play null moves, or extensions he gets awarded due to the opponents moves (e.g. recapture, in general the sort of moves you would allow in QS). That won't make him happy, and discourages wasting moves, where the horizon effect would encourage it. Of course the remark that this should not apply only to recaptures but also to threats is very true. Recapture of a Q after QxQ is just as important as saving the Q when it is attacked by a defended P. So the engine has to recognize the concept of a 'forced move', and calculate the degree of forcing. I define this as the immediate gain due to the move (i.e. what you capture), plus the reduction of the threat before and after the move. The latter is the difference between the actual result of the move (not counting the captured material) and the null-move result. So recapturing an undefended Q gains me a Q if I don't have any hanging pieces myself, but withdrawing an undefended attacked Q also 'gains' me a Q, and QxN with that same Q for an undefended N would 'gain' me Q+N. This 'gain' represents the degree of forcing. A move with a high-enough degree of forcing deserves an extension for the side playing it. By the way, I thing the horizon effect is responsible for the success of null-move pruning. The null-move search find the same threats at reduced depth compared to the main search, because almost always the threatened side can use the move it would play in stead of the null-move for delaying tactics. So if a null-move doesn't find a threat with R=2, a regular search at full depth would not have found it either.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.