# PonyGE2: Grammatical Evolution in Python

arXiv: https://arxiv.org/abs/1703.08535 · HTML: https://mlsanity.com/paper/1703.08535/

## Key facts

- Cited by 7 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 24 Mar 2017.

## Built on by (most cited first, 7 of 7)

- [Data types as a more ergonomic frontend for Grammar-Guided Genetic Programming](https://mlsanity.com/paper/2210.04826/) (2022)
- [Discovering Graph Generation Algorithms](https://mlsanity.com/paper/2304.12895/) (2023)
- [Iterative Genetic Improvement: Scaling Stochastic Program Synthesis](https://mlsanity.com/paper/2202.13040/) (2022)
- [Rule-based Evolutionary Bayesian Learning](https://mlsanity.com/paper/2202.13778/) (2022)
- [Automatic Design of Semantic Similarity Ensembles Using Grammatical Evolution](https://mlsanity.com/paper/2307.00925/) (2023)
- [Analysing the Needs of Homeless People Using Feature Selection and Mining Association Rules](https://mlsanity.com/paper/2401.08008/) (2024)
- [Model Discovery with Grammatical Evolution. An Experiment with Prime Numbers](https://mlsanity.com/paper/2505.12440/) (2025)

## Abstract (arXiv)

Grammatical Evolution (GE) is a population-based evolutionary algorithm, where a formal grammar is used in the genotype to phenotype mapping process. PonyGE2 is an open source implementation of GE in Python, developed at UCD's Natural Computing Research and Applications group. It is intended as an advertisement and a starting-point for those new to GE, a reference for students and researchers, a rapid-prototyping medium for our own experiments, and a Python workout. As well as providing the characteristic genotype to phenotype mapping of GE, a search algorithm engine is also provided. A number of sample problems and tutorials on how to use and adapt PonyGE2 have been developed.
