Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Evaluation/search question

Author: Angrim

Date: 13:48:30 01/11/00

Go up one level in this thread


On January 11, 2000 at 15:35:14, Robert Hyatt wrote:

>On January 11, 2000 at 15:31:36, Dan Andersson wrote:
>
>>I am considering giving some kinds of root moves penalties because they do
>>nothing to improve a position. For example sometimes my search returns a
>>checking move, followd by retracting the piece to a square that it could have
>>moved to directly, that only postpones the bad variation and essentially hides
>>it from search at the cost of one tempi. Another penalty Im considering is
>>against pawn moves at root position, as Nimsowitch said 'All pawn moves, are
>>mistakes'. The penalties sould not be to severe I think, in the range of 1/10th
>>pawn or so. Anyone tried it before? Any critique and idea are welcome. The
>>rationale is that if the move is really good or forced it will be played anyway.

I have tried it, currently use it, and find it usefull in some cases.
One simple example is a small penalty for moveing the same piece twice in a row.

>>
>>Regards Dan Andersson
>
>
>Note that this is not easy to do.  Because if you give the bonus at the root,
>it affects the score at the tips of the tree below that root move.  And thanks
>to the hash table, you can now play the move at ply=3 at the root, and the
>root move at ply=3, and the hash table will politely include the original bonus
>due to the way hashing is about positions, not moves.

I disagree, root move penaties are fairly easy to do right.
If coded correctly a root move bonus/penalty will not change the values
stored in the hash except as you would expect from changeing the search window.
The score at the leaf nodes is not affected since you should
be adding the bonus after you have searched the move.  One thing you might
have some trouble with is that the alpha-beta bounds have to be adjusted
to take into account the amount that you will be adding to the score.

For example, with alpha=100 beta=110 and a root bonus of +50 you need
to search with a window of 50-60 so that the returned score(after bonus)
will be in the correct range.
then if it returns <=50 you failed low with <=100
if it returns 52 then you have a new best move with score 102
if it returns >=60 you failed high with a score of >=110

Also have to be carefull with this around forced win/loss values, since
if your window was +win50 to +win1 and you give a 50 point bonus to a
move you could be searching with a window of +win1 to +win1+50 <bad thing>
So if alpha or beta is a win/loss value don't adjust it, and if the
returned score is a win/loss value don't add the bonus.

Hope this helps,
Angrim



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.