A field guide to genetic programming

Created by W.Langdon from gp-bibliography.bib Revision:1.4549

  author =       "Riccardo Poli and William B. Langdon and 
                 Nicholas Freitag McPhee",
  title =        "A field guide to genetic programming",
  publisher =    "Published via \texttt{http://lulu.com} and freely
                 available at
  year =         "2008",
  note =         "(With contributions by J. R. Koza)",
  URL =          "http://www.gp-field-guide.org.uk",
  URL =          "http://www.lulu.com/shop/riccardo-poli-and-william-b-langdon-and-nicholas-freitag-mcphee/a-field-guide-to-genetic-programming/ebook/product-17447670.html",
  URL =          "http://dces.essex.ac.uk/staff/rpoli/gp-field-guide/A_Field_Guide_to_Genetic_Programming.pdf",
  URL =          "http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/poli08_fieldguide.pdf",
  URL =          "http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/poli08_fieldguide.azw3",
  URL =          "http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/poli08_fieldguide.epub",
  URL =          "http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/poli08_fieldguide.mobi.zip",
  URL =          "https://itunes.apple.com/gb/book/field-guide-to-genetic-programming/id445393241?mt=11",
  URL =          "http://dl.acm.org/citation.cfm?id=1796422",
  keywords =     "genetic algorithms, genetic programming, cartesian
                 genetic programming, automatic programming, machine
                 learning, artificial intelligence, evolutionary
                 computation, GPU",
  isbn13 =       "978-1-4092-0073-4",
  abstract =     "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 high-fitness 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

                 This unique overview of this exciting technique is
                 written by three of the most active scientists in GP.
                 See www.gp-field-guide.org.uk for more information on
                 the book.

                 Table of Contents

                 1 Introduction

                 1.1 Genetic Programming in a Nutshell

                 1.2 Getting Started

                 1.3 Prerequisites

                 1.4 Overview of this Field Guide

                 Part I Basics

                 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",
  abstract =     "

                 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 29

                 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

                 Part 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

                 6.1 Evolving Modular and Hierarchical Structures

                 6.1.1 Automatically Defined Functions

                 6.1.2 Program Architecture and

                 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

                 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

                 9.2 Keeping the Objectives Separate

                 9.2.1 Multi-objective Bloat and Complexity

                 9.2.2 Other Objectives

                 9.2.3 Non-Pareto Criteria

                 9.3 Multiple Objectives via Dynamic and Staged Fitness

                 9.4 Multi-objective Optimisation via Operator Bias

                 10 Fast and Distributed Genetic Programming

                 10.1 Reducing Fitness Evaluations/Increasing their

                 10.2 Reducing Cost of Fitness with Caches

                 10.3 Parallel and Distributed GP are Not

                 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

                 Part III Practical Genetic Programming

                 12 Applications

                 12.1 Where GP has Done Well

                 12.2 Curve Fitting, Data Modelling and Symbolic

                 12.3 Human Competitive Results the Humies

                 12.4 Image and Signal Processing

                 12.5 Financial Trading, Time Series, and Economic

                 12.6 Industrial Process Control

                 12.7 Medicine, Biology and Bioinformatics

                 12.8 GP to Create Searchers and Solvers

                 12.9 Entertainment and Computer Games

                 12.10 The Arts

                 12.11 Compression

                 13 Troubleshooting GP

                 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.10 Checkpoint Results

                 13.11 Report Well

                 13.12 Convince your Customers

                 14 Conclusions

                 Part IV Tricks of the Trade

                 A Resources

                 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


  notes =        "http://www.gp-field-guide.org.uk/

                 Video of writing the book http://youtu.be/ftjci2XJbFA",
  size =         "250 pages",

Genetic Programming entries for Riccardo Poli William B Langdon Nicholas Freitag McPhee