Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What is horizon effect?

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.