Title: Optimizing a Chess Heuristic Using Evolutionary Algorithms
1Optimizing a Chess Heuristic Using Evolutionary
Algorithms
2Chess 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)
3Why 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
4The 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
5Representing 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
6Evolutionary 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
7Evolutionary 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.
8Other 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
9The Fitness Function
- Fitness is based on win/lose/stalemate
- Win1, lose-1, stalemate0
- 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
10Cassandre
- Chess engine compatible with winboard and xboard
- Already has moves and board representation in
place - Only need to provide heuristic
11Questions?