1 / 11

Optimizing a Chess Heuristic Using Evolutionary Algorithms

Benjamin Rhew 11-29-04. Optimizing a Chess Heuristic Using Evolutionary Algorithms. Chess and AI in History. Hoaxes The Automaton Chess-Player Ajeeb automaton Endgame Machine (1890) 1950s – True Chess Playing 1988 – Deep Thought 1997 – Deep Blue (vs Kasparov).

marlin
Download Presentation

Optimizing a Chess Heuristic Using Evolutionary Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Benjamin Rhew 11-29-04 Optimizing a Chess Heuristic Using Evolutionary Algorithms

  2. Chess and AI in History • Hoaxes • The Automaton Chess-Player • Ajeeb automaton • Endgame Machine (1890) • 1950s – True Chess Playing • 1988 – Deep Thought • 1997 – Deep Blue (vs Kasparov)

  3. Why Optimize (aka Motivation)? • Current evaluation method is becoming obsolete • Evaluate against optimized heuristic instead • Apply to other similar, more difficult problems • Other games • Optimization problems • etc

  4. The Problem • Take a previously existing heuristic and evolve it so that it becomes more effective • More generally, development of a heuristic to be used in a game-tree search algorithm

  5. Representing an Individual • An individual has several genes, with most genes represented by a 64 by 64 array. • Genes that are not arrays are single integers. • Each of these genes corresponds to a heuristic for one piece, sometimes distinguished by color. {-10,-5,-5,-5,-5,-5,-5, -10, -5 , 0, 0, 3, 3, 0, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 0, 3, 3, 0, 0, -5, -10,-5,-5,-5, -5, -5,-5,-10}

  6. Evolutionary Operators • Crossover • Uniform based on genes (no sub-gene crossing) {-10,-5,-5,-5,-5,-5,-5, -10, -5 , 0, 0, 3, 3, 0, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 0, 3, 3, 0, 0, -5, -10,-5,-5,-5, -5, -5,-5,-10} {-10,-5,-5,-5,-5,-5,-5, -10, -5 , 0, 0, 3, 3, 0, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 0, 3, 3, 0, 0, -5, -10,-5,-5,-5, -5, -5,-5,-10} {-10,-5,-5,-5,-5,-5,-5, -10, -5 , 0, 0, 3, 3, 0, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 0, 3, 3, 0, 0, -5, -10,-5,-5,-5, -5, -5,-5,-10} {-10,-5,-5,-5,-5,-5,-5, -10, -5 , 0, 0, 3, 3, 0, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 0, 3, 3, 0, 0, -5, -10,-5,-5,-5, -5, -5,-5,-10} {-10,-5,-5,-5,-5,-5,-5, -10, -5 , 0, 0, 3, 3, 0, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 0, 3, 3, 0, 0, -5, -10,-5,-5,-5, -5, -5,-5,-10} {-10,-5,-5,-5,-5,-5,-5, -10, -5 , 0, 0, 3, 3, 0, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5,10,10, 5, 0, -5, -5 , 0, 5, 5, 5, 5, 0, -5, -5 , 0, 0, 3, 3, 0, 0, -5, -10,-5,-5,-5, -5, -5,-5,-10}

  7. Evolutionary Operators • Mutation • 1/n chance of mutating, where n is the number of genes. • Once a gene is picked, every value in it is mutated by a gaussian random value.

  8. Other Evolutionary Parameters • Uses the Parallel Framework to speed up calculation • Split into 10 islands of 10 individuals each • Passes 1 individual every 10 generations • Individual is random

  9. The Fitness Function • Fitness is based on win/lose/stalemate • Win=1, lose=-1, stalemate=0 • Initialized at 10 fitness, which is then modified by playing original heuristic • Each side has 30 minutes total • Fitness is then based on playing a random solution – and both fitnesses will be updated

  10. Cassandre • Chess engine compatible with winboard and xboard • Already has moves and board representation in place • Only need to provide heuristic

  11. Questions?

More Related