Skip to content

mkoryak/evolutionary-neural-net-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Evolutionary-Neural-Net-Checker-AI

A neural network based minimax checker AI that is generated using an evolutionary algorithm.


Demo - Play against 3 of the best AIs we evolved.

Sadly, this no longer works because java applets are not supported by modern browsers. If I recall correctly, the code include a desktop checker application written in java swing that you may be able to run. Be warned though, this was built in java 1.4 almost 20 years ago by some college kids using an IDE that was basically notepad with a run button.


The Neural Network Checker AI was a semester long final project for a graduate evolutionary computation class I took in 2006. I worked on a team with Ari Packer to complete this project. Dan Dumont also provided a "hard" checker AI which we used to train against

This project was based on a 2001 publication by Chellapilla K and Fogel DB (2001) "Evolving an Expert Checkers Playing Program without Using Human Expertise". That paper can be found here

How The Program Works

To create an intelligent checkers player, Fogel used an alpha-beta algorithm with a neural network to evaluate the worth of each leaf. A population of these strategies (a term Fogel uses to describe a neural network's weights and biases and as well as a king value K) was then evolved to produce an intelligent board evaluator. Each strategy's fitness was calculated by having the strategies compete. The worst performing strategies were then purged from the population and replaced by mutated copied of the remaining strategies. A ply depth of four, which constitutes two moves per player, was used when matching the strategies against each other, and a ply depth of eight was used when testing a strategy. Strategies were tested against human players on the Microsoft Gaming Zone as well as against a version of Chinook which had a reduced difficulty.

Releases

No releases published

Packages

No packages published