GRAPE: Grammatical Algorithms in Python for Evolution
Allan de Lima,
Samuel Carvalho,
Douglas Mota Dias,
Enrique Naredo,
Joseph P. Sullivan,
Conor Ryan
Affiliations
Allan de Lima
Department of Computer Science and Information Systems, University of Limerick, V94 NX93 Limerick, Ireland
Samuel Carvalho
Department of Electrical and Electronic Engineering, Technological University of the Shannon: Midlands Midwest, Moylish Campus, V94 EC5T Limerick, Ireland
Douglas Mota Dias
Department of Computer Science and Information Systems, University of Limerick, V94 NX93 Limerick, Ireland
Enrique Naredo
Department of Computer Science and Information Systems, University of Limerick, V94 NX93 Limerick, Ireland
Joseph P. Sullivan
Department of Electrical and Electronic Engineering, Technological University of the Shannon: Midlands Midwest, Moylish Campus, V94 EC5T Limerick, Ireland
Conor Ryan
Department of Computer Science and Information Systems, University of Limerick, V94 NX93 Limerick, Ireland
GRAPE is an implementation of Grammatical Evolution (GE) in DEAP, an Evolutionary Computation framework in Python, which consists of the necessary classes and functions to evolve a population of grammar-based solutions, while reporting essential measures. This tool was developed at the Bio-computing and Developmental Systems (BDS) Research Group, the birthplace of GE, as an easy to use (compared to the canonical C++ implementation, libGE) tool that inherits all the advantages of DEAP, such as selection methods, parallelism and multiple search techniques, all of which can be used with GRAPE. In this paper, we address some problems to exemplify the use of GRAPE and to perform a comparison with PonyGE2, an existing implementation of GE in Python. The results show that GRAPE has a similar performance, but is able to avail of all the extra facilities and functionality found in the DEAP framework. We further show that GRAPE enables GE to be applied to systems identification problems and we demonstrate this on two benchmark problems.