More Random Games?
Moderator: Ras
-
- Posts: 253
- Joined: Mon Aug 26, 2019 4:34 pm
- Location: Clearwater, Florida USA
- Full name: JoAnn Peeler
More Random Games?
If I understand correctly, many people are introducing randomness into their games (especially self-play) by manipulating the root move ordering or scores. It seems like it would be easier to have my evaluation function add a random number to its return value -- for instance, a number in the range [-8,8]. It wouldn't cause too much instability in the search because I have a dedicated TT for the evaluation, so it would continue to return that "randomized" score at least until the cache entry was overwritten. Does anyone see any issues with that approach?
-
- Posts: 28353
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: More Random Games?
I used this system for introducing non-determinism in Joker. To ensure consistency I derived the random addition from the hash key. Something like
(hashKey ^ gameKey) * CONST >> N
Where CONST was a number that ensured all bits of the XOR would contribute to the upper bits, and N would determine the maximum addition. The gameKey would be constant during the game, but different for different games. E.g. by deriving it from the time (milliseconds, or nanoseconds using the time-stamp counter of the CPU) at the start of the game.
This kind of randomization is reported to have a beneficial effect on playing strength (the Beal effect), because it can be considered a poor-man's mobility bonus: in positions with many moves it is more likely one of those will have a large random addition.
I got the impression that the randomization it caused decreased with search depth, though. But of course this can be counteracted by increasing the maximum of the term with search depth.
(hashKey ^ gameKey) * CONST >> N
Where CONST was a number that ensured all bits of the XOR would contribute to the upper bits, and N would determine the maximum addition. The gameKey would be constant during the game, but different for different games. E.g. by deriving it from the time (milliseconds, or nanoseconds using the time-stamp counter of the CPU) at the start of the game.
This kind of randomization is reported to have a beneficial effect on playing strength (the Beal effect), because it can be considered a poor-man's mobility bonus: in positions with many moves it is more likely one of those will have a large random addition.
I got the impression that the randomization it caused decreased with search depth, though. But of course this can be counteracted by increasing the maximum of the term with search depth.
-
- Posts: 253
- Joined: Mon Aug 26, 2019 4:34 pm
- Location: Clearwater, Florida USA
- Full name: JoAnn Peeler
Re: More Random Games?
Wow, so many valuable nuggets in the chess programming wiki. Every time I go there I learn something new. Most often when I'm not really searching for anything just following hyperlinks around. When you don't really know what you are looking for its sort of hard to formulate a search for it.
I will have to see if the randomness seems to disappear as depth is increased. I'm thinking that while the score may converge on something that doesn't vary too much from a non-random search that the randomness in move-selection will still be preserved, but I will need to test that hypothesis.

I will have to see if the randomness seems to disappear as depth is increased. I'm thinking that while the score may converge on something that doesn't vary too much from a non-random search that the randomness in move-selection will still be preserved, but I will need to test that hypothesis.