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.
翻译:笛卡尔遗传编程(CGP)的参考实现使用C编程语言编写。C语言天然遵循过程式编程范式,这导致其在为复杂结构和方法提供可复用、可扩展的实现模型时面临挑战。此外,受限于C语言的制约因素,CGP的参考实现并未提供通用框架,因此仅能支持预定义的评估类型集合。除参考实现外,我们观察到现有其他实现在所提供的特性方面同样存在局限性。为此,本研究首次提出基于现代C++的CGP实现版本,该版本采用面向对象设计与泛型编程范式,旨在构建高效的实现模型,以促进新问题域的探索,并支持随时间推移为CGP提出的复杂高级方法的实现。通过提出这一新实现,我们致力于全面提升CGP领域的可解释性、可访问性与可复现性。