mkoryak / evolutionary-neural-net-ai

like alphago but for checkers and in java 1.4 :)

Home Page:http://mkoryak.github.io/code/2014/10/16/evolutionary-neural-net-checker-ai/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

like alphago but for checkers and in java 1.4 :)

http://mkoryak.github.io/code/2014/10/16/evolutionary-neural-net-checker-ai/


Languages

Language:Java 94.4%Language:HTML 5.6%