An adaptive evolutionary algorithm based on tactical and positional chess problems to adjust the weights of a chess engine

This paper employs an evolutionary algorithm to adjust the weights of the evaluation function of a chess engine. The selection mechanism of this algorithm chooses the virtual players (individuals in the population) that have the highest number of problems properly solved from a database of tactical and positional chess problems. This method has as its main advantage that we only mutate those weights involved in the solution of the current problem. Furthermore, the mutation mechanism is based on a Gaussian distribution whose standard deviation is adapted through the number of problems solved by each virtual player. We show here how, with the use of this method, we were able to increase the rating of our chess engine in 557 Elo points (from 1760 to 2317).

[1]  Alexander Reinefeld,et al.  An Improvement to the Scout Tree Search Algorithm , 1983, J. Int. Comput. Games Assoc..

[2]  T. Anthony Marsland,et al.  A Comparison of Minimax Tree Search Algorithms , 1983, Artif. Intell..

[3]  Claude E. Shannon,et al.  XXII. Programming a Computer for Playing Chess 1 , 1950 .

[4]  Janez Brest,et al.  A Differential Evolution for the Tuning of a Chess Evaluation Function , 2006, 2006 IEEE International Conference on Evolutionary Computation.

[5]  Allen Newell,et al.  Chess-Playing Programs and the Problem of Complexity , 1958, IBM J. Res. Dev..

[6]  Robert Bellin Test your positional play ŠACHY SCHACH CHESS , 1985 .

[7]  Nathan S. Netanyahu,et al.  Genetic algorithms for mentor-assisted evaluation function optimization , 2008, GECCO '08.

[8]  Carlos A. Coello Coello,et al.  Assessing the positional values of chess pieces by tuning neural networks' weights with an evolutionary algorithm , 2012, World Automation Congress 2012.

[9]  Feliu Sagols,et al.  An adaptive evolutionary algorithm based on typical chess problems for tuning a chess evaluation function , 2011, GECCO.

[10]  Donald F. Beal,et al.  A Generalised Quiescence Search Algorithm , 1990, Artif. Intell..

[11]  Sebastian Thrun,et al.  Learning to Play the Game of Chess , 1994, NIPS.

[12]  H. Nasreddine,et al.  Using an Evolutionary Algorithm for the Tuning of a Chess Evaluation Function Based on a Dynamic Boundary Strategy , 2006, 2006 IEEE Conference on Cybernetics and Intelligent Systems.

[13]  Michael Buro,et al.  Tuning evaluation functions by maximizing concordance , 2005, Theor. Comput. Sci..

[14]  A. Elo The rating of chessplayers, past and present , 1978 .

[15]  D. Hunter MM algorithms for generalized Bradley-Terry models , 2003 .

[16]  Donald E. Knuth,et al.  An Analysis of Alpha-Beta Pruning , 1975, Artif. Intell..

[17]  David B. Fogel,et al.  Further Evolution of a Self-Learning Chess Program , 2005, CIG.

[18]  Feliu Sagols,et al.  An evolutionary algorithm for tuning a chess evaluation function , 2011, 2011 IEEE Congress of Evolutionary Computation (CEC).

[19]  H. Jaap van den Herik,et al.  Simulating human grandmasters: evolution and coevolution of evaluation functions , 2009, GECCO.

[20]  Zbigniew Michalewicz,et al.  Genetic Algorithms + Data Structures = Evolution Programs , 1992, Artificial Intelligence.

[21]  Lawrence J. Fogel,et al.  Artificial Intelligence through Simulated Evolution , 1966 .

[22]  Janez Brest,et al.  History mechanism supported differential evolution for chess evaluation function tuning , 2010, Soft Comput..

[23]  Janez Brest,et al.  An Adaptive Differential Evolution Algorithm with Opposition-Based Mechanisms, Applied to the Tuning of a Chess Program , 2008 .

[24]  Albert L. Zobrist,et al.  A New Hashing Method with Application for Game Playing , 1990 .

[25]  Graham Kendall,et al.  An evolutionary approach for the tuning of a chess evaluation function using population dynamics , 2001, Proceedings of the 2001 Congress on Evolutionary Computation (IEEE Cat. No.01TH8546).

[26]  Claude E. Shannon,et al.  Programming a computer for playing chess , 1950 .

[27]  Nathan S. Netanyahu,et al.  Expert-driven genetic algorithms for simulating evaluation functions , 2010, Genetic Programming and Evolvable Machines.

[28]  D.B. Fogel,et al.  A self-learning evolutionary chess program , 2004, Proceedings of the IEEE.

[29]  Feliu Sagols,et al.  An evolutionary algorithm coupled with the Hooke-Jeeves algorithm for tuning a chess evaluation function , 2012, 2012 IEEE Congress on Evolutionary Computation.

[30]  T. A. Marsland,et al.  A Review of Game-Tree Pruning , 1986, J. Int. Comput. Games Assoc..