Sciweavers


Book

A Field Guide To Genetic Programming

15 years 7 months ago
A Field Guide To Genetic Programming
"GP is a systematic, domain-independent method for getting computers to solve problems automatically starting from a high-level statement of what needs to be done. Using ideas from natural evolution, GP starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination, until solutions emerge. All this without the user having to know or specify the form or structure of solutions in advance. GP has generated a plethora of human-competitive results and applications, including novel scientific discoveries and patentable inventions. "
Riccardo Poli, William B. Langdon, Nicholas Freit
Added 16 Apr 2009
Updated 16 Apr 2009
Authors Riccardo Poli, William B. Langdon, Nicholas Freitag McPhee
1 Introduction 1
1.1 Genetic Programming in a Nutshell
1.2 Getting Started
1.3 Prerequisites
1.4 Overview of this Field Guide
2 Representation, Initialisation and Operators in Tree-based GP
2.1 Representation
2.2 Initialising the Population
2.3 Selection
2.4 Recombination and Mutation
3 Getting Ready to Run Genetic Programming
3.1 Step 1: Terminal Set
3.2 Step 2: Function Set
3.2.1 Closure
3.2.2 Sufficiency
3.2.3 Evolving Structures other than Programs
3.3 Step 3: Fitness Function
3.4 Step 4: GP Parameters
3.5 Step 5: Termination and solution designation
4 Example Genetic Programming Run
4.1 Preparatory Steps
4.2 Step-by-Step Sample Run
4.2.1 Initialisation
4.2.2 Fitness Evaluation
4.2.3 Selection, Crossover and Mutation
4.2.4 Termination and Solution Designation
II Advanced Genetic Programming
5 Alternative Initialisations and Operators in Tree-based GP
5.1 Constructing the Initial Population
5.1.1 Uniform Initialisation
5.1.2 Initialisation may Affect Bloat
5.1.3 Seeding
5.2 GP Mutation
5.2.1 Is Mutation Necessary?
5.2.2 Mutation Cookbook
5.3 GP Crossover
5.4 Other Techniques
6 Modular, Grammatical and Developmental Tree-based GP 47
6.1 Evolving Modular and Hierarchical Structures
6.1.1 Automatically Defined Functions
6.1.2 Program Architecture and Architecture-Altering
6.2 Constraining Structures
6.2.1 Enforcing Particular Structures
6.2.2 Strongly Typed GP
6.2.3 Grammar-based Constraints
6.2.4 Constraints and Bias
6.3 Developmental Genetic Programming
6.4 Strongly Typed Autoconstructive GP with PushGP
7 Linear and Graph Genetic Programming
7.1 Linear Genetic Programming
7.1.1 Motivations
7.1.2 Linear GP Representations
7.1.3 Linear GP Operators
7.2 Graph-Based Genetic Programming
7.2.1 Parallel Distributed GP (PDGP)
7.2.2 PADO
7.2.3 Cartesian GP
7.2.4 Evolving Parallel Programs using Indirect Encodings
8 Probabilistic Genetic Programming
8.1 Estimation of Distribution Algorithms
8.2 Pure EDA GP
8.3 Mixing Grammars and Probabilities
9 Multi-objective Genetic Programming
9.1 Combining Multiple Objectives into a Scalar Fitness Function
9.2 Keeping the Objectives Separate
9.2.1 Multi-objective Bloat and Complexity Control
9.2.2 Other Objectives
9.2.3 Non-Pareto Criteria
9.3 Multiple Objectives via Dynamic and Staged Fitness Functions
9.4 Multi-objective Optimisation via Operator Bias
10 Fast and Distributed Genetic Programming
10.1 Reducing Fitness Evaluations/Increasing their Effectiveness
10.2 Reducing Cost of Fitness with Caches
10.3 Parallel and Distributed GP are Not Equivalent
10.4 Running GP on Parallel Hardware
10.4.1 Master–slave GP
10.4.2 GP Running on GPUs
10.4.3 GP on FPGAs
10.4.4 Sub-machine-code GP
10.5 Geographically Distributed GP
11 GP Theory and its Applications
11.1 Mathematical Models
11.2 Search Spaces
11.3 Bloat
11.3.1 Bloat in Theory
11.3.2 Bloat Control in Practice
III Practical Genetic Programming 109
12 Applications 111
12.1 Where GP has Done Well
12.2 Curve Fitting, Data Modelling and Symbolic Regression
12.3 Human Competitive Results – the Humies
12.4 Image and Signal Processing
12.5 Financial Trading, Time Series, and Economic Modelling
12.6 Industrial Process Control
12.7 Medicine, Biology and Bioinformatics
12.8 GP to Create Searchers and Solvers – Hyper-heuristics
12.9 Entertainment and Computer Games
12.10The Arts
12.11Compression
13 Troubleshooting GP 131
13.1 Is there a Bug in the Code?
 13.2 Can you Trust your Results?
13.3 There are No Silver Bullets
13.4 Small Changes can have Big Effects
13.5 Big Changes can have No Effect
13.6 Study your Populations
13.7 Encourage Diversity
13.8 Embrace Approximation
13.9 Control Bloat
13.10Checkpoint Results
13.11Report Well
13.12Convince your Customers
14 Conclusions 141
IV Tricks of the Trade 143
A Resources 145
A.1 Key Books
A.2 Key Journals
A.3 Key International Meetings
A.4 GP Implementations
A.5 On-Line Resources
B TinyGP
B.1 Overview of TinyGP
B.2 Input Data Files for TinyGP
B.3 Source Code
B.4 Compiling and Running TinyGP
Bibliography 
Comments (0)