Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Random factor in static evaluation!

Author: Eugene Nalimov

Date: 14:16:30 06/15/01

Go up one level in this thread


Without *lot of care* you will see search instabilities. Imagine, for example,
that you are using aspiration search, and searching the move with bounds (alpha,
beta). Search returned some value that is greater than beta. You start research
with bounds (beta, +infinity). But due to the randomness the critical position
now has score less than beta, so you'll end up having fail-high followed by
fail-low -- not very pleasant situation.

You can fix this particular problem by always modifying your score by the same
value -- e.g. you can fill the 1024-entry table by the random values at the
program startup, and at the end of your evaluator write
    score += rand_table[score&1023];
This way you'll have some randomness, and there is some hope that program will
play different moves in the same position. But you still have to be careful if
you use book learning, persistent hash table, etc.

Eugene

On June 15, 2001 at 16:41:06, Tiago Ribeiro wrote:

>Why not introduce some random factor in static evaluation?
>
>Example:
>
>srand( time ( 0 ) );
>
>char ten = 7 + rand() % 5;
>char fif = 12 + rand() % 6;
>...
>
>#define DB_P_PENALTY	ten
>#define BAD_BISHOP 	fif
>
>etc.,etc
>
>The same can be made for the value of the pieces!
>
>Just giving a small random margin, the game doesn't lose a significant quality
>and  becomes unexpected, what can be a technique anti-great master! :)
>
>I will try this in 'Replicant'!
>
>
>Tiago Ribeiro



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.