Many parameters affect the rate at which this system learns. In fact, determining the best population size, mutation rate, move limit per game, and minimax depth cutoff for the learning process is a significant search problem in itself.
Through experimentation it was determined that a population size of 16, mutation rate of 0.05, and move limit of 40 provided a good balance between speed and ability. Increasing the population size produced the biggest slowdown, and showed no increase in the rate of convergence. Larger mutation rates amplified the fluctuations in the coefficients and severely hampered convergence. Adjusting the move limit had unpredictable and inconsistent effects; 40 moves is an appropriate choice based on the rules of checkers.
This program learns slightly better than Samuel's original learning algorithm, given the same utility function. Here, better means that the system converges more rapidly to a set of coefficients that provide for reasonably good play. With a mutation rate of 0.05, the system was free of violent fluctuations by about 13 or 14 generations, while Samuel's system began to stabilize after about 25 iterations. After just five generations, the system was able to play poorly but with some semblance of strategy, but even after 50 generations the computer had still not learned to play well enough to beat its programmer.
As with other methods of machine learning, irrelevant or incorrect information can lead the system to an incorrect result. In this system, misinformation takes the form of irrelevant terms in the utility function, and ultimately results in poor play. Wide fluctuations in weights were also observed by Samuel in his experiments, and he attributed them to a basic incorrect assumption - that all of the terms are independent. Samuel realized a moderate gain in playing ability by altering the composition of the function so that it was no longer linear.
Genetic algorithms are useful for solving problems that have large or poorly-understood search spaces and involve optimization. Games like checkers and chess are not especially well-understood and are far from deterministic, and genetic algorithms are effective for finding the best out of a set of utility functions to control a computer player. The difficult problem is then how to build an effective utility function, and, as these experimental results have shown, a badly constructed utility function can severely degrade not only the performance of the final system, but also performance of the learning algorithm.