Developments in Cartesian Genetic Programming: Self-modifying CGP

Article (PDF Available)inGenetic Programming and Evolvable Machines 11(3-4):397-439 · September 2010with 73 Reads
DOI: 10.1007/s10710-010-9114-1 · Source: DBLP
Abstract
Self-modifying Cartesian Genetic Programming (SMCGP) is a general purpose, graph-based, developmental form of Genetic Programming founded on Cartesian Genetic Programming. In addition to the usual computational functions, it includes functions that can modify the program encoded in the genotype. This means that programs can be iterated to produce an infinite sequence of programs (phenotypes) from a single evolved genotype. It also allows programs to acquire more inputs and produce more outputs during this iteration. We discuss how SMCGP can be used and the results obtained in several different problem domains, including digital circuits, generation of patterns and sequences, and mathematical problems. We find that SMCGP can efficiently solve all the problems studied. In addition, we prove mathematically that evolved programs can provide general solutions to a number of problems: n-input even-parity, n-input adder, and sequence approximation to π.

Supplementary resources

  • Chapter
    Full-text available
    Genetic Programming (GP) is a form of nature-inspired computing, introduced over 30 years ago, with notable success in problems such as symbolic regression. However, there remains a lot of relatively unexploited potential for solving hard, real-world problems. There is consensus in the GP community that the lack of effective real-world benchmark problems negatively impacts the quality of research [4]. When a GP system is initialised, a number of parameters must be provided. The optimal setup configuration is often not known, due to the fact that many of the values are problem and domain specific, meaning the GP system is unable to produce satisfactory results. We believe that the implementation of continuous self-adaptation, along with the introduction of tunable and suitably difficult benchmark problems, will allow for the creation of more robust GP systems that are resilient to failure.
  • Chapter
    Miller’s Cartesian genetic programming (CGP) has significantly influenced the development of evolutionary circuit design and evolvable hardware. We present key ingredients of CGP with respect to the efficient search in the space of digital circuits. We then show that approximate computing, which is currently one of the promising approaches used to reduce power consumption of computer systems, is a natural application for CGP. We briefly survey typical applications of CGP in approximate circuit design and outline new directions in approximate computing that could benefit from CGP.
  • Chapter
    In this chapter we take a fresh look at the current status of evolving computer code using Genetic Programming methods. The emphasis is not so much on what has been achieved in detail in the past few years, but on the general research direction of code evolution and its ramifications for GP. We begin with a quick glance at the area of Search-based Software Engineering (SBSE), discuss the history of GP as applied to code evolution, consider various application scenarios, and speculate on techniques that might lead to a scaling-up of present-day approaches.
  • ... Factorization of such a tensor reveals the latent relationships between the low level heuristics and the hyper-heuristic itself. Related approaches to hyper-heuristics are evolving evolutionary algorithms (EEA) [30], which let an EA discover the rules and knowledge, so that it can find the best EA to optimise the solutions of a problem; Self-modification Cartesian Genetic Programming (SMCGP) [31], which encodes the chosen lowlevel heuristic, alongside self-modifying operators in a graph structure; Autoconstructive Evolution [32] as reproductive mechanisms, which are evolved and then used to derive problem solutions; and exponentially increasing hyperheuristic (EIHH) [33], which uses a meta-hyper-heuristic algorithm to search heuristic space for greater performance benefits. Combination of different heuristics also can be defined as the leader-following consensus problem, where leader is a heuristic with best fitness, which is followed by other heuristics. ...
    Conference Paper
    Full-text available
    The paper presents a novel hyper-heuristic strategy for hybridization of nature inspired algorithms. The strategy is based on switching the state of agents using a logistic probability function, which depends upon the fitness rank of an agent. A case study using two nature inspired algorithms (Artificial Bee Colony (ABC) and Krill Herding (KH)) and eight optimization problems (Ackley Function, Bukin Function N.6, Griewank Function, Holder Table Function, Levy Function, Schaffer Function N.2, Schwefel Function, Shubert Function) is presented. The results show a superiority of the proposed hyper-heuristic (mean end-rank for hybrid algorithm is 1.435 vs. 2.157 for KH and 2.408 for ABC).
  • Conference Paper
    Full-text available
    For empirical research on computer algorithms, it is essential to have a set of benchmark problems on which the relative performance of different methods and their applicability can be assessed. In the majority of computational research fields there are established sets of benchmark problems; however, the field of genetic programming lacks a similarly rigorously defined set of benchmarks. There is a strong interest within the genetic programming community to develop a suite of benchmarks. Following recent surveys [7], the desirable characteristics of a benchmark problem are now better defined. In this paper the Tartarus problem is proposed as a tunably difficult benchmark problem for use in Genetic Programming. The justification for this proposal is presented, together with guidance on its usage as a benchmark.
  • Thesis
    Full-text available
    Although robotics research has seen advances over the last decades robots are still not in widespread use outside industrial applications. Yet a range of proposed scenarios have robots working together, helping and coexisting with humans in daily life. In all these a clear need to deal with a more unstructured, changing environment arises. I herein present a system that aims to overcome the limitations of highly complex robotic systems, in terms of autonomy and adaptation. The main focus of research is to investigate the use of visual feedback for improving reaching and grasping capabilities of complex robots. To facilitate this a combined integration of computer vision and machine learning techniques is employed. From a robot vision point of view the combination of domain knowledge from both imaging processing and machine learning techniques, can expand the capabilities of robots. I present a novel framework called Cartesian Genetic Programming for Image Processing (CGP-IP). CGP-IP can be trained to detect objects in the incoming camera streams and successfully demonstrated on many different problem domains. The approach requires only a few training images (it was tested with 5 to 10 images per experiment) is fast, scalable and robust yet requires very small training sets. Additionally, it can generate human readable programs that can be further customized and tuned. While CGP-IP is a supervised-learning technique, I show an integration on the iCub, that allows for the autonomous learning of object detection and identification. Finally this dissertation includes two proof-of-concepts that integrate the motion and action sides. First, reactive reaching and grasping is shown. It allows the robot to avoid obstacles detected in the visual stream, while reaching for the intended target object. Furthermore the integration enables us to use the robot in non-static environments, i.e. the reaching is adapted on-the- fly from the visual feedback received, e.g. when an obstacle is moved into the trajectory. The second integration highlights the capabilities of these frameworks, by improving the visual detection by performing object manipulation actions.
  • Presentation
    Full-text available
    Genetic Programming is often associated with a tree representation for encoding expressions and algorithms. However, graphs are also very useful and flexible program representations which can be applied to many domains (e.g. electronic circuits, neural networks, algorithms). Over the years a variety of representations of graphs have been explored such as: Parallel Distributed Genetic Programming (PDGP) , Linear-Graph Genetic Programming, Implicit Context Genetic Programming, Graph Structured Program Evolution (GRAPE) and Cartesian Genetic Programming (CGP). Cartesian Genetic Programming (CGP) is probably the best known form of graph-based Genetic Programming. It was developed by Julian Miller in 1999-2000. In its classic form, it uses a very simple integer address-based genetic representation of a program in the form of a directed graph. CGP has been adopted by a large number of researchers in many domains. In a number of studies, CGP has been shown to be comparatively efficient to other GP techniques. It is also very simple to program. Since its original formulation, the classical form of CGP has also undergone a number of developments which have made it more useful, efficient and flexible in various ways. These include the addition of automatically defined functions (modular CGP), self-modification operators (self-modifying CGP), the encoding of artificial neural networks (GCPANNs) and evolving iterative programs (iterative CGP).
  • Chapter
    Cartesian Genetic Programming is a form of Genetic Programming based on evolving graph structures. It has a fixed genotype length and a genotype–phenotype mapping that introduces neutrality into the representation. It has been used for many applications and was one of the first Genetic Programming techniques to be implemented on the GPU. In this chapter, we describe the representation in detail and discuss various GPU implementations of it. Later in the chapter, we discuss a recent implementation based on the GPU.net framework.
  • ... Independently of the chosen program representation, most GP algorithms rely on evolutionary algorithms with different genetic operators and fitness functions . There also exist a lot of modifications and extensions to improve the expressive power of GP like self-modifying code [6] or integrating memory [23]. In this work, we use the new PGE algorithm proposed by Worm and Chiu [26] because it is able to find the best solution deterministically yet avoiding a complete search in the solution space. ...
    Conference Paper
    New advanced safety systems like accident-adaptive restraint systems have the potential to improve vehicle safety. However, these systems may require a function predicting the crash severity prior to a collision. This means that only with accident parameters gathered by precrash car sensors the severity of the upcoming collision has to be predicted. In this work, we present the first known approach based on symbolic regression that finds a solution for this challenging problem automatically. For that, we process crash simulation data and apply Prioritized Grammar Enumeration (PGE) for the first time in a real-world application. In the evaluation, we show that the found model is fast, compact and interpretable yet achieving a good prediction performance. We conclude this paper with a discussion and research questions, which may lead to an application of this approach for future, safer vehicles.
  • ... There are various variations to the existing conventional CGP. Iterative self modifications are done to allow the phenotype changes and they are termed as selfmodifying CGP [7]. For modular problems the re-use of subroutines in CPG has shown significant improvement which is called embedded CGP or modular CGP [3,10]. ...
    Article
    Full-text available
    Digital multipliers are used in arithmetic circuits which form the data path in almost all the signal processing algorithms. Hence it is always important to optimize the multiplier circuits as its optimization contributes a significant change in the overall algorithm itself. Recently many bio-inspired optimization algorithms are used to evolve and to optimize many gate-level combinational circuits like multiplier and adders. Among which the most widely used optimization technique is the Cartesian Genetic Programming (CGP). A hybrid approach is proposed to design a multiplier of practically usable size of the order of 16-bit, 32-bit and 64-bit. The higher order multipliers are partitioned into sub-multipliers of small sizes and using a hierarchical approach the higherorder multipliers are designed. Perhaps the scalability problems in the optimization of large combinational circuits are avoided and a complete multiplier circuit is evolved and designed. Thus a hybrid optimization using CGP and design using partitioned-multiplier approach certainly helps in realizing more efficient multiplier in terms of power and area.
  • Conference Paper
    We present here a new model of computation: the Self-Modifying Finite Automaton (SMFA). This is similar to a standard finite automaton, but changes to the machine are allowed during a computation. It is shown here that a weak form of this model has the power to recognize an important class of context-free languages, the metalinear languages, as well as some significant non-context-free languages. Less restricted forms of SMFA's accept even more.
  • Article
    The fractal protein is a new concept intended to improve evolvability, scalability, exploitability and provide a rich medium for evolutionary computation. Here the idea of fractal proteins and fractal proteins with concentration levels are introduced, and a series of experiments showing how evolution can design and exploit them within gene regulatory networks is described.
  • Book
    On Growth and Form, the classic by the great D'Arcy Wentworth Thompson provides the general inspiration for this book. D'Arcy was not one to run with the herd; he was an original thinker and brilHant classicist, mathematician and physicist, who provided a source of fresh air to developmental biology by examining growth and form in the light of physics and mathematics, courageously ignoring chemistry and genetics. Despite this omission of what are now regarded as the main sciences in understanding growth and form, D'Arcy's message is not in the least bit impaired. Instead, in today's biochemistry dominant world D'Arcy's work highlights, as it did in his own time, the role physics plays in growth and form. This book takes its name from D'Arcy's magnum opus and hopes to do it justice.
  • Article
    Biological chromosomes are replete with repetitive sequences, micro satellites, SSR tracts, ALU, etc. in their DNA base sequences. We started looking for similar phenomena in evolutionary computation. First studies find copious repeated sequences, which can be hierarchically decomposed into shorter sequences, in programs evolved using both homologous and two point crossover but not with headless chicken crossover or other mutations. In bloated programs the small number of effective or expressed instructions appear in both repeated and nonrepeated code. Hinting that building-blocks or code reuse may evolve in unplanned ways. Mackey-Glass chaotic time series prediction and eukaryotic protein localisation (both previously used as artificial intelligence machine learning benchmarks) demonstrate evolution of Shannon information (entropy) and lead to models capable of lossy Kolmogorov compression. Our findings with diverse benchmarks and GP systems suggest this emergent phenomenon may be widespread in genetic systems.
  • Article
    We have developed an artificial ecology in the computer core, where one is able to evolve assembler-automaton code without any predefined evolutionary path. The system, in the present version has one dimension, is updated in parallel, the instructions are only able to communicate locally, and the system is continuously subjected to noise. The system also has a notion of computational resources. Depending on the specified parameters and the level of complexity of distance from a randomized core, this electronic garden is started at, we see different evolutionary paths. For several initial conditions the system is able to develop extremely viable cooperative programs (organisms ) which totally dominates the core. This demonstrates the emergence of complex functional properties in a computational environment. 21 refs., 7 figs., 2 tabs.
  • Article
    Full-text available
    Genetic programming (GP) extends traditional genetic algorithms to automatically induce computer programs. GP has been applied in a wide range of applications such as software re-engineering, electrical circuits synthesis, knowledge engineering, and data mining. One of the most important and challenging research areas in GP is the investigation of ways to successfully evolve recursive programs. A recursive program is one that calls itself either directly or indirectly through other programs. Because recursions lead to compact and general programs and provide a mechanism for reusing program code, they facilitate GP to solve larger and more complicated problems. Nevertheless, it is commonly agreed that the recursive program learning problem is very difficult for GP. In this paper, we propose a technique to tackle the difficulties in learning recursive programs. The technique is incorporated into an adaptive Grammar Based Genetic Programming system (adaptive GBGP). A number of experiments have been performed to demonstrate that the system can evolve recursive programs efficiently and effectively.