Skip to content

Ludeme/LudiiAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deprecated

This repository is now deprecated; all AI source code for Ludii is included in the main open-source Ludii repo at https://github.com/Ludeme/Ludii.

Ludii AI Source Code

license release-version twitter

This repository contains the source code for the built-in AIs of the Ludii general game system, as well some of the AI code used for some of the Digital Ludeme Project publications (specifically for the ones that focus on AI playing and/or training).

Note that this source code on its own cannot be directly compiled and/or run; these files import various core Ludii classes for which source code is not included. The .class files for all of these are included in the main Ludii JAR download. We do hope that this AI source code may be useful for:

  1. Clarifying any implementation details / providing a reference implementation for some of our AI publications.
  2. Providing more sophisticated and advanced examples for AI implementations that can be used in Ludii (for simple examples, we refer to the dedicated Ludii Example AI repository and the Ludii tutorials).

Included AI Algorithms

The following AI algorithms are included:

  • Random.
  • Flat Monte-Carlo search.
  • Monte-Carlo Tree Search (MCTS), with various options for customisation. This includes a standard UCT, a PUCT selection phase (as in AlphaZero, albeit with a simpler function approximator for the policy, and no value head), GRAVE, tree reuse, etc.
  • Alpha-Beta Search, with iterative deepening and options for various heuristics. Uses a paranoid search in games with more than two players, and re-starts with a MaxN search if there is still time left and the paranoid search was run to completion.
  • Ludii AI: an agent that uses hints written in the metadata of game files to automatically select the "best" agent from all the above (based on our own experiments) for the current game and options.

Related Papers

Cameron Browne, Dennis J.N.J. Soemers, and Eric Piette (2019). “Strategic Features for General Games”. In Proceedings of the 2nd Workshop on Knowledge Extraction from Games (KEG), pp. 70–75. [pdf]

The general game features described in this paper are implemented in the Features module. Note that there have been some extensions since the publication of that paper.

Dennis J.N.J. Soemers, Éric Piette, and Cameron Browne (2019). “Biasing MCTS with Features for General Games”. In 2019 IEEE Congress on Evolutionary Computation (CEC 2019), pp. 442–449. [pdf (preprint)]

The features and Biased MCTS described in this paper are implemented in the Features and AI modules, respectively. Note that the feature discovery and training process are not yet fully included; we hope to move those over into these modules at a later date.

Dennis J.N.J. Soemers, Éric Piette, Matthew Stephenson, and Cameron Browne (2019). “Learning Policies from Self-Play with Policy Gradients and MCTS Value Estimates”. In 2019 IEEE Conference on Games (COG 2019), pp. 329–336. [pdf]

The features, MCTS agents and softmax policies used in this paper are implemented in the Features and AI modules. Note that the training processes are not yet fully included; we hope to move those over into these modules at a later date.

Dennis J.N.J. Soemers, Éric Piette, Matthew Stephenson, and Cameron Browne (2020). “Manipulating the Distributions of Experience used for Self-Play Learning in Expert Iteration”. In 2020 IEEE Conference on Games (CoG 2020), to appear. [pdf preprint]

The features and different MCTS agents used in this paper are implemented in the Features and AI modules, respectively. Note that the training processes are not yet fully included; we hope to move those over into these modules at a later date.

Contact Info

The preferred method for getting help with troubleshooting, suggesting or requesting additional functionality, or asking other questions about AI development for Ludii, is creating new Issues on the github repository. Alternatively, the following email address may be used: ludii(dot)games(at)gmail(dot)com.

Changelog

  • 23 April, 2021: Updated AI code for Ludii v.1.17.
  • 22 February, 2021: Updated AI code for Ludii v1.1.15.
  • 16 January, 2021: Updated AI code for Ludii v1.1.12.
  • 27 November, 2020: Updated AI code for Ludii v1.1.4.
  • 18 November, 2020: Updated AI code for Ludii v1.1.1.
  • 28 October, 2020: Updated AI code for Ludii v1.0.9.
  • 17 October, 2020: Updated AI code for Ludii v1.0.8.
  • 27 July, 2020: Initial publication of this repo, source code matches the public Ludii v1.0.0 release.

Acknowledgements

This repository is part of the European Research Council-funded Digital Ludeme Project (ERC Consolidator Grant #771292), being run by Cameron Browne at Maastricht University's Department of Data Science and Knowledge Engineering.

European Research Council Logo