Teil eines Buches,

Genetic Programming in C++: Implementation Issues

, und .
Advances in Genetic Programming, Kapitel 13, MIT Press, (1994)

Zusammenfassung

The purpose of our current research is to investigate the design and implementation of a Genetic Programming platform in C++, with primary focus on efficiency and flexibility. In this chapter we consider the lower level implementation aspects of such a platform, specifically, the Genome Interpreter. The fact that Genetic Programming is a computationally expensive task means that the overall efficiency of the platform in both memory and time is crucial. In particular, the node representation is the key part of the implementation in which the overhead will be magnified. We first compare a number of ways of storing the topology of the tree. The most efficient representation overall is one in which the program tree is a linear array of nodes in prefix order as opposed to a pointer based tree structure. We consider trade-offs with other linear representations, namely postfix and arbitrary positioning of functions and their arguments. We then consider how to represent which function or terminal each node represents, and demonstrate a very efficient one to two byte representation. Finally, we integrate these approaches and offer a prefix/jump-table (PJT) approach which results in a very small overhead per node in both time and space compared to the other approaches we investigated. In addition to being efficient, our interpreter is also very flexible. Finally, we discuss approaches for handling flow control, encapsulation, recursion, and simulated parallel programming.

Tags

Nutzer

  • @brazovayeye

Kommentare und Rezensionen