NELGJun 13, 2024

CGP++ : A Modern C++ Implementation of Cartesian Genetic Programming

arXiv:2406.09038v11 citations
Originality Synthesis-oriented
AI Analysis

This work provides a more efficient and flexible implementation framework for researchers and practitioners in evolutionary computation, specifically targeting CGP, but it is incremental as it focuses on software engineering improvements rather than algorithmic breakthroughs.

The authors tackled the limitations of the existing C-based reference implementation of Cartesian Genetic Programming (CGP) by developing a modern C++ version that uses object-oriented and generic programming paradigms to enhance reusability, scalability, and support for new problem domains and advanced methods.

The reference implementation of Cartesian Genetic Programming (CGP) was written in the C programming language. C inherently follows a procedural programming paradigm, which entails challenges in providing a reusable and scalable implementation model for complex structures and methods. Moreover, due to the limiting factors of C, the reference implementation of CGP does not provide a generic framework and is therefore restricted to a set of predefined evaluation types. Besides the reference implementation, we also observe that other existing implementations are limited with respect to the features provided. In this work, we therefore propose the first version of a modern C++ implementation of CGP that pursues object-oriented design and generic programming paradigm to provide an efficient implementation model that can facilitate the discovery of new problem domains and the implementation of complex advanced methods that have been proposed for CGP over time. With the proposal of our new implementation, we aim to generally promote interpretability, accessibility and reproducibility in the field of CGP.

Code Implementations1 repo
Foundations

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

Your Notes