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.