Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Randomly picking between 2 or more equivelent moves?

Author: Miguel A. Ballicora

Date: 06:58:08 05/26/02

Go up one level in this thread


On May 26, 2002 at 03:50:26, Gian-Carlo Pascutto wrote:

>On May 26, 2002 at 01:20:51, Christophe Theron wrote:
>
>>On May 26, 2002 at 01:04:05, J. C. Boco wrote:
>>
>>>Christophe,
>>>
>>>If I might I have a suggestion for the ChessTiger program.  Can you add a random
>>>factor into the program, such that if it finds 2 or more moves which return the
>>>same score the program will randomly pick 1 of the 2 (or more) candidate moves?
>>>In this way it will offer more variety in how it plays, in addition to the 4
>>>personalities and anti-human on/off settings.
>>
>>
>>Alphabeta does not allow to do this without a huge slowdown.
>>
>>I think I'll add a much bigger book, so variety will come from the book. That's
>>how the PC chess programs do it.
>
>If you have piece-square tables, you can add a small random factor before
>the game starts and have chaos theory do the rest.

What I did with my program (Gaviota) at the beginning was to return evaluation:

int evaluation(POSITION pos)
{
   ....
   /* calculate eval */
   ....
   return eval + randomterm(hashkey);
}

So every position has a random term that depended on the hashkey, so it was
reproducible given the "seed" at the beginning of the game. This method is more
general and could be used even if you have no piece-square tables.
The only problem is that I did not have a lot of variation (that says a lot
about alpha-beta search!) but I did not play a lot with it.

Regards,
Miguel

>
>--
>GCP



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.