Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: experimenting with anti-piecetrading

Author: Russell Reagan

Date: 00:18:07 09/24/04

Go up one level in this thread


On September 23, 2004 at 13:14:32, Stan Arts wrote:

>I've always had a system for this, each new gamemove the computer's pieces
>are counted, and in the evaluationfunction the current number of computer's
>pieces is compared with this root-count. Then the penalty for each traded
>piece is also dependant on how much ahead or behind in general. This seems
>to work ok for a single position, and sort of works as expected.

>But what's
>worrying is that this can sometimes give hashtable-instability when re-using
>hashscores for next gamemoves, because it's root-dependant.
>
>So I wonder, what do you do to to solve this problem?


You could add one byte (or less) to your hash table entries which represents the
"root ply" that this entry came from. If the root ply of an entry doesn't match
the current root ply, you can handle it accordingly (overwrite it, ignore it,
adjust it, or whatever). This is one way of "clearing" the hash table instantly.

As a bonus, the old data is still there if you want to use it. For example,
using old entries to adjust scores inside the search may cause search
instability, so for that purpose you would treat old entries as "empty".
However, you can still use old entries for something like move ordering.


>Do you even use any anti-trade code or none at all?
>
>Because there seem to be a few other problems too.
>Even with small values, (I was using 0.03 pawn for a light piece, in equal
>positions) instead of having a "human"like tendency not to give away it's
>pieces, it's going to play very cramped to try and keep it's pieces. (hiding
>them away, in dumb ways only a computer can) And is happy to play poor
>positional moves, giving away positional advantages by the penalty-ammount
>for trading pieces, instead of the effect I wanted. :) So often making weak
>moves in quiet positions.
>Often expecting the opponent to capture it's pieces. So expecting nonsence
>lines.

>Also, this afternoon I've turned the code off for the first time in a long
>time, and to my surprise/shock it really does seem to play a bit better..I
>hadn't thought anything of it in a long time. (oops)


Are you sure you have correctly identified the problem? You say it plays "a bit
better" when you turn the bonus off. To me that says the 0.03 may be a slight
contributing factor, but there may be a bigger issue to face, such as not
evaluating positional factors with enough accuracy to begin with.

If this is true, you won't have to worry about strong opponents exchanging
pieces and playing for a draw. They'll be playing for a win ;-)



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.