Skip to content

Othello game and AI agent implementation using min-max alpha-beta and evolutionary learning

Notifications You must be signed in to change notification settings

alishokri1661s/Othello_AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Artificial intelligence course final project

The final project of this course was to implement othello game with minmax AI. The GUI has been written using java Swing and we used MVC design pattern that helped a lot in keeping our project clean and readable. The game logic has been written inside the board class and can viewed there.

For the main part of our project that is the creation of minmax tree and pruning using alpha beta and implementing a heuristic for depth limited min max. Further improvments were then added to reduce the width of our search tree by only picking 3 nodes from the generated moves the chance of getting picked being dependent on the heuristic function.

For the game to be playable we also added a new feature to include time limited iterative deepening to make sure we always had an answer ready at the given time limit. The heuristic were learned using a Evolutionary Algorithm that pited randomly generated Agents against each other and the 10 most superior were chosen to advance and to crossover.

To mitigate problems with lack of diversity we also included mutation with reasonably high chance on our population and also introduced a randomly generated Agent in every iteration of our population cycle.

The core of this project has been completed but a few small changes may be done to improve our genetic algorithm and also add multithreading to speed up training.

About

Othello game and AI agent implementation using min-max alpha-beta and evolutionary learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published