Cover
Natural Computing Series
Cartesian Genetic Programming
ISBN 9783642173097
Preface
Contents
List of Contributors
Acronyms
Chapter 1 Introduction to Evolutionary Computation and Genetic Programming
1.1 Evolutionary Computation
1.1.1 Origins
1.1.2 Illustrating Evolutionary Computation: The Travelling Salesman Problem
1.2 Genetic Programming
1.2.1 GP Representation in LISP
1.2.2 Linear or Machine Code Genetic Programming
1.2.3 Grammar-Based Approaches
1.2.4 PushGP
1.2.5 Cartesian Graph-Based GP
1.2.6 Bloat
References
Chapter 2 Cartesian Genetic Programming
2.1 Origins of CGP
2.2 General Form of CGP
2.3 Allelic Constraints
2.4 Examples
2.4.1 A Digital Circuit
2.4.2 Mathematical Equations
2.4.3 Art
2.5 Decoding a CGP Genotype
2.5.1 Algorithms for Decoding a CGP Genotype
2.6 Evolution of CGP Genotypes
2.6.1 Mutation
2.6.2 Recombination
2.6.3 Evolutionary Algorithm
2.7 Genetic Redundancy in CGP Genotypes
2.8 Parameter Settings for CGP
2.9 Cyclic CGP
References
Chapter 3 Problem Decomposition in Cartesian Genetic Programming
3.1 Introduction
3.2 Embedded Cartesian Genetic Programming (ECGP)
3.2.1 Genotype Representation
3.2.2 Modules
3.2.3 Genotype Operators
3.2.4 Module Operators
3.2.5 Evolutionary Strategy
3.2.6 Benchmark Experiments
3.3 Digital-Adders
3.4 Symbolic Regression
3.5 Lawnmower Problem
3.6 Alternative ECGP Operators
3.6.1 Cone-Based and Age-Based Module Creation
3.6.2 Cone-Based Crossover
3.7 Modular Cartesian Genetic Programming (MCGP)
3.7.1 Multi-level Module Hierarchy Representation
3.7.2 Benchmark Experiments
3.8 Multi-chromosome Cartesian Genetic Programming (MC-CGP)
3.8.1 Multi-chromosome Representation
3.8.2 Multi-chromosome Evolutionary Strategy
3.8.3 Benchmark Experiments
References
Chapter 4 Self-Modifying Cartesian Genetic Programming
4.1 Introduction
4.1.1 Discovering Mathematical Results Using Genetic Programming
4.2 Overview of Self-Modification
4.3 SMCGP and Its Relation to CGP
4.3.1 Self-Modification Operators
4.3.2 Computational Functions
4.3.3 Arguments
4.3.4 Relative Addressing
4.3.5 Input and Output Nodes
4.3.6 A Simple Example
4.3.7 Discussion
4.3.8 And Back to CGP
4.4 Solving Computational Problems with SMCGP: Parity
4.4.1 Definition of Fitness
4.4.2 Results
4.4.3 A General Solution to Computing Even-Parity
4.4.4 Why GP Cannot Solve General Parity Without Iteration
4.5 SM vs GP vs GA
4.6 Implementing Incremental Fitness Functions
4.7 Conclusions
4.8 Acknowledgements
References
Chapter 5 Evolution of Electronic Circuits
5.1 Introduction
5.2 Direct Evolution of Small Combinational Circuits
5.2.1 Evolutionary vs Conventional Synthesis of Combinational Circuits
5.2.2 CGP for Logic Synthesis
5.2.3 Benchmark Problems
5.2.4 Summary
5.3 Multi-objective Evolution of Combinational Circuits
5.3.1 Multi-objective Fitness Function
5.3.2 Benchmarks
5.3.3 Summary
5.4 Evolution of Polymorphic Circuits
5.4.1 Polymorphic Electronics
5.4.2 Gate-Level Evolution of Polymorphic Circuits
5.4.3 CGP as Optimizer
5.4.4 REPOMO32: CGP on a Chip
5.5 Evolution of Multiple-Constant Multipliers
5.5.1 Multiplierless Multiplication
5.5.2 Results of CGP
5.6 CMOS-Level Circuit Evolution
5.6.1 Intrinsic Parameter Fluctuations
5.6.2 Modifying CGP for CMOS Design
5.6.3 Experiments
5.6.4 Conclusions and Future Work
5.7 Evolution of Classification Hardware Using a Modular Approach
5.7.1 Classifier Architecture
5.7.2 EMG Signal Domain
5.7.3 Classifier Hardware Representation Model
5.7.4 Fitness Assignment and Evolutionary Algorithm
5.7.5 Experiments and Results
5.8 EvoCaches: Application-Specific Adaptation of Cache Mappings
5.8.1 The EvoCache Concept
5.8.2 System Simulation and Metrics
5.8.3 Experiments and Results
5.8.4 Conclusion
5.9 Acknowledgements
References
Chapter 6 Image Processing and CGP
6.1 Introduction
6.2 Evolutionary Design of Image Filters for FPGAs
6.2.1 Sliding-Window Function
6.2.2 Types of Noise
6.2.3 Conventional Filters
6.2.4 Edge Detectors
6.2.5 Basic Approach to Filter Evolution
6.2.6 Bank of Evolved Filters
6.2.7 Extended Kernel
6.2.8 Experimental Results
6.2.9 Summary
6.3 Evolving Advanced Image Filters
6.3.1 Fitness Function
6.3.2 Changes to the Standard CGP Genotype
6.3.3 Evolutionary Algorithm, Parameters and Function Set
6.3.4 Results
6.4 The Automated Design of Features for Image Classification
6.4.1 Motivation
6.4.2 The Model
6.4.3 Transform Evolution
6.4.4 Future Directions
6.5 Acknowledgements
References
Chapter 7 CGP Acceleration Using Field-Programmable Gate Arrays
7.1 Reconfigurable Chips
7.2 Field-Programmable Gate Arrays
7.3 Hardware Accelerators for CGP
7.3.1 Architecture Overview
7.3.2 VRC for Symbolic Regression Problems
7.3.3 VRC for Combinational-Circuit Evolution
7.4 Performance Evaluation
7.4.1 Evolution of Combinational Circuits
7.4.2 Symbolic Regression Problems
7.5 Summary
7.6 Acknowledgements
References
Chapter 8 Hardware Acceleration for CGP: Graphics Processing Units
8.1 Graphics Processing Units
8.2 The Architecture of Graphics Processing Units
8.3 Programming a GPU
8.4 Parallel Implementation of GP
8.5 Initial GPU Results
8.5.1 Floating-Point-Based Expressions
8.5.2 Binary
8.5.3 Regression and Classifcation
8.6 Image Processing on the GPU
8.6.1 Evolving Image Filters Using Accelerator
8.6.2 Results
8.7 CUDA Implementation
8.7.1 Algorithm
8.7.2 Compilation and Code Generation
8.7.3 Fitness Function
8.7.4 Results
8.8 Conclusions
8.9 Acknowledgements
References
Chapter 9 The CGP Developmental Network
9.1 Introduction
9.2 Biology of Neurons
9.3 The CGP Developmental Network
9.3.1 Health, Resistance, Weight and State-Factor
9.3.2 Cartesian Genetic Program (Chromosome)
9.3.3 Inputs and Outputs
9.4 CGP Model of Neuron
9.4.1 Electrical Processing
9.4.2 Weight Processing
9.4.3 Life Cycle of Neuron
9.5 Applications
9.5.1 Wumpus World Problem
9.5.2 Competitive Learning Scenario
9.6 Learning `How to Play' Checkers
9.6.1 Coevolution of Two Agents Playing Checkers
9.6.2 An Agent Plays Against a Minimax-Based Checkers Program
9.7 Conclusions
References
Chapter 10 CGP, Creativity and Art
10.1 Introduction
10.2 Creativity and Art
10.3 Evolutionary Systems and Creativity
10.4 Evolutionary Art
10.5 Genetic Programming and Creativity
10.5.1 Advantages of CGP in Creative Systems
10.6 Implementation
10.6.1 Fitness Function
10.6.2 Contextual Focus
10.7 Results
10.8 Conclusions and Future Directions
10.9 Acknowledgements
References
Chapter 11 Medical Applications of Cartesian Genetic Programming
11.1 Introduction
11.2 CGP Applied to the Diagnosis of Breast Cancer
11.2.1 Classification of Mammograms Using a Vector of Conventional Statistical Features
11.2.2 Classification of Mammograms Using Raw Pixel Values
11.2.3 Classification of Mammograms Using Multi-chromosome CGP
11.2.4 Summary
11.3 CGP Applied to the Diagnosis of Parkinson's Disease
11.4 CGP Applied to the Diagnosis of Alzheimer's Disease
11.5 Conclusions
References
Appendix A Resources for Cartesian Genetic Programming
A.1 General Advice
A.2 Web Sites
A.3 Tutorial Material
A.4 Software
A.4.1 CGP in C
A.4.2 CGP in Java
A.4.3 CGP in MATLAB
A.4.4 Evolutionary Art with Laurence Ashmore's CGP Program (in Java)
Index