Skip to content

Purdue ECE 570 AI Project -- General Game Playing and Monte Carlo Tree Search

License

Notifications You must be signed in to change notification settings

ramirez7/ggp-mcts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

General Game Playing Monte-Carlo Tree Search

This was my semester project for Purdue ECE 570: Artificial Intelligence. I implemented a General Game Playing, Monte-Carlo Tree Search algorithm with some enhancements from the current papers I read.

In the process, I created some easy-to-use code that can translate Game Description Language descriptions of game rules to usable Clojure functions.

Usage

create-environment is the core of the GDL->core.logic. Just call it on a GDL description represented as a quoted list of GDL declarations and it will create an environment representing the game logic and state. This environment can then be passed to best-move and the AI will play.

To access a produced core.logic relation, call (get-relation env :RELATION-NAME). The resulting relation will take the same arguments in the same order as the GDL relation.

If you want to see the Clojure core.logic code generated, call create-code on the GDL description. A map of quoted code will be produced, with the keys being the GDL relation names as keywords.

Progress

  • Tic-Tac-Toe GDL successfuly translated to core.logic
  • GDL->core.logic translator complete
  • MCTS algorithm complete and should work with any GDL game
  • Goal Stability Early Cutoff MCTS extension implemented

Resources

Papers

General Game Playing

Monte-Carlo Tree Search

License

Copyright © 2013 Armando Ramirez

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

About

Purdue ECE 570 AI Project -- General Game Playing and Monte Carlo Tree Search

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published