Optimizing a Chess Heuristic Using Evolutionary Algorithms
description
Transcript of Optimizing a Chess Heuristic Using Evolutionary Algorithms
Optimizing a Chess Heuristic Using Evolutionary Algorithms
Benjamin Rhew11-29-04
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)
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
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
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}
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}
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.
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
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
Cassandre
Chess engine compatible with winboard and xboard
Already has moves and board representation in place
Only need to provide heuristic
Questions?