logo资料库

Cartesian-Genetic-Programming.pdf

第1页 / 共367页
第2页 / 共367页
第3页 / 共367页
第4页 / 共367页
第5页 / 共367页
第6页 / 共367页
第7页 / 共367页
第8页 / 共367页
资料共367页,剩余部分请下载后查看
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
Natural Computing Series Series Editors: G. Rozenberg Th. Bäck A.E. Eiben J.N. Kok H.P. Spaink Leiden Center for Natural Computing Advisory Board: S. Amari G. Brassard K.A. De Jong C.C.A.M. Gielen T. Head L. Kari L. Landweber T. Martinetz Z. Michalewicz M.C. Mozer E. Oja G. P˘aun J. Reif H. Rubin A. Salomaa M. Schoenauer H.-P. Schwefel C. Torras D. Whitley E. Winfree J.M. Zurada For further volumes: www.springer.com/series/4190
Julian F. Miller Editor Cartesian Genetic Programming
Editor Dr. Julian F. Miller Dept. of Electronics The University of York Heslington, YO10 5DD UK jfm7@ohm.york.ac.uk Series Editors G. Rozenberg (Managing Editor) rozenber@liacs.nl Th. Bäck, J.N. Kok, H.P. Spaink Leiden Center for Natural Computing Leiden University Niels Bohrweg 1 2333 CA Leiden The Netherlands A.E. Eiben Vrije Universiteit Amsterdam Amsterdam The Netherlands ISSN 1619-7127 Natural Computing Series ISBN 978-3-642-17309-7 DOI 10.1007/978-3-642-17310-3 Springer Heidelberg Dordrecht London New York e-ISBN 978-3-642-17310-3 Library of Congress Control Number: 2011938670 ACM Computing Classification (1998): F.2, I.2, J.2, J.5 © Springer-Verlag Berlin Heidelberg 2011 This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilm or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer. Violations are liable to prosecution under the German Copyright Law. The use of general descriptive names, registered names, trademarks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use. Cover design: KünkelLopka GmbH, Heidelberg Printed on acid-free paper Springer is part of Springer Science+Business Media (www.springer.com)
My heartfelt thanks to Peter Thomson for confirming the importance of warm water for creative thought.
Preface This is the first book on Cartesian genetic programming (CGP). CGP is a form of automatic evolution of computer programs and other computational structures using ideas inspired by Darwin’s theory of evolution by natural selection. I still remember vividly, in 1993, when I first heard the term ‘genetic algorithms’ from a friend while I was working at Napier University in Edinburgh. I had been working at the time in the area of digital logic synthesis and optimization. I and some of my colleagues were designing and implementing new algorithms that would allow digital circuits to be built efficiently from a specification. It often took many months, even years, to design and implement these algorithms. My friend got to hear about this and explained the idea that computational problems could be solved using an algorithm that was inspired by Darwinian evolution. It was a Friday, and after he explained the basic idea he presented me with a copy of Lawrence David Davis’s ‘Handbook of Genetic Algorithms’. I asked him how long he thought it would take me to write a computer program using genetic algorithms to try to solve the opti- mization problem I had been working on. He said, ‘Oh, a couple of hours, I would think’. That weekend, I devoured the book and wrote my program. By Monday, I had a working program and it was producing excellent results, better even than the purpose-built algorithm I and my colleagues had designed and published the previ- ous year. When I met up with my friend again, the following week, I was excited, but also a little shamefaced, as he had said it should take a few hours, but I had spent the best part of the weekend working on the program! I explained, however, that the method was working well and giving better results than my previous algorithm. He then revealed that he had been joking about it requiring a couple of hours’ work, and he too became very excited. From that moment to this, I have been fascinated by evolutionary algorithms and their power to solve problems efficiently, often in unexpected and extraordinary ways. The contributors to this book include all the leading exponents of the subject. Al- though the volume is primarily aimed at postgraduates, researchers and academics, it is hoped that it may be useful to undergraduates who wish to learn about one of the leading techniques in genetic programming. For those completely new to evolu- vii
分享到:
收藏