AIDec 18, 2024

Python Agent in Ludii

arXiv:2412.14372v1h-index: 3
Originality Synthesis-oriented
AI Analysis

This work provides incremental improvements for developers using the Ludii system by offering Python interfaces to ease agent development, though it focuses on performance benchmarking rather than novel algorithmic advances.

The study tackled the performance comparison of two Java libraries, jpy and Py4J, for enabling Python interfaces in the Ludii general game system, finding that jpy is faster than Py4J but slower than native Java agents in implementing game-playing algorithms like Minimax and MCTS across various combinatorial games.

Ludii is a Java general game system with a considerable number of board games, with an API for developing new agents and a game description language to create new games. To improve versatility and ease development, we provide Python interfaces for agent programming. This allows the use of Python modules to implement general game playing agents. As a means of enabling Python for creating Ludii agents, the interfaces are implemented using different Java libraries: jpy and Py4J. The main goal of this work is to determine which version is faster. To do so, we conducted a performance analysis of two different GGP algorithms, Minimax adapted to GGP and MCTS. The analysis was performed across several combinatorial games with varying depth, branching factor, and ply time. For reproducibility, we provide tutorials and repositories. Our analysis includes predictive models using regression, which suggest that jpy is faster than Py4J, however slower than a native Java Ludii agent, as expected.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes